<?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-6083014959034990147</id><updated>2011-04-22T11:40:44.355+08:00</updated><category term='Exercise 10'/><category term='Exercise 24'/><category term='Workshop 6'/><category term='Exercise 26'/><category term='Exercise 3'/><category term='Workshop 2'/><category term='Exercise 22'/><category term='Exercises'/><category term='Exercise 15'/><category term='Exercise 5'/><category term='Exercise 17'/><category term='Workshop 4'/><category term='Exercise 12'/><category term='Elevator Pitch'/><category term='Exercise 2'/><category term='Exercise 20'/><category term='Exercise 18'/><category term='Exercise 7'/><category term='Workshop 7'/><category term='Exercise 9'/><category term='Exercise 14'/><category term='Exercise 23'/><category term='Workshop 5'/><category term='Focus Group'/><category term='Workshop 1'/><category term='Exercise 4'/><category term='Self Introduction'/><category term='Workshop 3'/><category term='Exercise 21'/><category term='Exercise 25'/><category term='Workshops'/><category term='Exercise 1'/><category term='Exercise 16'/><category term='Exercise 6'/><category term='Exercise 13'/><category term='Exercise 11'/><category term='Workshop 8'/><category term='Exercise 8'/><category term='Exercise 19'/><title type='text'>Developer's BLOG of Joseph Cheung</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default?start-index=101&amp;max-results=100'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>102</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-1854302726394883581</id><published>2009-05-16T18:34:00.005+08:00</published><updated>2009-05-16T23:25:19.547+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Elevator Pitch'/><title type='text'>Elevator Pitch 2</title><content type='html'>How can I put my business onto the Web after studying ITC594 course?&lt;br /&gt;&lt;br /&gt;First of all, I should define business model, for example, b2b or b2c... etc. Then, I should use a SDLC methodology for website application development. For fast changing environment, I should use Agile or rapid evolutionary prototyping as my SDLC. These SDLC consider that users have to review the prototype until the final version of the prototype is built.&lt;br /&gt;&lt;br /&gt;In order to develop the prototype fast, the selection of programming language becomes critical. The programming language should be with OO and MVC Approach when considering reusability and maintainability.&lt;br /&gt;&lt;br /&gt;Thus, I should use ROR. ROR is easy to use and learn although I have encountered many issues like, installation and syntax changes problems. Through workshops, I have learned ROR gradually and the mentioned issues are all fixed. Again, ROR brings convention over configuration, that is, the class name in model is the same as the table name in database by default. DRY prompts that a modification of one element of a system does not change other logically-unrelated elements. Scaffolding in ROR helps to make web applications in a few minutes, for example, I can make user authentication and registration very fast.&lt;br /&gt;&lt;br /&gt;Beside prototyping &amp;amp; programming, I need to think about the connectivity, platform, security, privacy, payment method &amp;amp; design issues. For instance, for connectivity concern, a suitable protocol like tcp/udp is selected. Does MS-Windows or Linux suit the web application? Any fault tolerance? Any encryption and authentication are offered? Is cookie enabled? Accept VISA? Is Multimedia like VoiceXML or software agent available? All these questions have to be answered in mind.&lt;br /&gt;&lt;br /&gt;Finally, I put my business onto the web through web application development framework while all mentioned aspects are concerned.&lt;br /&gt;&lt;br /&gt;It is Joseph Cheung's Progress Report through Elevator Pitch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-1854302726394883581?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/1854302726394883581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/elevator-pitch-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1854302726394883581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1854302726394883581'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/elevator-pitch-2.html' title='Elevator Pitch 2'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-3080355642312705909</id><published>2009-05-16T06:04:00.000+08:00</published><updated>2009-05-16T06:08:59.577+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Focus Group'/><title type='text'>Focus Group II</title><content type='html'>Dear All,&lt;br /&gt;&lt;br /&gt;When using scaffolding of ROR to build website, I hit a very strange issue, that is, if creating a table with less than 4 fields, scaffolding does not work. If more than or equal to 4 fields, scaffolding works.&lt;br /&gt;&lt;br /&gt;Anyway, to work around, I am focused to add one more field to table so as to use scaffolding.&lt;br /&gt;&lt;br /&gt;Please feel free to leave me message to share.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Joseph&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-3080355642312705909?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/3080355642312705909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/focus-group-ii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/3080355642312705909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/3080355642312705909'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/focus-group-ii.html' title='Focus Group II'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-5657173391202344856</id><published>2009-05-16T03:45:00.000+08:00</published><updated>2009-05-16T05:21:31.719+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 8'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>Workshop 8 Ruby on Rails Workshops Report and Evaluation</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Evaluation and Report&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. List what you consider to be the three strengths of Ruby on Rails workshop series.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;I consider the 3 strengths to be:&lt;br /&gt;a. The ROR workshop series are easy to understand as the series are simple and clear. Through the workshops, students can learn ROR gradually.&lt;br /&gt;b. There are many useful references in the ROR workshop series, for example, rubyonrails.org web training, RailsSpace... etc&lt;br /&gt;c. Step-by-Step demonstration in WorkShop6 gives students useful guideline.&lt;br /&gt;&lt;br /&gt;2. List what you consider to be the three weaknesses of Ruby on Rails workshop series:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;I consider the 3 weeknesses to be:&lt;br /&gt;a. Many informations are repeated from workshop 1 to 4&lt;br /&gt;b. Some commands are incorrect due to version changes&lt;br /&gt;c. Except Workshop6, there is NO step-by-step demonstration in other workshops&lt;br /&gt;&lt;br /&gt;3. List what aspects of Ruby on Rails workshop series that you found to be most difficult.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;The most difficuly aspects were:&lt;br /&gt;a. Debug ROR program codes because different versions contains different codes&lt;br /&gt;b. Initial Installation of ROR&lt;br /&gt;&lt;br /&gt;4. List what improvements could be made to the Ruby on Rails workshop series:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;Improvements I would make include:&lt;br /&gt;a. Standardized ROR version, for example, all HK classes use InstantRails2.0...&lt;br /&gt;b. More step-by-step demonstration&lt;br /&gt;c. Standardized command lists. (It is because in each version of ROR, the syntax changes too much and students need to spend much time to seek for the correct syntax of one ROR version.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Free response and reflective questions:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. Reflect on your experiences with the other Web framework used in this subject: Was it effective? How can it be improved? Should other Web frameworks be used as well or instead of Ruby on Rails?&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;Yes, I have used PHP and JSP tomcat to build B2C websites. However, I would like to build my own codes. Thus, this is my first time to use Web framework. After using ROR, I feel Web framework is effective (especially for programming beginner). The ROR Web framework can be improved, for example, GUI is welcome instead of typing commands in command prompt. Yes, other Web frameworks should be used as well as ROR.&lt;br /&gt;&lt;br /&gt;6. Did the Developer’s or IT managers Team that you joined after workshop 4 have a preference towards using other tools to facilitate collaboration? Comment on the differences between these use of the sub-forum or Interact wiki tools from your experiences in this subject.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;I perfer not to have sub-forum because without sub-forum, all informations can be centralized in a single source. The difference between the use of sub-forum and Interact wiki tools is that sub-form is free format and contains too many unrelated information when Interact wiki tools focus on topics.&lt;br /&gt;&lt;br /&gt;7. Further comments to add?&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;Too many exercises&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-5657173391202344856?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/5657173391202344856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/workshop-8-ruby-on-rails-workshops.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/5657173391202344856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/5657173391202344856'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/workshop-8-ruby-on-rails-workshops.html' title='Workshop 8 Ruby on Rails Workshops Report and Evaluation'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-6171335041278205339</id><published>2009-05-16T03:19:00.000+08:00</published><updated>2009-05-16T03:41:05.484+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>To Do List....</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:130%;" &gt;DEVELOPER’S THREAD (RED team)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To Do:&lt;/span&gt;&lt;br /&gt;Developers conclude their work with the OTBS and look at the options for deployment of the site. Examine the various platforms/software tools used for deployment such as UNIX environment suggested in the Discussion Notes, Mongrel or Mongrel cluster, Nginx, Subversion or Capistrano (during development stage), JRuby in the Java environment.&lt;br /&gt;&lt;br /&gt;Which way?&lt;br /&gt;&lt;br /&gt;The choice is up to you as this workshop present just one option and you may like to use another, such as deploying the OTBS in a .NET or J2EE environment&lt;br /&gt;&lt;br /&gt;Can you get the OTBS Running in production mode as a minimal production server?&lt;br /&gt;&lt;br /&gt;Share your success by posting progress comments and links etc to the Developers sub-forum site that has been set up for the Red team.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;From Workshop 1 to 8 and From Exercise 1 to 26, I learn the concepts of e-commerce and online applications gradually. Especially, I feel interested in Workshops as it is related to the new technology namely ROR. In these workshops, I know the MVC approach, scaffolding, convention over configuration. At the end, I study intensively about user authentication and registration.&lt;br /&gt;In this workshop, I would like to select Linux as the platform since Linux is freeware and stable comparing with MS-Windows. Also, I would like to use Mongrel or Mongrel cluster to install in the platform and running the OTBS. Mongrel is also a free middleware in ROR. In all my workshops, I use mongrel so I am get used to Mongrel and my skillset is built on Mongrel, although there may be another better choice.&lt;br /&gt;Yes, I can get the OTBS running in production mode as a minimal production server in my office Intel Xeon machine.&lt;br /&gt;I feel my studies on ROR and e-commerce are successful. For detail, please read my blog at &lt;a href="http://itc594josephc.blogspot.com/"&gt;http://itc594josephc.blogspot.com/&lt;/a&gt;&lt;br /&gt;I have posted my progress comments at CSU's Developers sub-forum site. The URL is &lt;a href="http://forums.csu.edu.au/perl/forums.pl?task=frameset&amp;amp;forum_id=ITC594_200940_W_D_Sub1_forum&amp;amp;message_id=3824115"&gt;http://forums.csu.edu.au/perl/forums.pl?task=frameset&amp;amp;forum_id=ITC594_200940_W_D_Sub1_forum&amp;amp;message_id=3824115&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-6171335041278205339?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/6171335041278205339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/to-do-list_16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/6171335041278205339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/6171335041278205339'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/to-do-list_16.html' title='To Do List....'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-1407287735329344247</id><published>2009-05-16T02:50:00.001+08:00</published><updated>2009-05-16T03:18:17.503+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>Workshop 7 End of the Line: production site migration and maintenance</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Topic reading from Safari Books Online&lt;/span&gt;&lt;br /&gt;Hartl, M &amp;amp; Prochazka, A, (2008). RailsSpace: Building a Social Networking Website with Ruby on Rails, Pearson Education&lt;br /&gt;This workshop continues to use your reading of the ‘RailsSpace’ online book and use of other online sites.&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;I have read the required online book at CSU library.&lt;br /&gt;&lt;br /&gt;Focus Question&lt;br /&gt;As either a developer or as an IT manager, what are the options available when deploying and maintaining the Ruby on Rails application online?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;br /&gt;&lt;/span&gt;According to the given discussion note, I discuss with Sam Kwong. The options available when deploying and maintaining the Ruby on Rails application online are...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Windows Platform VS Linux&lt;/span&gt;&lt;br /&gt;We select Linux as our platform because Linux is freeware with higher stability than MS-Window&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Skillset on ROR and Platform&lt;/span&gt;&lt;br /&gt;There is no issue on skill set of ROR and Linux Platform because both of us have sound skills on ROR and Linux&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Hosting Issue&lt;/span&gt;&lt;br /&gt;I will place the server in our office as a production environment&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Scalability &lt;/span&gt;&lt;br /&gt;I will use the mongrel clusters for fault tolerance and Lunix RAID 5 external diskarry so volume expansion become easy.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. Tools&lt;/span&gt;&lt;br /&gt;We will use ROR freeware tools on the web.&lt;br /&gt;&lt;br /&gt;From the given intruction,&lt;br /&gt;which way you choose to go will most likely depend upon:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The user interface and your own skills;&lt;/li&gt;&lt;li&gt;How quickly you are guided through deployment by admin tools that simplify management of the system;&lt;/li&gt;&lt;li&gt;System back-up, data security, virtualization and portability features:&lt;/li&gt;&lt;li&gt;Future-proofness: (grid computing or a cloud computing service);&lt;/li&gt;&lt;li&gt;How much time and money is saved by an efficient deployment and maintenance schedule.&lt;/li&gt;&lt;/ul&gt;This guideline is very important and useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-1407287735329344247?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/1407287735329344247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/workshop-7-end-of-line-production-site.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1407287735329344247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1407287735329344247'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/workshop-7-end-of-line-production-site.html' title='Workshop 7 End of the Line: production site migration and maintenance'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-678383987762664038</id><published>2009-05-14T17:55:00.036+08:00</published><updated>2009-05-16T03:05:35.969+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>To Do List....</title><content type='html'>&lt;span style="color: rgb(255, 0, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;DEVELOPER’S THREAD (RED team)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To Do:&lt;/span&gt;&lt;br /&gt;Developers may continue to build upon work with the OTBS using the topic reading to help with user registration and advanced login features from Hartl et al (2008).&lt;br /&gt;&lt;br /&gt;* generate a controller and an action by adding a method(s) to a controller;&lt;br /&gt;* create a view template for each action and to link to actions from views;&lt;br /&gt;* use AJAX to improve the user experience;&lt;br /&gt;&lt;br /&gt;Share your success by posting progress comments and links etc to the Developers sub-forum site that has been set up for the Red team.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;From Workshop 1 to 4 , I have successfully built the simple taxi booking system and now I will briefly describe this Online Taxi Booking System (OTBS) according to the Workshop6's requirement.&lt;br /&gt;&lt;br /&gt;Taxi &amp;amp; Passenger ActiveController and the related ActionViews (list, show, create methods) have been built during Workshop1 to 4. The Diagram-121 to Diagram-127 shows what I have been done for these Workshop. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sg0p9_28iyI/AAAAAAAAAX4/4CgfihZQv10/s1600-h/ws6a1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 469px; height: 510px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sg0p9_28iyI/AAAAAAAAAX4/4CgfihZQv10/s320/ws6a1.JPG" alt="" id="BLOGGER_PHOTO_ID_5335967278594558754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagarm-121 - The List method of Taxi Class shown in ActionView (list.rhtml)&lt;br /&gt;&lt;br /&gt;In Diagram-121, when users click on one of the Taxi link, the detail of that Taxi will be shown like the one in Diagram-122&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0p3_M2QKI/AAAAAAAAAXw/j3YeFzZoklo/s1600-h/ws6a2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 468px; height: 505px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0p3_M2QKI/AAAAAAAAAXw/j3YeFzZoklo/s320/ws6a2.JPG" alt="" id="BLOGGER_PHOTO_ID_5335967175338770594" border="0" /&gt;&lt;/a&gt;Diagram-122- The Show method of Taxi Class shown in ActionView (show.rhtml)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0pzxt_HxI/AAAAAAAAAXo/E0iq4lXXqqk/s1600-h/ws6a3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 469px; height: 324px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0pzxt_HxI/AAAAAAAAAXo/E0iq4lXXqqk/s320/ws6a3.JPG" alt="" id="BLOGGER_PHOTO_ID_5335967103000190738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-123 - The index method of Passengers class shown in index.rhtml&lt;br /&gt;&lt;br /&gt;In the index.rhtml, when users click "new passenagers" link, users can add new passengers to book the taxis. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg1DxY3L69I/AAAAAAAAAYA/OVlLSPgjnVo/s1600-h/ws6a4.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 468px; height: 326px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg1DxY3L69I/AAAAAAAAAYA/OVlLSPgjnVo/s320/ws6a4.JPG" alt="" id="BLOGGER_PHOTO_ID_5335995649270475730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-124 - The new method of Passengers Class shown in ActionView (new.rhtml)&lt;br /&gt;&lt;br /&gt;When users click on "show" link in index.rhtml, the users can see the detail of booking'  and passengers' record.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0pqTvtVHI/AAAAAAAAAXY/cJOKUDB6leg/s1600-h/ws6a5.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 469px; height: 340px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0pqTvtVHI/AAAAAAAAAXY/cJOKUDB6leg/s320/ws6a5.JPG" alt="" id="BLOGGER_PHOTO_ID_5335966940335527026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-125 - The show method of Passengers Class shown in ActionView (show.rhtml)&lt;br /&gt;&lt;br /&gt;When users click on "edit" link in index.rhtml, users can modify the existing booking. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0pkS4sHcI/AAAAAAAAAXQ/graJw4Wox1c/s1600-h/ws6a6.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 468px; height: 339px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0pkS4sHcI/AAAAAAAAAXQ/graJw4Wox1c/s320/ws6a6.JPG" alt="" id="BLOGGER_PHOTO_ID_5335966837025545666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-126 - The edit method of Passengers Class shown in ActionView (edit.rhtml)&lt;br /&gt;&lt;br /&gt;When users click on "destroy" link in index.rhtml, users can cancel or delete the booking. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0pZO2eHOI/AAAAAAAAAXI/2K_FenO_XPU/s1600-h/ws6a7.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 467px; height: 349px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0pZO2eHOI/AAAAAAAAAXI/2K_FenO_XPU/s320/ws6a7.JPG" alt="" id="BLOGGER_PHOTO_ID_5335966646963936482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-127 - The destroy method of Passengers Class&lt;br /&gt;&lt;br /&gt;I have successfully create a &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;template&lt;/span&gt;&lt;/span&gt; for ActionView. The template is called 'standard'. All the views in OTBS will use this template. The following is the screen dump of one of the views.   &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0pT342dwI/AAAAAAAAAXA/d1-G9ODWlGM/s1600-h/ws6a8.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 471px; height: 352px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0pT342dwI/AAAAAAAAAXA/d1-G9ODWlGM/s320/ws6a8.JPG" alt="" id="BLOGGER_PHOTO_ID_5335966554900559618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-128 - The list ActionView (list.rhtml) of Taxi Class after applying the template to the ActionView&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;AJAX &lt;/span&gt;&lt;/span&gt;is also utilized in order to enhance user's experience. My AJAX is to add a new taxi in ActiveRecord of Taxi Class. When clicking "add a Taxi" link, the text box and add button are shown (See Diagram-129).   &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0pMJriicI/AAAAAAAAAW4/RDLPDYyKQho/s1600-h/ws6a9.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 468px; height: 350px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0pMJriicI/AAAAAAAAAW4/RDLPDYyKQho/s320/ws6a9.JPG" alt="" id="BLOGGER_PHOTO_ID_5335966422237612482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-129 - AJAX functionality so as to add new Taxi&lt;br /&gt;&lt;br /&gt;When the text field and add button are shown, users can type in the name or the brand-name of the Taxi. For example, I add Honda as the Taxi's name. (See Diagram-130) &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0pDvsWB8I/AAAAAAAAAWw/pZC2kdKpgNg/s1600-h/ws6aA.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 472px; height: 353px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0pDvsWB8I/AAAAAAAAAWw/pZC2kdKpgNg/s320/ws6aA.JPG" alt="" id="BLOGGER_PHOTO_ID_5335966277822711746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-130 - Entering the name of the taxi&lt;br /&gt;&lt;br /&gt;After the name is inputed, users can click "add" button to add the Taxi and the newly added Taxi will be displayed in the same html page directly due to the feature of AJAX. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0o5Ci8fTI/AAAAAAAAAWo/UQk6_fByS_o/s1600-h/ws6aB.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 474px; height: 355px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0o5Ci8fTI/AAAAAAAAAWo/UQk6_fByS_o/s320/ws6aB.JPG" alt="" id="BLOGGER_PHOTO_ID_5335966093905001778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-131 - New Taxi Name "Honda" is added and displayed once the "add" button has been clicked&lt;br /&gt;&lt;br /&gt;The next diagram show the template 'standard' is applied to Passenger ActiveController. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0o0MaE_6I/AAAAAAAAAWg/Me_70CFVMeU/s1600-h/ws6aC0.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 469px; height: 351px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0o0MaE_6I/AAAAAAAAAWg/Me_70CFVMeU/s320/ws6aC0.JPG" alt="" id="BLOGGER_PHOTO_ID_5335966010652819362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-132 - The Passenger ActionController together with the template 'standard'&lt;br /&gt;&lt;br /&gt;The source code of the &lt;span style="font-weight: bold;font-size:130%;" &gt;template 'standard&lt;/span&gt;' is put into the "/app/views/layouts" folder and the file name of the template is called 'standard.rhtml' or 'standard.html.erb'.  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0ovY_xAQI/AAAAAAAAAWY/KgxC3T2EjtI/s1600-h/ws6aC1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 468px; height: 338px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0ovY_xAQI/AAAAAAAAAWY/KgxC3T2EjtI/s320/ws6aC1.JPG" alt="" id="BLOGGER_PHOTO_ID_5335965928132772098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-133 - The template 'standard' for all views inside OTBS system&lt;br /&gt;&lt;br /&gt;In the template 'standard', there is a &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Cascading Style Sheets (CSS)&lt;/span&gt;&lt;/span&gt; used and stated. This CSS is used to help to format the views to display, for example, formatting the font size. The source code of the CSS called '&lt;span style="font-weight: bold;font-size:130%;" &gt;style.css&lt;/span&gt;' and located at 'public\stylesheets' is shown in Diagram-134.  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0oruzylcI/AAAAAAAAAWQ/ifnovIHV2tM/s1600-h/ws6aC2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 473px; height: 342px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0oruzylcI/AAAAAAAAAWQ/ifnovIHV2tM/s320/ws6aC2.JPG" alt="" id="BLOGGER_PHOTO_ID_5335965865268647362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-134 - the source code of style.css stylesheet&lt;br /&gt;&lt;br /&gt;Next, the Diagram-135 shows the ActionView of Taxi Controller Class. The list.html.erb is for list method defined in Taxi Class. The show.html.erb is for show method define in Taxi Class. The _taxi.html.erb contain the &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;JavaScript&lt;/span&gt;&lt;/span&gt; for the &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;AJAX&lt;/span&gt;&lt;/span&gt; functionality inside list.html.erb.   &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0onSaPFwI/AAAAAAAAAWI/r-6AXyA7RPU/s1600-h/ws6aC3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 478px; height: 358px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0onSaPFwI/AAAAAAAAAWI/r-6AXyA7RPU/s320/ws6aC3.JPG" alt="" id="BLOGGER_PHOTO_ID_5335965788925794050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-135 - ActionView for Taxi Controller&lt;br /&gt;&lt;br /&gt;The source code of _taxi.html.erb JavaScript is listed in Diagram-135.  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0ocdB7XJI/AAAAAAAAAWA/vhx2r4eLAUY/s1600-h/ws6aC4.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 475px; height: 215px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0ocdB7XJI/AAAAAAAAAWA/vhx2r4eLAUY/s320/ws6aC4.JPG" alt="" id="BLOGGER_PHOTO_ID_5335965602798066834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-135 - the source code of _taxi.html.erb&lt;br /&gt;&lt;br /&gt;The source code of the list.html.erb contains the &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;AJAX code&lt;/span&gt;&lt;/span&gt; which calls _taxi.html.erb Javascript.  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0oRlJnyDI/AAAAAAAAAV4/MTDa4sD4xKs/s1600-h/ws6aC6.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 473px; height: 342px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0oRlJnyDI/AAAAAAAAAV4/MTDa4sD4xKs/s320/ws6aC6.JPG" alt="" id="BLOGGER_PHOTO_ID_5335965415999260722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-136 - The source code of list.html.erb&lt;br /&gt;&lt;br /&gt;From workshop6's requirements, I need to create user authentication and user registration. Therefore, I create the related &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;controller and method&lt;/span&gt;&lt;/span&gt;. The controllers' names are main (user registration) and panel (user authentication).  In order to create the ActiveRecord and the table in MySQL, I first use "&lt;span style="font-weight: bold;"&gt;ruby script/generate model User&lt;/span&gt;" to create the "user.rb" (See Diagram-137)  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0nzQWnL-I/AAAAAAAAAVY/VCwMkSFKVO4/s1600-h/ws6aG.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 476px; height: 345px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0nzQWnL-I/AAAAAAAAAVY/VCwMkSFKVO4/s320/ws6aG.JPG" alt="" id="BLOGGER_PHOTO_ID_5335964895020527586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-137 - The content of user.rb&lt;br /&gt;&lt;br /&gt;After that, according to the definition inside user.rb, the user table is created. The Diagram-138 shows how to create the table using rake command and the ruby command to create main controller for user registration. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0nvf59-CI/AAAAAAAAAVQ/LW0__AwO1cM/s1600-h/ws6aH.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 476px; height: 312px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0nvf59-CI/AAAAAAAAAVQ/LW0__AwO1cM/s320/ws6aH.JPG" alt="" id="BLOGGER_PHOTO_ID_5335964830475876386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-138 - Rake Command to create table and Ruby command to generate main controller&lt;br /&gt;&lt;br /&gt;In diagram-138, the main controller is created. To customize the main class, I have modify main_controller.rb under '/app/controllers/' folder.   &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0nrYglrMI/AAAAAAAAAVI/h78A-fTlDZc/s1600-h/ws6aI.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 475px; height: 216px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0nrYglrMI/AAAAAAAAAVI/h78A-fTlDZc/s320/ws6aI.JPG" alt="" id="BLOGGER_PHOTO_ID_5335964759770901698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-138 - main_controller.rb&lt;br /&gt;&lt;br /&gt;In Diagram-138, the register method of User Class is defined. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0nN-b2MzI/AAAAAAAAAVA/oKfxZDmg2s0/s1600-h/ws6aJ.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 474px; height: 337px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0nN-b2MzI/AAAAAAAAAVA/oKfxZDmg2s0/s320/ws6aJ.JPG" alt="" id="BLOGGER_PHOTO_ID_5335964254555484978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The  Diagram-139 is the ActionView for the register method.&lt;br /&gt;&lt;br /&gt;Besides, in order to make registered users can login, I create panel controller for users' login. (see Diagram-139) &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0nD1xVsaI/AAAAAAAAAU4/tyH3PMYvni8/s1600-h/ws6aK.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 470px; height: 306px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0nD1xVsaI/AAAAAAAAAU4/tyH3PMYvni8/s320/ws6aK.JPG" alt="" id="BLOGGER_PHOTO_ID_5335964080431018402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-139 - the creation of panel controller&lt;br /&gt;&lt;br /&gt;The panel_controller.rb is located at "/app/controllers/" folder. Then I modify the panel controller. (See Diagram-140) &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sg0moGyzo8I/AAAAAAAAAUw/stcbNooCXro/s1600-h/ws6aL.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 470px; height: 211px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sg0moGyzo8I/AAAAAAAAAUw/stcbNooCXro/s320/ws6aL.JPG" alt="" id="BLOGGER_PHOTO_ID_5335963603964240834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-140 - the content of panel controller where the login method is defined&lt;br /&gt;&lt;br /&gt;The login method is then handled by ActionView. Now, the view is login.html.erb. (see Diagram-141)   &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0mMjzgr1I/AAAAAAAAAUo/YdBgwDVxlYI/s1600-h/ws6aM.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 477px; height: 216px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0mMjzgr1I/AAAAAAAAAUo/YdBgwDVxlYI/s320/ws6aM.JPG" alt="" id="BLOGGER_PHOTO_ID_5335963130715483986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-141 - login.html.erb&lt;br /&gt;&lt;br /&gt;When users logs into the system successfully, the portal will be accessed. Thus, the portal controller is generated (see Diagram-142)  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0mCODq9ZI/AAAAAAAAAUg/veuoth91BHw/s1600-h/ws6aN.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 475px; height: 311px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0mCODq9ZI/AAAAAAAAAUg/veuoth91BHw/s320/ws6aN.JPG" alt="" id="BLOGGER_PHOTO_ID_5335962953078994322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-142 - the creation of portal controller&lt;br /&gt;&lt;br /&gt;Inside the portal controller, index1 and index2 methods are defined.  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0l00I9HNI/AAAAAAAAAUY/B7AAvn3dvxY/s1600-h/ws6aO.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 470px; height: 334px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0l00I9HNI/AAAAAAAAAUY/B7AAvn3dvxY/s320/ws6aO.JPG" alt="" id="BLOGGER_PHOTO_ID_5335962722783534290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-143 - index1 &amp;amp; index2 methods inside portal controller&lt;br /&gt;&lt;br /&gt;The Diagram-144 shows the index1 ActionView (index1.html.erb)  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0ldFWadRI/AAAAAAAAAUQ/VOKYTuoZWio/s1600-h/ws6aP.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 471px; height: 335px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0ldFWadRI/AAAAAAAAAUQ/VOKYTuoZWio/s320/ws6aP.JPG" alt="" id="BLOGGER_PHOTO_ID_5335962315086525714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-144 - index1.rhtml&lt;br /&gt;&lt;br /&gt;The Diagram-145 shows the index2 ActionView (index2.html.erb)&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0lHYoEAeI/AAAAAAAAAUI/auYq55MUTXQ/s1600-h/ws6aQ.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 472px; height: 331px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0lHYoEAeI/AAAAAAAAAUI/auYq55MUTXQ/s320/ws6aQ.JPG" alt="" id="BLOGGER_PHOTO_ID_5335961942303703522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-145 - index2.html.erb&lt;br /&gt;&lt;br /&gt;After all, the functionalities of user authentication and registration inside OTBS are workable. For example, in Diagram-146, when the user does not enter username for registration, OTBS will prompt an error.   &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0k84arwnI/AAAAAAAAAUA/-nXz5sTbWpo/s1600-h/ws6aR.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 474px; height: 485px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0k84arwnI/AAAAAAAAAUA/-nXz5sTbWpo/s320/ws6aR.JPG" alt="" id="BLOGGER_PHOTO_ID_5335961761858962034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-146 - User registration when errors&lt;br /&gt;&lt;br /&gt;To correct the error in Diagram, the user should fill in the username field (no empty field is allowed). The Diagram-147 shows the correct information is entered.   &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0kiscgi2I/AAAAAAAAAT4/a4bJq0mVIiQ/s1600-h/ws6aS.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 476px; height: 423px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0kiscgi2I/AAAAAAAAAT4/a4bJq0mVIiQ/s320/ws6aS.JPG" alt="" id="BLOGGER_PHOTO_ID_5335961311968791394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-147 - correct information during user registration&lt;br /&gt;&lt;br /&gt;After the correct information is entered into system and "register me" button is clicked, OTBS will tell the user that he or she is registered successfully (see Diagarm-148)  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0kMxhFkcI/AAAAAAAAATw/KcBHxbaTOMc/s1600-h/ws6aT.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 475px; height: 379px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sg0kMxhFkcI/AAAAAAAAATw/KcBHxbaTOMc/s320/ws6aT.JPG" alt="" id="BLOGGER_PHOTO_ID_5335960935373050306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-148 - successfully registered&lt;br /&gt;&lt;br /&gt;Once registered, the user need to login. The Diagram-149 shows the logon screen but the user login with wrong password so the error is prompted. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0joO9ldhI/AAAAAAAAATo/BbYkPtoFxTA/s1600-h/ws6aU.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 473px; height: 367px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0joO9ldhI/AAAAAAAAATo/BbYkPtoFxTA/s320/ws6aU.JPG" alt="" id="BLOGGER_PHOTO_ID_5335960307622049298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-149 - Login Page with error when wrong password is applied&lt;br /&gt;&lt;br /&gt;The Diagram-150 shows the user login with the correct password.  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0jXu7fRyI/AAAAAAAAATg/WwyIj3o8Kqs/s1600-h/ws6aV.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 474px; height: 410px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sg0jXu7fRyI/AAAAAAAAATg/WwyIj3o8Kqs/s320/ws6aV.JPG" alt="" id="BLOGGER_PHOTO_ID_5335960024145413922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram - login page with user's input&lt;br /&gt;&lt;br /&gt;After successfully login, the user can view the information of Taxis or book Taxis.  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0h4l9gbzI/AAAAAAAAATY/-ejdNafic_g/s1600-h/ws6aX.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 472px; height: 337px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0h4l9gbzI/AAAAAAAAATY/-ejdNafic_g/s320/ws6aX.JPG" alt="" id="BLOGGER_PHOTO_ID_5335958389650386738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-151 - At Portal after successful login&lt;br /&gt;&lt;br /&gt;The user can select view Taxi's information or book taxis (See Diagram-152)  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0heDWyjbI/AAAAAAAAATA/_4nGSD1Q8ZI/s1600-h/ws6aZ.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 226px; height: 198px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0heDWyjbI/AAAAAAAAATA/_4nGSD1Q8ZI/s320/ws6aZ.JPG" alt="" id="BLOGGER_PHOTO_ID_5335957933684592050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0hivo0w-I/AAAAAAAAATI/eISda3cfk7Q/s1600-h/ws6aY.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 240px; height: 241px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sg0hivo0w-I/AAAAAAAAATI/eISda3cfk7Q/s320/ws6aY.JPG" alt="" id="BLOGGER_PHOTO_ID_5335958014290871266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-152 - Book Taxi or View Info&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;I have successfully met the requirements...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. User Ajax --&gt; Done&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Use Template and CSS --&gt; Done&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Create Controller Class and Create method and View for the Class --&gt; Done&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. http://codingbitch.com/p/comboy/User authentication in Ruby on Rails&lt;br /&gt;2. http://www.ruby-forum.com/topic/91797&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-678383987762664038?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/678383987762664038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/to-do-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/678383987762664038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/678383987762664038'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/to-do-list.html' title='To Do List....'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sg0p9_28iyI/AAAAAAAAAX4/4CgfihZQv10/s72-c/ws6a1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-1171998078772375381</id><published>2009-05-14T14:17:00.004+08:00</published><updated>2009-05-14T17:54:48.042+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>Workshop 6 Enjoying the Ride: Web framework alternatives, scalability and flexibility</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Topic reading from Safari Books Online&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Hartl, M &amp;amp; Prochazka, A, (2008). RailsSpace: Building a Social Networking Website with Ruby on Rails, Pearson Education&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;I have read the Safari Books online. The book is RailsSpace located at CSU Library. (See Diagram-110)&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sgu6Eg9rVaI/AAAAAAAAASo/VWyfQlhMvpM/s1600-h/mnb.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 474px; height: 273px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sgu6Eg9rVaI/AAAAAAAAASo/VWyfQlhMvpM/s320/mnb.JPG" alt="" id="BLOGGER_PHOTO_ID_5335562770281354658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-110 - RailsSpace in CSU Library&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Focus Question&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The focus question below provides a way to shape your progress in either team as a common approach to achieving an outcome with the objectives. You get to shape the direction you take in these final workshops, but the focus question helps you get started.&lt;br /&gt;Social networking is a powerful business model made possible by Web 2.0 technologies.&lt;br /&gt;The online textbook called RailsSpace has this focus.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;As either a developer or as an IT manager, how can aspects of social networking be applied to the OTBS?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;Web 2.0" refers to a perceived second generation of web development and design, that facilitates communication, secure information sharing, interoperability, and collaboration on the World Wide Web. Web 2.0 concepts have led to the development and evolution of web-based communities, hosted services, and applications; such as social-networking sites, video-sharing sites, wikis, blogs, and folksonomies.&lt;br /&gt;Web 2.0 is the business revolution in the computer industry caused by the move to the Internet as a platform, and an attempt to understand the rules for success on that new platform.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(Wikipedia, 2009)&lt;/span&gt;&lt;br /&gt;Our Online Taxi Booking System (OTBS) can make use of Web2.0 technology and social networking. That is, the users who always use taxi service can register in our OTBS system. When a certain number of registered users is obtained, OTBS system can be introduced to some Business Bodies, ISP or mobile service provider, namely, 3G network &amp;amp; iphone network. Like Facebook, MSN and Myradio (in HK), OTBS can then resident at iPhone as a platform. When the registered users want to book taxi, he may just click on the icon in iPhone or in 3G mobile phone.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;1. Wikipedia (2009). "Web 2.0". Wikipedia The Free Encyclopedia, Retrieved from URL - &lt;a href="http://en.wikipedia.org/wiki/Web2.0"&gt;http://en.wikipedia.org/wiki/Web2.0&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-1171998078772375381?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/1171998078772375381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/workshop-6-enjoying-ride-web-framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1171998078772375381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1171998078772375381'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/workshop-6-enjoying-ride-web-framework.html' title='Workshop 6 Enjoying the Ride: Web framework alternatives, scalability and flexibility'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sgu6Eg9rVaI/AAAAAAAAASo/VWyfQlhMvpM/s72-c/mnb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-3304416373964356510</id><published>2009-05-12T22:39:00.021+08:00</published><updated>2009-05-13T03:23:18.932+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 5'/><title type='text'>Workshop 5 Admiring the scenery Forms, AJAX screen layout and mobile interfaces</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;DEVELOPER'S THREAD (RED team)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;I wants to learns more programming skills for ROR so I select &lt;span style="color: rgb(255, 0, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;RED team&lt;/span&gt;&lt;/span&gt; to be a Developer for workshops 5 to 8.&lt;br /&gt;After have read the sections introduction and Building applications via document requests in Rails, I strongly agree that ROR brings many version problems from workshops 1 to 4 of ROR. For example, start_form_tag and end_form_tag are replaced with form_tag in InstantRail2.0.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To Do:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Part A: Viewing the action&lt;/span&gt;&lt;br /&gt;1. Create the Rails application framework in the projects folder:&lt;br /&gt;C:\InstantRails\...\projects\&gt;rails animals&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;The Diagram-90 shows the output of "rails animals".&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/SgmwJZ3XuyI/AAAAAAAAASg/OlJ3kWZMLkQ/s1600-h/ws2do1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 469px; height: 307px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/SgmwJZ3XuyI/AAAAAAAAASg/OlJ3kWZMLkQ/s320/ws2do1.JPG" alt="" id="BLOGGER_PHOTO_ID_5334988909205502754" border="0" /&gt;&lt;/a&gt;Diagram-90 - output of "rail animals"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. Running the application on localhost:3000 using the WeBrick ruby server (or Mongrel as alternative) and access via Web browser at http://localhost:3000/&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;I am using Mongrel Web Server and the Diagram-91 shows the screen dump of http://localhost:3000/&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgmwGsfstKI/AAAAAAAAASY/d804vC_Qg8g/s1600-h/ws2do2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 471px; height: 341px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgmwGsfstKI/AAAAAAAAASY/d804vC_Qg8g/s320/ws2do2.JPG" alt="" id="BLOGGER_PHOTO_ID_5334988862666880162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-91 - Screen Dump of http://localhost:3000/ where animals is running&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. Create the controller to make the application do an action. This is under the controller-action/model-view structure.&lt;br /&gt;Stop the WEBrick server each time you edit Ruby classes and then re-start or refresh the views you are testing. Use the Ruby command below:&lt;br /&gt;&gt;ruby script/generate controller Mammal&lt;br /&gt;The mammal_controller.rb contains just a bare class description:&lt;br /&gt;class MammalController&lt; style="font-weight: bold;"&gt;Answer:&lt;br /&gt;In this step, the class Mammal is created and the related Diagram-92 is stated as follow.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/SgmwDcmkVNI/AAAAAAAAASQ/9gH95Mt53pM/s1600-h/ws2do3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 469px; height: 306px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/SgmwDcmkVNI/AAAAAAAAASQ/9gH95Mt53pM/s320/ws2do3.JPG" alt="" id="BLOGGER_PHOTO_ID_5334988806861116626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-92 - Mammal class is created&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. Test the controller by starting the WEBrick server and navaigatibng the browser to http://localhost:3000/mammal Note how the controller name is appended to the end of the URL and that no action resulted because there are no controller methods.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;The Diagram-93 is the screen dump navigating in Browser to try to see the Mammal class.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgmwAnWwDHI/AAAAAAAAASI/f1A1fLB-d5E/s1600-h/ws2do4.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 469px; height: 340px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgmwAnWwDHI/AAAAAAAAASI/f1A1fLB-d5E/s320/ws2do4.JPG" alt="" id="BLOGGER_PHOTO_ID_5334988758207958130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-93 - Navigating the Mammal class but it fails&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. Create an action by editing and saving the mammal_controller.rb class in projects\animals\app\controllers using your text editor to add the method below:&lt;br /&gt;class MammalController&lt; style="font-weight: bold;"&gt;Answer:&lt;br /&gt;In Diagram-94, the breathe method of Mammal class is defined.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sgmv7GCOQRI/AAAAAAAAAR4/8WTqDLH4Lxk/s1600-h/ws2do5.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 471px; height: 244px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sgmv7GCOQRI/AAAAAAAAAR4/8WTqDLH4Lxk/s320/ws2do5.JPG" alt="" id="BLOGGER_PHOTO_ID_5334988663364141330" border="0" /&gt;&lt;/a&gt;Diagram-94 - breathe method of Mammal class&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. Start the WEBrick server and browse at http://localhost:3000/mammals/breathe where you will get a “missing template” message since it is missing a view for the breathe method.&lt;br /&gt;Rails is trying to connect the breathe method action of the mammal controller to a view, by using the action’s name – breathe. This view template is created as breathe.rhtml and stored in the \projects\animals\views\mammal directory.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;Although the breathe method is defined in controller, the view is not recreated yet. Thereby, entering http://localhost:3000/mammals/breathe in browser returns missing template error. In Diagram-95, there is the related screen dump.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sgmv4Eh-eDI/AAAAAAAAARw/EjKP4SjzzeA/s1600-h/ws2do6.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 471px; height: 341px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sgmv4Eh-eDI/AAAAAAAAARw/EjKP4SjzzeA/s320/ws2do6.JPG" alt="" id="BLOGGER_PHOTO_ID_5334988611420846130" border="0" /&gt;&lt;/a&gt;Diagram-95 - missing template&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7. Create and save a view in that directory by using a text editor to create a view called breathe.rhtml&lt;br /&gt;Restart the WEBrick serve r and browse again at http://localhost:3000/mammals/breathe&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;After the view is created for breathe method, http://localhost:3000/mammals/breathe returns an expected result. Diagram-96 shows the screen dump.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sgmv1bqc_rI/AAAAAAAAARo/_lYNjOFpXo0/s1600-h/ws2do7.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 469px; height: 340px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sgmv1bqc_rI/AAAAAAAAARo/_lYNjOFpXo0/s320/ws2do7.JPG" alt="" id="BLOGGER_PHOTO_ID_5334988566090809010" border="0" /&gt;&lt;/a&gt;Diagram-96 - breathe.rhtml is shown&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;8. Try Ruby code and HTML in the action view by using the &lt;%....%&gt; wrapper around the inserted Ruby code. Here are some snippets to try from workshop 4:&lt;br /&gt;a. 5 + 6 =&lt;%= 5 + 6 %&gt;&lt;br /&gt;b. =&lt;% 4.times do %&gt;&lt;br /&gt;Inhale Exhale&lt;br /&gt;&lt;%end%&gt;&lt;br /&gt;c. Time is &lt;%=Time.now %&gt;&lt;br /&gt;NOTE: in practise you normally perform calculations in the action (method) and pass the results to the view&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;The result is shown in Diagram-97. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/SgmvyDeMGUI/AAAAAAAAARg/qLiKQDUE2eA/s1600-h/ws2do8.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 469px; height: 340px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/SgmvyDeMGUI/AAAAAAAAARg/qLiKQDUE2eA/s320/ws2do8.JPG" alt="" id="BLOGGER_PHOTO_ID_5334988508057311554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-97 - modification of the codes of breathe.rhtml&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Part B: The active view: passing data from an action too a view&lt;/span&gt;&lt;br /&gt;1. Create a new application called scenery in the same projects directory to demonstrate the use of an active view.&lt;br /&gt;&gt; rails scenery&lt;br /&gt;&gt; cd scenery&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;The command output is shown in Diagram-98.&lt;br /&gt;&lt;a style="font-weight: bold;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sgmvu3JDp7I/AAAAAAAAARY/ZlByniSLpMQ/s1600-h/ws2do9.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 473px; height: 310px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sgmvu3JDp7I/AAAAAAAAARY/ZlByniSLpMQ/s320/ws2do9.JPG" alt="" id="BLOGGER_PHOTO_ID_5334988453207844786" border="0" /&gt;&lt;/a&gt;Diagram-98 - the command output of "rails scenery"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. Create a controller called Demo in scenery\app\controllers&lt;br /&gt;scenery&gt; ruby script/generate controller Demo&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;The Demo controller class is created (see Diagram-99)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SgmvrShKbDI/AAAAAAAAARQ/dDHqg57R69s/s1600-h/ws2doa.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 477px; height: 313px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SgmvrShKbDI/AAAAAAAAARQ/dDHqg57R69s/s320/ws2doa.JPG" alt="" id="BLOGGER_PHOTO_ID_5334988391837232178" border="0" /&gt;&lt;/a&gt;Diagram-99 - Demo controller class&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. Add an action to demo_controller.rb as the method called rubycobe&lt;br /&gt;class DemoController&lt; style="font-weight: bold;"&gt;Answer:&lt;br /&gt;I use text editor to modify the demo_controller.rb controller class and the Diagram-100 shows the screen dump of defining the method rubycode.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgmvoYy9feI/AAAAAAAAARI/XYdRhc24zVU/s1600-h/ws2dob.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 473px; height: 244px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgmvoYy9feI/AAAAAAAAARI/XYdRhc24zVU/s320/ws2dob.JPG" alt="" id="BLOGGER_PHOTO_ID_5334988341982887394" border="0" /&gt;&lt;/a&gt;Diagram-100 - rubycode method inside Demo Class&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. Add a view template - scenery\app\views\demo\rubycode.rhtml&lt;br /&gt;We will edit this view in later steps but you may like to add your own test HTML code to the view at this stage.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;I use edit.exe text editor to edit rubycode.rhtml. The Diagram-101 shows the related screen dump.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/SgmvkvLC3oI/AAAAAAAAARA/r1zPyw1tCJA/s1600-h/ws2doc.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 477px; height: 247px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/SgmvkvLC3oI/AAAAAAAAARA/r1zPyw1tCJA/s320/ws2doc.JPG" alt="" id="BLOGGER_PHOTO_ID_5334988279270006402" border="0" /&gt;&lt;/a&gt;Diagram-101 - rubycode.rhtml&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. Save and restart the Web server and navigate to http://localhost:3000/scenery/rubycode&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;The output of rubycode.rhtml is shown in Diagram-102.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SgmvgrdRHjI/AAAAAAAAAQ4/g2Uprj7O4iI/s1600-h/ws2dod.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 472px; height: 342px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SgmvgrdRHjI/AAAAAAAAAQ4/g2Uprj7O4iI/s320/ws2dod.JPG" alt="" id="BLOGGER_PHOTO_ID_5334988209553219122" border="0" /&gt;&lt;/a&gt;Diagram-102 - rubycode.rhtml&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. Use the Time.now example to pass data from an action to a view.&lt;br /&gt;7. Modify and save the rubycode action with a value for the time instance variable in the DemoController class in app\controllers\demo_controller.rb&lt;br /&gt;class DemoController&lt; time_now =" Time.now"&gt;&lt;br /&gt;9. Restart the Web server and navigate the browser to http://localhost:3000/demo/rubycode&lt;br /&gt;Data has been passed from the action to the view as it is done with SQL requests. The instance variables of a Ruby class are available to view templates by referencing the action’s instance variables by name in the view .rhtml template.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;I have then modified the demo_controller.rb with the given instruction. After that, running http://localhost:3000/scenery/rubycode in browser returns that @time_now parameter is passed into rubycode view. It is called by reference. The diagram-103 shows the modified demo_controller.rb file and the output of rubycode.rhml.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SgmvFNPv8mI/AAAAAAAAAQg/8q0FbstNF1k/s1600-h/ws2doe.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 147px; height: 65px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SgmvFNPv8mI/AAAAAAAAAQg/8q0FbstNF1k/s320/ws2doe.JPG" alt="" id="BLOGGER_PHOTO_ID_5334987737586987618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SgmvAnE9sAI/AAAAAAAAAQY/Hq_cnFQisT4/s1600-h/ws2dof.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 90px; height: 64px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SgmvAnE9sAI/AAAAAAAAAQY/Hq_cnFQisT4/s320/ws2dof.JPG" alt="" id="BLOGGER_PHOTO_ID_5334987658621726722" border="0" /&gt;&lt;/a&gt;Diagram-103 - the modified demo_controller class and the output of rubycode.rhtml&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Part C: Screen layouts and forms processing with text fields, check boxes, radio buttons and multiple list controls&lt;/span&gt;&lt;br /&gt;1. Create a new application called scenery in the same projects directory to demonstrate the use of an active view.&lt;br /&gt;&gt; rails scenery&lt;br /&gt;&gt; cd scenery&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;The cabs project is created as requested. The Diagram-104 shows the command output.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sgmu4KFp68I/AAAAAAAAAQI/R2go7JNooyo/s1600-h/ws2doh.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 468px; height: 304px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sgmu4KFp68I/AAAAAAAAAQI/R2go7JNooyo/s320/ws2doh.JPG" alt="" id="BLOGGER_PHOTO_ID_5334987513401043906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-104 - the command output of rails cabs&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. Create a controller called Vehicle in cabs\app\controllers&lt;br /&gt;cabs&gt; ruby script/generate controller Vehicle&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;The Vehicle class is created and is shown in Diagram-105.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgmuzAnGufI/AAAAAAAAAQA/0ib59yG3Qy8/s1600-h/ws2doi.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 466px; height: 301px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgmuzAnGufI/AAAAAAAAAQA/0ib59yG3Qy8/s320/ws2doi.JPG" alt="" id="BLOGGER_PHOTO_ID_5334987424957643250" border="0" /&gt;&lt;/a&gt;Diagram-105- Vehicle class is generated.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. Add an action to vehicle_controller.rb as the method called cabtype&lt;br /&gt;class VehicleController&lt; style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Answer:&lt;br /&gt;I then added method to vehicle class (see Diagram-106)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgmuvhSUs1I/AAAAAAAAAP4/zbJCqC3F0Mc/s1600-h/ws2doj.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 461px; height: 242px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgmuvhSUs1I/AAAAAAAAAP4/zbJCqC3F0Mc/s320/ws2doj.JPG" alt="" id="BLOGGER_PHOTO_ID_5334987365009371986" border="0" /&gt;&lt;/a&gt;Diagram-106 - cabtype method&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. Add a view template - cabs\app\views\vehicle\cabtype.rhtml&lt;br /&gt;We will edit this view in later steps but you may like to add your own test HTML code to the view at this stage.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;The view template cabtype.rhtml is created for the cabtype method. (See Diagram-107)&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sgmup87TohI/AAAAAAAAAPw/cbStomOVKic/s1600-h/ws2dok.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 459px; height: 239px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sgmup87TohI/AAAAAAAAAPw/cbStomOVKic/s320/ws2dok.JPG" alt="" id="BLOGGER_PHOTO_ID_5334987269349810706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-107 - View Template cabtype.rhtml&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. Save the view and restart the Web server and navigate to http://localhost:3000/cabs/cabtype&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;After that, I run http://localhost:3000/cabs/cabtype in the browser and get the result in Diagram-108)&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SgmukHpLpXI/AAAAAAAAAPo/-tv_FLUyAE8/s1600-h/ws2dol.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 465px; height: 516px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SgmukHpLpXI/AAAAAAAAAPo/-tv_FLUyAE8/s320/ws2dol.JPG" alt="" id="BLOGGER_PHOTO_ID_5334987169147364722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-108 - The output of cabtype&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. Create a file in the public directory - \cabs\public called input.html&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;The input.html is created with the given html codes and shown in Diagram-109.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/SgmueiUP2WI/AAAAAAAAAPg/DmIlsrQOwfo/s1600-h/ws2dom.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 463px; height: 331px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/SgmueiUP2WI/AAAAAAAAAPg/DmIlsrQOwfo/s320/ws2dom.JPG" alt="" id="BLOGGER_PHOTO_ID_5334987073228101986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-109 - input.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7. Edit the vehicle_controller.rb here is a start. The data in each form element in the Rails application can be accessed via its name and a hash called params.&lt;br /&gt;&lt;br /&gt;class VehicleController&lt; data1 =" params[:text1]" data2 =" params[:check1]" data3 =" params[:radios1]" data4 =" params[:building1]" style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;The vehicle_controller.rb file is modified and shown in Diagram-110.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/SgmuZ31p7vI/AAAAAAAAAPY/ZRcFpsqH0hE/s1600-h/ws2don.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 466px; height: 312px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/SgmuZ31p7vI/AAAAAAAAAPY/ZRcFpsqH0hE/s320/ws2don.JPG" alt="" id="BLOGGER_PHOTO_ID_5334986993106022130" border="0" /&gt;&lt;/a&gt;Diagram-110 - the modified vehicle_controller.rb&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;8. Edit the view template cabtype.rhtml&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;The cabtype.html is edited and shown in Diagram-111&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/SgmuPyHOx6I/AAAAAAAAAPQ/2djdqIFw1oM/s1600-h/ws2doo.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 465px; height: 311px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/SgmuPyHOx6I/AAAAAAAAAPQ/2djdqIFw1oM/s320/ws2doo.JPG" alt="" id="BLOGGER_PHOTO_ID_5334986819770435490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-111 -cabtype.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;9. Start the Web server and go to the opening page of this application at http://localhost:3000/input.html&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;http://localhost:3000/input.html is shown in Diagram-112&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SgmuJqD5RuI/AAAAAAAAAPI/LQ7RdpWoigM/s1600-h/ws2dop.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 468px; height: 289px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SgmuJqD5RuI/AAAAAAAAAPI/LQ7RdpWoigM/s320/ws2dop.JPG" alt="" id="BLOGGER_PHOTO_ID_5334986714529744610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-112 - output of input.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;10. Submit the forms data. What do you find?&lt;br /&gt;How it works&lt;br /&gt;When you use the params method in Rails, it implements the details of the parameter hash to be changed without breaking existing code. For example, the params hash for radios1 will contain the value of the radio button and the data is extracted in the cabtype action. With the multiple list box example in Rails, using the select controls, the params hash of building1 is an associative array (dictionary) holding the users multiple selections and is not just a drop-down list.&lt;br /&gt;Rails supports other HTML controls for forms processing via text fields, check boxes, radio buttons and list select controls etc. As an example start_form_tag abd stop_form_tag as well as methods for each item such as the create field method text_field_tag.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;My finding is when I enter the data in the field and click "submit". The data is passed from input to cabtype.rhml and also displayed in cabtype.rhml. The cabtype.rhml also does some logic checking. If the click box is not clicked, the program prompts error. (See Diagram-113)&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/SgmuFTxrTNI/AAAAAAAAAPA/hqMgJqZxcXo/s1600-h/ws2doq.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 468px; height: 338px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/SgmuFTxrTNI/AAAAAAAAAPA/hqMgJqZxcXo/s320/ws2doq.JPG" alt="" id="BLOGGER_PHOTO_ID_5334986639828274386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-113 - The result after click "submit" button&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;11. Report your progress or findings in your Developers Blog.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;I have successfully implemented this workshop. All expected results are returned.&lt;br /&gt;My findings is that&lt;br /&gt;a. Many given links is wrong&lt;br /&gt;b. Some html code does not obey xhtml standard, like br&lt;br /&gt;c. The form cabtype.rhtml contains some wrong script. Sam Kwong and I debug it and get the expected result.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-3304416373964356510?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/3304416373964356510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/workshop-5-admiring-scenery-forms-ajax.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/3304416373964356510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/3304416373964356510'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/workshop-5-admiring-scenery-forms-ajax.html' title='Workshop 5 Admiring the scenery Forms, AJAX screen layout and mobile interfaces'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0NiBYKhCm2o/SgmwJZ3XuyI/AAAAAAAAASg/OlJ3kWZMLkQ/s72-c/ws2do1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-5281956531736802071</id><published>2009-05-09T04:28:00.004+08:00</published><updated>2009-05-09T04:43:41.878+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 26'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q3. Edit TWO similar versions (include bibliography) of that summary to CSU Interact:</title><content type='html'>&lt;span style="font-weight: bold;"&gt;a. post Version A as a wiki page contribution;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;b. add Version B as a final entry to close your developer's blog.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;a. I have modified the summary and placed it in wiki page of CSU Interact. The URL is &lt;a href="http://interact.csu.edu.au/portal/site/ITC594_200940_W_D/page/5b2177b9-ee38-42d9-80bc-9c04903ec49e"&gt;http://interact.csu.edu.au/portal/site/ITC594_200940_W_D/page/5b2177b9-ee38-42d9-80bc-9c04903ec49e&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;b. The final entry of the exercises is modified and placed below&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Joseph Cheung: How to make e-commerce successful?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;The e-commerce website brings people very convenient way to have transaction online. In order to put the business onto Internet, the followings should be consided.&lt;br /&gt;&lt;br /&gt;Firstly, types of the website should be defined, for instance, is the website a type of CRM, SCM, ERP, Workflow Management, Price Comparsion... etc?&lt;br /&gt;&lt;br /&gt;Secondly, the selection of SDLC is considered, such as, Agile and Rapid Evolutionary Prototyping Approach. These SDLC(s) makes use of prototypes and are suitable for up-to-date changing environment so that the end product should match users' requirement.&lt;br /&gt;&lt;br /&gt;Then, a prototype can be developed. The way to build it, ROR should be a good choice as ROR obeys OO and MVC approaches. To work with OO smoothly, UML is suggested to use because UML, namely, UseCase, Class, Sequence... diagrams makes OO understandable and clear. MVC defines Model, View and Controller. MVC divides a html page into three in term of functionality instead of a tranditional html where everything is done.&lt;br /&gt;&lt;br /&gt;When the prototype is built, end users can review it until all requiements are met. For example, some enhancements like VoiceXML, multiple threads and software agents can be utilized.&lt;br /&gt;&lt;br /&gt;After the website is finalized, connection method and hardware platform should be determined. Is VPN, Intranet, Externet...etc selected? Is either Connectionless or Connection-Oriented protocol chosen? Is either P2P or Grid computing used? Is it run on Mobilephone?&lt;br /&gt;&lt;br /&gt;Then, security and payment method should also be concerned. The following questions are the examples. Should NIDS, HIDS, Firewall or AntiVirus be implemented? Are there any encryption like RSA or SSL or authentication like SET? Accept VISA? Work with PayPal or Verisign? Any e-certification or e-ID? Allow cookies?&lt;br /&gt;&lt;br /&gt;Finally, it should be considered how to make the website have high ranking, for example, giving the website better and more precise keyword description or advertising the website in online communities.&lt;br /&gt;&lt;br /&gt;If all the mentioned ideas are implemented, then the website should be successful.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-5281956531736802071?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/5281956531736802071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q3-edit-two-similar-versions-include.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/5281956531736802071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/5281956531736802071'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q3-edit-two-similar-versions-include.html' title='Q3. Edit TWO similar versions (include bibliography) of that summary to CSU Interact:'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-7026062224476798337</id><published>2009-05-07T16:38:00.009+08:00</published><updated>2009-05-09T04:24:32.780+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 26'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q2. Summarise your understanding and describe its relevance ...</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Q2. Summarize your understanding and describe its relevance (250 words max) in either your study at university or in your work environment;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;The e-commerce website brings people very &lt;/span&gt;&lt;span&gt;convenient way to have transaction online. &lt;/span&gt;&lt;span&gt;In order to put the business onto Internet, many thing should be considered.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Firstly, types of the website should be defined, for instance, is the website CRM, SCM, ERP, Workflow Management, Price Comparsion... etc?&lt;br /&gt;&lt;span&gt;&lt;br /&gt;Secondly, the selection of SDLC is considered, such as, Agile and &lt;/span&gt;Rapid Evolutionary Prototyping Approach. These SDLC(s) makes use of prototypes and are suitable for up-to-date changing environment so that the end product should match users' requirement.&lt;br /&gt;&lt;br /&gt;Then, a prototype can be developed. The way to build it, ROR should be a good choice as ROR obeys OO and MVC approaches. To work with OO smoothly, UML is suggested to use because UML, namely, UseCase, Class, Sequence... diagrams make OO understandable and clear. MVC defines Model, View and Controller. Model interacts with backend database and View presents user interface when Controller interacts with View and Model. MVC divides a html page into three in term of functionality instead of a tranditional html where everything is done.&lt;br /&gt;&lt;br /&gt;When the prototype is built, end users can review it until all requiements are met. For example, some enhancements like VoiceXML, multiple threads and software agents can be utilized.&lt;br /&gt;&lt;br /&gt;After the website is finalized, connection method and hardware platform should be determined. Is VPN, Intranet, Externet...etc selected? Is either Connectionless or Connection-Oriented protocol chosen? Is either P2P or Grid computing used? Is it run on Mobilephone?&lt;br /&gt;&lt;br /&gt;Then, security and payment method should also be concerned. The following questions are the examples. Should NIDS, HIDS, Firewall or AntiVirus be implemented? Are there any encryption like RSA or SSL or authentication like SET? Accept VISA? Work with PayPal or Verisign? Any e-certification or e-ID? Allow cookies?&lt;br /&gt;&lt;br /&gt;Finally, it should be considered how to make the website have high ranking, for example, giving the website better and more precise keyword description or advertising the website in online communities.&lt;br /&gt;&lt;br /&gt;If all the above points are implemented, then the website is successfully.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-7026062224476798337?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/7026062224476798337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q2-summarise-your-understanding-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7026062224476798337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7026062224476798337'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q2-summarise-your-understanding-and.html' title='Q2. Summarise your understanding and describe its relevance ...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-3941656735838383593</id><published>2009-05-06T02:24:00.009+08:00</published><updated>2009-05-07T16:38:01.514+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 26'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q1. Choose ONE of the four ways to manage and develop integrated systems as listed below;</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Exercise 26&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What to do:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The final topic is for group reflective study using the wiki tool in CSU Interact and a way for you to add a final reflective comment on systems integration and make your closing remarks to your Developer's blog.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Q1. Choose ONE of the four ways to manage and develop integrated systems as listed below;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;I chooses the way - &lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Business Process Analysis&lt;/span&gt; &lt;/span&gt;to manage and develop integrated systems and I am using ROR to do it. From the given information below, ...&lt;br /&gt;&lt;br /&gt;Organizations can use several systems to monitor, record business process transactions such as:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Enterprise Resource Planning (ERP), &lt;/li&gt;&lt;li&gt;Customer Relationship Management (CRM),&lt;/li&gt;&lt;li&gt;Workflow Management&lt;/li&gt;&lt;/ul&gt;These software systems store data on instances of business processes transactions and can be analyzed using data or process mining (PM) and reverse business engineering (RBE). In the case of ERP systems, integration of all data and processes goes into a single database as system components - the ultimate integration notion, perhaps.&lt;br /&gt;&lt;br /&gt;I have 3 options. The options are ERP, CRM and Workflow Management. Within these 3 options, I would like to select &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Workflow Management&lt;/span&gt;&lt;/span&gt; for my application development.&lt;br /&gt;&lt;br /&gt;With this Workflow Management, the employees of a company can enter their OverTime Labouring so that OverTime Payment can be calculated and paid.&lt;br /&gt;&lt;br /&gt;The Diagram-91 shows the Worflow Management System.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgKUBCzBmzI/AAAAAAAAAOA/xSRzIslBHaQ/s1600-h/ot.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 476px; height: 356px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgKUBCzBmzI/AAAAAAAAAOA/xSRzIslBHaQ/s320/ot.JPG" alt="" id="BLOGGER_PHOTO_ID_5332987654411754290" border="0" /&gt;&lt;/a&gt;Diagram-91 - Workflow Management System for Recording Overtime of Employees&lt;br /&gt;&lt;br /&gt;This workflow management is to record Overtime Activities of Customer's Service Calls. The JobID is the ID assigned for the Customer's Service Calls. The EmployeeName is the name of the employees. The EmployeeID is the ID number of the employees. The JobDescription is the text to descirbe what to do in the Customer's Service Calls. The date and time is the date and time when the employees give services to the customers.&lt;br /&gt;&lt;br /&gt;Every Employee needs to input entries to this system if the employee works over normal office hours. When the entries are accumulated, the management level can then analyze the overtime behaviours of the employees and then the related company policies of the management level can be set. Also the workflow management system help account department to calculate the OT payment.&lt;br /&gt;&lt;br /&gt;I have successfully developed the workflow management system using ROR. To manage this ROR system, we can use &lt;span style="font-weight: bold;"&gt;PhpMyAdmin&lt;/span&gt; tool to manage the overtime database in MySQL. For the source codes in ROR, it is easy to maintain because ROR uses MVC and OOP approach. It is also suggested to use ROR IDE to manage the ROR source codes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-3941656735838383593?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/3941656735838383593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q1-choose-one-of-four-ways-to-manage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/3941656735838383593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/3941656735838383593'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q1-choose-one-of-four-ways-to-manage.html' title='Q1. Choose ONE of the four ways to manage and develop integrated systems as listed below;'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0NiBYKhCm2o/SgKUBCzBmzI/AAAAAAAAAOA/xSRzIslBHaQ/s72-c/ot.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-623553253071038507</id><published>2009-05-06T01:27:00.004+08:00</published><updated>2009-05-06T02:20:53.420+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 25'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q4. According to Nokia:</title><content type='html'>&lt;span style="font-weight: bold;"&gt;According to Nokia:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Nokia One Mobile Connectivity Service provides easy and secure access to email, calendar, directory and more from a mobile phone, PDA, PC or fixed-line phone - take your corporate applications mobile.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Why is a company like Nokia - http://www.nokia.com - described as having end-to-end expertise?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;According to Takeshi Natsuno, media director of Gateway Business Department, NTT Mobile Communications Network, Inc (NTT DoCoMo) of Japan:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The mobile phone will be an electronic wallet.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;Nokia is a world leader in mobile communications, driving the growth and sustainability of the broader mobility industry. Nokia connects people to each other and the information that matters to them with easy-to-use and innovative products like mobile phones, devices and solutions for imaging, games, media and businesses. Nokia provides equipment, solutions and services for network operators and corporations. (Nokia, 2007)&lt;br /&gt;&lt;br /&gt;Nokia is described as having end-to-end expertise because Nokia recently works with Siemens to create &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Nokia Siemens Networks&lt;/span&gt;&lt;/span&gt; which brings a full end-to-end expertise to help customers maximize investments and provide seamless experiences for end users&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Siemens (Berlin and Munich) is a global powerhouse in electrical engineering and electronics. The company has around 475,000 employees (incl. discontinued operations) working to develop and manufacture products, design and install complex systems and projects, and tailor a wide range of services for individual requirements. Siemens provides innovative technologies and comprehensive know-how to benefit customers in over 190 countries. (Nokia, 2007)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Nokia (2007). "&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Nokia Siemens Networks: Preparing to Connect the World". Press Release of Nokia.com, Retrieved from URL - &lt;/span&gt;&lt;a href="http://www.nokia.com/A4136001?newsid=1104266"&gt;&lt;span style="font-size:85%;"&gt;http://www.nokia.com/A4136001?newsid=1104266&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-623553253071038507?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/623553253071038507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q4-according-to-nokia.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/623553253071038507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/623553253071038507'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q4-according-to-nokia.html' title='Q4. According to Nokia:'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-8677228970644463107</id><published>2009-05-06T00:09:00.004+08:00</published><updated>2009-05-06T02:07:32.417+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 25'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q3. Visit the W3C website...</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Q3. Visit the W3C website and find the status of the VoiceXML project. When do you think it will affect business on the Web and what will its impact be?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The status of the VoiceXML is that ...&lt;br /&gt;The origins of VoiceXML began&lt;span style="font-weight: bold;"&gt; in 1995&lt;/span&gt; as an XML-based dialog design language intended to simplify the speech recognition application development process within an AT&amp;amp;T project called Phone Markup Language (PML). As AT&amp;amp;T reorganized, teams at AT&amp;amp;T, Lucent and Motorola continued working on their own PML-like languages.&lt;br /&gt;In 1998, W3C hosted a conference on voice browsers. By this time, AT&amp;amp;T and Lucent had different variants of their original PML, while Motorola had developed VoxML, and IBM was developing its own SpeechML. Many other attendees at the conference were also developing similar languages for dialog design; for example, such as HP's TalkML and PipeBeach's VoiceHTML.&lt;br /&gt;The VoiceXML Forum was then formed by AT&amp;amp;T, IBM, Lucent, and Motorola to pool their efforts. The mission of the VoiceXML Forum was to define a standard dialog design language that developers could use to build conversational applications. They chose XML as the basis for this effort because it was clear to them that this was the direction technology was going.&lt;br /&gt;In 2000, the VoiceXML Forum released VoiceXML 1.0 to the public. Shortly thereafter, VoiceXML 1.0 was submitted to the W3C as the basis for the creation of a new international standard. VoiceXML 2.0 is the result of this work based on input from W3C Member companies, other W3C Working Groups, and the public.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(W3C Recommendation, 2004)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When do I think VoiceXML will affect business on the web?&lt;br /&gt;I think that VoiceXML will become more popular &amp;amp; common and will be used in ecommerce application more frequently &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;from now on&lt;/span&gt;&lt;/span&gt;. VoiceXML makes people more convenient, for example, text-to-speech... etc. However, the drawback of VoiceXML is that larger bandwidth is required. Nowadays, the broadband network is offered by ISP to access Internet so large files such as Voice can be transmitted more easily. As a result, VoiceXML can be developed and used frequently and easily regardless of the bandwidth issue.&lt;br /&gt;On the other hand, VoiceXML will also be used in mobile phone network. Similarly, 3G mobile phone network makes more bandwidth so that VoiceXML can be developed and used.&lt;br /&gt;&lt;br /&gt;What will its impact be?&lt;br /&gt;As mentioned above, VoiceXML will become more popular. The companies of ecommerce need to spend more cost to development VoiceXML application. The endusers also have to use broadband Internet or 3G phone.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. W3C Recommendation (2004). "Voice Extensible Markup Language (VoiceXML) Version 2.0". W3C Recommendation, Retrieved from URL - &lt;a href="http://www.w3.org/TR/voicexml20/"&gt;http://www.w3.org/TR/voicexml20/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-8677228970644463107?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/8677228970644463107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q3-visit-w3c-website.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8677228970644463107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8677228970644463107'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q3-visit-w3c-website.html' title='Q3. Visit the W3C website...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-7298032110657993714</id><published>2009-05-05T02:57:00.002+08:00</published><updated>2009-05-05T03:28:20.522+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 25'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q2. Visit an airline ....</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Q2. Visit an airline Website and search for information on WAP or SMS access to booking airline services. Do the same for WAP or SMS services in Banking. How do both industries compare?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have visited &lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Qantas.com airline&lt;/span&gt; &lt;/span&gt;website and searched for information on WAP or SMS access to booking airline services.  The following is my findings....&lt;br /&gt;WAP of Qantas.com provides the latest flight information direct to your mobile. It (http://www.qantas.com.au/flightinfo/dyn/wap) offers...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Checking Real time flight arrival and departure times&lt;/li&gt;&lt;li&gt;Viewing Worldwide flight timetables&lt;/li&gt;&lt;li&gt;View your booking&lt;/li&gt;&lt;li&gt;Checking Contact numbers for Qantas offices worldwide&lt;/li&gt;&lt;li&gt;Checking Qantas Club Lounges&lt;/li&gt;&lt;li&gt;SMS Flight Update&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;In the Qantas.com's WAP, it is not necessary to login and all the functions provided are to check &amp;amp; View things... It seems only to allow users to select records from database and no insert, drop, update operation is allowed. Therefore, the users can only see or read the information in the Qantas.com's WAP but they cannot modify and add something into the WAP site.&lt;br /&gt;&lt;br /&gt;Then I have visited&lt;span style="font-size:130%;"&gt; &lt;span style="font-weight: bold;"&gt;Swedbank.lv online banking&lt;/span&gt; &lt;/span&gt;and searched for the information on WAP or SMS... The following is my findings...&lt;br /&gt;WAP of swedbank.lv bank (http://www.swedbank.lv/eng/pakalp/pr_5_2_9.php) offers...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;make inner bank payments;&lt;/li&gt;&lt;li&gt;make domestic payments in LVL currency;&lt;/li&gt;&lt;li&gt;make Your pre-defined payments;&lt;/li&gt;&lt;li&gt;see the account balance;&lt;/li&gt;&lt;li&gt;overview last ten transactions made on the account.&lt;/li&gt;&lt;/ul&gt;The users for this WAP site cannot only seeing account information, but also input into the WAP site, for example, making payment. As the service of this WAP site involves money and user input, Swedbank.lv requires users to login first before making any transactions.&lt;br /&gt;&lt;br /&gt;To compare Qantas.com's WAP and SwedBank.lv's WAP in term of functionality, I first find that they are both B2C e-commerce. Then Qantas.com only provides read-only information for users when Swedbank.lv allows users' input. As Swedbank.lv allows users' input, Swedbank.lv requires authentication.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-7298032110657993714?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/7298032110657993714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q2-visit-airline.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7298032110657993714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7298032110657993714'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q2-visit-airline.html' title='Q2. Visit an airline ....'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-1692013679322585531</id><published>2009-05-05T02:06:00.003+08:00</published><updated>2009-05-05T02:21:53.169+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 25'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q1. What is meant by a location based service?</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Exercise 25: M-commerce and the e-wallet: Innovation and mobile devices&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Explore ONE of the problems associated with mobile technology or their supplier, from 1 to 4 below:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Q1. What is meant by a location based service?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A location-based service (LBS) is an information and entertainment service, accessible with mobile devices through the mobile network and utilizing the ability to make use of the geographical position of the mobile device.&lt;br /&gt;LBS services can be used in a variety of contexts, such as health, work, personal life, etc. LBS services include services to identify a location of a person or object, such as discovering the nearest banking cash machine or the whereabouts of a friend or employee. LBS services include parcel tracking and vehicle tracking services. LBS can include mobile commerce when taking the form of coupons or advertising directed at customers based on their current location. They include personalized weather services and even location-based games. They are an example of telecommunication convergence.&lt;br /&gt;This concept of location based systems is not compliant with the standardized concept of real time locating systems and related local services (RTLS), as noted in ISO/IEC 19762-5 and ISO/IEC 24730-1.&lt;span style="font-weight: bold;"&gt; (Wikipedia, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Wikipedia (2009). "Location-Based Service". Wikipedia The Free Encyclopedia, Retrieved from URL - &lt;a href="http://en.wikipedia.org/wiki/Location-based_service"&gt;http://en.wikipedia.org/wiki/Location-based_service&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-1692013679322585531?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/1692013679322585531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q1-what-is-meant-by-location-based.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1692013679322585531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1692013679322585531'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q1-what-is-meant-by-location-based.html' title='Q1. What is meant by a location based service?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-5775794092912765750</id><published>2009-05-05T01:44:00.004+08:00</published><updated>2009-05-05T22:40:04.190+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 24'/><title type='text'>Q4. Computing ethics and bot programming case study: rocky</title><content type='html'>&lt;span style="font-weight: bold;"&gt;a. Get an account username and password from the lecturer to LC_MOO at http://ispg.csu.edu.au:7680 and login to the Welcome Lobby.&lt;/span&gt;  &lt;span style="font-weight: bold;"&gt;b. Hold a 5-minutes discussion with Rocky on a special topic.&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Commands: act rocky (start bot) hush rocky (stop bot)&lt;/span&gt;  &lt;span style="font-weight: bold;"&gt;c. Rocky is an ELIZA-like bot. Report your findings.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have logged into the Welcome Lobby of http://ispg.csu.edu.au:7680/. My account is train5 with password train5. I spend 7 minutes to discuss with Rocky. I successfully activate rocky and hush rocky. The diagram-90 show what I have done with Rocky.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/SgBNzL6F7qI/AAAAAAAAANo/TIMaDQSGNLY/s1600-h/q1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 82px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/SgBNzL6F7qI/AAAAAAAAANo/TIMaDQSGNLY/s320/q1.JPG" alt="" id="BLOGGER_PHOTO_ID_5332347500571782818" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgBOJmZ9s8I/AAAAAAAAANw/ZKCV9ylE9gQ/s1600-h/q2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 145px; height: 79px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgBOJmZ9s8I/AAAAAAAAANw/ZKCV9ylE9gQ/s320/q2.JPG" alt="" id="BLOGGER_PHOTO_ID_5332347885641905090" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgBOnhtZ7vI/AAAAAAAAAN4/pH0_VcNHZj8/s1600-h/q3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 138px; height: 78px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SgBOnhtZ7vI/AAAAAAAAAN4/pH0_VcNHZj8/s320/q3.JPG" alt="" id="BLOGGER_PHOTO_ID_5332348399777345266" border="0" /&gt;&lt;/a&gt;Diagram-90 - Interact with Rocky&lt;br /&gt;&lt;br /&gt;Rocky is the ELIZA-like bot which can answer you with predefined answers. For instance, when I type activate rocky, rocky would reply me with the message -&lt;span style="font-weight: bold;"&gt; Gee thanks for waking me up! I must have dozed off...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-5775794092912765750?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/5775794092912765750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q4-computing-ethics-and-bot-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/5775794092912765750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/5775794092912765750'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q4-computing-ethics-and-bot-programming.html' title='Q4. Computing ethics and bot programming case study: rocky'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0NiBYKhCm2o/SgBNzL6F7qI/AAAAAAAAANo/TIMaDQSGNLY/s72-c/q1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-8426679600010928873</id><published>2009-05-05T01:18:00.002+08:00</published><updated>2009-05-05T01:42:47.679+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 24'/><title type='text'>Q3. Identify various activities in e-commerce where software agents are currently in use.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Haag (2006)&lt;/span&gt; suggests that there are only four essential types of intelligent software agents:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Buyer agents or shopping bots&lt;/li&gt;&lt;li&gt;User or personal agents&lt;/li&gt;&lt;li&gt;Monitoring-and-surveillance agents&lt;/li&gt;&lt;li&gt;Data Mining agents&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Buyer agents (shopping bots) - &lt;/span&gt;&lt;br /&gt;Buyer agents travel around a network (i.e. the internet) retrieving information about goods and services. These agents, also known as 'shopping bots', work very efficiently for commodity products such as CDs, books, electronic components, and other one-size-fits-all products. Amazon.com is a good example of a shopping bot.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;User agents (personal agents) - &lt;/span&gt;&lt;br /&gt;User agents, or personal agents, are intelligent agents that take action on your behalf. In this category belong those intelligent agents that already perform or will shortly perform the tasks, for example, Checking your e-mail, sorting it according to the user's order of preference, and alerting you when important emails arrive.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Monitoring-and-surveillance (predictive) agents - &lt;/span&gt;&lt;br /&gt;Monitoring and Surveillance Agents are used to observe and report on equipment, usually computer systems. The agents may keep track of company inventory levels, observe competitors' prices and relay them back to the company, watch stock manipulation by insider trading and rumors, etc.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Data mining agents - &lt;/span&gt;&lt;br /&gt;This agent uses information technology to find trends and patterns in an abundance of information from many different sources. The user can sort through this information in order to find whatever information they are seeking. &lt;span style="font-weight: bold;"&gt;(Wikipedia, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Gini (1999)&lt;/span&gt; also identifies some activities of e-commerce' software agent. The activities are...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Procurement: obtaining materials, services. managing inflow into the organization towards the end user.&lt;/li&gt;&lt;li&gt;Brokering Services: finding information about products, sellers, and prices, providing protection for privacy, validating purchasers credit, billing and accounting, etc.&lt;/li&gt;&lt;li&gt;Digital Libraries and Recommending Services: retrieving information from distributed sources, filtering information on contents, collaborative filtering.&lt;/li&gt;&lt;li&gt;Notification Services: notifying of new books or CDs, notifying when specific products are available at a specific price. &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Haag Stephen (2006). "Management Information Systems for the Information Age". Pages 224-228&lt;br /&gt;2. Wikipedia (2009). "Software Agent". Wikipedia The Free Encyclopedia, Retrieved from URL - &lt;a href="http://en.wikipedia.org/wiki/Software_agent#CITEREFHaag2006"&gt;http://en.wikipedia.org/wiki/Software_agent#CITEREFHaag2006&lt;/a&gt;&lt;br /&gt;3. Gini Maria (1999). "Agents and other 'Intelligent Software' for e-Commerce". Department of Computer Science and Engineering in University of Minnesota, Retrieved from URL - &lt;a href="http://www-users.cs.umn.edu/%7Egini/csom.html#intro"&gt;http://www-users.cs.umn.edu/~gini/csom.html#intro&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-8426679600010928873?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/8426679600010928873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q3-identify-various-activities-in-e.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8426679600010928873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8426679600010928873'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q3-identify-various-activities-in-e.html' title='Q3. Identify various activities in e-commerce where software agents are currently in use.'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-2700574561438004600</id><published>2009-05-04T21:46:00.006+08:00</published><updated>2009-05-05T01:01:59.507+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 24'/><title type='text'>Q2. Describe how techniques such as artificial intelligence and statistical techniques are used in software agents</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The software agents using artificial intelligence and statistical techniques are called "Intelligent software agents". The design of intelligent agents (or intelligent software agents) is a branch of artificial intelligence research. Capabilities of intelligent agents include:&lt;br /&gt;1. ability to adapt -&lt;br /&gt;Adaptation implies sensing the environment and reconfiguring in response. This can be achieved through the choice of alternative problem-solving-rules or algorithms, or through the discovery of problem solving strategies. Adaptation may also include other aspects of an agent's internal construction, such as recruiting processor or storage resources.&lt;br /&gt;2. ability to learn -&lt;br /&gt;Learning may proceed through trial-and-error, then it implies a capability of introspection and analysis of behavior and success. Alternatively, learning may proceed by example and generalization, then it implies a capacity to abstract and generalize.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(Answers.com, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Answers.com (2009). "Software Agent". Answers Corporation, Retrieved from URL - &lt;a href="http://www.answers.com/topic/software-agent"&gt;http://www.answers.com/topic/software-agent&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/6083014959034990147-2700574561438004600?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/2700574561438004600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q2-describe-how-techniques-such-as.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2700574561438004600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2700574561438004600'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q2-describe-how-techniques-such-as.html' title='Q2. Describe how techniques such as artificial intelligence and statistical techniques are used in software agents'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-2717489291478879531</id><published>2009-05-03T23:53:00.004+08:00</published><updated>2009-05-04T22:19:38.141+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 24'/><title type='text'>Q1. Differentiate the varius types of software agents</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Exercise 24: Virtual Business worlds and cyberagents&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Search the Web for a site that uses a cyber character or cyber agent to host a business site. (If you create a successful cyber agent, you may be able to get large companies to use it to sell their products online.)&lt;/span&gt;  &lt;span style="font-weight: bold;"&gt;Q1. Differentiate the various types of software agents. &lt;/span&gt;  &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Q1. Differentiate the various types of software agents&lt;br /&gt;&lt;br /&gt;Answer:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;In computer science, a software agent is a piece of software that acts for a user or other program in a relationship of agency. Such "action on behalf of" implies the authority to decide which (and if) action is appropriate.The idea is that agents are not strictly invoked for a task, but activate themselves.&lt;br /&gt;Related and derived concepts include &lt;span style="font-weight: bold;"&gt;Intelligent agents &lt;/span&gt;(in particular exhibiting some aspect of Artificial Intelligence, such as learning and reasoning), &lt;span style="font-weight: bold;"&gt;autonomous agents&lt;/span&gt; (capable of modifying the way in which they achieve their objectives), &lt;span style="font-weight: bold;"&gt;distributed agent&lt;/span&gt;s (being executed on physically distinct computers), &lt;span style="font-weight: bold;"&gt;multi-agent systems&lt;/span&gt; (distributed agents that do not have the capabilities to achieve an objective alone and thus must communicate), and &lt;span style="font-weight: bold;"&gt;mobile agents&lt;/span&gt; (agents that can relocate their execution onto different processors).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(Answers.com, 2009)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Reference:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;1. Answers.com (2009). "Software Agent". Answers Corporation, Retrieved from URL - &lt;a href="http://www.answers.com/topic/software-agent"&gt;http://www.answers.com/topic/software-agent&lt;/a&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-2717489291478879531?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/2717489291478879531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q1-differentiate-varius-types-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2717489291478879531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2717489291478879531'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q1-differentiate-varius-types-of.html' title='Q1. Differentiate the varius types of software agents'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-5187349164608780134</id><published>2009-05-02T18:30:00.007+08:00</published><updated>2009-05-03T23:51:00.857+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 23'/><title type='text'>Q3. How can you get your site listed at major search sites: and how could you improve your site ranking?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I use yahoo.com search engine as an example to have my website listed.&lt;br /&gt;First of all, I need to go to the webpage of Yahoo! Small Business at &lt;a href="http://sem.smallbusiness.yahoo.com/searchenginemarketing/#"&gt;http://sem.smallbusiness.yahoo.com/searchenginemarketing/#&lt;/a&gt;. In this webpage, I need to click "Sign Up" button to register my website (see Diagram-81 for reference).&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sfyps5mnQGI/AAAAAAAAAMw/UplnGFr9Wo8/s1600-h/11.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 470px; height: 273px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sfyps5mnQGI/AAAAAAAAAMw/UplnGFr9Wo8/s320/11.JPG" alt="" id="BLOGGER_PHOTO_ID_5331322647741939810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-81 - Sign Up&lt;br /&gt;&lt;br /&gt;After clicking "Sign Up", I need to select "Target Customers by Geographic Location" in the pull down menu. The menu is on the left of the webpage. I select "Hong Kong" as my Geographic Location (see Diagram-82 for reference) and then click "Get Started" to go to Next Step.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sfyr13IxwLI/AAAAAAAAAM4/pxmrfT9fza8/s1600-h/22.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 470px; height: 268px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sfyr13IxwLI/AAAAAAAAAM4/pxmrfT9fza8/s320/22.JPG" alt="" id="BLOGGER_PHOTO_ID_5331325000722006194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Diagram-82 - My Geographical Location&lt;br /&gt;&lt;br /&gt;After Clicking "Get Started" button, I need to tell Yahoo! where is my target market place, for example, I can choose the entire market (whole world) or Area (just Hong Kong). The Diagram-83 show the step to select target market geographically. Hence, I select "entire market" for my business.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sf1Fy661hXI/AAAAAAAAANA/DihGg3txykM/s1600-h/33.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 466px; height: 267px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sf1Fy661hXI/AAAAAAAAANA/DihGg3txykM/s320/33.JPG" alt="" id="BLOGGER_PHOTO_ID_5331494274988344690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Diagram-83 - My target market&lt;br /&gt;&lt;br /&gt;After selecting the target market, I need to click "Next:Keyboards&gt;" to go to next step. The Diagram-84 is the screen dump to describe the keywords. I key in the Keywords which is related to my  Business, for example, entering words or phrases related to the products and services my business provides. The better keywords describe, the higher ranking of my website obtains. If my website or product is about HDTV, I may put HDTV, LCD TV and Joseph Brand HDTV in the keyword field (see Diagram-84).&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sf1i4a24pSI/AAAAAAAAANI/cdkuukuXhcg/s1600-h/55.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 469px; height: 268px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sf1i4a24pSI/AAAAAAAAANI/cdkuukuXhcg/s320/55.JPG" alt="" id="BLOGGER_PHOTO_ID_5331526255298258210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-84 - Entering Keywords for my products or services&lt;br /&gt;&lt;br /&gt;In Diagram84, I click "Next:Pricing&gt;" button to go to next step after I have finished to enter products' or services' keywords. The next step is to enter budget for the ad. The diagram-85 shows the screen dump in which Yahoo! asks me to enter the amount for "Account Daily Spending Limit" and the amount for "Your Maximum Bid". After entering the amounts, click "Next:Create Ad &gt;" to continue.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sf1qFpWEprI/AAAAAAAAANQ/PBzl2cx-m-o/s1600-h/66.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 469px; height: 269px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sf1qFpWEprI/AAAAAAAAANQ/PBzl2cx-m-o/s320/66.JPG" alt="" id="BLOGGER_PHOTO_ID_5331534179106858674" border="0" /&gt;&lt;/a&gt;Diagram-85 - The expense for the Ad.&lt;br /&gt;&lt;br /&gt;The "Next:Create Ad&gt;" button brings us to the next step. The step - "4. Create Your Ad" in Diagram-86 requires me to enter Title, Description and URL of my website. I put the values "MyTV", "Very Good TV", "http://www.josephtv.com/ to Title, Description and URL respectively. After that, I can click "Next:Review&gt;" to the next step.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sf25hcMYcLI/AAAAAAAAANY/5BwVnsESLmU/s1600-h/77.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 468px; height: 271px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sf25hcMYcLI/AAAAAAAAANY/5BwVnsESLmU/s320/77.JPG" alt="" id="BLOGGER_PHOTO_ID_5331621518031483058" border="0" /&gt;&lt;/a&gt;Diagram-86 - Create the Ad&lt;br /&gt;&lt;br /&gt;In Diagram-87, after filling in the required information, I can click "Activate Now" button to complete the process. After all, I can get my website listed at the major search site like yahoo.com&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sf27VrOvkjI/AAAAAAAAANg/4p8JTBgTRPw/s1600-h/88.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 468px; height: 267px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sf27VrOvkjI/AAAAAAAAANg/4p8JTBgTRPw/s320/88.JPG" alt="" id="BLOGGER_PHOTO_ID_5331623514932744754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Diagram-87 - Activation&lt;br /&gt;&lt;br /&gt;In order to improve my site ranking, we have 2 choices. Firstly, I can add more precise keywords for my website like the keywords in Diagram-84. Or I can put the good and precise keywords description in my website's index.html page. The keywords are added between head tags and within meta tags. The keywords are added to meta tags as attribute. The more precise keywords is added, the higher website ranking is got. The search engines seek things using meta tags keywords, therefore a better keywords' description gains higher ranking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-5187349164608780134?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/5187349164608780134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q3-how-can-you-get-your-site-listed-at.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/5187349164608780134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/5187349164608780134'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q3-how-can-you-get-your-site-listed-at.html' title='Q3. How can you get your site listed at major search sites: and how could you improve your site ranking?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0NiBYKhCm2o/Sfyps5mnQGI/AAAAAAAAAMw/UplnGFr9Wo8/s72-c/11.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-1988595296817469887</id><published>2009-05-02T16:54:00.004+08:00</published><updated>2009-05-03T03:53:25.124+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 23'/><title type='text'>Q2. What is a Meta-Search Engine? Provide some examples.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;meta-search engine&lt;/span&gt;&lt;/span&gt; is a search tool that sends user requests to several other search engines and/or databases and aggregates the results into a single list or displays them according to their source. Metasearch engines enable users to enter search criteria once and access several&lt;br /&gt;search engines simultaneously. Metasearch engines operate on the premise that the Web is too large for any one search engine to index it all and that more comprehensive search results can be obtained by combining the results from several search engines. This also may save the user from having to use multiple search engines separately.&lt;br /&gt;The term Metasearch is frequently used to classify a set of commercial search engines, but is also used to describe the paradigm of searching multiple data sources in real time. The National Information Standards Organization (NISO) uses the terms Federated Search and Metasearch interchangeably to describe this web search paradigm. &lt;span style="font-weight: bold;"&gt;(Wikipedia, 2009)&lt;/span&gt;&lt;br /&gt;The examples of the meta-search engines are listed below...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Clusty - &lt;a href="http://clusty.com/"&gt;http://clusty.com/&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Dogpile - &lt;a href="http://www.dogpile.com/"&gt;http://www.dogpile.com/&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Excit - &lt;a href="http://www.excit.com/"&gt;http://www.excit.com/&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;HotBot - &lt;a href="http://www.hotbot.com/"&gt;http://www.hotbot.com/&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Info.com - &lt;a href="http://www.info.com/"&gt;http://www.info.com/&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;(Wikipedia, 2009)&lt;/span&gt;&lt;br /&gt;&lt;meta\&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Wikipedia (2009). "Metasearch Engine". Wikipedia The Free Encyclopedia, Retrieved from URL - &lt;a href="http://en.wikipedia.org/wiki/Meta-search_engine"&gt;http://en.wikipedia.org/wiki/Meta-search_engine&lt;/a&gt;&lt;/span&gt;&lt;/meta\&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-1988595296817469887?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/1988595296817469887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q2-what-is-meta-search-engine-provide.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1988595296817469887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1988595296817469887'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q2-what-is-meta-search-engine-provide.html' title='Q2. What is a Meta-Search Engine? Provide some examples.'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-904567649181009574</id><published>2009-05-02T16:52:00.002+08:00</published><updated>2009-05-03T03:13:23.862+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 23'/><title type='text'>Q1. What is a Spider? What does it do?</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Exercise 23: Searching Mechanisms&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Q1. What is a Spider? What does it do?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Spider&lt;/span&gt; is a program that automatically fetches Web pages. Spiders are used to feed pages to search engines. It's called a spider because it crawls over the Web. Another term for these programs is webcrawler.&lt;br /&gt;Because most Web pages contain links to other pages, a spider can start almost anywhere. As soon as it sees a link to another page, it goes off and fetches it. Large search engines, like Alta Vista, have many spiders working in parallel. &lt;span style="font-weight: bold;"&gt;(Webopedia, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A web crawler (also known as web spider) is a program which browses the World Wide Web in a methodical, automated manner. A web crawler is one type of webbot. Web crawlers not only keep a copy of all the visited pages for later processing - for example by a search engine but also index these pages to make the search narrower.&lt;br /&gt;In general, the web crawler starts with a list of URLs to visit. As it visits these URLs, it identifies all the links in the page and adds them to the list of URLs to visit. The process is either ended manually, or after a certain number of links have been followed.&lt;br /&gt;Web crawlers typically take great care to spread their visits to a particular site over a period of time, because they access many more pages than the normal (human) user and therefore can make the site appear slow to the other users if they access the same site repeatedly.&lt;br /&gt;For similar reasons, web crawlers are supposed to obey the robots.txt protocol, with which web site owners can indicate which pages should not be spidered.&lt;span style="font-weight: bold;"&gt; (Knowledgerush, 2003)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Webopedia (2009). "What is Spider?". The #1 Online Encyclopedia dedicated to computer technology, Retrieved from URL - &lt;a href="http://www.webopedia.com/TERM/s/spider.html"&gt;http://www.webopedia.com/TERM/s/spider.html&lt;br /&gt;&lt;/a&gt;2. Knowledgerush (2003). "Web Spider". Knowledgerush.com, Retrieved from URL - &lt;a href="http://www.knowledgerush.com/kr/encyclopedia/Web_spider/"&gt;http://www.knowledgerush.com/kr/encyclopedia/Web_spider/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-904567649181009574?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/904567649181009574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q1-what-is-spider-what-does-it-do.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/904567649181009574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/904567649181009574'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/q1-what-is-spider-what-does-it-do.html' title='Q1. What is a Spider? What does it do?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-1223385556409013663</id><published>2009-05-02T03:43:00.003+08:00</published><updated>2009-05-02T22:54:23.225+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 21'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Exercise 21: Shopping Cart Specifications</title><content type='html'>Develop the &lt;span style="font-weight: bold;"&gt;Class Diagram&lt;/span&gt; for the following &lt;span style="font-style: italic;"&gt;shopping cart &lt;/span&gt;specifications:&lt;br /&gt;&lt;br /&gt;A shoppingCart object is associated with only one creditCard and customer and to items in itemToBuy object. Persistent customer information such as name, billing address, delivery address, email address, and credit rating is stored in the customer object. The credit card object is associated with a frequentShopper discount object, if the credit rating for the customer is good. The customer can make or cancel orders as well as add and delete items to the shopping cart product. The creditCard object contains the secure method for checking that the charge is authentic.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Class Diagram has been drawn and is shown in Diagram-80.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/SfxecSgMwuI/AAAAAAAAAMo/UYomb61dPDg/s1600-h/itc594.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 300px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/SfxecSgMwuI/AAAAAAAAAMo/UYomb61dPDg/s320/itc594.jpg" alt="" id="BLOGGER_PHOTO_ID_5331239898996064994" border="0" /&gt;&lt;/a&gt;Diagram-80 - Class Diagram of ShoppingCart&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-1223385556409013663?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/1223385556409013663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/exercise-21-shopping-cart.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1223385556409013663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1223385556409013663'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/exercise-21-shopping-cart.html' title='Exercise 21: Shopping Cart Specifications'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0NiBYKhCm2o/SfxecSgMwuI/AAAAAAAAAMo/UYomb61dPDg/s72-c/itc594.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-7431308755131217140</id><published>2009-05-02T02:21:00.002+08:00</published><updated>2009-05-02T03:37:51.164+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 22'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Exercise 22: Differentiate between software systems.....</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Q. Differentiate between software systems such as Customer Relationship Management (CRM) software, Business-to-Business e-commerce programs and Supply-Chain Management (SCM) software. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Customer Relationship Management (CRM)&lt;/span&gt;&lt;/span&gt; is an information industry term for methodologies, software, and usually Internet capabilities that help an enterprise manage customer relationships in an organized way. For example, an enterprise might build a database about its customers that described relationships in sufficient detail so that management, salespeople, people providing service, and perhaps the customer directly could access information, match customer needs with product plans and offerings, remind customers of service requirements, know what other products a customer had purchased, and so forth.&lt;br /&gt;According to one industry view, CRM consists of:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Helping an enterprise to enable its marketing departments to identify and target their best customers, manage marketing campaigns and generate quality leads for the sales team.&lt;/li&gt;&lt;li&gt;Assisting the organization to improve telesales, account, and sales management by optimizing information shared by multiple employees, and streamlining existing processes (for example, taking orders using mobile devices)&lt;/li&gt;&lt;li&gt;Allowing the formation of individualized relationships with customers, with the aim of improving customer satisfaction and maximizing profits; identifying the most profitable customers and providing them the highest level of service.&lt;/li&gt;&lt;li&gt;Providing employees with the information and processes necessary to know their customers, understand and identify customer needs and effectively build relationships between the company, its customer base, and distribution partners.&lt;/li&gt;&lt;/ul&gt;Many organizations turn to CRM software to help them manage their customer relationships. CRM technology is offered on-premise, on-demand or through Software as a Service (SaaS) CRM, depending on the vendor. Recently, mobile CRM and the open source CRM software model have also become more popular.&lt;span style="font-weight: bold;"&gt; (Whatis.com, 2008)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Supply chain management (SCM)&lt;/span&gt;&lt;/span&gt; is the combination of art and science that goes into improving the way your company finds the raw components it needs to make a product or service and deliver it to customers. The five basic components of SCM is &lt;span style="font-weight: bold;"&gt;Plan, Source, Make, Deliver, and Return. &lt;/span&gt;&lt;br /&gt;Supply chain management software is possibly the most fractured group of software applications on the planet. Each of the five basic components of SCM previously outlined is comprised of dozens of specific tasks, many of which have their own specific software. Some vendors have assembled many of these different chunks of software together under a single roof, but no one has a complete package that is right for every company. For example, most companies need to track demand, supply, manufacturing status, logistics (i.e. where things are in the supply chain), and distribution. They also need to share data with supply chain partners at an ever increasing rate. While products from large ERP vendors like SAP's Advanced Planner and Optimizer (APO) can perform many or all of these tasks, because each industry's supply chain has a unique set of challenges, many companies decide to go with targeted best of breed products instead, even if some integration is an inevitable consequence. &lt;span style="font-weight: bold;"&gt;(CIO, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;On the Internet, &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;B2B (business-to-business)&lt;/span&gt;&lt;/span&gt;, also known as e-biz, is the exchange of products, services, or information between businesses rather than between businesses and consumers. Although early interest centered on the growth of retailing on the Internet (sometimes called e-tailing), forecasts are that B2B revenue will far exceed business-to-consumers (B2C) revenue in the near future.&lt;br /&gt;B2B Web sites can be sorted into:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Company Web sites&lt;/span&gt;, since the target audience for many company Web sites is other companies and their employees. Company sites can be thought of as round-the-clock mini-trade exhibits. Sometimes a company Web site serves as the entrance to an exclusive extranet available only to customers or registered site users. Some company Web sites sell directly from the site, effectively e-tailing to other businesses.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Product supply and procurement exchanges&lt;/span&gt;, where a company purchasing agent can shop for supplies from vendors, request proposals, and, in some cases, bid to make a purchase at a desired price. Sometimes referred to as e-procurement sites, some serve a range of industries and others focus on a niche market.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Specialized or vertical industry portals&lt;/span&gt; which provide a "subWeb" of information, product listings, discussion groups, and other features. These vertical portal sites have a broader purpose than the procurement sites (although they may also support buying and selling).&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Brokering sites&lt;/span&gt; that act as an intermediary between someone wanting a product or service and potential providers. Equipment leasing is an example.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Information sites&lt;/span&gt; (sometimes known as infomediary), which provide information about a particular industry for its companies and their employees. These include specialized search sites and trade and industry standards organization sites.&lt;/li&gt;&lt;/ul&gt;Many B2B sites may seem to fall into more than one of these groups.  Models for B2B sites arDte still evolving. &lt;br /&gt;Another type of B2B enterprise is software for building B2B Web sites, including site building tools and templates, database, and methodologies as well as transaction software.&lt;br /&gt;B2B is e-commerce between businesses. An earlier and much more limited kind of online B2B prior to the Internet was Electronic Data Interchange (EDI), which is still widely used.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(Jones, 2001)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Simply put, CRM software focuses on the customer's relationship when SCM software concentrates on finding raws materials and how the raws materials flow. The B2B E-commerce programs like Electronic Data Interchange (EDI) are used to transfer cash flow, information... etc amongst Businesses.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Whatis.com (2008). "What is CRM?". TechTarget The IT Media ROI Expers, Retrieved from URL - &lt;a href="http://searchcrm.techtarget.com/sDefinition/0,,sid11_gci213567,00.html"&gt;http://searchcrm.techtarget.com/sDefinition/0,,sid11_gci213567,00.html&lt;/a&gt;&lt;br /&gt;2. CIO (2009). "Supply Chain Management Definition and Solutions". CIO.com - Business Technology Leadership, Retrieved from URL - &lt;a href="http://www.cio.com/article/40940/Supply_Chain_Management_Definition_and_Solutions"&gt;http://www.cio.com/article/40940/Supply_Chain_Management_Definition_and_Solutions&lt;/a&gt;&lt;br /&gt;3. Jones Paula (2001). "What is B2B?".  TechTarget The IT Media ROI Expers, Retrieved from URL - &lt;a href="http://searchcio.techtarget.com/sDefinition/0,,sid182_gci214411,00.html"&gt;http://searchcio.techtarget.com/sDefinition/0,,sid182_gci214411,00.html&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-7431308755131217140?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/7431308755131217140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/exercise-22-differentiate-between.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7431308755131217140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7431308755131217140'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/05/exercise-22-differentiate-between.html' title='Exercise 22: Differentiate between software systems.....'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-142224468195315412</id><published>2009-04-30T18:56:00.008+08:00</published><updated>2009-05-01T03:55:37.195+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 20'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Exercise 20: Modeling with UML</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;UseCase, Class, Sequence, Collaboration, State Chart, Activity, Component, and Deployment Diagrams are used in UML. Describe each of the eight (8) main diagrams used in UML.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Use Case Diagrams&lt;/span&gt;&lt;/span&gt; depict:&lt;ul&gt;&lt;li&gt;Use cases. A use case describes a sequence of actions that provide something of measurable value to an actor and is drawn as a horizontal ellipse.&lt;/li&gt;&lt;li&gt;Actors. An actor is a person, organization, or external system that plays a role in one or more interactions with your system. Actors are drawn as stick figures.&lt;/li&gt;&lt;li&gt;Associations.  Associations between actors and use cases are indicated in use case diagrams by solid lines. An association exists whenever an actor is involved with an interaction described by a use case.  Associations are modeled as lines connecting use cases and actors to one another, with an optional arrowhead on one end of the line. The arrowhead is often used to indicating the direction of the initial invocation of the relationship or to indicate the primary actor within the use case.  The arrowheads are typically confused with data flow and as a result I avoid their use.&lt;/li&gt;&lt;li&gt;System boundary boxes (optional). You can draw a rectangle around the use cases, called the system boundary box, to indicates the scope of your system.  Anything within the box represents functionality that is in scope and anything outside the box is not.  System boundary boxes are rarely used, although on occasion I have used them to identify which use cases will be delivered in each major release of a system.  Figure 2 shows how this could be done.&lt;/li&gt;&lt;li&gt;Packages (optional).  Packages are UML constructs that enable you to organize model elements (such as use cases) into groups. Packages are depicted as file folders and can be used on any of the UML diagrams, including both use case diagrams and class diagrams. I use packages only when my diagrams become unwieldy, which generally implies they cannot be printed on a single page, to organize a large diagram into smaller ones.  Figure 3 depicts how Figure 1 could be reorganized with packages.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;(Ambler-1, 2006)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The diagram-77 is extracted from &lt;a href="http://www.agilemodeling.com/artifacts/useCaseDiagram.htm"&gt;http://www.agilemodeling.com/artifacts/useCaseDiagram.htm&lt;/a&gt; to show System Use Case Diagram.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/SfnN4fXHF4I/AAAAAAAAALo/Nisg5-v4mHY/s1600-h/useCaseDiagram.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 468px; height: 416px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/SfnN4fXHF4I/AAAAAAAAALo/Nisg5-v4mHY/s320/useCaseDiagram.jpg" alt="" id="BLOGGER_PHOTO_ID_5330518004344493954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-77 - System Use Case Diagram&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In software engineering, a &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Class Diagram&lt;/span&gt;&lt;/span&gt; in the Unified Modeling Language (UML), is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, and the relationships between the classes. &lt;span style="font-weight: bold;"&gt;(Wikipedia-1, 2009)&lt;/span&gt;&lt;br /&gt;UML 2 class diagrams are the mainstay of object-oriented analysis and design. UML 2 class diagrams show the classes of the system, their interrelationships (including inheritance, aggregation, and association), and the operations and attributes of the classes. Class diagrams are used for a wide variety of purposes, including both conceptual/domain modeling and detailed design modeling.  Although I prefer to create class diagrams on whiteboards because simple tools are more inclusive most of the diagrams that I’ll show in this article are drawn using a software-based drawing tool so you may see the exact notation. &lt;span style="font-weight: bold;"&gt;(Ambler-2, &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;2006)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The diagram-78 is extract from &lt;a href="http://en.wikipedia.org/wiki/Class_diagram"&gt;http://en.wikipedia.org/wiki/Class_diagram&lt;/a&gt; to show an example of Class Diagram.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SfnS5sFFPXI/AAAAAAAAALw/rTuNH4m_E14/s1600-h/poiuy.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 466px; height: 229px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SfnS5sFFPXI/AAAAAAAAALw/rTuNH4m_E14/s320/poiuy.JPG" alt="" id="BLOGGER_PHOTO_ID_5330523522496544114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-78 - Class Diagram&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;UML&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; Sequence &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Diagrams&lt;/span&gt;&lt;/span&gt; model the flow of logic within your system in a visual manner, enabling you both to document and validate your logic, and are commonly used for both analysis and design purposes.  Sequence diagrams are the most popular UML artifact for dynamic modeling, which focuses on identifying the behavior within your system. Other dynamic modeling techniques include   activity diagramming,   communication diagramming,   timing diagramming, and   interaction overview diagramming. Sequence diagrams, along with   class diagrams and   physical data models are in my opinion the most important design-level models for modern business application development. &lt;span style="font-weight: bold;"&gt;(Ambler-3, &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;2006)&lt;/span&gt;&lt;br /&gt;A sequence diagram in Unified Modelling Language (UML) is a kind of interaction diagram that shows how processes operate with one another and in what order. It is a construct of a Message Sequence Chart. Sequence diagrams are sometimes called Event-trace diagrams, event scenarios, and timing diagrams. &lt;span style="font-weight: bold;"&gt;(Wikipedia-2, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Diagram-79 is extracted from &lt;a href="http://en.wikipedia.org/wiki/File:Restaurant-UML-SEQ.gif"&gt;http://en.wikipedia.org/wiki/File:Restaurant-UML-SEQ.gif&lt;/a&gt; to show an example of the Sequence Diagram.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/SfnumTzXquI/AAAAAAAAAL4/F5AWgg3HAsk/s1600-h/zaq12wsx.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 467px; height: 422px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/SfnumTzXquI/AAAAAAAAAL4/F5AWgg3HAsk/s320/zaq12wsx.JPG" alt="" id="BLOGGER_PHOTO_ID_5330553975887866594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-79 - Sequence Diagram&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;UML &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Collaboration Diagrams&lt;/span&gt;&lt;/span&gt; / communication diagrams like UML sequence diagrams, are used to explore the dynamic nature of your software. Collaboration diagrams show the message flow between objects in an OO application, and also imply the basic associations (relationships) between classes. Collaboration diagrams are often used to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Provide a birds-eye view of a collection of collaborating objects, particularly within a real-time environment.&lt;/li&gt;&lt;li&gt;Allocate functionality to classes by exploring the behavioral aspects of a system.&lt;/li&gt;&lt;li&gt;Model the logic of the implementation of a complex operation, particularly one that interacts with a large number of other objects.&lt;/li&gt;&lt;li&gt;Explore the roles that objects take within a system, as well as the different relationships they are involved with when in those roles.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;(Ambler-4, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The diagram-80 is to show the example of Collaboration Diagram. (from &lt;a href="http://www.agilemodeling.com/style/collaborationDiagram.htm"&gt;http://www.agilemodeling.com/style/collaborationDiagram.htm&lt;/a&gt;)&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SfnzUXFKtZI/AAAAAAAAAMA/cLMIkHva6NQ/s1600-h/collaborationDiagramShipping.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 469px; height: 183px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SfnzUXFKtZI/AAAAAAAAAMA/cLMIkHva6NQ/s320/collaborationDiagramShipping.gif" alt="" id="BLOGGER_PHOTO_ID_5330559165088314770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-80 - Collaboration Diagram&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;UML state machine diagrams, formerly called &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;State Chart Diagrams&lt;/span&gt;&lt;/span&gt; in UML 1, depict the dynamic behavior of an entity based on its response to events, showing how the entity reacts to various events depending on the current state that it is in. Create a  UML state machine diagram to explore the nature of a:&lt;ul&gt;&lt;li&gt;Explore the complex behavior of a class, actor, subsystem, or component.&lt;/li&gt;&lt;li&gt;Modeling real-time systems.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;(Ambler-5, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Diagram-81 shows the example of State Chart Diagram extracted from &lt;a href="http://www.agilemodeling.com/style/stateChartDiagram.htm"&gt;http://www.agilemodeling.com/style/stateChartDiagram.htm&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sfn5Vve5_vI/AAAAAAAAAMI/xj2aT6Dgj4s/s1600-h/stateChartDiagramSeminarRegistration.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 467px; height: 153px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sfn5Vve5_vI/AAAAAAAAAMI/xj2aT6Dgj4s/s320/stateChartDiagramSeminarRegistration.gif" alt="" id="BLOGGER_PHOTO_ID_5330565785888358130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-81 - State Chart Diagram&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In UML, an &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Activity Diagram&lt;/span&gt;&lt;/span&gt; is used to display the sequence of activities. Activity diagrams show the workflow from a start point to the finish point detailing the many decision paths that exist in the progression of events contained in the activity. They may be used to detail situations where parallel processing may occur in the execution of some activities. Activity diagrams are useful for business modeling where they are used for detailing the processes involved in business activities. &lt;span style="font-weight: bold;"&gt;(Sparx, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="body-text"&gt;An Example of an activity diagram is shown in the below Diagram-82 extracted from &lt;/span&gt;&lt;a href="http://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_activitydiagram.html"&gt;&lt;span class="body-text"&gt;http://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_activitydiagram.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sfn8SATFqSI/AAAAAAAAAMQ/mvHblBcCKho/s1600-h/ad03.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 468px; height: 205px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sfn8SATFqSI/AAAAAAAAAMQ/mvHblBcCKho/s320/ad03.GIF" alt="" id="BLOGGER_PHOTO_ID_5330569020217600290" border="0" /&gt;&lt;/a&gt;Diagram-82- Activity Diagram&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Component Diagram&lt;/span&gt;&lt;/span&gt; in the Unified Modeling Language, depicts how components are wired together to form larger components and or software systems. &lt;span style="font-weight: bold;"&gt;(Wikipedia-3, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Diagram-83 is extracted from &lt;a href="http://en.wikipedia.org/wiki/Component_diagram"&gt;http://en.wikipedia.org/wiki/Component_diagram&lt;/a&gt; and is to show an example of Component Diagram. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sfn-aAxIyPI/AAAAAAAAAMY/OgPe5rR75n0/s1600-h/Policy_Admin_Component_Diagram.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 470px; height: 308px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sfn-aAxIyPI/AAAAAAAAAMY/OgPe5rR75n0/s320/Policy_Admin_Component_Diagram.PNG" alt="" id="BLOGGER_PHOTO_ID_5330571356805843186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-83 - Component Diagram&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A UML2 &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Deployment Diagram&lt;/span&gt;&lt;/span&gt; depicts a static view of the run-time configuration of processing nodes and the components that run on those nodes. In other words, deployment diagrams show the hardware for your system, the software that is installed on that hardware, and the middleware used to connect the disparate machines to one another. You want to create a deployment diagram for applications that are deployed to several machines, for example a point-of-sales application running on a thin-client network computer which interacts with several internal servers behind your corporate firewall or a customer service system deployed using a web services architecture such as Microsoft’s .NET.  Deployment diagrams can also be created to explore the architecture of embedded systems, showing how the hardware and software components work together. In short, you may want to consider creating a deployment diagram for all but the most trivial of systems. &lt;span style="font-weight: bold;"&gt;(Ambler-6, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Diagram-84 is used to demonstrate the example of Deployment Diagram and is extracted from &lt;a href="http://www.agilemodeling.com/artifacts/deploymentDiagram.htm"&gt;http://www.agilemodeling.com/artifacts/deploymentDiagram.htm&lt;/a&gt;&lt;a href="http://www.agilemodeling.com/artifacts/deploymentDiagram.htm"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SfoA5yMvVRI/AAAAAAAAAMg/4QCWrMC1S94/s1600-h/deploymentDiagram.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 471px; height: 344px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SfoA5yMvVRI/AAAAAAAAAMg/4QCWrMC1S94/s320/deploymentDiagram.jpg" alt="" id="BLOGGER_PHOTO_ID_5330574101674153234" border="0" /&gt;&lt;/a&gt;Diagram-84 - Deployment Diagram&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Ambler Scott W. (2006). "UML 2 Use Case Diagrams". Ambysoft Inc., Retrieved from URL - &lt;a href="http://www.agilemodeling.com/artifacts/useCaseDiagram.htm"&gt;http://www.agilemodeling.com/artifacts/useCaseDiagram.htm&lt;/a&gt;&lt;br /&gt;2. Ambler Scott W. (2006). "UML 2 Class Diagrams". Ambysoft Inc., Retrieved from URL - &lt;a href="http://www.agilemodeling.com/artifacts/classDiagram.htm"&gt;http://www.agilemodeling.com/artifacts/classDiagram.htm&lt;/a&gt;&lt;br /&gt;3. Ambler Scott W. (2006). "UML 2 Sequence Diagrams". Ambysoft Inc., Retrieved from URL - &lt;a href="http://www.agilemodeling.com/artifacts/sequenceDiagram.htm"&gt;&lt;span style="text-decoration: underline;"&gt;http://www.agilemodeling.com/artifacts/sequenceDiagram.htm&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;4. Ambler Scott W. (2006). "UML 2 Communication Diagramming Guidelines". Ambysoft Inc., Retrieved from URL - &lt;a href="http://www.agilemodeling.com/style/collaborationDiagram.htm"&gt;http://www.agilemodeling.com/style/collaborationDiagram.htm&lt;/a&gt;&lt;br /&gt;5. Ambler Scott W. (2006). "UML 2 State Machine Diagramming Guidelines". Ambysoft Inc., Retrieved from URL - &lt;a href="http://www.agilemodeling.com/style/stateChartDiagram.htm"&gt;http://www.agilemodeling.com/style/stateChartDiagram.htm&lt;/a&gt;&lt;br /&gt;6. Ambler Scott W. (2006). "UML 2 Deployment Diagrams". Ambysoft Inc., Retrieved from URL - &lt;a href="http://www.agilemodeling.com/artifacts/deploymentDiagram.htm"&gt;&lt;span style="text-decoration: underline;"&gt;http://www.agilemodeling.com/artifacts/deploymentDiagram.htm&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;7. Sparx (2009). "Sparx Systems - UML 2 Tutorial - Activity Diagram". Sparx Systems Pty Ltd, Retrieved from URL - &lt;a href="http://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_activitydiagram.html"&gt;http://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_activitydiagram.html&lt;br /&gt;&lt;/a&gt;8. Wikipedia-1 (2009). "Class Diagram". Wikipedia The Free Encyclopedia, Retrieved from URL - &lt;a href="http://en.wikipedia.org/wiki/Class_diagram"&gt;http://en.wikipedia.org/wiki/Class_diagram&lt;/a&gt;&lt;br /&gt;9. Wikipedia-2 (2009). "Sequence diagram". Wikipedia The Free Encyclopedia, Retrieved from URL - &lt;a href="http://en.wikipedia.org/wiki/Sequence_diagram"&gt;http://en.wikipedia.org/wiki/Sequence_diagram&lt;/a&gt;&lt;br /&gt;10. Wikipedia-3 (2009). "Component Diagram". Wikipedia The Free Encyclopedia, Retrieved from URL - &lt;a href="http://en.wikipedia.org/wiki/Component_diagram"&gt;http://en.wikipedia.org/wiki/Component_diagram&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-142224468195315412?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/142224468195315412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/exercise-20-modeling-with-uml.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/142224468195315412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/142224468195315412'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/exercise-20-modeling-with-uml.html' title='Exercise 20: Modeling with UML'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0NiBYKhCm2o/SfnN4fXHF4I/AAAAAAAAALo/Nisg5-v4mHY/s72-c/useCaseDiagram.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-2689068130584318824</id><published>2009-04-30T15:41:00.003+08:00</published><updated>2009-04-30T16:15:36.235+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 19'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q4. Why is a Two-Phase commit protocol better than an One-Phase atomic commit protocol?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First of all, let's see the definition of One-Phase atomic commit protocol and Two-Phase commit protocol.&lt;br /&gt;&lt;br /&gt;One-Phase atomic commit protocol is that an elected co-ordinator tells all the other processes to perform the operation in question. &lt;span style="font-weight: bold;"&gt;(Cosh, 2009)&lt;/span&gt;&lt;br /&gt;Two-Phase commit protocol is ...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The coordinator sends a VOTE_REQUEST message to all group members.&lt;/li&gt;&lt;li&gt;The group member returns VOTE_COMMIT if it can commit locally, otherwise VOTE_ABORT.&lt;/li&gt;&lt;li&gt;All votes are collected by the coordinator.  A GLOBAL_COMMIT is sent if all the group members voted to commit.  If one group member voted to abort, a GLOBAL_ABORT is sent.&lt;/li&gt;&lt;li&gt;The group members then COMMIT or ABORT based on the last message received from the coordinator.&lt;/li&gt;&lt;/ol&gt; &lt;span style="font-weight: bold;"&gt;(Cosh, 2009)&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Two-Phase commit protocol is better than One-Phase atomic commit protocol because there is no way to tell the coordinator when a process cannot perform the operation  &lt;span style="font-weight: bold;"&gt;(Cosh, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Cosh Ken (2009). "Lecture 7 of ICS362 – Distributed Systems". Computer Programming I in the Computer Information Systems Department at Payap University, Retrieved from URL - &lt;a href="http://www.kencosh.co.uk/cis/ics362/362L7.ppt"&gt;&lt;span class="ngrn"&gt;http://www.kencosh.co.uk/cis/ics362/362L7.ppt&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="rgy"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rgy"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;p:colorscheme colors="#ffffff,#000000,#808080,#000000,#bbe0e3,#333399,#009999,#99cc00"&gt;&lt;/p:colorscheme&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-2689068130584318824?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/2689068130584318824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q4-why-is-two-phase-commit-protocol.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2689068130584318824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2689068130584318824'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q4-why-is-two-phase-commit-protocol.html' title='Q4. Why is a Two-Phase commit protocol better than an One-Phase atomic commit protocol?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-7531558512901177260</id><published>2009-04-30T13:11:00.002+08:00</published><updated>2009-04-30T15:40:58.815+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 19'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q3. What is difference in loading balancing with traditional and transactional MOM, RPC and conversations?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Message-oriented middleware (MOM) &lt;/span&gt;lets a service's consumers physically and temporally decouple from the service providers (see www.webmethods.com and http://www-306.ibm.com/software/integration/wmq/). Communication between service providers and their consumers is asynchronous, and they don't need to be available at the same time because they communicate by sending and receiving messages from designated message queues.&lt;br /&gt;In contrast, &lt;span style="font-weight: bold;"&gt;Remote Procedure Call (RPC)&lt;/span&gt; is a synchronous method of requesting remote service execution. Consumers must suspend service execution until they receive a reply from the provider. &lt;span style="font-weight: bold;"&gt;(Menasce, 2005)&lt;/span&gt;&lt;br /&gt;RPC is a protocol which allows a program running on one host  to cause code to be executed on another host without the programmer needing to explicitly the code . RPC is an easy and popular paradigm for implementing the client-server model. An RPC is initiated by the caller (client) sending request message to a remote system (the server) to execute a certain procedure using arguments supplied. A result message is returned to the caller.&lt;br /&gt;Message-Oriented Middleware (MOM), which is a specific class of middleware that supports the exchange of general-purpose messages in a distributed application environment.  &lt;span style="font-weight: bold;"&gt;(Li, Gomez, Tran and Villar, 2008)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In terms of load balancing, MOM transfers messages across servers. If a server fails, then another server takes over for the message' transmission. This is the way MOM implements loading balancing.&lt;br /&gt;On the other hand, RPC does not consider load balancing because Remote Procedure Call (RPC) is a client/serverRemote Procedure Call (RPC) is a protocol that one program can use to request a service from a program located in another computer in a network&lt;span style="font-weight: bold;"&gt; without having to understand network details&lt;/span&gt;. &lt;span style="font-weight: bold;"&gt;(Li, Gomez, Tran and Villar, 2008)&lt;/span&gt;&lt;br /&gt;Put simply, RPC does not consider the access path so RPC does not consider load balancing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Menasce Daniel A. (2005). "Scaling the Web MOM vs. RPC: Communication Models for Distributed Applications". IEEE Computer Society in George Mason University, Retrieved from URL - &lt;a href="http://cs.gmu.edu/%7Emenasce/papers/IEEE-IC-MOM-RPC-MarchApril2005.pdf"&gt;http://cs.gmu.edu/~menasce/papers/IEEE-IC-MOM-RPC-MarchApril2005.pdf&lt;/a&gt;&lt;br /&gt;2. Li Zongrui, Gomez Candido, Tran Peter and Villar Jose (2008). "Middleware". Faculty Resources of California State University, Retrieved from URL - &lt;a href="http://www.calstatela.edu/faculty/nganesa/College%20Courses/Slide...are%20TPM%20and%20RPC.ppt"&gt;http://&lt;span class="ngrn"&gt;www.calstatela.edu/faculty/nganesa/College%20Courses/Slide...are%20TPM%20and%20RPC.ppt &lt;/span&gt;&lt;span class="rgy"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-7531558512901177260?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/7531558512901177260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q3-what-is-difference-in-loading.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7531558512901177260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7531558512901177260'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q3-what-is-difference-in-loading.html' title='Q3. What is difference in loading balancing with traditional and transactional MOM, RPC and conversations?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-287672128715112270</id><published>2009-04-30T02:46:00.004+08:00</published><updated>2009-04-30T13:10:21.776+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 19'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q2. Describe a TP monitor environment. How can a TP monitor stop an operating system being overwhelmed?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;According to Jeri Edwards', a TP Monitor is "an OS for transaction processing". TP monitor does mainly two things extremely well. They are Process management and Transaction management.&lt;br /&gt;They were originally introduced to run classes of applications that could service hundreds and sometimes thousands of clients. TP Monitors provide an OS - on top of existing OS - that connects in real time these thousands of humans with a pool of shared server processes. &lt;span style="font-weight: bold;"&gt;(ProgrammerWorld.NET, 2008)&lt;/span&gt;&lt;br /&gt;TP monitors provide the greatest performance advantage over both MQ and RPCs. Of course, it depends on what you're doing. Several features of TP monitors, such as BEA's Tuxedo, IBM's CICS, and Microsoft Transaction Server (MTS), enhance performance as well as provide the ultimate in scalability.&lt;br /&gt;When it comes to support for many clients and a high transaction processing load, nothing beats a good TP monitor. TP monitors perform such tricks as using queued input buffer to protect against peaks in the workload. If the load increases, the engine is able to press on without having an effect on response time. TP monitors can also use priority scheduling to prioritize messages and support server threads, thus saving on the overhead of heavyweight processes. Also, the load balancing mechanisms of TP monitors make sure that no one process takes on an excessive load.&lt;br /&gt;TP monitors also provide queuing, routing, and messaging features, which let distributed application developers bypass the TP monitor's transactional features. Here is where you can assign priorities to classes of messages letting the higher priority messages receive server resources first. &lt;span style="font-weight: bold;"&gt;(Linthicum, 1998)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;TP monitor can stop the operating system being overwhelming. That is, the real performance value is the TP monitor's load-balancing feature. Load balancing lets TP monitors respond gracefully to a &lt;span style="font-weight: bold;"&gt;barrage &lt;/span&gt;of transactions. An example is end-of-the-month processing. &lt;span style="font-weight: bold;"&gt;As the demands increase, the transaction manager launches more server processes to handle the load and kills (stop) processes that are no longer required&lt;/span&gt;. What's more, the manager is able to spread the processing load among the processes as the transaction requests occur.  &lt;span style="font-weight: bold;"&gt;(Linthicum, 1998)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. ProgrammerWorld.NET (2008). "Networking Interview Questions and Answers". ProgrammerWorld.NET, Retrieved from URL - &lt;a href="http://faq.programmerworld.net/networking/networking-interview-questions-answers.html"&gt;http://faq.programmerworld.net/networking/networking-interview-questions-answers.html&lt;/a&gt;&lt;br /&gt;2. Linthicum David S. (1998). "Application Architect". DBMS Online - Middleware Performance, Retrieved from URL - &lt;a href="http://www.dbmsmag.com/9808d07.html"&gt;http://www.dbmsmag.com/9808d07.html&lt;br /&gt;&lt;/a&gt;3. Schussel George  (2009). "Client/Server: Past, Present and Future". Retrieved from URL - &lt;a href="http://www.dciexpo.com/geos/dbsejava.htm"&gt;http://www.dciexpo.com/geos/dbsejava.htm&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-287672128715112270?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/287672128715112270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-describe-tp-monitor-environment-how.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/287672128715112270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/287672128715112270'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-describe-tp-monitor-environment-how.html' title='Q2. Describe a TP monitor environment. How can a TP monitor stop an operating system being overwhelmed?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-5169945556474147592</id><published>2009-04-30T00:17:00.003+08:00</published><updated>2009-04-30T01:44:51.101+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 19'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q1. Give a description in your own words of the ACID properites of a transaction.</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Exercise 19: TP monitors and Transaction Protocols&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Q1. Give a description in your own words of the ACID properties of a transaction.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ACID properties of a transaction means &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;A&lt;/span&gt;&lt;/span&gt;tomicity, &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;C&lt;/span&gt;&lt;/span&gt;onsistency, &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;I&lt;/span&gt;&lt;/span&gt;solation and &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;D&lt;/span&gt;&lt;/span&gt;urability of a transaction.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Atomicity &lt;/span&gt;&lt;/span&gt;in (ACID) means the transaction have to be completed or remian the previous state. That is, for instance, in Oracle, the insert operation needs "commit" statement to add a new record. Else, we can use "rollback" statement to cancel the insert operation. We cannot save a single part of the transaction without all parts of transaction. We cannot ignore a single parts of transaction without all parts of transaction being ignored.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Consistency &lt;/span&gt;&lt;/span&gt;in (ACID) means that Data (Record) is not allowed to keep in a contradictory state and each transaction have to follow an integrity contraints. Intergrity contraints is the declaration of consistency rules. For example, I set that every employee record must have employee number in employee table and every manager must have at least one employee as a subordinate in manager table. If it is found that in the manager table manager does not have employee number and manager does not have subordinate employee, then the database&lt;br /&gt;is not consistent.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Isolation&lt;/span&gt;&lt;/span&gt; in (ACID) means that each transcation is only allowed to operate independently. No simultaneous transactions can interfere with each other. If there is some intermediate results of one transaction, these results must be transparent to all other transactions. One transaction (namely, transaction-A) can be affected by other transactions only if transaction-A has been completed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Durable &lt;/span&gt;&lt;/span&gt;in (ACID) means that once the transaction has been committed and saved, the transaction (record) must be kept permanently even if the database is crashed , restarted or failed. For instance, I insert a record in Teradata Database. After that, I reboot the UNIX and Teradata. When the system boots up again, the record is still there. Thus, Teradata Database is Durable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-5169945556474147592?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/5169945556474147592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-give-description-in-your-own-words.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/5169945556474147592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/5169945556474147592'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-give-description-in-your-own-words.html' title='Q1. Give a description in your own words of the ACID properites of a transaction.'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-3149366394398902478</id><published>2009-04-29T02:31:00.004+08:00</published><updated>2009-04-29T19:19:52.931+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 18'/><title type='text'>Exercise 18: Threading demonstration in Python</title><content type='html'>&lt;span style="font-weight: bold;"&gt;A simple demonstration of the threading module in Python that uses both a lock and semaphore to control concurrency is by Ted Herman at the University of Lowa. The code and sample output below are worth a look. Report your findings.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have copied the provided code and run the code on my laptop computer. The returned result is similar to the given result. The given result and my returned result are not the same exactly because the speed of the computers running the same code is different.&lt;br /&gt;&lt;br /&gt;The code of the threaddemo.py simulates the lock and semaphore processing.  threaddemo.py create 3 important variables. They are sema, mutex and running when numtasks limits the number of thread/task at 10. Variable (object) sema take 3 tasks to run at a time. When running the 3 tasks, Variable (object) mutex put a Read lock to the process of threading. After a wait, some tasks of the three tasks are completed, variable running keeps track on the completion of the tasks or threads. If some tasks of the three tasks are completed, variable (object) mutex release the read lock and new tasks of the remaining 7 are added and processed. Consequentially, the 10 tasks (threads) are done totally when 3 tasks are proceessed each time.&lt;br /&gt;&lt;br /&gt;The threaddemo.py exactly simulates semaphore and locking.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-3149366394398902478?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/3149366394398902478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/exercise-18-threading-demonstration-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/3149366394398902478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/3149366394398902478'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/exercise-18-threading-demonstration-in.html' title='Exercise 18: Threading demonstration in Python'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-4183749862052911695</id><published>2009-04-21T18:24:00.007+08:00</published><updated>2009-04-25T13:54:51.549+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 17'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Exercise 17: Concurrency terms</title><content type='html'>&lt;strong&gt;Find definitions for eight terms and concepts used in threaded programming:&lt;br /&gt;&lt;br /&gt;1. Thread Synchronisation&lt;br /&gt;2. Locks&lt;br /&gt;3. Deadlock&lt;br /&gt;4. Semaphores&lt;br /&gt;5. Mutex (mutual exclusion)&lt;br /&gt;6. Thread&lt;br /&gt;7. Event&lt;br /&gt;8. Waitable timer&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Answer:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1. &lt;strong&gt;Selvam (2004)&lt;/strong&gt; shows the definition of &lt;strong&gt;Thread Synchronisation&lt;/strong&gt;. That is, in a multithreaded environment, each thread has its own local thread stack and registers. If multiple threads access the same resource for read and write, the value may not be the correct value. For example, let's say our application contains two threads, one thread for reading content from the file and another thread writing the content to the file. If the write thread tries to write and the read thread tries to read the same data, the data might become corrupted. In this situation, we want to lock the file access. The thread synchronization has two stages. Signaled and non-signaled.&lt;br /&gt;The signaled state allows objects to access and modify data. The non-signaled state does allow accessing or modifying the data in the thread local stack.&lt;br /&gt;Many of the thread synchronization methods are used to synchronize multiple threads.&lt;br /&gt;&lt;br /&gt;2. &lt;strong&gt;Wang (2001)&lt;/strong&gt; states that there are 2 types of &lt;strong&gt;Locks&lt;/strong&gt;. a &lt;strong&gt;read/write lock&lt;/strong&gt; manager allows a server to manage its data resource for client read and write requests. Let's review the difference between a read lock, and a write lock. The following table lists the different locking levels, and the compatibilities between each locking levels.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SfKOpzyOK4I/AAAAAAAAAKo/xoeD6pVYcxc/s1600-h/aaa.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5328478158059350914" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 465px; CURSOR: hand; HEIGHT: 169px" alt="" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SfKOpzyOK4I/AAAAAAAAAKo/xoeD6pVYcxc/s320/aaa.bmp" border="0" /&gt;&lt;/a&gt; Table-1 - The Lock Compatibility extracted from &lt;a href="http://www.concentric.net/~Ttwang/tech/rwlock.htm"&gt;http://www.concentric.net/~Ttwang/tech/rwlock.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A read lock is required before reading on a data item. A write lock is required before writing on a data item. Multiple parties can read on a data item with no problem. This is indicated in the table by looking at the intersection of requested lock (read), and already granted lock (read also). We should find the 'yes' compatibility label in the intersection. On the other hand, one cannot write on a data item while there are still readers out there. Similarly, one cannot read on a data item while there is a writer out there. For practice, look up these two statements in the compatibility table. Any client that want to access a data item should first obtain a read lock, then after the data item is read, release the lock. Any client that want to write a data item should first obtain a write lock, then after the data item is written, release the lock. &lt;strong&gt;(Wang, 2001)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;3. &lt;strong&gt;Wikipedia (2009)&lt;/strong&gt; describes that a &lt;strong&gt;Deadlock&lt;/strong&gt; is a situation wherein two or more competing actions are waiting for the other to finish, and thus neither ever does. It is often seen in a paradox like "the chicken or the egg". "When two trains approach each other at a crossing, both shall come to a full stop and neither shall start up again until the other has gone." - Illogical statute passed by the Kansas Legislature.&lt;br /&gt;In computer science, deadlock refers to a specific condition when two or more processes are each waiting for each other to release a resource, or more than two processes are waiting for resources in a circular chain (see Necessary conditions). Deadlock is a common problem in multiprocessing where many processes share a specific type of mutually exclusive resource known as a software, or soft, lock. Computers intended for the time-sharing and/or real-time markets are often equipped with a hardware lock (or hard lock) which guarantees exclusive access to processes, forcing serialization. Deadlocks are particularly troubling because there is no general solution to avoid (soft) deadlocks.&lt;br /&gt;This situation may be likened to two people who are drawing diagrams, with only one pencil and one ruler between them. If one person takes the pencil and the other takes the ruler, a deadlock occurs when the person with the pencil needs the ruler and the person with the ruler needs the pencil to finish his work with the ruler. Both requests can't be satisfied, so a deadlock occurs.&lt;br /&gt;The telecommunications description of deadlock is a little stronger: deadlock occurs when none of the processes meet the condition to move to another state (as described in the process's finite state machine) and all the communication channels are empty. The second condition is often left out on other systems but is important in the telecommunication context.&lt;br /&gt;&lt;br /&gt;4. &lt;strong&gt;Selvam (2004)&lt;/strong&gt; shows that &lt;strong&gt;Semaphore&lt;/strong&gt; is used to synchronize between objects. Semaphore is a thread synchronization object that allows zero to any number of threads access simultaneously.&lt;br /&gt;&lt;br /&gt;5. &lt;strong&gt;Webopedia (2009)&lt;/strong&gt; points out that &lt;strong&gt;Mutex&lt;/strong&gt; is short for &lt;strong&gt;Mutual Exclusion&lt;/strong&gt; object. In computer programming, a mutex is a program object that allows multiple program threads to share the same resource, such as file access, but not simultaneously. When a program is started, a mutex is created with a unique name. After this stage, any thread that needs the resource must lock the mutex from other threads while it is using the resource. The mutex is set to unlock when the data is no longer needed or the routine is finished.&lt;br /&gt;&lt;br /&gt;6. &lt;strong&gt;Whatis.com (2009)&lt;/strong&gt; states that in computer programming, a &lt;strong&gt;Thread&lt;/strong&gt; is placeholder information associated with a single use of a program that can handle multiple concurrent users. From the program's point-of-view, a thread is the information needed to serve one individual user or a particular service request. If multiple users are using the program or concurrent requests from other programs occur, a thread is created and maintained for each of them. The thread allows a program to know which user is being served as the program alternately gets re-entered on behalf of different users. (One way thread information is kept by storing it in a special data area and putting the address of that data area in a register. The operating system always saves the contents of the register when the program is interrupted and restores it when it gives the program control again.)&lt;br /&gt;A thread and a task are similar and are often confused. Most computers can only execute one program instruction at a time, but because they operate so fast, they appear to run many programs and serve many users simultaneously. The computer operating system gives each program a "turn" at running, then requires it to wait while another program gets a turn. Each of these programs is viewed by the operating system as a task for which certain resources are identified and kept track of. The operating system manages each application program in your PC system (spreadsheet, word processor, Web browser) as a separate task and lets you look at and control items on a task list. If the program initiates an I/O request, such as reading a file or writing to a printer, it creates a thread. The data kept as part of a thread allows a program to be reentered at the right place when the I/O operation completes. Meanwhile, other concurrent uses of the program are maintained on other threads. Most of today's operating systems provide support for both multitasking and multithreading. They also allow multithreading within program processes so that the system is saved the overhead of creating a new process for each thread.&lt;br /&gt;&lt;br /&gt;7. &lt;strong&gt;Selvam (2004)&lt;/strong&gt; shows that &lt;strong&gt;Event&lt;/strong&gt; is used to synchronize between objects. Event is a thread synchronization object used to set the signaled or non-signaled state. The signaled state may be manual or automatic depending on the event declaration.&lt;br /&gt;&lt;br /&gt;8. &lt;strong&gt;MSDN (2009)&lt;/strong&gt; describes that a &lt;strong&gt;Waitable Timer&lt;/strong&gt; object is a synchronization object whose state is set to signaled when the specified due time arrives. There are two types of waitable timers that can be created: manual-reset and synchronization. A timer of either type can also be a periodic timer.&lt;br /&gt;Manual-reset timer - A timer whose state remains signaled until SetWaitableTimer is called to establish a new due time.&lt;br /&gt;Synchronization timer - A timer whose state remains signaled until a thread completes a wait operation on the timer object.&lt;br /&gt;Periodic timer - A timer that is reactivated each time the specified period expires, until the timer is reset or canceled. A periodic timer is either a periodic manual-reset timer or a periodic synchronization timer.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The behavior of a waitable timer can be summarized as follows:&lt;br /&gt;When a timer is set, it is canceled if it was already active, the state of the timer is nonsignaled, and the timer is placed in the kernel timer queue. &lt;/li&gt;&lt;li&gt;When a timer expires, the timer is set to the signaled state. If the timer has a completion routine, it is queued to the thread that set the timer. The completion routine remains in the asynchronous procedure call (APC) queue of the thread until the thread enters an alertable wait state. At that time, the APC is dispatched and the completion routine is called. If the timer is periodic, it is placed back in the kernel timer queue. &lt;/li&gt;&lt;li&gt;When a timer is canceled, it is removed from the kernel timer queue if it was pending. If the timer had expired and there is still an APC queued to the thread that set the timer, the APC is removed from the thread's APC queue. The signaled state of the timer is not affected.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;Reference:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Selvam R. (2004). "CodeProject: Thread Synchronization for Beginners". The Code Project Your Development Resource, Retrieved from URL - &lt;/span&gt;&lt;a href="http://www.codeproject.com/KB/threads/Synchronization.aspx"&gt;&lt;span style="font-size:85%;"&gt;http://www.codeproject.com/KB/threads/Synchronization.aspx&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;2. Wang Thomas (2001). "Java Thread Programming: Implement Read &amp;amp; Write Locks". Thomas Wang's Home Page, Retrieved from URL - &lt;/span&gt;&lt;a href="http://www.concentric.net/~Ttwang/tech/rwlock.htm"&gt;&lt;span style="font-size:85%;"&gt;http://www.concentric.net/~Ttwang/tech/rwlock.htm&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;3. Wikipedia (2009). "Deadlock". Wikipedia The Free Encylopedia, Retrieved from URL - &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Deadlock"&gt;&lt;span style="font-size:85%;"&gt;http://en.wikipedia.org/wiki/Deadlock&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;4. Webopedia (2009). "What is Mutex?". The #1 Online Encyclopedia dedicated to computer technology, Retrieved from URL - &lt;/span&gt;&lt;a href="http://www.webopedia.com/TERM/m/mutex.html"&gt;&lt;span style="font-size:85%;"&gt;http://www.webopedia.com/TERM/m/mutex.html&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;5. Whatis.com (2009). "What is Thread?". TechTarget Corporate Web Site, Retrieved from URL - &lt;/span&gt;&lt;a href="http://searchcio-midmarket.techtarget.com/sDefinition/0,,sid183_gci213139,00.html"&gt;&lt;span style="font-size:85%;"&gt;http://searchcio-midmarket.techtarget.com/sDefinition/0,,sid183_gci213139,00.html&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;6. MSDN (2009). "Waitable Timer Objects (Windows)." MSDN Microsoft Developer Network, Retrieved from URL - &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms687012(VS.85).aspx"&gt;&lt;span style="font-size:85%;"&gt;http://msdn.microsoft.com/en-us/library/ms687012(VS.85).aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-4183749862052911695?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/4183749862052911695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/exaaaaaa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/4183749862052911695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/4183749862052911695'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/exaaaaaa.html' title='Exercise 17: Concurrency terms'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0NiBYKhCm2o/SfKOpzyOK4I/AAAAAAAAAKo/xoeD6pVYcxc/s72-c/aaa.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-2553490131481627086</id><published>2009-04-21T18:22:00.004+08:00</published><updated>2009-04-29T01:57:52.568+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 16'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q6. The use of digital certificates and passports are just 2 examples of many tools for validating legitimate users &amp; avoiding...</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Q6. The use of digital certificates and passports are just 2 examples of many tools for validating legitimate users &amp;amp; avoiding consequences such as identity theft. What others exist?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Digital Certificates (or sometimes called Digital IDs) are the electronic counterparts to driver licenses or identity cards. You can present a digital certificate electronically to prove your identity in an electronic message or your right to access information or services available online on the Internet.&lt;br /&gt;The most common use of a digital certificate is to verify that a user sending an electronic mail message is who he or she claims to be, or authenticating a World Wide Web services without the need of user name and password. In the electronic commerce area, a new emerging standard SET (Secure Electronic Transaction) co-developed by Visa and MasterCard, which safeguards credit card purchases made over open network such as Internet, is also based on the digital certificate technology. &lt;span style="font-weight: bold;"&gt;(CCST, 1997)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Digital Passport were introduced in Germany since 2005. According to Germany's Ministry of the Interior, some 600,000 Germans have applied for these new passports. In the initial version, these biometric passports contain a picture of the passport holder stored on a chip. When this chip is contacted via wireless, it only sends the data it has (the facial picture and a digital signature) if the access key provided in the query is correct. In 2007 or afterwards, fingerprints may be added to these facial pictures. This second version of the biometric passports requires a complex infrastructure because fingerprint scans require an online check to see whether the digital signature is valid. Starting in April of this year, all passport centers will also be receiving digital passport scanners so that citizens can see what is stored on the chip. (Craig Morris) &lt;span style="font-weight: bold;"&gt;(CeBIT, 2006)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Beside Digital Certificates and Passports, there are also other tools for validating legitimate users and avoiding consequences such as identity theft. The tools are &lt;span style="font-weight: bold;"&gt;Digital Signature, Electronic ID &lt;/span&gt;and &lt;span style="font-weight: bold;"&gt;Digital Fingerprint&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;A &lt;span style="font-weight: bold;"&gt;digital signature&lt;/span&gt; or digital signature scheme is a type of asymmetric cryptography. For messages sent through an insecure channel, a properly implemented digital signature gives the receiver reason to believe the message was sent by the claimed sender. Digital signatures are equivalent to traditional handwritten signatures in many respects; properly implemented digital signatures are more difficult to forge than the handwritten type. Digital signature schemes in the sense used here are cryptographically based, and must be implemented properly to be effective. Digital signatures can also provide non-repudiation, meaning that the signer cannot successfully claim they did not sign a message, while also claiming their private key remains secret; further, some non-repudiation schemes offer a time stamp for the digital signature, so that even if the private key is exposed, the signature is valid nonetheless. Digitally signed messages may be anything representable as a bitstring: examples include electronic mail, contracts, or a message sent via some other cryptographic protocol. &lt;span style="font-weight: bold;"&gt;(Wikipedia-1, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;An &lt;span style="font-weight: bold;"&gt;e-ID&lt;/span&gt; (short for &lt;span style="font-weight: bold;"&gt;Electronic Identification&lt;/span&gt;) and its corresponding password is your means of identifying yourself to the various services available at SIUE. If you apply for an e-ID using the following web pages and meet all the criteria, you will be assigned an e-ID and password.&lt;br /&gt;An e-ID will give you access to may services provided at SIUE. For example:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Access to Blackboard&lt;/li&gt;&lt;li&gt;Dial-up access to the internet from a home PC&lt;/li&gt;&lt;li&gt;Email&lt;/li&gt;&lt;li&gt;Personal Web pages&lt;/li&gt;&lt;li&gt;Advisor Track&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;(Blackboard, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A &lt;span style="font-weight: bold;"&gt;digital fingerprint&lt;/span&gt; is an identifying sequence of digits which is the result of applying a mathematical algorithm to the complete content of a digital file. Digiprove uses a proven algorithm called "SHA256" for this.  The process generates a 256-bit (64 character) calculated value, and the algorithm is so constructed that even the tiniest change to a document will result in a change to its fingerprint.   The algorithm is a "one-way" process which means that it is not possible to recreate a document from the fingerprint, and that it is not possible (without massive computing power factors beyond those currently available) for a computer program to calculate a document that will result in a given fingerprint. &lt;span style="font-weight: bold;"&gt;(DIGIPROVE, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. CCST (1997). "Digital Certificates". Centre of Computing Services and Telecommunications in the Hong Kong University of Science &amp;amp; Technology, Retrieved from URL - &lt;a href="http://www.ust.hk/itsc/internet/digitalid/"&gt;http://www.ust.hk/itsc/internet/digitalid/&lt;/a&gt;&lt;br /&gt;2. CeBIT (2006). "FDP wants to postpone biometric passports". CeBIT 2-6 March 2010, Retrieved from URL - &lt;a href="http://www.cebit.de/newsanzeige_e.html?multi=1&amp;amp;back=/homepage_e&amp;amp;news=22752&amp;amp;back=%2Fhomepage_e&amp;amp;PHPSESSID=c0a80e37af2ffb4fff2065059d432a74e576e5f3&amp;amp;x=1"&gt;http://www.cebit.de/newsanzeige_e.html?multi=1&amp;amp;back=/homepage_e&amp;amp;news=22752&amp;amp;back=%2Fhomepage_e&amp;amp;PHPSESSID=c0a80e37af2ffb4fff2065059d432a74e576e5f3&amp;amp;x=1&lt;/a&gt;&lt;br /&gt;3. Wikipedia-1 (2009). "Digital Signature". Wikipedia The Free Encyclopedia, Retrieved from URL - &lt;a href="http://en.wikipedia.org/wiki/Digital_Signature"&gt;http://en.wikipedia.org/wiki/Digital_Signature&lt;/a&gt;&lt;br /&gt;4. Blackboard (2009). "Electronic ID (E-ID)". Information Technology Services in SIUE Edwardsville, Retrieved from URL - &lt;a href="http://www.siue.edu/its/ftc/bb/"&gt;http://www.siue.edu/its/ftc/bb/&lt;/a&gt; and &lt;a href="http://www.siue.edu/its/ftc/bb/pdf/new_e_ID.pdf"&gt;http://www.siue.edu/its/ftc/bb/pdf/new_e_ID.pdf&lt;/a&gt;&lt;br /&gt;5. DIGIPROVE (2009). "What is Digital Fingerprint?". FAQ - Frequently Asked Questions - DIGIPROVE Proving Ownership &amp;amp; Compliance, Retrieved from URL - &lt;a href="http://www.digiprove.com/faq_what_is_digital_fingerprint.aspx"&gt;http://www.digiprove.com/faq_what_is_digital_fingerprint.aspx&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-2553490131481627086?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/2553490131481627086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q6-use-of-digital-certificates-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2553490131481627086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2553490131481627086'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q6-use-of-digital-certificates-and.html' title='Q6. The use of digital certificates and passports are just 2 examples of many tools for validating legitimate users &amp; avoiding...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-2018782163706796369</id><published>2009-04-21T18:17:00.004+08:00</published><updated>2009-04-29T02:30:27.710+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 16'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q5. Get the latest PGP software from...</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Q5. Get the latest PGP software from http://web.mit.edu/network/pgp.html; install it on 2 machines and encrypt a message on one machine and decrypt it on the other. Report your findings.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have tried to download the PGP software from &lt;a href="http://web.mit.edu/network/pgp.html"&gt;http://web.mit.edu/network/pgp.html&lt;/a&gt;. However, the website shows "MIT No Longer Distributes PGP". See Diagram-75 - Unable to get PGP from MIT. After that, I have downloaded freeware PGP from &lt;a href="http://www.pgpi.org/products/pgp/versions/freeware/"&gt;http://www.pgpi.org/products/pgp/versions/freeware/&lt;/a&gt; and test the PGP software. The PGP I found is not suitable to simply encrypt and decrypt message. Therefore, this question cannot be answered unless the correct PGP software is offered.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SfdKxRHLx8I/AAAAAAAAALg/abZymi5NN08/s1600-h/swe.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 471px; height: 273px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SfdKxRHLx8I/AAAAAAAAALg/abZymi5NN08/s320/swe.JPG" alt="" id="BLOGGER_PHOTO_ID_5329810894283851714" border="0" /&gt;&lt;/a&gt;Diagram-75 - PGP software is not available in MIT&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-2018782163706796369?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/2018782163706796369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q5-get-latest-pgp-software-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2018782163706796369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2018782163706796369'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q5-get-latest-pgp-software-from.html' title='Q5. Get the latest PGP software from...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0NiBYKhCm2o/SfdKxRHLx8I/AAAAAAAAALg/abZymi5NN08/s72-c/swe.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-8006235565842788880</id><published>2009-04-21T18:15:00.002+08:00</published><updated>2009-04-28T22:41:43.560+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 16'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q4. Visit the TRUSTe web site. Describe what services and solutions are offered.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;TRUSTe helps consumers and businesses identify trustworthy online organizations through its Web Privacy Seal, Email Privacy Seal and Trusted Download Programs. TRUSTe resolves thousands of individual privacy disputes every year.&lt;br /&gt;TRUSTe has earned a reputation as the leader in promoting privacy policy disclosure, informed user consent, and consumer education.&lt;br /&gt;The TRUSTe privacy program – based on a branded online seal, the TRUSTe "trustmark" – bridges the gap between users' concerns over privacy and Web sites' needs for self-regulated information disclosure standards. &lt;span style="font-weight: bold;"&gt;(TRUSTe, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;TRUSTe's services support online business growth by allowing companies to  communicate their commitment to privacy, and letting consumers know which  businesses they can trust.&lt;br /&gt;&lt;br /&gt;In detail, TrustE help customers to build seals as services and solutions in order to protect privacy. They are namely, &lt;span style="font-weight: bold;"&gt;Web Privacy Seal, EU Safe Harbor Seal, Email Privacy Seal, International Services, Children's Privacy Seal, Japan Privacy Seal&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Trusted Download Program&lt;/span&gt;. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;1. TRUSTe (2009). "TRUSTe - Enterprise Privacy Solutions". TRUSTe, Retrieved from URL - &lt;a href="http://www.truste.org/businesses/enterprise.php"&gt;http://www.truste.org/businesses/enterprise.php&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-8006235565842788880?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/8006235565842788880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q4-visit-truste-web-site-describe-what.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8006235565842788880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8006235565842788880'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q4-visit-truste-web-site-describe-what.html' title='Q4. Visit the TRUSTe web site. Describe what services and solutions are offered.'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-5316243307918195915</id><published>2009-04-21T18:13:00.002+08:00</published><updated>2009-04-28T18:53:58.280+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 16'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q3. Visit the Verisign web site - what solutions does it offer for e-commerce?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;VeriSign offers the solutions for e-commerce. The solutions are follow...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;VeriSign Identity Protection&lt;/span&gt; - Easy-to-use authentication and transparent fraud detection from a trusted provider protects online transactions without slowing transactions - offers &lt;span style="font-weight: bold;"&gt;Customer Protection&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;SSL Certificates, and Secure Site Pro with EV SSL Certificates&lt;/span&gt; - Give your customers the confidence to transact online by displaying the green address bar in the latest high-security browser with Extended Validation SSL on your Web site - offers &lt;span style="font-weight: bold;"&gt;WebSite Security &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Managed Security Services, Unified Authentication, and Managed PKI Services&lt;/span&gt; - Authentication solutions for the enterprise, Web applications, and e-mail combined with comprehensive network protection help reduce risk while meeting compliance requirements - offers &lt;span style="font-weight: bold;"&gt;Network Security  &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Global Consulting Services, and VeriSign iDefense Security Intelligence Services&lt;/span&gt; - Security consulting and advanced intelligence reporting help you assess, analyze and update a layered approach to secure business assets - offers &lt;span style="font-weight: bold;"&gt;Expert Assistance and Intelligence&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;VeriSign Identity Protection&lt;/span&gt; - Large retailers and suppliers need to open their networks to partners,  affiliates, and customers to enhance services and speed operations while keeping  confidential data secure - offers &lt;span style="font-weight: bold;"&gt;Supply Chain Visibility &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;(VeriSign, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. VeriSign (2009). "E-Commerce Security - SSL Certificates". VeriSign, Retrieved from URL - &lt;a href="http://www.verisign.com/verisign-business-solutions/commerce-enablement-solutions/index.html"&gt;http://www.verisign.com/verisign-business-solutions/commerce-enablement-solutions/index.html&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-5316243307918195915?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/5316243307918195915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q3-visit-verisign-web-site-what.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/5316243307918195915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/5316243307918195915'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q3-visit-verisign-web-site-what.html' title='Q3. Visit the Verisign web site - what solutions does it offer for e-commerce?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-544890172013097350</id><published>2009-04-21T18:10:00.003+08:00</published><updated>2009-04-28T18:23:24.736+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 16'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q2. What measures should e-commerce provide to create trust among their potential customers? What measures can be verified by the customer?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Rico (2009)&lt;/span&gt; suggests &lt;span style="font-weight: bold;"&gt;eTailQ and Agile&lt;/span&gt; methods to measure how e-commerce to create trust among potential customers. E-commerce should provide &lt;span style="font-weight: bold;"&gt;the measurement&lt;/span&gt; as ...&lt;br /&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Fulfillment and Reliability &lt;/li&gt;&lt;li&gt;Privacy and Security &lt;/li&gt;&lt;/ul&gt;Fulfillment and Reliability have 3 factors. They are &lt;span style="font-weight: bold;"&gt;Order Received, On Time Delivery&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Order Accurate&lt;/span&gt;. Order Received means you get what you ordered from this site. On Time Delivery means the product is delivered by the time promised by the company. Order Accurate means the product that came was represented accurately by the website.&lt;br /&gt;Privacy and Security have 3 factors. They are &lt;span style="font-weight: bold;"&gt;Protection of Privacy, Feelings of Safety&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Adequate Security&lt;/span&gt;. Protection of Privacy means I feel like my privacy is protected at this site. Feelings of Safety means I feel safe in my transactions with this website. Adequate Security means the website has adequate security features.&lt;br /&gt;&lt;br /&gt;Through fulfillment &amp;amp; reliability and privacy and security, e-commerce can create trust among their potential customers.&lt;br /&gt;&lt;br /&gt;The customer can verify the above measurement with feedback to the website. In Agile, there is &lt;span style="font-weight: bold;"&gt;Early Customer Involvement&lt;/span&gt;. The Early Customer Involvement has 5 items. They are &lt;span style="font-weight: bold;"&gt;Feedback Solicited&lt;/span&gt; - We seek early market feedback on every software release, &lt;span style="font-weight: bold;"&gt;Feedback Received&lt;/span&gt; - We receive early market feedback on every software release, &lt;span style="font-weight: bold;"&gt;Feedback Frequency&lt;/span&gt; - We receive early market feedback within a few hours or days, &lt;span style="font-weight: bold;"&gt;Feedback Quality&lt;/span&gt; - We receive in-depth early market feedback on every software release, and &lt;span style="font-weight: bold;"&gt;Feedback Incorporated&lt;/span&gt; - We incorporate early market feedback into every software release.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Rico, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;With &lt;span style="font-weight: bold;"&gt;Customers' Feedback&lt;/span&gt;, the measures can be verified.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Rico David F (2009). "DO AGILE METHODS RESULT IN HIGHER QUALITY WEBSITES?". Let Me Energize Your Software Process Improvement, Retrieved from URL - &lt;a href="http://davidfrico.com/rico07e.pdf"&gt;http://davidfrico.com/rico07e.pdf&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-544890172013097350?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/544890172013097350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-what-measures-should-e-commerce.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/544890172013097350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/544890172013097350'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-what-measures-should-e-commerce.html' title='Q2. What measures should e-commerce provide to create trust among their potential customers? What measures can be verified by the customer?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-3310363292501520499</id><published>2009-04-21T18:06:00.007+08:00</published><updated>2009-04-28T17:22:02.556+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 16'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q1. Visit an e-commerce website &amp; survey the mode of payment allowed. Would you trust the site with your business?</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Exercise 16: Authentication and Encryption Systems&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Q1. Visit an e-commerce website &amp;amp; survey the mode of payment allowed. Would you trust the site with your business?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have visited the online supermarket at &lt;a href="http://www.juscocityhk.com/b5/content.jsp"&gt;http://www.juscocityhk.com/b5/content.jsp&lt;/a&gt; and have surveyed the mode of payment allowed. The modes of payment found in the website are to&lt;br /&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Cash On Delivery &lt;/li&gt;&lt;li&gt;Credit Card - VISA&lt;/li&gt;&lt;li&gt;Credit Card - MasterCard &lt;/li&gt;&lt;li&gt;Credit Card - AMERICAN EXPRESS&lt;/li&gt;&lt;li&gt;Credit Card - Diners Club International &lt;/li&gt;&lt;li&gt;Credit Card - JCB &lt;/li&gt;&lt;li&gt;Credit Card - AEON&lt;/li&gt;&lt;/ul&gt;The Diagram-70 below shows the modes of payment.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/SfbF7qcy-8I/AAAAAAAAALQ/RiC2OqzaVmA/s1600-h/iuy.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 469px; height: 335px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/SfbF7qcy-8I/AAAAAAAAALQ/RiC2OqzaVmA/s320/iuy.JPG" alt="" id="BLOGGER_PHOTO_ID_5329664837837585346" border="0" /&gt;&lt;/a&gt;Diagram-70 - The Modes of Payment in &lt;a href="http://www.juscocityhk.com/b5/content.jsp"&gt;http://www.juscocityhk.com/b5/content.jsp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yes, I trust this website with my business because this website is secure enough to protect privacy and security. For examples, the following screen dumps in Diagram-71 show &lt;span style="font-weight: bold;"&gt;encrypted username &amp;amp; password authentication&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;128-bits SSL encryption transmission over Internet&lt;/span&gt;.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/SfbIp7ssu6I/AAAAAAAAALY/PhAtO9BNAFE/s1600-h/xsdc.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 473px; height: 285px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/SfbIp7ssu6I/AAAAAAAAALY/PhAtO9BNAFE/s320/xsdc.JPG" alt="" id="BLOGGER_PHOTO_ID_5329667831764925346" border="0" /&gt;&lt;/a&gt;Diagram-71 - Authentication and 128-bits SSL Encryption&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-3310363292501520499?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/3310363292501520499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-visit-e-commerce-website-survey-mode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/3310363292501520499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/3310363292501520499'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-visit-e-commerce-website-survey-mode.html' title='Q1. Visit an e-commerce website &amp; survey the mode of payment allowed. Would you trust the site with your business?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0NiBYKhCm2o/SfbF7qcy-8I/AAAAAAAAALQ/RiC2OqzaVmA/s72-c/iuy.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-867132761812636378</id><published>2009-04-21T17:59:00.008+08:00</published><updated>2009-05-08T03:32:30.055+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 15'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q3. Most of the antivirus software...</title><content type='html'>&lt;strong&gt;Q3. Most of the Anti-Virus software perform an active scanning of the user activity on the Internet, detecting downloads and attachments in emails. Hackers have readily available resources to create new viruses. How easy is it to find a virus writing kit? Search the Internet and find such a tool. For example, see what you can find at http://vx.netlux.org/dat/vct.shtml.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;It is very easy to find the virus writing kit. Seeing the diagram-80 below, I simply type "download virus creation tools" in Google. It shows over 200 related sites.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SfK8nT5BS6I/AAAAAAAAAK4/klPRunYjVwU/s1600-h/bbb.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5328528692673072034" style="margin: 0px 10px 10px 0px; float: left; width: 468px; height: 230px;" alt="" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SfK8nT5BS6I/AAAAAAAAAK4/klPRunYjVwU/s320/bbb.JPG" border="0" /&gt;&lt;/a&gt; Diagram-80 - The Google Search Result &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When click on the provided link, I find the result listed in the Diagram-81.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SfK9E3z67wI/AAAAAAAAALA/v1cviEk0d5w/s1600-h/ccc.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5328529200531566338" style="margin: 0px 10px 10px 0px; float: left; width: 469px; height: 265px;" alt="" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SfK9E3z67wI/AAAAAAAAALA/v1cviEk0d5w/s320/ccc.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-81 - The virus creation tools found&lt;/div&gt;&lt;br /&gt;I can find a virus creation tool called "blue-screen of dead". It makes windows computer blue screen. (See Diagram-82 for detail) &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_0NiBYKhCm2o/SfK92w0kimI/AAAAAAAAALI/n64qCz7tTl0/s1600-h/ddd.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5328530057648704098" style="margin: 0px 10px 10px 0px; float: left; width: 470px; height: 203px;" alt="" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/SfK92w0kimI/AAAAAAAAALI/n64qCz7tTl0/s320/ddd.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Digram-82 - Blue Screen of Dead Virus &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;I can downlod it and play. However, it is illegal so I will not do it.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SfK8ZKBe5GI/AAAAAAAAAKw/7HUrTlZ0f1E/s1600-h/bbb.JPG"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-867132761812636378?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/867132761812636378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q3-most-of-antivirus-software.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/867132761812636378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/867132761812636378'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q3-most-of-antivirus-software.html' title='Q3. Most of the antivirus software...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0NiBYKhCm2o/SfK8nT5BS6I/AAAAAAAAAK4/klPRunYjVwU/s72-c/bbb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-9114862058266852191</id><published>2009-04-21T17:57:00.002+08:00</published><updated>2009-04-25T14:38:59.869+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 15'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q2. Find out if your university or workplace has a backup policy in place. Is it followed and enforced?</title><content type='html'>&lt;span style="FONT-WEIGHT: bold"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There is a backup policy in my workplace. The backup policy is ...&lt;br /&gt;1. All employees need to optionally or weekly backup the personal data from local PC to the share drive Z: of the file server.&lt;br /&gt;2. All employees have to clone the entire local PC's hard drives to the Norton Ghost Server per 1 month.&lt;br /&gt;&lt;br /&gt;The above backup policy is enforced.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-9114862058266852191?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/9114862058266852191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-find-out-if-your-university-or.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/9114862058266852191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/9114862058266852191'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-find-out-if-your-university-or.html' title='Q2. Find out if your university or workplace has a backup policy in place. Is it followed and enforced?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-1816221737323461568</id><published>2009-04-21T17:54:00.009+08:00</published><updated>2009-04-25T14:40:10.990+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 15'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q1. What makes a firewall a good security investment? Accessing Internet, find 2 or 3 firewall vendors. Do they provide hardware, software or both?</title><content type='html'>&lt;span style="FONT-WEIGHT: bold;font-size:130%;" &gt;Exercise 15: Protecting and Archiving Data&lt;/span&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What makes a firewall a good security investment?&lt;br /&gt;&lt;strong&gt;Vijayrajesh (2007)&lt;/strong&gt; points out that if a computer is connected to the internet and it is not protected in some way, then it is vulnerable to attacks by external hackers. These attacks can be quite harmful to the PC and can even result in losing valuable data saved on the hard drive. A firewall is what protects your system from outside attacks and intrusions. There are many hackers actively trying to access computers for devious purposes. This unwanted traffic and visitor can steal data and also use your computer for their criminal plans, such as sending out junk emails. A firewall regulates this traffic to different zones, such as the internet or internal networks of which each has a different level of trust.&lt;br /&gt;&lt;br /&gt;Personally, I feel firewall is used to protect valuable data from hacker and malware. Without firewall, the valuable data may be stolen or destoryed. The main point is to protect data as data is the most valuable thing. In order to protect the most valuable thing, firewall is a good security investment.&lt;br /&gt;&lt;br /&gt;The three firewall vendors are...&lt;br /&gt;Juniper Networks - The products are Netscreen-5200 and Netscreen-5400. Juniper Networks provides mainly hardware firewall.&lt;br /&gt;Watchguard - The products are Fireware XTM and Firebox X-Edge e-series. Watchguard mainly makes hardware firewall.&lt;br /&gt;Checkpoint - The products are Power-1 11000 Series and Software Blades where Checkpoint offers BOTH hardware and software respectively.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Reference:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Vijayrajesh (2007). "Useful Software, Internet and Websites Pedia". Vijayrajesh, Retrieved from URL - &lt;/span&gt;&lt;a href="http://vrtechlog.blogspot.com/2007/11/why-you-need-firewall-and-how-zonealarm.html"&gt;&lt;span style="font-size:85%;"&gt;http://vrtechlog.blogspot.com/2007/11/why-you-need-firewall-and-how-zonealarm.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-1816221737323461568?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/1816221737323461568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-what-makes-firewall-good-security.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1816221737323461568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1816221737323461568'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-what-makes-firewall-good-security.html' title='Q1. What makes a firewall a good security investment? Accessing Internet, find 2 or 3 firewall vendors. Do they provide hardware, software or both?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-912471968562357573</id><published>2009-04-21T17:52:00.001+08:00</published><updated>2009-04-22T01:58:16.819+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 14'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q2. Can the use of cookies be a security risk?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yes, because there are malicious cookie.&lt;span style="font-weight: bold;"&gt; Webopedia (2009)&lt;/span&gt; says that Cookies normally do not compromise security, but there is a growing trend of malicious cookies. These types of cookies can be used to store and track your activity online. Cookies that watch your online activity are called malicious or tracking cookies. These are the bad cookies to watch for, because they track you and your surfing habits, over time, to build a profile of your interests. Once that profile contains enough information there is a good chance that your information can be sold to an advertising company who then uses this profile information to target you with interest specific adverts. Many antivirus programs today will flag suspicious spyware or adware cookies when scanning your system for viruses. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Webopedia (2009). "What You Need to Know About Cookies?". Webopedia The #1 Online Encyclopedia dedicated to computer technology, Retrieved from URL - &lt;a href="http://www.webopedia.com/DidYouKnow/Internet/2007/all_about_cookies.asp"&gt;http://www.webopedia.com/DidYouKnow/Internet/2007/all_about_cookies.asp&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-912471968562357573?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/912471968562357573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-can-use-of-cookies-be-security-risk.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/912471968562357573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/912471968562357573'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-can-use-of-cookies-be-security-risk.html' title='Q2. Can the use of cookies be a security risk?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-8073662248679034679</id><published>2009-04-21T17:50:00.003+08:00</published><updated>2009-04-22T02:00:41.705+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 14'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q1. What are cookies and how are they used to improve security?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Exercise 14: Electronic payments and security II&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q1. What are cookies and how are they used to improve security?&lt;br /&gt;&lt;br /&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Webopedia (2009)&lt;/span&gt; describes cookies are the message given to a Web browser by a Web server. The browser stores the message in a text file. The message is then sent back to the server each time the browser requests a page from the server.&lt;br /&gt;The main purpose of cookies is to identify users and possibly prepare customized Web pages for them. When you enter a Web site using cookies, you may be asked to fill out a form providing such information as your name and interests. This information is packaged into a cookie and sent to your Web browser which stores it for later use. The next time you go to the same Web site, your browser will send the cookie to the Web server. The server can use this information to present you with custom Web pages. So, for example, instead of seeing just a generic welcome page you might see a welcome page with your name on it.&lt;br /&gt;&lt;br /&gt;How are they used to improve security?&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Wikipedia (2009) &lt;/span&gt;states that the web server can specify the secure flag while setting a cookie; the browser will then send it only over a secure channel, such as an SSL connection. Moreover, the web page - &lt;a href="http://www.jguru.com/faq/view.jsp?EID=425611"&gt;http://www.jguru.com/faq/view.jsp?EID=425611&lt;/a&gt; shows the example on how to make cookies secure. The example is listed below...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'secure' per RFC2109 as in...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;//snip&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Set-Cookie:JSESSIONID:893ihewwydkq2764@&amp;amp;@09;Path=/;secure&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;//snip &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Marking the cookies this way ensures they cannot be delivered over an unencrypted session such as http.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Using these three methods together makes a cookie reasonably 'SECURE'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Webopedia (2009). "What is cookie?". Webopedia The #1 Online Encyclopedia dedicated to computer technology, Retrieved from URL - &lt;a href="http://www.webopedia.com/TERM/c/cookie.html"&gt;http://www.webopedia.com/TERM/c/cookie.html&lt;/a&gt;&lt;br /&gt;2. Wikipedia (2009). "Http cookie". Wikipedia The Free Encyclopedia, Retrieved from URL - &lt;a href="http://en.wikipedia.org/wiki/HTTP_cookie"&gt;http://en.wikipedia.org/wiki/HTTP_cookie&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-8073662248679034679?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/8073662248679034679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-what-are-cookies-and-how-are-they.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8073662248679034679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8073662248679034679'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-what-are-cookies-and-how-are-they.html' title='Q1. What are cookies and how are they used to improve security?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-6136607727474005879</id><published>2009-04-21T17:47:00.003+08:00</published><updated>2009-04-22T02:34:42.098+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 13'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q2. What is SET and how does it compare to SSL as a platform for secure electronic transaction? Is SET in common use?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What is SET?&lt;br /&gt;Visa and MasterCard have jointly developed the &lt;span style="font-weight: bold;"&gt;S&lt;/span&gt;ecure &lt;span style="font-weight: bold;"&gt;E&lt;/span&gt;lectronic&lt;span style="font-weight: bold;"&gt; T&lt;/span&gt;ransaction (&lt;span style="font-weight: bold;"&gt;SET&lt;/span&gt;) protocol as a method for secure, cost effective bankcard transactions over open networks. SET includes protocols for purchasing goods and services electronically, requesting authorization of payment, and requesting ``credentials'' (that is, certificates) binding public keys to identities, among other services. Once SET is fully adopted, the necessary confidence in secure electronic transactions will be in place, allowing merchants and customers to partake in electronic commerce.&lt;br /&gt;SET supports DES for bulk data encryption and RSA for signatures and public-key encryption of data encryption keys and bankcard numbers. The RSA public-key encryption employs Optimal Asymmetric Encryption Padding.&lt;br /&gt;SET is being published as open specifications for the industry, which may be used by software vendors to develop applications. &lt;span style="font-weight: bold;"&gt;(RSA.com, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;How does SET compare to SSL as a platform for secure electronic transaction?&lt;br /&gt;"Netscape's Secure Sockets Layer, SSL, provides a secure channel between web clients and web servers ... this is an important point because unlike the standard Internet protocols, such as TCP/IP, SSL must be selectively employed by the web client (the person surfing)... SSL is a layered approach to providing a secure channel" - Richardson quotes from page 103 of Gnosh &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;(Richardson, 2001)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SET - Secure Electronic Transaction, in SET protocol there are 4 entities&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Cardholder &lt;/li&gt;&lt;li&gt;Merchant &lt;/li&gt;&lt;li&gt;Certificate Authority &lt;/li&gt;&lt;li&gt;Payment gateway - "the role of the payment gateway is to connect the Internet and proprietary networks of banks"&lt;/li&gt;&lt;/ul&gt;"SET protocol was developed jointly by Mastercard and Visa with the goal of providing a secure payment environment for the transmission of credit card data"  - Richardson quotes from page 295 of Greenstein &lt;span style="font-weight: bold;"&gt;(Richardson, 2001)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;According to Greenstein and Feinman (p. 297) "The initial version of SET protocol is considered  to be a stronger security mechanism than other transmission protocols, such as SSL, because of SET's stronger authentification features". Greenstein and Feinman point out that SSL is good at providing confidentiality during the transmission of the data, but alone it does not authenticate either the sender or the receiver of  the message. &lt;span style="font-weight: bold;"&gt;(Richardson, 2001)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Therefore, SSL is the way or protocol to transmit data in the secure channel but it does not offer authenication. SET is used mainly for secure authenication in transaction on the Internet (E-commerce)&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Is SET in common use?&lt;br /&gt;Yes, becuase SET is invented by VISA and MasterCard bodies in 1997, the transaction involving VISA &amp;amp; MasterCard will use SET.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. RSA.com (2009). "RSA Laboratories - 4.2.3 What is SET?". RSA Security, Retrieved from URL - &lt;a href="http://www.rsa.com/rsalabs/node.asp?id=2287"&gt;http://www.rsa.com/rsalabs/node.asp?id=2287&lt;/a&gt;&lt;br /&gt;2. Richardson W. Tim G. (2001). "MGTC50 - Section D". University of Toronto at Scarborough, Retrieved from URL - &lt;/span&gt;&lt;a href="http://www.witiger.com/ecommerce/outlineMGTC50d.htm#SETSSL"&gt;&lt;span style="font-size:85%;"&gt;http://www.witiger.com/ecommerce/outlineMGTC50d.htm#SETSSL&lt;/span&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-6136607727474005879?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/6136607727474005879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-what-is-set-and-how-does-it-compare.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/6136607727474005879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/6136607727474005879'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-what-is-set-and-how-does-it-compare.html' title='Q2. What is SET and how does it compare to SSL as a platform for secure electronic transaction? Is SET in common use?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-385831014567830625</id><published>2009-04-21T17:26:00.004+08:00</published><updated>2009-04-22T03:19:39.479+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 13'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q1. List and Describe your experiences with a secure Web site...</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Exercise 13: Electronic payments and security I &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q1. List and describe your experiences with a secure Web site. Some examples may be:&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;University enrollment;&lt;/li&gt;&lt;li&gt;Online banking, auctions, real estate;&lt;/li&gt;&lt;li&gt;Booking a cheap air ticket or convert ticket;&lt;/li&gt;&lt;li&gt;Shopping online for a book, software or a CD.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have experience in the secure web sites. They are...&lt;ol&gt;&lt;li&gt;Managing my bank accounts through I-banking at&lt;a href="http://www.chbank.com/en/index.shtml"&gt; http://www.chbank.com/en/index.shtml&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Buying cinema ticket with my VISA card at &lt;a href="https://www3.cinema.com.hk/revamp/html/order_fillin.php?lang=e&amp;amp;show_id=16066407&amp;amp;seatList=J12,J11"&gt;https://www3.cinema.com.hk/revamp/html/order_fillin.php?lang=e&amp;amp;show_id=16066407&amp;amp;seatList=J12,J11&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;When handling my bank accounts, I need to click on the "logon" icon at &lt;a href="http://www.chbank.com/en/index.shtml"&gt;http://www.chbank.com/en/index.shtml&lt;/a&gt;. After that, the Logon Window pops up. This pop-up window is displayed in Diagram-60.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Se4XD96Av_I/AAAAAAAAAKY/akioE8HRlYg/s1600-h/zxsa.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 396px; height: 334px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Se4XD96Av_I/AAAAAAAAAKY/akioE8HRlYg/s320/zxsa.JPG" alt="" id="BLOGGER_PHOTO_ID_5327220766150803442" border="0" /&gt;&lt;/a&gt;Diagram-60 - Logon Window@ibanking&lt;br /&gt;&lt;br /&gt;Then I need to enter my userid and password for authentication. When the authentication passes, I can manage my bank accounts, for example, I can transfer money from account A to account B, pay for bills or check my credit limits.&lt;br /&gt;&lt;br /&gt;In  &lt;a href="http://www.chbank.com/en/index.shtml"&gt;http://www.chbank.com/en/index.shtml&lt;/a&gt;, I can find the security issue is concerned. For example, when I click on "Online Security Tips" button in Logon Window, I find that ...&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the bank adopts the 128-bit Secure Socket Layer (SSL) encryption to assure the confidentiality of your personal and transaction data during transmission on the Internet.&lt;/li&gt;&lt;li&gt;the bank provides two-factor authentication tools to enhance the identity verification when you need to conduct online transactions.&lt;/li&gt;&lt;/ul&gt;When I buy film ticket at &lt;a href="https://www3.cinema.com.hk/revamp/html/order_fillin.php?lang=e&amp;amp;show_id=16066407&amp;amp;seatList=J12,J11"&gt;https://www3.cinema.com.hk/revamp/html/order_fillin.php?lang=e&amp;amp;show_id=16066407&amp;amp;seatList=J12,J11&lt;/a&gt;, I need to login first. Then I need to select the desirable seats and click on the "confirm" button. Once the confirm button has been clicked, I need to fill in my VISA card information to confirm the payment (through VISA or Master Cards). The following Diagram-61 shows the screen of ordering information...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Se4bW8IV2dI/AAAAAAAAAKg/ADpNDabQH_U/s1600-h/aaaqw.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 422px; height: 244px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Se4bW8IV2dI/AAAAAAAAAKg/ADpNDabQH_U/s320/aaaqw.JPG" alt="" id="BLOGGER_PHOTO_ID_5327225490138061266" border="0" /&gt;&lt;/a&gt;Diagram-61 - buying film ticket&lt;br /&gt;&lt;br /&gt;In the diagram-61, we can find that the web site is secured, for example, it is secured by "Verify by VISA" or MasterCard Secure Code". It is SET providing authentication and secure data transmission.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-385831014567830625?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/385831014567830625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-list-and-describe-your-experiences.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/385831014567830625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/385831014567830625'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-list-and-describe-your-experiences.html' title='Q1. List and Describe your experiences with a secure Web site...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0NiBYKhCm2o/Se4XD96Av_I/AAAAAAAAAKY/akioE8HRlYg/s72-c/zxsa.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-1944838700399501619</id><published>2009-04-21T17:03:00.002+08:00</published><updated>2009-04-21T17:22:19.083+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 12'/><title type='text'>Q3. What is 'phishing'?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the field of computer security, phishing is the criminally fraudulent process of attempting to acquire sensitive information such as usernames, passwords and credit card details by masquerading as a trustworthy entity in an electronic communication. Communications purporting to be from popular social web sites, auction sites, online payment processors or IT Administrators are commonly used to lure the unsuspecting. Phishing is typically carried out by e-mail or instant messaging, and it often directs users to enter details at a fake website whose look and feel are almost identical to the legitimate one. Even when using server authentication, it may require tremendous skill to detect that the website is fake. Phishing is an example of social engineering techniques used to fool users, and exploits the poor usability of current web security technologies. Attempts to deal with the growing number of reported phishing incidents include legislation, user training, public awareness, and technical security measures.&lt;br /&gt;A phishing technique was described in detail in 1987, and the first recorded use of the term "phishing" was made in 1996. The term is a variant of fishing, probably influenced by phreaking, and alludes to baits used to "catch" financial information and passwords. &lt;span style="font-weight: bold;"&gt;(Wikipedia, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The act of sending an e-mail to a user falsely claiming to be an established legitimate enterprise in an attempt to scam the user into surrendering private information that will be used for identity theft. The e-mail directs the user to visit a Web site where they are asked to update personal information, such as passwords and credit card, social security, and bank account numbers, that the legitimate organization already has. The Web site, however, is bogus and set up only to steal the user’s information. &lt;span style="font-weight: bold;"&gt;(Webopedia, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Wikipedia (2009). "Phishing". Wikipedia The Free Encyclopedia, Retrieved from URL - &lt;a href="http://en.wikipedia.org/wiki/Phishing"&gt;http://en.wikipedia.org/wiki/Phishing&lt;/a&gt;&lt;br /&gt;2. Webopedia (2009). "What is Phishing?". The #1 Online Encyclopedia dedicated to computer technology, Retrieved from URL - &lt;a href="http://www.webopedia.com/TERM/p/phishing.html"&gt;http://www.webopedia.com/TERM/p/phishing.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-1944838700399501619?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/1944838700399501619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q3-what-is-phishing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1944838700399501619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1944838700399501619'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q3-what-is-phishing.html' title='Q3. What is &apos;phishing&apos;?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-4722426205064171991</id><published>2009-04-21T16:26:00.003+08:00</published><updated>2009-04-21T17:00:51.146+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 12'/><title type='text'>Q2. What can you find out about network and host-based intrusion detection systems?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A &lt;span style="font-weight: bold;"&gt;n&lt;/span&gt;etwork &lt;span style="font-weight: bold;"&gt;i&lt;/span&gt;ntrusion &lt;span style="font-weight: bold;"&gt;d&lt;/span&gt;etection &lt;span style="font-weight: bold;"&gt;s&lt;/span&gt;ystem (&lt;span style="font-weight: bold;"&gt;INDS&lt;/span&gt;) is an intrusion detection system that tries to detect malicious activity such as denial of service attacks, port scans or even attempts to crack into computers by monitoring network traffic.&lt;br /&gt;The NIDS does this by reading all the incoming packets and trying to find suspicious patterns. If, for example, a large number of TCP connection requests to a very large number of different ports are observed, one could assume that there is someone conducting a port scan of some or all of the computer(s) in the network. It also (mostly) tries to detect incoming shellcodes in the same manner that an ordinary intrusion detection systems does.&lt;br /&gt;A NIDS is not limited to inspecting incoming network traffic only. Often valuable information about an ongoing intrusion can be learned from outgoing or local traffic as well. Some attacks might even be staged from the inside of the monitored network or network segment, and are therefore not regarded as incoming traffic at all.&lt;br /&gt;Often, network intrusion detection systems work with other systems as well. They can for example update some firewalls' blacklist with the IP addresses of computers used by (suspected) crackers.&lt;br /&gt;Certain DISA documentation, such as the Network STIG, uses the term NID to distinguish an internal IDS instance from its outward-facing counterpart.&lt;span style="font-weight: bold;"&gt; (Wikipedia-1, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A &lt;span style="font-weight: bold;"&gt;h&lt;/span&gt;ost-based &lt;span style="font-weight: bold;"&gt;i&lt;/span&gt;ntrusion &lt;span style="font-weight: bold;"&gt;d&lt;/span&gt;etection &lt;span style="font-weight: bold;"&gt;s&lt;/span&gt;ystem (&lt;span style="font-weight: bold;"&gt;HIDS&lt;/span&gt;) is an intrusion detection system that monitors and analyzes the internals of a computing system rather than on its external interfaces (as a network-based intrusion detection system (NIDS) would do).&lt;br /&gt;A host-based IDS monitors all or parts of the dynamic behaviour and the state of a computer system. Much as a NIDS will dynamically inspect network packets, a HIDS might detect which program accesses what resources and discover that, for example, a word-processor has suddenly and inexplicably started modifying the system password-database. Similarly a HIDS might look at the state of a system, its stored information, whether in RAM, in the file-system, log files or elsewhere; and check that the contents of these appear as expected.&lt;br /&gt;One can think of a HIDS as an agent that monitors whether anything/anyone - internal or external - has circumvented the security policy that the operating system tries to enforce. &lt;span style="font-weight: bold;"&gt;(Wikipedia-2, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Wikipedia-1 (2009). &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;"Network Intrusion Detection System". Wikipedia The Free Encyclopedia, Retrieved from URL - &lt;a href="http://en.wikipedia.org/wiki/Network_intrusion_detection_system"&gt;http://en.wikipedia.org/wiki/Network_intrusion_detection_system&lt;/a&gt;&lt;br /&gt;2. Wikipedia-2 (2009) "Host-Based Intrusion Detection System". Wikipedia The Free Encyclopedia, Retrieved from URL - &lt;a href="http://en.wikipedia.org/wiki/Host-based_intrusion_detection_system"&gt;http://en.wikipedia.org/wiki/Host-based_intrusion_detection_system&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-4722426205064171991?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/4722426205064171991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-what-can-you-find-out-about-network.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/4722426205064171991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/4722426205064171991'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-what-can-you-find-out-about-network.html' title='Q2. What can you find out about network and host-based intrusion detection systems?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-4856057927415882059</id><published>2009-04-21T03:31:00.003+08:00</published><updated>2009-04-21T16:25:20.748+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 12'/><title type='text'>Q1. Find out about SET and the use of RSA 128-bit encryption for e-commerce.</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Exercise 12: Designing for a secure framework&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Q1. Find out about SET and the use of RSA 128-bit encryption for e-commerce.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Visa and MasterCard have jointly developed the Secure Electronic Transaction (SET) protocol as a method for secure, cost effective bankcard transactions over open networks. SET includes protocols for purchasing goods and services electronically, requesting authorization of payment, and requesting ``credentials'' (that is, certificates) binding public keys to identities, among other services. Once SET is fully adopted, the necessary confidence in secure electronic transactions will be in place, allowing merchants and customers to partake in electronic commerce.&lt;br /&gt;SET supports DES for bulk data encryption and RSA for signatures and public-key encryption of data encryption keys and bankcard numbers. The RSA public-key encryption employs Optimal Asymmetric Encryption Padding.&lt;br /&gt;SET is being published as open specifications for the industry, which may be used by software vendors to develop applications. &lt;span style="font-weight: bold;"&gt;(RSA.com, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Estioko (2007) &lt;/span&gt;states RAS is a famous variant of public key cryptography invented by cryptographers Ron Rivest, Adi Shamir, and Ron Adelman at MIT. RSA has become widely accepted, for example,&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Integrates with Netscape and Internet Explorer browsers&lt;/li&gt;&lt;li&gt;More than 20,000,000 users worldwide&lt;/li&gt;&lt;li&gt;Part of S/MIME for secure email (e.g., Outlook Express, Lotus Notes, etc.) where S/MIME is &lt;span style="font-weight: bold;"&gt;S&lt;/span&gt;ecure / &lt;span style="font-weight: bold;"&gt;M&lt;/span&gt;ultiple &lt;span style="font-weight: bold;"&gt;I&lt;/span&gt;nternet &lt;span style="font-weight: bold;"&gt;M&lt;/span&gt;ail &lt;span style="font-weight: bold;"&gt;E&lt;/span&gt;xtensions – provide cryptographic security services for electronic messaging applications (authentication, message integrity, and nonrepudiation using digital signatures and privacy and data security using encryption).&lt;/li&gt;&lt;/ul&gt;RSA is an algorithm for public-key encryption.&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;RSA 128-bits means highest level of encryption offering stronger security while the Personal Data like VISA card number, ID... etc is being passing through the Internet. The use of RSA 128-bit encryption for e-commerce is ...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Providing secure transaction for Online Transaction to protect personal data. The example is &lt;a href="http://www.flyingbean.com/?page=shop/help"&gt;http://www.flyingbean.com/?page=shop/help&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Secure File Transfer. The example is &lt;a href="http://www.sylvansoftware.com/dropchutepro.htm"&gt;http://www.sylvansoftware.com/dropchutepro.htm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Secure Application Server/Service. The example is &lt;a href="http://www.information-management.com/news/1022600-1.html"&gt;http://www.information-management.com/news/1022600-1.html&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. RSA.com (2009). "RSA Laboratories - 4.2.3 What is SET?". RSA Security, Retrieved from URL - &lt;a href="http://www.rsa.com/rsalabs/node.asp?id=2287"&gt;http://www.rsa.com/rsalabs/node.asp?id=2287&lt;/a&gt;&lt;br /&gt;2. Estioki Juan B (2007). "Introduction to E-commerce Security Risk". Association of Certified Fraud Examiners at National Computer Institute, Retrieved from URL - &lt;a href="http://miss.dswd.gov.ph/dmdocuments/cobit-IT%20audit/Day%202-3%20JEstioko/Introduction%20to%20eCommerce%20Security%20Risk%20%5BRead-Only%5D.pdf"&gt;http://miss.dswd.gov.ph/dmdocuments/cobit-IT%20audit/Day%202-3%20JEstioko/Introduction%20to%20eCommerce%20Security%20Risk%20%5BRead-Only%5D.pdf&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-4856057927415882059?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/4856057927415882059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/ex12.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/4856057927415882059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/4856057927415882059'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/ex12.html' title='Q1. Find out about SET and the use of RSA 128-bit encryption for e-commerce.'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-2564887342366369141</id><published>2009-04-13T05:28:00.005+08:00</published><updated>2009-04-15T17:42:36.959+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Elevator Pitch'/><title type='text'>Elevator Pitch 1</title><content type='html'>Web Applications needs too much time to be developed in changing environment.&lt;br /&gt;&lt;br /&gt;Thus, how can I develop web application rapidly with OO technique?&lt;br /&gt;&lt;br /&gt;From ITC594 course the lecturer lets us know the answer is using Ruby on Rails. Before this course, I know nothing about ROR. After exercises and workshops, we learn ROR step by step, for example, from e-business modeling concept to Ruby coding.&lt;br /&gt;&lt;br /&gt;Honestly, we hit many technical issues for installing &amp;amp; configuring ROR, for instance, Ruby cannot connect to MySQL successfully. Some syntaxes are changed with newer version of ROR. Also, although there are many supporting forum &amp;amp; wiki, the supporting does not have golden rule. We need to try by myself and feel painful.&lt;br /&gt;&lt;br /&gt;However, after working harder with ROR, I feel Ruby is GOOD now. I can build a web application within a minute by using scaffolding. Scaffolding is one feature of ROR. ROR is extremely fast than other programing language in term of development duration. Beside scaffolding, ROR offers default value making things simpler &amp;amp; smaller. Also ROR supports MVC. M-Model is active record handling backend database request. V-View is action view forming presentation to users. C-controller is action Controller defining functions, receiving requests,&lt;br /&gt;communicating with model and view.&lt;br /&gt;&lt;br /&gt;It is time to study hard for the next assignment.&lt;br /&gt;&lt;br /&gt;This is Joseph Cheung's Progress Report through Elevator Pitch&lt;br /&gt;&lt;br /&gt;(225 words)&lt;br /&gt;&lt;br /&gt;The audio version of elevator pitch is uploaded to CSU interaction.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-2564887342366369141?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/2564887342366369141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/elevator-pitch-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2564887342366369141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2564887342366369141'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/elevator-pitch-1.html' title='Elevator Pitch 1'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-7749057087100822994</id><published>2009-04-13T05:14:00.002+08:00</published><updated>2009-04-13T05:28:35.282+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 4'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>Q3. Compare the Ruby and Python versions of the dog years calculator:</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Ruby&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;#!/usr/bin/ruby&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# The Dog year calculator program called dogyears.rb&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;def dogyears&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# get the original age&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  puts “Enter your age (in human years): "&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  age = gets # gets is a method for input from keyboard&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  puts # is a method or operator for screen output&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#do some range checking, then print result&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  if age &lt;0&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    puts "Negative age?!?  I don't think so."&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  elsif age &gt; 110&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    puts "Frankly, I don't believe you."&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    puts "That's", age*7, "in dog years."&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;dogyears&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Python&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#!/usr/bin/python&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# The Dog year calculator program called dogyears.py&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;def dogyears():&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# get the original age&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    age = input("Enter your age (in human years): ")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    print       # print a blank line&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# do some range checking, then print result&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    if age &lt;0&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;       print "Negative age?!?  I don't think so."&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    elif age &gt; 110:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;       print "Frankly, I don't believe you."&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    else:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;       print "That's", age*7, "in dog years."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;### pause for Return key (so window doesn't disappear)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    raw_input('press Return&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;def main():&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    dogyears()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;main()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;The codes of Ruby and Python are very similar. They first accepts the input from keyboard. The input represents year-old. Then, they verify the input to see whether the input is in reasonable range. If so, they will calculate and print the result.&lt;br /&gt;&lt;br /&gt;The difference of the codes is ....&lt;br /&gt;1. Ruby uses "puts" to output on screen when Python uses "print" to output.&lt;br /&gt;2. Ruby uses the reserved words "elsif" buy Python uses "elif"&lt;br /&gt;3. Ruby needs "end" to complete the if-then-else, whereas, Python does not need.&lt;br /&gt;4. Ruby uses "def dogyears" to define the dog years class while Python uses "def dogyears()"&lt;br /&gt;5. Ruby does not need main() class  when Python needs main() class&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-7749057087100822994?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/7749057087100822994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q3-compare-ruby-and-python-versions-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7749057087100822994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7749057087100822994'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q3-compare-ruby-and-python-versions-of.html' title='Q3. Compare the Ruby and Python versions of the dog years calculator:'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-4337591234771594689</id><published>2009-04-13T05:04:00.004+08:00</published><updated>2009-04-13T05:12:20.054+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 4'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>Q2. Write a Ruby program called fizzbuzz.rb ...</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Q2. Write a Ruby program called fizzbuzz.rb that prints the numbers from 1 to 100. But for multiples of three print "Fizz" instead of the number and for the multiples of five print "Buzz". For numbers which are multiples of both three and five print "FizzBuzz".&lt;/span&gt;  &lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The fizzbuzz.rb has been developed and the program code &amp;amp; program output are as follow...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SeJYTbPIRDI/AAAAAAAAAKQ/2Um6iXPNvmc/s1600-h/zzz.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 439px; height: 226px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SeJYTbPIRDI/AAAAAAAAAKQ/2Um6iXPNvmc/s320/zzz.JPG" alt="" id="BLOGGER_PHOTO_ID_5323914800257319986" border="0" /&gt;&lt;/a&gt;Diagram-51 - the fizzbuzz.rb is run&lt;br /&gt;&lt;br /&gt;The code and complete program output are stated below....&lt;br /&gt;&lt;br /&gt;The source code:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#!C:\InstantRails-2.0-win\ruby\bin\ruby&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# 1. Print Number 1 to 100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# 2. When multiples of 3, pint Fizz instead of number&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# 3. When multiples of 5, pint Buzz instead of number&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# 4. When multiples of 3 &amp;amp; 5, pint FizzBuzz instead of number&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;def fizzbuzz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  i=1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  loop do&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        break if i&gt;100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        if (i%3)==0 &amp;amp;&amp;amp; (i%5)==0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;         puts "FizzBuzz"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        elsif (i%3)==0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;         puts "Fizz"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        elsif (i%5)==0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;         puts "Buzz"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;         puts i&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        i=i+1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;fizzbuzz&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The output:&lt;br /&gt;1&lt;br /&gt;2&lt;br /&gt;Fizz&lt;br /&gt;4&lt;br /&gt;Buzz&lt;br /&gt;Fizz&lt;br /&gt;7&lt;br /&gt;8&lt;br /&gt;Fizz&lt;br /&gt;Buzz&lt;br /&gt;11&lt;br /&gt;Fizz&lt;br /&gt;13&lt;br /&gt;14&lt;br /&gt;FizzBuzz&lt;br /&gt;16&lt;br /&gt;17&lt;br /&gt;Fizz&lt;br /&gt;19&lt;br /&gt;Buzz&lt;br /&gt;Fizz&lt;br /&gt;22&lt;br /&gt;23&lt;br /&gt;Fizz&lt;br /&gt;Buzz&lt;br /&gt;26&lt;br /&gt;Fizz&lt;br /&gt;28&lt;br /&gt;29&lt;br /&gt;FizzBuzz&lt;br /&gt;31&lt;br /&gt;32&lt;br /&gt;Fizz&lt;br /&gt;34&lt;br /&gt;Buzz&lt;br /&gt;Fizz&lt;br /&gt;37&lt;br /&gt;38&lt;br /&gt;Fizz&lt;br /&gt;Buzz&lt;br /&gt;41&lt;br /&gt;Fizz&lt;br /&gt;43&lt;br /&gt;44&lt;br /&gt;FizzBuzz&lt;br /&gt;46&lt;br /&gt;47&lt;br /&gt;Fizz&lt;br /&gt;49&lt;br /&gt;Buzz&lt;br /&gt;Fizz&lt;br /&gt;52&lt;br /&gt;53&lt;br /&gt;Fizz&lt;br /&gt;Buzz&lt;br /&gt;56&lt;br /&gt;Fizz&lt;br /&gt;58&lt;br /&gt;59&lt;br /&gt;FizzBuzz&lt;br /&gt;61&lt;br /&gt;62&lt;br /&gt;Fizz&lt;br /&gt;64&lt;br /&gt;Buzz&lt;br /&gt;Fizz&lt;br /&gt;67&lt;br /&gt;68&lt;br /&gt;Fizz&lt;br /&gt;Buzz&lt;br /&gt;71&lt;br /&gt;Fizz&lt;br /&gt;73&lt;br /&gt;74&lt;br /&gt;FizzBuzz&lt;br /&gt;76&lt;br /&gt;77&lt;br /&gt;Fizz&lt;br /&gt;79&lt;br /&gt;Buzz&lt;br /&gt;Fizz&lt;br /&gt;82&lt;br /&gt;83&lt;br /&gt;Fizz&lt;br /&gt;Buzz&lt;br /&gt;86&lt;br /&gt;Fizz&lt;br /&gt;88&lt;br /&gt;89&lt;br /&gt;FizzBuzz&lt;br /&gt;91&lt;br /&gt;92&lt;br /&gt;Fizz&lt;br /&gt;94&lt;br /&gt;Buzz&lt;br /&gt;Fizz&lt;br /&gt;97&lt;br /&gt;98&lt;br /&gt;Fizz&lt;br /&gt;Buzz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-4337591234771594689?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/4337591234771594689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-write-ruby-program-called-fizzbuzzrb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/4337591234771594689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/4337591234771594689'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-write-ruby-program-called-fizzbuzzrb.html' title='Q2. Write a Ruby program called fizzbuzz.rb ...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0NiBYKhCm2o/SeJYTbPIRDI/AAAAAAAAAKQ/2Um6iXPNvmc/s72-c/zzz.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-1331310209095889050</id><published>2009-04-13T02:55:00.003+08:00</published><updated>2009-04-13T04:40:24.408+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 4'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>Q1. Create, test and debug a Ruby program called dognames.rb or catnames.rb...</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Q1. Create, test and debug a Ruby program called dognames.rb or catnames.rb to accept 3 names from the keyboard and to display each name on the screen in alphabetical order WITHOUT using a data structure such as a list.&lt;/span&gt;&lt;/span&gt;  &lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have written the dognames.rb ruby program. The diagram-50 shows the screen dump (result) of running dognames.rb in Ruby console.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SeJRM67jhVI/AAAAAAAAAKI/IO6Ha5OXztM/s1600-h/zz.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 443px; height: 229px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SeJRM67jhVI/AAAAAAAAAKI/IO6Ha5OXztM/s320/zz.JPG" alt="" id="BLOGGER_PHOTO_ID_5323906991924675922" border="0" /&gt;&lt;/a&gt;Diagram-50 - The result of running dognames.rb&lt;br /&gt;&lt;br /&gt;The code of dognames.rb  is listed below...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#!C:\InstantRails-2.0-win\ruby\bin\ruby&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# The Dog Name Program to sort the dogname without using sort method&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# assume all inputs of the dog names are not the same&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;def dognames&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# get the three dogs' names&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  puts "Enter the first dog's name: "&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  $dog1 = STDIN.gets&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  puts "Enter the second dog's name: "&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  $dog2 = STDIN.gets&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  puts "Enter the third dog's name: "&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  $dog3 = STDIN.gets&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  first=""&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  second=""&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  third=""&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  if ($dog1 &lt;=&gt; $dog2)==-1 &amp;amp;&amp;amp; ($dog1 &lt;=&gt; $dog3)==-1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        first=$dog1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        if ($dog2 &lt;=&gt; $dog3)==-1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                second=$dog2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                third=$dog3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                second=$dog3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                third=$dog2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  elsif ($dog1 &lt;=&gt; $dog2)==-1 &amp;amp;&amp;amp; ($dog1 &lt;=&gt; $dog3)==1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        first=$dog3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        second=$dog1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        third=$dog2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  elsif ($dog1 &lt;=&gt; $dog2)==1 &amp;amp;&amp;amp; ($dog1 &lt;=&gt; $dog3)==-1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        third=$dog3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        second=$dog1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        first=$dog2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  elsif ($dog1 &lt;=&gt; $dog2)==1 &amp;amp;&amp;amp; ($dog1 &lt;=&gt; $dog3)==1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        third=$dog1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        if ($dog2 &lt;=&gt; $dog3)==1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                second=$dog2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                first=$dog3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                second=$dog3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                first=$dog2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  puts "The order of dogs' names is "&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  puts&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  puts first+" "+second+" "+third&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;dognames&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-1331310209095889050?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/1331310209095889050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-create-test-and-debug-ruby-program.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1331310209095889050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1331310209095889050'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-create-test-and-debug-ruby-program.html' title='Q1. Create, test and debug a Ruby program called dognames.rb or catnames.rb...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0NiBYKhCm2o/SeJRM67jhVI/AAAAAAAAAKI/IO6Ha5OXztM/s72-c/zz.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-8288861206713916179</id><published>2009-04-11T13:53:00.013+08:00</published><updated>2009-04-11T15:16:32.100+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 3'/><title type='text'>To Do List....</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;To do:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;1. Set up the MySQL tools on your computer as described in section-6 above.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SeA66EOfZGI/AAAAAAAAAJg/1_X_NSChegI/s1600-h/hh.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 439px; height: 329px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SeA66EOfZGI/AAAAAAAAAJg/1_X_NSChegI/s320/hh.JPG" alt="" id="BLOGGER_PHOTO_ID_5323319528793269346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-43 - The MySQL tools are installed into my homePC.&lt;br /&gt;The above diagram shows that the MySQL tools are installed and setup into my homePC.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Rails will setup a new application directory for each of your Web application projects. Get InstantRails (Windows) or Locomotive (MacOS) &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;running on yo&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;ur machine. Both p&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;ackages install Ruby, Rails, a Web server or one called ‘Mongrel’ or another small Ruby Web server called ‘WEBrick’, and MySQL “inside a bubble” as I call it so that others parts of your system are not modified (Similarly ZOPE does with installing its own Web server and Python versions).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The following diagram-44 shows that I have created the other Rails Application, namely, taxisys in the Instant Rails 2.0 and have started the application with Mongrel.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/SeA9ZDt-yRI/AAAAAAAAAJo/hkp6ImRuag0/s1600-h/ii.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 440px; height: 329px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/SeA9ZDt-yRI/AAAAAAAAAJo/hkp6ImRuag0/s320/ii.JPG" alt="" id="BLOGGER_PHOTO_ID_5323322260256114962" border="0" /&gt;&lt;/a&gt;Diagram-44 - New Application Taxisys in Instant Rails 2.0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Once Rails is running yo&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;u at http://localhost:3000, you need to configure database access. Connection to the database is specified in the config/database.yml file&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have configured database access. The database.yml file is shown below...&lt;br /&gt;database.yml --&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;development:&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;adapter: mysql&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  database: taxisys_development&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  username: root&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  password: &lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;host: localhost&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;test:&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;adapter: mysql&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  database: taxisys_test&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  username: root&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  password:&lt;br /&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;  host: localhost&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;production:&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;adapter: mysql&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;database: taxisys_production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  username: root&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  password: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  host: localhost&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Generate the Passenger model by creating the MySQL database and ‘passengers’ table from the information abo&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;ve.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Passenger model &amp;amp; table are created. Please have the Diagram-45 to prove the successful implementation.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SeBAx-F4k8I/AAAAAAAAAJw/3Gtuy84cQZY/s1600-h/dd.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 104px; height: 78px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SeBAx-F4k8I/AAAAAAAAAJw/3Gtuy84cQZY/s320/dd.JPG" alt="" id="BLOGGER_PHOTO_ID_5323325986777371586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SeBA8GwT93I/AAAAAAAAAJ4/sm_SAhjoXrQ/s1600-h/ff.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 115px; height: 76px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SeBA8GwT93I/AAAAAAAAAJ4/sm_SAhjoXrQ/s320/ff.JPG" alt="" id="BLOGGER_PHOTO_ID_5323326160901502834" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SeBBFIfQtGI/AAAAAAAAAKA/rLsKsLRlIAM/s1600-h/jj.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 112px; height: 72px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SeBBFIfQtGI/AAAAAAAAAKA/rLsKsLRlIAM/s320/jj.JPG" alt="" id="BLOGGER_PHOTO_ID_5323326315985679458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-45 - the related table and model are created&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. Further work on understanding MySQL under Rails by David Mertz:      a.See “Fast-track your Web apps with Ruby on Rails” at http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/     b.The “Rolling with Ruby on Rails” series and “Cookbook recipes by Curt Hibbs and others beginning at http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have read the online tutorials on the given addresses already.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-8288861206713916179?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/8288861206713916179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/to-do-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8288861206713916179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8288861206713916179'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/to-do-list.html' title='To Do List....'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0NiBYKhCm2o/SeA66EOfZGI/AAAAAAAAAJg/1_X_NSChegI/s72-c/hh.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-1964866648072615139</id><published>2009-04-10T05:55:00.006+08:00</published><updated>2009-04-13T02:52:41.499+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 4'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>To Do List....</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;To Do:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Spend some time moving your way through the 46 Ruby coding examples in the Ruby Tutorial with Code from &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://www.fincher.org/tips/Languages/Ruby/"&gt;http://www.fincher.org/tips/Languages/Ruby/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have already studied the Ruby Tutorial from the mentioned URL.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. what are the syntax differences in the way that Ruby and Javascript use the if statement? &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The if-elseif-else example of  ruby is listed below...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;temperature=30&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;if temperature &lt;=15&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  puts "It is very cold"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;elsif temperature&gt;15 &amp;amp;&amp;amp; temperature&lt;=25&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; puts "it is warm"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  put "it is hot"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The if-elseif-else example of Javascript is listed below...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;var temperature=30;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;if (temperature&lt;=15)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;{   document.write("It is very cold");  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;else if (temperature&gt;15 &amp;amp;&amp;amp; temperature&lt;=25)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;{   document.write("It is warm");        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;{   document.write("It is hot");            }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;With the above 2 examples, the syntax difference between Ruby and Javascript is explained here...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In Ruby, we use "if condition". However, in Javascript, we use "if (condition)". The difference is the "( )"&lt;/li&gt;&lt;li&gt;The else-if statement in Ruby is performed by reserved words "elsif", but Javascript use "else if".&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Similarly, "elsif condition" in ruby is different with "else if (condition)" in Javascript. The difference is the "( )"&lt;/li&gt;&lt;li&gt;Ruby needs "end" to complete the if-elsif-else logic, yet Javascript does not need "end" because Javascript executes statements as block "{ }"&lt;/li&gt;&lt;li&gt;In Javascript, if the condition is true, the statement(s) inside "{ }" will be executed. The logic flow is that Javascript first checks the if-clause to see whether the condition is true and then it checks the else-if-clause. If the if-clause and else-if-clause' conditions are false, then Javascript will run else' statement(s) inside "{ }". In Ruby, if-elseif-else logic flow is that Ruby first checks the if-clause to verify whether the condition is true. If true, Ruby executes the statement(s) after the if-clause. The execution stops until reaching the elsif or else clauses and jumps to "end" statement. If the first if-clause's condition is false, then Ruby jumps to execute elsif's statements until reaching else......&lt;/li&gt;&lt;/ul&gt;These are the syntax difference between Ruby and Javascript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. While Ruby and Python are quite similar, can you find some similarities between Ruby and Javascript?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Both languages are highly dynamic, allowing you to change objects and methods at runtime. Both languages are very object-oriented with different approaches. Ruby and JavaScript are both dynamically typed and often employ what is known in the Ruby world as duck typing instead of checking for certain types. Variables in JavaScript, like Ruby, hold data. In the case of basic types, they hold the value of the type itself, but in the case of objects it holds a reference to the object itself. This is similar to Ruby’s notion of references and immediate values with the only difference that the latter group are not real objects in JavaScript. JavaScript, like Ruby, is heavily object-oriented, and objects are used everywhere. In JavaScript and Ruby, the only construct which provides &lt;em&gt;scope&lt;/em&gt; is the function. In Ruby, classes are “open” and you can extend any class with new methods. This is also the case for JavaScript. &lt;span style="font-weight: bold;"&gt;(Darell, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on menu-top" style="display: block;" id="formatbar_FontSize" title="Font size" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);toggleFontSizeMenu();ButtonMouseDown(this);"&gt;&lt;img src="http://www.blogger.com/img/blank.gif" alt="Font size" class="gl_size" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Darell Tore (2009). "JavaScript Eye For Ruby Guy". Sneaky Abstractions, Retrieved from URL - &lt;a href="http://tore.darell.no/pages/javascript_eye_for_the_ruby_guy"&gt;http://tore.darell.no/pages/javascript_eye_for_the_ruby_guy&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-1964866648072615139?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/1964866648072615139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/bb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1964866648072615139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1964866648072615139'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/bb.html' title='To Do List....'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-8089402550531096385</id><published>2009-04-10T05:54:00.010+08:00</published><updated>2009-04-11T05:39:44.965+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 3'/><title type='text'>Understanding Scaffold....</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What is scaffold?&lt;br /&gt;Scaffold is a way to quickly put an Active Record class online by providing a series of standardized actions for (CRUD) Creating, Reading/showing, Updating, and Destroying objects of the class. It is useful for quick prototyping. These standardized actions come with both controller logic and default templates that through introspection already know which fields to display and which input types to use. &lt;span style="font-weight: bold;"&gt;(Shin, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, I will use scaffold to generate Passenger ActionView, ActionController and ActiveModel.  The steps are list as follow...&lt;br /&gt;&lt;br /&gt;1.  run "&lt;span style="font-weight: bold;"&gt;rails taxisys&lt;/span&gt;" to create another project. The Diagram-43 shows the result as follow.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sd-mmz7rInI/AAAAAAAAAIo/t8ujkW6iGBA/s1600-h/aa.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 447px; height: 494px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sd-mmz7rInI/AAAAAAAAAIo/t8ujkW6iGBA/s320/aa.JPG" alt="" id="BLOGGER_PHOTO_ID_5323156470280954482" border="0" /&gt;&lt;/a&gt;Diagram-43 - taxisys taxi system&lt;br /&gt;&lt;br /&gt;2. After that, taxisys is started at tcp port 5000 and the related screen dump is shown in Diagram-44.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd-ne9B6DeI/AAAAAAAAAIw/SMZKyh7bTHI/s1600-h/bb.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 445px; height: 330px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd-ne9B6DeI/AAAAAAAAAIw/SMZKyh7bTHI/s320/bb.JPG" alt="" id="BLOGGER_PHOTO_ID_5323157434795691490" border="0" /&gt;&lt;/a&gt;Diagram-44 - taxtsys starts at tcp port &lt;span style="font-weight: bold;"&gt;5000 with Mongrel&lt;/span&gt; (Instant Rails 2.0)&lt;br /&gt;&lt;br /&gt;3. In order to make use of scaffold in ROR, the command "&lt;span style="font-weight: bold;"&gt;ruby script/generate scaffol&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;d Passenger name&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:st&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;ring job_id:string contact_number:string suburb_origin:string street:string street_number:string building:string suburb_destination:string passenger_number:string taxi_type:string date:string time_required:string&lt;/span&gt;" is run and the diagram-45 shows that the Passenger Active Record (Model - app/models/passenger.rb), Action Controller (Controller - app/controllers/passengers_controller.rb) and Action View (View - app/views/passengers/*.html.erb) are generated.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sd-smoVpE2I/AAAAAAAAAI4/cB4FobOAS_0/s1600-h/cc.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 440px; height: 487px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sd-smoVpE2I/AAAAAAAAAI4/cB4FobOAS_0/s320/cc.JPG" alt="" id="BLOGGER_PHOTO_ID_5323163064238412642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-45 - Scaffold&lt;br /&gt;&lt;br /&gt;4. After scaffold generates the Model, View and Controller for us, we can focus on the &lt;span style="font-weight: bold;"&gt;taxisys\db\migrate\001_create_passengers.rb&lt;/span&gt; file. This file contains the definition of the Passengers Class and its attribute. This file is used to create passenger table in mysql. The Diagram-46 shows the contents of the MVC files and the 001_create_passengers.rb file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd-uo3W6diI/AAAAAAAAAJA/E1dE_tgLgDI/s1600-h/dd.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 438px; height: 328px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd-uo3W6diI/AAAAAAAAAJA/E1dE_tgLgDI/s320/dd.JPG" alt="" id="BLOGGER_PHOTO_ID_5323165301653272098" border="0" /&gt;&lt;/a&gt;Diagram-46 - The contents of the files that scaffold generates&lt;br /&gt;&lt;br /&gt;5. Before creating the table in mysql, we need to configure the &lt;span style="font-weight: bold;"&gt;config/database.yml&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;create taxis&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;ys database in mysql&lt;/span&gt;. The Diagram-47 shows that the content of database.yml file after configuration. The listing below shows the content of the database.yml file.&lt;br /&gt;&lt;br /&gt;The content of the database.yml:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;development:&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;adapter: mysql&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  database: taxisys_development&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;username: root&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  pass&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;word:&lt;br /&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;  host: localhost&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;test:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  adapter: mysql&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  database: taxisys_test&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;username: root&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  password: &lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;host:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; localhost&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;production:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  adapter: mysql&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  database: taxisy&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;s&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;_production&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;username: root&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  password: &lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;host: localhost&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd-0kEkddRI/AAAAAAAAAJI/Rl-U0nsYoho/s1600-h/ee.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 439px; height: 282px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd-0kEkddRI/AAAAAAAAAJI/Rl-U0nsYoho/s320/ee.JPG" alt="" id="BLOGGER_PHOTO_ID_5323171816370173202" border="0" /&gt;&lt;/a&gt;Diagram-47 - the taxisys_test, taxisys_development and taxisys_production are created&lt;br /&gt;&lt;br /&gt;6. run "&lt;span style="font-weight: bold;"&gt;set RAILS_ENV=development&lt;/span&gt;" command first and then run "&lt;span style="font-weight: bold;"&gt;rake db:migrate&lt;/span&gt;" command to create &lt;span style="font-weight: bold;"&gt;passengers tabl&lt;/span&gt;e in &lt;span style="font-weight: bold;"&gt;taxisys_development databa&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;se&lt;/span&gt;. The Diagram-48 shows the commands' screen dump. In the screen dump, &lt;span style="font-weight: bold;"&gt;passengers table&lt;/span&gt; is shown and create by "&lt;span style="font-weight: bold;"&gt;rake&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sd-3kdfJ9QI/AAAAAAAAAJQ/KjZUXlyx02w/s1600-h/ff.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 438px; height: 285px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sd-3kdfJ9QI/AAAAAAAAAJQ/KjZUXlyx02w/s320/ff.JPG" alt="" id="BLOGGER_PHOTO_ID_5323175121593693442" border="0" /&gt;&lt;/a&gt;Diagram-48 - the rake command output&lt;br /&gt;&lt;br /&gt;7. After All, scaffold is finished. We can open IE browser with url - &lt;a href="http://localhost:5000/passengers"&gt;&lt;span style="font-weight: bold;"&gt;http://localhost:5000/passengers&lt;/span&gt;&lt;/a&gt; to interact with the Action View. We can list the record in passengers table. We can update (edit) specific record of the table. We can drop the table. And also we can create a new record in the table. The Diagram-49 shows the Action View in IE browser.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sd-7uB4mFXI/AAAAAAAAAJY/tW9LS4YzKRg/s1600-h/gg.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 437px; height: 328px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sd-7uB4mFXI/AAAAAAAAAJY/tW9LS4YzKRg/s320/gg.JPG" alt="" id="BLOGGER_PHOTO_ID_5323179684029404530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Diagram-49 - Action View&lt;br /&gt;&lt;br /&gt;It is the scaffold in ROR and it helps to build application very fast.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Shin Sang (2009). "EMPOWER:YOU". Sun Tech Days 2008-2009, Retrieved from URL - &lt;a href="http://www.suntechdays2008.com/down/1015/track1_java/T1S6_jrubyrails_sangshin.pdf"&gt;http://www.suntechdays2008.com/down/1015/track1_java/T1S6_jrubyrails_sangshin.pdf&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-8089402550531096385?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/8089402550531096385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/aaa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8089402550531096385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8089402550531096385'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/aaa.html' title='Understanding Scaffold....'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0NiBYKhCm2o/Sd-mmz7rInI/AAAAAAAAAIo/t8ujkW6iGBA/s72-c/aa.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-7795866780679044687</id><published>2009-04-09T03:31:00.012+08:00</published><updated>2009-04-10T05:53:17.515+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 2'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>Q2. Apply the MVC design approach to our Project: Online Taxi Booking System.</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;HINT: Begin with a single model, single view and single controller classes. This will give you a head start to the next workshop: Online Taxi Booking System: SQL and Database design&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Answer:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Now, I will create&lt;/span&gt;&lt;span&gt; a&lt;/span&gt;&lt;span&gt; sing&lt;/span&gt;&lt;span&gt;le model, view an&lt;/span&gt;&lt;span&gt;d controller classe&lt;/span&gt;&lt;span&gt;s in my home PC. The Diagram-36 shows the Taxi project st&lt;/span&gt;&lt;span&gt;arts after issuing "rails taxi" command.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd5Ng0Or4rI/AAAAAAAAAHo/5Ov0e8ZJ_CY/s1600-h/a.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 449px; height: 293px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd5Ng0Or4rI/AAAAAAAAAHo/5Ov0e8ZJ_CY/s320/a.JPG" alt="" id="BLOGGER_PHOTO_ID_5322777035769897650" border="0" /&gt;&lt;/a&gt;Diagram-36 - Taxi project&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;The Tax&lt;/span&gt;&lt;span&gt;i project is cr&lt;/span&gt;&lt;span&gt;eated. The I run "ruby&lt;/span&gt;&lt;span&gt; script/server" to make t&lt;/span&gt;&lt;span&gt;he Taxi Project&lt;/span&gt;&lt;span&gt; available on the web at &lt;/span&gt;&lt;span&gt;tcp port 3000&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;The Diagram-37 shows the result of running "ruby script/server" command.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd5PCwZ_xVI/AAAAAAAAAHw/b-ey5L4jpEM/s1600-h/b.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 449px; height: 290px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd5PCwZ_xVI/AAAAAAAAAHw/b-ey5L4jpEM/s320/b.JPG" alt="" id="BLOGGER_PHOTO_ID_5322778718370776402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-37 - Taxi Project starts at tcp port 3000&lt;br /&gt;&lt;br /&gt;Next, I run "ruby script/generate model Taxi" to generate Taxi Active Record. The Diagram-38 shows the result of running the ruby command. You can find that the taxi.rb file is created. The next Diagram-39 show Taxi class and the related attributes of Taxi class are defined in taxi.rb file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sd5R72jlt_I/AAAAAAAAAH4/5rCKo5oTxWk/s1600-h/c.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 446px; height: 290px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sd5R72jlt_I/AAAAAAAAAH4/5rCKo5oTxWk/s320/c.JPG" alt="" id="BLOGGER_PHOTO_ID_5322781898297423858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-38 - taxi.rb is created (single model)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd5Sipw0KsI/AAAAAAAAAIA/DLWRlFw6v6Y/s1600-h/d.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 444px; height: 226px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd5Sipw0KsI/AAAAAAAAAIA/DLWRlFw6v6Y/s320/d.JPG" alt="" id="BLOGGER_PHOTO_ID_5322782564878133954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-39 - Taxi class is defined in taxi.rb file&lt;br /&gt;&lt;br /&gt;In Taxi class, taxinum and taxidrv attributes are defined. They represents taxi number and taxi driver name respectively.&lt;br /&gt;&lt;br /&gt;After the single Taxi model (active record) is created, I issue "ruby script/generate controller Taxi" command to create Taxi controller methods in taxi_controller.rb file. The Diagram-40 and Diagram-41 show the taxi_controller.rb is created and the controller methods in taxi_controller.rb file respectively.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd5oeNaaOBI/AAAAAAAAAII/Pzv2IkQ0cik/s1600-h/e.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 443px; height: 227px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd5oeNaaOBI/AAAAAAAAAII/Pzv2IkQ0cik/s320/e.JPG" alt="" id="BLOGGER_PHOTO_ID_5322806677804300306" border="0" /&gt;&lt;/a&gt;Diagram-40 - taxi_controller.rb  is created&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sd5pOcQ6ucI/AAAAAAAAAIQ/SNooNOQtx9Y/s1600-h/f.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 443px; height: 223px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/Sd5pOcQ6ucI/AAAAAAAAAIQ/SNooNOQtx9Y/s320/f.JPG" alt="" id="BLOGGER_PHOTO_ID_5322807506424740290" border="0" /&gt;&lt;/a&gt;Diagram-41 - The Taxi controller methods in taxi_controller.rb file&lt;br /&gt;&lt;br /&gt;Finally, we can simply use text editor, namely, edit.exe in MS-DOS, to create a view file located in app\views\taxi subdirectory, for example, list method defined in active controller. The diagram-42 shows the view of list method and in fact the list method is displayed as list.rhtml or list.html.erb file (html with embedded  Ruby code).&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sd5tJKr8QYI/AAAAAAAAAIg/OOXkMS24LrE/s1600-h/i.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 446px; height: 331px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/Sd5tJKr8QYI/AAAAAAAAAIg/OOXkMS24LrE/s320/i.JPG" alt="" id="BLOGGER_PHOTO_ID_5322811813853413762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-42 - list.html.erb (View in MVC approach)&lt;br /&gt;&lt;br /&gt;I have applied the MVC design approach to create a single view, controller and model successfully.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-7795866780679044687?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/7795866780679044687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-apply-mvc-design-approach-to-our.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7795866780679044687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7795866780679044687'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-apply-mvc-design-approach-to-our.html' title='Q2. Apply the MVC design approach to our Project: Online Taxi Booking System.'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sd5Ng0Or4rI/AAAAAAAAAHo/5Ov0e8ZJ_CY/s72-c/a.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-8545364461091444636</id><published>2009-04-09T01:33:00.007+08:00</published><updated>2009-04-09T03:30:23.986+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 2'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>Q1. How is Rails structured to follow the MVC pattern?</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Challenge Problems:&lt;br /&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Q1. How is Rails structured to follow the MVC pattern?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Consider our project and examine the directories where Rails is located. If the data model is called Taxi (it is convention to name the model beginning with an upper case letter).&lt;br /&gt;The &lt;span style="font-weight: bold;"&gt;Model &lt;/span&gt;is a Ruby class located in app/models/taxi.rb&lt;br /&gt;The SQL table is taxis – the pluralisation of the model. In our project we have 2 tables as passenger_origin and passenger_destination, where the table row = an object instance and each of the columns = an object attribute.&lt;br /&gt;The &lt;span style="font-weight: bold;"&gt;Controller methods&lt;/span&gt; live in app/controllers/taxi_controller.rb&lt;br /&gt;Each controller can access templates to display the input screen and methods for action.&lt;br /&gt;The &lt;span style="font-weight: bold;"&gt;Views &lt;/span&gt;are kept is app/views/taxi/*.rhtml, where each *.rhtml maps to a controller method.&lt;br /&gt;In Rails, the view is rendered using RHTML or RXML. According to the wiki page at &lt;a href="http://wiki.rubyonrails.org/rails/pages/UnderstandingViews"&gt;http://wiki.rubyonrails.org/rails/pages/UnderstandingViews&lt;/a&gt;, RHTML is HTML with embedded Ruby code and RXML is Ruby-generated XML code.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. After decompressing Instant Rails 2.0 in hard drive C:\, we can go to the command line and run "&lt;span style="font-weight: bold;"&gt;rails tax&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;i&lt;/span&gt;".  At that moment, the taxi project is built and the related directories are created under &lt;span style="font-weight: bold;"&gt;c:\InstantRails-2.0-win\rails_apps\taxi\&lt;/span&gt;.  The Diagram-33 is shown below to describe the directories structure of the taxi project.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SdzplXbudWI/AAAAAAAAAHI/vYVYllfJLmQ/s1600-h/1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 438px; height: 317px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SdzplXbudWI/AAAAAAAAAHI/vYVYllfJLmQ/s320/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5322385687799821666" border="0" /&gt;&lt;/a&gt;Diagram-33 - The directories structure of the taxi project&lt;br /&gt;&lt;br /&gt;Actually, all projects are placed under &lt;span style="font-weight: bold;"&gt;c:\InstantRails-2.0-win\rails_apps\. &lt;/span&gt;&lt;span&gt;In &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;c:\InstantRai&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;ls-2.0-win\rails_apps\taxi &lt;/span&gt;&lt;span&gt;directory, there is &lt;span style="font-weight: bold;"&gt;app&lt;/span&gt; subdirectory &lt;/span&gt;containing controllers, models, views and helper sub-subdirectories. The directories exactly match the MVC pattern. The &lt;span style="font-weight: bold;"&gt;Controller&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;sub-subdirectory&lt;/span&gt; has the files that define controllers method. The &lt;span style="font-weight: bold;"&gt;Models &lt;/span&gt;sub-subdirectory has the files that are the ruby &lt;span style="font-weight: bold;"&gt;classes&lt;/span&gt;. The &lt;span style="font-weight: bold;"&gt;Views &lt;/span&gt;sub-subdirectory has the &lt;span style="font-weight: bold;"&gt;rhtml &lt;/span&gt;files to match the controller methods and display to users.&lt;br /&gt;&lt;span&gt;&lt;br /&gt;2. Next, we changes directory to taxi and then we can run "ruby script/server" to start the taxi porject into web.  The taxi system would be run at the tcp port 3000 &lt;/span&gt;&lt;span&gt;by default. The default tcp port ca&lt;/span&gt;&lt;span&gt;n be changed. Here I change it to 4000. The diagram-34 shows the taxi project start at 4000 port.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SdzwJMa4k0I/AAAAAAAAAHQ/15NgSxKZMIs/s1600-h/2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 437px; height: 327px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SdzwJMa4k0I/AAAAAAAAAHQ/15NgSxKZMIs/s320/2.JPG" alt="" id="BLOGGER_PHOTO_ID_5322392900388557634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-34 - Taxi Project starts at tcp 4000 port&lt;br /&gt;&lt;br /&gt;&lt;span&gt;3. After that, we can create the database in mysql. In our taxi system&lt;/span&gt;&lt;span&gt;, we can cr&lt;/span&gt;&lt;span&gt;eate 3 environments. They are developement, test and production. In mysql command prompt, run "create database taxi_development;", "create database taxi_test;" and "create database &lt;/span&gt;&lt;span&gt;taxi_production;". We will use taxi_development database to develop our taxi project.&lt;br /&gt;&lt;br /&gt;4. In order to make ruby applications successfully connect to mysql, we need to modify &lt;span style="font-weight: bold;"&gt;database.yml&lt;/span&gt; under &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;c:\InstantRails-2.0-win\rails_a&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;pps\taxi&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;\config&lt;/span&gt;. The following is the content of database.yml...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;development:&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;adapter: mysql&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;database: taxi_development&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;username: root&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  password:&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;host: localhost&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;test:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  adapter: mysql&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  database: taxi_test&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;username: root&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  password:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  host: localhost&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;production:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  ada&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;pter: mysql&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;database: taxi_production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  username: root&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;password:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  host: localhost&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;5. Next, we can run "ruby script/generate model Taxi". This command generates the taxi ruby class. There is a taxi.rb file containing this class. This class &lt;/span&gt;is the Model of MVC approach and so-called ActiveRecord. &lt;span&gt;The diagram-35 show the app/models directory contains taxi.rb.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sdz1gYU_H9I/AAAAAAAAAHY/gqus4AxCnbk/s1600-h/3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 442px; height: 330px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sdz1gYU_H9I/AAAAAAAAAHY/gqus4AxCnbk/s320/3.JPG" alt="" id="BLOGGER_PHOTO_ID_5322398796280176594" border="0" /&gt;&lt;/a&gt;Diagram-35 - app/models directory and taxi.rb file contains the taxi class&lt;br /&gt;&lt;br /&gt;6. Besides, we can also run "ruby script/generate controller Taxi". This command generates controller methods. There is a taxi_controller.rb file containing the controller methods. The controller methods are also called ActiveController. The Diagram-36 shows the app/controllers directory and the taxi_controller.rb file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sdz57oIWKkI/AAAAAAAAAHg/5wTk__ArQ6w/s1600-h/4.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 443px; height: 327px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sdz57oIWKkI/AAAAAAAAAHg/5wTk__ArQ6w/s320/4.JPG" alt="" id="BLOGGER_PHOTO_ID_5322403662425107010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-36 - the app/controllers directory and the taxi_controller.rb&lt;br /&gt;&lt;br /&gt;7. Finally, we can create rhtml file in app/views directory.&lt;br /&gt;&lt;br /&gt;Ruby on Rails follows MVC pattern.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-8545364461091444636?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/8545364461091444636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-how-is-rails-structured-to-follow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8545364461091444636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8545364461091444636'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-how-is-rails-structured-to-follow.html' title='Q1. How is Rails structured to follow the MVC pattern?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0NiBYKhCm2o/SdzplXbudWI/AAAAAAAAAHI/vYVYllfJLmQ/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-6375172699261438960</id><published>2009-04-08T18:33:00.001+08:00</published><updated>2009-04-08T18:35:28.686+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><category scheme='http://www.blogger.com/atom/ns#' term='Focus Group'/><title type='text'>Focus Group</title><content type='html'>Dear All,&lt;br /&gt;&lt;br /&gt;This is for WorkShop 2... In this focus group, I would like to  share the installation of Instant Rails 2.0. It spends me 3-4 days to try, play  and test. Now, it works.. The problem I have encountered is ...&lt;br /&gt;&lt;br /&gt;1. rake  db:migrate unable to generate database.&lt;br /&gt;Solution:&lt;br /&gt;It should be the mysql  connectivity problem. I feel very painful to solve this problem. The problem is  that after setting password for root account, rake then cannot create database  through database.yml file. I have searched the web for 3 days for the solution.  Someone says that using mysqld --skip-grant-tables starts the mysql deamon.  However, this solution causes another issue which make grant sql not work.  Finally, I try &amp;amp; try and find that the real solution is that&lt;br /&gt;a. create  another account with root privileges&lt;br /&gt;b. use the other account in  database.yml. Then, rake works.&lt;br /&gt;&lt;br /&gt;2. When editing View, the start_form_tag  does not exist anymore. Please use &lt;form_tag&gt; for the  replacement.&lt;br /&gt;&lt;br /&gt;I will put this information in my blog. Please feel free to  discuss. Now, I am going in for ROR IDE.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Joseph&lt;/form_tag&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-6375172699261438960?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/6375172699261438960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/focus-group.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/6375172699261438960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/6375172699261438960'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/focus-group.html' title='Focus Group'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-1295495157910982587</id><published>2009-04-08T03:13:00.008+08:00</published><updated>2009-04-08T17:17:52.782+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>Q6. Describe the steps involved with the MVC design approach</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;TutorialsPoint (2009) &lt;/span&gt;describes that the Model View Controller principle divides the work of an application into three separate but closely cooperative subsystems.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Model (ActiveRecord ) :&lt;/span&gt;&lt;br /&gt;Maintains the relationship between Object and Database and handles validation, association, transactions, and more. This subsystem is implemented in ActiveRecord library which provides an interface and binding between the tables in a relational database and the Ruby program code that manipulates database records. Ruby method names are automatically generated from the field names of database tables, and so on.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;View ( ActionView ):&lt;/span&gt;&lt;br /&gt;A presentation of data in a particular format, triggered by a controller's decision to present the data. They are script based templating systems like JSP, ASP, PHP and very easy to integrate with AJAX technology. This subsystem is implemented in ActionView library which is an Embedded Ruby (ERb) based system for defining presentation templates for data presentation. Every Web connection to a Rails application results in the displaying of a view.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Controller ( ActionController ):&lt;/span&gt;&lt;br /&gt;The facility within the application that directs traffic, on the one hand querying the models for specific data, and on the other hand organizing that data (searching, sorting, massaging it) into a form that fits the needs of a given view. This subsystem is implemented in ActionController which is a data broker sitting between ActiveRecord (the database interface) and ActionView (the presentation engine).&lt;br /&gt;&lt;br /&gt;The Digram-30 shows the MVC framework as follow...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sdur7XdwokI/AAAAAAAAAGM/JHZJs_6lEvw/s1600-h/1rails-framework.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 439px; height: 330px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/Sdur7XdwokI/AAAAAAAAAGM/JHZJs_6lEvw/s320/1rails-framework.gif" alt="" id="BLOGGER_PHOTO_ID_5322036421067842114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-30 - MVC framework downloaded from TutorialsPoint&lt;br /&gt;&lt;br /&gt;The other diagram-31 shows the steps in involved with MVC design approach.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/SduuW_rsSeI/AAAAAAAAAGU/wJ_KqvJ5VCA/s1600-h/qwe.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 436px; height: 197px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/SduuW_rsSeI/AAAAAAAAAGU/wJ_KqvJ5VCA/s320/qwe.GIF" alt="" id="BLOGGER_PHOTO_ID_5322039094743419362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-31 - Step in MVC downloaded from &lt;span style="font-size:85%;"&gt;&lt;a href="http://www.javapassion.com/rubyonrails/rails_overview_1hour_techday.pdf"&gt;http://www.javapassion.com/rubyonrails/rails_overview_1hour_techday.pdf&lt;/a&gt; and &lt;a href="http://www.meshplex.org/wiki/Ruby/Ruby_on_Rails_programming_tutorials"&gt;http://www.meshplex.org/wiki/Ruby&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.meshplex.org/wiki/Ruby/Ruby_on_Rails_programming_tutorials"&gt;/Ruby_on_Rails_programming_tutorials&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The steps are listed below...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;A user interacts the ROR Web Pages, for example, submitting a set of form data.&lt;/li&gt;&lt;li&gt;WebServer Dispatcher receives the incoming request (form data)&lt;/li&gt;&lt;li&gt;The Active Controller (Controller) referring the xxx_controller.rb files communicates with Active Record and  Active View. The Active Controller also organize the data at this stage&lt;/li&gt;&lt;li&gt;Active Record (Model) sends data from or to the backend database and then commicates back to Active Controller&lt;/li&gt;&lt;li&gt;Active View (View) show the presentation and communicates with Active Controller. Interface shows the related rhtml or rxml and interacts with the user&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/SdxqR-5OU4I/AAAAAAAAAGc/g1zGE1682yg/s1600-h/111.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 440px; height: 303px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/SdxqR-5OU4I/AAAAAAAAAGc/g1zGE1682yg/s320/111.JPG" alt="" id="BLOGGER_PHOTO_ID_5322245716818416514" border="0" /&gt;&lt;/a&gt;Diagram-32 - flow-chat showing the steps of MVC approach from CSU notes (Source: eNode Inc,  2002 - &lt;span style="font-size:85%;"&gt;&lt;a href="http://www.enode.com/x/markup/tutorial/mvc.html"&gt;http://www.enode.com/x/markup/tutorial/mvc.html&lt;/a&gt;&lt;/span&gt;)&lt;style&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;initions */  @font-face  {font-family:新細明體;  panose-1:2 2 3 0 0 0 0 0 0 0;  mso-font-alt:PMingLiU;  mso-font-charset:136;  mso-generic-font-family:roman;  mso-font-pitch:variable;  mso-font-signature:3 137232384 22 0 1048577 0;} @font-face  {font-family:TimesNewRomanPSMT;  panose-1:0 0 0 0 0 0 0 0 0 0;  mso-font-alt:"Times New Roman";  mso-font-charset:0;  mso-generic-font-family:roman;  mso-font-format:other;  mso-font-pitch:auto;  mso-font-signature:50331648 0 0 0 1 0;} @font-face  {font-family:"\@新細明體";  panose-1:2 2 3 0 0 0 0 0 0 0;  mso-font-charset:136;  mso-generic-font-family:roman;  mso-font-pitch:variable;  mso-font-signature:3 137232384 22 0 1048577 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin:0cm;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:新細明體;  mso-ansi-language:EN-AU;  mso-fareast-language:EN-US;} a:link, span.MsoHyperlink  {color:blue;  text-decoration:underline;  text-underline:single;} a:visited, span.MsoHyperlinkFollowed  {color:#606420;  text-decoration:underline;  text-underline:single;}  /* Page Definitions */  @page  {mso-page-border-surround-header:no;  mso-page-border-surround-footer:no;} @page Section1  {size:612.0pt 792.0pt;  margin:72.0pt 90.0pt 72.0pt 90.0pt;  mso-header-margin:36.0pt;  mso-footer-margin:36.0pt;  mso-paper-source:0;} div.Section1  {page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";  mso-ansi-language:#0400;  mso-fareast-language:#0400;  mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;&lt;i style=""&gt;&lt;span  lang="EN-US" style="font-family:TimesNewRomanPSMT;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;1. TutorialsPoint (2009). "Ruby on Rails MVC Framework". Tutorials Point - A Self Learning Centre, Retrieved from URL - &lt;a href="http://www.tutorialspoint.com/ruby-on-rails/rails-framework.htm"&gt;http://www.tutorialspoint.com/ruby-on-rails/rails-framework.htm&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-1295495157910982587?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/1295495157910982587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q6-describe-steps-involved-with-mvc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1295495157910982587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1295495157910982587'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q6-describe-steps-involved-with-mvc.html' title='Q6. Describe the steps involved with the MVC design approach'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sdur7XdwokI/AAAAAAAAAGM/JHZJs_6lEvw/s72-c/1rails-framework.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-7436343679029605966</id><published>2009-04-08T02:59:00.004+08:00</published><updated>2009-04-08T03:12:05.860+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>Q5. When did Model-View-Controller begin and where is it used?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wikipedia (2009) states that&lt;br /&gt;MVC was first described in &lt;span style="font-weight: bold;"&gt;1979&lt;/span&gt; by Trygve Reenskaug, then working on Smalltalk at Xerox PARC. The original implementation is described in depth in &lt;span style="font-weight: bold;"&gt;the influential paper Applications Programming in Smalltalk-80&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;There have been several derivatives of MVC; one of the most known (due to its use by Microsoft) is the Model View Presenter pattern which appeared in the early 1990s and was designed to be an evolution of MVC. However Model–View–Controller still remains very widely used.&lt;br /&gt;&lt;br /&gt;In November &lt;span style="font-weight: bold;"&gt;2002&lt;/span&gt; the W3C voted to make MVC structures part of their &lt;span style="font-weight: bold;"&gt;XForms architecture for all future web applications&lt;/span&gt;. These specifications will now be integrated directly into the &lt;span style="font-weight: bold;"&gt;XHTML 2.0 specifications&lt;/span&gt;. There are now over 20 vendors that support XForms frameworks with MVC integrated into the application stack.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Wikipedia (2009). "Model-view-controller". Wikipedia The Free Encyclopedia, Retrieved from URL - &lt;a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller"&gt;http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-7436343679029605966?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/7436343679029605966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q5-when-did-model-view-controller-begin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7436343679029605966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7436343679029605966'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q5-when-did-model-view-controller-begin.html' title='Q5. When did Model-View-Controller begin and where is it used?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-7520271912708398934</id><published>2009-04-08T02:49:00.001+08:00</published><updated>2009-04-08T02:58:01.770+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>Q4. 4. What is meant by "convention over configuration" in regards to the use of Rails in Web application development?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Convention over configuration means an end to verbose XML configuration files--there aren't any in Rails! Instead of configuration files, a Rails application uses a few simple programming conventions that allow it to figure out everything through reflection and discovery. Your application code and your running database already contain everything that Rails needs to know! &lt;span style="font-weight: bold;"&gt;(Hibbs, 2005)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Convention over configuration:&lt;/b&gt; Most web development frameworks for .NET or Java force you to write pages of configuration code. If you follow suggested naming conventions, Rails doesn't need much configuration. &lt;span style="font-weight: bold;"&gt;(TutorialsPoint, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Hibbs Curt (2005). "Rolling with Ruby on Rails". O'Reilly ONLamp.com, Retrieved Mar-28th-2009 from URL - &lt;a href="http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html"&gt;http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html&lt;/a&gt;&lt;br /&gt;2. TutorialsPoint (2009). "Ruby on Rails Introduction". Tutorials Point - A Self Learning Centre, Retrieved from URL - &lt;a href="http://www.tutorialspoint.com/ruby-on-rails/rails-introduction.htm"&gt;http://www.tutorialspoint.com/ruby-on-rails/rails-introduction.htm&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-7520271912708398934?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/7520271912708398934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q4-4-what-is-meant-by-convention-over.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7520271912708398934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7520271912708398934'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q4-4-what-is-meant-by-convention-over.html' title='Q4. 4. What is meant by &quot;convention over configuration&quot; in regards to the use of Rails in Web application development?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-8754284130478352253</id><published>2009-04-08T01:21:00.005+08:00</published><updated>2009-04-08T02:48:42.845+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>Q3. What is Rails and how does it work with Ruby?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What is Rails?&lt;/span&gt;&lt;br /&gt;Rails in its simplest terms can be defined as the framework which provides a variety of programs which perform most of the application segment for us. This makes our task of programming much simpler and easier. Not only this, we can always have the flexibility of reusing this framework any number of times as we only need to install it once. Then we can implement it on any number of applications that we develop.&lt;br /&gt;Since Rails is a framework, it also follows the same pattern as any other programming framework. These frameworks when implemented ease up the task of the programmer as it reduces a large amount of code writing. The programmer only needs to specify code which provides the instructions or the guidelines to the framework as to what has to be done. This means that if we are implementing any type of framework in our application we are saving a lot of coding time and also making our application more efficient by reusing the already installed framework.&lt;br /&gt;This framework is also designed so that the entire application is segregated in three different layers, namely, Model, View &amp;amp; Controller (MVC). By implementing the MVC design at the time of developing our applications, we can have our application segemented into three logical sections. &lt;span style="font-weight: bold;"&gt;(Meshplex, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TutorialsPoint (2009)&lt;/span&gt; points out that Rails is&lt;br /&gt;&lt;ol&gt;&lt;li&gt;An extremely productive web-application framework.&lt;/li&gt;&lt;li&gt;Written in Ruby by David Heinemeier Hansson.&lt;/li&gt;&lt;li&gt;We could develop a web application at least ten times faster with Rails than you could with a typical Java framework.&lt;/li&gt;&lt;li&gt;An open source Ruby framework for developing database-backed web applications.&lt;/li&gt;&lt;li&gt;Our code and database schema are the configuration!&lt;/li&gt;&lt;li&gt;No compilation phase required.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;How does it work with Ruby?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TutorialsPoint (2009) &lt;/span&gt;also points out that Rails is a Full Stack Framework which ...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Includes everything needed to create a database-driven web application using the Model-View-Controller pattern.&lt;/li&gt;&lt;li&gt;Being a full-stack framework means that all layers are built to work seamlessly together Less Code.&lt;/li&gt;&lt;li&gt;Requires fewer total lines of code than other frameworks spend setting up their XML configuration files.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Hibbs (2005)&lt;/span&gt; states that Rails works with Ruby in the following way...&lt;br /&gt;M&lt;span id="intelliTxt"&gt;any things that are very simple to do in Ruby are not even possible in most other languages. Rails takes full advantage of this. The rest of the answer is in two of Rail's guiding principles: &lt;em&gt;less software&lt;/em&gt; and &lt;em&gt;convention over configuration&lt;/em&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Thereby, it is concluded that Rails works with Ruby with MVC approach and with two base theories, namely, &lt;span style="font-weight: bold;"&gt;less software/code&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;convention over configuration&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;1. Meshplex (2009). "Ruby/Ruby on Rails programming tutorials". Meshplex The Tutorial Database, Retrieved from URL - &lt;a href="http://www.meshplex.org/wiki/Ruby/Ruby_on_Rails_programming_tutorials"&gt;http://www.meshplex.org/wiki/Ruby/Ruby_on_Rails_programming_tutorials&lt;/a&gt;&lt;br /&gt;2. TutorialsPoint (2009). "Ruby on Rails Introduction". Tutorials Point - A Self Learning Centre, Retrieved from URL - &lt;a href="http://www.tutorialspoint.com/ruby-on-rails/rails-introduction.htm"&gt;http://www.tutorialspoint.com/ruby-on-rails/rails-introduction.htm&lt;/a&gt;&lt;br /&gt;3. Hibbs Curt (2005). "Rolling with Ruby on Rails". O'Reilly ONLamp.com, Retrieved Mar-28th-2009 from URL - &lt;a href="http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html"&gt;http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-8754284130478352253?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/8754284130478352253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q3-what-is-rails-and-how-does-it-work.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8754284130478352253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/8754284130478352253'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q3-what-is-rails-and-how-does-it-work.html' title='Q3. What is Rails and how does it work with Ruby?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-9223336082972416713</id><published>2009-04-07T18:45:00.006+08:00</published><updated>2009-04-08T01:50:11.727+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>Q2. Ruby is "an interpreted scripting language" for quick and easy object-oriented programming...</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Q2. Ruby is "an interpreted scripting language" for quick and easy object-oriented programming. Find out about the Ruby language and discover what this means.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Interpreted scripting language is a program whose instructions are actually a logically sequenced series of operating system commands, handled one at a time by a command interpreter . In turn, the command interpreter requests services from the operating system. The writer of the interpreted program need not be concerned by low-level storage management considerations. On the other hand, an interpreted program cannot be as efficient as a compiled program, which has been processed by a language compiler. A language compiler converts source statements into something close to the strings of 0's and 1's that a processor ultimately is given to work on. Because this work (0's &amp;amp; 1's conversion) is already done before a compiled program is run, the compiled program runs much more quickly. &lt;span style="font-weight: bold;"&gt;(Whatis.com, 2005)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Put simply, complied program like C/C++ is faster than interpreted program like Perl. However, the interpreted scripting language compensates for this drawback. For instance, the interpreted scripting language can run in multi-platforms as interpretation happens at runtime.&lt;br /&gt;&lt;br /&gt;One of the interpreted scripting languages namely Ruby is rapidly gaining popularity in the US after a long period of incubation in its native Japan. Ruby is the language, in recent tradition of Perl, Python &amp;amp; Tcl. It allows for a rapid development cycle and the rapid prototyping of applications.&lt;br /&gt;It is also a general purpose language. Its flexible syntax makes it easy to write a quick three-line script to do a one-time task. However, Ruby is also powerful to write large applications as well as C++ or Java.&lt;br /&gt;Ruby is a radically object-oriented language. The OOP features of Ruby surpass those of Java and C++, approaching Smalltalk in flexibility. Primitive types in Ruby are true objects. Besides, Ruby allows singleton methods which is useful in GUI programming. Next, Ruby has open classes in the sense that one program can add to the existing classes at will, making new methods available even to previously-instantiated objects. Code itself can be objectified as a code block wrapped in an object. Finally, Many of the well-known OO design patterns have already been implemented as Ruby libraries.&lt;br /&gt;Rub y us a Very High-Level Language. It has a rich set of built-in classes and methods allowing the manipulation of arrays, strings, hashes, files and other objects.  &lt;span style="font-weight: bold;"&gt;(Fulton, 2002)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Hibbs (2005)&lt;/span&gt; also describes that Ruby is a pure object-oriented programming language with a super clean syntax that makes programming elegant and fun. Ruby successfully combines Smalltalk's conceptual elegance, Python's ease of use and learning, and Perl's pragmatism. Ruby originated in Japan in the early 1990s, and has started to become popular worldwide in the past few years as more English language books and documentation have become available.&lt;br /&gt;&lt;br /&gt;I am a Beginner of Ruby. After using Ruby, it is very different with PHP. It can generate codes easily so that the web application can be built in a quick and easy way. This is my first sight for Ruby. After digging deeper, I find that it generate codes easily because it is OO reusability feature. Many classes and methods are ready to use after installation of Ruby. It is exactly the same as what Fulton states. Finally, as it is the interpreted programming language, it support multi-platforms.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Whatis.com (2005). "What is interpreted?". WhatIs.com, Retrieved Mar-28th-2009 from URL - &lt;a href="http://whatis.techtarget.com/definition/0,,sid9_gci212373,00.html"&gt;http://whatis.techtarget.com/definition/0,,sid9_gci212373,00.html&lt;/a&gt;&lt;br /&gt;2. Fulton Hal (2002). "InformIT: What is Ruby? &gt; What is Ruby?". informIT.com, Retrieved Mar-28th-2009 from URL - &lt;a href="http://www.informit.com/articles/article.aspx?p=27359"&gt;http://www.informit.com/articles/article.aspx?p=27359&lt;/a&gt;&lt;br /&gt;3. Hibbs Curt (2005). "Rolling with Ruby on Rails". O'Reilly ONLamp.com, Retrieved Mar-28th-2009 from URL - &lt;a href="http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html"&gt;http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-9223336082972416713?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/9223336082972416713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-ruby-is-interpreted-scripting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/9223336082972416713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/9223336082972416713'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q2-ruby-is-interpreted-scripting.html' title='Q2. Ruby is &quot;an interpreted scripting language&quot; for quick and easy object-oriented programming...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-7564719173807574781</id><published>2009-04-07T18:42:00.004+08:00</published><updated>2009-04-07T22:31:31.502+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>Q1. Make a list of all programming languages and web development tools used by you in prior experiences...</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Challenge &lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Problems: &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Q1. Make a list of all programming languages and Web development tools used by you in prior experiences. Describe what you know about Web application frameworks before we begin.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;From my experiences, I am familiar with the following programming languages...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;GW-Basic&lt;/li&gt;&lt;li&gt;Pascal&lt;/li&gt;&lt;li&gt;C/C++&lt;/li&gt;&lt;li&gt;SQL&lt;/li&gt;&lt;li&gt;Visual C&lt;/li&gt;&lt;li&gt;Java&lt;/li&gt;&lt;li&gt;PHP&lt;/li&gt;&lt;li&gt;JSP&lt;/li&gt;&lt;li&gt;Javascript&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;For Web Development Tools, I have learned...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;JavaBean &lt;/li&gt;&lt;li&gt;NetBean&lt;/li&gt;&lt;li&gt;Visual Studio&lt;/li&gt;&lt;li&gt;JBuilder&lt;/li&gt;&lt;li&gt;phpDesigner&lt;/li&gt;&lt;li&gt;PDT php development tool&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Web Application Framework&lt;/span&gt; is a software framework that is designed to support the development of dynamic websites, web applications and web services. The framework aims to alleviate the overhead associated with common activities used in web development. For example, many frameworks provide libraries for database access, templating frameworks and session management, and often promote code resue. &lt;span style="font-weight: bold;"&gt;(Wikipedia, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In my opinion, I feel that Web Application Framework is the tool to help developers to generate frequently-used codes especially for database access in web development. After the codes are generated, the developers only need to modify the skeleton, for instance, in ROR environment, Model and Controller are generated to connect database and then the developers focus on how the related web pages are displayed or presented in View.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Wikipedia (2009). "Web Application Framework". Wikipedia The Free Encyclopedia, Retrieved Mar-28th-2009 from URL - &lt;a href="http://en.wikipedia.org/wiki/Web_application_framework"&gt;http://en.wikipedia.org/wiki/Web_application_framework&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-7564719173807574781?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/7564719173807574781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-make-list-of-all-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7564719173807574781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7564719173807574781'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/04/q1-make-list-of-all-programming.html' title='Q1. Make a list of all programming languages and web development tools used by you in prior experiences...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-2089248205380062521</id><published>2009-03-31T22:36:00.006+08:00</published><updated>2009-04-08T19:01:50.485+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 2'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>To Do List....</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Workshop 2 - Model View Controller design approach&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To Do:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Set up a focus group (like a study group for peer learning) to work on the Ruby on Rails workshops via Interact tools as a class. &lt;/li&gt;&lt;li&gt;What is meant by “convention over configuration” and how does it reduce coding?&lt;/li&gt;&lt;li&gt;Further work on understanding MVC: a. See the wiki at &lt;a href="http://wiki.rubyonrails.org/rails/pages/UnderstandingMVC"&gt;http://wiki.rubyonrails.org/rails/pages/UnderstandingMVC&lt;/a&gt;  b. Do the MVC tutorial at &lt;a href="http://wiki.squeak.org/squeak/1767"&gt;http://wiki.squeak.org/squeak/1767&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Got a spare hour or so? I recommend the UC Berkeley RAD lab’s Ruby on Rails Short course at &lt;a href="http://youtube.com/watch?v=LADHwoN2LMM"&gt;http://youtube.com/watch?v=LADHwoN2LMM &lt;/a&gt;&lt;/li&gt;&lt;li&gt;Read the Flash article using ActionScript by Colin Moock titled “The Model-View-Controller Design Pattern “at &lt;a href="http://www.adobe.com/devnet/flash/articles/mv_controller.html"&gt;http://www.adobe.com/devnet/flash/articles/mv_controller.html &lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1.  I have made a focus group in CSU interact forum and the same focus group will also be posted in my blog - &lt;a href="http://itc594josephc.blogspot.com/search/label/Focus%20Group"&gt;http://itc594josephc.blogspot.com/search/label/Focus%20Group&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Convention over configuration means a developer only needs to specify unconventional aspects of the application. For example, if there is a class &lt;i&gt;Sale&lt;/i&gt; in the model, the corresponding table in the database is called &lt;i&gt;sales&lt;/i&gt; by default. It is only if one deviates from this convention, such as calling the table "products sold", that the developer needs to write code regarding these names. Generally, this leads to less code and less repetition. &lt;span style="font-weight: bold;"&gt;(Wikipedia, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Personally, after using ROR, most of the configuration for database access is done by ROR by default. The developer only needs to write codes mainly for the View layer and the Controller Layer when Model Layer handles database access through the configuration file database.yml.&lt;br /&gt;&lt;br /&gt;3. &lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:displayhorizontaldrawinggridevery&gt;0&lt;/w:DisplayHorizontalDrawingGridEvery&gt;   &lt;w:displayverticaldrawinggridevery&gt;2&lt;/w:DisplayVerticalDrawingGridEvery&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:spaceforul/&gt;    &lt;w:balancesinglebytedoublebytewidth/&gt;    &lt;w:donotleavebackslashalone/&gt;    &lt;w:ultrailspace/&gt;    &lt;w:donotexpandshiftreturn/&gt;    &lt;w:adjustlineheightintable/&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:usefelayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face  {font-family:Helvetica;  panose-1:2 11 6 4 2 2 2 2 2 4;  mso-font-charset:0;  mso-generic-font-family:swiss;  mso-font-pitch:variable;  mso-font-signature:536902279 -2147483648 8 0 511 0;} @font-face  {font-family:新細明體;  panose-1:2 2 3 0 0 0 0 0 0 0;  mso-font-alt:PMingLiU;  mso-font-charset:136;  mso-generic-font-family:roman;  mso-font-pitch:variable;  mso-font-signature:3 137232384 22 0 1048577 0;} @font-face  {font-family:"\@新細明體";  panose-1:2 2 3 0 0 0 0 0 0 0;  mso-font-charset:136;  mso-generic-font-family:roman;  mso-font-pitch:variable;  mso-font-signature:3 137232384 22 0 1048577 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin:0cm;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:新細明體;  mso-ansi-language:EN-AU;  mso-fareast-language:EN-US;} a:link, span.MsoHyperlink  {color:blue;  text-decoration:underline;  text-underline:single;} a:visited, span.MsoHyperlinkFollowed  {color:#606420;  text-decoration:underline;  text-underline:single;}  /* Page Definitions */  @page  {mso-page-border-surround-header:no;  mso-page-border-surround-footer:no;} @page Section1  {size:612.0pt 792.0pt;  margin:72.0pt 90.0pt 72.0pt 90.0pt;  mso-header-margin:36.0pt;  mso-footer-margin:36.0pt;  mso-paper-source:0;} div.Section1  {page:Section1;}  /* List Definitions */  @list l0  {mso-list-id:1875651331;  mso-list-type:hybrid;  mso-list-template-ids:786628354 201916431 201916441 201916443 201916431 201916441 201916443 201916431 201916441 201916443;} @list l0:level1  {mso-level-tab-stop:46.0pt;  mso-level-number-position:left;  margin-left:46.0pt;  text-indent:-18.0pt;} @list l0:level2  {mso-level-number-format:alpha-lower;  mso-level-tab-stop:82.0pt;  mso-level-number-position:left;  margin-left:82.0pt;  text-indent:-18.0pt;} ol  {margin-bottom:0cm;} ul  {margin-bottom:0cm;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";  mso-ansi-language:#0400;  mso-fareast-language:#0400;  mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;&lt;span  lang="EN-US" style="font-family:Helvetica;"&gt;&lt;span style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-AU"&gt;&lt;a href="http://wiki.rubyonrails.org/rails/pages/UnderstandingMVC"&gt;http://wiki.rubyonrails.org/rails/pages/UnderstandingMVC&lt;/a&gt;&lt;/span&gt;&lt;span  lang="EN-US" style="font-family:Helvetica;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; is not available for access. And I have read the tutorial from URL - &lt;a href="http://wiki.squeak.org/squeak/1767"&gt;http://wiki.squeak.org/squeak/1767&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4. I have viewed the course in youtube - &lt;a href="http://youtube.com/watch?v=LADHwoN2LMM"&gt;http://youtube.com/watch?v=LADHwoN2LMM &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5. I have downloaded and already read the article in &lt;a href="http://www.adobe.com/devnet/flash/articles/mv_controller.html"&gt;http://www.adobe.com/devnet/flash/articles/mv_controller.html &lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;1. Wikipedia (2009), "Ruby on Rails". Wikipedia The Free Encyclopedia, Retrieved from URL - &lt;a href="http://en.wikipedia.org/wiki/Ruby_on_Rails"&gt;http://en.wikipedia.org/wiki/Ruby_on_Rails&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-2089248205380062521?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/2089248205380062521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/1111111111111aaaaaaaaaaa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2089248205380062521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2089248205380062521'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/1111111111111aaaaaaaaaaa.html' title='To Do List....'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-7075094389119785549</id><published>2009-03-28T03:28:00.012+08:00</published><updated>2009-04-07T18:41:36.677+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshops'/><title type='text'>To Do List....</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Workshop 1 - Setting up the model railway...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To Do:&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Download iTunes from http://www.apple.com/itunes/download/ and subscribe to the “Leraning Rails” Podcasts from http://www.buildingwebapps.com/podcasts&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Install Ruby on Rails on your computer by using the material and downloads from http://www.rubyonrails.org/&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Rather than get Ruby on Rails running manually, you use the pre-packaged solutions. These include everything in one bundle: Web server, database, Ruby, Rails, the works. (a) For OS X, there's Locomotive. (b) For Windows, there's Instant Rails.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. I have listened to the web courses from url - &lt;a href="http://www.buildingwebapps.com/podcasts"&gt;http://www.buildingwebapps.com/podcasts&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2. I have then downloaded the InatantRails2.0 and installed into my PC.&lt;br /&gt;&lt;br /&gt;3. I am using Instant Rails 2.0 as development platform for my taxi booking system.&lt;br /&gt;&lt;br /&gt;The following diagram-28 shows my successful installation of R0R...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/SdJhR2T1lJI/AAAAAAAAAF8/yYvik9mSAfw/s1600-h/z1.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 437px; height: 327px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/SdJhR2T1lJI/AAAAAAAAAF8/yYvik9mSAfw/s320/z1.GIF" alt="" id="BLOGGER_PHOTO_ID_5319421069142365330" border="0" /&gt;&lt;/a&gt;Diagram-28 - The Successful Installation of InstantRails in my home-PC&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SdJtJxCKTsI/AAAAAAAAAGE/e6tELbiatvM/s1600-h/z2.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 436px; height: 285px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SdJtJxCKTsI/AAAAAAAAAGE/e6tELbiatvM/s320/z2.GIF" alt="" id="BLOGGER_PHOTO_ID_5319434124426628802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-29 - Tables (Passenger_origin &amp;amp; Passenger_destination) are created in MySQL&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Web_application_framework"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-7075094389119785549?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/7075094389119785549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/hehhhh.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7075094389119785549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7075094389119785549'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/hehhhh.html' title='To Do List....'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0NiBYKhCm2o/SdJhR2T1lJI/AAAAAAAAAF8/yYvik9mSAfw/s72-c/z1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-7428405339017857980</id><published>2009-03-26T23:39:00.024+08:00</published><updated>2009-03-30T14:35:05.494+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 9'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q2. Write the script ... and Q3. Can you modufy ...</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Q2. Write the script -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Script archives exist for PERL, Python and JavaScript. Search the Web for a script that processes the HTML forms data. Read the code and list the steps involved in processing the form.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Q3. Can you modify the script to process the form?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In these 2 questions, I use xampp instant packages and xampp's python plug-in to develop the perl and python script. For JavaScript (ajax), I use Jaxer to develop the script.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;PERL script&lt;/span&gt; &lt;/span&gt;to handle the data from the form in try.html is shown as follow...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/ScyXG94fQZI/AAAAAAAAAE0/J1f05Z7bF3c/s1600-h/zz3.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 436px; height: 316px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/ScyXG94fQZI/AAAAAAAAAE0/J1f05Z7bF3c/s320/zz3.GIF" alt="" id="BLOGGER_PHOTO_ID_5317791405964214674" border="0" /&gt;&lt;/a&gt;Diagram-20 - The PERL script to handle the form's data&lt;br /&gt;&lt;br /&gt;After clicking the "Buy!" button, the perl_order.cgi perl script will be run and the output of the perl_order.cgi to handle the form's data is shown in Diagram-21.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/ScyYXu308oI/AAAAAAAAAE8/78rXXk87SsE/s1600-h/zz4.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 435px; height: 527px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/ScyYXu308oI/AAAAAAAAAE8/78rXXk87SsE/s320/zz4.GIF" alt="" id="BLOGGER_PHOTO_ID_5317792793504313986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-21 - the output of the perl_order.cgi after clicking the "buy!" button&lt;br /&gt;&lt;br /&gt;The explanation of this perl_order.cgi is stated below step by step...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;#!"G:\xampp\xampp\perl\bin\perl.exe" - Firstly, we states the location of Perl. "#!" means notation invoke interpreters.&lt;/li&gt;&lt;li&gt;$query_string=$ENV{'QUERY_STRING'}; - in the try.html, &lt;span style="font-weight: bold;"&gt;get method&lt;/span&gt; is used to submit the form data. This statement put the get statement string into $query_string variable, for example, the get statement string in URL is like ?fullname=Joseph+Cheung&amp;amp;fulladdress=Room+100&amp;amp;2C.... etc&lt;/li&gt;&lt;li&gt;@pairs=split(/&amp;amp;/, $query_string); - take the &amp;amp; away from the $query_string&lt;/li&gt;&lt;li&gt;foreach $pair (@pairs)&lt;br /&gt;{&lt;br /&gt;($key, $content)=split(/=/, $pair);&lt;br /&gt;$content=~tr/+/ /;&lt;br /&gt;$content=~s/%(..)/pack("c", hex($1))/ge;&lt;br /&gt;$fields{$key}=$content;&lt;br /&gt;} - foreach and its statements inside {} are used to divide the $query_string into pieces. Each piece is put in field variable.&lt;/li&gt;&lt;li&gt;$name=$fields{'fullname'};&lt;br /&gt;$address=$fields{'fulladdress'};&lt;br /&gt;$email=$fields{'fullemail'};&lt;br /&gt;$discount=$fields{'fulldiscount'};&lt;br /&gt;$visa=$fields{'fullvisa'};&lt;br /&gt;$perfume=$fields{'fullperfume'};&lt;br /&gt;my $receipt=2009030000;&lt;br /&gt;my $range=1000;&lt;br /&gt;$total=0; - initialize the variables and put the field variable into local user-friendly variable.&lt;/li&gt;&lt;li&gt;$perfume=int($perfume);&lt;br /&gt;$discount=int($discount); - convert strings into integers.&lt;/li&gt;&lt;li&gt;$total=$perfume*(100-$discount)/100;&lt;br /&gt;$receipt=$receipt+int(rand($range)); - compute the total charge of the transaction and generate the receipt number.&lt;/li&gt;&lt;li&gt;print "Content=type:.... - all print statements are used to output and show the transaction has been completed.&lt;/li&gt;&lt;/ol&gt;&lt;span&gt; Can you modify the script to process the form?  Yes, I can &lt;/span&gt;&lt;span&gt;modify the script. Actually, I learn PERL from &lt;/span&gt;&lt;span class="yschurl"&gt;&lt;a class="yschttl withvidthmb" href="http://hk.wrs.yahoo.com/_ylt=A3xsaQexoMxJgEQBwoDwzAt.;_ylu=X3oDMTE3Mm4zZWs4BHNlYwNzcgRwb3MDMQRjb2xvA2hrX2ludGwEdnRpZANoazAwODRfNg--/SIG=11vjf1qaj/EXP=1238233649/**http%3a//www.comp.leeds.ac.uk/Perl/start.html" target="_blank"&gt;www.comp.leeds.ac.uk/Perl/&lt;wbr&gt;start.html&lt;/a&gt; by myself and then I develop the perl_order.cgi directly.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="yschurl"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Python script&lt;/span&gt;&lt;/span&gt; to handle &lt;/span&gt;the data from the form in try2.html is shown as follow... This time, we use &lt;span style="font-weight: bold;"&gt;post method&lt;/span&gt; and the form action is &lt;span style="font-weight: bold;"&gt;"/cgi-bin/python.cgi".&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sczpfm-9i7I/AAAAAAAAAFE/z2ic3pWgceM/s1600-h/xx1.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 437px; height: 316px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/Sczpfm-9i7I/AAAAAAAAAFE/z2ic3pWgceM/s320/xx1.GIF" alt="" id="BLOGGER_PHOTO_ID_5317881989267557298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-22 - the source code of python.cgi which handle the post data from the form in try2.html&lt;br /&gt;&lt;br /&gt;The output screen of python.cgi is shown in Diagram-23. After clicking the "Buy!" button in try2.html, the python.cgi python script will be run and the output is then obtained.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SczsLOaYy3I/AAAAAAAAAFU/Lc6NkmO9dQA/s1600-h/xx2.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 436px; height: 316px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SczsLOaYy3I/AAAAAAAAAFU/Lc6NkmO9dQA/s320/xx2.GIF" alt="" id="BLOGGER_PHOTO_ID_5317884937609202546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-23 - The output after handling the post data from the form&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The explanation of the python.cgi python script is listed as below...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;#!G:\xampp\xampp\python\python.exe - is used to locate the interpreter python.exe location&lt;/li&gt;&lt;li&gt;import os, sys, cgi, cgitb, random; cgitb.enable() - import python library&lt;/li&gt;&lt;li&gt;form=cgi.FieldStorage()&lt;br /&gt;name=form.getvalue('fullname')&lt;br /&gt;address=form.getvalue('fulladdress')&lt;br /&gt;email=form.getvalue('fullemail')&lt;br /&gt;discount=form.getvalue('fulldiscount')&lt;br /&gt;perfume=form.getvalue('fullperfume')&lt;br /&gt;visa=form.getvalue('fullvisa') - handling the post data from the form&lt;/li&gt;&lt;li&gt;receipt=2009030000 - create receipt number&lt;br /&gt;&lt;/li&gt;&lt;li&gt;startrange=0&lt;br /&gt;stoprange=1000&lt;br /&gt;total=0&lt;br /&gt;statement=''&lt;br /&gt;finalstatmt='' - variables declaration&lt;/li&gt;&lt;li&gt;perfume=int(perfume)&lt;br /&gt;discount=int(discount) - convert strings to integers&lt;/li&gt;&lt;li&gt;total=perfume*(100-discount)/100&lt;br /&gt;receipt=receipt+random.randint(startrange, stoprange) - calculate the total charge after discount and generate the receipt number&lt;/li&gt;&lt;li&gt;if (perfume==1000):&lt;br /&gt;statement='You have bought Odors Perfume with Discount '&lt;br /&gt;if (perfume==5000):&lt;br /&gt;statement='You have bought Worthless Perfume with Discount '&lt;br /&gt;if (perfume==10000):&lt;br /&gt;statement='You have bought Very Good Perfume with Discount '&lt;br /&gt;if (discount==0):&lt;br /&gt;statement=statement+'0% Off '&lt;br /&gt;if (discount==50):&lt;br /&gt;statement=statement+'50% Off '&lt;br /&gt;if (discount==80):&lt;br /&gt;statement=statement+'80% Off ' - make the statement to show what you have bought and the discount you have&lt;/li&gt;&lt;li&gt;finalstatmt &amp;amp; print statements are used to display the output in the browser&lt;/li&gt;&lt;/ol&gt;&lt;span&gt;Can you modify the script to process the form?  Yes, I can modify the script. In fact, I learn Python from &lt;a href="http://www.freebsd.org.hk/html/python/tut_tw/tut.html"&gt;http://www.freebsd.org.hk/html/python/tut_tw/tut.html&lt;/a&gt;&lt;/span&gt;&lt;span class="yschurl"&gt; by my&lt;/span&gt;&lt;span class="yschurl"&gt;self and then I develop the python.cgi directly.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="yschurl"&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;JavaScript script &lt;/span&gt;&lt;/span&gt;&lt;span class="yschurl"&gt;to handle &lt;/span&gt;the data from the form in try5.html is shown as follow... This time, we do &lt;span style="font-weight: bold;"&gt;not &lt;/span&gt;use &lt;span style="font-weight: bold;"&gt;post or get method&lt;/span&gt; and the form is handled by formHandle.js JavaScript script.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/SdBZ1SgUT8I/AAAAAAAAAFc/0cbV5zh8M88/s1600-h/asdf.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 434px; height: 314px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/SdBZ1SgUT8I/AAAAAAAAAFc/0cbV5zh8M88/s320/asdf.GIF" alt="" id="BLOGGER_PHOTO_ID_5318849931959881666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-24 - Ajax - The French Perfume Purchase Form&lt;br /&gt;&lt;br /&gt;When you enter your information in the form in the Diagarm-24. The information you have just entered are displayed instantly in the bottom of the try5.html. After filling all information and then clicking "Pay" button, your Receipt will be generated. The word "Receipt" will be shown in the bottom in the try5.html but on the top of the personal information. Beside that, the total amount you need to pay will be calculated and also be shown in the bottom of the try5.html but under your personal information. The try5.html involves 2 JavaScript scripts. They are ajax.js and formHandle.Js. The following diagrams show them and I will explain for these 2 scripts too.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/SdBdRMYk5OI/AAAAAAAAAFk/NR_-ZKql8sM/s1600-h/asdfg.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 437px; height: 316px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/SdBdRMYk5OI/AAAAAAAAAFk/NR_-ZKql8sM/s320/asdfg.GIF" alt="" id="BLOGGER_PHOTO_ID_5318853709888021730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-25 - Ajax.js is download from &lt;a href="http://www.blogger.com/www.w3schools.com"&gt;www.w3schools.com&lt;/a&gt; and is used to detect the brower's version &amp;amp; manufacturer&lt;br /&gt;&lt;br /&gt;Ajax.js will detect the brower's version &amp;amp; manuacturer. If the brower is Internet Explorer (IE), then Ajax.js will create a actionXObject. If the brower is others, like firefox or Netscape, Ajax.js will generate a XMLHttprequest. Javascipt itself is seldom used to manipulate form's data. However, JavaScript together with other technologies, like xml forms AJAX - Asynchronous JavaScript and XML which can create more interactive webpages and handle form's data.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/SdBf0U7efPI/AAAAAAAAAFs/9OF3n8I36_c/s1600-h/asdfgh.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 437px; height: 317px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/SdBf0U7efPI/AAAAAAAAAFs/9OF3n8I36_c/s320/asdfgh.GIF" alt="" id="BLOGGER_PHOTO_ID_5318856512500563186" border="0" /&gt;&lt;/a&gt;Diagram-26 - fromHandle.js&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/SdBjYvtnF4I/AAAAAAAAAF0/qkh_g0RXTuw/s1600-h/vvv.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 440px; height: 318px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/SdBjYvtnF4I/AAAAAAAAAF0/qkh_g0RXTuw/s320/vvv.GIF" alt="" id="BLOGGER_PHOTO_ID_5318860436700338050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-27 - try5.html&lt;br /&gt;&lt;br /&gt;When you interact with the try5.html, for example, onkeyup or onclick by keyboard or mouse respectively, formHandle.js will then get the form's data value by getElementByID().value in formHandle.js. After that, formHandle.js use the values to generate the html output strings printed in the Receipt and to compute the total payable amount after the "Pay" button is clicked.  The variables - finalperfume and finaldiscount are used to store the perfume and the discount rate you finally select.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Can you modify the script to process the form? Yes, &lt;/span&gt;the formHandle.js, try5.html is developed by me. I learn JavaScript in w3schools.com.&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-7428405339017857980?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/7428405339017857980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q2-write-script-and-q3-can-you-modufy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7428405339017857980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7428405339017857980'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q2-write-script-and-q3-can-you-modufy.html' title='Q2. Write the script ... and Q3. Can you modufy ...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0NiBYKhCm2o/ScyXG94fQZI/AAAAAAAAAE0/J1f05Z7bF3c/s72-c/zz3.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-1339902129112346390</id><published>2009-03-26T23:35:00.004+08:00</published><updated>2009-03-27T17:00:22.972+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 9'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q1. Design the form...</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Exercise 9: Web form design and processing: A basis for e-commerce interaction&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Q1. Design the form - &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;"Retrofit" the form data string above for buying some French perfume into the HTML form fields and submit button on the Web page form.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have designed the form and please see the html code as follow:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/ScyVYPpf-TI/AAAAAAAAAEk/awgpMBup3Hk/s1600-h/zz1.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 428px; height: 310px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/ScyVYPpf-TI/AAAAAAAAAEk/awgpMBup3Hk/s320/zz1.GIF" alt="" id="BLOGGER_PHOTO_ID_5317789503767705906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-18 - HTML code for the French perfume ordering system&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The screen dump of these HTML code is shown in Diagram-19&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/ScyVhLv1dnI/AAAAAAAAAEs/FnYyYxPknz8/s1600-h/zz2.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 432px; height: 523px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/ScyVhLv1dnI/AAAAAAAAAEs/FnYyYxPknz8/s320/zz2.GIF" alt="" id="BLOGGER_PHOTO_ID_5317789657339360882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Diagram-19 -  screen dump of French perfume ordering system&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-1339902129112346390?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/1339902129112346390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q1-design-form.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1339902129112346390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1339902129112346390'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q1-design-form.html' title='Q1. Design the form...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0NiBYKhCm2o/ScyVYPpf-TI/AAAAAAAAAEk/awgpMBup3Hk/s72-c/zz1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-1937635597037995213</id><published>2009-03-24T02:03:00.004+08:00</published><updated>2009-03-24T03:00:59.485+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q3. What are the similarities between the object-oriented development using model-view-controller (MVC) ...</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Q3. What are the similarities between the object-oriented development using model-view-controller (MVC) in Ruby on Rails 2.0 and Action Script 2.0 (Flash Animations)?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Whatis.com (2008) defines that the concepts and rules used in object-oriented programming provide these important benefits: &lt;ul&gt;&lt;li&gt;The concept of a data class makes it possible to define subclasses of data objects that share some or all of the main class characteristics. Called inheritance, this property of OOP forces a more thorough data analysis, reduces development time, and ensures more accurate coding.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Since a class defines only the data it needs to be concerned with, when an instance of that class (an object) is run, the code will not be able to accidentally access other program data. This characteristic of data hiding provides greater system security and avoids unintended data corruption.&lt;/li&gt;&lt;li&gt;The definition of a class is reuseable not only by the program for which it is initially created but also by other object-oriented programs (and, for this reason, can be more easily distributed for use in networks).&lt;/li&gt;&lt;li&gt;The concept of data classes allows a programmer to create any new data type that is not already defined in the language itself.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Ruby on Rails 2.0 and Flash Animation Action Script 2.0 are both Object-Oriented Programming. Both can create classes, objects, new data types, inheritance, data hiding, reusability... Poe (2007) describes MVC that&lt;br /&gt;Model - Business logic goes here&lt;br /&gt;View - Presentation logic goes here&lt;br /&gt;Controller - Application logic goes here&lt;br /&gt;MVC is very similar with ActionScript in Animated Flash, that is, the classes in ActionScript, like, musics, sounds &amp;amp; graphics is similar with Model in ROR. It is the backend.&lt;br /&gt;The animated objects is designed to present the action scripts. It seems like View in ROR.&lt;br /&gt;The timeline in the action scripts is used to control the objects so It seems as Controller in ROR.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;1. Whatis.com (2008). "What is object-oriented programming?". Whatis.com, Retrieved Mar-17th-2009 from URL - &lt;a href="http://searchsoa.techtarget.com/sDefinition/0,,sid26_gci212681,00.html"&gt;http://searchsoa.techtarget.com/sDefinition/0,,sid26_gci212681,00.html&lt;/a&gt;&lt;br /&gt;2. Poe  Curtis (2007). "What is MVC?". O'Reilly ONLamp Blog, Retrievd Mar-17th-2009 from URL - &lt;a href="http://www.oreillynet.com/onlamp/blog/2007/06/what_is_mvc.html"&gt;http://www.oreillynet.com/onlamp/blog/2007/06/what_is_mvc.html&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-1937635597037995213?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/1937635597037995213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q3-what-are-similarities-between-object.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1937635597037995213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1937635597037995213'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q3-what-are-similarities-between-object.html' title='Q3. What are the similarities between the object-oriented development using model-view-controller (MVC) ...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-6140156998094889771</id><published>2009-03-23T03:38:00.004+08:00</published><updated>2009-03-24T01:59:02.025+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q2. Why is the perception getting stronger that integration will become a critical factor in coming days?...</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Q2. Why is the perception getting stronger that integration will become a critical factor in coming days? What is the role of AJAX within the enterprise software architecture?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Integration means &lt;b&gt;System integration&lt;/b&gt; is the bringing together of the component subsystems into one system and ensuring that the subsystems function together as a system. Or &lt;b&gt;Digital integration&lt;/b&gt; is the idea that data or information on any given electronic device can be read or manipulated by another device using a standard format. Or &lt;b&gt;Enterprise Application Integration (EAI)&lt;/b&gt; is defined as the use of software and computer systems architectural principles to integrate a set of enterprise computer applications. &lt;span style="font-weight: bold;"&gt;(Wikipedia, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Anyway, in my opinion, Integration is that small systems can form a large system so information within small systems can be shared or exchanged.&lt;br /&gt;&lt;br /&gt;Integration becomes a critical factor since Integration can...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Provides users with the ability to manipulate legacy data.&lt;/li&gt;&lt;li&gt;Provides users with the ability to take advantage of familiar software to use known assets and resources.&lt;/li&gt;&lt;li&gt;Provides users with the ability to acquire and easily maintain new data.&lt;/li&gt;&lt;li&gt;Provides users with the ability to use existing data management tools to access data wherever it is located. &lt;span style="font-weight: bold;"&gt;(IBM.com, 2009)&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;And Integrated data provides a framework that helps organizations:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Deliver a complete view of a customer&lt;/li&gt;&lt;li&gt;Offload the processing burden on operational systems&lt;/li&gt;&lt;li&gt;Standardize business processes and data definitions&lt;/li&gt;&lt;li&gt;Combine current and past values from disparate sources in order to see the big picture &lt;span style="font-weight: bold;"&gt;(BusinessObjects.com, 2009)&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The role of AJAX within the enterprise software architecture is that&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Development times and costs are slashed dramatically, as companies take advantage of the re-usability of services as well as the ability to avoid the problems inherent in thick client deployments.&lt;/li&gt;&lt;li&gt;The ability to use the same interface technology regardless of user location or platform. Since AJAX is platform agnostic, it works regardless of what the user is on, be it Windows, Linux or the Mac. This makes deployment much simpler, as well as guaranteeing that the entire user population has access to the same rich interactive services.&lt;/li&gt;&lt;li&gt;Companies implementing AJAX in an service-oriented architecture framework can finally use the full interactive capabilities of services without having to deal with the constraints of Web browsers. AJAX RIAs provide Web-based applications that function as well or better than traditional desktop interfaces. &lt;span style="font-weight: bold;"&gt;(Quinn, 2007)&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;1. Wikipedia (2009). "Integration". Wikipedia The Free Encyclopedia, Retrieved Mar-17th-2009 from URL - &lt;a href="http://en.wikipedia.org/wiki/Digital_integration"&gt;http://en.wikipedia.org/wiki/Digital_integration&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/System_integration"&gt;http://en.wikipedia.org/wiki/System_integration&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Enterprise_application_integration"&gt;http://en.wikipedia.org/wiki/Enterprise_application_integration&lt;/a&gt;&lt;br /&gt;2. IBM.com (2009). "DB2 Universal Database". IBM.com, Retrieved Mar-17-2009 from URL - &lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.ii.doc/ad/ciiwhyen.htm"&gt;http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.ii.doc/ad/ciiwhyen.htm&lt;/a&gt;&lt;br /&gt;3. BusinessObjects.com (2009). "Data_Integration". Business Objects, Retrieved Mar-17th-2009 from URL - &lt;a href="http://www.businessobjects.com/global/pdf/whitepapers/data_integration.pdf"&gt;http://www.businessobjects.com/global/pdf/whitepapers/data_integration.pdf&lt;/a&gt;&lt;br /&gt;4. Quinn Mathew (2007). "AJAX: Bringing SOA to the Front Lines&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;". SOA Magazine, Retrieved Mar-17th-2009 from URL - &lt;a href="http://www.soamag.com/I3/0107-1.asp"&gt;http://www.soamag.com/I3/0107-1.asp&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-6140156998094889771?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/6140156998094889771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q2-why-is-perception-getting-stronger.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/6140156998094889771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/6140156998094889771'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q2-why-is-perception-getting-stronger.html' title='Q2. Why is the perception getting stronger that integration will become a critical factor in coming days?...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-219022985880682821</id><published>2009-03-22T13:51:00.004+08:00</published><updated>2009-03-23T00:57:00.105+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q1. Go to the website of IBM, Oracle, Microsoft and Sybase....</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Exercise 10: Application server platforms in E-commerce&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Q1. Goto the website of IBM, Oracle, Microsoft and Sybase. Is there any mention of e-commerce associated with their database products? What suite or partnership do they list with related E-commerce offerings? How do they compare with open source products like MySQL?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yes, IBM has mentioned e-commerce associated with DB2 product, for example,&lt;span style="font-weight: bold;"&gt; IBM.com (2006) &lt;/span&gt;shows there is a topic called "Mining your Business in Retail with IBM DB2 Intelligent Miner". IBM DB2 Intelligent Miner is used to apply data mining technique to generate automatically product recommendations for customers in a possible e-commerce shop environment. IBM.com lists the partnership with related e-commerce offerings, for instance,&lt;br /&gt;&lt;span&gt;IBM and &lt;/span&gt;&lt;strong&gt;&lt;span&gt;Arbor Software &lt;/span&gt;&lt;/strong&gt;&lt;span&gt;have delivered on the strategic development and marketing relationship.&lt;/span&gt; Also, &lt;strong&gt;&lt;span&gt;Cognos&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;, a global leader in business intelligence tools, and IBM, announced that IBM will bundle Cognos' market-leading business intelligence tools, Impromptu and PowerPlay, with DB2 and DB2 OLAP Server.&lt;/span&gt; IBM.com compares DB2 with MySQL, in terms of, Graphical User Interface, Backup &amp;amp; Recovery Tools, Administration &amp;amp; Basic Tasks, and Data Movement.&lt;br /&gt;&lt;br /&gt;Yes, Orcale has announced that Siebel E-Commerce 8.1.1 is the next-generation of Siebel eSales. Siebel eSales has been designed to enable companies to manage multi-channel interactions with consistency and agility. Sophisticated selling rules such as pricing, eligibility, compatibility, and configuration can be managed once within Siebel CRM and deployed anywhere across the enterprise. All customer interactions transition seamlessly from self-service, to assisted care, into the call center, and back out to the self-service channel while giving customers transparent access to the real time information they need to do business. Features include Browse and Compare Products, Up-sell/Cross-sell, Configure Products, Shopping Cart &amp;amp; Checkout, Asset-based Ordering, View Order Status and Site Administration. &lt;span style="font-weight: bold;"&gt;(Orcale, 2009)&lt;/span&gt;&lt;br /&gt;Oracle lists the partnership with related e-commerce offerings, for example, Oracle and partner &lt;span style="font-weight: bold;"&gt;Quistor&lt;/span&gt; will maximize the payoffs of BPO with Quistor's Learning BPO solution based on the Oracle iLearning technology. Beside Quistor, &lt;span style="font-weight: bold;"&gt;Genesys&lt;/span&gt; has had a long and rich partnership with both Oracle and Siebel, providing enterprises with the industry's most complete solutions for managing customer interactions across sales and support units.&lt;br /&gt;Oracle compares Oracle Database with MySQL, according to, Database security, Schema Migration, Data Types, and Data Storage Concepts.&lt;br /&gt;&lt;br /&gt;Yes, Microsoft having Microsoft SQL Server has states that the Microsoft TerraServer stores aerial and satellite images of the earth in a Microsoft SQL Server database served to the public through the Internet.  The TerraServer is also an E-Commerce application&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;strong style="font-weight: bold;"&gt;&lt;/strong&gt;. Microsoft lists &lt;span style="font-weight: bold;"&gt;U.S. Geological Survey&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Tometa&lt;/span&gt; as partners with the e-commerce offerings of Microsoft SQL server. &lt;span style="font-weight: bold;"&gt;(Microsoft, 1998)&lt;/span&gt;&lt;br /&gt;Microsoft compares Microsoft SQL Server with MySQL, in terms of, Features, Licensing, Performance, Replication, Security and Recovery. &lt;span style="font-weight: bold;"&gt;(Tometa, 2006)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yes, Sybase has mentioned that Sybase Power&lt;span class="leafheader" height="41"&gt;s GDI is Repeatable Business-to-Business e-Commerce Framework. &lt;/span&gt;      Sybase lists paybox - the Furthering Mobile Commerce as a partner.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Sybase compares Sybase ASE with MySQL, in terms of, Performance, Data Management, Scalable and Platform. &lt;span style="font-weight: bold;"&gt;(Sybase, 2008)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. IBM.com (2006). "Mining your Business in Retail with IBM DB2 Intelligent Miner". IBM.com, Retrieved Mar-16th-2009 from URL - &lt;a href="http://www.ibm.com/developerworks/edu/dm-dw-dm-retail_tutorial-i.html"&gt;http://www.ibm.com/developerworks/edu/dm-dw-dm-retail_tutorial-i.html&lt;/a&gt; and &lt;a href="http://www-03.ibm.com/press/us/en/pressrelease/2779.wss"&gt;http://www-03.ibm.com/press/us/en/pressrelease/2779.wss&lt;/a&gt;&lt;br /&gt;2. Oracle (2009). "About Siebel E-commerce 8.1.1". Oracle.com, Retrieved Mar-16th-2009 from URL - &lt;a href="http://www.oracle.com/applications/crm/siebel/self-service-ebilling/siebel-e-commerce-8-1-1.html"&gt;http://www.oracle.com/applications/crm/siebel/self-service-ebilling/siebel-e-commerce-8-1-1.html&lt;/a&gt;, &lt;span class="resultsDetail"&gt;&lt;a href="http://www.oracle.com/profit/partner/082007_quistor.html"&gt;http://www.oracle.com/profit/partner/082007_quistor.html&lt;/a&gt;, &lt;a href="http://download.oracle.com/docs/cd/E12151_01/doc.150/e12155/oracle_mysql_compared.htm"&gt;http://download.oracle.com/docs/cd/E12151_01/doc.150/e12155/oracle_mysql_compared.htm&lt;/a&gt; and &lt;/span&gt;&lt;a href="http://www.oracle.com/siebel/ptr_quote.html"&gt;http://www.oracle.com/siebel/ptr_quote.html&lt;/a&gt;&lt;br /&gt;3. Microsoft (1998). "Microsoft TerraServer". Microsoft.com, Retrieved Mar-16th-2009 from URL - &lt;a href="http://msdn.microsoft.com/en-us/library/aa226316%28SQL.70%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa226316(SQL.70).aspx&lt;/a&gt;&lt;br /&gt;4. Tometa (2006). "MySQL 5.0 vs Microsoft SQL Server 2005". Tometa Software, Retrieved Mar-16th-2009 from URL - &lt;a href="http://www.tometasoftware.com/MySQL-5-vs-Microsoft-SQL-Server-2005.asp"&gt;http://www.tometasoftware.com/MySQL-5-vs-Microsoft-SQL-Server-2005.asp&lt;br /&gt;&lt;/a&gt;5. Sybase (2008). "Performance Comparison of ASE 15 vs MySQL 5.0 White Paper". Sybase.com, Retrieved Mar-16th-2009 from URL - &lt;a href="http://www.sybase.com/detail?id=1061086"&gt;http://www.sybase.com/detail?id=1061086&lt;/a&gt;, &lt;a href="http://www.sybase.com/detail?id=1008953"&gt;http://www.sybase.com/detail?id=1008953&lt;/a&gt; and &lt;a href="http://www.sybase.com/detail?id=1045499"&gt;http://www.sybase.com/detail?id=1045499&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-219022985880682821?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/219022985880682821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q1-go-to-website-of-ibm-oracle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/219022985880682821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/219022985880682821'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q1-go-to-website-of-ibm-oracle.html' title='Q1. Go to the website of IBM, Oracle, Microsoft and Sybase....'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-158704727563958163</id><published>2009-03-22T03:55:00.002+08:00</published><updated>2009-03-22T04:32:47.021+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 11'/><title type='text'>Q3. SMIL is an application of XML. What is the purpose of this technology? What does it apply?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SMIL&lt;/b&gt; &lt;span title="Pronunciation in the International Phonetic Alphabet (IPA)" class="IPA"&gt;&lt;/span&gt;( &lt;b&gt;Synchronized Multimedia Integration Language&lt;/b&gt;) is a W3C recommended XML markup language for describing multimedia presentations. It defines markup for timing, layout, animations, visual transitions, and media embedding, among other things. SMIL allows the presentation of media items such as text, images, video, and audio, as well as links to other SMIL presentations, and files from multiple web servers. SMIL markup is written in XML, and has similarities to HTML. &lt;span style="font-weight: bold;"&gt;(Wikipedia, 2009)&lt;/span&gt;&lt;br /&gt;The Synchronized Multimedia Integration Language enables simple authoring of interactive audiovisual presentations. SMIL is typically used for "rich media"/multimedia presentations which integrate streaming audio and video with images, text or any other media type. SMIL is an easy-to-learn HTML-like language, and many SMIL presentations are written using a simple text-editor. &lt;span style="font-weight: bold;"&gt;(W3Schools.com, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Arndt (2009)&lt;/span&gt; states that the purposes of SMIL are ...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;It is also desirable to be able to publish multimedia presentations using a markup language. &lt;/li&gt;&lt;li&gt;A multimedia markup language needs to enable scheduling and synchronization of different multimedia elements, and define their interactivity with the user.&lt;/li&gt;&lt;/ol&gt;Where does SMIL apply?&lt;br /&gt;SMIL is used or applied in Multimedia Players to view Video, Audio, Image... etc... For example, the players are AMBULANT, Helix Player, QuickTime Player, RealPlayer, Totem, KMPlayer, Windows Media Player (Playlist Files), Zune (Playlist Files) and Amarok. In order to view a SMIL presentation, a client will need to have a SMIL player installed on his/her computer. Currently, Apple's Quicktime player, Windows Media Player (WMP) and RealNetworks RealPlayer are among the most popular media players.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;1. Wikipedia (2009). "Synchronized Multimedia Integration Language". Wikipedia The Free Encyclopedia, Retrieved Mar-15th-2009 from URL - &lt;a href="http://en.wikipedia.org/wiki/Synchronized_Multimedia_Integration_Language"&gt;http://en.wikipedia.org/wiki/Synchronized_Multimedia_Integration_Language&lt;/a&gt;&lt;br /&gt;2. W3Schools.com (2009). "W3C Synchronized Multimedia Home Page". W3Schools.com, Retrieved Mar-15th-2009 from URL - &lt;a href="http://www.w3.org/AudioVideo/"&gt;http://www.w3.org/AudioVideo/&lt;/a&gt;&lt;br /&gt;3. Arndt Timothy (2009). "The Power Point file". The Department of Computer and Information Sciences in Cleveland State University, Retrieved Mar-16th-2009 from URL - &lt;a href="http://grail.cba.csuohio.edu/%7Earndt/cis658_1.ppt"&gt;&lt;span class="yschurl"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a class="yschttl withvidthmb" target="_blank"&gt;http://grail.cba.csuohio.edu/~arndt/&lt;wbr&gt;cis658_&lt;wbr&gt;1.ppt&lt;/a&gt; and &lt;a href="http://grail.cba.csuohio.edu/%7Earndt/"&gt;&lt;span class="yschurl"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a class="yschttl withvidthmb" target="_blank"&gt;http://grail.cba.csuohio.edu/~arndt/&lt;wbr&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-158704727563958163?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/158704727563958163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q3-smil-is-application-of-xml-what-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/158704727563958163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/158704727563958163'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q3-smil-is-application-of-xml-what-is.html' title='Q3. SMIL is an application of XML. What is the purpose of this technology? What does it apply?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-9014042313996231976</id><published>2009-03-22T03:53:00.002+08:00</published><updated>2009-03-22T05:08:02.163+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 11'/><title type='text'>Q2. What are the benefits of adopting a schema standardized for a business sector?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;The benefits of adopting a schema standardized for a business sector are ...&lt;br /&gt;1. The extensibility and structured nature of the standardized schema allows information to be used for communication between different systems.&lt;br /&gt;2. The information sharing, system interoperability knowledge transfer between different computing teams becomes easier as well (because of the same format from the standard).&lt;br /&gt;3. The information creator can format and distribute the information via a multitude of different channels with minimal effort. (because everyone in the business sector knows the standardized scheme)&lt;br /&gt;&lt;/span&gt;4. Retrieve the content and data once, deliver many times and in many formats with ease.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(Intranet Journal, 2003)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Intranet Journal (2003). "XML Tutorial". Intranet Journal Building the Corporate Enterprise, Retrieved Mar-16th-2009 from URL - &lt;a href="http://www.intranetjournal.com/articles/200312/ij_12_08_03a.html"&gt;http://www.intranetjournal.com/articles/200312/ij_12_08_03a.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-9014042313996231976?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/9014042313996231976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q2-what-are-benefits-of-adopting-schema.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/9014042313996231976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/9014042313996231976'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q2-what-are-benefits-of-adopting-schema.html' title='Q2. What are the benefits of adopting a schema standardized for a business sector?'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-1918885857336304128</id><published>2009-03-21T17:16:00.002+08:00</published><updated>2009-03-21T18:42:39.643+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 8'/><title type='text'>Q5. The last code example shows how to get multiple records</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Diagram-17 shows the output of getting multiple records:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/ScTEaIQ3GVI/AAAAAAAAAEM/mNjuSBn8Isk/s1600-h/mju.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 433px; height: 307px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/ScTEaIQ3GVI/AAAAAAAAAEM/mNjuSBn8Isk/s320/mju.GIF" alt="" id="BLOGGER_PHOTO_ID_5315589413377874258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-17 - The output of getting multiple records&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-1918885857336304128?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/1918885857336304128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q5-last-code-example-shows-how-to-get.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1918885857336304128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/1918885857336304128'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q5-last-code-example-shows-how-to-get.html' title='Q5. The last code example shows how to get multiple records'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0NiBYKhCm2o/ScTEaIQ3GVI/AAAAAAAAAEM/mNjuSBn8Isk/s72-c/mju.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-2470727620931123529</id><published>2009-03-21T17:10:00.003+08:00</published><updated>2009-03-21T17:14:33.559+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 8'/><title type='text'>Q4. The corresponding PHP file is add_record.php used with the POST method:</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Diagram-16 shows the output of add_record.php&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/ScSvrKYwg5I/AAAAAAAAAEE/Le4rDEjoWGM/s1600-h/cxz.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 222px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/ScSvrKYwg5I/AAAAAAAAAEE/Le4rDEjoWGM/s320/cxz.GIF" alt="" id="BLOGGER_PHOTO_ID_5315566616261460882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-16 - the output of add_record.php&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-2470727620931123529?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/2470727620931123529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q4-corresponding-php-file-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2470727620931123529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2470727620931123529'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q4-corresponding-php-file-is.html' title='Q4. The corresponding PHP file is add_record.php used with the POST method:'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0NiBYKhCm2o/ScSvrKYwg5I/AAAAAAAAAEE/Le4rDEjoWGM/s72-c/cxz.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-7727422874363917231</id><published>2009-03-21T04:39:00.004+08:00</published><updated>2009-03-21T04:44:05.990+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 8'/><title type='text'>Q3. This is how we can add a record and is part of a file to create called add_record.html</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The output of add_record.html is shown in Diagram-15.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/ScP_xd2LC6I/AAAAAAAAAD8/XmEl2JyNOYM/s1600-h/zxcv.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 435px; height: 309px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/ScP_xd2LC6I/AAAAAAAAAD8/XmEl2JyNOYM/s320/zxcv.GIF" alt="" id="BLOGGER_PHOTO_ID_5315373210517834658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-15 - The output of add_record.html&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-7727422874363917231?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/7727422874363917231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q3-this-is-how-we-can-add-record-and-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7727422874363917231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7727422874363917231'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q3-this-is-how-we-can-add-record-and-is.html' title='Q3. This is how we can add a record and is part of a file to create called add_record.html'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0NiBYKhCm2o/ScP_xd2LC6I/AAAAAAAAAD8/XmEl2JyNOYM/s72-c/zxcv.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-7717586993545051950</id><published>2009-03-21T04:27:00.002+08:00</published><updated>2009-03-21T04:31:25.020+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 8'/><title type='text'>Q2. Create a web page with the following PHP:...</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Diagram-14 is shown as follow and is the output of the PHP.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/ScP86BVerpI/AAAAAAAAAD0/_Z3gmUyTVYo/s1600-h/WSXCDE.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 434px; height: 309px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/ScP86BVerpI/AAAAAAAAAD0/_Z3gmUyTVYo/s320/WSXCDE.GIF" alt="" id="BLOGGER_PHOTO_ID_5315370058948456082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-14 - The output of the PHP&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-7717586993545051950?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/7717586993545051950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q2-create-web-page-with-following-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7717586993545051950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7717586993545051950'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q2-create-web-page-with-following-php.html' title='Q2. Create a web page with the following PHP:...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0NiBYKhCm2o/ScP86BVerpI/AAAAAAAAAD0/_Z3gmUyTVYo/s72-c/WSXCDE.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-2070381541825268192</id><published>2009-03-21T04:09:00.002+08:00</published><updated>2009-03-21T04:15:49.979+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 8'/><title type='text'>Q1. Start with a simple table in the database:</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Exercise 8: PHP and MySQL database access&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q1. Start with a simple table in the database:&lt;br /&gt;&lt;br /&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Diagram-13 shows the output of "select * from employees;" in MySQL.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/ScP5Np20c9I/AAAAAAAAADs/AsaPGeVaXIs/s1600-h/qazxsw.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 433px; height: 386px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/ScP5Np20c9I/AAAAAAAAADs/AsaPGeVaXIs/s320/qazxsw.GIF" alt="" id="BLOGGER_PHOTO_ID_5315365998196716498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-13 - The output of "select * from employees;" in MySQL&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-2070381541825268192?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/2070381541825268192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q1-start-with-simple-table-in-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2070381541825268192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2070381541825268192'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q1-start-with-simple-table-in-database.html' title='Q1. Start with a simple table in the database:'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0NiBYKhCm2o/ScP5Np20c9I/AAAAAAAAADs/AsaPGeVaXIs/s72-c/qazxsw.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-2618697123170970726</id><published>2009-03-20T09:47:00.005+08:00</published><updated>2009-03-21T03:29:08.397+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q2. Then, create a PHP file named submit.php with the following code...</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Answer:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The submit.php is created and shown in Diagram-12.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0NiBYKhCm2o/ScL5Shw8ehI/AAAAAAAAADk/KFZoQ5LIyBc/s1600-h/vvv.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 430px; height: 263px;" src="http://3.bp.blogspot.com/_0NiBYKhCm2o/ScL5Shw8ehI/AAAAAAAAADk/KFZoQ5LIyBc/s320/vvv.GIF" alt="" id="BLOGGER_PHOTO_ID_5315084606947228178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-12 - submit.php&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-2618697123170970726?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/2618697123170970726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q2-then-create-php-file-named-submitphp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2618697123170970726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2618697123170970726'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q2-then-create-php-file-named-submitphp.html' title='Q2. Then, create a PHP file named submit.php with the following code...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0NiBYKhCm2o/ScL5Shw8ehI/AAAAAAAAADk/KFZoQ5LIyBc/s72-c/vvv.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-7517703305443152776</id><published>2009-03-19T17:00:00.003+08:00</published><updated>2009-03-22T03:51:17.973+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 11'/><title type='text'>Q1. Conduct research on the Internet to find out what tools can be used to parse an XML document and ensure that the document is well formed and valid</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Exercise 11: XML Introduction&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Q1. Conduct research on the Internet to find out what tools can be used to parse an XML document and ensure that the document is well formed and valid.&lt;br /&gt;&lt;br /&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;W3Schools.com (2009)&lt;/span&gt; states that all modern browsers have a built-in XML parser that can be used to read and manipulate XML. The parser reads XML into memory and converts it into an XML DOM object that can be accessed with JavaScript. There are some differences between Microsoft's XML parser and the parsers used in other browsers. The Microsoft parser supports loading of both XML files and XML strings (text), while other browsers use separate parsers. However, all parsers contain functions to traverse XML trees, access, insert, and delete nodes (elements) and their attributes.&lt;br /&gt;&lt;br /&gt;There are some tools on the Internet to parse XML documents and to ensure the XML documents are well formed and valid. These tools are ...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;XML Validator -&lt;a href="http://www.validome.org/xml/"&gt; http://www.validome.org/xml/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;XML Scheme Validator - &lt;a href="http://tools.decisionsoft.com/schemaValidate/"&gt;http://tools.decisionsoft.com/schemaValidate/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;STG XML Validator - &lt;a href="http://www.stg.brown.edu/service/xmlvalid/"&gt;http://www.stg.brown.edu/service/xmlvalid/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Validator for XML Schema - &lt;a href="http://www.w3.org/2001/03/webdata/xsv"&gt;http://www.w3.org/2001/03/webdata/xsv&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. w3Schools.com (2009). "XML Parser". W3Schools.com, Retrieved Mar-16th-2009 from URL - &lt;a href="http://www.w3schools.com/xml/xml_parser.asp"&gt;http://www.w3schools.com/xml/xml_parser.asp&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-7517703305443152776?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/7517703305443152776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q1-conduct-research-on-internet-to-find.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7517703305443152776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/7517703305443152776'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q1-conduct-research-on-internet-to-find.html' title='Q1. Conduct research on the Internet to find out what tools can be used to parse an XML document and ensure that the document is well formed and valid'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-6777589130208456915</id><published>2009-03-19T16:38:00.006+08:00</published><updated>2009-03-20T09:46:20.270+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q1. Create an HTML page with the form:</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Exercise 7: User input for database access with PHP&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Q1. Create an HTML page with the form:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;The following HTML page is created and is show in Diagram-11.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0NiBYKhCm2o/ScL1AlmKyMI/AAAAAAAAADc/DLGp0jWXuNI/s1600-h/aazk.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 432px; height: 306px;" src="http://1.bp.blogspot.com/_0NiBYKhCm2o/ScL1AlmKyMI/AAAAAAAAADc/DLGp0jWXuNI/s320/aazk.GIF" alt="" id="BLOGGER_PHOTO_ID_5315079900691613890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-11 - HTML form&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-6777589130208456915?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/6777589130208456915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q1-create-html-page-with-form.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/6777589130208456915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/6777589130208456915'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q1-create-html-page-with-form.html' title='Q1. Create an HTML page with the form:'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0NiBYKhCm2o/ScL1AlmKyMI/AAAAAAAAADc/DLGp0jWXuNI/s72-c/aazk.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-3090255425994695104</id><published>2009-03-19T16:36:00.005+08:00</published><updated>2009-03-20T08:37:07.465+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q2. Create a web application called "hello_world.php" which contains in the body...</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;The output of the "hello_world.php" is in Diagram-10...&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/ScLkxWtsAtI/AAAAAAAAADU/iVqGn0DxNgw/s1600-h/mmdd1.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 440px; height: 313px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/ScLkxWtsAtI/AAAAAAAAADU/iVqGn0DxNgw/s320/mmdd1.GIF" alt="" id="BLOGGER_PHOTO_ID_5315062046812537554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-10 - The output of $myvar in hello_world.php&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-3090255425994695104?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/3090255425994695104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q2-create-web-application-called.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/3090255425994695104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/3090255425994695104'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q2-create-web-application-called.html' title='Q2. Create a web application called &quot;hello_world.php&quot; which contains in the body...'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0NiBYKhCm2o/ScLkxWtsAtI/AAAAAAAAADU/iVqGn0DxNgw/s72-c/mmdd1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-4555704135527915049</id><published>2009-03-19T02:57:00.012+08:00</published><updated>2009-03-20T08:26:35.350+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q1. In this exercise with can call up and examine some environment variables on the server....</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Exercise 6: Some server practice with PHP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Q1. In this exercise with can call up and examine some environment variables on the server. The code below has the UNIX environment variable for storing your remote Internet address. UNIX environment variable are recognized by the use of upper case letters. Try the same code by replacing with $REMOTE_ADDR, $SERVER_NAME, or $PHP_SELF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The output of the PHP's variables $REMOTE_ADDR, $SERVER_NAME &amp;amp; $PHP_SELF is in Diagram-9.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/ScLhZh-niCI/AAAAAAAAADE/UDgwQ5XfLHA/s1600-h/md123.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 435px; height: 309px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/ScLhZh-niCI/AAAAAAAAADE/UDgwQ5XfLHA/s320/md123.GIF" alt="" id="BLOGGER_PHOTO_ID_5315058338984593442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Diagram-9 - The output of PHP's variables $REMOTE_ADDR, $SERVER_NAME &amp;amp; $PHP_SELF&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-4555704135527915049?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/4555704135527915049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q1-in-this-exercise-with-can-call-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/4555704135527915049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/4555704135527915049'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q1-in-this-exercise-with-can-call-up.html' title='Q1. In this exercise with can call up and examine some environment variables on the server....'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0NiBYKhCm2o/ScLhZh-niCI/AAAAAAAAADE/UDgwQ5XfLHA/s72-c/md123.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-2525030472068554553</id><published>2009-03-18T22:36:00.010+08:00</published><updated>2009-03-19T22:21:15.488+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 5'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q3. Frameworks for development. Compare and contrast any TWO of:</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;a. Java &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;b. .NET &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;c. Ruby on Rails&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;d. Turbo Gears&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;e. Google Gears&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;f. AJAX framework&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;For web development, I would like to compare and contrast &lt;span style="font-weight: bold;"&gt;Java Framework&lt;/span&gt; with &lt;span style="font-weight: bold;"&gt;Ruby on Rail Fram&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;ework&lt;/span&gt;. &lt;span style="font-weight: bold;"&gt;Vohra (2009)&lt;/span&gt; explains ...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.&lt;/span&gt; Ruby is an interpreted scripting language, but Java is a compiled programming language.&lt;br /&gt;To run a Ruby script, we can simply run by issue the command - "ruby helloruby.rb" where helloruby.rb is the script file name.&lt;br /&gt;To run a Java program, we need to first compile the program to byte code, namely, "Java Virtual Machine". To compile the program hellojava.java, we can simply issu&lt;/span&gt;&lt;span style="font-size:100%;"&gt;e the command - "javac hellojava.java". After hellojava.class JVM is created, we can issue "java hellojava" to run the program.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.&lt;/span&gt; Ruby and Java are both object-oriented languages.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.&lt;/span&gt; Both are strongly typed. Whereas, Ruby is dynamically typed and Java is statically typed. That is,&lt;br /&gt;In Ruby, to declare variables, we can issue "str="Hello Ruby" (Ruby does not need type declaration)&lt;br /&gt;In Java, to declare variables, we can issue "String str="Hello Java"; (Java needs type declaration)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4.&lt;/span&gt; Both Java and Ruby provide inheritance and have public, private and protected methods.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5.&lt;/span&gt; Ruby is simpler than Java and run faster than J&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ava.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6.&lt;/span&gt; Although Ruby is similar to Java and has parallel features, Ruby is not a replacement for Java. Just as Java EE is the enterprise framework for developing Model-View-Controller applications with Java, Ruby on Rails is the Model-View-Controller framework for Ruby.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;I was a PHP developers 5 years ago. I also studied Java to write some simple programmes but I am not familiar with Ruby on Rail. However, p&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ersonally, &lt;/span&gt;&lt;span style="font-size:100%;"&gt;I feel the syntax of Java is more complex than PHP's and Ruby on Rail's. For this reason, Ruby on Rails is suitable for beginners to develop applications.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sans-Serif (2007)&lt;/span&gt; compares PHP with J&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ava and Ruby on Rails in terms of Scaling, Development Speed, Developer Tools and Maintainability.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Scaling -&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;For Web apps, Sans-Serif has given PHP the edge, because Sans-Serif thinks building scalable PHP is a little &lt;em&gt;easier&lt;/em&gt;.  By default, PHP gives you a “shared-nothing” (or at least “shared very little”) architecture, which means you’re going to scale out pretty well until your database hits the wall. Java is a much richer system and assumes you’re smart enough to know whether a shared-nothing architecture is appropriate or not.  The effect is, you have to be smarter to get the same kind of scaling out of Java.&lt;br /&gt;As for Rails, Sans-Serif thinks it’s probably the case that you can build a Web-scale app, just like Java and PHP, but we don’t know because nobody’s done it yet. Also, we have to penalize Rails a bit because most apps end up having a little computing in them, and Ruby is quite a bit behind the alternatives in that department.&lt;br /&gt;After all, Java runs EBay while PHP runs Wikipedia and Yahoo! Finance.  Both clearly scale “well enough”.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Development Speed - &lt;/span&gt;&lt;br /&gt;The question is “All other things being equal, how fast can Sans-Serif gets my Web app on the air?”  Sans-Serif thinks Rails has set a new benchmark here; you keep hearing astounding stories of serious applications going up in days rather than months and weeks rather than years.&lt;a class="plink" href="http://www.tbray.org/ongoing/When/200x/2006/11/10/Comparing-Frameworks#p-3"&gt; &lt;/a&gt;&lt;br /&gt;PHP’s original claim to fame was that it was the quick-and-dirty way to get a Web app on the air.  There’s no point trying to sweep the “dirty” bit under the carpet; a lot of those quickie PHP apps are butt-ugly. One of the reasons Rails is interesting is that it’s quick &lt;em&gt;and clean&lt;/em&gt;. Java seems most difficuit comparing to PHP and Ruby on Rails.&lt;br /&gt;&lt;span style="font-weight: bold;" class="h2"&gt;Developer Tools -&lt;/span&gt;&lt;br /&gt;Java is the obvious winner here. If you look at the recent NetBeans 5.5, the amount of automated support for Web-app development is astounding; if Sans-Serif ’d been graphing NetBeans instead of Java, I suspect it’d have equaled or passed PHP in the development-speed department.&lt;br /&gt;&lt;span style="font-weight: bold;" class="h2"&gt;Maintainability&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; - &lt;/span&gt;&lt;br /&gt;Good apps, once built, tend to be in production for an astonishingly long time.  Which means that they have to be maintained for an astonishingly long time.  Which means that maintainability is important. There are a lot of things that go into maintainability, but Sans-Serif suggests that the biggies are object-orientation, MVC architecture,  code readability, and code size (less is more, a lot more).&lt;br /&gt;This is PHP’s  Achilles’ heel, of course.  Yes, it is possible to write clean, object-oriented, modular, MVC-style PHP applications.  But most people don’t...&lt;br /&gt;Sans-Serif’ has put Rails ahead of Java just because there’s so much less code.  The maintenance cost of code is strongly related to its size.  Clearly, Java’s excellent developer tools make a difference, but still, Sans-Serif thinks that this is another area where Ruby and Rails are teaching lessons the rest of the industry would do well to learn from.&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;To sum up, we have the Diagram-8 extracted from &lt;a href="http://www.tbray.org/ongoing/When/200x/2006/11/10/Comparing-Frameworks"&gt;http://www.tbray.org/ongoing/When/200x/2006/11/10/Comparing-Frameworks&lt;/a&gt;. From the Diagram-8, we will know then Ruby on Rails is easy enough that the programming beginners can develop web application fast and clean with Object-Oriented and MVC  architecture.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0NiBYKhCm2o/ScErhbHDh-I/AAAAAAAAACk/qgq9jAATfOU/s1600-h/Comparison-1.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 432px; height: 288px;" src="http://4.bp.blogspot.com/_0NiBYKhCm2o/ScErhbHDh-I/AAAAAAAAACk/qgq9jAATfOU/s320/Comparison-1.GIF" alt="" id="BLOGGER_PHOTO_ID_5314576888486922210" border="0" /&gt;&lt;/a&gt;Diagram-8 - The comparison amongst PHP, Java and Rails&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;1. Vohra Deepak (2009). "Java vs Ruby: A comparation of Key Elements". The developer.com, Retrieved Mar-15th-2009 from URL - &lt;a href="http://www.developer.com/open/article.php/10930_3716356_3"&gt;http://www.developer.com/open/article.php/10930_3716356_3&lt;/a&gt;&lt;br /&gt;2. &lt;/span&gt;&lt;span style="font-size:85%;"&gt;Sans-Serif&lt;/span&gt;&lt;span style="font-size:85%;"&gt; (2007). "Ongoing. Comparing Frameworks". OnGoing, Retrieved Mar-15th-2009 from URL - &lt;a href="http://www.tbray.org/ongoing/When/200x/2006/11/10/Comparing-Frameworks"&gt;http://www.tbray.org/ongoing/When/200x/2006/11/10/Comparing-Frameworks&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-2525030472068554553?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/2525030472068554553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q3-frameworks-for-development-compare.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2525030472068554553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/2525030472068554553'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q3-frameworks-for-development-compare.html' title='Q3. Frameworks for development. Compare and contrast any TWO of:'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0NiBYKhCm2o/ScErhbHDh-I/AAAAAAAAACk/qgq9jAATfOU/s72-c/Comparison-1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-3194696835569463553</id><published>2009-03-18T22:23:00.013+08:00</published><updated>2009-03-19T17:51:23.574+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 5'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercises'/><title type='text'>Q2. Describe the important and distinguishing properties of Peer to Peer computing and the Grid.</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;How is this Peer to Peer and the Grid architecture changing work flow and service-oriented applications?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Peer to Peer (P2P)&lt;/span&gt; means computer network uses diverse connectivity between diverse connectivity between participants in a network and the cumulative bandwidth of network participants rather than conventional centralized resources where a relatively low number of servers provide the core value to a service or application. P2P networks are typically used for connecting nodes via largely ad hoc connections. Such networks are useful for many purposes. Sharing content files containing audio, video, data or anything in digital format is very common, and real time data, such as telephony traffic, is also passed using P2P technology. A pure P2P network does not have the notion of clients or servers but only equal peer nodes that simultaneously function as both "clients" and "servers" to the other nodes on the network. This model of network arrangement differs from the client-server model where communication is usually to and from a central server.&lt;span style="font-weight: bold;"&gt; (Wikipedia, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Grid Architecture / Computing&lt;/span&gt; is a parallel processing architecture in which CPU resources are shared across a network, and all machines function as one large supercomputer. A well known example of grid computing in the public domain is the ongoing Search for Extraterrestrial Intelligence (SETI) in which thousands of people share the unused processor cycles of their PCs in the vast search for signs of rational signals from outer space. Grid computing depends on the software to divide and apportion pieces of a program among several computers. It is cost-effective and can solve problems that can’t be approached without an enormous amount of computing power. &lt;span style="font-weight: bold;"&gt;(4to&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;40.com, 2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;With my own words, P2P computing shares bandwidth among each peer nodes and Grid computing shares CPU power amongst network' machines. P2P and Grid Computing are important nowadays. It is because the multimedia becomes popular. Multimedia containing Video, Audio, Image and Sound is always a big file in size. The traditional client/server file transfer like FTP becomes insufficient for such large file (eg. over 1G file). As a result, P2P and Grid computing would be the cost-saving solution for multimedia information sharing. P2P and Grid computing have changed the work flow and service-oriented applications because the client/server method cannot share huge data in the limited resources, like bandwidth and CPU power.&lt;br /&gt;&lt;br /&gt;The following Diagram-7 from Wikipedia and 4TO40.com shows P2P, Grid and Client/Server computing.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0NiBYKhCm2o/ScIVBt3zVSI/AAAAAAAAAC8/wn39aEcddQI/s1600-h/aaall.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 426px; height: 162px;" src="http://2.bp.blogspot.com/_0NiBYKhCm2o/ScIVBt3zVSI/AAAAAAAAAC8/wn39aEcddQI/s320/aaall.GIF" alt="" id="BLOGGER_PHOTO_ID_5314833629488305442" border="0" /&gt;&lt;/a&gt;Diagram-7, P2P, Grid &amp;amp; Client/Server&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Wikipedia (2009). "Peer-to-Peer". Wikipedia The Free Encyclopedia, Retrieved Mar-15th-2009 from URL - &lt;a href="http://en.wikipedia.org/wiki/Peer_to_peer"&gt;http://en.wikipedia.org/wiki/Peer_to_peer&lt;/a&gt;&lt;br /&gt;2. 4to40.com (2009). "Question: What is Grid Computing?". 4to40.com, Retrieved Mar-15th-2009 from URL - &lt;a href="http://www.4to40.com/qa/index.asp?id=3303"&gt;http://www.4to40.com/qa/index.asp?id=3303&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6083014959034990147-3194696835569463553?l=itc594josephc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itc594josephc.blogspot.com/feeds/3194696835569463553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q2-describe-important-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/3194696835569463553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6083014959034990147/posts/default/3194696835569463553'/><link rel='alternate' type='text/html' href='http://itc594josephc.blogspot.com/2009/03/q2-describe-important-and.html' title='Q2. Describe the important and distinguishing properties of Peer to Peer computing and the Grid.'/><author><name>Joseph Cheung</name><uri>http://www.blogger.com/profile/05077413667500243258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/_0NiBYKhCm2o/Sbd_30myPLI/AAAAAAAAAAM/GaCOmF61YgM/S220/AAA.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0NiBYKhCm2o/ScIVBt3zVSI/AAAAAAAAAC8/wn39aEcddQI/s72-c/aaall.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6083014959034990147.post-4310100727984143260</id><published>2009-03-18T17:05:00.017+08:00</published><updated>2009-03-21T18:47:41.627+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 5'/><category sche
