<?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-5460860580884516379</id><updated>2011-11-16T22:31:08.334-08:00</updated><category term='Exercise 10'/><category term='Workshop 05 - Part A'/><category term='Introduction'/><category term='Exercise 02'/><category term='Exercise 24'/><category term='Exercise 26'/><category term='Exercise 05'/><category term='Exercise 22'/><category term='Exercise 15'/><category term='Exercise 17'/><category term='Workshop 07'/><category term='Workshop'/><category term='Workshop 02'/><category term='Exercise 12'/><category term='Exercise'/><category term='Workshop 05'/><category term='Exercise 20'/><category term='workshop 03'/><category term='Exercise 07'/><category term='Exercise 18'/><category term='Exercise 03'/><category term='Workshop 01'/><category term='Exercise 14'/><category term='Exercise 23'/><category term='Exercise 01'/><category term='workshop 08'/><category term='Workshop 05 - Part B'/><category term='Exercise 09'/><category term='Exercise 25'/><category term='Exercise 21'/><category term='Exercise 04'/><category term='Exercise 16'/><category term='Workshop 06'/><category term='Exercise 08'/><category term='Exercise 06'/><category term='Workshop 05 - Part C'/><category term='Exercise 13'/><category term='Exercise 11'/><category term='Exercise 19'/><category term='workshop 04'/><title type='text'>Dennis's blog (Developer - RED team)</title><subtitle type='html'>This Blog is setup for the course in CSU ITC594 - E-systems Infrastructure Development</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-6503133164228958165</id><published>2009-05-15T00:31:00.000-07:00</published><updated>2009-05-16T08:16:29.675-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='workshop 08'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><title type='text'>Workshop 8: Ruby on Rails Workshops Report and Evaluation</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Evaluation and Report&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Please answer each question in this evaluation section. In your answer, please consider content/topics presented and the technologies and teaching strategies used during the Ruby on Rails Workshops. Results will be collated and used to modify the workshop series.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;This form is just a format guide to you evaluation and report. Thank you for your time to complete workshop 8.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;1. List what you consider to be the three strengths of Ruby on Rails workshop series&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I consider the 3 strengths to be:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Learn RoR from background concept to programming code, then application deployment gradually.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Provide suitable materials and resources.&lt;/li&gt;&lt;li&gt;Good in learning programming coding in Workshop 4 and 5.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;2. List what you consider to be the three weaknesses of Ruby on Rails workshop series:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I consider 3 weaknesses to be:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;No enough time to complete the whole application.&lt;/li&gt;&lt;li&gt;Each workshop is separated not strongly related.&lt;/li&gt;&lt;li&gt;The work load may be too large for a part time student.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;3. List what aspects of Ruby on Rails workshop series that you found to be most difficult.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The most difficult aspects were:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Installation of RoR and setup of MySQL in my Mac for different versions, and too many methods.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The integration use of Method, View and Control (MVC).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Workshop 6: use of AJAX&lt;/li&gt;&lt;li&gt;Need a lot of time to complete the workshops.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;4. List what improvements could be made to the Ruby on Rails workshop series:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Improvements you would make include:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;If the course duration can be longer, it may has enough time to learn better.&lt;/li&gt;&lt;li&gt;Improve the relation between workshops.&lt;/li&gt;&lt;li&gt;Delivery the workshops early&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="color: rgb(153, 51, 0);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;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&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;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I only have a little experiences in Web framework (PHP and .Net). I think PHP and .Net are more suitable in business world nowadays. It may be better to learn the business software for the student easy to apply the knowlege in their working enrionment. Mircosoft provides 3 months learning edition or free Express edition in SQL server and Visual Studio for us to study.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &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;/span&gt;&lt;br /&gt;&lt;br /&gt;As I use a lot of time to complete my exercises and workshops, I can only spend a little works in the focus group of RoR workshop.&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;br /&gt;7. Further comments to add?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As the tutor in Hong Kong cannot get all the materials directly from CSU, he cannot help us much. It may be better if he can get extra materials to guide us to complete the exercises and workshops.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-6503133164228958165?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/6503133164228958165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.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/5460860580884516379/posts/default/6503133164228958165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/6503133164228958165'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/05/workshop-8-ruby-on-rails-workshops.html' title='Workshop 8: Ruby on Rails Workshops Report and Evaluation'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-8239068883148015357</id><published>2009-05-15T00:25:00.000-07:00</published><updated>2009-05-16T05:22:13.827-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 07'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><title type='text'>Workshop 7: End of the Line: production site migration and maintenance</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&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;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Which way?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;font-size:130%;" &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;/span&gt;&lt;br /&gt;&lt;br /&gt;The OTBS is developed using Ruby on Rails (RoR). RoR is a new development language for me. I need to learn the implementation of Model-View-Controller (MOV) pattern in RoR, and code that controls or manipulates the MySQL database associated with my OTBS application. The stores business logic for validating or formatting of data that be stored in the model layer. RoR is good in it's principle of Don't Repeat Yourself (DRY). Rails attempts to impose many best practice techniques and conventions on the developer in order to create web applications that composed both elegantly and correctly (Alameda 2008).&lt;br /&gt;&lt;br /&gt;RoR provide the modern database-driven web application, but nothing is perfect (Alameda 2008):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The performance of RoR is a bit slower than other web technologies. &lt;/li&gt;&lt;li&gt;Rails is a bit more demanding to deploy when compared to other solution such as PHP.&lt;/li&gt;&lt;li&gt;The rapidly changing of the Rails, makes the Rails developers to continuously improve both the framework and the development practices.&lt;/li&gt;&lt;li&gt;Not really understanding the code by the developers when they commonly use the tools (scaffolding) to generate their applications. It is a risk when something goes wrong with the application or need to modify the code to handle a special circumstance.&lt;/li&gt;&lt;/ul&gt;If I need to develop a web application for my company, I will select Microsoft ASP .Net. ASP .Net is most commonly used in business environment. It provide a easily use graphic tools for us to develop of our application. We could find a lot of resource without difficultly on the Web or other aspect such as supporting from Microsoft, books, training course and developer certificate. The business feels more confident to develop their Web site by ASP .Net, than using other open source tools such as RoR. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;Can you get the OTBS Running in production mode as a minimal production server?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; When deploy applications for development or testing environment, we need to (Hartl &amp;amp; Prochazka, 2008):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Configure the production database connection in the file named database.yml.  &lt;/li&gt;&lt;li&gt;Create database in the production server&lt;/li&gt;&lt;li&gt;Run the migration in Rails by using of 'rake' to construt tables in it&lt;/li&gt;&lt;li&gt;Stop the development server and start a new server in production environment by using the -e flag (&gt;ruby script/server -e production)&lt;/li&gt;&lt;/ul&gt;Minimal production server (Hartl &amp;amp; Prochazka, 2008):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Using Mongrel / Linux OS / Apache Web server, as the Rails application server&lt;/li&gt;&lt;li&gt;Setup the same softwares (such as Ruby, Rails, database and plugins) on the server like the development computer&lt;/li&gt;&lt;li&gt;Upload the Rails project to the server, follow the deploy application steps at the above to create and configure the production database&lt;/li&gt;&lt;li&gt;Install and configure the application server and webserver&lt;/li&gt;&lt;/ul&gt;A single server running a single Mongrel process is probably sufficient for most Rails application. A single server can be kept adding new Mongrels until you run out of CPU time, at that stage a new servers need to be added. Although caching can minimize database hits, the database may eventually become the application botttleneck. When that point reach, an extra database server need to be added in a master-slave setup (Hartl &amp;amp; Prochazka, 2008).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Alameda, E. (2008), Foundation rails 2, &lt;span style="font-style: italic;"&gt;Apress and fiends of ED books&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Hartl, M. and Prochazka, A. (2008), Railsspace: building a social networking website with ruby on rails, &lt;span style="font-style: italic;"&gt;Person Education, Inc&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-8239068883148015357?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/8239068883148015357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.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/5460860580884516379/posts/default/8239068883148015357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/8239068883148015357'/><link rel='alternate' type='text/html' href='http://lsc1111.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>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-3841434922863366268</id><published>2009-05-05T23:27:00.000-07:00</published><updated>2009-05-12T00:12:56.596-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 06'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><title type='text'>Workshop 6: Enjoying the Ride: Web framework alternatives, scalability and flexibility</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&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;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;o    generate a controller and an action by adding a method(s) to a controller;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;o    create a view template for each action and to link to actions from views;&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;&lt;br /&gt;o    use AJAX to improve the user experience;&lt;/span&gt;  &lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Share your success by posting&lt;br /&gt;&lt;br /&gt;progress comments and links etc to the Developers sub-forum site that has been set up for the Red team.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;By following the example of the e-book "RailsSpace", I create the Home page of  OTBS in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SgWsxfeUKJI/AAAAAAAAAUQ/a3ip56qf3Wo/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 147px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SgWsxfeUKJI/AAAAAAAAAUQ/a3ip56qf3Wo/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5333859299952437394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;By clicking on the link: 'Register', The screen redirected to the user registration page:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SgWtOhajD5I/AAAAAAAAAUg/3DjR4dTfS_I/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 228px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SgWtOhajD5I/AAAAAAAAAUg/3DjR4dTfS_I/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5333859798689714066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The fields validation check for user registration:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SgWtmH1-HUI/AAAAAAAAAUo/G-8CizKuRgY/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 329px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SgWtmH1-HUI/AAAAAAAAAUo/G-8CizKuRgY/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5333860204142271810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Typing valid user information into the User Registration form, then submit it by clicking on 'Register!' button:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SgWuJjQpTJI/AAAAAAAAAUw/J8q6KOI7ZLE/s1600-h/Picture+5.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 228px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SgWuJjQpTJI/AAAAAAAAAUw/J8q6KOI7ZLE/s400/Picture+5.png" alt="" id="BLOGGER_PHOTO_ID_5333860812797332626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The return result of new user created successfully:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SgWusunhxrI/AAAAAAAAAU4/elYbwZ3mzV0/s1600-h/Picture+7.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 179px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SgWusunhxrI/AAAAAAAAAU4/elYbwZ3mzV0/s400/Picture+7.png" alt="" id="BLOGGER_PHOTO_ID_5333861417141520050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The user record in the database OTBS:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SgWvC0Riv_I/AAAAAAAAAVA/DTk_qccuIP8/s1600-h/Picture+8.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 82px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SgWvC0Riv_I/AAAAAAAAAVA/DTk_qccuIP8/s400/Picture+8.png" alt="" id="BLOGGER_PHOTO_ID_5333861796617043954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is not easy to complete the above user registration page. I follow all the steps from charter 2 to charter 4 in the e-book 'RailsSpace', modify the contents to fit the need of the OTBS. Repeat of the debugging process by review the charters again and again.&lt;br /&gt;&lt;br /&gt;I have learn from charter 2 to 4 in the e-book 'RailsSpace' for user registration:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Changing the route for home page display&lt;/li&gt;&lt;li&gt;The uses cascading style sheet (CSS)&lt;/li&gt;&lt;li&gt;Do repeat yourself (DRY) works in Ruby on Rails (ROR)?&lt;/li&gt;&lt;li&gt;The uses of migration to create and modify table&lt;/li&gt;&lt;li&gt;The uses of model validations&lt;/li&gt;&lt;li&gt;Form debug&lt;/li&gt;&lt;li&gt;Integrate uses of MOV in ROR&lt;/li&gt;&lt;/ul&gt;By following the charter 6 to 7 in the e-book "RailsSpace", I create the advanced login page of  OTBS in my computer. By clicking on the link: 'Login', The screen redirected to the user login page:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SgfzvRgPirI/AAAAAAAAAVg/oMuW5AY7LIo/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 257px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SgfzvRgPirI/AAAAAAAAAVg/oMuW5AY7LIo/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5334500277121682098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Input of invalid user name and password, and select remember me option:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Sgf0IctJzXI/AAAAAAAAAVo/y7qxih-twU4/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 275px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Sgf0IctJzXI/AAAAAAAAAVo/y7qxih-twU4/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5334500709625351538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Input of valid user name and password, then redirect to 'Welcome' page:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sgf0iv7bd5I/AAAAAAAAAVw/8azoIKzGOI4/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 200px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sgf0iv7bd5I/AAAAAAAAAVw/8azoIKzGOI4/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5334501161462101906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The database record of the user:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/Sgf2HvX-pmI/AAAAAAAAAWA/okZqvBxj77M/s1600-h/Picture+6.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 74px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/Sgf2HvX-pmI/AAAAAAAAAWA/okZqvBxj77M/s400/Picture+6.png" alt="" id="BLOGGER_PHOTO_ID_5334502896480200290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The database record of the user's session:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sgf2LCNTMaI/AAAAAAAAAWI/ZEZkW1jsdX8/s1600-h/Picture+7.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 90px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sgf2LCNTMaI/AAAAAAAAAWI/ZEZkW1jsdX8/s400/Picture+7.png" alt="" id="BLOGGER_PHOTO_ID_5334502953075290530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have learn from charter 6 to 7 in the e-book 'RailsSpace' for advanced login :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Test programs&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Handle of login session&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Protecting pages&lt;/li&gt;&lt;li&gt;Login forwarding&lt;/li&gt;&lt;li&gt;Logout &amp;amp; clear password&lt;/li&gt;&lt;li&gt;Use of cookie functions to remember user passward&lt;/li&gt;&lt;li&gt;More secure cookie by a secure hashing algorithm&lt;/li&gt;&lt;/ul&gt;AJAX stands for Asynchronous JavaScipt and XML. AJAX includes several technologies:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;XHTML for the markup of Web pages&lt;/li&gt;&lt;li&gt;CSS for styling&lt;/li&gt;&lt;li&gt;Dynamic display and interaction using DOM&lt;/li&gt;&lt;li&gt;Data manipulation and interchange using XML&lt;/li&gt;&lt;li&gt;Data retrieval using XMLHttpRequest&lt;/li&gt;&lt;li&gt;JavaScript as the glue that meshes all this together&lt;/li&gt;&lt;/ul&gt;The Web page without being refreshed the contents of the entire page, when you retrieve data for a Web page by AJAX. In basic web architecture, when user clicks a link or submits a form, the form is submitted to the server. Then the server sends back a response new page to the user.&lt;br /&gt;When AJAX is used, it loads an AJAX engine in the background. The engine is written in JavaScipt and its responsibility is to both communicate with the web server and display the results to the user. The server returns an HTML fragment that contains the server's response and displays only the data that is new or changed as opposed to refreshing the entire page.&lt;br /&gt;&lt;br /&gt;Rails has a simple, consistent model to implements AJAX operations. Once the brower has render and displayed the initial web page different user actions trigger an AJAX operation:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Some trigger fires: by user clicking on a button or link, user making changes to the data on a form or in a field&lt;/li&gt;&lt;li&gt;The web client calls the server: A JavaScript method, XMLHttpRequest, send data associated with the trigger to an action handler on the server.&lt;/li&gt;&lt;li&gt;The server does processing: The server-side action handler does something with the data and returns an HTML fragment to the client.&lt;/li&gt;&lt;li&gt;The client receive the response: The client-side JavaScript, which Rails creates automatically, receives the HTML fragment and uses it to update a specified part of the current pages. &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-3841434922863366268?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/3841434922863366268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.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/5460860580884516379/posts/default/3841434922863366268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/3841434922863366268'/><link rel='alternate' type='text/html' href='http://lsc1111.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>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SgWsxfeUKJI/AAAAAAAAAUQ/a3ip56qf3Wo/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-901168698940514242</id><published>2009-05-05T00:28:00.000-07:00</published><updated>2009-05-10T21:47:16.897-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 26'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 26:</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&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;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;1. Choose ONE of the four ways to manage and develop integrated systems as listed below&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;I choose the &lt;span style="font-weight: bold;"&gt;3. Federated databases&lt;/span&gt;&lt;br /&gt;These are multi-tiered systems for load balancing and improving performance across a set of cooperative database servers by horizontally partitioning tables. Member servers can be at separate business sites and are configured to cooperate in processing database SQL requests, similar to clustered systems. Most large database vendors all have database products for implementing a federated system. Consider a comparison of federated vs fault tolerant clustered architectures as used by MySQL database products.&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;br /&gt;2. Summarise 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;The utility goals of develop integrated system are greater efficiency, effectiveness and competitiveness in organizations.  But the term of integration in another way means complex construct in technical, systems, organizations and strategic aspects. Most systems fail due to the lack of complex organizational factors. Most of the planning and resource focus on technical and strategic aspects of the information systems (IS). Today we implement an integrated system more balanced between technical, strategic and organizational analysis.&lt;br /&gt;&lt;br /&gt;Taken from Below (1987) and adapted by Thomas (1991):&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SgEWLqTn7dI/AAAAAAAAAUI/x-IpC-NS020/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 378px; height: 323px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SgEWLqTn7dI/AAAAAAAAAUI/x-IpC-NS020/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5332567823374347730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Before start of multi-tiered systems project, we need to collect and analysis:&lt;br /&gt;•    Historical documents – any related project, pass experience&lt;br /&gt;•    Organization culture – project handling, resource, budgeting&lt;br /&gt;&lt;br /&gt;Project start:&lt;br /&gt;•    Define objectives and scopes&lt;br /&gt;•    Select suitable solution and database vendors&lt;br /&gt;•    Grant approval from top management&lt;br /&gt;•    Budget&lt;br /&gt;•    Schedule&lt;br /&gt;•    Resource arrangement&lt;br /&gt;•    Detail project plan&lt;br /&gt;&lt;br /&gt;Implementation:&lt;br /&gt;•    Monitor project progress&lt;br /&gt;•    Review the performance and budget regularly&lt;br /&gt;•    Testing and evaluation&lt;br /&gt;•    Continue operation plan&lt;br /&gt;&lt;br /&gt;MySQL Database cluster allows us to set up a database shared between a number of machines in federated and fault tolerant models. The federated cluster in distributed architecture allows for load balancing, provides benefit in scalability. The cluster servers spread the load in almost linear fashion. The system can handle more transactions and faster response time. The fault tolerant clustered servers provide high availability. The redundant copies of data allow the system stay up, if one or some of machines go down.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;3. Edit TWO similar versions (include bibliography) of that summary to CSU Interact:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;a. post version A as a wiki page contribution&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The first post:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SgetaoACidI/AAAAAAAAAVQ/y-16B3GgSUk/s1600-h/Picture+5.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 169px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SgetaoACidI/AAAAAAAAAVQ/y-16B3GgSUk/s400/Picture+5.png" alt="" id="BLOGGER_PHOTO_ID_5334422956569430482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &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;/span&gt;.&lt;br /&gt;The final entry:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Sgetw9ufiZI/AAAAAAAAAVY/gbGWSbz_VNQ/s1600-h/Picture+6.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 229px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Sgetw9ufiZI/AAAAAAAAAVY/gbGWSbz_VNQ/s400/Picture+6.png" alt="" id="BLOGGER_PHOTO_ID_5334423340358535570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Reference&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Below, L. J. (1987). The meaning of integration. &lt;span style="font-style: italic;"&gt;In proceedings of the third european conference on automated manufacturing. UK: IFS publications&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Thomas, P. S. (1991). Implementing computer integrated manufacturing technology - an integrative framework. &lt;span style="font-style: italic;"&gt;Ph.D. Thesis, University of Northumbria, Unpublished.&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-901168698940514242?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/901168698940514242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/05/exercise-26.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/901168698940514242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/901168698940514242'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/05/exercise-26.html' title='Exercise 26:'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SgEWLqTn7dI/AAAAAAAAAUI/x-IpC-NS020/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-6233983192798684109</id><published>2009-05-04T01:42:00.000-07:00</published><updated>2009-05-05T00:19:56.410-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 25'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 25: M-commerce and the e-wallet: Innovation and mobile devices</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Explore ONE of the problems associated with mobile technology or their suppliers, from 1 to 4 below:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;1. What is meant by a location based service?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;2. Visit an airline Web site 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;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;3. 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;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;4. According to Nokia:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&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;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Why is a company like Nokia – &lt;a href="http://www.nokia.com/"&gt;http://www.nokia.com&lt;/a&gt; – described as having end-to-end expertise?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I select the problem: &lt;span style="font-weight: bold;"&gt;1. What is meant by a location based service?&lt;/span&gt;&lt;br /&gt;Location based service (LBS) is by knowledge of the location of the end user, to deliver relevant, timely and engaging content and information. LBS is an additional stream of revenue that can be generated from their investments in the fixed infrastructure for mobile network suppliers. The end user also advance in helping them to reduce confusion, improve the consumption experience and deliver high-quality service options (Rao &amp;amp; Minakakis, 2003).&lt;br /&gt;&lt;br /&gt;The location of the user traditionally is difficult to pinpoint and use due to its inherent dynamism and unpredictability. Today the new technologies integrated into lightweight mobile devices and terminals, pinpointing location become quickly dominant. The quick-moving technologies like GPS, mobile cell phone identification techniques and network triangulation allow carriers to zoom in on customer activity in defined physical location. Because of these capabilities going on more accessible, accurate and real-time, different service like LBS become possible (Rao &amp;amp; Minakakis, 2003).&lt;br /&gt;&lt;br /&gt;Different platforms such as PDAs and mobile phones integrated with the wireless network infrastructure, connect to different types of servers to back-end database with serveral technologies. LBS providers need to play attention on mixed solution in software, hardware, and wireless connectivity into a plan for serving LBS content  (Rao &amp;amp; Minakakis, 2003).&lt;br /&gt;&lt;br /&gt;Mobile network platforms for identification (Rao &amp;amp; Minakakis, 2003):&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sf_caiMDQrI/AAAAAAAAATo/MQDD6DH5_oI/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 256px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sf_caiMDQrI/AAAAAAAAATo/MQDD6DH5_oI/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5332222832242016946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Deliver focused services using information about customer location is extremely appealing. LBS is full of risks and caveats (Rao &amp;amp; Minakakis, 2003):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There has been much of infeasible and overstate advertising&lt;/li&gt;&lt;li&gt;Limitations of the technologies and LBS is not widespread&lt;/li&gt;&lt;li&gt;Potentially intrude privacy of the customer&lt;/li&gt;&lt;li&gt;Not a proved effort in developing maintainable business models that sufficiently address and enhance the customer experience.&lt;/li&gt;&lt;/ul&gt;LBS provide a new source of revenue opportunity for multiple stakeholders in the mobile area. Under the existing technical limitations like device form factors and the speed of data access, and combined with human restriction like reduced consideration sets and the need for speed and convenience, LBS must deliver relevant, targeted, and timely information to consumers at right time and place of their choice. The competitive advantage between the providers will enhance the grow in LBS. They would focus on superior customer experiences, distinctive, secure and high quality service and their branding (Rao &amp;amp; Minakakis, 2003).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Reference&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Rao, B. and Minakakis, L. (2003), Evolution of mobile location-based services, &lt;span style="font-style: italic;"&gt;Communications of the ACM, 46,&lt;/span&gt; 61-65.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-6233983192798684109?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/6233983192798684109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/05/exercise-25-m-commerce-and-e-wallet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/6233983192798684109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/6233983192798684109'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/05/exercise-25-m-commerce-and-e-wallet.html' title='Exercise 25: M-commerce and the e-wallet: Innovation and mobile devices'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sf_caiMDQrI/AAAAAAAAATo/MQDD6DH5_oI/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-6217902439001776808</id><published>2009-05-03T06:18:00.000-07:00</published><updated>2009-05-10T21:18:52.260-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 24'/><title type='text'>Exercise 24: Virtual business worlds and cyberagents</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &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;br /&gt;&lt;br /&gt;1. Differentiate the various types of software agents.&lt;/span&gt;&lt;br /&gt;Software agent is a single software that works for a user or other program in a relationship of agency. The term 'agent' describes a software abstraction, an idea or a concept that similar to the methods, functions and objects in object oriented programming. The agent provides a easy and powerful way to describe a complex software entity that capable of working with a certain degree of autonomy in order to achieve tasks on behalf of its user. Various type of software agents (Wikipedia 2009):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Intelligent software agents&lt;/span&gt; are a branch of artificial intelligence research. The intelligent agents include ability to adapt and learn. Ability to adapt means sensing the environment and reconfiguring in response by choice of alternative problem solving rules or algorithms.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Autonomous agents&lt;/span&gt; are software agents that claim to be autonomous. It is self contained and capable of making independent decisions, and taking actions to satisfy self goals that upon their sense environment.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Distributed agents&lt;/span&gt; are designed to be very loosely coupled and easy to execute as independent threads on distributed processors.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Multi-agent systems&lt;/span&gt; are several agents work together or collaborate with other agents. Data is decentralized and execution is asynchronous in mult-agent systems.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Mobile agents&lt;/span&gt; are agent that moves itself include its execution state from one to another machine to continue execution there. Mobile agents can be used to gather system information, taking files backup, monitoring network throughput or checking of available resources and moderating the resource utilization.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Fuzzy agents&lt;/span&gt; are software agent that implements fuzzy logic. They interact with their environment through an adaptive rule-base and can be considered as a kind of intelligent agent.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Haag (Haag, 2006) suggest the following four essential types of intelligent software agents:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Buyer agents &lt;/span&gt;also called 'shopping bots', they search around the network to retrieve information about goods and services. The Website offer a list of products that you may like to buy such as Amazon.com or eBay.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;User agents&lt;/span&gt; or personal agents are intelligent agents that take action on your behalf. They perform the tasks for you: check e-email, play computer games, assemble customized news reports, find information, fill out forms on the Web automatically, scan Web page and discuss topics with you.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Monitoring-and-surveillance(predictive) agents&lt;/span&gt; are used to observe and report on equipment, usually computer systems. They may keep track the inventory levels, price of competitors and relay them back to the company.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Data mining agents &lt;/span&gt;uses information technology to find trends and patterns in a abundance of information from many sources that come from different systems. Users can seek and sort the information in any way they want.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;2. Describe how techniques such as artificial intelligence and statistical techniques are used in software agents.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The artificial intelligence technique is used in intelligent software agents and Fuzzy agents for capable in ability to adapt and learn. The ability to adapt means sensing the environment and reconfiguring in response, through the select of alternative problem-solving-rules or algorithms, or through the discovery of problem solving strategies. The ability to learn means learning through trial-and-error, then capable to introspection and analysis of behavior and success, capable to abstract and generalize.&lt;br /&gt;&lt;br /&gt;The statistical technique is used in mobile agents in gather system information, monitoring network throughput, check resources avaliablity and moderating the resource utilization. The statistical technique is used intensively in data mining agents for information collection and analysis.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;3. Identify various activities in e-commerce where software agents are currently in use.&lt;/span&gt;&lt;br /&gt;Buyer agents are widely used in e-commerce such as Amazon.com and eBay. Their Website offer a list of products for users to buy. They also use the collaborative filtering technology to show similar products that customers who did the search looked at.&lt;br /&gt;&lt;br /&gt;Data mining agents are also used e-commerce for collecting data to promote e-commerce activities. Data collect include the users' browsing history, keywords used in search engines and hit rate of Web page etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;4. Computing ethics and bot programming case study: rocky&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;a. Get an account username and password from the lecturer to LC_MOO at &lt;/span&gt;&lt;a style="color: rgb(153, 51, 0); font-weight: bold;" href="http://ispg.csu.edu.au:7680/"&gt;http://ispg.csu.edu.au:7680&lt;/a&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt; and login to the Welcome Lobby.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;b. Hold a 5-minute discussion with Rocky on a special topic. Commands: act rocky (start bot) hush rocky (stop bot)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;c. Rocky is an ELIZA-like bot. Report your findings.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I had login the LC_MOO, activate Rocky and tell with him. Although the answers and the questions of Rocky are not very logical, I still feel like talking with some one else.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SgeiUrt8LVI/AAAAAAAAAVI/NqGnrRsI47Y/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 347px; height: 400px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SgeiUrt8LVI/AAAAAAAAAVI/NqGnrRsI47Y/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5334410759860137298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Eliza first appeared in the year 60's. It is an automated psychoanalysis program based on the psychoanalysis program based on the psychoanalytic principle of repeating what the patient says and drawing introspection out the patient without adding content from the analyst. Some people actually mistook her for human. If the conversation is limit to talking about yourself and your like, the illusion of intelligence of Eliza work best. But computer program shouldn't be used as a substitute for a human function that requires interpersonal respect, understanding and love (Lee, 1997).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Reference&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Hagg, S. (2006), Management information systems for the information age, 224-228.&lt;/li&gt;&lt;li&gt;Lee, J.A.N. (1997), Eliza, Retrieved at &lt;a href="http://courses.cs.vt.edu/%7Ecs3604/lib/Ethics/eliza.html"&gt;http://courses.cs.vt.edu/~cs3604/lib/Ethics/eliza.html&lt;/a&gt; on 11th May, 2009.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Wikipedia (2009), Software agent, Retrieved at &lt;a href="http://en.wikipedia.org/wiki/Software_agent"&gt;http://en.wikipedia.org/wiki/Software_agent&lt;/a&gt; on 4th May, 2009.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-6217902439001776808?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/6217902439001776808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/05/exercise-24-virtual-business-worlds-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/6217902439001776808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/6217902439001776808'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/05/exercise-24-virtual-business-worlds-and.html' title='Exercise 24: Virtual business worlds and cyberagents'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SgeiUrt8LVI/AAAAAAAAAVI/NqGnrRsI47Y/s72-c/Picture+3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-392811900043375814</id><published>2009-05-02T20:24:00.000-07:00</published><updated>2009-05-03T06:16:58.612-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 23'/><title type='text'>Exercise 23: Search mechanisms</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;1. What is a spider? What does it do?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Spider is a program that used by search engines to fatch and analysis documents in the Internet. This action is also called 'crawling'. The home page of the Web sites will be found and indexed by search engines, to get more information it is necessary to conduct a further search on the site in deep. Different from traditional information retrieval, both content and structure of the Web site are critical for Web searching. It is because both of them are important in the Web sites ranking (Paula 2005).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;2. What is a meta-search engine? Provide some examples.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Accept search key from users and then transmits the search request to several individual search engines and their databases of web pages. Meta-search engines do not own their search database of Web pages,  (UC Berkeley, 2008).&lt;br /&gt;&lt;br /&gt;Examples of Meta-searchers:&lt;br /&gt;Clusty: &lt;a href="http://clusty.com/"&gt;clusty.com&lt;/a&gt;&lt;br /&gt;Dogpille: &lt;a href="http://www.dogpile.com/"&gt;www.dogpile.com&lt;/a&gt;&lt;br /&gt;SurWax: &lt;a href="http://www.surfwax.com/"&gt;www.surfwax.com&lt;/a&gt;&lt;br /&gt;Copernic Agent: &lt;a href="http://www.copernic.com/"&gt;www.copernic.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;3. How can you get your site listed at major search sites; and how could you improve your site ranking?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Get your site listed at major search sites and improve your site ranking (Yahoo, N.A.):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Subscript your Web site to major search sites for them easy to reach your Web site.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Declare the key terms that your users will search on to find content like yours carefully. Use those key terms to guide the text and construct your web pages.&lt;/li&gt;&lt;li&gt;As users are likely to click the link if the title matches their search, then choose terms for the title that match the concept of your document.&lt;/li&gt;&lt;li&gt;Use meta-tag as a description and wirte the decription accurately and carefully. Make sure the document title and description attract the interest of the user.&lt;/li&gt;&lt;li&gt;Use 'keyword' in meta-tag to list key words for the document.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Keep relevant text and links in HTML. An HTML site map, with a link from the welcome page, can help to make sure all your pages are crawled by the search engines.&lt;/li&gt;&lt;li&gt;Use ALT text for graphics for good page design to accommodate text browers or visually impaired visitors.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Reference&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Paula, Y. (2005). &lt;span style="font-style: italic;"&gt;The effective use of search engines on the internet: Nursing Standard, 19&lt;/span&gt;, 56-64.&lt;/li&gt;&lt;li&gt;UC Berkeley (2008), Meta-search engines, UC Berkeley - Teaching Library Internet Workshops, Retrieved at &lt;a href="http://www.lib.berkeley.edu/TeachingLib/Guides/Internet/MetaSearch.html"&gt;http://www.lib.berkeley.edu/TeachingLib/Guides/Internet/MetaSearch.html &lt;/a&gt;on 3rd May, 2009.&lt;/li&gt;&lt;li&gt;Yahoo (N.A.), How do i improve the ranking of my web site in the search results, Yahoo, Retrieved at &lt;a href="http://help.yahoo.com/l/us/yahoo/search/ranking/ranking-02.html"&gt;http://help.yahoo.com/l/us/yahoo/search/ranking/ranking-02.html&lt;/a&gt; on 3rd May, 2009.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-392811900043375814?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/392811900043375814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/05/exercise-23-search-mechanisms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/392811900043375814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/392811900043375814'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/05/exercise-23-search-mechanisms.html' title='Exercise 23: Search mechanisms'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-8953242933016016474</id><published>2009-05-01T00:38:00.000-07:00</published><updated>2009-05-03T02:04:33.027-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 22'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 22</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;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;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Customer Relationship Management (CRM)&lt;/span&gt; is a process or methodology used to learn more about the needs and behaviors of customers, in order to build better relationships with them. CRM help to learn a lot of information about customers, sales, marketing effectiveness, responsiveness and market trends. CRM software helps businesses gain insight into the behavior and the value of their customers by using technology and human resources (Knowledge Hills, 2004).&lt;br /&gt;&lt;br /&gt;Advantage of using CRM software (Knowledge Hills, 2004):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Provide better customer service&lt;/li&gt;&lt;li&gt;Increase customer revenues&lt;/li&gt;&lt;li&gt;Discover new customers&lt;/li&gt;&lt;li&gt;Sell products more effectively&lt;/li&gt;&lt;li&gt;Help to close deals faster by salesman&lt;/li&gt;&lt;li&gt;Call centers become more efficient&lt;/li&gt;&lt;li&gt;Marketing and sales processes become simply&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The CRM software are divided into different area (Knowledge Hills, 2004):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Contact Management - stores, tacks and manages contacts, contracts and agreements&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Lead Management - manages and tracks forecast sales leads, helps to understand and improve conversion rates&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Self service CRN - customer interaction, automation of email, call logs, web site analytics, campaign management through Web&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Survey Management - automates an electronic surveys, polls, questionnaires and capable understand customer preferences&lt;/li&gt;&lt;li&gt;Call Center&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Help Desk&lt;/li&gt;&lt;li&gt;Distribution Management&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Business-to-Business (B2B) e-commerce&lt;/span&gt; between supplies and customers in Internet is conducted by industry sponsored marketplaces and through private exchanges set up by large companies. Certainly, companies also sell their product to business customer through their own Web sites. Most of the companies use such marketplaces mainly to purchase commodity goods, manage their supply chains and conduct indirect purchase that not related to their main business. Different from business-to-consumer (B2C ) e-commerce, most B2B commerce is done through negotiated contracts. It allows the seller to expect and plan how much the buyer will purchase (Net Industries, 2009).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Supply-Chain Management (SCM)&lt;/span&gt; is the management of multiple relationships across the supply chain. It is a network of multiple businesses and relationships. SCM provides the opportunity to capture the synergy of intra and intercompany integration and management. SCM is integrate the key business process from end user to original suppliers that provides products, services and information that add value for customer and other stakeholders (Lambert &amp;amp; Cooper, 2000).&lt;br /&gt;&lt;br /&gt;The five basic component of SCM (Wailgum &amp;amp; Worthen, 2008):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Plan - strategic portion of SCM. SCM planning develop a set of metrics to montior the supply chain, make it efficiency, less costs and higher deliver quality and value to customers.&lt;/li&gt;&lt;li&gt;Source - choose suppliers to deliver the goods and services they need to create their product. SCM need to develop a set of pricing, delivery and payment process with suppliers&lt;/li&gt;&lt;li&gt;Make - the manufacturing steps. SCM schedule the necessary for production, testing, packaging and delivery.&lt;/li&gt;&lt;li&gt;Deliver - refer to as logistics: receipt of orders from customers, develop a network of warehouse, pick carriers to get products to customers and set up an invoicing system to receive payment.&lt;/li&gt;&lt;li&gt;Return - receiving defective and excess products back from the customers who have problem with delivered products.&lt;/li&gt;&lt;/ol&gt;The SCM software provides functions of the above basic steps in SCM, but no one has a complete package that is right for every company. As each industry's supply chain has a unique set of chanllenges. And if employees bypass the supply chain systems and try to manage things manually such as using the fax machine or spreadsheets, then even the most expensive systems will provide an imcomplete picture of what is happening in the SCM of the company (Wailgum &amp;amp; Worthen, 2008).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Relationships between SCM, CRM &amp;amp; B2B:&lt;/span&gt;&lt;br /&gt;Many SCM applications are linked to the information store inside enterprise resource planning (ERP) software. The ERP software may include the CRM systems inside. Theoretically the company could assemble the information it needs to feed the SCM. The SCM applications benefit from having the source from CRM to go to for up-to-date information. Applications that simply automate the logistics aspects of SCM are less dependent upon gathering information from around the company. The rise and importance of CRM systems, more companies puts more pressure to integrate all enterprisewide software packages together (Wailgum &amp;amp; Worthen, 2008).&lt;br /&gt;&lt;br /&gt;Before the come of the Internet, the SCM softwares are limited to improving theire ability to predict demand from customers and make their own supply chains run more smoothly. Now a day, companies can connect their supply chain with their suppliers and customers together in a single network. That optimizes costs and opportunities for everyone invole into the business. This make the exploseion of the B2B idea in the Internet. Of course, it isn't quite happy to most companies. But today most companies share at least some data with their supply chain partners. The supply chain in most industries is very important for their life, so they don't want to show much of them (Wailgum &amp;amp; Worthen, 2008).&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Knowledge Hills (2004), Customer relationship management tutorial, &lt;span style="font-style: italic;"&gt;Knowledge Hills, Retrieved at &lt;a href="http://crmtutorial.com/CRM/CRM.aspx"&gt;http://crmtutorial.com/CRM/CRM.aspx&lt;/a&gt;&lt;/span&gt; on 1st May, 2009.&lt;/li&gt;&lt;li&gt;Lambert, D. M. and Cooper M. C. (2000), Issues in supply chain management,&lt;span style="font-style: italic;"&gt; Elsevier Science Inc., 29, 65-83&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Net Industries (2009), Business-to-business (b e-commerce (2b) - b2b e-commerce quantified, b2b e-commerce in early adopter stage, customer server, Net Industries, Retrieved at &lt;a href="http://ecommerce.hostip.info/pages/141/Business-Business-B2B-E-Commerce.html"&gt;http://ecommerce.hostip.info/pages/141/Business-Business-B2B-E-Commerce.html&lt;/a&gt; on 3rd May, 2009&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Wailgum, T and Worthen, B. (2008), Supply chain management definition and solutions, CIO, Retrieved at &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; on 3rd May, 2009.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-8953242933016016474?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/8953242933016016474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/05/exercise-22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/8953242933016016474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/8953242933016016474'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/05/exercise-22.html' title='Exercise 22'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-4655471333269328670</id><published>2009-04-30T23:45:00.000-07:00</published><updated>2009-05-04T09:05:23.116-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 21'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 21: Shopping cart specification</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Develop the class diagram for the following shopping cart specifications:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&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, e-mail 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 credit card object contains the secure method for checking that the charge is authentic.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Shopping cart class diagram:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sf8SNGaVvDI/AAAAAAAAATg/PUV45Te52Ro/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 229px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sf8SNGaVvDI/AAAAAAAAATg/PUV45Te52Ro/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5332000500098645042" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/Sfqj7WX4EaI/AAAAAAAAATY/SR-InxZsad8/s1600-h/Picture+1.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-4655471333269328670?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/4655471333269328670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-21-shopping-cart-specification.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/4655471333269328670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/4655471333269328670'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-21-shopping-cart-specification.html' title='Exercise 21: Shopping cart specification'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sf8SNGaVvDI/AAAAAAAAATg/PUV45Te52Ro/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-2046389903572912381</id><published>2009-04-29T20:52:00.000-07:00</published><updated>2009-04-30T02:51:28.428-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 20'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 20: Modeling with UML</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;Use Case, 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;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Use Case diagram&lt;/span&gt;&lt;br /&gt;Use cases are used in requirements elicitation and system analysis stages in a project. It uses to represent the functionality of the system. Use cases focus on the behavior of the system in an external point of view. It creates a visible result for an actor to describe a function provided by the system. In the definition of the boundary of the system, it identifies actors and use cases results. It differntiates the tasks accomplished by the system and the tasks accomplished by the environment. The actors are outside the boundary of the system, and the use cases are resided inside the boundary of the system (Bruegge &amp;amp; Butoit, 2004).&lt;br /&gt;&lt;br /&gt;The use case diagram below describe the functionality of a simple watch system. the WatchUser actor may either consult the time on her watch with the ReadTime or SetTime use cases. However, only the WatchRepairPerson actor can change the battery of the watch (with the ChangeBattery use case):&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SflGcI_m1WI/AAAAAAAAASY/LWn9_yGNHgc/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 388px; height: 333px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SflGcI_m1WI/AAAAAAAAASY/LWn9_yGNHgc/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5330369083234243938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Class diagram&lt;/span&gt;&lt;br /&gt;Class diagram is used to describe the structure of the system. Class is abstract, specify the common structure and behavior of a set of object. An object is an instance of a class that is created, modified and destroyed during the execution of the system. Class diagram describe the system in terms of objects, class, attributes, operations and their association (Bruegge &amp;amp; Butoit, 2004).&lt;br /&gt;&lt;br /&gt;The class diagram below describe the elements of all the watches of the SimpleWatch class. These watch objects all have an association to an object of the PushButton class, an object of the Display class, an object of the Time class and an object of the Battery class. The numbers on the ends of associations denote the number of links each SimpleWatch object can have with an object of a given class:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SflKVYmTqOI/AAAAAAAAASg/MGBLBHLRaug/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 122px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SflKVYmTqOI/AAAAAAAAASg/MGBLBHLRaug/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5330373365210523874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Sequence diagram&lt;/span&gt;&lt;br /&gt;The sequence diagram also called interaction diagrams. It is used to formalize the dynamic behavior of the system and to visualize the communication between objects. It is useful for identifying additional objects that participate in the use cases. It also represents the interactions that take place among objects. It focuses on the messages exchanged between objects as a result of external events created by actors (Bruegge &amp;amp; Butoit, 2004).&lt;br /&gt;&lt;br /&gt;The below sequence diagram for the SetTime use case of the SimpleWatch system. The left most column is the WatchUser actor who initates the use case. Labeled arrows represent stimuli that an actor or an object sends to other objects:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SflQvAhuJDI/AAAAAAAAASo/Pm86rH4NeAE/s1600-h/Picture+4.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 203px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SflQvAhuJDI/AAAAAAAAASo/Pm86rH4NeAE/s400/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5330380402495202354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Collaboration diagram&lt;/span&gt;&lt;br /&gt;Collaboration diagram describes the same information as sequence diagram. It represents the sequence of messages by numbering the interactions. It removes the geometrical constraints on the objects and results in a more compact diagram. Then the sequence of message becomes more difficult to follow (Bruegge &amp;amp; Butoit, 2004).&lt;br /&gt;&lt;br /&gt;The collaboration diagram is equivalent to the sequence diagram in the above:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SfljQxDubwI/AAAAAAAAATA/vNb47zv7ze0/s1600-h/Picture+7.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 273px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SfljQxDubwI/AAAAAAAAATA/vNb47zv7ze0/s400/Picture+7.png" alt="" id="BLOGGER_PHOTO_ID_5330400773667712770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;State chart diagram&lt;/span&gt;&lt;br /&gt;State chart diagram describes the dynamic behavior of an individual object in a number of states and transitions between these states. A state represents a particular set of values for an object. When a state is given, a transition will represents a future state of the object can move to and the conditions associated with the change of state (Bruegge &amp;amp; Butoit, 2004).&lt;br /&gt;&lt;br /&gt;The state chart below for the SimpleWatch represents different information than the sequence diagram:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SflUU5vsrWI/AAAAAAAAASw/QuBsPoVW8Wg/s1600-h/Picture+5.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 276px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SflUU5vsrWI/AAAAAAAAASw/QuBsPoVW8Wg/s400/Picture+5.png" alt="" id="BLOGGER_PHOTO_ID_5330384352044690786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Activity diagram&lt;/span&gt;&lt;br /&gt;Activity diagram describes the behavior of a system in term of activities. Activities are elements that represent the execution of a set of operations. The complete of these operations are trigger a transition to another activity. Activity diagram is like the flowchart diagrams that can be used to represent control flow (Bruegge &amp;amp; Butoit, 2004).&lt;br /&gt;&lt;br /&gt;The activity diagram below represent the behavior in terms of activities and their precedence constraints. The completion of an activity triggers an output transition, which in turn may initiate another activity:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SflYvgjqV0I/AAAAAAAAAS4/r3qiSPqSigk/s1600-h/Picture+6.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 177px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SflYvgjqV0I/AAAAAAAAAS4/r3qiSPqSigk/s400/Picture+6.png" alt="" id="BLOGGER_PHOTO_ID_5330389207186298690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Component diagram&lt;/span&gt;&lt;br /&gt;Component diagram depicts how components are linked together to form larger components and or software systems (Bruegge &amp;amp; Butoit, 2004).&lt;br /&gt;&lt;br /&gt;The component diagram bellow is the WebServer component and its containing classes in it:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sfl0VEs_IDI/AAAAAAAAATQ/haqfvpe2fPM/s1600-h/Picture+9.png"&gt;&lt;img style="cursor: pointer; width: 312px; height: 192px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sfl0VEs_IDI/AAAAAAAAATQ/haqfvpe2fPM/s400/Picture+9.png" alt="" id="BLOGGER_PHOTO_ID_5330419539358195762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Deployment diagram&lt;/span&gt;&lt;br /&gt;Deployment diagram is used to describe the relationship among run-time components and hardware nodes. Components are self-contained entities that provide services to other components or actors. Nodes are represented by boxes containing component icons in the Deployment diagram (Bruegge &amp;amp; Butoit, 2004).&lt;br /&gt;&lt;br /&gt;The deployment diagram below represent the allocation of components to different nodes and the dependencies among components. The Web browsers on PCs and Macs can access a WebServer that provides information from a Database:&lt;br /&gt;&lt;img src="file:///Users/leungdennis/Library/Caches/TemporaryItems/moz-screenshot.jpg" alt="" /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SflsPNmHABI/AAAAAAAAATI/XwfYAT3wX6Y/s1600-h/Picture+8.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 252px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SflsPNmHABI/AAAAAAAAATI/XwfYAT3wX6Y/s400/Picture+8.png" alt="" id="BLOGGER_PHOTO_ID_5330410642573033490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Reference&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Bruegge, B. and Butoit, A. H. (2004), &lt;span style="font-style: italic;"&gt;Object-oriented software engineering: using uml, patterns, and java,&lt;/span&gt; Prentice Hall.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-2046389903572912381?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/2046389903572912381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.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/5460860580884516379/posts/default/2046389903572912381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/2046389903572912381'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-20-modeling-with-uml.html' title='Exercise 20: Modeling with UML'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SflGcI_m1WI/AAAAAAAAASY/LWn9_yGNHgc/s72-c/Picture+2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-416930239089724967</id><published>2009-04-28T00:38:00.000-07:00</published><updated>2009-04-29T20:01:11.611-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 19'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 19: TP monitors and transaction protocols</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="COLOR: rgb(153,51,0); FONT-WEIGHT: bold"&gt;1. Give a description in your own words of the ACID properties of a transaction.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ACID is combine with the words: Atomicity, Consistency, Isolation and Durability. ACID is properties sets that sure the database transactions work reliable. In the database architecture, a transaction is a single logical process or a set of sequential process to preform a task. For an example, transfer of funds from one bank account to another is called a transaction process. Although it might involve multiple individual operations in different bank accounts within the database (Wikipedia, N.A.).&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Atomicity&lt;/span&gt; - the DBMS ensure either all of the tasks of a transaction are done or none of them.&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Consistency&lt;/span&gt; - before start and over of a transaction, ensure the database remains in a consistent state.&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Isolation&lt;/span&gt; - the data in an intermediate state during the transaction processing cannot be accessed or saw by other operations.&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Durability&lt;/span&gt; - After the transaction have been done successful, that transaction will become persistent and not be undone.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="COLOR: rgb(153,51,0)"&gt;2. Describe a TP monitor environment. How can a TP monitor stop an operating system being overwhelmed?&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;TP monitor provides an execution environment for resource managers and applications. TP monitor launches a server to perform the request, when requests arrive from local or remote clients. Before creating a server for a request, the TP monitor authorizes the client to the service. The client must be authenticated by the TP monitor as a particular person or group of persons. TP monitor also records the security check or security violation in an audit trail (Gray &amp;amp; Reuter, 1993). TP monitor handle two important processes (Ince, 2002):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Manage the concurrent execution of threads and processes, ensure the ACID properties in a transaction&lt;/li&gt;&lt;li&gt;Ensure the consistent update in a share update transcation of data when other transaction wsih to acces the shared data.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;TP monitor does not replace the operating system completely, though that might be possible. The operating system can handle batch, time-sharing and communication. TP monitor trake care of online transaction processing (OLTP) and distributed transaction(Gray &amp;amp; Reuter, 1993).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="COLOR: rgb(153,51,0); FONT-WEIGHT: bold"&gt;3. What is difference in load balancing with traditional and transactional MOM, RPC and conversations?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Load balancing with traditional and transactional:&lt;/span&gt;&lt;br /&gt;A load-balancing solution connects multiple servers work together, make them look like a single and high-powered network resource to those accessing the system. It does this by selectively forwarding connections to the many servers arrayed behind it in a equitable manner, according to the operational health of the server and the nature of the query (Intel, 2000).&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;&lt;/span&gt;&lt;br /&gt;The traditional load balancing solutions check the health of the server, in order to determine which machines are able to handle the incoming request. This can be traced either by testing the server with an artifical client, or by sending it a series of scripts that can try out critical pages and look at the responses. This simply responding to occasional health tests is no longer adequate for today's right content in a timely manner (Intel, 2000).&lt;br /&gt;&lt;br /&gt;The transactional load-balancing (or transactional content awareness) solution monitor actual transactions on an ongoing basis. The more important the transaction,the more necessary it is that both parties involved are certain it has been completed. An automated teller machine (ATM) system, valuable exchanges of money and information, it is important to be sure that transactions have been completed properly. Load balancing must be transaction-aware (Intel 2000).&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;RPC and conversations:&lt;/span&gt;&lt;br /&gt;Remote procedure call (RPC) is a interprocess communication technique. RPC allows communication between client and server software (Microsoft, 2000). The general communication of RPC is very simple and patterned like human conversation habits (HXP, 2004). RPC work in computers and use network for communication channel, but conversations are communication between people and use air for media channel.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SfgVtCcorfI/AAAAAAAAASI/hnEG2kPKpzo/s1600-h/Picture+1.png"&gt;&lt;img style="WIDTH: 371px; HEIGHT: 400px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5330034022488255986" border="0" alt="" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SfgVtCcorfI/AAAAAAAAASI/hnEG2kPKpzo/s400/Picture+1.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;RPC works over the Internet, Intranet and local host:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SfgY00KplbI/AAAAAAAAASQ/5UNdp0ctZ5w/s1600-h/Picture+2.png"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 219px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5330037454628558258" border="0" alt="" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SfgY00KplbI/AAAAAAAAASQ/5UNdp0ctZ5w/s400/Picture+2.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="COLOR: rgb(153,51,0)"&gt;4. Why is a two-phase commit protocol better than a one-phase atomic commit protocol?&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;The two-phase commit (2PC) ensure that either all the databases are udpated or none of them (Webopedia, N.A.): &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="FONT-WEIGHT: bold"&gt;1st phase&lt;/span&gt;: requested changes of the database by a transaction are initially stored temporarily by each database. The transaction monitor and issues a pre-commit command to each database which requires an acknowledgment (Webopedia, N.A.). &lt;span style="font-size:0;"&gt;&lt;span style="font-size:0;"&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Voting phase&lt;/span&gt; which ensure that all sites are ready to commit (Veda &amp;amp; Mittal, 2004).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="FONT-WEIGHT: bold"&gt;2nd phase:&lt;/span&gt; If the monitor receives the proper response from each database, the monitor issues the commit command. The commit command causes all database to simultaneously make the transaction permanent changes (Webopedia, N.A.). &lt;span style="FONT-WEIGHT: bold"&gt;Decision phase&lt;/span&gt; which ensure uniformity at abort or commit at all sites &lt;span style="font-size:0;"&gt;&lt;span style="font-size:0;"&gt;(Veda &amp;amp; Mittal, 2004).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;The one-phase commit (1PC) protocol overlaps the voting phase with the execution of transaction and just has a decision phase. The Implicit Yes Voting and the Coordinate Log are implemented in the 1PC protocol. 1PC can not the deferred consistency constraints &lt;span style="font-size:0;"&gt;&lt;span style="font-size:0;"&gt;(Veda &amp;amp; Mittal, 2004).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2PC is better than 1PC&lt;span style="font-size:0;"&gt;&lt;span style="font-size:0;"&gt; (Veda &amp;amp; Mittal, 2004)&lt;/span&gt;&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ensures atomicity even in deferred constraints&lt;/li&gt;&lt;li&gt;Ensures independent recovery of all sites&lt;/li&gt;&lt;li&gt;As it takes place in 2 phases, it can handle network failures, disconnections and in their presence assure atomicity that 1PC cannot.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Reference&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Gray, J. and Reuter, A. (1993), Transaction processing: concepts and techniques, &lt;span style="FONT-STYLE: italic"&gt;Morgan Kaufmann Publishers, Inc. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:0;"&gt;HXP (2004), Rpc - remote procedure call, &lt;/span&gt;&lt;span style="FONT-STYLE: italic"&gt;Healthcare Xchange Protocol, Retrieved at &lt;a href="http://hxp.sourceforge.net/rpc.html"&gt;http://hxp.sourceforge.net/rpc.html&lt;/a&gt; on 29th April, 2009. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="FONT-STYLE: italic"&gt;Ince, D. (2004), Developing distributed and e-commerce applications, 2nd edition, Addison-Wesley.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Intel (2000), Transactional load-balancing systems: delivering true server availability, &lt;span style="FONT-STYLE: italic"&gt;Intel.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Microsoft (2000), Remote procedure call,&lt;span style="FONT-STYLE: italic"&gt; Microsoft TechNet, Retrieved at &lt;a href="http://technet.microsoft.com/en-us/library/cc958781.aspx"&gt;http://technet.microsoft.com/en-us/library/cc958781.aspx&lt;/a&gt; on 29th April, 2009.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Veda, A. and Mittal, K. (2004), Project report: one and two phase commit protocols, &lt;span style="FONT-STYLE: italic"&gt;Kanwal Rekhi School of Information Technology. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="FONT-STYLE: italic"&gt;Webopedia (N.A.), Two-phase commit, Webopedia, Retrieved at &lt;a href="http://www.webopedia.com/TERM/T/two_phase_commit.html"&gt;http://www.webopedia.com/TERM/T/two_phase_commit.html&lt;/a&gt; on 29th April, 2009. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;Wikipedia (N.A.), Acid, &lt;span style="FONT-STYLE: italic"&gt;Wikipedia, Retrieved at &lt;a href="http://en.wikipedia.org/wiki/ACID"&gt;http://en.wikipedia.org/wiki/ACID&lt;/a&gt;&lt;/span&gt; on 28th April, 2009.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-416930239089724967?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/416930239089724967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-19-tp-monitors-and-transaction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/416930239089724967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/416930239089724967'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-19-tp-monitors-and-transaction.html' title='Exercise 19: TP monitors and transaction protocols'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SfgVtCcorfI/AAAAAAAAASI/hnEG2kPKpzo/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-2538855194214975482</id><published>2009-04-28T00:35:00.000-07:00</published><updated>2009-05-05T02:32:17.912-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><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-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&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 Iowa. The code and sample output below are worth a look. Report your findings.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I download the threaddemo.py from the CSU Website and run it in my Mac. Three samples result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sf_6fiwJDeI/AAAAAAAAAUA/F3y198Bf8VI/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 225px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sf_6fiwJDeI/AAAAAAAAAUA/F3y198Bf8VI/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5332255903641570786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I ran the program for several times, the results are similar but different. The time taken for each running of the program are slightly different. The running time of 10 tasks thread are different by system generated randomly. The program only allow 3 tasks running concurrently. When a task completed, another task will start. The tasks running like a jobs queue in FIFO model.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-2538855194214975482?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/2538855194214975482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.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/5460860580884516379/posts/default/2538855194214975482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/2538855194214975482'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-18-threading-demonstration-in.html' title='Exercise 18: Threading demonstration in Python'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sf_6fiwJDeI/AAAAAAAAAUA/F3y198Bf8VI/s72-c/Picture+3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-5563356262683280178</id><published>2009-04-27T08:26:00.000-07:00</published><updated>2009-04-29T20:58:53.190-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 17'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 17: Concurrency terms</title><content type='html'>&lt;span style="color: rgb(153, 51, 0); font-weight: bold;font-size:130%;" &gt;Find definitions for eight terms and concepts used in threaded programming:&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;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;1. Thread Synchronisation&lt;/span&gt;&lt;br /&gt;A thread may execute process with multipe objects, as well as multiple threads may attempt to execute processes that involve a single object. Thread synchronisation is a process by which threads interact to check the status of objects (Bak, 2000). In thread applications, synchroize individual threads with other parts of program is needed. The unstructured nature of multithreaded programming and the structured order of synchronous processing are compromised by Thread synchronisation (MSDN, N.A.).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;2. Locks&lt;/span&gt;&lt;br /&gt;An object may accesses by multiple threads, to prevent all but one thread from executing a process to an particular object. Locked is involves to allow only one thread is permitted to operate on that object. (Bak, 2000).  Most server software provide two types of locks for optimize the locking process, they are read lock and write lock (Ince, 2002).&lt;br /&gt;&lt;br /&gt;Flowchart of object locking (Bak, 2000):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;step 31: threaddetemines whether the object is locked&lt;/li&gt;&lt;li&gt;step 33: current thread get exclusive access rights to the object&lt;/li&gt;&lt;li&gt;step 34: the object was locked by current thread previously&lt;/li&gt;&lt;li&gt;step 35: the object locking process stop&lt;/li&gt;&lt;li&gt;step 37: the object was locked by other thread, the current thread waits for the object to be unlocked before continuing&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfZ840FgoQI/AAAAAAAAASA/r1SGKMwTX2g/s1600-h/Picture+1.png"&gt;&lt;img style="width: 400px; height: 301px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5329584524535832834" alt="" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfZ840FgoQI/AAAAAAAAASA/r1SGKMwTX2g/s400/Picture+1.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;3. Deadlock&lt;/span&gt;&lt;br /&gt;Deadlock is two or more threads are waiting for one another to be finish (or unlock), but neither ever does. The threads may waiting for object lock in a circular chain. The object lock to guarantees exclusive access to processes. Deadlocks are a commonly troubling as there is no general solution to avoid (Wikipedia I, N.A.).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;4. Semaphores&lt;/span&gt;&lt;br /&gt;Semaphore is a protected variable or abstract data type which make up the method for limiting the access of sharing resources such as shared memory in a multiprogramming environment (Wikipedia II, N.A.).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;5. Mutex (mutual exclusion)&lt;/span&gt;&lt;br /&gt;Mutex is the short term for mutual exclusion. An object that allows multiple threads to share the same resource not at the same time is called mutex. When a program start, a mutex is generated with a unique name. Any thread that needs the resource of the object must lock the mutex from other threads while it is using the resource. The mutex is set to unlock state during the data is no longer needed or the process is finished (Webopedia, N.A.).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;6. Thread&lt;/span&gt;&lt;br /&gt;Thread is a sequential spread of control within a program. Each thread has its own execution stack where method activation reside. Threads can either be cooperative or concurrent running in a system (Bak, 2000). Threads also called lighweight processes and are likely to forking a process. As multiple threads of a process utilizes the same address space (all static and external data, open files are shared), can make parallel programming easier. Threads are used when need to protect shared resources or synchronise resources. Threads exist in modern operating systems software like UNIX, Microsoft Office (Eustace 2009).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;7. Event&lt;/span&gt;&lt;br /&gt;Event is the simplest mechanisms for communication between threads. If a thread signals an event and other threads will wait for it. An event object manages is an changeable internal flag (Python, 2005).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;8. Waitable timer&lt;/span&gt;&lt;br /&gt;Waitable timer is a synchronization object. Its state is set to signaled when a specified due time reach (Mischel, 2009).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Bak, L. (2000), Thread synchronization in a computer controlled by an object-based, &lt;span style="font-style: italic;"&gt;Sun Microsystems, Inc&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Eustace, K. (2009), E-systems infrastruction development - itc594 study guide,&lt;span style="font-style: italic;"&gt; CSU&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Ince, D. (2002), Developing distributed and e-commerce applications, 2nd edition, &lt;em&gt;Addison-Weskey.&lt;/em&gt;&lt;/li&gt;&lt;li&gt;Mischel, J. (2009), Waitable timers in .net with c#, &lt;span style="font-style: italic;"&gt;DevSource, Retrieved at http://www.devsource.com/c/a/Languages/Waitable-Timers-in-NET-CSharp/ on 28th April, 2009&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;MSDN (N.A.), Thread synchronization, &lt;span style="font-style: italic;"&gt;Microsoft, Retrieved at &lt;/span&gt;&lt;a style="font-style: italic;" href="http://msdn.microsoft.com/en-us/library/dsw9f9ts.aspx"&gt;http://msdn.microsoft.com/en-us/library/dsw9f9ts.aspx&lt;/a&gt;&lt;span style="font-style: italic;"&gt; on 28th April&lt;/span&gt;, 2009.&lt;/li&gt;&lt;li&gt;Python (2009), Python library reference - event objects, &lt;span style="font-style: italic;"&gt;Python,&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Retrieved at &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.python.org/doc/2.3.5/lib/event-objects.html"&gt;http://www.python.org/doc/2.3.5/lib/event-objects.html&lt;/a&gt;&lt;span style="font-style: italic;"&gt; on 28th April, 2009&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Webopedia (N.A.), Mutex, &lt;span style="font-style: italic;"&gt;Webopedia, Retrieved at &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.webopedia.com/TERM/M/mutex.html"&gt;http://www.webopedia.com/TERM/M/mutex.html&lt;/a&gt;on 28th April, 2009.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Wikipedia I (N.A.), Deadlock, &lt;span style="font-style: italic;"&gt;Wikipedia, Retrieved at &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Deadlock"&gt;http://en.wikipedia.org/wiki/Deadlock&lt;/a&gt;&lt;span style="font-style: italic;"&gt; on 28th April, 2009&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Wikipedia II (N.A.), Semaphore (programming), &lt;span style="font-style: italic;"&gt;Wilipedia, Retrieved at &lt;a href="http://en.wikipedia.org/wiki/Semaphore_%28programming%29"&gt;http://en.wikipedia.org/wiki/Semaphore_%28programming%29&lt;/a&gt; on 28th April, 2009&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-5563356262683280178?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/5563356262683280178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-17-concurrency-terms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/5563356262683280178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/5563356262683280178'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-17-concurrency-terms.html' title='Exercise 17: Concurrency terms'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfZ840FgoQI/AAAAAAAAASA/r1SGKMwTX2g/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-8482235164014282240</id><published>2009-04-26T23:23:00.000-07:00</published><updated>2009-04-28T23:11:03.959-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 16'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 16: Authentication and Encryption systems</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;1. Visit an e-commerce website and survey the mode of payment allowed. Would you trust the site with your business?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I want to the the ebay Web site at: &lt;a href="http://www.ebay.com/"&gt;http://www.ebay.com/&lt;/a&gt;. I tried to buy the Wii game console in it. If I confirm to buy that item, I need to PayPal account to process the payment.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfVZVet7BpI/AAAAAAAAARA/_bVS63KK3iM/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 261px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfVZVet7BpI/AAAAAAAAARA/_bVS63KK3iM/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5329263959620650642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;PayPal is a payments gateway (or a payment middle man):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Make secure purchases without revealing credit card number or financial information of the customer&lt;/li&gt;&lt;li&gt;Pay quickly&lt;/li&gt;&lt;li&gt;Shop using PayPal on eBay or thousands of merchants worldwide&lt;/li&gt;&lt;/ul&gt;PayPal (&lt;a href="http://www.paypal.com/"&gt;http://www.paypal.com&lt;/a&gt;) need to pay transaction fee for each payment.&lt;br /&gt;&lt;br /&gt;I trust that site (ebay) with my business, as the payment are through the famous 3rd person and my financial information would not be exposed to the merchants.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;2. What measures should e-commerce provide to create trust among their potential customers? What measures can be verified by the customer?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Trust of Internet shopping does not simply between the internet merchant and the customer, also between the consumer and the computer system through which transactions are executed. The quality of the product cannot be changed by the customer before making a purchase, or monitor the safety and security of sending personal sensitive information such as credit card numbers through the Internet to someone whose behaviors and motives may not easy to predict. The effectiveness of 3rd party trust-certification bodies such as TRUSTe or Verisign and public key encryption infrastructure for ensuring transactional security are significant success factors for Internet shopping (Lee &amp;amp;  Turba, 2001).&lt;br /&gt;&lt;br /&gt;Secuity of e-commerce can create trust, a security site should be (Josang &amp;amp; Tran, 2000):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Authentication - provide proof of identity and prevent an attacker from masking as a real user.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Non-repudiation - provide proof of expedition or receipt&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Confidentiality - ensure that only legitimate users can read message&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Integrity - ensure that illegitimate modification, deletion, creation or replay of digital messages.&lt;/li&gt;&lt;li&gt;Availability - ensure that an application is not break up by illegitimate actions&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; Serveral important security services such as non-repudiation and authentication are based on Public-key cryptography. It also an essential building of SSL (Secure Sockets Layer) that is used for securing Web communication (Josang &amp;amp; Tran, 2000). The are important in Web security, and build up trust between the merchants and customers.&lt;br /&gt;&lt;br /&gt;Trust for e-commerce has four main components (Patton &amp;amp; Josang, 2002):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Affecting trust before the site is accessed: brand reputation, previous off-line experiences with the merchant, differences between individuals in their general propensity to trust&lt;/li&gt;&lt;li&gt;Interface properties: graphic design and layout, content organization and usability&lt;/li&gt;&lt;li&gt;Informational content: information the merchant provides about products and services, privacy policies and privacy practices&lt;/li&gt;&lt;li&gt;Relationship management: post-purchase communication and customer service&lt;/li&gt;&lt;/ol&gt;Trust is based on experience from time to time, establishing initial trust could be the major challenge to new customer in e-commerce. Without such initial trust, merchants cannot build a good transaction history. Merchants can 'buy' trust though advertising said by (Patton &amp;amp; Josang, 2002). The above trust components can be verified by the customer.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;3. Visit the Verisign web site - what solutions does it offer for e-commerce?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I visit the Verisign at: &lt;a href="http://www.verisign.com/"&gt;http://www.verisign.com/&lt;/a&gt;. Verisign provides the Consumer Products and Retail Solutions for e-commerce. The VeriSign Identity Protection (VIP) provides authentication and transparent fraud detection from a trusted provider protects online transactions without slowing transactions.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;4. Visit the TRUSTe web site. Describe what services and solutions are offered.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I visit the TRUSTe web site at: &lt;a href="http://www.truste.com/"&gt;http://www.truste.com/&lt;/a&gt;. TRUSTe helps Web sites to build customer confidence to work, play and shop online. TRUSTe provides service to proof Web site strict privacy principles, and who strive to treat customer information with the utmost respect. If the Web sites meet their requirements, they will have a TRUSTe Web Privacy Seal.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;5. Get the latest PGP software from &lt;a href="http://web.mit.edu/network/pgp.html"&gt;http://web.mit.edu/network/pgp.html&lt;/a&gt;; install it on two machines and encrypt a message on one machine and decrypt it on the other. Report your findings.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The PGP software was no longer distributed by MIT:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SfWAglcolCI/AAAAAAAAARI/gcuT0Wv1brU/s1600-h/Picture+4.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 137px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SfWAglcolCI/AAAAAAAAARI/gcuT0Wv1brU/s400/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5329307031359231010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The PGP software can be download at:&lt;br /&gt;&lt;a href="http://www.pgp.com/downloads/desktoptrial/desktoptrial2.html"&gt;http://www.pgp.com/downloads/desktoptrial/desktoptrial2.html&lt;br /&gt;&lt;/a&gt;or&lt;br /&gt;&lt;a href="http://www.pcworld.com/downloads/file/fid,3178;order,1;page,1;c,All%20Downloads/description.html"&gt;http://www.pcworld.com/downloads/file/fid,3178;order,1;page,1;c,All%20Downloads/description.html&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;The PGP encrypts files with recipient's public key or sender's private key. When recipient receive the encrypted file, the recipient can decrypts the file with his own private key or sender's public key. The recipient can use the PGP software to check the integrity of the encrypted file to ensure that the file have not be altered by other.&lt;br /&gt;&lt;br /&gt;PGP is Pretty Good Privacy provides cryptographic privacy and authentication. PGP are commonly used for signing, encrypting and decrypting files for email. PGP encryption uses the Public Key Infrastructure (PKI).&lt;br /&gt;&lt;br /&gt;Encrypts files output to test.pgp:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfXKm64JxXI/AAAAAAAAARw/LwEj9_0DPGU/s1600-h/Picture+4.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 372px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfXKm64JxXI/AAAAAAAAARw/LwEj9_0DPGU/s400/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5329388504051467634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SfXH1KjLBlI/AAAAAAAAARg/tDemWx-prVE/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 374px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SfXH1KjLBlI/AAAAAAAAARg/tDemWx-prVE/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5329385450241721938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Verifies file integrity and decrypts the test.pgp file, then unzip the files into the Test folder:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SfXLcYrVKQI/AAAAAAAAAR4/DLc97HoqOOE/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 351px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SfXLcYrVKQI/AAAAAAAAAR4/DLc97HoqOOE/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5329389422583818498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;6. The use of digital certificates and passports are just two examples of many tools for validating legitimate users and avoiding consequences such as identity theft. What others exist?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Legitimate users validation:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;by user name or login ID, and password. Commonly use in most systems&lt;br /&gt;&lt;/li&gt;&lt;li&gt;by personal card and password. Example: use of automated teller machine (ATM) card by bank&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fingerprint recognize system. Example: use in door lock, computer system login.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Iris recognize system. Example: use in door lock&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Reference&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Josang, A. and Tran, N (2000), Trust management for e-commerce, Virtual Banking 2000.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Lee, M.K.O and  Turba, E. (2001), A trust model for consumer internet shopping, &lt;span style="font-style: italic;"&gt;International Journal of Electronic Commerce,&lt;/span&gt; &lt;span style="font-style: italic;"&gt;75-91&lt;/span&gt;(6).&lt;/li&gt;&lt;li&gt;Patton, M. A. and Josang, A. (2002), Technologies for trust in electronic commerce, &lt;span style="font-style: italic;"&gt;Kluwer Academic Publisher, Electronic Commerce Research 4&lt;/span&gt;, 9-21.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-8482235164014282240?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/8482235164014282240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-16-authentication-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/8482235164014282240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/8482235164014282240'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-16-authentication-and.html' title='Exercise 16: Authentication and Encryption systems'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfVZVet7BpI/AAAAAAAAARA/_bVS63KK3iM/s72-c/Picture+3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-3657013153334151796</id><published>2009-04-24T02:36:00.000-07:00</published><updated>2009-04-26T23:22:45.411-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 15'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 15: Protecting and archiving data</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;1. What makes a firewall a good security investment? Accessing the Internet, find two or three firewall vendors. Do they provide hardware, software or both?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Firewall is a device that protects data on systems and the computer system themselves. Firewall provides a controll point of entry into and out of computer system (internal network). Computer system may a very large investment for a company. Firewall help to minimize the chance of needed repairs for an intrusive attack from outside (such as Internet). Firewall is a safegruad which protect (Zalenski, 2002):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Data integrity -  Data needs to be protected from any unwarranted changed&lt;/li&gt;&lt;li&gt;Availability - Data needs to be accessible when needed&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Secrecy - Data privacy needs to be secured when applicable&lt;/li&gt;&lt;/ul&gt;If the system of a company is attacked by malicious intrusion, the ability of the system may decrease or halted. This inability may infect deliver as promised, and can damage the integrity of the company. The revenues of the company may be hurted (Zalenski, 2002). Those make firewall become a good investment.&lt;br /&gt;&lt;br /&gt;Firewall Vendors:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Check Point - &lt;a href="http://www.checkpoint.com/"&gt;http://www.checkpoint.com&lt;/a&gt;, provides integrated appliance solutions (Security Gateways) for both hardware and software&lt;br /&gt;&lt;/li&gt;&lt;li&gt;SonicWALL -&lt;a href="http://www.sonicwall.com/"&gt; http://www.sonicwall.com&lt;/a&gt;, provides both hardware and software firewall products&lt;/li&gt;&lt;li&gt;Juniper Networks - &lt;a href="http://www.juniper.net/"&gt;http://www.juniper.net&lt;/a&gt;, provides both hardware and software integrating firewall called NetScreen.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;2. Find out if your university or workplace has a backup policy in place. Is it followed and enforced?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;My company has the backup policy:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Critical data should be backed up&lt;/li&gt;&lt;li&gt;Backup data should be stored at a location that is physically different from its original creation and usage location&lt;/li&gt;&lt;li&gt;The ability to retrieve and restore backup data should produce successful results. The verification through restoration from backed-up data, should be performed on a regular basis&lt;/li&gt;&lt;li&gt;Procedures for backing up critical data and testing of the procedures should be documented.&lt;/li&gt;&lt;/ul&gt;We almost follow the above policy in our daily backup:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;We backup application's data, user's data and users' e-mail daily&lt;/li&gt;&lt;li&gt;Write down the daily backup status in the log book&lt;/li&gt;&lt;li&gt;Store the backup tapes in China's office&lt;/li&gt;&lt;li&gt;Restore the backup files from tape monthly for verification&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;3. Most of the antivirus software perform an active scanning of the user activity on the Internet, detecting downloads and attachments in e-mails. 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 &lt;a href="http://vx.netlux.org/dat/vct.shtml"&gt;http://vx.netlux.org/dat/vct.shtml&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;I search the 'virus writing kit' in Yahoo. The result of it:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfVKdmMeBgI/AAAAAAAAAQw/uUfm1G9Ww98/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 339px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfVKdmMeBgI/AAAAAAAAAQw/uUfm1G9Ww98/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5329247606392358402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are many documents in the internet talking about virus writing kits. They said that the virus writing are easy be downloaded from the Internet like (Szor, 2005):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;VCS (Virus Construction Set) - the first virus generator written in 1990.&lt;/li&gt;&lt;li&gt;GenVir - released as a shareware in France by J. Struss in 1990-1991.&lt;/li&gt;&lt;li&gt;VCL (Virus Creation Laboratory) - was written in US in 1992.&lt;/li&gt;&lt;li&gt;PS-MPC (Phalcon-Skism Mass-Produced Code Gemnerator) - was created in 1992 in US by Dark Angel.&lt;/li&gt;&lt;li&gt;NGVCK (Next Generation Virus Creation Kit) - introduced in 2001 by SnakeByte&lt;/li&gt;&lt;li&gt;Amateurs - over 150 kits and code mutators are available, in 1996 such tools become extremely popular&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Example of Virus Generator Kits:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SfVOUWviRNI/AAAAAAAAAQ4/AHItlZ26GjA/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 229px; height: 400px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SfVOUWviRNI/AAAAAAAAAQ4/AHItlZ26GjA/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5329251845672158418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Reference&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Zalenski, R. (2002), Firewal technologies, &lt;span style="font-style: italic;"&gt;Potentials, IEEE, 24-29&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Szor, P. (2005), Advanced code evolution techniques and computer virus generator kits, informIT network, Retreived at &lt;a href="https://www.informit.com/articles/article.aspx?p=366890&amp;amp;seqNum=7"&gt;https://www.informit.com/articles/article.aspx?p=366890&amp;amp;seqNum=7&lt;/a&gt; on 27th April, 2009.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-3657013153334151796?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/3657013153334151796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-15-protecting-and-archiving.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/3657013153334151796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/3657013153334151796'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-15-protecting-and-archiving.html' title='Exercise 15: Protecting and archiving data'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfVKdmMeBgI/AAAAAAAAAQw/uUfm1G9Ww98/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-5985570193707501787</id><published>2009-04-24T00:27:00.000-07:00</published><updated>2009-04-24T02:33:17.863-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 14'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 14: Electronic payments and security II</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;1. What are cookies and how are they used to improve security?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As HTTP is stateless, it does not support the browser and server interact continuity. Cookies were produced to maintain continuity and state on the Web. Cookies contain a character strings which encoding relevant information about the user. Cookies are sent to the hard disk of the user or RAM through the browser during the user visists a website that using cookies. The Web server get the user's information from their cookies when the user returns later (Park &amp;amp; Sandhu 2000).&lt;br /&gt;&lt;br /&gt;Cookies are used for authenticating, session tracking or state maintenance and maintaining users' specific information. Cookies allow the server to recognize that the user is already authenticated, then user can access services or perform operations that only allow logged in user  (Wikipedia 2009).&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;br /&gt;2. Can the use of cookies be a security risk?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Web server could user a cookie to store user's name and credit card numbers. Although this is convenient for users, it would also a risk. As the cookies are stored and transmitted in text, they are readable by others (Park &amp;amp; Sandhu 2000).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Typical cookies on the Web &lt;/span&gt;(Park &amp;amp; Sandhu 2000)&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SfF8p5vvvqI/AAAAAAAAAQo/U8OuzKWLGLY/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 96px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SfF8p5vvvqI/AAAAAAAAAQo/U8OuzKWLGLY/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5328176893473570466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All cookies are fundamentally similar in the above format. 'Domain' is the host or domain name where the cookie is valid. 'Flag' is used to specifies whether or not all machines within a given domain can access the information of the cookies. If the 'Secure' flag is on, the cookie will be transmitted only over secure communications channels such as SSL. There has a secure problem that a Web server can update contents of the cookies whenever the user visists the server. The validation is not important for cookie-issuer, as any Web server can issue cookies for other Web servers. Security risk to cookies (Park &amp;amp; Sandhu 2000):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Network risk - cookies transmitted in clear text in the network, can be capture or modify by others&lt;br /&gt;&lt;/li&gt;&lt;li&gt;end-system risk - cookies exist in the browser's end-system, it stores on the hard drive or memory in clear text. Those contents could be altered by users eaily&lt;br /&gt;&lt;/li&gt;&lt;li&gt;cookie-harvesting - if cookies are collected by an attacker from users who accept cookies, the attacker can later use those harvested cookies for all other sites accepting them.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Reference&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Park, J.S. and Sandhu, R. (2000), Secure cookies on the web, &lt;span style="font-style: italic;"&gt;Internet Computing, IEEE, 36-44&lt;/span&gt;(4).&lt;/li&gt;&lt;li&gt;Wikipedia (2009), HTTP cookie, Retrieved at &lt;a href="http://en.wikipedia.org/wiki/HTTP_cookie"&gt;http://en.wikipedia.org/wiki/HTTP_cookie&lt;/a&gt; on 24th April, 2009&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-5985570193707501787?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/5985570193707501787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-14-electronic-payments-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/5985570193707501787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/5985570193707501787'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-14-electronic-payments-and.html' title='Exercise 14: Electronic payments and security II'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SfF8p5vvvqI/AAAAAAAAAQo/U8OuzKWLGLY/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-772903145602508026</id><published>2009-04-23T07:26:00.000-07:00</published><updated>2009-04-24T01:48:39.305-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 13'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 13: Electronic payments and security I</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;1. List and describe your experiences with a secure Web site. Some examples may be:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="font-weight: bold; color: rgb(153, 51, 0);"&gt;&lt;span style="font-size:130%;"&gt;University enrolment&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold; color: rgb(153, 51, 0);"&gt;&lt;span style="font-size:130%;"&gt;online banking, auctions, real estate;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold; color: rgb(153, 51, 0);"&gt;&lt;span style="font-size:130%;"&gt;booking a cheap air ticket or concert ticket;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;shopping online for a book, software or a CD.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I always do my banking transactions in an online banking Web site at &lt;a href="http://www.hsbc.com.hk/"&gt;http://www.hsbc.com.hk&lt;/a&gt;. Before doing the banking transactions, I need to log on the site with my user name, password and a instant security code that generated by a security device. The security device is small enough for me to carry to anywhere. The instant security code must be used not longer than 60 seconds. After 60 seconds not used, I must regenerate another security code. After I log on the site, I will redirect into a SSL security Web page to process my banking transactions. If I need to transfer money to other bank accounts that not owned by me, I will be asked to key in a instant security code again. Although Web security are not 100% secure, it is a well secure Web site and make me feel confident in doing my banking transaction.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;2. What is SET and how does it compare to SSL as a platform for secure electronic transaction? Is SET in common use?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Secure Electronic Transaction (SET) is a standard protocol for credit card transactions over public networks in secure. SET is a security protocols and formats that let users capable to employ the existing credit card payment, not a payment system (Wikipedia 2009). SET uses hashing algorithm to sign a transaction message with the sender's public key and decrypt by the private key. The authenticity of the transaction can be verified in both merchants and customers with their own digital signatures (Wiley &amp;amp; Sons 1996).&lt;br /&gt;&lt;br /&gt;SET purchase involves three parties. They are customer (cardholder), merchant and payment gateway. But now people pays for online purchases by sending their credit card details direct to the merchant . They use Secure Sockets Layer (SSL) protocol to encrypt the card details in the Internet, but it does nothing to protect the merchants or customers for dishonest. Although SSL is less protect for both merchant and customer, SSL is commonly used in the Internet for less cost and more convenient (Wikipedia 2009) compare with SET.&lt;br /&gt;&lt;br /&gt;But SET cannot win the market share with the following reasons (Wikipedia 2009):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Client need to install software (e-wallet)&lt;/li&gt;&lt;li&gt;Higher cost and more complex in the support of merchants compare with the alternative solution of SSL&lt;/li&gt;&lt;li&gt;Cost of distribution of client-side certificate&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Reference&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt; Wikipedia (2009), Secure Electronic Transaction&lt;span style="font-style: italic;"&gt;, Retrieved at &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Secure_electronic_transaction"&gt;http://en.wikipedia.org/wiki/Secure_electronic_transaction&lt;/a&gt; on 24th April, 2009.&lt;/li&gt;&lt;li&gt;Wiley, J. and Sons (1996), Secure electronic transactions : an overview, Schneier, Bruce. Applied Cryptography, &lt;span style="font-style: italic;"&gt;Retrieved at &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.davidreilly.com/topics/electronic_commerce/essays/secure_electronic_transactions.html"&gt;http://www.davidreilly.com/topics/electronic_commerce/essays/secure_electronic_transactions.html&lt;/a&gt; on 24th April, 2009.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-772903145602508026?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/772903145602508026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-13-electronic-payments-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/772903145602508026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/772903145602508026'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-13-electronic-payments-and.html' title='Exercise 13: Electronic payments and security I'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-5123890410945537144</id><published>2009-04-23T02:36:00.000-07:00</published><updated>2009-04-23T23:18:07.835-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 12'/><title type='text'>Exercise 12: Designing for a secure framework</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;1. Find out about SET and the use of RSA 128-bit encryption for e-commerce.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SET is &lt;span class="headNavBlueXLarge2"&gt;Secure Electronic Transaction protocol&lt;/span&gt; which has been developed by Visa and MasterCard. SET is a security method in payment card transactions over open networks. It is highly interested by the industrial (Lu &amp;amp; Smolka 1999). SET is an open protocol and standard for protecting the privacy, which ensuring the authenticity of the electronic transaction (Wiley &amp;amp; Sons 1996). They also said that SET protocol consist of two different encrytion mechanisms. SET uses sysmmetric encryption, in the form of the aging DES (Data Encryption Standard), and uses asymmetric (public key) encrytion to transmit session keys for DES transactions. SET simple uses 56 bits session keys which are transmitted asymmetrically. As the public key cryptography is only used to encrypt DES keys and for authentication, and not for the main body of the transaction to save computational cost.&lt;br /&gt;&lt;br /&gt;Authentication is important in e-commerce for both merchants and consumer. Authentication is achieved through the use of digital signatures in SET. SET uses hashing algorithm to sign a transaction message with the sender's public key, and the authenticity of the transaction can be verified (Wiley &amp;amp; Sons 1996).&lt;br /&gt;&lt;br /&gt;Two encryption algorithms are used in the SET protocol. They are DES and RSA. The DES algorithm has been used since year 1970 (Wiley &amp;amp; Sons 1996). RSA is the first great advances algorithm for public key cryptography, and widely used in e-commerce protocols. RSA provides a secure and sufficient log keys for the use of up-to-date implementations. RSA was publicly described in 1977 by Ron Rivest, Adi Shamir and Leonard Adlenan. RSA are the initails of their surnames. RSA is a asymmetric encrytion which consist of public key and private key (Wikipedia 2009).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;2.What can you find out about network and host-based intrusion detection systems?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;An intrusion detection system (IDS) is used to monitor all inbound and outbound activity in the network, and recognizes suspicious patterns that may indicate a system or network attack from someone who attempting to break into or compromise the system. IDS could be categorized into (Webopedia 2002):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Misuse detection vs anomaly detection&lt;/li&gt;&lt;li&gt;Network-based vs host-based system&lt;/li&gt;&lt;li&gt;Passive system vs reactive system&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;In a network-based intrusion detection system (NIDS), all individual packets that pass through the network are analyzed by NIDS. The malicious packets which overlooked by simplistic filtering rules of the firewall can be detected by NIDS. In a host-based system, the IDS analyze the activity on each individual computer or host (Webopedia 2002).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;3.What is ‘phishing’?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Phishing is an action of sending e-mail to a user falsely claiming that come from a legitimate enterprise, in attempt to scam the user to provide private information. The e-mail may directs the user to visit a Web site that ask to update his personal information such as passwords and credit card, social security and bank account numbers. The Web site is bogus and set up for stealing user's information (Webopedia 2008).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Reference&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Lu, S. and Smolka, S. A. (1999), &lt;span class="headNavBlueXLarge2"&gt;Model checking the secure electronic transaction (set) protocol&lt;/span&gt;,&lt;span class="bodyCopyBlackLargeSpaced"&gt; &lt;span style="font-style: italic;"&gt;Dept. of Comput. Sci., State Univ. of New York, Stony Brook, NY&lt;/span&gt;&lt;span style="font-style: italic;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span&gt;358-368&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Wiley, J. and Sons (1996), Secure electronic transactions : an overview, Schneier, Bruce. Applied Cryptography, &lt;span style="font-style: italic;"&gt;Retrieved at &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.davidreilly.com/topics/electronic_commerce/essays/secure_electronic_transactions.html"&gt;http://www.davidreilly.com/topics/electronic_commerce/essays/secure_electronic_transactions.html&lt;/a&gt; on 23rd April, 2009.&lt;/li&gt;&lt;li&gt;Wikipedia (2009), &lt;span style="font-style: italic;"&gt;RSA, Retrieved at &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/RSA"&gt;http://en.wikipedia.org/wiki/RSA&lt;/a&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;on 23rd April, 2009.&lt;/li&gt;&lt;li&gt;Webopedia (2002), intrusion detection system,&lt;a href="http://www.webopedia.com/TERM/I/intrusion_detection_system.html"&gt;&lt;span style="font-style: italic;"&gt; Retrieved at http://www.webopedia.com/TERM/I/intrusion_detection_system.html&lt;/span&gt;&lt;/a&gt; on 23rd April, 2009.&lt;/li&gt;&lt;li&gt;Webopedia (2008), phishing, &lt;a href="http://www.webopedia.com/TERM/p/phishing.html"&gt;&lt;span style="font-style: italic;"&gt;Retrieved at http://www.webopedia.com/TERM/p/phishing.html&lt;/span&gt;&lt;/a&gt; on 23rd April, 2009.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-5123890410945537144?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/5123890410945537144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-12-designing-for-secure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/5123890410945537144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/5123890410945537144'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/04/exercise-12-designing-for-secure.html' title='Exercise 12: Designing for a secure framework'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-685019426190390704</id><published>2009-04-22T23:05:00.000-07:00</published><updated>2009-04-23T00:47:20.776-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 05 - Part C'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 05'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><title type='text'>Workshop 5: Admiring the secenery Forms, AJAX screen layout and and mobile interfraces: Part C Screen layouts and forms processing:</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;1. Create a new application called cabs in the same projects directory to demonstrate the use of an active view.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;&gt; rails cabs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;&gt; cd cabs&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SfAF8s3mSjI/AAAAAAAAAPg/OC_E0zGAqrA/s1600-h/Picture+16.png"&gt;&lt;img style="cursor: pointer; width: 287px; height: 400px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SfAF8s3mSjI/AAAAAAAAAPg/OC_E0zGAqrA/s400/Picture+16.png" alt="" id="BLOGGER_PHOTO_ID_5327764899573942834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;2. Create a controller called Vehicle in cabs\app\controllers&lt;/span&gt;  &lt;span style="font-weight: bold;"&gt;cabs&gt; ruby script/generate controller Vehicle&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SfAGoLyTD2I/AAAAAAAAAPo/qpfHqIPKcGU/s1600-h/Picture+17.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 174px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SfAGoLyTD2I/AAAAAAAAAPo/qpfHqIPKcGU/s400/Picture+17.png" alt="" id="BLOGGER_PHOTO_ID_5327765646607585122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;3. Add an action to vehicle_controller.rb as the method called cabtype&lt;br /&gt;&lt;br /&gt;class VehicleController &amp;lt; ApplicationController&lt;br /&gt;def cabtype&lt;br /&gt;end&lt;br /&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SfAHZUkdilI/AAAAAAAAAPw/GqZHAuxJHuQ/s1600-h/Picture+18.png"&gt;&lt;img style="cursor: pointer; width: 367px; height: 89px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SfAHZUkdilI/AAAAAAAAAPw/GqZHAuxJHuQ/s400/Picture+18.png" alt="" id="BLOGGER_PHOTO_ID_5327766490779060818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;4. Add a view template - cabs\app\views\vehicle\cabtype.rhtml&lt;/span&gt; &lt;span style="font-weight: bold;"&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;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I copy the breathe.rb from the above animal application into scenery\app\views\demo and rename the file to cabtype.rb&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;5. Save the view and restart the Web server and navigate to http://localhost:3000/cabs/cabtype&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SfAJgKK69NI/AAAAAAAAAP4/6rfVRl_OSXQ/s1600-h/Picture+19.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 133px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SfAJgKK69NI/AAAAAAAAAP4/6rfVRl_OSXQ/s400/Picture+19.png" alt="" id="BLOGGER_PHOTO_ID_5327768807269922002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I change the navigate to http://localhost:3000/vehicle/cabtype, the result is OK now:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SfAJjsRVOuI/AAAAAAAAAQA/jJBkwlTQUrA/s1600-h/Picture+20.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 196px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SfAJjsRVOuI/AAAAAAAAAQA/jJBkwlTQUrA/s400/Picture+20.png" alt="" id="BLOGGER_PHOTO_ID_5327768867963222754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;6. Create a file in the public directory - \cabs\public called input.html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I had created a file in the public folder (\cabs\public) called input.html&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&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;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;class VehicleController &amp;lt; ApplicationController&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;   def cabtype&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;     @data1 = params[:text1]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;     @data2 = params[:check1]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;@data3 = params[:radios1]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;@data4 = params[:building1]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;   end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The vehicle_controller.rb in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfAMI44q2BI/AAAAAAAAAQI/qDGqQqUUcEI/s1600-h/Picture+21.png"&gt;&lt;img style="cursor: pointer; width: 384px; height: 154px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfAMI44q2BI/AAAAAAAAAQI/qDGqQqUUcEI/s400/Picture+21.png" alt="" id="BLOGGER_PHOTO_ID_5327771706027857938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;8. Edit the view template cabtype.rhtml&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The cabtype.rhtml in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SfAM8JQyVVI/AAAAAAAAAQQ/0uPTeYNUZJ0/s1600-h/Picture+22.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 367px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SfAM8JQyVVI/AAAAAAAAAQQ/0uPTeYNUZJ0/s400/Picture+22.png" alt="" id="BLOGGER_PHOTO_ID_5327772586597307730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;9. Start the Web server and go to the opening page of this application at http://localhost:3000/input.html&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfARhqJPIvI/AAAAAAAAAQY/Hpd5eXAIRRU/s1600-h/Picture+23.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 307px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SfARhqJPIvI/AAAAAAAAAQY/Hpd5eXAIRRU/s400/Picture+23.png" alt="" id="BLOGGER_PHOTO_ID_5327777629125681906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;10. Submit the forms data. What do you find?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When I submit the forms with the data that provided, the current Web page are redirected from input.html to vehicle (call the vehicle controller to display the user input). But an error page return. The error occur in the action controller for invalid authenticity token. In the error page, list out the parameter that I had input.&lt;br /&gt;&lt;br /&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SfAS1L2X1NI/AAAAAAAAAQg/eqR7rd5zzm0/s1600-h/Picture+24.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 386px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SfAS1L2X1NI/AAAAAAAAAQg/eqR7rd5zzm0/s400/Picture+24.png" alt="" id="BLOGGER_PHOTO_ID_5327779064102507730" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-685019426190390704?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/685019426190390704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/04/workshop-5-admiring-secenery-forms-ajax_3756.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/685019426190390704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/685019426190390704'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/04/workshop-5-admiring-secenery-forms-ajax_3756.html' title='Workshop 5: Admiring the secenery Forms, AJAX screen layout and and mobile interfraces: Part C Screen layouts and forms processing:'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SfAF8s3mSjI/AAAAAAAAAPg/OC_E0zGAqrA/s72-c/Picture+16.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-3586417139376668183</id><published>2009-04-22T19:01:00.000-07:00</published><updated>2009-04-22T23:05:20.374-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 05 - Part B'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 05'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><title type='text'>Workshop 5: Admiring the secenery Forms, AJAX screen layout and and mobile interfraces: Part B The active view:</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;1. Create a new application called scenery in the same projects directory to demonstrate the use of an active view.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt; rails scenery&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt; cd scenery&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Se_TLULtH3I/AAAAAAAAAOA/ox1De9sAlMA/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 257px; height: 400px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Se_TLULtH3I/AAAAAAAAAOA/ox1De9sAlMA/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5327709075552411506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;2. Create a controller called Demo in scenery\app\controllers&lt;/span&gt;  &lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;scenery&gt; ruby script/generate controller Demo&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/Se_T0gMWizI/AAAAAAAAAOI/bSye_3xueRY/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 155px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/Se_T0gMWizI/AAAAAAAAAOI/bSye_3xueRY/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5327709783150988082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;3. Add an action to demo_controller.rb as the method called rubycode&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;class DemoController &amp;lt; ApplicationController&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;   def rubycode&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;   end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The method called rubycode is added into demo_controller.rb:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Se_Vn9sWCJI/AAAAAAAAAOQ/AkiGyIVY0Nc/s1600-h/Picture+6.png"&gt;&lt;img style="cursor: pointer; width: 363px; height: 103px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Se_Vn9sWCJI/AAAAAAAAAOQ/AkiGyIVY0Nc/s400/Picture+6.png" alt="" id="BLOGGER_PHOTO_ID_5327711766754756754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;4. Add a view template - scenery\app\views\demo\rubycode.rhtml&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&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;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I copy the breathe.rb from the above animal application into scenery\app\views\demo and rename the file to rubycode.rb&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;5. Save and restart the Web server and navigate to http://localhost:3000/scenery/rubycode&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Se_nH8TzW2I/AAAAAAAAAOY/ZweI_UwuLf0/s1600-h/Picture+7.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 135px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Se_nH8TzW2I/AAAAAAAAAOY/ZweI_UwuLf0/s400/Picture+7.png" alt="" id="BLOGGER_PHOTO_ID_5327731007836871522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I change the navigate to http://localhost:3000/demo/rubycode, the result is OK now:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Se_n7WqgkKI/AAAAAAAAAOg/d8S2GQxHFYM/s1600-h/Picture+8.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 207px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Se_n7WqgkKI/AAAAAAAAAOg/d8S2GQxHFYM/s400/Picture+8.png" alt="" id="BLOGGER_PHOTO_ID_5327731891084759202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt; &lt;span style="font-weight: bold;"&gt;6. Use the Time.now example to pass data from an action to a view. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I change rubycode.rb in the scenery\app\views\demo:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Se_qlcai9HI/AAAAAAAAAOo/9Lm0TlpWUKo/s1600-h/Picture+9.png"&gt;&lt;img style="cursor: pointer; width: 270px; height: 206px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Se_qlcai9HI/AAAAAAAAAOo/9Lm0TlpWUKo/s400/Picture+9.png" alt="" id="BLOGGER_PHOTO_ID_5327734813206180978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Result in the Web browser:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Se_rENom9WI/AAAAAAAAAOw/LlE5oRQTSB8/s1600-h/Picture+10.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 138px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Se_rENom9WI/AAAAAAAAAOw/LlE5oRQTSB8/s400/Picture+10.png" alt="" id="BLOGGER_PHOTO_ID_5327735341814576482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&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;/span&gt;  &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;class DemoController &amp;lt; ApplicationController&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;def rubycode&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     @time_now = Time.now&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;/span&gt;&lt;br /&gt;&lt;br /&gt;The demo_controller.rb in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Se_xGeDkvkI/AAAAAAAAAPI/Gf23usLfl0k/s1600-h/Picture+11.png"&gt;&lt;img style="cursor: pointer; width: 372px; height: 128px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Se_xGeDkvkI/AAAAAAAAAPI/Gf23usLfl0k/s400/Picture+11.png" alt="" id="BLOGGER_PHOTO_ID_5327741977652149826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;8. Then modify and save the corresponding view template in \app\views\demo\rubycode.rhtml by adding a call by reference to the action’s instance variable:&lt;/span&gt;  &lt;span style="font-weight: bold;"&gt;The time is &lt;%= @time.now %&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The rubycode.rhtml in my computer:&lt;br /&gt;AS the error occur, I change the statement into:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;The time is &lt;%= @time_now %&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Se_0oiF1trI/AAAAAAAAAPQ/wEpGToInvZk/s1600-h/Picture+14.png"&gt;&lt;img style="cursor: pointer; width: 263px; height: 126px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Se_0oiF1trI/AAAAAAAAAPQ/wEpGToInvZk/s400/Picture+14.png" alt="" id="BLOGGER_PHOTO_ID_5327745861385828018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;9. Restart the Web server and navigate the browser to http://localhost:3000/demo/rubycode&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The instance variable time_now are passing successfully from the Ruby class to the view templates by reference. Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Se_1hL7vTNI/AAAAAAAAAPY/Y2dP7flfbh0/s1600-h/Picture+15.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 114px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Se_1hL7vTNI/AAAAAAAAAPY/Y2dP7flfbh0/s400/Picture+15.png" alt="" id="BLOGGER_PHOTO_ID_5327746834690428114" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-3586417139376668183?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/3586417139376668183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/04/workshop-5-admiring-secenery-forms-ajax_22.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/3586417139376668183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/3586417139376668183'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/04/workshop-5-admiring-secenery-forms-ajax_22.html' title='Workshop 5: Admiring the secenery Forms, AJAX screen layout and and mobile interfraces: Part B The active view:'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Se_TLULtH3I/AAAAAAAAAOA/ox1De9sAlMA/s72-c/Picture+2.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-1266934613062389785</id><published>2009-04-18T05:02:00.000-07:00</published><updated>2009-04-22T05:06:39.301-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 05'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 05 - Part A'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><title type='text'>Workshop 5: Admiring the secenery Forms, AJAX screen layout and and mobile interfraces: Part A Viewing the action:</title><content type='html'>&lt;span style="color: rgb(153, 51, 0); font-weight: bold;font-size:130%;" &gt;1. Create the Rails application framework in the projects folder: C:\InstantRails\...\projects\&gt;rails animals&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I create the application framework into the folder named Sites in my Mac:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sem-6oabgII/AAAAAAAAAMA/Prv5OtZ2cuE/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 214px; height: 400px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sem-6oabgII/AAAAAAAAAMA/Prv5OtZ2cuE/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5325997948832284802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&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;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I go into the folder that created in the above, then run the command "ruby script/server" to start the Web server.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SenDISWVV-I/AAAAAAAAAMQ/gSoe_JWwVuQ/s1600-h/Picture+5.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 139px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SenDISWVV-I/AAAAAAAAAMQ/gSoe_JWwVuQ/s400/Picture+5.png" alt="" id="BLOGGER_PHOTO_ID_5326002581474203618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Web browser at http://locathost:3000/&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SenDQ2nVopI/AAAAAAAAAMY/NufqVVH1NSs/s1600-h/Picture+4.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 344px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SenDQ2nVopI/AAAAAAAAAMY/NufqVVH1NSs/s400/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5326002728648155794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;font-size:130%;" &gt;3. Create the controller to make the application do an action. This is under the controller-action/model-view structure.&lt;br /&gt;&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;&lt;br /&gt;&gt;ruby script/generate controller Mammal&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Se2LhR_UHrI/AAAAAAAAAMg/ORicsgTVfrU/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 126px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Se2LhR_UHrI/AAAAAAAAAMg/ORicsgTVfrU/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5327067338130071218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;font-size:130%;" &gt;The mammal_controller.rb contains just a bare class description:&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;font-size:130%;" &gt;class MammalController &amp;lt; ApplicationController&lt;br /&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Se2N8X1ofTI/AAAAAAAAANA/LzZ9iEzECQ4/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 369px; height: 173px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Se2N8X1ofTI/AAAAAAAAANA/LzZ9iEzECQ4/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5327070002579799346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;and the ApplicationController class inherits from ActionController::Base class in the ActionController module under Rails.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Result in my computer:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/Se2N_a9lD9I/AAAAAAAAANI/JkMiPzldRU8/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 156px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/Se2N_a9lD9I/AAAAAAAAANI/JkMiPzldRU8/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5327070054958043090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&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;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Se5--aNFGpI/AAAAAAAAANQ/YjLSRxKKw9E/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 91px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Se5--aNFGpI/AAAAAAAAANQ/YjLSRxKKw9E/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5327335019877046930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&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;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;class MammalController &amp;lt; ApplicationController&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  def breathe&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;/span&gt;&lt;br /&gt;&lt;br /&gt;The mammal_controller.rb in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Se6ARwelVyI/AAAAAAAAANY/uWHsZLinsDM/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 161px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Se6ARwelVyI/AAAAAAAAANY/uWHsZLinsDM/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5327336451785185058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&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;/span&gt;  &lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&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;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Se6CKsZRWzI/AAAAAAAAANg/XmQ8qJKv5so/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 115px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Se6CKsZRWzI/AAAAAAAAANg/XmQ8qJKv5so/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5327338529453333298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;7. Create and save a view in that directory by using a text editor to create a view called breathe.rhtml&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Se7mrJ_Sh_I/AAAAAAAAANo/TxMxWP9ufrQ/s1600-h/Picture+4.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 102px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Se7mrJ_Sh_I/AAAAAAAAANo/TxMxWP9ufrQ/s400/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5327449038316013554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&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;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I modify the breathe.rhtml:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/Se8GoOdULuI/AAAAAAAAANw/TQed8Q5JBxg/s1600-h/Picture+9.png"&gt;&lt;img style="cursor: pointer; width: 295px; height: 393px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/Se8GoOdULuI/AAAAAAAAANw/TQed8Q5JBxg/s400/Picture+9.png" alt="" id="BLOGGER_PHOTO_ID_5327484172348174050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Result in my computer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Se8HIo7LXBI/AAAAAAAAAN4/BdrhUFvF3DA/s1600-h/Picture+10.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 206px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Se8HIo7LXBI/AAAAAAAAAN4/BdrhUFvF3DA/s400/Picture+10.png" alt="" id="BLOGGER_PHOTO_ID_5327484729208560658" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-1266934613062389785?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/1266934613062389785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/04/workshop-5-admiring-secenery-forms-ajax_18.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/1266934613062389785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/1266934613062389785'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/04/workshop-5-admiring-secenery-forms-ajax_18.html' title='Workshop 5: Admiring the secenery Forms, AJAX screen layout and and mobile interfraces: Part A Viewing the action:'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sem-6oabgII/AAAAAAAAAMA/Prv5OtZ2cuE/s72-c/Picture+2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-1311235638729670559</id><published>2009-04-18T04:35:00.000-07:00</published><updated>2009-04-18T05:09:49.403-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 05'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><title type='text'>Workshop 5: Developer Role (Red team)</title><content type='html'>Although the role of IT infrastructure manager may be more challenging, I select the role of developer in my workshops. As I am more like to learn the Ruby on Rails programming.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-1311235638729670559?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/1311235638729670559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/04/workshop-5-developer-role-blue-team.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/1311235638729670559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/1311235638729670559'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/04/workshop-5-developer-role-blue-team.html' title='Workshop 5: Developer Role (Red team)'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-5360398273355100297</id><published>2009-03-30T00:46:00.000-07:00</published><updated>2009-04-04T01:19:44.241-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='workshop 04'/><title type='text'>Workshop 4: Riding the Rails with Ruby</title><content type='html'>&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;To do:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. Spend some time moving your way through the 46 Ruby coding examples in the Ruby Tutorial with Code from &lt;a href="http://www.fincher.org/tips/Languages/Ruby/"&gt;http://www.fincher.org/tips/Languages/Ruby/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have go through the 46 Ruby coding examples:&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Install Ruby&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Our first program&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Output in Ruby&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Reading from the Console&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Functions&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Open Classes&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Variable naming&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Interesting tidbits about Ruby&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Variable Types&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(255, 0, 0);font-size:85%;" &gt;Missing&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Quotes&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Objects&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Big Numbers&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Parallel Assignment&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Collections &lt;/span&gt;&lt;span style="font-size:85%;"&gt;(Arrays, Hashes, Ranges)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Control Statements (if, case, for, exit, loop)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Statement modifiers (if, unless, while)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Iterators (while, times, each, each with ranges, upto)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;You gotta have class (classes, ToString, to_s, subclassing, virtual attributes)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Regular Expressions&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Blocks&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;File I/O&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;method_missing - a wonderful idea&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;"BEGIN" / "END"&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;converting between strings and ints&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Using XML Dom Parser&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Run a few lines directly from the command line with the "-e" option&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Editing files in place&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Example of printing duplicate lines in sorted file&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Ruby has it own interpreted shell, irb&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Ruby can take input stdin&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;to pass a string on the uri it needs to "escape" first&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Example to remove "funny" characters from a filename&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Looping over list of arguments&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Miscellaneous Commands&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;DataTime&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Using 'requie'&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;BuiltIn Command Interpreter&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Introspection with ObjectSpace&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Testing&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Read a URL and print the web page to the screen&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Example of drawing a line on a canvas in Tk&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;irb - interactive ruby&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;RubyGems a ruby package installer&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Ruby on Rails&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Ruby Quotes&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);font-size:130%;" &gt;2.&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-size:130%;"&gt; What are the syntax differences in the way that Ruby and Javascript use the if statement?&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;&lt;/span&gt;&lt;/span&gt;Ruby &lt;span style="font-weight: bold;"&gt;if&lt;/span&gt; statement:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SdG38qWEf3I/AAAAAAAAAKk/LoNjGx2foN4/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 97px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SdG38qWEf3I/AAAAAAAAAKk/LoNjGx2foN4/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5319234887688159090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Javascript&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; if &lt;/span&gt;&lt;span&gt;statement:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SdG4AFJpqeI/AAAAAAAAAKs/EFVcnAuu5go/s1600-h/Picture+4.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 122px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SdG4AFJpqeI/AAAAAAAAAKs/EFVcnAuu5go/s400/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5319234946423433698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The syntax differences in Ruby and Javascript use the if statement:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Both Ruby and Javascript If statement start with " if "&lt;/li&gt;&lt;li&gt;Both of them write the actual condition just after the word " if ", but Javascript write the actual condition in between the open " ( " and closed " ) " brackets&lt;/li&gt;&lt;li&gt;In Ruby specifies what will happen if the condition is satisfied, is written before word " end ", but in Javascript it is written between open " { " and closed " } " curly brackets (or braces)&lt;/li&gt;&lt;li&gt;In Ruby uses the " else " or  " elseif  ", but in Javascript uses " else " or " else if " to specify what to do next if the condition is not satisfied.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;3. While Ruby and Python are quite similar, can you find some similarities between Ruby and Javascript?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ruby has many of the same language features that JavaScript has, including (Seidman, 2006):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;extension by mixin (mixin in OO programming, is a class that provides a certin functionality to by inherited by a subclass)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;duck typing (duck typing is a style of dynamic typing in which an object's current set of methods and properties determines the vaild semantics, rather than its inheritance from a particular class or implementation of a spceific interface.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;a YAML equivalent JavaScript Object Notation (YAML is a human-readable data serialization format that takes concepts from language sech as XML, C, Python, Perl)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;arbitrary class and object extension (ie. adding methods/properties to classes or specific objects at any time)&lt;/li&gt;&lt;li&gt;simple arrays and hashes&lt;/li&gt;&lt;li&gt;has first-class functions, which are the same (though not identical) as blocks.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-size:180%;" &gt;Challenge Problems:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. 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 style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;The dognames.rb program:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SdQ4_zQ5X2I/AAAAAAAAALU/dyAg5a6vwc4/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 305px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SdQ4_zQ5X2I/AAAAAAAAALU/dyAg5a6vwc4/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5319939728575389538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:100%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;The testing of the dognames.rb program:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SdQsdVPcRWI/AAAAAAAAALE/qhXRYU80wFQ/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 281px; height: 400px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SdQsdVPcRWI/AAAAAAAAALE/qhXRYU80wFQ/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5319925942261138786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;2. 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-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;The fizzbuzz.rb program:&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SdcX6vDDVGI/AAAAAAAAAL0/831Jbs8D11Q/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 385px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SdcX6vDDVGI/AAAAAAAAAL0/831Jbs8D11Q/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5320747782590649442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;The result of the fizzbuzz.rb program:&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SdRCvqKzDEI/AAAAAAAAALk/oG-erwpxcoE/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 255px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SdRCvqKzDEI/AAAAAAAAALk/oG-erwpxcoE/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5319950446372260930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;3. Compare the Ruby and Python versions of the dog years calculator:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SdRa1nxY3KI/AAAAAAAAALs/MdEnSrJsLZI/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 173px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SdRa1nxY3KI/AAAAAAAAALs/MdEnSrJsLZI/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5319976937087098018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;font-size:130%;" &gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Seidman, G. (2006), Faq and javascript vs. ruby (was re: rubynuby - client side ruby?), &lt;span style="font-style: italic;"&gt;&lt;/span&gt; newgroups.derkeller.com, Retrieved from &lt;a href="http://newsgroups.derkeiler.com/Archive/Comp/comp.lang.ruby/2006-02/msg02949.html"&gt;http://newsgroups.derkeiler.com/Archive/Comp/comp.lang.ruby/2006-02/msg02949.html&lt;/a&gt; on 1st April, 2009&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-5360398273355100297?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/5360398273355100297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/workshop-4-riding-rails-with-ruby.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/5360398273355100297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/5360398273355100297'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/workshop-4-riding-rails-with-ruby.html' title='Workshop 4: Riding the Rails with Ruby'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SdG38qWEf3I/AAAAAAAAAKk/LoNjGx2foN4/s72-c/Picture+3.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-1093516607530163902</id><published>2009-03-26T20:20:00.000-07:00</published><updated>2009-03-31T23:31:32.547-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='workshop 03'/><title type='text'>Workshop 3: Online Taxi Booking System:  MySQL and Database design:</title><content type='html'>&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(255, 102, 0);"&gt;To do:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. Set up the MySQL tools on your computer as described in section 6 above.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I had install the 'Sequel Pro' in my Mac, use it to connect the MySQL database named test, browse the table employees in it:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/ScxHD8a8pRI/AAAAAAAAAIs/lf7i35yEDv0/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 174px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/ScxHD8a8pRI/AAAAAAAAAIs/lf7i35yEDv0/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5317703393102046482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;2. Rails will setup a new application directory for each of your Web application projects. Get InstantRails (Windows) or Locomotive (MacOS) running on your machine. Both packages 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;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Run the Locomotive and Create Rails Application named OTBS:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Scx6JOy1c2I/AAAAAAAAAJc/Y7VKFFHagY4/s1600-h/Picture+6.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Scx6JOy1c2I/AAAAAAAAAJc/Y7VKFFHagY4/s400/Picture+6.png" alt="" id="BLOGGER_PHOTO_ID_5317759559026439010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;3. Once Rails is running you at http://localhost:3000, you need to configure database access. Connection to the database is specified in the config/database.yml file.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Running Rails in my Mac:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Scx4weqdlCI/AAAAAAAAAJU/gix4PMftmf0/s1600-h/Picture+5.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 351px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Scx4weqdlCI/AAAAAAAAAJU/gix4PMftmf0/s400/Picture+5.png" alt="" id="BLOGGER_PHOTO_ID_5317758034277930018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The database.yml that under the config folder:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Scx-5lk3oZI/AAAAAAAAAJs/T8Ff6KQD_cI/s1600-h/Picture+8.png"&gt;&lt;img style="cursor: pointer; width: 353px; height: 400px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Scx-5lk3oZI/AAAAAAAAAJs/T8Ff6KQD_cI/s400/Picture+8.png" alt="" id="BLOGGER_PHOTO_ID_5317764787822109074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;4. Generate the Passenger model by creating the MySQL database and ‘passengers’ table from the information above.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Create the table passengers in database OTBS by MySQL tools Sequel Pro:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Scx_m1i_jEI/AAAAAAAAAJ0/1dW1fcrF_4k/s1600-h/Picture+9.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 313px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Scx_m1i_jEI/AAAAAAAAAJ0/1dW1fcrF_4k/s400/Picture+9.png" alt="" id="BLOGGER_PHOTO_ID_5317765565203319874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Generate the Passenger model in the Terminal:&lt;span style="font-style: italic;"&gt; ruby script/generate model Passenger&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/ScyAqlAk4YI/AAAAAAAAAKE/KADwNWqRQHA/s1600-h/Picture+11.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 228px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/ScyAqlAk4YI/AAAAAAAAAKE/KADwNWqRQHA/s400/Picture+11.png" alt="" id="BLOGGER_PHOTO_ID_5317766728995103106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The model Ruby class located in app/models/passenger.rb:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/ScyCVx4pP3I/AAAAAAAAAKM/78aQluOURA8/s1600-h/Picture+12.png"&gt;&lt;img style="cursor: pointer; width: 392px; height: 190px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/ScyCVx4pP3I/AAAAAAAAAKM/78aQluOURA8/s400/Picture+12.png" alt="" id="BLOGGER_PHOTO_ID_5317768570697498482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;5. Further work on understanding MySQL under Rails by David Mertz:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;a. See “Fast-track your Web apps with Ruby on Rails” at &lt;a href="http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/"&gt;http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;Summary after reading of the “Fast-track your Web apps with Ruby on Rails”&lt;a href="http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/"&gt;&lt;/a&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Introducing Rails - Rails provides a very clear and focused MVC way of thinking&lt;/li&gt;&lt;li&gt;Describe how to building a simple application&lt;/li&gt;&lt;li&gt;Describe how to creating customizable content&lt;/li&gt;&lt;li&gt;Describe how to changing the model&lt;/li&gt;&lt;li&gt;Rails gives us a extremely quick way to develop flexible Web applications.&lt;/li&gt;&lt;li&gt;Rails development offers us a clear path from a half-formed idea to a fully functioning Web applciation.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;b. The “Rolling with Ruby on Rails” series and “Cookbook recipes by Curt Hibbs and others beginning at &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;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Summary after reading of the “Rolling with Ruby on Rails” series and “Cookbook recipes by Curt Hibbs"&lt;a href="http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html"&gt;&lt;/a&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The article steps through using Rails to develop a Web application&lt;/li&gt;&lt;li&gt;What are Ruby and Rails?&lt;/li&gt;&lt;li&gt;Installation steps of Ruby on Rails (install: Ruby, Rails, MySQL, MySQL-Front)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Web application development steps using Rails:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create an empty Rails Web application (eg. Run the command: &lt;span style="font-style: italic;"&gt;rails cookbook&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;Test the empty Web application (eg. Run the command:&lt;span style="font-style: italic;"&gt; ruby script\server&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;Introduction of Rails application's directory structure&lt;/li&gt;&lt;li&gt;Create Controller class (eg. Run the command: &lt;span style="font-style: italic;"&gt;ruby script\generate controller Mytest&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;How to use the index method of MytestController to display 'Hello World' ?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How to create database and table in MySQL using MySQL-Font&lt;/li&gt;&lt;li&gt;Create Model (eg. Run the command: &lt;span style="font-style: italic;"&gt;ruby script\generate model Recipe&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;How to create, list and delete database record by using the Controller and add the command scaffold?&lt;/li&gt;&lt;li&gt;How to create actions and Views?&lt;/li&gt;&lt;li&gt;How to assign relationship between tables and make them work in the Rials?&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-1093516607530163902?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/1093516607530163902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/workshop-3-online-taxi-booking-system.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/1093516607530163902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/1093516607530163902'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/workshop-3-online-taxi-booking-system.html' title='Workshop 3: Online Taxi Booking System:  MySQL and Database design:'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JwfAwvNAZ3Y/ScxHD8a8pRI/AAAAAAAAAIs/lf7i35yEDv0/s72-c/Picture+2.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-3601860069919898986</id><published>2009-03-21T01:38:00.000-07:00</published><updated>2009-03-31T23:46:07.256-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 02'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><title type='text'>Workshop 2: Model View Controller design approach</title><content type='html'>&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(255, 102, 0);"&gt;To do:&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);font-size:180%;" &gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. 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;/span&gt;&lt;br /&gt;&lt;br /&gt;I setup a focus group that work on Ruby on Rails at: &lt;a href="http://railsfocusgroup.blogspot.com/"&gt;http://railsfocusgroup.blogspot.com&lt;/a&gt;, and had invited our classmates to join by personal email. The link of the blog was also posted on CSU Forum.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;2. What is meant by “convention over configuration” and how does it reduce coding?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A Web application is composed by many parts in different ways. If we have a variable named &lt;span style="font-style: italic;"&gt;picture&lt;/span&gt; in a computer program, and have a column named &lt;span style="font-style: italic;"&gt;image&lt;/span&gt; in the database table. The computer retrieves data from the image table column and stores the data in &lt;span style="font-style: italic;"&gt;picture&lt;/span&gt; variable. Then the program performs some acrobatics with the&lt;span style="font-style: italic;"&gt; picture &lt;/span&gt;variable's data. the programmer tie-up the &lt;span style="font-style: italic;"&gt;picture &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;image&lt;/span&gt; together using a configuration file. The configuration file encodes facts such as "variable &lt;span style="font-style: italic;"&gt;pictur&lt;/span&gt;e reads data from column &lt;span style="font-style: italic;"&gt;image&lt;/span&gt;". Programmer spend time to write the configuration files and specifying complex chains of names. Finally, errors creep into the system, and programmers spend more times fixing bugs (Burd 2007).&lt;br /&gt;&lt;br /&gt;In Rails, a variable named &lt;span style="font-style: italic;"&gt;image &lt;/span&gt;matches automatically with the column of the same name in the database table. A variable named &lt;span style="font-style: italic;"&gt;Picture&lt;/span&gt; matches automatically with a table named &lt;span style="font-style: italic;"&gt;picture&lt;span style="color: rgb(255, 0, 0);"&gt;s&lt;/span&gt;&lt;/span&gt; (in plurals form). And a variable named &lt;span style="font-style: italic;"&gt;Person&lt;/span&gt; matches automictically with a table named &lt;span style="font-style: italic;"&gt;people&lt;/span&gt; (Rails understands plurals) (Burd 2007).&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;3. Further work on understanding MVC:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;a. See the wiki at &lt;/span&gt;&lt;a style="color: rgb(153, 51, 0);" href="http://wiki.rubyonrails.org/rails/pages/UnderstandingMVC"&gt;http://wiki.rubyonrails.org/rails/pages/UnderstandingMVC&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;The page doesn't exist.&lt;span style="font-weight: bold; color: rgb(204, 102, 0);font-size:180%;" &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/ScdM8MXTlMI/AAAAAAAAAIk/DqeEwqWtyD8/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 194px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/ScdM8MXTlMI/AAAAAAAAAIk/DqeEwqWtyD8/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5316302482128999618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &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;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Summary after my reading:&lt;br /&gt;MVC has been the easrliest and most successful design patterns since 1979 by Trygve Reenskaug. MVC paradign the user input, the modeling of database, and visual feedback to users are handled by 3 types of object separately:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;View - manages the graphical and textual output to the display&lt;/li&gt;&lt;li&gt;Controller - interprets the mouse and keyboard inputs from users, controlling the model and the view to change appropriate&lt;/li&gt;&lt;li&gt;Model - manages the behavior and data, responds to requests and instructions.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;4. 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;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The video is about 1 hour 15 minutes long. It is the Part 1 of Ruby on Rails short course that conducted by RAD Lab, University of California, Berkeley. The title of the Part 1 is 'Hello World'. The speaker is Armando Fox. Armando reviewed and introduce:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Web apps of the Rail&lt;/li&gt;&lt;li&gt;How MVC design pattern work in Rails&lt;/li&gt;&lt;li&gt;SQL operations (Create, Read, Update and Destroy)&lt;/li&gt;&lt;li&gt;Convention over configuration&lt;/li&gt;&lt;li&gt;Hello World program&lt;/li&gt;&lt;li&gt;Some programming technique demo in Rails&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;5. 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;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;The article is a chapter come form the book Essential Action Script 2.o which written by Colin Mock, issue by O'Reilly's. The article explains the concept of the Model-View-Controller (MVC) Design pattern.&lt;br /&gt;&lt;br /&gt;The MVC design pattern separates user interface code into 3 distinct classes:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Model - store the data and application logic for the interface&lt;/li&gt;&lt;li&gt;View - Renders the interface (usually to the screen)&lt;/li&gt;&lt;li&gt;Controller - Responds to user input by modifying the model&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;The basic principle of MVC is the separation of responsibilities, separating the code that governs user interface into the mode, view and controller classes generate the following benefits:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;In the same information (model) allows multiple representations (views)&lt;/li&gt;&lt;li&gt;At both compile time and runtime allows user interfaces (views) to be easily added, removed or changed&lt;/li&gt;&lt;li&gt;At both compile time and runtime allows response to user input (controller) to be easily changed.&lt;/li&gt;&lt;li&gt;Advance for reuse&lt;/li&gt;&lt;li&gt;Multiple developers update interface, logic or input of an application without affecting other source code at the same&lt;/li&gt;&lt;li&gt;Developers can focus on a single job of the application at a time&lt;/li&gt;&lt;/ul&gt;Responsibilities of:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Model - stores data in properties and provides application-specific methods that set and retrieve that data. The data-management methods are not generic, they are customized in each application and must be known to the controller and the view.&lt;/li&gt;&lt;li&gt;View - create user interface and keep it up-to-date. The view monitor the state changes in the model. If change occur, the view updates the interface to reflect the change.&lt;/li&gt;&lt;li&gt;Controller - monitor for notifications from the view, based on user input and translates the input into changes in the model. The controller sometime makes logical decisions about the input before making the corresponding change to the model.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(255, 102, 0);"&gt;Challenge Problems:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. How is Rails structured to follow the MVC pattern?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ruby on Rails fully apply the MVC framework, Rails divides the work of an application into Model, View and Controller separately.  MVC work in closely cooperative subsystems. Coding in Rails do separately in different sub folders for MVC pattern. Writing code can be done by different programmers, but they are working together for the same application.&lt;br /&gt;&lt;br /&gt;Model (ActiveRecord) - Maintenains the relationship between objects and database. It handles validation, association, transactions and etc. ActiveRecord library implemente this subsystem, which provides an interface and binding between the tables and Ruby program code. Ruby method names are automatically generated from the field name of the database tables.&lt;br /&gt;&lt;br /&gt;View (ActionView) - presentation of data in particular format, called by the decision of a controller to present data. They are script based very easy to integrate with AJAX technology. This subsystem is implemented in ActionView folder which is embedded Ruby based system, define presentation templates for data presentation. The display of a view in an application respesent the results.&lt;br /&gt;&lt;br /&gt;Controller (ActionController) - directs traffic within an application, query the models for specific data and organize data such as searching, sorting and massaging it, into a form that fits the needs of the view. This subsystem is implemented in ActionController which is the connector between ActionRecord and ActionView.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;2. Apply the MVC design approach to our Project: Online Taxi Booking System.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The workflow for creating Online Taxi Booking System (OTBS) application in the Rails:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create basic skeleton of the application by using Rails command: &lt;span style="font-style: italic;"&gt;rails OTBS&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Create a database in the MySQL server to store OTBS records by using SQL command in the MySQL:&lt;span style="font-style: italic;"&gt; mysql&gt; create database OTBS;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Configure the application to know where the database is located and the login authority for it by modify the configuring file named database.yml that located in \ruby\library\config.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create Rails models (ActiveRecord), they are the objects working in controllers. By using Rails command: &lt;span style="font-style: italic;"&gt;ruby script/generate model Taxi&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Generate migrations that makes creating and maintaining database tables and columns easy. By using Rails command: &lt;span style="font-style: italic;"&gt;ruby script/generate migration Taxi&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Write controller code to make it works in the application. By Rails command: &lt;span style="font-style: italic;"&gt;ruby script/generate controller Taxi.&lt;/span&gt; And then implementing different Methods&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create Views file to present data through user interface&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span class="Apple-style-span"  style="font-size:180%;"&gt;&lt;span class="Apple-style-span"&gt;Reference&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: bold;"&gt;&lt;span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: normal;"&gt;Burd, B. (2007), Ruby on rails for dummies, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic; font-weight: normal;"&gt;Wily Publishing, Inc.&lt;/span&gt;&lt;/li&gt;&lt;/ol&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/5460860580884516379-3601860069919898986?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/3601860069919898986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/workshop-2-model-view-controller-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/3601860069919898986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/3601860069919898986'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/workshop-2-model-view-controller-design.html' title='Workshop 2: Model View Controller design approach'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/ScdM8MXTlMI/AAAAAAAAAIk/DqeEwqWtyD8/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-2839753259542820556</id><published>2009-03-20T00:06:00.000-07:00</published><updated>2009-04-01T00:49:09.505-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 11'/><title type='text'>Exercise 11: XML introduction</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. 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;/span&gt;&lt;br /&gt;&lt;br /&gt;Parser is a essential tool for reading and modifying XML document. The term 'parser'  are sometimes interchangeable with 'processor'. Any program that input an XML file and produces  the output based on the XML files content is an XML processor.  An XML browser is a kind of processor. A parser is software that performs the first step in the processing of an XML document. Parser is almost always used as part of an XML processor. The foundation task of a parser is checking the XML document for well-formed data, and make sure the documents content follows the rules of XML syntax. Most of the parsers can check the document for validity by checking against Document Type Definition (DTD) or Schema. The final task of the parser may perform to make the content of the document, both markup and data, available to the processing software. SAX (Simple API for XML) API or Document Object Model (DOM) API does this (Dev Shed, N.A.).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;2. What are the benefits of adopting a schema standardized for a business sector?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A schema standardized like XML, can be used as information exchange for different formats in different computer systems and databases. Developers do that challenging and time wasting job in data exchange between such system over Internet.  It is simple in converting data to XML and generate data that can be read by different types of applications. XML data can be store in files or database. So applications can store and retrieve information from the data store, then display the data out.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;3. SMIL is an application of XML. What is the purpose of this technology? Where does it apply?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SMIL is stand for Synchronized Multimedia Integration Language. SMIL define an XML-based language that allows authors to write interactive multimedia presentations. In SMIL, authors may describe the temporal behaviour of a multimedia presentation, associate hyperlinks with media objects and describe the layout of the presentation on a screen(Bulterman, 2008).&lt;br /&gt;&lt;br /&gt;SMIL enables simple authoring of interactive audio and visual presentations. SMIL integrates streaming audio and video with images, text or any other media type in "rich media" multimedia presentations. SMIL presentations can be written by using of a simple text-editor. The SMIL language is easy to learn (W3C, 2008).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-size:180%;" &gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Dev Shed (N.A.), My first xml document - tools for parsing xml, &lt;span style="font-style: italic;"&gt;Developer Shed.&lt;/span&gt;, 5-6. Retrieved from &lt;a href="http://www.devshed.com/c/a/XML/My-First-XML-Document/2/"&gt;http://www.devshed.com/c/a/XML/My-First-XML-Document/2/&lt;/a&gt;&lt;a href="http://www.devshed.com/c/a/XML/My-First-XML-Document/2/"&gt; &lt;/a&gt;on 20th March, 2009&lt;/li&gt;&lt;li&gt;Bulterman, B. and W3C's partners (2008)., Synchronized multimedia integration language (smil 3.0), W3C. Retreved from &lt;a href="http://www.w3.org/TR/2008/REC-SMIL3-20081201/"&gt;http://www.w3.org/TR/2008/REC-SMIL3-20081201/&lt;/a&gt; on 20th March, 2009.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;W3C (2008)., Synchronized Multimedia,&lt;span style="font-style: italic;"&gt; W3C&lt;/span&gt;. Retrieved from &lt;a href="http://www.w3.org/AudioVideo/"&gt;http://www.w3.org/AudioVideo/&lt;/a&gt; on 20th March, 2009.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-2839753259542820556?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/2839753259542820556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-11-xml-introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/2839753259542820556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/2839753259542820556'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-11-xml-introduction.html' title='Exercise 11: XML introduction'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-6330050101793180405</id><published>2009-03-17T00:25:00.000-07:00</published><updated>2009-04-01T00:47:03.083-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 10: Application server platforms in e-commerce</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. Go to 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;br /&gt;I visit the &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;IBM&lt;/span&gt; &lt;/span&gt;website: &lt;a href="http://www.ibm.com/"&gt;http://www.ibm.com/&lt;/a&gt;,  I use the keyword 'e-commerce solution' to search related articles in the IBM website, it return 17,995 results. I select an article title 'WebSphere Commerce V6.0 delivers a complete end-to-end e-commerce solution' retrieved from &lt;a href="http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca&amp;amp;infotype=an&amp;amp;appname=iSource&amp;amp;supplier=897&amp;amp;letternum=ENUS206-115#@2h@75@"&gt;http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca&amp;amp;infotype=an&amp;amp;appname=iSource&amp;amp;supplier=897&amp;amp;letternum=ENUS206-115#@2h@75@&lt;/a&gt; to read through it.&lt;br /&gt;&lt;br /&gt;WebSphere is the Web server that provided by IBM and it use DB2 as it database. The WebSphere can run J2EE package, build and extend Enterprise JavaBeans in it. IBM also provide education support and a full set of maintenance for their WebSphere Web servers.&lt;br /&gt;&lt;br /&gt;I find an article titled 'Leverage MySQL skills to learn DB2 Express: BD2 versus MySQL backup and recovery' the IBM website, retrieved from &lt;a href="http://www.ibm.com/developerworks/data/library/techarticle/dm-0606tham/"&gt;http://www.ibm.com/developerworks/data/library/techarticle/dm-0606tham/&lt;/a&gt;. This article focuses on the capabilities of DB2 Express-C (Database provided by IBM) highlighting the similarities and differences between open source MySQL and DB2 Express-C in backup and recovery. The testing is very details, and produce different comparison tables show below, IBM DB2 Express-C is the absolute winner.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/ScEGQib_lQI/AAAAAAAAAIE/u1FTcnQ6fX4/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 306px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/ScEGQib_lQI/AAAAAAAAAIE/u1FTcnQ6fX4/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5314535916465788162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/ScEGZ-fV7AI/AAAAAAAAAIM/0yOqUifMI_E/s1600-h/Picture+4.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 341px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/ScEGZ-fV7AI/AAAAAAAAAIM/0yOqUifMI_E/s400/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5314536078614850562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/ScEGgjPIXsI/AAAAAAAAAIU/G9e2mLhaALk/s1600-h/Picture+5.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 343px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/ScEGgjPIXsI/AAAAAAAAAIU/G9e2mLhaALk/s400/Picture+5.png" alt="" id="BLOGGER_PHOTO_ID_5314536191558180546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I visit the&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Oracle&lt;/span&gt;&lt;/span&gt; website: &lt;a href="http://www.oracle.com/"&gt;http://www.oracle.com/&lt;/a&gt;, I use the keyword 'e-commerce solution' to search related articles in the IBM website, it return 164 results. I select an article title "Oracle's Complete Sell-Side E-Commerce Solution" retrieved from &lt;a href="http://www.oracle.com/applications/sales/oracle-sell-side-e-commerce-white-paper.pdf"&gt;&lt;span style="text-decoration: underline;"&gt;http://www.oracle.com/applications/sales/oracle-sell-side-e-commerce-white-paper.pdf&lt;/span&gt;&lt;/a&gt; to read through it.&lt;br /&gt;&lt;br /&gt;Oracle offers a comprehensive e-commerce solution that:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Enable collaboration with customer, channel partnrer, distributors, and resellers in order to profitably support the entire sales process&lt;/li&gt;&lt;li&gt;Provides proven e-commerce technology and application in many industries such as high technology, consumer products, manufacturing, healthcase and telecommunications etc.&lt;/li&gt;&lt;li&gt;Integrates completely with Oracle E-Business Suite, can also be integrated with legacy and third-party systems&lt;/li&gt;&lt;/ul&gt;The Oracle database integrated with his CRM and ERP applications, and powered by Oracle Trading Community Architecture to provide a complete e-commerce solution.&lt;br /&gt;&lt;br /&gt;An article 'Interview with Charles Phillips: The Future of informatin Technology at Vortext 2004' that retrieved from&lt;a href="http://www.oracle.com/corporate/pressroom/cphillips_vortext04.html"&gt; http://www.oracle.com/corporate/pressroom/cphillips_vortext04.html&lt;/a&gt; compare the open-source database MySQL with Oracle's database. Phillips said that 'If we're all in the transportation industry, then Oracle is the 747 and MySQL is the car that gets you to the airport'. Their customer migrate from MySQL to Oracle when they go for more robust database software.&lt;br /&gt;&lt;br /&gt;I visit the&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Microsoft&lt;/span&gt;&lt;/span&gt; website: &lt;a href="http://www.microsoft.com/"&gt;http://www.microsoft.com/&lt;/a&gt;, I use the keyword 'e-commerce solution' to search related articles in the Microsoft website, it return 55,200 results. I select an article title "E-Commerce" retrieved from &lt;a href="http://msdn.microsoft.com/en-us/office/aa905430.aspx"&gt;http://msdn.microsoft.com/en-us/office/aa905430.aspx&lt;/a&gt; to read through it.&lt;br /&gt;&lt;br /&gt;Microsoft provide a list of consultants who partner with him. The nearby vendor can be find from &lt;a href="http://www.microsoft.com/smallbusiness/partner/vendorsearch.mspx"&gt;http://www.microsoft.com/smallbusiness/partner/vendorsearch.mspx&lt;/a&gt; after entry your Postal Code. If you want to develop a custom e-commerce application by yourself. Microsoft provide Access and SQL Server database, and ASP.NET Web site development framework.&lt;br /&gt;&lt;br /&gt;An article "Compare SQL Server to MySQL", retrieved from &lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/compare-mysql.aspx"&gt;http://www.microsoft.com/sqlserver/2008/en/us/compare-mysql.aspx&lt;/a&gt; show the different between SQL Server 2008 and MySQL. The author said that "Microsoft SQL Server 2008 outperforms MySQL as a database platform in all business-critical areas". The Microsoft SQL Server 2008 provides the following that better and a comprehensive business intelligence platform at low total cost of ownership:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; large resource network&lt;/li&gt;&lt;li&gt;industry-leading performance and enterprise-ready scalability&lt;/li&gt;&lt;li&gt;highest level of security&lt;/li&gt;&lt;li&gt;highest availability&lt;/li&gt;&lt;/ul&gt;I visit the&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Sybase&lt;/span&gt;&lt;/span&gt; website: &lt;a style="color: rgb(0, 0, 0);" href="http://www.sybase.com/"&gt;http://www.sybase.com/&lt;/a&gt;, I use the keyword 'e-commerce solution' to search related articles in the Sybase website, it return 62 results. The major products of Sybase are database and its related software tools. Their partners who provides their solution can be found in the Web site, such as HandStep, Advanced Foodsystems, mPower, Ventyx, Wasp etc.&lt;br /&gt;&lt;br /&gt;An article "Performance Comparison of ASE 15 vs. MySQL 5.0", retrieve from &lt;a href="http://www.sybase.com/detail?id=1045499"&gt;http://www.sybase.com/detail?id=1045499&lt;/a&gt;. Adaptive Server Enterprise (ASE) is a database server that provided by Sybase. It said that ASE 15 has show an advantage in overall performance for transaction processing over MySQL 5.0, and many complex queries show significant improvements. A detail testing report can be found in &lt;a href="http://www.sybase.com/content/1045499/Sybase_ASE_MySQL-102406-wp.pdf"&gt;http://www.sybase.com/content/1045499/Sybase_ASE_MySQL-102406-wp.pdf&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;2. 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;/span&gt;&lt;br /&gt;&lt;br /&gt;When an environment is capable of recognizing and describing things, people and activities within its volume, the environment is said to be "perceptive" stated by (Alper, 2005). He also said that for general purpose and robust, perception must integrate information from multiple sensors and multiple modalities.&lt;br /&gt;&lt;br /&gt;An interactive enviroment is capable responding to humans using tightly coupled perception and action. Simple forms of interaction may be based on sensing grasping and manipulation of multiple sensor devices, integrate all those information that captured from those devices to build a stronger perception environment (Alper, 2005).&lt;br /&gt;&lt;br /&gt;The role of &lt;span style="font-weight: bold;"&gt;AJAX&lt;/span&gt; within the enterprise software architecture:&lt;br /&gt;&lt;span&gt;AJAX is not a new technology, it combination of several existing technologies in a new way. AJAX include HTML, CSS, DOM, XML, XSLT, XML, Http Request and Javascript in it stated by (Rose India&lt;/span&gt;, &lt;span&gt;N.A.)&lt;/span&gt;. AJAX application eliminate the start stop nature of traditional Web pages, allow Web application to look and behave like the desktop ones. AJAX allows pages to request small bits of information from the server, instead of entire pages' contents. The page refreash problem and slow response are eliminated by this incremental updating of pages.&lt;br /&gt;&lt;br /&gt;AJAX is playing a significant role in making Web 2.0 become real. AJAX interfaces are a key component of many Web 2.0 applications. The Web sites of Google, Yahoo, Microsoft, Amazon and many others have  embraced AJAX (Rose India, N.A.).&lt;br /&gt;&lt;br /&gt;&lt;span&gt;The figure retrieved from Relevance, LLC (2005):&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/ScMLEdbLx-I/AAAAAAAAAIc/NGlz43FOMYQ/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 294px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/ScMLEdbLx-I/AAAAAAAAAIc/NGlz43FOMYQ/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5315104156473346018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span&gt;AJAX is used for:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Validation&lt;/li&gt;&lt;li&gt;Active Search&lt;/li&gt;&lt;li&gt;Dynamic Forms&lt;/li&gt;&lt;li&gt;Input Suggestions&lt;/li&gt;&lt;li&gt;Panning Image Data&lt;/li&gt;&lt;li&gt;Organizing and Navigating Data&lt;/li&gt;&lt;li&gt;Parallel Activities&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;3. 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&gt;ActionScript 2.0 is an object-oriented &lt;/span&gt;&lt;span&gt;is a formal and familiar approach to object-oriented programming (OOP) which including full support for classes, inheritance, interfaces and other common OOP concepts. OOP is an option approach to developing applications by using an additional set of language elements (deHaan, 2005)&lt;/span&gt;. But In Ruby everything is an object (Alameda, 2008).&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Programmer can use model-view-controller MVC design pattern in coding their ActionScript 2.0 (Moock, 2004). But Ruby on Rails is a full-stack MVC framework for database-backed web applications, let coding by favor convention over configuation (Alameda, 2008).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Reference&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;Alper, R. (2005), Perception, recognition and integration for interactive environments, &lt;span style="font-style: italic;"&gt;Project-Team PRIMA, Institut National De Recherche En Informatique Et En Automatique.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Alameda, A. (2008), Foundation rails 2, &lt;/span&gt;&lt;span style="font-style: italic;"&gt;Springer-Verlag New York, Inc.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;deHaan, J. (2005), Flash ActionScript 2.0 Learning Guide,&lt;/span&gt;&lt;span style="font-style: italic;"&gt; Macromedia Instructional Media Development,&lt;/span&gt;&lt;span&gt; Retrieved from&lt;a href="http://www.adobe.com/devnet/flash/articles/actionscript_guide.html"&gt; &lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;a href="http://www.adobe.com/devnet/flash/articles/actionscript_guide.html"&gt;http://www.adobe.com/devnet/flash/articles/actionscript_guide.html&lt;/a&gt;&lt;/span&gt;&lt;span&gt; on 20th March, 2009.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Moock, C. (2004), Essential actionscript 2.0,&lt;/span&gt;&lt;span style="font-style: italic;"&gt; O'Reilly Media, Inc. , &lt;a href="http://www.adobe.com/devnet/flash/articles/mv_controller.html"&gt;Retrieved from http://www.adobe.com/devnet/flash/articles/mv_controller.html &lt;/a&gt;on 20th March, 2009.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Relevance, LLC (2005), Ajax architecture, &lt;span style="font-style: italic;"&gt;Relevance, LLC,&lt;/span&gt;Retrieved from &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.119.3779&amp;amp;rep=rep1&amp;amp;type=pdf"&gt;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.119.3779&amp;amp;rep=rep1&amp;amp;type=pdf&lt;/a&gt;&lt;/span&gt;&lt;span&gt; on 20th March, 2009.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Rose India&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span&gt;(N.A.)&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;span&gt;The role of ajax in enhancing the user experience on the web, Rose India, Retrieved from &lt;a href="http://www.roseindia.net/ajax/ajax-user-interface.shtml"&gt;http://www.roseindia.net/ajax/ajax-user-interface.shtml &lt;/a&gt;on 20th March, 2009.&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-6330050101793180405?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/6330050101793180405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-10-application-server.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/6330050101793180405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/6330050101793180405'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-10-application-server.html' title='Exercise 10: Application server platforms in e-commerce'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/ScEGQib_lQI/AAAAAAAAAIE/u1FTcnQ6fX4/s72-c/Picture+1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-7833002442506670861</id><published>2009-03-15T21:50:00.000-07:00</published><updated>2009-04-01T00:44:31.326-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 09'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 9: Web form design and processing: A basis for e-commerce interaction</title><content type='html'>&lt;style type="text/css"&gt;&lt;br /&gt;&lt;!-- /* default style sheet generated by perltidy */ body {background: #FFFFFF; color: #000000} pre { color: #000000;        background: #FFFFFF;       font-family: courier;     }   .c  { color: #228B22;} /* comment */ .cm { color: #000000;} /* comma */ .co { color: #000000;} /* colon */ .h  { color: #CD5555; font-weight:bold;} /* here-doc-target */ .hh { color: #CD5555; font-style:italic;} /* here-doc-text */ .i  { color: #00688B;} /* identifier */ .j  { color: #000000; font-weight:bold;} /* label */ .k  { color: #8B4513; font-weight:bold;} /* keyword */ .m  { color: #FF0000; font-weight:bold;} /* subroutine */ .n  { color: #B452CD;} /* numeric */ .p  { color: #000000;} /* paren */ .pd { color: #228B22; font-style:italic;} /* pod-text */ .pu { color: #000000;} /* punctuation */ .q  { color: #CD5555;} /* quote */ .s  { color: #000000;} /* structure */ .sc { color: #000000;} /* semicolon */ .v  { color: #B452CD;} /* v-string */ .w  { color: #000000;} /* bareword */ --&gt;&lt;br /&gt;&lt;/style&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. Design the form&lt;br /&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;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Form of Retrofit:&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Sb4IMGtzhqI/AAAAAAAAAGs/8VeaLN_FCkk/s1600-h/Picture+6.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 269px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Sb4IMGtzhqI/AAAAAAAAAGs/8VeaLN_FCkk/s400/Picture+6.png" alt="" id="BLOGGER_PHOTO_ID_5313693614397949602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The coding:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sb9GKaBSiII/AAAAAAAAAHc/JvYYnm3kwPM/s1600-h/Picture+4.png"&gt;&lt;img style="cursor: pointer; width: 297px; height: 400px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sb9GKaBSiII/AAAAAAAAAHc/JvYYnm3kwPM/s400/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5314043229917841538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When click on 'Submit' button, the data string: "name=Dennis&amp;amp;card=visa&amp;amp;number=1234567890123456&amp;amp;order=French+perfume&amp;amp;submit=+Submit+" submitted to the server. As the missing of server side program, an error show bellow.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sb8NYMklK3I/AAAAAAAAAG8/CUbwo8OpmGE/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 70px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sb8NYMklK3I/AAAAAAAAAG8/CUbwo8OpmGE/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5313980794663152498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;2. Write the script&lt;br /&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;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;I found a CGI script from CGI101.COM Web site at &lt;a href="http://www.cgi101.com/book/ch3/text.html"&gt; &lt;/a&gt;&lt;a href="http://www.cgi101.com/book/ch3/text.html"&gt;http://www.cgi101.com/book/ch3/text.html&lt;/a&gt;, the script named get.cgi runs in the server to process the form named getform.html that submitted by the client:&lt;/span&gt;&lt;div&gt;&lt;b&gt;----------------------------------------------------------------------------&lt;br /&gt;&lt;/b&gt;&lt;pre&gt;#!/usr/bin/perl -wT&lt;br /&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="w"&gt;CGI&lt;/span&gt; &lt;span class="q"&gt;qw(:standard)&lt;/span&gt;&lt;span class="sc"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="w"&gt;CGI::Carp&lt;/span&gt; &lt;span class="q"&gt;qw(warningsToBrowser fatalsToBrowser)&lt;/span&gt;&lt;span class="sc"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="w"&gt;strict&lt;/span&gt;&lt;span class="sc"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="i"&gt;header&lt;/span&gt;&lt;span class="sc"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="w"&gt;start_html&lt;/span&gt;&lt;span class="s"&gt;(&lt;/span&gt;&lt;span class="q"&gt;"Get Form"&lt;/span&gt;&lt;span class="s"&gt;)&lt;/span&gt;&lt;span class="sc"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="i"&gt;%form&lt;/span&gt;&lt;span class="sc"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="i"&gt;$p&lt;/span&gt; &lt;span class="s"&gt;(&lt;/span&gt;&lt;span class="w"&gt;param&lt;/span&gt;&lt;span class="s"&gt;(&lt;/span&gt;&lt;span class="s"&gt;)&lt;/span&gt;&lt;span class="s"&gt;)&lt;/span&gt; &lt;span class="s"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="i"&gt;$form&lt;/span&gt;{&lt;span class="i"&gt;$p&lt;/span&gt;} = &lt;span class="w"&gt;param&lt;/span&gt;&lt;span class="s"&gt;(&lt;/span&gt;&lt;span class="i"&gt;$p&lt;/span&gt;&lt;span class="s"&gt;)&lt;/span&gt;&lt;span class="sc"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="q"&gt;"$p = $form{$p}&amp;lt;br&amp;gt;\n"&lt;/span&gt;&lt;span class="sc"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="s"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="i"&gt;end_html&lt;/span&gt;&lt;span class="sc"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;----------------------------------------------------------------------------&lt;br /&gt;&lt;div&gt;&lt;span&gt;The first line #!, indicates that this is a script. The next part /usr/bin/perl, is the location of the Perl interpeter. The final part contains optional flags for the Perl interpreter. Warnings are enabled by the -w flags. Special user input taint checking is enabled by the -T flag.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;The second line use, includes the module from standard library that provide a number of useful functions and features for writing CGI programs. The following functions in the above script is come from that module:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;header;&lt;/li&gt;&lt;li&gt;start_html;&lt;/li&gt;&lt;li&gt;end_html;&lt;/li&gt;&lt;/ul&gt;The print header, function prints out the "Content-type" header.&lt;br /&gt;The print start_html("Thank You") defines the page title as "Thank You".&lt;br /&gt;The end_html, prints the footer.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;The third line, use CGI:: Carp..., causes all warnings and fatal error messages to be echoned in the browser window for program debugging.&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;The fourth line, use strict, is a standard Perl module that requires the programmers to declare all variables for good programming style.&lt;br /&gt;&lt;br /&gt;After print out the 'Thank you' on the return screen, the foreach loop read the variables in the form of the call program and print them out to the screen line by line.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The screen of getform.html:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sb9Pb5_ocmI/AAAAAAAAAHs/nOkqiH2N_SY/s1600-h/Picture+5.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 132px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sb9Pb5_ocmI/AAAAAAAAAHs/nOkqiH2N_SY/s400/Picture+5.png" alt="" id="BLOGGER_PHOTO_ID_5314053426163249762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The screen of get.cgi:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sb9PfyXE5EI/AAAAAAAAAH0/BkYQS42LBaU/s1600-h/Picture+8.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 102px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sb9PfyXE5EI/AAAAAAAAAH0/BkYQS42LBaU/s400/Picture+8.png" alt="" id="BLOGGER_PHOTO_ID_5314053492833576002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;3. Can you modify the script to process the form?&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Yes, I can modify the CGI script of the post.cgi to process the form "Retrofit".&lt;br /&gt;As the CGI server setting in my computer is not the same as the above example. I use the command to find out the Perl location in my computer and modify the first line in the script to:&lt;br /&gt;#! /opt/local/bin/perl -wT&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sb9FX_kKZxI/AAAAAAAAAHU/KC5FaJAaa_Q/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 56px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sb9FX_kKZxI/AAAAAAAAAHU/KC5FaJAaa_Q/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5314042363822892818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="k"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&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/5460860580884516379-7833002442506670861?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/7833002442506670861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-9-web-form-design-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/7833002442506670861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/7833002442506670861'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-9-web-form-design-and.html' title='Exercise 9: Web form design and processing: A basis for e-commerce interaction'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Sb4IMGtzhqI/AAAAAAAAAGs/8VeaLN_FCkk/s72-c/Picture+6.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-4036093363615769539</id><published>2009-03-13T01:40:00.000-07:00</published><updated>2009-04-01T00:39:57.688-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 08'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 8: PHP and MySQL database access</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. Start with a simple table in the database:&lt;br /&gt;mysql&gt; SELECT * FROM employees;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Connect to database named test, and create table named employees:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SboqOTNZ4BI/AAAAAAAAAE8/KGvXZr-Cj5g/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 172px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SboqOTNZ4BI/AAAAAAAAAE8/KGvXZr-Cj5g/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5312605135599951890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Insert and select record in table employees:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SboqSwomBsI/AAAAAAAAAFE/bDOZxRxf2oU/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 167px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SboqSwomBsI/AAAAAAAAAFE/bDOZxRxf2oU/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5312605212218099394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;2. Create a web page with the following PHP:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Web page display the first record in the employees table&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sby4O9XTvjI/AAAAAAAAAFU/zXM1s8AoE-U/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 349px; height: 246px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sby4O9XTvjI/AAAAAAAAAFU/zXM1s8AoE-U/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5313324227520347698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;3. This is how we can add a record and is part of a file to create called add_record.html&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;The employees record add form&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/Sb3YXmLAijI/AAAAAAAAAF0/nHIYtBgaybw/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 251px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/Sb3YXmLAijI/AAAAAAAAAF0/nHIYtBgaybw/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5313641035262364210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;4. The corresponding PHP file is add_record.php used with the POST method:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Record added into table employees by program add_record.php:&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Correct typing error in INSERT statement&lt;/span&gt;&lt;span&gt; from&lt;/span&gt;&lt;span&gt; : "INERT" into "IN&lt;span style="color: rgb(255, 0, 0);"&gt;S&lt;/span&gt;ERT" &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sb3ZARRMmTI/AAAAAAAAAGE/c30USYn1ZL8/s1600-h/Picture+4.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 183px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sb3ZARRMmTI/AAAAAAAAAGE/c30USYn1ZL8/s400/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5313641734025812274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;5. The last code example shows how to get multiple records:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Web page display multiple records:&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Modified line 8:&lt;/span&gt; &lt;/span&gt;&lt;span&gt;echo "", $myrow[&lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;], ", ", $myrow[1], ""&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;To: &lt;/span&gt;&lt;span&gt;echo "", $myrow[&lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;], ", ", $myrow[1], ""&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sb3aLaVGZpI/AAAAAAAAAGM/kL-bCcaduKQ/s1600-h/Picture+5.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 238px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sb3aLaVGZpI/AAAAAAAAAGM/kL-bCcaduKQ/s400/Picture+5.png" alt="" id="BLOGGER_PHOTO_ID_5313643024948291218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span&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/5460860580884516379-4036093363615769539?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/4036093363615769539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-8-php-and-mysql-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/4036093363615769539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/4036093363615769539'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-8-php-and-mysql-database.html' title='Exercise 8: PHP and MySQL database access'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SboqOTNZ4BI/AAAAAAAAAE8/KGvXZr-Cj5g/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-6906761807536031594</id><published>2009-03-13T01:22:00.000-07:00</published><updated>2009-04-01T00:37:12.801-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 07'/><title type='text'>Exercise 7: User input for database access with PHP</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. Create an HTML page with the form:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;The result screen of HTML page with the form:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SbobDLER2JI/AAAAAAAAAEs/jNHfVfwUeTQ/s1600-h/Picture+8.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 186px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SbobDLER2JI/AAAAAAAAAEs/jNHfVfwUeTQ/s400/Picture+8.png" alt="" id="BLOGGER_PHOTO_ID_5312588451761215634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;2. Then, create a PHP file named submit.php with the following code:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;The result screen after input of my name:&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbobKIyYrmI/AAAAAAAAAE0/jtaWvbIgsJI/s1600-h/Picture+9.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 189px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbobKIyYrmI/AAAAAAAAAE0/jtaWvbIgsJI/s400/Picture+9.png" alt="" id="BLOGGER_PHOTO_ID_5312588571408379490" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-6906761807536031594?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/6906761807536031594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-7-user-input-for-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/6906761807536031594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/6906761807536031594'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-7-user-input-for-database.html' title='Exercise 7: User input for database access with PHP'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SbobDLER2JI/AAAAAAAAAEs/jNHfVfwUeTQ/s72-c/Picture+8.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-4227316519513075253</id><published>2009-03-12T02:17:00.000-07:00</published><updated>2009-04-01T00:33:59.801-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 06'/><title type='text'>Exercise 6: Some server practice with PHP</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. 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 recognised 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;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;The result screen of $REMOTE_ADDR:&lt;/span&gt;&lt;br /&gt;Display the client address on screen&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SboTiBCJwAI/AAAAAAAAAEM/qnGdHPIi5sQ/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 333px; height: 179px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SboTiBCJwAI/AAAAAAAAAEM/qnGdHPIi5sQ/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5312580185550864386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The result screen of $SERVER_NAME:&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Di&lt;/span&gt;&lt;span&gt;splay&lt;/span&gt;&lt;span&gt; server address (as the server and the client are in the same machine, the address of them are the same) on screen&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SboUdP6swMI/AAAAAAAAAEU/QZdDOACHIiA/s1600-h/Picture+4.png"&gt;&lt;img style="cursor: pointer; width: 333px; height: 177px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SboUdP6swMI/AAAAAAAAAEU/QZdDOACHIiA/s400/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5312581203158417602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;The result screen of $PHP_SELF:&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Display the file name of the php program on screen&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SboVBYOd6UI/AAAAAAAAAEc/ykYnWHID3BE/s1600-h/Picture+5.png"&gt;&lt;img style="cursor: pointer; width: 337px; height: 178px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SboVBYOd6UI/AAAAAAAAAEc/ykYnWHID3BE/s400/Picture+5.png" alt="" id="BLOGGER_PHOTO_ID_5312581823864105282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;2. Create a web application called "hello_world.php" which contains in the body:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;The result screen of "hello_world.php":&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SboW5mizdHI/AAAAAAAAAEk/yShkMt9PVDc/s1600-h/Picture+6.png"&gt;&lt;img style="cursor: pointer; width: 341px; height: 177px;" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SboW5mizdHI/AAAAAAAAAEk/yShkMt9PVDc/s400/Picture+6.png" alt="" id="BLOGGER_PHOTO_ID_5312583889291801714" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-4227316519513075253?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/4227316519513075253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-6-some-server-practice-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/4227316519513075253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/4227316519513075253'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-6-some-server-practice-with.html' title='Exercise 6: Some server practice with PHP'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SboTiBCJwAI/AAAAAAAAAEM/qnGdHPIi5sQ/s72-c/Picture+2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-2532675829172491812</id><published>2009-03-10T21:38:00.000-07:00</published><updated>2009-04-01T00:31:45.345-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 05'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 5: Network and programming frameworks</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. Investigate a simple chat client/server system. Look at some program code and describe how it works with multiple users.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;A simple chat client/server system have a simple graphical user interface with separate areas for messages received and message being typed. Each user have a nickname by which they will be identified in all received communications. The system allow users to join and leave the conversation at any time. &lt;/span&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;Multi-user chat systems allow users to participate in chart rooms where they can chat together. The status of users such as on-line, off-line and busy etc show on the program window. User type messages into the message input area and send it out by pressing the send button, the receiver capture the message and display it in message display area.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;Chart room is a server side program and users run the chart client program in their own computers. All chart client need to connect the server chart room program to start the communication. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;The server side code works for multiple users:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;// While loop to accept() client requests : &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;//  For each client connection request, accept() generates a new socket (sockfd).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;//  A child process is  forked and use new_sockfd to communicate with client. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;while(1)   &lt;span style="font-weight: bold;"&gt; // parent process always loops to wait for new client connect.&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;sin_size = sizeof(struct sockaddr_in);&lt;br /&gt;if ((new_sockfd = accept(sockfd, (struct sockaddr *)&amp;amp;clnt_info, &amp;amp;sin_size)) == -1)&lt;br /&gt;{&lt;br /&gt;perror("accept error");&lt;br /&gt;continue;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pid=fork();      &lt;span style="font-weight: bold;"&gt;// fork a child process to service client connection&lt;/span&gt;&lt;br /&gt;switch(pid)&lt;br /&gt;{&lt;br /&gt;case -1:   &lt;span style="font-weight: bold;"&gt;// if occur fork errror &lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;perror("fork error");&lt;br /&gt;exit(1);&lt;br /&gt;}&lt;br /&gt;case 0:   &lt;span style="font-weight: bold;"&gt;// this is the child process&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;close(sockfd); // &lt;span style="font-weight: bold;"&gt;close listener, child doesn't need the socket of  listener&lt;/span&gt;&lt;br /&gt;.................&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The client side pass the socket information to server:&lt;/span&gt;&lt;br /&gt;// &lt;span style="font-weight: bold;"&gt;Connet to remote server&lt;/span&gt;&lt;br /&gt;if (connect(sockfd, (struct sockaddr *)&amp;amp;srv_info, sizeof(struct sockaddr)) == -1) {&lt;br /&gt;perror("connect error");&lt;br /&gt;exit(1);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/&lt;span style="font-weight: bold;"&gt;/get client's information by getsockname()  &amp;amp; stored in struct sockaddr clnt_info&lt;/span&gt;&lt;br /&gt;getsockname(sockfd, (struct sockaddr*) &amp;amp;clnt_info, (int *) sizeof(clnt_info));&lt;br /&gt;&lt;br /&gt;Different clients connect to the server by socket, so the server can distinct users by different socket connection.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;2. Describe the important and distinguishing properties of Peer to Peer computing and the Grid. How is this peer to peer and the Grid architecture changing work flow and service-oriented applications?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SbeGLVRERYI/AAAAAAAAADM/yFNXCfhj_Pw/s1600-h/Picture+1.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5311861814752200066" style="margin: 0pt 0pt 10px 10px; float: right; width: 171px; cursor: pointer; height: 161px;" alt="" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SbeGLVRERYI/AAAAAAAAADM/yFNXCfhj_Pw/s320/Picture+1.png" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Peer-to-Peer computing refers to a group of systems and applications that employ distributed resources to perform a function in a decentralized manner. The critical function can be distributed computing, data and content sharing, communication and collaboration, or platform services. Typical P2P systems place in the edge of Internet or in ad-hoc networks. P2P computing enables valuable externalities, lower cost of ownership and cost sharing, and anonymity/privacy.(Milojicic, 2003). P2P computer network does not have clients or servers but only equal peer nodes that simultaneously function as both 'client' and 'server'. P2P gained visibility with Napster's support for music sharing on Web (Napster, 2001).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Grid computing is an application used to run by several computers together to solve a problem at the same time, usually involve in a scientific or technical problem which requires a large number of computer processing power or access to a lot of data. Grid computing can also be thought as distributed and large-scale cluster computing (Wikipedia 2009).&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SbiKC6ZuuRI/AAAAAAAAADc/MgsN4Tbzrrk/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 463px; height: 150px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SbiKC6ZuuRI/AAAAAAAAADc/MgsN4Tbzrrk/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5312147543125047570" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;3. Frameworks for development. Compare and contrast any TWO of:&lt;br /&gt;&lt;span style="font-size:100%;"&gt;a. Java&lt;br /&gt;b. NET&lt;br /&gt;c. Ruby on Rails&lt;br /&gt;d. Turbo Gears&lt;br /&gt;e. Google Gears&lt;br /&gt;f. AJAX frameworks&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;Compare and contrast of Java and .Net &lt;/b&gt;(Thomsen, N.a.)&lt;b&gt;:&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sbi3pi6KkhI/AAAAAAAAAD0/XsGLH79T0Wo/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 293px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sbi3pi6KkhI/AAAAAAAAAD0/XsGLH79T0Wo/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5312197684856787474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Sbi3RYpECQI/AAAAAAAAADk/onks1EiRIY8/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 288px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/Sbi3RYpECQI/AAAAAAAAADk/onks1EiRIY8/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5312197269783841026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Both are multi-tiered, similar computing technologies&lt;/li&gt;&lt;li&gt;Both support 'standards'&lt;/li&gt;&lt;li&gt;Both offer different tools and ways to achieve the same goal.&lt;/li&gt;&lt;li&gt;A lot of parallelism&lt;/li&gt;&lt;li&gt;As each has its own pro and con, it is difficult to compare and qualify the comparsion&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sbi6cedrxGI/AAAAAAAAAD8/jYT381M8i7U/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 304px;" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/Sbi6cedrxGI/AAAAAAAAAD8/jYT381M8i7U/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5312200758860170338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.Net can use VB, C# as it programing language&lt;/li&gt;&lt;li&gt;C# and Java are an object oriented language&lt;/li&gt;&lt;li&gt;The syntax of C++, C# and Java are similar&lt;/li&gt;&lt;/ul&gt;The environment in running .Net and Java:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sbi-CVhlOzI/AAAAAAAAAEE/-ANAbre1U7Q/s1600-h/Picture+4.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 278px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sbi-CVhlOzI/AAAAAAAAAEE/-ANAbre1U7Q/s400/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5312204707830512434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;JVM designed for platform independence&lt;/li&gt;&lt;li&gt;CLR designed for language independence (Muliple languages for development)&lt;/li&gt;&lt;li&gt;Java byte code (or JVML) is the low-level language of the JVM.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;MSIL (or CIL or IL) is the low-level language of the .Net Common Language Runtime (CLR)&lt;/li&gt;&lt;/ul&gt;In mobile devices, Java applications are reasonably successful, and Microsoft is moving fast into the field with .Net Compact Framework.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Development tools:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Well support in server-side for both Java and .Net IDEs&lt;/li&gt;&lt;li&gt;.Net IDE's benefit from the fact that .Net CF is so close to .Net on the client-side (There are separate IDE's for desktop and mobile application development in Java)&lt;/li&gt;&lt;li&gt;There has compatibility problems between Java vendors&lt;/li&gt;&lt;li&gt;Java IDEs are slow&lt;/li&gt;&lt;li&gt;C# is richer/more complex language than Java&lt;/li&gt;&lt;li&gt;Both Java and .Net have well documented API&lt;/li&gt;&lt;li&gt;Support for encryption of web services (.Net CF: https and SOAP extensions / J2ME: https, but only in CDC &amp;amp; MIDP 2.0&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Development time:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Slow in start up when developing in Java&lt;/li&gt;&lt;li&gt;Trouble-free implementation in .Net&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Development satisfaction:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.Net integrates web service and mobile application developement far better than Java IDE&lt;/li&gt;&lt;li&gt;A subset of an API is better solution for mobile devices instead of an entirely new API&lt;/li&gt;&lt;li&gt;.Net is a better designed framework, because it eleiminates the language barrier while also being platform independent, and it makes only little distinction between desktop and mobile application development&lt;/li&gt;&lt;li&gt;Sun's application server performance is very poor compared to IIS&lt;/li&gt;&lt;li&gt;License fees for a Java based solution are cheaper but .Net might catch up when considering development time&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:180%;"&gt;&lt;b&gt;Reference&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Milojicic, D. S. (2003), Peer-to-peer computing, &lt;i&gt;HP Laboratories Palo Alto, HPL-2002-57&lt;/i&gt; (R.1).&lt;/li&gt;&lt;li&gt;Napster (2001), The Napster home page, &lt;a href="http://www.napster.com/"&gt;http://www.napster.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Thomsen, B. (n.a.) Java vs .net, Aalborg University, Department of Computer Science, Retreived from &lt;a href="http://www.myplick.com/view/afZKCnJuG9C/Java-vs.-.Net"&gt;http://www.myplick.com/view/afZKCnJuG9C/Java-vs.-.Net&lt;/a&gt; on 12th Mar, 2009.&lt;/li&gt;&lt;li&gt;Wikipedia (2009), Grid computing Retrieved from &lt;a href="http://en.wikipedia.org/wiki/Grid_computing"&gt;http://en.wikipedia.org/wiki/Grid_computing&lt;/a&gt; on 11th Mar, 2009.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-2532675829172491812?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/2532675829172491812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-5-network-and-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/2532675829172491812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/2532675829172491812'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-5-network-and-programming.html' title='Exercise 5: Network and programming frameworks'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SbeGLVRERYI/AAAAAAAAADM/yFNXCfhj_Pw/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-7287402887746569360</id><published>2009-03-10T00:48:00.000-07:00</published><updated>2009-04-01T00:27:36.265-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 04'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 4: Virtual private networks</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. Describe the IP protocol. What is DNS?&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;IP&lt;/span&gt; is stand for Internet Protocol, is responsible for moving packet of data from node to node. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;IP&lt;/span&gt; forwards packet based on a four byte destination address called &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;IP&lt;/span&gt; number. In the Internet, the authorities assign ranges of numbers to different organization. The organizations assign groups of their numbers to their departments. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;IP&lt;/span&gt; operates on gateway machines, move data from department to organization to region and then the world (Gilbert, 1995)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;DNS&lt;/span&gt; is stand for Domain Name System, is an Internet service that transforms domain names into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;IP&lt;/span&gt; addresses. As domain names are alphabetic for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;harman&lt;/span&gt; readable and easier to remember, the Internet/network only know on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;IP&lt;/span&gt; address. Each time we use a domain name, therefore, a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;DNS&lt;/span&gt; service used to translate the name into corresponding &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;IP&lt;/span&gt; address (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Webopedia&lt;/span&gt; 2009).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;2. Describe the TCP protocol. How is it related to the IP protocol?&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;TCP&lt;/span&gt; is stand for Transmission Control &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Protool&lt;/span&gt;, is  responsible for verifying the correct delivery of data between client and server. Data can be lost in the intermediate network. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;TCP&lt;/span&gt; adds support to detect errors or lost data, and to trigger retransmission until the data is correctly and completely received by the client/server (Gilbert, 1995).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;TCP&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;IP&lt;/span&gt; is also called Internet Protocol Suite. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;TCP&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;IP&lt;/span&gt; work together to form the set of communication protocols used for the Internet and other similar networks. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;TCP&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;IP&lt;/span&gt; model consists of four layers. The lowest layer is Link Layer, then Internet Layer, Transport Layer and the highest layer is Application Layer. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;TCP&lt;/span&gt; is in the Transport Layer and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;IP&lt;/span&gt; is in the Internet Layer (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;Wikipedia&lt;/span&gt; 2009a).&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sbcm36mAZPI/AAAAAAAAAC8/oHXHCj7UXm8/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer; width: 363px; height: 128px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sbcm36mAZPI/AAAAAAAAAC8/oHXHCj7UXm8/s320/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5311757027570115826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;3. What do you know about building e-business applications as an Intranet, Extranet, Web portal, B2B, B2C or Virtual Private Network (VPN)?&lt;/span&gt; &lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;Find some examples on the Web&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;For data security issue B2B e-business may building in an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;extranet&lt;/span&gt; for outside office &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;commuciation&lt;/span&gt; (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;Phan&lt;/span&gt; ,2003). An &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;extranet&lt;/span&gt; is a private network that uses Internet protocols, and it is possible for the public telecommunication system to securely share the organization's information or operations with suppliers (B2B), vendors (B2B), partners (B2B), customers (B2C) or other businesses (B2B) (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;Wikipedia&lt;/span&gt; 2009b).&lt;br /&gt;&lt;br /&gt;Users can log into one place and have access to many other &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;intra&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;extranet&lt;/span&gt; sites by only key in the user ID and passwords (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;Phan&lt;/span&gt;, 2003). An intranet is also a private network that use Internet technologies to securely share the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_31"&gt;organization's&lt;/span&gt; information or operational (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;Wikipedia&lt;/span&gt; 2009c).&lt;br /&gt;&lt;br /&gt;When the company extend their Web site for Internet access through the Internet service provider (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;ISP&lt;/span&gt;), they may need a more secure solution for B2B or B2C &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_34"&gt;communication&lt;/span&gt; in an open environment. Virtual private network (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;VPN&lt;/span&gt;) is a good solution for B2B communication (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;Phan&lt;/span&gt;, 2003). As it needs some specific &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_37"&gt;setting&lt;/span&gt; to start a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;VPN&lt;/span&gt; communication, it is only suitable for B2B environment. Another issue suitable for B2C secure communication is Secure Sockets Layer (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;SSL&lt;/span&gt;).&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Examples:&lt;/div&gt;&lt;div&gt;The Intel Web site for the Resellers (B2B), they need to login in with their ID and password:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.intel.com/cd/channel/reseller/asmo-na/eng/index.htm?iid=subhdr+reseller"&gt;http://www.intel.com/cd/channel/reseller/asmo-na/eng/index.htm?iid=subhdr+reseller&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Stratford Hall Web site for business customer (B2B) to order their card in the Web: &lt;/div&gt;&lt;div&gt;&lt;a href="http://www.stratfordhall.com/index.jsp"&gt;http://www.stratfordhall.com/index.jsp&lt;/a&gt;&lt;/div&gt;&lt;div&gt;The ebay Web site for customer (B2C) to buy and sell their product, they need to login in or register in the Web. The side is protected by SSL:&lt;/div&gt;&lt;div&gt;&lt;a href="https://signin.ebay.com/ws/eBayISAPI.dll?SignIn&amp;amp;ru=http%3A%2F%2Fwww.ebay.com"&gt;https://signin.ebay.com/ws/eBayISAPI.dll?SignIn&amp;amp;ru=http%3A%2F%2Fwww.ebay.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;4. What role can a VPN play in business-to-business e-commerce?&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Virtual Private Network (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;VPN&lt;/span&gt;) make communications and exchanges always possible and secure in use of Internet (). The role of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;VPN&lt;/span&gt; in the business-to-business (B2B) environment allowing users to connect to the corporate network whenever, wherever or however they require. Users can benefit of the Internet public framework to constitute a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;VPN&lt;/span&gt; as an economic alternative to the leased line network. The advantage of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;VPN&lt;/span&gt; compared to leased lines is more flexible for B2B customers (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;Karp&lt;/span&gt;, 2001). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:180%;"&gt;Reference&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Gilbert, H. (1995), Introduction to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;tcp&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;ip&lt;/span&gt;, &lt;i&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;PCLT&lt;/span&gt;. Retrieved from &lt;/i&gt;&lt;a href="http://www.yale.edu/pclt/COMM/TCPIP.HTM"&gt;&lt;i&gt;http://www.yale.edu/pclt/COMM/TCPIP.HTM&lt;/i&gt;&lt;/a&gt;&lt;i&gt; &lt;/i&gt;on 10&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;th&lt;/span&gt; Mar, 2009&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;Karp&lt;/span&gt;, H. (2001), White paper: providing dynamic &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_50"&gt;vpn&lt;/span&gt; service for b2b, &lt;i&gt;FORM Consortium,&lt;/i&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;IST&lt;/span&gt;-1999-10357/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_52"&gt;ATOS&lt;/span&gt;/WP6/3010. &lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_53"&gt;Phan&lt;/span&gt;, D. D. (2003), E-business development for competitive advantages: a case study, &lt;span style="font-style: italic;"&gt;Information &amp;amp; Management, 40,&lt;/span&gt; 581-590.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_54"&gt;Webopedia&lt;/span&gt; (2009), &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_55"&gt;Dns&lt;/span&gt;, &lt;i&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_56"&gt;Webopedia&lt;/span&gt;. Retrieved from &lt;/i&gt;&lt;a href="http://www.webopedia.com/TERM/D/DNS.html"&gt;&lt;i&gt;http://www.webopedia.com/TERM/D/DNS.html&lt;/i&gt;&lt;/a&gt; on 10&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_57"&gt;th&lt;/span&gt; Mar, 2009&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_58"&gt;Wikipedia&lt;/span&gt; (2009a), Internet Protocol Suite, &lt;i&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_59"&gt;Wikipedia&lt;/span&gt;. Retrieved from &lt;/i&gt;&lt;a href="http://en.wikipedia.org/wiki/TCP/IP"&gt;&lt;i&gt;http://en.wikipedia.org/wiki/TCP/IP&lt;/i&gt;&lt;/a&gt;&lt;i&gt; &lt;/i&gt;on 10&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_60"&gt;th&lt;/span&gt; Mar, 2009&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_61"&gt;Wikipedia&lt;/span&gt; (2009b), &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_62"&gt;Extranet&lt;/span&gt;, &lt;i&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_63"&gt;Wikipedia&lt;/span&gt;. Retrieved from &lt;/i&gt;&lt;a href="http://en.wikipedia.org/wiki/Extranet"&gt;&lt;i&gt;http://en.wikipedia.org/wiki/Extranet&lt;/i&gt;&lt;/a&gt;&lt;i&gt; &lt;/i&gt;on 11&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_64"&gt;th&lt;/span&gt; Mar, 2009&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_65"&gt;Wikipedia&lt;/span&gt; (2009c), &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_66"&gt;Extranet&lt;/span&gt;, &lt;i&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_67"&gt;Wikipedia&lt;/span&gt;. Retrieved from &lt;/i&gt;&lt;a href="http://en.wikipedia.org/wiki/Intranet"&gt;&lt;i&gt;http://en.wikipedia.org/wiki/Intranet&lt;/i&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Intranet"&gt;&lt;i&gt; &lt;/i&gt;&lt;/a&gt;on 11&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_68"&gt;th&lt;/span&gt; Mar, 2009&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-7287402887746569360?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/7287402887746569360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-4-virtual-private-networks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/7287402887746569360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/7287402887746569360'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-4-virtual-private-networks.html' title='Exercise 4: Virtual private networks'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/Sbcm36mAZPI/AAAAAAAAAC8/oHXHCj7UXm8/s72-c/Picture+2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-2961554820819829919</id><published>2009-03-09T21:43:00.000-07:00</published><updated>2009-04-01T00:23:48.866-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 03'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 3: Finding some common ground</title><content type='html'>&lt;div&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;Describe the steps involved with the Rapid Evolutionary Prototyping Approach as it applies to developing a Web application.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Steps involved with the Rapid Evolutionary Prototyping Approach (Stytz, Adams, Garcia, Sheasby &amp;amp; Zurita, 1997)&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Extract requirements&lt;/li&gt;&lt;li&gt;Develop prototyping environment&lt;/li&gt;&lt;li&gt;Rapid evolutionary prototyping - users can use functional systems to uncover and validate requirements&lt;/li&gt;&lt;li&gt;Achieve incremental improvements in system implementation and design&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The above recursive steps do until the complete of the project. They can be simple denotation as development iterations in develop, test and evaluate solution. &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;How is it related to agile development?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Agile development is similar to the rapid evolutionary prototyping approach. Agile development are managing process that encourages frequent inspection and adaptation. Agile allow for rapid delivery of high quality software and a business approach that aligns development with customer needs and company goals. Agile prefer to do things in small increments with minimal planning. Iterations are short time frames which typically last from one to four weeks. the development team work iteration through a full software development cycle.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:180%;"&gt;&lt;b&gt;Reference&lt;/b&gt;&lt;/span&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Stytz, M.R., Adams, T., Garcia, B., Sheasby, S.M. and Zurita, B. (1997), Rapid prototyping for distributed virtual environments, &lt;i&gt;Software, IEEE, 14(5)&lt;/i&gt;, 83-92.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-2961554820819829919?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/2961554820819829919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-3-finding-some-common-ground.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/2961554820819829919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/2961554820819829919'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-3-finding-some-common-ground.html' title='Exercise 3: Finding some common ground'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-4365463789664885470</id><published>2009-03-09T09:09:00.000-07:00</published><updated>2009-04-01T00:21:46.017-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 02'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 2: Technology and the evolution of business options</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;Web quest: Find a range of five sites each offering different business options: online shopping, electronic payments, database access, WAP sites for mobile phones. Key words for your search engine: M-commerce, T-commerce and E-wallet.&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;Online shopping sites:&lt;/b&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Yahoo Shopping (&lt;a href="http://shopping.yahoo.com/"&gt;http://shopping.yahoo.com/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;RCmodel Online Shop (&lt;a href="http://shopping.rcmodel.hk/"&gt;http://Shopping.rcmodel.hk/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Lady Dress (&lt;a href="http://www.lady-dress.com/"&gt;http://www.lady-dress.com/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;The Country Porch (&lt;a href="http://www.countryporch.com/"&gt;http://www.countryporch.com/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;SHOP.COM (&lt;a href="http://www.shop.com/"&gt;http://www.shop.com/&lt;/a&gt;)&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Electronic payments sites:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;PayPal (&lt;a href="https://www.paypal.com/"&gt;https://www.paypal.com/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;E-Payment Pty Ltd. (&lt;a href="http://www.epayment.com.au/"&gt;http://www.epayment.com.au/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Payment Vision (&lt;a href="http://www.paymentvision.com/"&gt;http://www.paymentvision.com/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Word Pay (&lt;a href="http://www.worldpay.com/"&gt;http://www.worldpay.com/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;2Checkout.com (&lt;a href="http://www.2checkout.com/"&gt;http://www.2checkout.com/&lt;/a&gt;)&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Database access sites:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Bharat Book Bureau - International Market Research Online Database (&lt;a href="http://www.bharatbook.com/"&gt;http://www.bharatbook.com/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;World Book Online (&lt;a href="http://www.worldbookonline.com/"&gt;http://www.worldbookonline.com/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;HeinOnline (&lt;a href="http://www.heinonline.org/"&gt;http://www.heinonline.org/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Hoovers (&lt;a href="http://www.hoovers.com/"&gt;http://www.hoovers.com/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Grolier Online (&lt;a href="http://teacher.scholastic.com/products/grolier/"&gt;http://teacher.scholastic.com/products/grolier/&lt;/a&gt;)&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;WAP sites:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Hong Kong Observatory WAP site (&lt;a href="http://www.hko.gov.hk/hkowap.htm"&gt;http://www.hko.gov.hk/hkowap.htm/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;NBA Mobile (&lt;a href="http://wap.nba.com/"&gt;http://wap.nba.com/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Yahoo! WAP site (&lt;a href="http://wap.oa.yahoo.com/"&gt;http://wap.oa.yahoo.com/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;MLB.com (&lt;a href="http://wap.mlb.com/"&gt;http://wap.mlb.com/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Sohu (&lt;a href="http://wap.sohu.com/"&gt;http://wap.sohu.com/&lt;/a&gt;)&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-4365463789664885470?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/4365463789664885470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-2-technology-and-evolution-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/4365463789664885470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/4365463789664885470'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-2-technology-and-evolution-of.html' title='Exercise 2: Technology and the evolution of business options'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-513202189671078329</id><published>2009-03-08T19:58:00.000-07:00</published><updated>2009-04-01T00:19:37.235-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 01'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>Exercise 1: Analysis of the online communities paradigm</title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. Visit &lt;a href="http://yahoo.com"&gt;http://yahoo.com&lt;/a&gt; and &lt;a href="http://zope.org"&gt;http://zope.org&lt;/a&gt; as examples of online communities.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;a. What is meant by an online community and how is it important for e-commerce?&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;A number of people use the computer network as a media channel to communicate. They may use the tools such as newsletters, telephone, email, online social networks or instant messages to conduct their communication, but not face to face (Wikipedia, 2009). The online communication can be synchronous when participants are interacting in real time, or asynchronous when participants interact with spans of time between their information exchanges (Andrew &amp;amp; Matthew, 2004). Yahoo provide an online communication platform for public, but Zope only for those companies and developers which working on Zope applications.&lt;/span&gt;&lt;/span&gt; &lt;div&gt;&lt;p&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;E-commerce means doing business over Internet, selling goods and services which are delivered online and offline (Coppel, 2000). Online communication in the Internet provide a platform for e-commerce, e-commerce cannot work without online communication.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: bold; color: rgb(153, 51, 0);"&gt;&lt;span class="Apple-style-span"  style="font-size:130%;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;b. Visit the three auctions sites at &lt;a href="http://ebay.com"&gt;http://ebay.com&lt;/a&gt;,&lt;a href="http://ebay.co.uk"&gt; http://ebay.co.uk&lt;/a&gt; and &lt;a href="http://ebay.com.au"&gt;http://ebay.com.au&lt;/a&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span class="Apple-style-span"&gt;i. Is there a common thread and a local community sense in action?&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Yes, I find a common thread of 'Leather case cover wallet for Apple ipod touch 2' in all three ebay sites. The location of the items are same in Hong Kong. The Web sites also have local community sense, they show the item price in local currency (US $5.28 in US, GBP 3.73 in UK and AU $2.19 in AU). User may need to pay the extra local shipment fee. And some of the items are exclusive for local customer.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="color: rgb(153, 51, 0);"&gt;&lt;span class="Apple-style-span"  style="font-size:130%;"&gt;ii. What electronic payment systems are used? Are they globally acceptable?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;They are using the PayPal online pay system. PayPal is a famous globally acceptable pay system. PayPal has over 100 million accounts worldwide, user come from 190 countries and supports 18 currencies for payment (&lt;a href="https://www.paypal.com/hk/cgi-bin/webscr?cmd=_display-country-functionality-outside"&gt;https://www.paypal.com/hk/cgi-bin/webscr?cmd=_display-country-functionality-outside&lt;/a&gt;).  Users use their credit card such as Visa, Master, AE and etc to buy their item. PayPal is a middleman to complete the transaction payment without exposing credit card information to the merchant (&lt;a href="https://www.paypal.com/hk/cgi-bin/webscr?cmd=xpt/Marketing/securitycenter/buy/Index-outside"&gt;https://www.paypal.com/hk/cgi-bin/webscr?cmd=xpt/Marketing/securitycenter/buy/Index-outside&lt;/a&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;iii. What are the benefits to of an online auction sale to a buyer, a seller and E-bay owners?&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"&gt;The online auction are efficiency, open 24hrs x 7 days per week. Shopping without geography constrain and can be national and multinational companies for consumers resident anywhere with Internet connection. The costs of online auction are much cheaper than opening shop and advertising in many countries. &lt;/span&gt;&lt;/p&gt;&lt;p style="color: rgb(153, 51, 0);"&gt;&lt;span class="Apple-style-span"  style="font-size:130%;"&gt;c. Find three others examples of an online business using an online community approach.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;Shopping in Yahoo &lt;a href="http://shopping.yahoo.com/"&gt;http://shopping.yahoo.com/&lt;/a&gt;, Amazon &lt;a href="http://www.amazom.com/"&gt;http://www.amazom.com/&lt;/a&gt; and Disney&lt;a href="http://home.disney.go.com/"&gt; http://home.disney.go.com&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="color: rgb(153, 51, 0);"&gt;&lt;span class="Apple-style-span"  style="font-size:130%;"&gt;2. Visit the famous online store front at &lt;a href="http://www.amazon.com"&gt;http://www.amazon.com&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="color: rgb(153, 51, 0);"&gt;&lt;span class="Apple-style-span"  style="font-size:130%;"&gt;a. Why has it been a successful site? How does the purchase of a book work?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Amazon is satisfy the criteria in e-commerce such as efficiency, user friendly, open non-stop, globalization and competitive. The success of Amazon as she able to meet the consumers needs, and fully integrated of demand chain and supply chain stated by (Pereira &amp;amp; Fife 2000). Their said that Amazon offer a range of products and services, facilitated by a strong brand recognition. Amazon could facilitate readers to seek other and authors to discuss ideas. Amazon build browsing and searching capabilities in its site, and provides product information, reviews, recommendations, 1-click technology and personalization on a broad selection of products. Amazon was one of the first sites to customize pages for each registered customer, using collaborative filtering.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Steps for book purchase&lt;/b&gt; (&lt;span class="Apple-style-span"&gt;&lt;a href="http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700"&gt;http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700&lt;/a&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Find the book - browse or search the book. Type keyword in search box and located it in the page.&lt;/li&gt;&lt;li&gt;Add the book into shopping cart - click the 'Add to Shopping Cart' button on the book detail page.&lt;/li&gt;&lt;li&gt;Proceed to Checkout - review all books in the shopping cart and click 'To Buy Now' button to proceed checkout&lt;/li&gt;&lt;li&gt;Sign in or Create a new accounts - enter e-mail address and click 'Sign in' button&lt;/li&gt;&lt;li&gt;Enter a shipping address&lt;/li&gt;&lt;li&gt;Choose a shipping method&lt;/li&gt;&lt;li&gt;Provide payment information and password - accept credit cards such as AE, Visa, Master...&lt;/li&gt;&lt;li&gt;Review and submit the order - check the accuracy all of the information and make any necessary adjustments.&lt;/li&gt;&lt;li&gt;Check order status - review or change about the order that placed before&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;b. Is there any secure transactions not involving money?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create or maintenance customer account and view purchase history are a secure transactions process that is not involving money. Those Web pages are protected by Secure Sockets Layer (SSL) communications protocol, indicated by the 'https://' show at the beginning of Web page address.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;c. What is the range of items that you can buy?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The range of items that can be brought in Amazon:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Books&lt;/li&gt;&lt;li&gt;Movies, Music &amp;amp; Games&lt;/li&gt;&lt;li&gt;Digital Downloads&lt;/li&gt;&lt;li&gt;Computers &amp;amp; office&lt;/li&gt;&lt;li&gt;Electronics&lt;/li&gt;&lt;li&gt;Home &amp;amp; Garden&lt;/li&gt;&lt;li&gt;Grocery, Health &amp;amp; Baby&lt;/li&gt;&lt;li&gt;Apparel, Shoes &amp;amp; Jewelry&lt;/li&gt;&lt;li&gt;Sports &amp;amp; Outdoors&lt;/li&gt;&lt;li&gt;Tools, Auto &amp;amp; Industrial&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;i. List the steps involved and comment.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The above list is showed in the 'Shop All Departments' on the left hand side of the menu bar and changed into a pull down menu in other pages. It is a easy way for users to locate what their want on any pages in the site.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SbUvWFCevII/AAAAAAAAACU/9lXvkq81_zE/s1600-h/Picture+3.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5311203391909575810" style="width: 138px; cursor: pointer; height: 320px;" alt="" src="http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SbUvWFCevII/AAAAAAAAACU/9lXvkq81_zE/s320/Picture+3.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When you select the department by moving the pointer to it, the sub-category list will be show.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SbUxTBQ7AwI/AAAAAAAAACc/kfypXA671v8/s1600-h/Picture+4.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5311205538380055298" style="width: 266px; cursor: pointer; height: 320px;" alt="" src="http://3.bp.blogspot.com/_JwfAwvNAZ3Y/SbUxTBQ7AwI/AAAAAAAAACc/kfypXA671v8/s320/Picture+4.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;3. What happens with new models such as price comparison sites?&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:'Trebuchet MS';font-size:100%;"  &gt;&lt;span class="Apple-style-span"&gt;The huge growth of the Internet provides a new age of perfectly competitive markets. The price comparison sites provide a revolutionized way for consumers to gather prices and products information. With the perfect information about prices and products in our fingertips, consumers can quickly and easily find the best deals. Someone predicts that Internet market will eventually display pricing consistent stated by (Baye, Morgan &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=";font-family:georgia;font-size:100%;"  &gt;&lt;span class="Apple-style-span"&gt;&amp;amp; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:'Trebuchet MS';font-size:100%;"  &gt;&lt;span class="Apple-style-span"&gt;Scholten, 2004).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-weight: bold;font-size:180%;" &gt;&lt;span class="Apple-style-span"&gt;Reference&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:'Trebuchet MS';" &gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Andrew, F. W. and Matthew, J. S. (2004), Online communication 2nd edition, &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Routledge&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;.&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:'Trebuchet MS';" &gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Baye, M.R., Morgan, J and Scholten, P. (2004), Price dispersion in the small and in the large: evidence from an internet price comparison site, &lt;span style="font-style: italic;"&gt;The Journal of Industrial Economics 12/2004, 52(4)&lt;/span&gt;, 436-496.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:'Trebuchet MS';" &gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Coppel, J. (2000), E-commerce: impacts and policy challenges, O&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ECD Economics department working papers&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, 252.&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:'Trebuchet MS';" &gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Pereira, F. and Fife, E. (2000), Meeting consumer needs on the internet: successful business models, &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Center for Telecommunications Managemen&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;t&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, 217.&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:'Trebuchet MS';" &gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Wikipedia. (2009), Virtual community,&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; Wikipedial. &lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Retrieved from &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Virtual_community"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;http://en.wikipedia.org/wiki/Virtual_community&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; on 9th Mar, 2009.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&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/5460860580884516379-513202189671078329?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/513202189671078329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-1-analysis-of-online.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/513202189671078329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/513202189671078329'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/exercise-1-analysis-of-online.html' title='Exercise 1: Analysis of the online communities paradigm'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JwfAwvNAZ3Y/SbUvWFCevII/AAAAAAAAACU/9lXvkq81_zE/s72-c/Picture+3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-4925993182372835920</id><published>2009-03-06T00:49:00.000-08:00</published><updated>2009-04-01T00:01:09.291-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 01'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><title type='text'>Workshop 1: Setting up the model railway</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;&lt;span style="font-size:180%;"&gt;To do:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;1. Download iTunes from &lt;a href="http://www.apple.com/itunes/download/"&gt;http://www.apple.com/itunes/&lt;/a&gt;&lt;a href="http://www.apple.com/itunes/download/"&gt;download/&lt;/a&gt; and subscribe to the “Leraning Rails” Podcasts from &lt;a href="http://www.buildingwebapps.com/podcasts"&gt;http://www.buildingwebapps.com/podcasts&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;I do not need to install the iTunes, as my Mac already bundled with the iTunes.&lt;br /&gt;&lt;br /&gt;I had subscript the LearningRails free online Ruby on Rails course at &lt;a href="http://www.buildingwebapps.com/podcasts"&gt;http://www.buildingwebapps.com/podcasts&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are total 23 lessons in the learning Rails Podcasts. I receive the mail notice regularly from LearningRails that remind me to take the lesson one by one.&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;2. &amp;amp; 3. Setup Ruby on Rails in my MacBook Pro&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I had spent 2 days to complete the setup of the Rails in my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;MacBook Pro&lt;/span&gt;. I have used Mac for only half year, before that I use Windows only.&lt;br /&gt;&lt;br /&gt;I follow the steps in Website: &lt;a href="http://www.buildingwebapps.com/articles/6433-setting-up-rails-on-leopard-mac"&gt;Setup up &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;Rails on Leopard (Mac OS X 10.5)&lt;/a&gt;&lt;br /&gt;to setup the &lt;a href="http://www.buildingwebapps.com/topic/5108-ruby-on-rails-is-a-leading"&gt;Ruby on Rails&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The installation of Rails is not so smooth, the installer of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;MacPorts&lt;/span&gt; suspended in the middle of the process and finally could not be successfully complete. At last, I used the manual procedure to install it.&lt;br /&gt;&lt;br /&gt;After successful install of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;MacPorts&lt;/span&gt;, I cannot start the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Mysql&lt;/span&gt;. I had tried the installation statements for many times, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Mysql&lt;/span&gt; still cannot be started. Finally, I found out the problem is missing the two statements change in the “my.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;cnf&lt;/span&gt;” file.&lt;br /&gt;&lt;br /&gt;Thanks god, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Mysql&lt;/span&gt; is working.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SbOI6MZ-9dI/AAAAAAAAABY/o7AqK7vzlnA/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 143px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SbOI6MZ-9dI/AAAAAAAAABY/o7AqK7vzlnA/s320/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5310738918943946194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Oh! the Rails cannot start for the outdated version of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Rails Gem&lt;/span&gt;s. I go to the installation Web page for the &lt;a href="http://www.buildingwebapps.com/articles/6455-setting-up-rails-on-tiger-mac"&gt;Setup of Rails on Tiger (Mac OS X 10.4)&lt;/a&gt;, reinstall the Ruby, Ruby Gems and Git. Finally, Rails can be run.&lt;br /&gt;&lt;br /&gt;In the iTerm, type 'rails testApp' to create the project named 'testApp'&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SbOM2qE8yAI/AAAAAAAAACA/cN83jT9dF4g/s1600-h/Picture+6.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 177px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SbOM2qE8yAI/AAAAAAAAACA/cN83jT9dF4g/s320/Picture+6.png" alt="" id="BLOGGER_PHOTO_ID_5310743256235821058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the iTerm, type 'cd testApp', then 'ruby script/server' to start the Web server&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOKU_MoYrI/AAAAAAAAABo/M8ADT-9ZxgY/s1600-h/Picture+4.png"&gt;&lt;img style="cursor: pointer; width: 318px; height: 150px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOKU_MoYrI/AAAAAAAAABo/M8ADT-9ZxgY/s320/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5310740478766375602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Go into the Web browser, type 'http://localhost:3000/' to browse the Web site of 'testApp'&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SbOK0dQpdpI/AAAAAAAAABw/jteqBBuYofo/s1600-h/Picture+5.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 175px;" src="http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SbOK0dQpdpI/AAAAAAAAABw/jteqBBuYofo/s320/Picture+5.png" alt="" id="BLOGGER_PHOTO_ID_5310741019412231826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ruby on Rails is working in my Mac, Thanks.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;font-size:180%;" &gt;Challenge Problems:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;1. 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;Programming languages and Web development tools used by me list:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Pascal&lt;/li&gt;&lt;li&gt;Cobol&lt;br /&gt;&lt;/li&gt;&lt;li&gt;RPG AS400&lt;/li&gt;&lt;li&gt;Microsoft Foxpro&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Visual Basic .Net&lt;/li&gt;&lt;li&gt;Java&lt;/li&gt;&lt;li&gt;HTML&lt;/li&gt;&lt;li&gt;JavaScript&lt;/li&gt;&lt;li&gt;C&lt;/li&gt;&lt;/ul&gt;Web application framework is a software framework that support the dynamic websites, Web applications and Web services development. The aims of the framework are to lighten the overhead associated with common activities used in Web development (Wikipedia N.A.). Some features of Web Application (McGregor 2007):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Security - enable web server to identify the users of the application&lt;/li&gt;&lt;li&gt;Database access and mapping - a unified API to database backend, enabling web application to work with varity of database&lt;/li&gt;&lt;li&gt;Caching - reduce bandwidth usage and server load.&lt;/li&gt;&lt;/ul&gt;ASP.NET is a web application framework by Microsoft, developers can use to build dynamic websites, web applications and XML web services. Perl, Python and Ruby are numerous dynamic language frameworks. Maypole and Catalyst are Perl framework. Django, TurboGears, Pylons, Quixote and Karrigell are Python framework. Ruby on Rails is a particularly well known framework (McGregor 2007).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;2. 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;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Ruby is an interpreted scripting language as it does not have compiler. We simply pass the plain text script into Ruby to processes it on the fly, bypasses the compilation step. "Ruby scripts are far more portable and more flexibility, as it can perform incredible feats of agility that leave compiled languages sitting on the sideline staring open mouthed in disbelief" said by (Alameda 2008, P.15). Ruby code is able to be far more dynamic and even enhance itself at runtime (Alameda, 2008).&lt;br /&gt;&lt;br /&gt;In Ruby everything is an object. Alameda (2008, P.15) said that 'Ruby brings forth a completely unified vision of how object orientation within a programming language should be'. In object orienation programming (OOP), each object has its own unique attributes, and each object is able to interact and communicate with other objects. We first define a class, before creating an object. A new instances of an object is created by class. Generic properties and methods are defined in each class, that will be shared among all instances of that class. We use methods to represent things that an object can do. All of the above OOP attributes are implemented in Ruby (Alameda, 2008).&lt;br /&gt;&lt;br /&gt;Coding the class in Ruby:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;class Cat&lt;br /&gt;attr_accessor :name, :breeed&lt;br /&gt;&lt;br /&gt;def cry&lt;br /&gt;puts "mi mi"&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def wag_tail&lt;br /&gt;puts "Wagging Tail"&lt;br /&gt;end&lt;br /&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Coding of create a new instance in Ruby using new keyword:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;catA = Cat.new&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Coding of using setter methods that were created to set catA's properties:&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;catA.name = "MiMi"&lt;br /&gt;catA.breed = "Burmese cat"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Coding of call the methods that created to interact with our new cat:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;catA.cry             # mi mi&lt;br /&gt;catA.name         # "MiMi"&lt;br /&gt;catA.wag_tail    # wagging tail&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;3. What is Rails and how does it work with Ruby?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Rails is an add-on to the Ruby. Rails contains a library that full of Ruby code and scripts for generating parts of applications. Most likely, Ruby framework is an add-on to the Ruby programming language. Rails is lightweight and nimble frameworks used to solve the Web and database problem in Ruby (&lt;span&gt;Burd, 2007&lt;/span&gt;). Burd claims that write a Rails application in one-tenth the time it takes to write the same application using a heavyweight frameworks. He also said that Rails is built on the principles: 1. convention over configuration and 2. Don't Repeat Yourself (DRY).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;4. What is meant by “convention over configuration” in regards to the use of Rails in Web application development?&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;"convention over configuration" is one of the Rails' built on principles. A Web application is combine from many parts, and you can connecting them in anyways. A way to deal with parts of an application that names like picture and image bear little relation to one another. The programmer hook the application's parts together using a configuration file.  It is confusing if the configuration file encodes with different facts such as "variable picture reads data from column image", "variable quotation reads data from column stock_value" or "variable comment_by_expert" reads data from column quotation. Programmer spend hours writing configuration files and specifying complex chains of names. The result of errors creep into the system, spend more hours chasing bugs. Rails avoid configuration in favor of naming conventions. In Rails variable named image matches automatically with a column of the same name in the database table, this is called "convention over configuration". Most of the configuration files are completely unnecessary in Rails.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;5. When did Model-View-Controller begin and where is it used?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Model-View-Controller (MVC) pattern was originally designed for the structuring code of applications that have a graphical user interface stated by (Alameda, 2008). Although it is often implemented in slightly different ways, the core idea of MVC is to separate the code into 3 distinct areas of responsibility. Ruby on Rails helps to keep the Web applications organized through its implementation of the MVC pattern.&lt;br /&gt;&lt;br /&gt;MVC use in &lt;span style="font-weight: bold;"&gt;1.&lt;/span&gt; code that controls or manipulates the data associated with the application or stores business logic for validation or formatting of data will be stored in the&lt;span style="color: rgb(0, 0, 153);"&gt; Model&lt;/span&gt; layer. &lt;span style="font-weight: bold;"&gt;2.&lt;/span&gt; The HTML templates are eventually displayed to the end user in respone to a web request would be stored within the &lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;View&lt;/span&gt; &lt;/span&gt;layer. Finally, &lt;span style="font-weight: bold;"&gt;3. &lt;/span&gt;the &lt;span style="color: rgb(0, 0, 153);"&gt;Controller&lt;/span&gt; layer where we store the code that responds to user's request by interacting with models to obtain the correct data and choosing which view to render in response (Alameda, 2008).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;6. Describe the steps involved with the MVC design approach.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The different parts of the MVC pattern used in the Rails request-response cycle show in the figure from (Alameda, 2008):&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/ScC7W53LlbI/AAAAAAAAAH8/xa5wHmTNEjg/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 366px;" src="http://1.bp.blogspot.com/_JwfAwvNAZ3Y/ScC7W53LlbI/AAAAAAAAAH8/xa5wHmTNEjg/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5314453562460968370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The following steps occur in response to a request for a Web page:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;receive a new request for a Web page to our Rails application&lt;/li&gt;&lt;li&gt;Rails routes the request to a controller for processing&lt;/li&gt;&lt;li&gt;controller interacts with the models in the application to gather the necessary data&lt;/li&gt;&lt;li&gt;model classes may retrieve or insert data into database&lt;/li&gt;&lt;li&gt;once models have generated or retrieved the correct information, will return the data back to the controller&lt;/li&gt;&lt;li&gt;the controller collects all of the data it's received from the models and selects a view template to render&lt;/li&gt;&lt;li&gt;the view template is rendered using the data that controller gathered and handed to the Web server.&lt;/li&gt;&lt;li&gt;An HTML page is returned to the user&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Alameda, A. (2008), Foundation rails 2, &lt;span style="font-style: italic;"&gt;Springer-Verlag New York, Inc.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Burd, B. (2007), Ruby on rails for dummies, &lt;/span&gt;&lt;span style="font-style: italic;"&gt;Wily Publishing, Inc.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;McGregor, K. (2007), Web Application Framework, Retrieved from &lt;a href="http://www.articlesbase.com/internet-articles/web-application-framework-197026.html"&gt;http://www.articlesbase.com/internet-articles/web-application-framework-197026.html &lt;/a&gt;on 17th Mar, 2009.&lt;/li&gt;&lt;li&gt;Wikipedia (N.A.), Web application frameword, Retrieved from &lt;a href="http://en.wikipedia.org/wiki/Web_application_framework"&gt;http://en.wikipedia.org/wiki/Web_application_framework&lt;/a&gt; on 17th Mar, 2009.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5460860580884516379-4925993182372835920?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/4925993182372835920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/setting-up-rails-in-my-macbookpro.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/4925993182372835920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/4925993182372835920'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/setting-up-rails-in-my-macbookpro.html' title='Workshop 1: Setting up the model railway'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JwfAwvNAZ3Y/SbOI6MZ-9dI/AAAAAAAAABY/o7AqK7vzlnA/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5460860580884516379.post-8087918705925293888</id><published>2009-03-06T00:42:00.000-08:00</published><updated>2009-03-08T01:57:56.522-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Introduction'/><title type='text'>Study in CSU MIT</title><content type='html'>I'm Dennis from Hong Kong. This may be my final semester study in MIT, if both subjects pass in this semester. I got my computer science degree in last year and continue to take this part time long distance learning in this year.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Student ID: 11401315&lt;/div&gt;&lt;div&gt;Student Name: Leung Sui Cheong&lt;/div&gt;&lt;div&gt;&lt;br /&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/5460860580884516379-8087918705925293888?l=lsc1111.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lsc1111.blogspot.com/feeds/8087918705925293888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lsc1111.blogspot.com/2009/03/study-in-csu-mit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/8087918705925293888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5460860580884516379/posts/default/8087918705925293888'/><link rel='alternate' type='text/html' href='http://lsc1111.blogspot.com/2009/03/study-in-csu-mit.html' title='Study in CSU MIT'/><author><name>Dennis Leung</name><uri>http://www.blogger.com/profile/14332952594344633828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_JwfAwvNAZ3Y/SbOChWwirCI/AAAAAAAAAAo/pnzsmnzNG8k/S220/DSCN3199.jpg'/></author><thr:total>0</thr:total></entry></feed>
