<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-5837873896111880182</atom:id><lastBuildDate>Fri, 30 Aug 2024 17:53:09 +0000</lastBuildDate><category>Exercise</category><category>Workshop</category><category>Exercise 20</category><category>Exercise 1</category><category>Exercise 24</category><category>Exercise 25</category><category>Exercise 4</category><category>Workshop 1</category><category>Exercise 10</category><category>Exercise 11</category><category>Exercise 26</category><category>Exercise 5</category><category>Exercise 9</category><category>Workshop 5</category><category>Workshop 6</category><category>Elevator Pitch</category><category>Exercise 16</category><category>Workshop 2</category><category>Workshop 3</category><category>Workshop 4</category><category>Workshop 7</category><category>About Me</category><category>Elevator Pitch 1</category><category>Elevator Pitch 2</category><category>Exercise 12</category><category>Exercise 13</category><category>Exercise 14</category><category>Exercise 15</category><category>Exercise 17</category><category>Exercise 18</category><category>Exercise 19</category><category>Exercise 2</category><category>Exercise 21</category><category>Exercise 22</category><category>Exercise 23</category><category>Exercise 3</category><category>Exercise 6</category><category>Exercise 7</category><category>Exercise 8</category><category>FYP-A1</category><category>FocusGroup</category><category>FocusGroup1</category><category>Workshop 8</category><title>Sam Kwong 's Blog</title><description>E-systems Infrastructure Development</description><link>http://samkwong.blogspot.com/</link><managingEditor>noreply@blogger.com (Unknown)</managingEditor><generator>Blogger</generator><openSearch:totalResults>83</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle>E-systems Infrastructure Development</itunes:subtitle><itunes:category text="Technology"><itunes:category text="Gadgets"/></itunes:category><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-3255749287480112965</guid><pubDate>Sun, 24 Jan 2010 17:45:00 +0000</pubDate><atom:updated>2010-01-24T09:48:40.840-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FYP-A1</category><title>Final year project</title><description>From the start of 2010 to present, i review some system development methodologies for my final year project.&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2010/01/final-year-project.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-1264518110063832251</guid><pubDate>Tue, 26 May 2009 01:36:00 +0000</pubDate><atom:updated>2009-05-26T20:16:22.046-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Elevator Pitch</category><category domain="http://www.blogger.com/atom/ns#">Elevator Pitch 2</category><title>Elevator Pitch 2</title><description>&lt;strong&gt;Elevator Pitch 2&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I intend to build up an ebusiness for online fast food order and delivery service so far, after I have studied the ITC594 module, I have a further understanding on ebusiness development.&lt;br /&gt;&lt;br /&gt;Firstly, I would define my ebusiness working on client server architecture in an internet environment.&lt;br /&gt;&lt;p&gt;Secondly, I would consider what kinds of software development methodology should be used in developing a web application with short development period, for fulfilling this requirements, I would like to choose RAD, because I don’t want to have other competitors releasing that kind of application are faster than me. &lt;/p&gt;&lt;p&gt;Thirdly, I need follow the RAD framework to build up my ebusiness with its required techniques and tools. &lt;/p&gt;&lt;p&gt;Fourthly, I would follow the XML scheme and W3C standard in order to make my web application more structural and standard, and also define more keywords in the html headers and tags that are easy for customer searching by search engine. &lt;/p&gt;&lt;p&gt;Fifthly, I would consider the internet security, so that I should implement a hardware firewall and use internet security protocol in order for having a high internet security protection. &lt;/p&gt;&lt;p&gt;Sixthly, I would like to choose Pay pal to be my online payment method, because Pay pal is very famous, that can give a high confidence to the customers. &lt;/p&gt;&lt;p&gt;And finally, after my web application has passed the test plan and has migrated from development to production environment, I would like to join my web application to some famous search engine for example, Yahoo, Google and AltaVista for increasing the website rating. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/elevator-pitch-2.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-8992507744780507848</guid><pubDate>Mon, 25 May 2009 01:14:00 +0000</pubDate><atom:updated>2009-05-25T18:25:16.887-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Workshop</category><category domain="http://www.blogger.com/atom/ns#">Workshop 8</category><title>Workshop 8</title><description>&lt;strong&gt;Evaluation and Report&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. List what you consider to be the three strengths of Ruby on Rails workshop series&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I consider the 3 strengths to be:&lt;br /&gt;&lt;br /&gt;a. We can learn ROR via workshop 1 -6 step by step, that is easy for us to understand ROR.&lt;br /&gt;b. We can learn MVC from workshop 1-2 step by step, that is clearly for us to understand how to apply MVC in ROR.&lt;br /&gt;c. We can learn how to use scraffolding, rake, session, post/get, cookie, etc from workshop 1-6 gradurately in order to build up a rapid application.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. List what you consider to be the three weaknesses of Ruby on Rails workshop series:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I consider the 3 weaknessess to be:&lt;br /&gt;&lt;br /&gt;a. Some provided tutorial link is dead link.&lt;br /&gt;b. The recommented book from CSU library is always session full, we need to wait for other students logout and then we can access...&lt;br /&gt;c. In workshop 5, the provided source code has a bug, we need to debug first before doing the workshop.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. List what aspects of Ruby on Rails workshop series that you found to be most &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;difficult.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The most difficult aspects were:&lt;br /&gt;&lt;br /&gt;a. Initially it is difficult to understand the MVC architecture in ROR, for example, what is the relationship between model, views and controllers in ROR?&lt;br /&gt;b. Need to study how to create the table attributes by using db schema.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. List what improvements could be made to the Ruby on Rails workshop series:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;a. Verify the provides study link and source code whether is workable before anounces.&lt;br /&gt;b. Teach the student how to do the transaction as well, because transaction is the core of e-business.&lt;br /&gt;c. Use IDE for ROR project development.&lt;br /&gt;&lt;br /&gt;&lt;strong&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;/strong&gt;&lt;br /&gt;&lt;br /&gt;I have a experiance on using java servlet, mysql and apache to do the booking system, it is not effective if comparing with ROR because java code is more complex than ROR. I suggest to use Netbean IDE for ROR project development, because it can help to verify the code syntex that avoid syntax error. I think other web frameworks such VB.NET that should be better than ROR.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;6. Did the Developer or IT manager 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;/strong&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;When I work as a developer, I would like to use MySQL Query Browswer to perform data query use NetBeans IDE to edit my program code and use Rubywaver to create my web application interface.&lt;/p&gt;&lt;p&gt;This is my first time post my findings in Interact wiki tools, I think sub-forum mainly is used for group discussion and interact wiki tools mainly is used for finding the defination. There is totally different.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;7. Further comments to add?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;a. Too Many exercises. &lt;/p&gt;&lt;p&gt;b. Talk more about transactions.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/workshop-8.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-5864756007863116066</guid><pubDate>Mon, 18 May 2009 05:17:00 +0000</pubDate><atom:updated>2009-05-24T18:13:51.622-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Workshop</category><category domain="http://www.blogger.com/atom/ns#">Workshop 7</category><title>Workshop 7-part 2</title><description>&lt;strong&gt;To Do - part 2&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A. Topic reading from Safari Books OnlineHartl, M &amp;amp; Prochazka, A, (2008). RailsSpace: Building a Social Networking Website with Ruby on Rails, Pearson EducationThis workshop continues to use your reading of the ‘RailsSpace’ online book and use of other online sites.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I have partially read Safari Books OnlineHartl, M &amp;amp; Prochazka, A, (2008) at CSU library.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;B. Focus QuestionAs either a developer or as an IT manager, what are the options available when deploying and maintaining the Ruby on Rails application online?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;According to the given discussion note, I discuss with Joseph Cheung. The options available when deploying and maintaining the Ruby on Rails application online are...&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1. Windows Platform VS Linux&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We select Linux as our platform because Linux is freeware with higher stability than MS-Window&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2. Skillset on ROR and Platform&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;There is no issue on skill set of ROR and Linux Platform because both of us have sound skills on ROR and Linux&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3. Hosting Issue&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We will place the server in our office as a production environment&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4. Scalability &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We will use the mongrel clusters for fault tolerance and Lunix RAID 5 external diskarry so volume expansion become easy.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;5. Tools&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We will use ROR freeware tools on the web.&lt;/p&gt;&lt;p&gt;From the given intruction,which way you choose to go will most likely depend upon:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The user interface and your own skills;&lt;/li&gt;&lt;li&gt;How quickly you are guided through deployment by admin tools that simplify management of the system;&lt;/li&gt;&lt;li&gt;System back-up, data security, virtualization and portability features&lt;/li&gt;&lt;li&gt;Future-proofness: (grid computing or a cloud computing service);&lt;/li&gt;&lt;li&gt;How much time and money is saved by an efficient deployment and maintenance schedule.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This guideline is very important and useful, but it sometimes is session full, that i need to wait for someone's logout. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/workshop-7-part-2.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-7398208950333770820</guid><pubDate>Mon, 18 May 2009 00:40:00 +0000</pubDate><atom:updated>2009-05-17T20:59:26.634-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Workshop</category><category domain="http://www.blogger.com/atom/ns#">Workshop 7</category><title>Workshop 7-part 1</title><description>&lt;strong&gt;To Do:&lt;br /&gt;&lt;br /&gt;Developers conclude their work with the OTBS and look at the options for deployment of the site. Examine the various platforms/software tools used for deployment such as UNIX environment suggested in the Discussion Notes, Mongrel or Mongrel cluster, Nginx, Subversion or Capistrano (during development stage), JRuby in the Java environment.&lt;br /&gt;&lt;br /&gt;Which way?&lt;br /&gt;&lt;br /&gt;The choice is up to you as this workshop present just one option and you may like to use another, such as deploying the OTBS in a .NET or J2EE environment&lt;br /&gt;&lt;br /&gt;Can you get the OTBS Running in production mode as a minimal production server?&lt;br /&gt;&lt;br /&gt;Share your success by posting progress comments and links etc to the Developers sub-forum site that has been set up for the Red team.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;In my OTBS project, I install instantRails2.0 in my windows XP's PC and I feel instantRails2.0 is a good software for the student/developer to study ROR. &lt;/p&gt;&lt;p&gt;InstantRails2.0 has included mongrel web server, mysql server and ROR. Also, It is already preconfigures every setting for them.&lt;/p&gt;&lt;p&gt;In ROR development, i would like to use "rake" to generate the data table and use scaffolding to generate the view page. It is very good for Rapid application development.&lt;/p&gt;&lt;p&gt;Furthermore, i feel ROR is very convenient for SQL operation, because we do not need to create the SQL server connection string for query, insert, delete and update the DB. &lt;/p&gt;&lt;p&gt;Personally, I would like to implement my OTBS project from windows to linux platform because the performance of linux is better than windows. That's true. Also, I would like to use Mongrel cluster as well as using Mongrel, because Mongrel cluster simplifies the deployment of webapps and it conveniently configures and controls several mongrel servers, or groups of mongrel servers.&lt;/p&gt;&lt;p&gt;When need to get my OTBS running in production mode as a minimal production server, please following the below procedure:&lt;/p&gt;&lt;p&gt;1.) Backup the development database of OTBS by backup application which supports database backup for example NETVAULT.&lt;/p&gt;&lt;p&gt;2.) Use MYSQL query browser to gather the development table dictionary defination and save it in a text file.&lt;/p&gt;&lt;p&gt;3.) Using the development table dictionary defination file to create an identical table or db in production environment.&lt;/p&gt;&lt;p&gt;4.) Use Netvault with "copy data table" option to restore the development db to production db.&lt;/p&gt;&lt;p&gt;5.) Start the mongrel server in production mode by issuing the command -&lt;/p&gt;&lt;p&gt;mongrel_rails start -e production&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/workshop-7-part-1.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-1354947640743694779</guid><pubDate>Sat, 16 May 2009 04:10:00 +0000</pubDate><atom:updated>2009-05-17T00:22:12.770-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Workshop</category><category domain="http://www.blogger.com/atom/ns#">Workshop 6</category><title>Workshop 6 -part 3</title><description>&lt;strong&gt;C. Set up a session in OTBS.&lt;/strong&gt;&lt;br /&gt;C1. Add session-check function in OTBS with following code. (See figure 1 to 4.)&lt;br /&gt;If Session[:uid] is true, the system will display the corresponding page info;&lt;br /&gt;If Session[:uid] is false, the system will request user to login.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5336676966062937570" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 352px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrvU2w4UJplOjQIvaYa4DQSW28WLGFblKgksVIxgcy0vcnZe5w2DpKpI3TKXLCrKxA3IfqKFDAvUH_w7OQtOqFy0zjrTocT_0rBPixRxuGW92qP4FdK-eqFMxrPPXlD2Bs8EJ8r0jIOnXw/s400/1.bmp" border="0" /&gt; &lt;p align="center"&gt;&lt;strong&gt;Figure 1. Passenger's index.rhtml page&lt;/strong&gt;&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5336680024386698322" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 367px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ7u_RB_sUNXzDXv_EJ1iYa3VSH3umKkqwHNjYxS5J0mzBRJZxRkrMaID8RkojQMP_PWaL1vSdcu_hct9jjd2KsPROzltkStZcjx_fNS6GYekVSUGHBxZ6Ywc3UZ4lz7e9G2kLgGE01uxz/s400/2.bmp" border="0" /&gt; &lt;p align="center"&gt;&lt;strong&gt;Figure 2. Passenger's new.rhtml page.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336681196733309458" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 385px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEBkIab-QbEoD6t5mPg8nZu8Na6YNY0ba5RfJLyZ9KyPPdp3VpzeA9CS4Rujx3UW_MnVKmMBxJDVm_PNiVZxAUE8ClMHhNjOI6mcL9hWfVK-F6ZWVkYSNVXow8MOak9jT2WSP7sgDNY435/s400/3.bmp" border="0" /&gt;&lt;strong&gt; Figure 3. Passenger's show.rhtml page&lt;/strong&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336682695231745794" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 339px; CURSOR: hand; HEIGHT: 457px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPEAG_8PAjrkkDQCBd6JpUmj3fHzj4x4nydHBEVF-KdOQaY5yaVliProdEuRx6KK6dytP4wdiTppjv1u8xOih6ov0i9zHvyQYG1RTpDd6ww8Q4mF_0Sn-aYKVZP5h2Vh4ekafkmzZcdx6O/s400/4.bmp" border="0" /&gt;&lt;strong&gt;Figure 4. Passenger's edit.rhtml page.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;C2. Check the session of OTBS.&lt;/p&gt;&lt;p&gt;i.) If you directly access the passenger's index/new/edit page, it will requests user to login. (see video 1.) &lt;/p&gt;&lt;p align="left"&gt;&lt;/p&gt;&lt;iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='600' height='480' src='https://www.blogger.com/video.g?token=AD6v5dy7gYvWx8FZC0PUYrcOG3WGhINeoWbIwQWKf43_VxxlQdTw1sVluGOoTdk9nT6hFsq6QWSfJ_kXT-v56OIs' class='b-hbp-video b-uploaded' frameborder='0'&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><enclosure length="0" type="video/mp4" url="http://www.blogger.com/video-play.mp4?contentId=a86591e9940e10c&amp;type=video%2Fmp4"/><link>http://samkwong.blogspot.com/2009/05/workshop-6-part-3.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrvU2w4UJplOjQIvaYa4DQSW28WLGFblKgksVIxgcy0vcnZe5w2DpKpI3TKXLCrKxA3IfqKFDAvUH_w7OQtOqFy0zjrTocT_0rBPixRxuGW92qP4FdK-eqFMxrPPXlD2Bs8EJ8r0jIOnXw/s72-c/1.bmp" width="72"/><thr:total>0</thr:total><itunes:explicit>no</itunes:explicit><itunes:subtitle>C. Set up a session in OTBS. C1. Add session-check function in OTBS with following code. (See figure 1 to 4.) If Session[:uid] is true, the system will display the corresponding page info; If Session[:uid] is false, the system will request user to login. Figure 1. Passenger's index.rhtml page Figure 2. Passenger's new.rhtml page. Figure 3. Passenger's show.rhtml pageFigure 4. Passenger's edit.rhtml page. C2. Check the session of OTBS. i.) If you directly access the passenger's index/new/edit page, it will requests user to login. (see video 1.) This blog is created at March of 2009, which is powered by Sam Kwong!</itunes:subtitle><itunes:author>noreply@blogger.com (Unknown)</itunes:author><itunes:summary>C. Set up a session in OTBS. C1. Add session-check function in OTBS with following code. (See figure 1 to 4.) If Session[:uid] is true, the system will display the corresponding page info; If Session[:uid] is false, the system will request user to login. Figure 1. Passenger's index.rhtml page Figure 2. Passenger's new.rhtml page. Figure 3. Passenger's show.rhtml pageFigure 4. Passenger's edit.rhtml page. C2. Check the session of OTBS. i.) If you directly access the passenger's index/new/edit page, it will requests user to login. (see video 1.) This blog is created at March of 2009, which is powered by Sam Kwong!</itunes:summary><itunes:keywords>Workshop, Workshop 6</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-5143540086838937788</guid><pubDate>Sat, 16 May 2009 02:33:00 +0000</pubDate><atom:updated>2009-05-15T21:08:05.275-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Workshop</category><category domain="http://www.blogger.com/atom/ns#">Workshop 6</category><title>Workshop 6 -part 2</title><description>&lt;div align="left"&gt;&lt;strong&gt;To D0 - part2. &lt;/strong&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;strong&gt;B. Create login page&lt;/strong&gt;&lt;br /&gt;B1. Create a controller named checkauth for handling some events, for example, logout, session timeout, logged-in redirection(see figure 1.)&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336254417727246466" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 142px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJutg2EhzJTeG59APOBJ2jhbKXH1wy2MhSueBqqpLEcHYVINXOrgTGBqFoGBaR0qsUURt1N3b37b7xNF_kxhm3v1zfeysUAFFGe3XTGQa9Jz8qUGaqrHVEbDWi6932LgxUOOWqcLxxkqs8/s400/1.bmp" border="0" /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;strong&gt;Figure 1.&lt;/strong&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div align="left"&gt;B2. Edit the checkauth controller with the following code (see figure 2.)&lt;/div&gt;&lt;div align="left"&gt;i.) pass_login method is used when the user login information has been verified.&lt;/div&gt;&lt;div align="left"&gt;ii.) logout method is used when the user logs out the system.&lt;/div&gt;&lt;div align="left"&gt;iii.) check_auth is used when the session is invaild.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336257039154314994" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 386px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJYX631pI_u7azoyGo9WImo1o7IoXBFO5vBecqmFIcbQpTyTfdaD0Vn3JHcxKHUkD4UGA7Xmczof6wfw-GYGM8tYnNYNtVu0gOwZn0N2Dj7Yl5q6DWEG0XAp9fgIh83K9eoEb2AQJSV4w2/s400/2.bmp" border="0" /&gt;&lt;/p&gt;&lt;div align="center"&gt;&lt;strong&gt;Figure 2.&lt;/strong&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;B3. Create a method name login in the user controller with following code. (see figure 3.)&lt;br /&gt;The login method mainly is doing:&lt;br /&gt;i.) Collect value of the variable named "login" and "password".&lt;br /&gt;ii.)Check the user name and password whether is vaild, if it is correct, redirect to passengers' index page, if it is incorrect, prompt out an error message. &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;p align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336257868989648946" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 298px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiszbMzRsMvPPtB5jG67nNC6_YBuKEkukbl-ixG148aRtsGfnV_vNlFmKW3_HSLf83fqn5idbW6VSxHLPWiOvrpXlUpJCDyS8K_V7t1rwKoLfJMh75W7fHuaQmMdemj8mhxPbsmfcsg3Dwa/s400/3.bmp" border="0" /&gt; &lt;strong&gt;Figure 3.&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;B4. Create a user view named register.rhtml with following code. (see figure 4.)&lt;/p&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5336261196503560338" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 324px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVsLwrDAZMDIEvrVc7PAcNTWc1STdwf20m635IuIjCDBEtYZrA7sBOMmmaSF7beA09eQMbJ9cQ1xi_m3tEPMS04m09GPCo6IHLl287EmxNPnAycaugGuODzgT7RPPfYYhzMXbsJovSNqMT/s400/4.bmp" border="0" /&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;strong&gt;Figure 4.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;B5. Restart the TaxiApp project and navigate to login page. (see figure 5.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5336261947263829746" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 395px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsG7fJ9mrr3bDXRY-KT0chr6UP_TGfcp2HLQw8l5TdpOCeYOMbSmj_g_wsH9Z8xXKLVYZ2TA1rVJS1QMktm-6srMKl5D7UaTkF4oBfBin_BLfCc2P5SAr8F2YeuGlIZVVg2kWKHnJS7YG2/s400/5.bmp" border="0" /&gt; &lt;p align="left"&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;strong&gt;Figure 5.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;B6. Test login page &lt;/p&gt;&lt;p&gt;i.) Input a wrong login info. (see figure 6.) &lt;/p&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5336264721581567618" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 395px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDjo9uNhpE5NuHal4HSyjivgExTC5ICTpS3KYTWviqSDkx_zi2ny4hfmJJO9-XqXQYQdPrXyqVHMTG_jmoPQQQhwiMJcUcTsDH5sAUwkBoqaOmxmngcIsal3HDxXbKwO9UWXpcdPplqig-/s400/6.bmp" border="0" /&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;strong&gt;Figure 6.&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;ii.) Input a correct login information. (see figure 7.) &lt;/p&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5336265714192238306" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 298px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBGNQmzNuWWt1g82Lj-P46i1dze5i-idNOxcX5RrJPHZfErAQJMndxIqZ8vY9DcFdPde8G39AFkiAiStGiNhn9hmU1Z1hLd2UUucFIJXHJZ3RG_AZDBhJy5MfumEn60wmsBSPLfbu0Qm90/s400/7.bmp" border="0" /&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;strong&gt;Figure 7.&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="left"&gt;iii.) Click the link named "Register here". (see figure 8.)&lt;/p&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5336267082301940978" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 334px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGGdutLGfFqyVGrx1OsgECDlno1HGG_cy8-Fg862vsdvRrAA2xoN7MXIlXy6EXkJNkxncsTraBdhC_Vwd21gPas8PSYLxQCBCauRJ9KeQgxMMe9lHFPQhTvUcpxBghud8YSbxU8zqgM5s-/s400/8.bmp" border="0" /&gt; &lt;div align="center"&gt;&lt;strong&gt;Figure 8.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p align="center"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/workshop-part-2.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJutg2EhzJTeG59APOBJ2jhbKXH1wy2MhSueBqqpLEcHYVINXOrgTGBqFoGBaR0qsUURt1N3b37b7xNF_kxhm3v1zfeysUAFFGe3XTGQa9Jz8qUGaqrHVEbDWi6932LgxUOOWqcLxxkqs8/s72-c/1.bmp" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-9150011661395714781</guid><pubDate>Thu, 14 May 2009 06:43:00 +0000</pubDate><atom:updated>2009-05-15T21:07:24.899-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Workshop</category><category domain="http://www.blogger.com/atom/ns#">Workshop 6</category><title>Workshop 6-part 1</title><description>&lt;div align="left"&gt;&lt;strong&gt;To do -Part 1&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&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;/strong&gt; &lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="left"&gt;&lt;strong&gt;generate a controller and an action by adding a method(s) to a controller.&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;&lt;strong&gt;create a view template for each action and to link to actions from views.&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;&lt;strong&gt;use AJAX to improve the user experience.&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="left"&gt;&lt;strong&gt;A. OTBS Registration.&lt;/strong&gt;&lt;br /&gt;A1.&lt;strong&gt; &lt;/strong&gt;Create a model named user. (See figure 1).&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5335979588052383682" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 109px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitd5Em543hE4ADWsG-iVJWIfEXhkivaF4JSroUafsJVCf_PSFLPAVr4CCTCQ5GIHVXqkrlbPwpXtVPSHePZBmtGaW1H9-FLeq9pOHZNGjdKh4XbpE31YgdqRX-xg1PETpt-PMHoFzPBBhu/s400/1.bmp" border="0" /&gt; &lt;p align="center"&gt;&lt;strong&gt;Figure 1.&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;A2. Edit the file named 002_create_users file for auto generating table by rake migrate&lt;/span&gt; (see figure 2.)&lt;br /&gt;&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5335980090697608322" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 373px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiENEypVc0ohgi_vBSZzhprIQedVNBFeeEI8_f-46g14nQYgKUdxlfiifdkN5TD8B-rJYO66WOQKJNWYEOBbYXI2oBgyKHfCEa0aN0rr9vcaXkAgiV7674sHqHAsmrYWQdWYYMjPnf7uVZ/s400/2.bmp" border="0" /&gt; &lt;p align="center"&gt;&lt;strong&gt;Figure 2.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="left"&gt;A3. Generate the user table (See figure 3.)&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5335981497623365842" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 168px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVHogmEAKNI-vLso_rvjtxsXIpBMiQQ_PkhoPotEiM-9u-pvThtfJwU2p_9qY82ccTvVm6KfyM5Cd7je25bmBQq5UKUhiEDeMFky40efo_5q7SQYSvW-mk8tVAYVJiOHcpWupJh6XCm8FA/s400/3.bmp" border="0" /&gt; &lt;p align="center"&gt;&lt;strong&gt;Figure 3.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div align="left"&gt;A4. Create controller name user. (See figure 4.)&lt;/div&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5335982109855758354" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 161px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2QHpLgPoLg8Y8GpZqDljxrqQnAOZ7xpJWVnUooJ9EL1v7bkHRtKzDXjALuxw-seh1dOAAWY2C2qvIrACNc0tHR5vuhvi9Dpm56aeh-XFpd2_1lHu-pfxuFAToZO98LncJqbOuSG2PGFoa/s400/4.bmp" border="0" /&gt; &lt;p align="center"&gt;&lt;strong&gt;Figure 4.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div align="left"&gt;A5. Edit the user controller (See figure 5), use &lt;strong&gt;AJAX methods&lt;/strong&gt;- &lt;strong&gt;flash[:info]&lt;/strong&gt; to show the registration result.&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5335983677886450786" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 292px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSIMRB4BuONOYsCZ0SWuMxvKmLZgGPzPSFdKOP7vkridr71mWvv4VhMRg4CqniOWnccuvaIizRjzWcbYpTVopJeABEA0Bn_3jzIklOCQrYPg9omR3uM16M170gfmybQjlQEcTHozwaJnxQ/s400/5.bmp" border="0" /&gt; &lt;strong&gt;Figure 5.&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;A6. Add validation in user model (See figure 6.)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5335984280701649442" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 283px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVXk9zIrNKlu45mWLOm8aL3DyvvCnJ5Fr0eVy7sWpnAfEZyqtQbUhbNf1oy5srBb-ybPGi9qx3I3EOBuBRTAKM5NqsvkztQeAV6BHojbBBW5j_fWOiF8kX6HaockdIAm4cl4c5ar5GYUG3/s400/6.bmp" border="0" /&gt; &lt;p align="center"&gt;&lt;strong&gt;Figure 6.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;A7. Create a view page named register.rhtml with following code. (See figure 7.)&lt;br /&gt;&lt;br /&gt;Use AJAX method - &lt;strong&gt;"form_tag(:action =&gt; 'register') do" and "submit_tag" &lt;/strong&gt;for performing the form subumition.&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5335984745498863906" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 256px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjTZjmZOFCy3u_ByliWYcsv7GR-v2EprggAtIbh3KnABqZWAdZJ6TlHJZtI6JkiTC7xuXAy8ejplWKP0AbdvMmjGEvrd8YlfJeN5lF08iV_cGaYiO5-bnYZ85M68DhgiD91BTfEw3An2_q/s400/7.bmp" border="0" /&gt; &lt;p align="center"&gt;&lt;strong&gt;Figure 7.&lt;/strong&gt; &lt;/p&gt;&lt;p align="left"&gt;A8. Restart the taxiapp project and use brower to navigate at &lt;a href="http://localhost:3000/user/register"&gt;http://localhost:3000/user/register&lt;/a&gt; (See figure 8.)&lt;/p&gt;&lt;p align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5335985909873651090" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 387px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXS27u3LvfYzX1s8MatN1qoTMRVGi6lvn4rSRjSU83lIPGEqAJOQNFtUufKp1oyJuMQLpSAQ4dNxgChBczqfeV7xaG0CT0IHjTYXNu0xqsW2boxcPJNqN7psY-tbOLdNkgJMf1Z9eQR-dN/s400/8.bmp" border="0" /&gt; &lt;strong&gt;Figure 8.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A9. Test the registration page.&lt;/p&gt;&lt;p&gt;a.) Input a null value.&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5335988094681860194" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 376px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzbWF76UH0TQUUYz1iT2fuui_f_mlDVB2sdUAmCyLGYwhFVUto7OwMXFKn7MK79bFOcAoOr3OQmelrwY4oiktye-6URais23LGMHaJtcCozDOl77_LAmaH-v5zcmSEaYR4amHHZsZQeqmw/s400/9.1.bmp" border="0" /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;b.) Complete the registration form and click Register button. &lt;/p&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5335989713531920002" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 342px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS1Z1OJpH56QYWWYKETlsrf5HZRgQXg27sQ6BdyelXSboL8x_nQxQ-9_3NNslVv-JO-9DqD05g17Mv1h8yG97EsKtpBTTgK_RX5nn_6C-f8usYa0zveZ4PWUhCPoMex7RUFKrYyhKPprqN/s400/9.2.bmp" border="0" /&gt;&lt;/p&gt;&lt;p&gt;c.) Input the created account in the login field..it returns error because that user has already created..&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5335990545215040578" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 317px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiizIFcCN1dQ9BQfh0QBKAXzaqxq3aNX9TyFvvJiOofo6rIU29zD8exg7AFwDSzmzlzLhCdhTITfOFwIkOV0S8LCHoHrE5CZgJcrh7-fWZqujOxVclsswyu-p04RItHHntw4zRKa5oWoski/s400/9.3.bmp" border="0" /&gt; &lt;p&gt;&lt;/p&gt;&lt;p&gt;A10. Use MYSQL query browser to check the user named wilson whether is created. &lt;/p&gt;&lt;p&gt;Yes, the account named wilson and his information has already stored in the database.&lt;/p&gt;&lt;p&gt;A11. Add the link which is used to go back to the login page.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/workshop-6-part-1.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitd5Em543hE4ADWsG-iVJWIfEXhkivaF4JSroUafsJVCf_PSFLPAVr4CCTCQ5GIHVXqkrlbPwpXtVPSHePZBmtGaW1H9-FLeq9pOHZNGjdKh4XbpE31YgdqRX-xg1PETpt-PMHoFzPBBhu/s72-c/1.bmp" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-6578844784591490290</guid><pubDate>Tue, 12 May 2009 05:24:00 +0000</pubDate><atom:updated>2009-05-12T02:57:26.656-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Workshop</category><category domain="http://www.blogger.com/atom/ns#">Workshop 5</category><title>Workshop 5-part 3</title><description>&lt;strong&gt;To Do - Part3&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. Create a new application called cabs in the same projects directory to demonstrate the use of an active view.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&gt; rails cabs&lt;br /&gt;&gt; cd cabs&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334805514393760194" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 203px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFYOH5mI3PlEYlWLwFPxEyro35ipO-k5g1LRhMvhw2U2fLlyOEzt9upxIq77SHyXStw8nFMVhGn_Nrdjn8BTKl8FttdlHEO6IurlCGGdx1HJGZdya31sj-DD6LxcXJ9d91sSJyJsNMddl6/s400/C1.bmp" border="0" /&gt;&lt;br /&gt;&lt;strong&gt;2. Create a controller called Vehicle in cabs\app\controllers&lt;/strong&gt;&lt;br /&gt;cabs&gt; ruby script/generate controller Vehicle&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334805920738994050" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 192px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIFzvJHHurLrkRJnq0MzibOhRsxjvUNSA8bASx8fwmM8CzCUE0sEzZ_t_VEtsITxno1IL_W_FCEG09KNPITVWhhRapDc_ltNPGLmeSOSArDrV5V8yqttCI51DLwV1q-0ho4DOpml0_l_zk/s400/C2.bmp" border="0" /&gt; &lt;strong&gt;3. Add an action to vehicle_controller.rb as the method called cabtype&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334806904105629986" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 247px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkY1fCo8TN2MY1hGbbxI3hbA__a2Wpda2GWlt5yTRVVJAkxXFExgc98sljFeR48lp7pPo-PMU4URG9kN69g2JhkaDm-QUdj_8jmIhJStOLC_0f_trP7m0n8ZoJ6y4AWkV9fefwu07jYbSR/s400/C3.bmp" border="0" /&gt;&lt;br /&gt;&lt;strong&gt;4. Add a view template - cabs\app\views\vehicle\cabtype.rhtml&lt;/strong&gt;&lt;br /&gt;We will edit this view in later steps but you may like to add your own test HTML code to the view at this stage.&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334808274634112962" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 381px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP8N4mE3SCqP9pNF8CC6q_xydBwyFC2AGUclhnBY_JqR4a2ov-24GxBFof5J0wlDatd7xgXbnbE0vMsbiIMYS0yUWBiUvErBHVQ4AcyKyOvluQ8f2Hnfcz03yaDF4GJ8qzptSwf0dlre84/s400/C4.bmp" border="0" /&gt;&lt;br /&gt;&lt;strong&gt;5. Save the view and restart the Web server and navigate to&lt;/strong&gt; &lt;a href="http://localhost:3000/vehicle/cabtype"&gt;http://localhost:3000/vehicle/cabtype&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334809427480815554" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 394px; CURSOR: hand; HEIGHT: 282px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdrELy3J5QGxZUQS95xfoqSOg-GMtt8deXtDxzFuJgHh81hvZi9pUg1ztvZFlUkwoVMOtH672yZdC4iNCAg-nDtp0mLKKtD9z9L9lexQbRYu8demlsWdV5N_RqQ9f04AZ8NtRR3Wj4pS6v/s400/C5.bmp" border="0" /&gt;&lt;br /&gt;&lt;strong&gt;6. Create a file in the public directory - \cabs\public called input.html&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334860406110465650" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 341px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ9WxY08qLxL1VgJ0dqGKzaflCQK8j64z9LjnXuUgPSmLBjwL8Y3IaDFi4yi8pR2RNBGFUGY9-vPFG5Oh6qQkk4xeMJ9q5u_UsSIqQ_QrGA-NB9ofm6EfSnCbBBq065X74mqWVN6snxA-C/s400/C6.bmp" border="0" /&gt;&lt;br /&gt;&lt;strong&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;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334811105174462866" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 202px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihmyfT5BkKnR1QbHW08lE94eV4z6fQqOyMn1MmkYlInrLK6gl4r_GpQt60fXkuK6XNZiASjyO7C2OTuNNTrR_c5kEXlf9ngJ3xntO7JiGw2-0xHAQBeXANaTrdgQAoS8YSh4x7s8MlHAFg/s400/C7.bmp" border="0" /&gt;&lt;br /&gt;&lt;strong&gt;8. Edit the view template cabtype.rhtml&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334860910314178370" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 333px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIhRMnD1po0M_DhAMcImw1xF182-HZn2onNx4obbJdz-OtD0lxnhJKnVfUtbmyPKHh1u5t7-V0s_sR8jI79YXNKJx2R22uJG2e1zuvJw5aIP9cjRhmAV7RluzzoIpr2yL-R0WgkoI3T-eM/s400/C8.bmp" border="0" /&gt; &lt;strong&gt;9. Start the Web server and go to the opening page of this application at &lt;/strong&gt;&lt;a href="http://localhost:3000/input.html"&gt;&lt;strong&gt;http://localhost:3000/input.html&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334861672128006594" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 390px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC4GraGc3JH6-STheEpJ7O-nvvriPdCwW4CGJNnEJ_ttV80SxOd0IZWYRJJUcVnKw-WVjfeBukfCUqtndYP7Ac0Pb3WCSJLafAYsEQ6KrfsbbZc5CyoTgPzMBt_WujwDiAhI1rrX0_lB0C/s400/C9.bmp" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;10. Submit the forms data. What do you find?&lt;/strong&gt;&lt;br /&gt;a.) Fill in all information and click submit button, like the below figure:&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334862576115476306" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 390px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOIgPlKm4yjYJh64xwF7KdbiOerUY9pKsdKs34yno2IcTNrvkUunLScQTPk22NUM_t2dYvonEBmkNeSsG10i2MKH1ZvxTUtBvRShsSkD5cH99Cyz86WJ9IgrkNxZjdlq5tHfwmnrDLFUdt/s400/C10.1.bmp" border="0" /&gt;&lt;br /&gt;b.) Form data will send to "/vehical/cabtype" by post method and the result is listed as below:&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334863168372966578" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 390px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC5MN3irThgLb73beA_ZIvF_RWncFQKMImSZ2J0HoxZh5sB49Y2OkXTT6ctAJ-2ZnCaXgXESzh7vcwAjSSrEwXPu5hllhmZLPgS_LLgUVGQpFSJ_5h3E3JT8kbBT-TkRzaXYMekI4qIke9/s400/C10.2.bmp" border="0" /&gt;&lt;br /&gt;c.) Fill in information but unclick the Yes box and click submit button, and the result is listed as below:&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334863970527762818" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 390px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEoIh0xB6ZU6VIwkfe8yMDXrbGhbRUYmW6Vufy3krxcGvrTb18-vvCe7HgZRiLn6nxpB6gn6JxFb32Klb9bpmrWC1my3VCOFC0r8IEq6vU-P4H3W8A4BY2fYHDpPvAJEAuKguvoyvNQGZs/s400/C10.3.bmp" border="0" /&gt;&lt;br /&gt;&lt;strong&gt;11. Report your progress or findings in your Developers Blog.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Firstly, there are several errors are prompted when we follow the procedure in workshop5. I need spend 3 hours to debug the source code, in details, please refer to my figure.&lt;br /&gt;&lt;br /&gt;Secondly, learning from Tutorialspoint(2009), the directory under ruby's project named public which like the public directory for a web server, this directory has web files that don't change, such a s JavaScript files (public/javascripts), graphics (public/images), stylesheets (public/stylesheets), and HTML files (public). This should be set as the DOCUMENT_ROOT of my web server.&lt;br /&gt;&lt;br /&gt;Thirdly, form data of input.html are stored in the methods named cabtype of vehicle controller , and cabtype.rhtml uses &lt;strong&gt;pass-by-reference&lt;/strong&gt; to gather those data from cabtype methods.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;br /&gt;Tutorialspoint(2009). "Ruby on Rails 2.1.x - Directory Structure". Received 12th May, 2009 from URL - &lt;a href="http://www.tutorialspoint.com/ruby-on-rails-2.1/rails-directory-structure.htm"&gt;http://www.tutorialspoint.com/ruby-on-rails-2.1/rails-directory-structure.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/workshop-5-part-3.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFYOH5mI3PlEYlWLwFPxEyro35ipO-k5g1LRhMvhw2U2fLlyOEzt9upxIq77SHyXStw8nFMVhGn_Nrdjn8BTKl8FttdlHEO6IurlCGGdx1HJGZdya31sj-DD6LxcXJ9d91sSJyJsNMddl6/s72-c/C1.bmp" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-1988310093853388271</guid><pubDate>Tue, 12 May 2009 04:01:00 +0000</pubDate><atom:updated>2009-05-11T22:03:39.246-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Workshop</category><category domain="http://www.blogger.com/atom/ns#">Workshop 5</category><title>Workshop 5-part 2</title><description>&lt;strong&gt;&lt;span style="font-family:arial;"&gt;To Do - Part2&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;1. Create a new application called scenery in the same projects directory to demonstrate the use of an active view.&lt;br /&gt;&lt;br /&gt;&gt; rails scenery&lt;br /&gt;&gt; cd scenery&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334787500973649202" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 197px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilmV1vRJetOrHTcRe5iWdvyPdRo9zF8ZU7nH5g16M-Ot6BreJkp3nhTNR2n_keavtqecDMHNtSeZ1cfGcRq9xonhxwI6VPUknkLt4X9YOjYI-uPxtJAduwdT8HUfyhZe_hnE5SHXXT86NR/s400/B1.bmp" border="0" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;2. Create a controller called Demo in scenery\app\controllers&lt;br /&gt;scenery&gt; ruby script/generate controller Demo&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334787949905699282" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 203px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTfrS5d5g4WmUNFVqZbXFFdr4gMG8cp8bxqJVFuT8N9g8tPCVkWBPkVL0UN7RE2kyB3NKgHuCqThIolkdglKDDdooPaRt0BfNinPwT2H9Z0NT9rHTqdghhN7oOPby04AEaF5lUmGBpWoaj/s400/B2.bmp" border="0" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;3. Add an action to demo_controller.rb as the method called rubycobe&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334788639230850130" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 237px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuXIvL7nIjReOL-UaaZzQ-oO_HTE8iLfjMstJ74VG_QF_3d4pElv9VVnCkTX_cZ3G5TJm_B1Lz95ovC4OZBxG183SgKkAxlb5oXiSx7aOxfLAvXabL-Nk_MuNJ3n3vDtvhuiCAgHQsSqn1/s400/B3.bmp" border="0" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;4. Add a view template - scenery\app\views\demo\rubycode.rhtml&lt;br /&gt;We will edit this view in later steps but you may like to add your own test HTML code to the view at this stage.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334792554278200338" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 304px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib6DXmKXk2WD0wLwZnkZF5eVmDLoDJq0q-Q74rFu9ej87xsT_8uJn5zaLEJTyrMOxXiHH5g8qDzNn6PnH375WLHqkcx_XxTKyIgLUMBJCd9zVHPkjTV_JS1-rrb0GFeDAZDUp9dgmTRPJC/s400/B4.0.bmp" border="0" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;5. Save and restart the Web server and navigate to &lt;/span&gt;&lt;/strong&gt;&lt;a href="http://localhost:3000/demo/rubycode"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;http://localhost:3000/demo/rubycode&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334792035559085762" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 280px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp0lFOaWLf-r2yq9Ah_5y70Fu9g8mRK9fCJzUdn6NBJadjJKONevyC0xv0hX1sPCtCBLyxOqzzk2VWtAjZgqwU_y9HGrsWNh6c0-F0Wb1SpAyPr_tLI-sLzLkHVZxM_NNs9I2kAXAlnMHn/s400/B4.bmp" border="0" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;6. Use the Time.now example to pass data from an action to a view.&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&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;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334797145597099778" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 241px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDYzsOlvmYxsYkqqVLkBQ0h_eZrU1uXgCjC7zFPciRibxpbTfwuFUHYoTt7xhaxWhibpQ9GRYUNsDRS01wTNojp4EIddVuAuOP4nLwgNvaDSKHpcK4rlB0GHPW2zUq4-zANNXB0LseoRFC/s400/B5.1.bmp" border="0" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&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;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334797315423051522" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 369px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji_PBNQtqbcEHC00i52PDeMJ7Bg1ocx71ji-Fta5QIRRae7lhyphenhyphenXh8pni5tLFBQpKmZq7uZeg-4i_16YBJYwCgkZIZWvmFGk05tL45Ewu17Irh7CZPkM1knAKiD-Td17WX9AObMbXKM90fE/s400/B5.2.bmp" border="0" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;9. Restart the Web server and navigate the browser to http://localhost:3000/demo/rubycode&lt;br /&gt;&lt;br /&gt;Data has been passed from the action to the view as it is done with SQL requests. The instance variables of a Ruby class are available to view templates by referencing the action’s instance variables by name in the view .rhtml template.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334797447013828578" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 280px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFuKD7RDZRWDuj_pfCa7hkVHdeXslodohD0oHX9NfoEVRxFgl7Jh_fct3Gy0UbpS9kAhBVBP_ZwHFN_Coq1Ba8yTWLT-whW9OQvs4RAsh6tMsXYp1swS245B7ShlwUTZRRpX2seg3Gw2WG/s400/B5.3.bmp" border="0" /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/workshop-5-part-2.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilmV1vRJetOrHTcRe5iWdvyPdRo9zF8ZU7nH5g16M-Ot6BreJkp3nhTNR2n_keavtqecDMHNtSeZ1cfGcRq9xonhxwI6VPUknkLt4X9YOjYI-uPxtJAduwdT8HUfyhZe_hnE5SHXXT86NR/s72-c/B1.bmp" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-1513279749037494028</guid><pubDate>Tue, 12 May 2009 02:52:00 +0000</pubDate><atom:updated>2009-05-11T21:00:34.446-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Workshop</category><category domain="http://www.blogger.com/atom/ns#">Workshop 5</category><title>Workshop 5-part 1</title><description>&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;To Do - PART A&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;1. Create the Rails application framework in the projects folder: C:\InstantRails\...\projects\&gt;rails animals&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334772163023703106" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 262px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjestD3o2t8Q80wL4TAdb4BOzsWNhk_eaDytVZXJYEwqMIGk_xO_ESUCJe9lcZx2EHgwr5AgGhauXWQyMyvpl3HAMz53RipDAYre4-Y9QQnyDYNHzMPmaH8vicGkcFtQlUC_xNUWlgoJ00J/s400/1.bmp" border="0" /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;2. Running the application on localhost:3000 using the WeBrick ruby server (or Mongrel as alternative) and access via Web browser at &lt;/span&gt;&lt;/strong&gt;&lt;a href="http://localhost:3000/"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;http://localhost:3000/&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334773117341651682" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 470px; CURSOR: hand; HEIGHT: 332px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCm-8AT_ZRaQhUk_FJMGx4vGhYPORXNrwa67tRo0c5EeGEA7X1oGp33cD-vVSlLryhqDm5GKsOMUvGw3Rm8mPygkRzIbqpb3AwpISUmCYeLmse_JuvljP4ME_lSuMEwYKHFedxW8UHEKnn/s400/2.bmp" border="0" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;3. Create the controller to make the application do an action. This is under the controller-action/model-view structure.&lt;/strong&gt;&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;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334774807698610354" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 159px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRC8cXgMBkCAXOVwGjSGy0wDF41AkNFv2-J3UpK8BS-gIi4tPiWX_uH2mTey5K4qkAbua_0okfnYiYvKQ1TDeafKj1Hb0VpNotfc47x6rTQm-QuyjKkgGc6E8yqSGh_cN1foBEvLQqK_bP/s400/3.bmp" border="0" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;4. Test the controller by starting the WEBrick server and navaigatibng the browser to &lt;/span&gt;&lt;/strong&gt;&lt;a href="http://localhost:3000/mammal"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;http://localhost:3000/mammal&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt; 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;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334775425434583634" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 237px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUzrDrqhR99jFs0E3rrSkOfje2dIXbTxtyguF8JPziwcDF3RuSDWTo74bJGdkEouYor_ZUe71vIuwiI741MzySmrhEQcqklFeeynlJitvMw5MaYSxoPfrwLwEY-1KSob1-ltgU8GkKVbpq/s400/4.bmp" border="0" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;5. Create an action by editing and saving the mammal_controller.rb class in projects\animals\app\controllers using your text editor to add the method below:&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;img id="BLOGGER_PHOTO_ID_5334782018096550098" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 237px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCcNgiWsGn23_RpTWgiyORxSYfnBSpLFJzhjUJuKe7Wa-vjprC72hrMLcbof4P5v8MtCkgrTIgCHWNKg7qlY8d021RKZHl3cFJUgSd-WhNVgZ5ZBx9gB_1JvTcpe6EE1NZ8-S1HrImxlrP/s400/5.0.bmp" border="0" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;6. Start the WEBrick server and browse at &lt;/span&gt;&lt;/strong&gt;&lt;a href="http://localhost:3000/mammals/breathe"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;http://localhost:3000/mammals/breathe&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt; where you will get a “missing template” message since it is missing a view for the breathe method.&lt;br /&gt;&lt;br /&gt;Rails is trying to connect the breathe method action of the mammal controller to a view, by using the action’s name – breathe. This view template is created as breathe.rhtml and stored in the \projects\animals\views\mammal directory.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;img id="BLOGGER_PHOTO_ID_5334776442775457154" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 300px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh20psLWKe2NUxge9J_fEIkgqDp-zsSklXjE6m4RWOGVhdMa_g9WDjkxuyZxZfdhQqauUcu8LpC7F0RuIRGM9jToYb0YR9kFPcNMxmWVKWiJ5Bx7zFEz8Bx5oKKk7Bfbagl_d7nOYddas5f/s400/5.bmp" border="0" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;7. Create and save a view in that directory by using a text editor to create a view called breathe.rhtml&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;br /&gt;&lt;p&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334777306250621986" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 204px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuGoaUyLhVi34JDeqqEKbF65-RzniQhQkLzqf6VJ480uXt0iMZeLd_CZEEXSTwMFTfjFZVtvUCtTCIDiN4fguLoqpw7vAZvYYRsiOBC-P3E4wiKwYil0TtXu08v4XS0Sv_LCpLuaa8kYu6/s400/6.bmp" border="0" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&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;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334778889176460434" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 356px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj214Be31kzKG2fKU0vTkRENZ6jhUrX4mPiXXxLP0JZdY0nXA1ykSLaWjwjGzf65VpmvHOrEUHjUM0M7i9lFx_MXNhY51HMp2j2X3yWMDWY0ZcfZ4cuWXaQxc3R_O9cin4XzBksXjuIpCo/s400/7.bmp" border="0" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/workshop-5-part-1.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjestD3o2t8Q80wL4TAdb4BOzsWNhk_eaDytVZXJYEwqMIGk_xO_ESUCJe9lcZx2EHgwr5AgGhauXWQyMyvpl3HAMz53RipDAYre4-Y9QQnyDYNHzMPmaH8vicGkcFtQlUC_xNUWlgoJ00J/s72-c/1.bmp" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-4506718595476168521</guid><pubDate>Mon, 11 May 2009 09:15:00 +0000</pubDate><atom:updated>2009-05-11T03:20:25.850-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Exercise</category><category domain="http://www.blogger.com/atom/ns#">Exercise 24</category><title>Exercise 24-part4</title><description>&lt;div align="left"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;4. Computing ethics and bot programming case study: rocky&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;a. Get an account username and password from the lecturer to LC_MOO at &lt;/span&gt;&lt;/strong&gt;&lt;a href="http://ispg.csu.edu.au:7680/"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;http://ispg.csu.edu.au:7680/&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt; and login to the Welcome Lobby.&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;I use the account named "train2" and password as "train2" for logging in to the Welcome Lobby .&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&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;/strong&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;I have sent more than 5-minute discussion with Rocky on a special topic.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;And I can order Rocky going anywhere within the Map and order Rocky to doing some action like "take", "drop", "sit"....etc. It is very interesting!! Please see the figure 1. Also, I can teach Rocky to learn something i want it to know. Please see figure 2.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334502717489542354" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 321px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxrM4LCYP5Ou8CyOyniep5q8YkcqUwU-avq4RlvbRg-wnw9ud-2ANhK9DJvf8lt8wmVCji_2ug4hlFYQwO05vVTFhAKMyrGUhvGdXi220YtA3J6ibRWq663UO1E7IS_21fxcV9mY-ObQLX/s400/r05.bmp" border="0" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;Figure 1. My robot action&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334504423047518274" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 331px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb95xtwmVZIQmx73j8aYv8J-Sdp-V30E6hV-9_RWgBKFw2aYMtPjrbaSyvqlUqmC4REu2tHnvP7mGXfTiDOlpwAiitxO8P2kpb_HwElombiRYO39GbOVEg_lH8kVEG0DWDPnZnrbRUmw6/s400/r1.bmp" border="0" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;Figure 2. An command for Building object.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;C. Rocky is an ELIZA-like bot. Report your findings.&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;Rocky is an ELIZA-like bot, because Rocky can give you a corresponding action when you issue a pre-defined instruction. Please see figure 3 which is telling you how to create an instruction by that command.&lt;/div&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5334504561621180946" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 331px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtLy30Mu_a34_tox2rjFw3ZaK8VbZMmnpTqDgClMb-zEjghntsch2x7VL3AlhjNXMUei9sVRXDynKNrgxlmxEEjmqRiThJmoGNgZG1IzZu3hQoQxco1r5tmbTcqc0Q9c0Lz6Q8s513tKlh/s400/r2.bmp" border="0" /&gt; &lt;p align="center"&gt;Figure 3. An command for teaching Rocky.&lt;/p&gt;&lt;p align="left"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/exercise-24-part4.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxrM4LCYP5Ou8CyOyniep5q8YkcqUwU-avq4RlvbRg-wnw9ud-2ANhK9DJvf8lt8wmVCji_2ug4hlFYQwO05vVTFhAKMyrGUhvGdXi220YtA3J6ibRWq663UO1E7IS_21fxcV9mY-ObQLX/s72-c/r05.bmp" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-6136647657753242615</guid><pubDate>Sun, 10 May 2009 16:54:00 +0000</pubDate><atom:updated>2009-05-13T23:41:48.693-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Exercise 26</category><title>Exercise 26-part3</title><description>&lt;strong&gt;3. Edit TWO similar versions (include bibliography) of that summary to CSU Interact: &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;a. post version A as a wiki page contribution; &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;b. add version B as a final entry to close your developer's blog.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;a.) Post my studies summary of ITC594 in wiki page of CSU&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Please click the following link for accessing my studies summary of ITC594 module in CSU:&lt;br /&gt;&lt;a href="http://interact.csu.edu.au/portal/site/ITC594_200940_W_D/page/5b2177b9-ee38-42d9-80bc-9c04903ec49e"&gt;http://interact.csu.edu.au/portal/site/ITC594_200940_W_D/page/5b2177b9-ee38-42d9-80bc-9c04903ec49e&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;b.) My studies summary of ITC594&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;After I have studied ITC594 module in CSU, I could further understand what is E-systems Infrastructure development. It can be classified into 5 stages which are Network, Computing Platform, Middleware, eCommerce applications &amp;amp; services and Business Processes.&lt;br /&gt;At stage 1 - Network field, I have understanded the network topologies (e.g. p2p), architecture (e.g. Client/Server and Grid Computing) , protocols (e.g. IP, TCP and ftp), securities(e.g. PGP, SSL and RSA).&lt;br /&gt;At stage 2 - Computing Platform, I have further understanded the database server (e.g. Mysql) and the web application server (e.g. Apache, WEBbrick and Mongrel). Specially, further learning the web program language about HTML, CGI, Python, Javascript and Ruby on Rail.&lt;br /&gt;At stage 3 - Middleware field, I have understanded the middleware technologies for instance, mobile computing middleware (e.g. WAP), XML-trade (e.g. XML and voice XML), CORBA, SOAP and service-oriented architecture (SOA).&lt;br /&gt;At stage 4 - eCommerce application &amp;amp; services, I have already understanded the Electronic marketplaces, Supply chain management (SCM) and customer relationship management(CRM).&lt;br /&gt;And finally, at stage 5 - Business processes, I have fully understanded the workflow of E-business (e.g. E-catalogue and Shopping Cart).&lt;br /&gt;Therefore, this module is very useful for me to understand those elements in order for implementing a well E-business.&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/exercise-26-part3.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-7200072146036483801</guid><pubDate>Sun, 10 May 2009 16:54:00 +0000</pubDate><atom:updated>2009-05-26T20:32:40.799-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Exercise</category><category domain="http://www.blogger.com/atom/ns#">Exercise 26</category><title>Exercise 26-part2</title><description>&lt;span style="font-family:arial;"&gt;&lt;strong&gt;2. Summarise your understanding and describe its relevance (250 words max) in either your study at university or in your work environment;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;After i have studied ITC594 module in CSU, I could further understand what is E-systems Infrastructure development. It can be classified into 5 stages , they are listed from the bottom to top, which are Network, Computing Platform, Middleware, eCommerce applications &amp;amp; services and Business Processes.&lt;br /&gt;&lt;br /&gt;In Network field, I have understood the network topologies (e.g. p2p), architecture (e.g. Client/Server and Grid Computing) , protocols (e.g. IP, TCP and ftp), securities(e.g. PGP, SSL and RSA).&lt;br /&gt;&lt;br /&gt;In Computing Platform, I have further undestood the database server (e.g. Mysql) and web application server(e.g. Apache, WEBbrick and Mongrel). Specially, further learning the web program language about HTML, CGI, Python, Javascript and Ruby on Rail.&lt;br /&gt;&lt;br /&gt;In Middleware field, I have understood the middleware technologies for instance, mobile &lt;span style="font-size:+0;"&gt;computing middleware (e.g. WAP), XML-trade (e.g. XML and voice XML), CORBA, SOAP and service-oriented architecture (SOA).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;In eCommerce application &amp;amp; services, I have already understood the Electronic marketplaces, Supply chain management (SCM) and customer relationship management(CRM).&lt;br /&gt;&lt;br /&gt;And finally, In Business processes, I have fully understood the workflow of E-business (e.g. E-catalogue and Shopping Cart).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/exercise-26-part2.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-7098843941746043984</guid><pubDate>Sun, 10 May 2009 16:48:00 +0000</pubDate><atom:updated>2009-05-13T22:02:20.459-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Exercise</category><category domain="http://www.blogger.com/atom/ns#">Exercise 26</category><title>Exercise 26-part1</title><description>&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Exercise 26 &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;What to do: 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;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;1. Choose ONE of the four ways to manage and develop integrated systems as listed below;&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;I choose Federated databases to manage and develop an intergrate system.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;PartA. Develop a Federated Database(MySQL, 2008)&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;a.) we must have two servers running basically, either both on the same host or on different hosts. (It is possible for a FEDERATED table to use another table that is managed by the same server, although there is little point in doing so.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;b.) we must have a table on the remote server that we want to access by using a FEDERATED table. Suppose that the remote table is in the federated database and is defined like figure1: &lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5335528080186613042" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 379px; CURSOR: hand; HEIGHT: 296px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJzFxeCH6hGf_eQEulb4_1cH9J2G8j39D9KdKglPohsa4oElWwRIiHwT2hDbCozFeeYnamMPHwuQy7E0tgIvgrZa3noP1utdLMRrfx-E4DBYGzf9qfhAQSgyUB7rg6JX1VawKV4k_LH24H/s400/sql1.bmp" border="0" /&gt; Figure 1.&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;c.) Correspondingly, we should create a FEDERATED table on the local server for accessing the remote table as figure 2: &lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5335529295791715730" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 248px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq7ad3jsvXK9GksdsEt_AnY0iATfIRAx5ghPVS04In6xjjtP2XoVrL3EVb4jmIHiHSn5mLajiWtt43IcYLkk_dzpc55tU-0SSjPiNQSsx0HrfilLwMTp4CUkjfl59to_ghOdg-kTvbF7qK/s400/sql2.bmp" border="0" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;Figure 2.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;The basic structure of this table should match that of the remote table, except that the ENGINE table option should be FEDERATED and the CONNECTION table option is a connection string that indicates to the FEDERATED engine how to connect to the remote server.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;d.) The remote host information indicates the remote server to which your local server connects, and the database and table information indicates which remote table to use as the data source. In my development example, the remote server is indicated to be running as remote_host on port 9306, so there must be a MySQL server running on the remote host and listening to &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;port 9306.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/strong&gt;&lt;div align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Part B. Manage Federated databases&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;I use HoneyMonitor which is a GUI for MySQL™. Server Administration, Database and Database Objects Administration, Code Development, Server Monitoring, Performance Monitoring, Performance Auditing.&lt;/span&gt;&lt;/p&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;a.) Federated Servers are listed in the Federated Servers node of the Server Objects List (See figure 3), we can create / edit / drop a Federated Server using node's popup menu.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5335533746291175906" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 209px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLoXOOGMhOCssAF1pf-t4BsQOujFb-O0rJZUL7V2p1eIcy_3S2ZAT8vy8TSN-82Xf40cwBtN44xuF5gP0HJ4YpS5bbPEScaWqLTLsQ3gVMZ1pbGTzVSm9MHQVPNe2lxJnm6HhN66as5vox/s400/1.jpg" border="0" /&gt;&lt;/span&gt; &lt;p align="center"&gt;&lt;span style="font-family:arial;"&gt;Figure 3.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;b.) The SQL Tab (Figure. 4) contain the SQL syntax for recreating the current Server.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5335534673975852290" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 286px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNt392EqDbIU6jdLxkCm7Fi4GOeK2RKBvBDr6M2oVwTzTWM2nuJdk56Z1ugyGP1Hbv7yPEFjDTbAoVWFv_T8qoDm4NGxiLRjR-FcADuaBtwY0ZxlsUpOJxI2wbUIHKFaHyTtoMxiN-iWYr/s400/2.jpg" border="0" /&gt; &lt;p align="center"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Figure 4.&lt;/span&gt; &lt;/p&gt;&lt;p align="left"&gt;c.) The Create Table Wizard helps you creating tables in a simply and fast way (Figure 5).&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5335536444216206626" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 309px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSXSptbGLiiguYZqfYBSyzXtg1xar5R8JEJNMllzwurutidDz2Kp-4ZmjF0jEOy5xIG7ZiKYEhtB-FwYMHRag7gRXppSXZRTbOPzLnGMchk5EQbuoqvZyPmC1uFRSvPjYHIE1YEJiXao0X/s400/3.jpg" border="0" /&gt; Figure 5.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;d.) In Connection field, the Federated Server List will be opened thus helping us choosing an existing Federated Server - without the need of writing its name - or creating one more (Figure. 6).&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5335536545302691906" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 250px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtD1RtxyIvxQe4o80-jf4wPrU15hzBQHljxHaGpHYEe3vrfTmrlKGt7It29McWhW7g83Mm2PeVAV-jlcp2Zrq8Hb7xSBUjweI47UPVKNfh9Uz8f7XTUeC6hhld2HaYxQV5toz8e8M_F1Kx/s400/4.jpg" border="0" /&gt;Figure 6. &lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;&lt;p align="left"&gt;&lt;br /&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;br /&gt;MySQL (2008). "How to Use FEDERATED Tables". Received 14th May, 2009 from URL - &lt;/span&gt;&lt;a href="http://dev.mysql.com/doc/refman/5.0/en/federated-use.html"&gt;&lt;span style="font-family:arial;"&gt;http://dev.mysql.com/doc/refman/5.0/en/federated-use.html&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/exercise-26-part1.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJzFxeCH6hGf_eQEulb4_1cH9J2G8j39D9KdKglPohsa4oElWwRIiHwT2hDbCozFeeYnamMPHwuQy7E0tgIvgrZa3noP1utdLMRrfx-E4DBYGzf9qfhAQSgyUB7rg6JX1VawKV4k_LH24H/s72-c/sql1.bmp" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-4431363615910541951</guid><pubDate>Sun, 10 May 2009 15:44:00 +0000</pubDate><atom:updated>2009-05-10T09:45:35.786-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Exercise</category><category domain="http://www.blogger.com/atom/ns#">Exercise 25</category><title>Exercise 25-part4</title><description>&lt;strong&gt;&lt;span style="font-family:arial;"&gt;4. According to Nokia: 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. Why is a company like Nokia - &lt;/span&gt;&lt;/strong&gt;&lt;a href="http://www.nokia.com/"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;http://www.nokia.com/&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt; - described as having end-to-end expertise? According to Takeshi Natsuno, media director of Gateway Business Department, NNT mobile Communications Network, Inc (NTT DoCoMo) of Japan: The mobile phone will be an electronic wallet.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Nokia is an end to end expertise because it fulfulls five key steps to create competitiveness through end-to-end innovation(Nokiasiemensnetworks, 2008). :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;1. &lt;strong&gt;Do the research&lt;/strong&gt; - First, it' s essential to have a broadunderstanding of end-user needs, as well as market behavior and the challenges you face. Up-to-datemarket research from analysts around the world is one part of the jigsaw.A deeper insight comes from NokiaSiemens Networks' own research and global experience of markets, as well as our close cooperation with Nokia and Siemens and their understanding of end-user behavior.We discuss your needs and aims with you and combine all these elements to paint an accurate picture of your subscribers' needs and the business environment you face.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;2. &lt;strong&gt;Identify the opportunities for innovation -&lt;/strong&gt; Innovation can encompass new business models, new revenues and new technologies, which all come together to deliver an exceptional end-user experience. Identifying the opportunities for innovation takes an analysis of the research data, using your own market and business knowledge combined with our expert consulting capability and global experience. The opportunities will vary depending on your preferred business model, homemarket and target user segments. Listening to you, we help to identify opportunities early, while the marketis ripe for development and your competitors are still playing catch-up.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;3. &lt;strong&gt;Specify the solutions&lt;/strong&gt;  - Services innovation depends on the whole end-to-end chain, encompassing technology aspects like the end-user device, access network and backhaul, core infrastructure, applications, management and operations, as well as striking the appropriate partnership deals with other playersin the ecosystem. It's essential to take into account all these aspects when creating solutions customized to your needs. As a leading solutions provider in mobile and fixed environments, we have the capability and resources to help you establish clear business goals and provide every link in the chain. You remain free to choose the services and solutions you want,whether devices, network design, infrastructure elements including thirdparty products, applications, network operations, managed services, or acomplete package.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;4.&lt;strong&gt;Implement your plans -&lt;/strong&gt; Having established the right solution, it needs to be implemented quickly and efficiently while retaining simplicity and quality, including proper interoperability.Our Solutioneers use proven processes to ensure an end-to-end focus when developing and delivering your solution. We can integrate entire systems or selected components to tailor solutions to your needs. Launching new services, rolling out infrastructure and improving business processes becomes efficient and fast. Project management, services and marketing support, network operation and competence transferhelp make it all happen.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;We can also be a strategic partner in the marketing of your servicelaunch, providing practical &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;co-marketing support to gain maximum revenues and profits.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;5. &lt;strong&gt;Evolve your services portfolio&lt;/strong&gt; - Markets move fast and it's vital to evolve services quickly to stayahead. Constant research is needed to predict changing user behavior and find new ways to improve theunderlying technology. This is an ongoing process, including planning roadmaps and lifecycle management for services, devices and networks. We constantly update our research to stay ahead of markettrends. Such intelligence is central to our dialog with you, helping to guide continuous solution development and process improvement, and leverage technology developments to enhance existing services and create new ones.Our commitment to R&amp;amp;D is fundamental in creating theinnovation you need to meet yourevolving requirements. This starts right back up the supply chain, withour close co-operative working relationships with early suppliers,such as chip manufacturers.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Nokiasiemensnetworks (2008). "End-to-end expertise - our offering". Received 11th May, 2009 from URL - &lt;/span&gt;&lt;a href="http://www.nokiasiemensnetworks.com/cn/Insight/end-to-end/end-to-end-expertise.htm?languagecode=en"&gt;&lt;span style="font-family:arial;"&gt;http://www.nokiasiemensnetworks.com/cn/Insight/end-to-end/end-to-end-expertise.htm?languagecode=en&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/exercise-25-part4.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-5437621997776039387</guid><pubDate>Sun, 10 May 2009 09:35:00 +0000</pubDate><atom:updated>2009-05-11T03:23:02.498-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Exercise</category><category domain="http://www.blogger.com/atom/ns#">Exercise 25</category><title>Exercise 25-part3</title><description>&lt;span style="font-family:arial;"&gt;&lt;strong&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;/strong&gt;&lt;br /&gt;&lt;br /&gt;W3 (2008) states that the Voice Browser Working Group has published the First Public Working Draft of Voice Extensible Markup Language (VoiceXML) 3.0. This document specifies VoiceXML 3.0, a modular XML language for creating interactive media dialogs that feature synthesized speech, recognition of spoken and DTMF key input, telephony, mixed initiative conversations, and recording and presentation of a variety of media formats including digitized audio, and digitized video. The primary goal of this version is to bring the advantages of Web-based development and content delivery to interactive voice response applications.&lt;br /&gt;&lt;br /&gt;When gauging VoiceXML server performance, Cisco (2009) states that the key aspects to consider are:&lt;br /&gt;• &lt;strong&gt;Network bandwidth&lt;/strong&gt; between Web application server and the VoiceGateway and QOS.&lt;br /&gt;• &lt;strong&gt;Performance on the VoiceXML Server&lt;/strong&gt; - CVP Bill of Materials (BOM) requires the MCS-7845 as a VoiceXML server. Adequate performanceis required on the server side to respond to VoiceXML over HTTP requests.&lt;br /&gt;• &lt;strong&gt;Use of pre-recorded Audio vs. Text to Speech&lt;/strong&gt; - Good Voice User Interface applications tend to use pre-recorded audio files wherever possible.Recorded audio sounds much better than TTS. Pre-recorded Audio file quality needs to be designedsuch that it does not impact download time and browser interpretation. Make recordings in 8-bit Mulaw 8Khz format.&lt;br /&gt;• &lt;strong&gt;Audio File Caching&lt;/strong&gt; - Make sure the Voice gateway is set to cache Audio content prevents delays in having to downloadfiles from the media source.Refer to the Section titled Gateway Prompt Caching Considerations for more details on PromptManagement on Supported Gateways&lt;br /&gt;• &lt;strong&gt;Use of Grammars&lt;/strong&gt; - A voice application, like any user-centric application, is prone to certain problems that might onlybe discovered through formal usability testing, or observation of the application in use. Poor speech recognition accuracy is one type of problem common to voice applications, and a problem mostoften caused by poor grammar implementation. When users mispronounce words or say things that the grammar designer does not expect, the recognizer cannot match their input against the grammar.Poorly designed grammars containing many difficult-to-distinguish entries also results in manymisrecognized inputs leading to decreased performance on the VoiceXML server.Grammar tuning is the process of improving recognition accuracy by modifying a grammar basedon an analysis of its performance.&lt;br /&gt;&lt;br /&gt;Hence, in order to implement the VoiceXML on their web, business needs focus on above points.&lt;br /&gt;Otherwise, poor performance with VoiceXML will result in negative response.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;br /&gt;W3 (2008). " &lt;/span&gt;&lt;a href="http://www.w3.org/News/Overview.html"&gt;&lt;span style="font-family:arial;"&gt;W3C Home Page News Archive&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;". Received 10th May, 2009 from URL -&lt;/span&gt;&lt;a href="http://www.w3.org/News/2008"&gt;&lt;span style="font-family:arial;"&gt;http://www.w3.org/News/2008&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;Cisco (2009). "Design Implications for VoiceXML Server". Received 10th May, 2009 from URL -&lt;/span&gt;&lt;a class="l" onmousedown="return clk(this.href,'','','res','10','')" href="http://www.cisco.com/en/US/docs/voice_ip_comm/cust_contact/contact_center/customer_voice_portal/srnd/3_1/vp31vxml.pdf"&gt;&lt;span style="font-family:arial;"&gt;Design Implications for VoiceXML Server&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/exercise-25-part3.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-4164928719503171399</guid><pubDate>Sun, 10 May 2009 07:02:00 +0000</pubDate><atom:updated>2009-05-10T02:34:27.135-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Exercise</category><category domain="http://www.blogger.com/atom/ns#">Exercise 25</category><title>Exercise 25-part2</title><description>&lt;strong&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;/strong&gt;&lt;br /&gt;&lt;br /&gt;I visit an airline web site named Northwest Airlines (&lt;a href="http://www.nwa.com/"&gt;http://www.nwa.com/&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;And I study their work flow of booking airline services used WAP in the following:&lt;br /&gt;&lt;br /&gt;Step 1.) Passenger checks in online and opts for mobile boarding pass.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334110483490051826" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 289px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKKsGrzno_5j4gKlIE63aOSyYfdu1N1aHg38hsroxuc-MZAl1C5MOEFj_6hyphenhyphenw8RKX8gLAqBUY_VU0SjnUnMHjonc5-jjxJSXa_tx5k42J0-JoOMhL_OUx_gd_rgAbBQKRckwKVFPaBJqI1/s400/step1.bmp" border="0" /&gt; Step 2. ) NWA's check-in system transmits the relevant data - barcode number, mobile phone number, handset make and model and dynamice text underneath (seat number, flight destination to Mobiqa (mobiqa 2009) which is a travel web agent in XML format. Mobiqa's API is available on request.&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334110850855167138" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 263px; CURSOR: hand; HEIGHT: 119px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEifuUuHFHI3apeBZPPkWCXDhjZXMOvHybZ3enxv3ullLFrVwRe_O1x-k5IVNnkuFNtLsoiIvJYwTzNxzhHo1KMsLnF63gQVD21xb_-rJDF-_tkpWeWoB6MhXdTLudIt9jz3KMahMNrV0S/s400/step2.bmp" border="0" /&gt;&lt;br /&gt;Step 3.) Mobiqa send out the mobile tickets either by WAP push, Email (link html attachment) pr MMS to the customer's mobile phone.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNsbLTZLIvnyFsXRmYr2gz1myragbFNy6iouFy0IkSWgyR1-djQ-kW80ZG9so1FeXU1W887rLvOkzXMgYj9GRecdFsVQIZvoX_Tg9NlwCnGgNmCjzUoEBg4h9uVe_sG_bYRSMo_c3ooRrf/s1600-h/step3_1.bmp"&gt;&lt;/a&gt;&lt;img id="BLOGGER_PHOTO_ID_5334112507823899026" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 141px; CURSOR: hand; HEIGHT: 287px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO-fu58XcAe9ntVTrEv47ECutRkHcXHku0wqsp49coPBw21JLcrBx97tTZIKT51wMyyHJUjajswJ9J-GlqxccVdZCRDvkEjqPGvaU2CDySBch5KJ4agzAaAYgT8rPB-J81Ur5dNnXyLy4r/s400/step3_1.bmp" border="0" /&gt;&lt;br /&gt;&lt;p align="left"&gt;&lt;/p&gt;&lt;p&gt;Step 4.) Passengers take their monile phone and it is scanned at security and the boarding gate.&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334112771082312962" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 191px; CURSOR: hand; HEIGHT: 134px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2DXyw-VBeTfaio5ca2hvAJ2Qp81_gmqrot08yl-dYUMGTNqV_RLR_dB9SWMVxMFKZUCZGhiWvl5DVqMXrcGHeyN5CUN2kSJP3zmalu0NqMBbnxW4VQws31F7UaZuADAw95ONsIPxLocqJ/s400/step4.bmp" border="0" /&gt;&lt;br /&gt;Step 5.) Scanner used were Desko GRSK 500 either containing or linking to the original ticketing platform that sold the ticket in the first place to compete validation.&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5334113042249396066" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 152px; CURSOR: hand; HEIGHT: 234px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaDmTX9GX8H7LpTfWYyIv2TVQ8C7C20hcyl6aPyp3E9ETCtwKkynSmLbsklSYel5g44-BIBEidpkil6xtBzuEn57Vw65V0UjEmZfX0EPMG4SC6g0gzAnXzlFtuPqzmMj_miEYBs2sZJl7Q/s400/step5.bmp" border="0" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Generally, there are little different of using WAP service beween booking airline services and mobile banking, for example&lt;/p&gt;&lt;p&gt;a.) Your cellphone when using WAP banking service that must have got the Security certificate before doing any operation. &lt;/p&gt;&lt;p&gt;b.) Your bank account must be linked with your phone card number. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Mobiqa (2009). "Products". Received 10th May, 2009 from URL - &lt;a href="http://www.mobiqa.com/airlines/products.html"&gt;http://www.mobiqa.com/airlines/products.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3Zkkakyow2XQXktGOgHWXlnRAa1RrdUbjGRqTTyD_eQ0TeFBUZcs8naU3WP4W69V49UJZ01-9OgN36ApYvYsY14oZ8jiWOv5ynt89nOVYxJVDUJ_tg9DYI9Hkm07utZC2LwLjFAYumvUT/s1600-h/Mobiqa1.bmp"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><enclosure length="0" type="video/mp4" url="http://www.blogger.com/video-play.mp4?contentId=46a45079fd492675&amp;type=video%2Fmp4"/><enclosure length="0" type="video/mp4" url="http://www.blogger.com/video-play.mp4?contentId=c21c505944a6f331&amp;type=video%2Fmp4"/><link>http://samkwong.blogspot.com/2009/05/exercise-25-part2.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKKsGrzno_5j4gKlIE63aOSyYfdu1N1aHg38hsroxuc-MZAl1C5MOEFj_6hyphenhyphenw8RKX8gLAqBUY_VU0SjnUnMHjonc5-jjxJSXa_tx5k42J0-JoOMhL_OUx_gd_rgAbBQKRckwKVFPaBJqI1/s72-c/step1.bmp" width="72"/><thr:total>0</thr:total><itunes:explicit>no</itunes:explicit><itunes:subtitle>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? I visit an airline web site named Northwest Airlines (http://www.nwa.com/) And I study their work flow of booking airline services used WAP in the following: Step 1.) Passenger checks in online and opts for mobile boarding pass. Step 2. ) NWA's check-in system transmits the relevant data - barcode number, mobile phone number, handset make and model and dynamice text underneath (seat number, flight destination to Mobiqa (mobiqa 2009) which is a travel web agent in XML format. Mobiqa's API is available on request. Step 3.) Mobiqa send out the mobile tickets either by WAP push, Email (link html attachment) pr MMS to the customer's mobile phone. Step 4.) Passengers take their monile phone and it is scanned at security and the boarding gate. Step 5.) Scanner used were Desko GRSK 500 either containing or linking to the original ticketing platform that sold the ticket in the first place to compete validation. Generally, there are little different of using WAP service beween booking airline services and mobile banking, for example a.) Your cellphone when using WAP banking service that must have got the Security certificate before doing any operation. b.) Your bank account must be linked with your phone card number. References: Mobiqa (2009). "Products". Received 10th May, 2009 from URL - http://www.mobiqa.com/airlines/products.html This blog is created at March of 2009, which is powered by Sam Kwong!</itunes:subtitle><itunes:author>noreply@blogger.com (Unknown)</itunes:author><itunes:summary>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? I visit an airline web site named Northwest Airlines (http://www.nwa.com/) And I study their work flow of booking airline services used WAP in the following: Step 1.) Passenger checks in online and opts for mobile boarding pass. Step 2. ) NWA's check-in system transmits the relevant data - barcode number, mobile phone number, handset make and model and dynamice text underneath (seat number, flight destination to Mobiqa (mobiqa 2009) which is a travel web agent in XML format. Mobiqa's API is available on request. Step 3.) Mobiqa send out the mobile tickets either by WAP push, Email (link html attachment) pr MMS to the customer's mobile phone. Step 4.) Passengers take their monile phone and it is scanned at security and the boarding gate. Step 5.) Scanner used were Desko GRSK 500 either containing or linking to the original ticketing platform that sold the ticket in the first place to compete validation. Generally, there are little different of using WAP service beween booking airline services and mobile banking, for example a.) Your cellphone when using WAP banking service that must have got the Security certificate before doing any operation. b.) Your bank account must be linked with your phone card number. References: Mobiqa (2009). "Products". Received 10th May, 2009 from URL - http://www.mobiqa.com/airlines/products.html This blog is created at March of 2009, which is powered by Sam Kwong!</itunes:summary><itunes:keywords>Exercise, Exercise 25</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-4239631757993689878</guid><pubDate>Sun, 10 May 2009 06:42:00 +0000</pubDate><atom:updated>2009-05-10T00:01:44.146-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Exercise</category><category domain="http://www.blogger.com/atom/ns#">Exercise 25</category><title>Exercise 25-part1</title><description>&lt;strong&gt;Exercise 25: M-commerce and the e-wallet: Innovation and mobile devices &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Explore ONE of the problems associated with mobile technology or their supplier, from 1 to 4 below:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;strong&gt;1. What is meant by a location based service?&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Wikipedia (2009) states that A location-based service (LBS) is an information and entertainment service, accessible with mobile devices through the mobile network and utilizing the ability to make use of the geographical position of the mobile device. &lt;/span&gt;&lt;span&gt;LBS services can be used in a variety of contexts, such as health, work, personal life, etc. LBS services include services to identify a location of a person or object, such as discovering the nearest banking cash machine or the whereabouts of a friend or employee. LBS services include parcel tracking and vehicle tracking services. LBS can include mobile commerce when taking the form of coupons or advertising directed at customers based on their current location. &lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Wikipedia (2009). "Location based service". Received 10th May, 2009 from URL - &lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;a href="http://en.wikipedia.org/wiki/Location_based_service"&gt;http://en.wikipedia.org/wiki/Location_based_service&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/exercise-25-part1.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-872029000999081342</guid><pubDate>Sun, 10 May 2009 05:35:00 +0000</pubDate><atom:updated>2009-05-09T23:22:26.920-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Exercise</category><category domain="http://www.blogger.com/atom/ns#">Exercise 24</category><title>Exercise 24-part3</title><description>&lt;strong&gt;3. Identify various activities in e-commerce where software agents are currently in use.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Umn (1999) tells me that there are various activities in e-commerce where software agents are currently in use as follows.&lt;br /&gt;a. )&lt;strong&gt; Procurement:&lt;/strong&gt; obtaining materials, services. managing inflow into the organization towards the end user.&lt;br /&gt;b.) &lt;strong&gt;Brokering Services&lt;/strong&gt;: finding information about products, sellers, and prices, providing protection for privacy, validating purchasers credit, billing and accounting, etc.&lt;br /&gt;c.) &lt;strong&gt;Digital Libraries and Recommending Services:&lt;/strong&gt; retrieving information from distributed sources, filtering information on contents, collaborative filtering.&lt;br /&gt;d.) &lt;strong&gt;Notification Services:&lt;/strong&gt; notifying of new books or CDs, notifying when specific products are available at a specific price.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;br /&gt;Umn (1999). "Intelligent agents for E-Commerce". Received 10th May, 2009 from URL -&lt;br /&gt;&lt;a href="http://www-users.cs.umn.edu/~gini/csom.html"&gt;http://www-users.cs.umn.edu/~gini/csom.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/exercise-24-part3.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-2105394670185691186</guid><pubDate>Wed, 06 May 2009 16:23:00 +0000</pubDate><atom:updated>2009-05-09T22:39:47.291-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Exercise</category><category domain="http://www.blogger.com/atom/ns#">Exercise 24</category><title>Exercise 24-part2</title><description>&lt;span style="font-family:arial;"&gt;&lt;strong&gt;2. Describe how techniques such as artificial intelligence and statistical techniques are used in software agents.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Erols (2000) states that AI technologies extend from the word Technology which stems from the Greek word technos, which means "art" and "skill." A sophisticated technology is then a cumulative building of learned and well-refined skills and processes. In the AI area, these processes have manifested themselves in a number of well-recognized and maturing areas including &lt;strong&gt;Neural Networks&lt;/strong&gt;, &lt;strong&gt;Expert Systems, Automatic Speech Recognition, Genetic Algorithms, Intelligent Agents, Natural Language Processing, Robotics, Logic Programming, and Fuzzy Logic&lt;/strong&gt;. Each of these areas will be examined in some depth here, but it is first important to understand that the importance of these individual areas has changed over the last two decades. These changes have been based upon the progress in each area, and the needs that each area meets. For example in the early 1980’s robotics was a large thrust in artificial intelligence. At that time benefits could be seen in manufacturing applications. In the late 1990’s the blossoming of the Internet pushed the importance of intelligent agents forward for performing routine tasks and complex searches. At the same time, throughout the 1980s and 1990s, orders of magnitude advances in computer processing power have allowed hurdles in speech recognition and image processing to be overcome. The maturity of each of these technology areas also differs. &lt;strong&gt;Expert Systems&lt;/strong&gt; and &lt;strong&gt;Automatic Speech Recognition&lt;/strong&gt; are among the most mature while &lt;strong&gt;Natural Language Processing&lt;/strong&gt; and &lt;strong&gt;Intelligent Agents&lt;/strong&gt; remain in early stages of development. In the next few paragraphs the basis for each of these technologies will be reviewed. In addition examples where the technologies have been effectively utilized will be presented.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:+0;"&gt;Wikipedia(2009) tells me there are some statistical techniques , for example, Analysis of variance (ANOVA), Chi-square test, Correlation, Factor Analysis, Mann-Whitney U,&lt;br /&gt;Mean Square Weighted Deviation MSWD, Pearson product-moment correlation coefficient&lt;br /&gt;Regression analysis, Spearman's rank correlation coefficient, Time Series Analysis, etc.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;br /&gt;Erols (2000). "A Primer on Artificial Intelligence Technologies ". Received 10th May, 2009 from URL - &lt;/span&gt;&lt;a href="http://users.erols.com/jsaunders/papers/aitechniques.htm"&gt;&lt;span style="font-family:arial;"&gt;http://users.erols.com/jsaunders/papers/aitechniques.htm&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;br /&gt;&lt;br /&gt;Wikipedia (2009). "Statistics ". Received 10th May, 2009 from URL - &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Statistics"&gt;&lt;span style="font-family:arial;"&gt;http://en.wikipedia.org/wiki/Statistics&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/exercise-24-part2.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-5003437491402466554</guid><pubDate>Wed, 06 May 2009 14:15:00 +0000</pubDate><atom:updated>2009-05-06T09:23:22.458-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Exercise</category><category domain="http://www.blogger.com/atom/ns#">Exercise 24</category><title>Exercise 24-part1</title><description>&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Exercise 24: Virtual business worlds and cyber agents&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&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 mat be able to get large companies to use it to sell their products online.)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. Differentiate the various types of software agents. &lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Kfupm(1996) states that software agent can be classified 8 types.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;There are collaborative agents, interface agents, mobile agents, information agents, reactive agents, hybrid agents, heterogeneous agent systems and smart agents. (See figure 1.)&lt;img id="BLOGGER_PHOTO_ID_5332718909605218434" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 99px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP_yfkjB2qilrl-fqJqx2wJqeF3QGTQmpLalXMkwZoknfMRdF3twptLXTHh58jFz1BT_q6k7-gP-e0aHSaPEtNUne0kXroHG3jKu5GrhAXlMxj3xFUgiSMuVBlBwtUPxE3MnhN_npZDyvn/s400/class_softAgent.bmp" border="0" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-family:arial;"&gt;Figure 1. A Classification of Software Agents&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;a.) &lt;strong&gt;Collaborative agents&lt;/strong&gt; emphasise autonmy and cooperation (with other agents). Hence, they may have to negotiate in order to reach mutually acceptable agreements on some matters. They typically are large coarse-grained, deliberative-style agents with non-trivial internals.(Alex L. G. Hayzelden,1999) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;b.) &lt;strong&gt;Interface agents / Information agents&lt;/strong&gt; emphasise autonomy and learning in order to perform tasks for their owner. Pattie Maes, a key proponent of this class of agents, points out that the key metaphor underlying interface agents is that of a personal assistant who is collaborating with the user in the same work environment. Note the subtle emphasis and distinction between collaborating with the user and collaborating with other agents as is the case with collaborative agents.(Alex L. G. Hayzelden,1999) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;c.) &lt;strong&gt;Mobile agents&lt;/strong&gt; emphasise deploying mobile code that is the adoption of mobile agent technology. Mobile agent technology is concerned with the ability to move executable code from one computer to another.(Alex L. G. Hayzelden,1999) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;d.) &lt;strong&gt;Reactive agents&lt;/strong&gt; represent a special category of agents which do not possess internal,symbolic models of their environments; instead they act/respond in a stimulus-responsemanner to the present state of the environment in which they are embedded. (Kfupm, 1996 )&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;e.) &lt;strong&gt;Hybrid agents&lt;/strong&gt; refer to those whose constitution is a combination of two or more agent philosophies within asingular agent. The key hypothesis for having hybrid agents or architectures is the belief that, for someapplication, the benefits accrued from having the combination of philosophies within asingular agent is greater than the gains obtained from the same agent based entirely on asingular philosophy. Otherwise having a hybrid agent or architecture is meaningless. Clearly,the motivation is the expectation that this hypothesis would be proved right; the ideal benefitswould be the set union of the benefits of the individual philosophies in the hybrid.(Alex L. G. Hayzelden,1999) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;f.) &lt;strong&gt;Heterogeneous agent&lt;/strong&gt; systems refer to an integrated set-up of at least two or more agents which belong to two or more different agent classes. The essential rationale for them is that the world abounds with a rich diversity of software products providing a wide range of services for a similarly wide range of domains. (Alex L. G. Hayzelden,1999) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;g.) &lt;strong&gt;Smart agents&lt;/strong&gt; are a new form of software agent that interface with other agents forming an artificial intelligence system. The acronym "SMART" stands for "System for Managing Agents in Real Time". This is a bit of a misnomer because the agents manage themselves and each other by agreeing to become part of the collective whole. SMART Agents work together, within a SMART system, to perform smaller pieces of larger programming tasks so that the combined collective can achieve great things with relatively simple programming building blocks. (Wikipedia, 2009).&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;Alex L. G. Hayzelden(1999). "Software agents for future communication systems".Springer Publisher. pp 70-200.&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;Kfupm(1996). "Software Agents". Received 6th May, 2009 from URL - &lt;a href="http://reference.kfupm.edu.sa/content/s/o/software_agents__an_overview__83303.pdf"&gt;http://reference.kfupm.edu.sa/content/s/o/software_agents__an_overview__83303.pdf&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;Wikipedia (2009). "Smart Agents". Received 6th May, 2009 from URL - &lt;a href="http://en.wikipedia.org/wiki/SMART_Agents"&gt;http://en.wikipedia.org/wiki/SMART_Agents&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/exercise-24.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP_yfkjB2qilrl-fqJqx2wJqeF3QGTQmpLalXMkwZoknfMRdF3twptLXTHh58jFz1BT_q6k7-gP-e0aHSaPEtNUne0kXroHG3jKu5GrhAXlMxj3xFUgiSMuVBlBwtUPxE3MnhN_npZDyvn/s72-c/class_softAgent.bmp" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-1216323646824210463</guid><pubDate>Wed, 06 May 2009 13:09:00 +0000</pubDate><atom:updated>2009-05-06T07:13:56.093-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Exercise</category><category domain="http://www.blogger.com/atom/ns#">Exercise 23</category><title>Exercise 23</title><description>&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Exercise 23: Searching mechanisms&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;1. What is a spider? What does it do?&lt;br /&gt;&lt;/strong&gt;Webopedia (2009) states that a spider is a program that automatically fetches Web pages. Spiders are used to feed pages to search engines. It's called a spider because it crawls over the Web. Another term for these programs is webcrawler. Because most Web pages contain links to other pages, a spider can start almost anywhere. As soon as it sees a link to another page, it goes off and fetches it. Large search engines, like Alta Vista, have many spiders working in parallel. &lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;2. What is a meta-search engine? Provide some examples.&lt;br /&gt;&lt;/strong&gt;Wikipedia (2009) explains that a meta-search engine is a search tool that sends user requests to several other search engines and/or databases and aggregates the results into a single list or displays them according to their source. Metasearch engines enable users to enter search criteria once and access several search engines simultaneously. Metasearch engines operate on the premise that the Web is too large for any one search engine to index it all and that more comprehensive search results can be obtained by combining the results from several search engines. This also may save the user from having to use multiple search engines separately.&lt;br /&gt;&lt;br /&gt;The examples of meta-search engine are listed in the following:&lt;br /&gt;a.) Chofter meta-search engine (&lt;/span&gt;&lt;a href="http://www.chofter.com/"&gt;&lt;span style="font-family:arial;"&gt;http://www.chofter.com/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;)&lt;br /&gt;b.) Dogpile meta-search engine (&lt;/span&gt;&lt;a href="http://www.dogpile.com/"&gt;&lt;span style="font-family:arial;"&gt;http://www.dogpile.com/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;)&lt;br /&gt;c.) Ixquick meta-search engine (&lt;/span&gt;&lt;a href="http://www.ixquick.com/"&gt;&lt;span style="font-family:arial;"&gt;http://www.ixquick.com/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. How can you get your site listed at major search sites; and how could you improve your site ranking? &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;We can get our site listed at major search sites by following methods:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;a.) The website named AllTheWeb (&lt;/span&gt;&lt;a href="http://www.alltheweb.com/"&gt;&lt;span style="font-family:arial;"&gt;http://www.alltheweb.com/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;) that is owned by overture. It also provides results for Lycos. And it provides a free submission. You can add your web site's URL by this link &lt;/span&gt;&lt;a href="http://www.alltheweb.com/add_url.php"&gt;&lt;span style="font-family:arial;"&gt;http://www.alltheweb.com/add_url.php&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;b.) The website named Altavista (&lt;/span&gt;&lt;a href="http://www.altavista.com/"&gt;&lt;span style="font-family:arial;"&gt;http://www.altavista.com/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;) that is owned by overture. It also provides a free submission. You can add your web site's URL by this link &lt;/span&gt;&lt;a href="http://www.altavista.com/addurl/new"&gt;&lt;span style="font-family:arial;"&gt;http://www.altavista.com/addurl/new&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;c.) The website named Google (&lt;/span&gt;&lt;a href="http://www.google.com/"&gt;&lt;span style="font-family:arial;"&gt;http://www.google.com/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;) that is the top choice for searchers. It's search engineresults also appear in Yahoo and AOL. You can add your web site's URL by this link &lt;/span&gt;&lt;a href="http://www.google.com/addurl.html"&gt;&lt;span style="font-family:arial;"&gt;http://www.google.com/addurl.html&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;We can improve our web site ranking by the following methods.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;a.) Place keywords in your web pages by following Isitebuild(2006) 's suggestion.&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Title Tag&lt;/strong&gt; - This tag should contain your most important keyword phrase. Make the title interesting enough to grab the visitor's attention. Only use 5 to 6 words in your title with your most relevant keyword in the beginning. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Description Meta Tag&lt;/strong&gt; - The search engines often use this tag when they display the description of your web site in the search results. Try to make the description inviting for your visitors. The length should be less than 200 characters, including spaces. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Keyword Meta Tag&lt;/strong&gt; - This tag will contain a listing of your keywords and keyword phrases that are relevant to your page and enable a Search Engine to find you.Here are some things to remember: (1) Don't use the same keyword more than 3 times. (2) Use keywords that occur in your Title Tag and Description Tag. (3) Use only 200 characters for all your keywords. (4)Use different keywords for all your pages. (4) Only use keywords that are relevant to your site. (5) Use lower case letters. (6) Use the single and plural forms of your keywords. (7) Use commas or spaces between your keywords or keyword phrases. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Heading Tags &lt;/strong&gt;-&lt;strong&gt; &lt;/strong&gt;These tags hold separate topics between paragraphs and range from h1, which is very large and bold to h6, which is very small and bold. Your page heading should contain your most important keywords or keyword phrase. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Alt Tag &lt;/strong&gt;- This tag is used to add text in place of the image. The user may haveturned off reading the graphics to make the page load faster. Therefore he will read the ALT Tag text instead.Add short keyword rich text to your graphic links. Make sure theALT text describes the link destination. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Hypertext Links &lt;/strong&gt;-&lt;strong&gt; &lt;/strong&gt;Include your keywords or keyword phrase in your link text. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Content&lt;/strong&gt; - Search Engine spiders put more weight on keyword richcontent that is higher up on the page rather than in the middleor lower sections. Insert your keywords and keyword phrases inyour text at least three times. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Types of Sites that won't get indexed by Search Engines.&lt;/strong&gt; -&lt;strong&gt; &lt;/strong&gt;Flash and Frame Sites - pages created this way will be avoidedby the Search Engines spiders. Dynamic Pages - any web address that contains a question mark(i.e. ASP, Perl, Cold Fusion), will not be indexed by thespiders. Password Protected Pages - Search Engines Spiders will not indexany area that is protected by a password. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Use Meta Tag Generators&lt;/strong&gt; - These are tools that can be used to automatically generate yourkeywords. Here are some resources you can use:&lt;/span&gt;&lt;a href="http://www.bcentral.com/products/metatags.asp"&gt;&lt;span style="font-family:arial;"&gt;http://www.bcentral.com/products/metatags.asp&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Webopedia(200). "Spider". Received 6th May, 2009 from URL - &lt;/span&gt;&lt;a href="http://www.webopedia.com/TERM/s/spider.html"&gt;&lt;span style="font-family:arial;"&gt;http://www.webopedia.com/TERM/s/spider.html&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Wikipedia (2009). "Metasearch engine". Received 6th May, 2009 from URL -&lt;br /&gt;&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Metasearch_engine"&gt;&lt;span style="font-family:arial;"&gt;http://en.wikipedia.org/wiki/Metasearch_engine&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;Isitebuild (2006). "How to Use Keywords to Optimize Your Sitefor Search Engines-Part 2 ".Received 6th May, 2009 from URL - &lt;/span&gt;&lt;a href="http://www.isitebuild.com/keywords2.htm"&gt;&lt;span style="font-family:arial;"&gt;http://www.isitebuild.com/keywords2.htm&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/exercise-23.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-8882151800400864474</guid><pubDate>Tue, 05 May 2009 20:14:00 +0000</pubDate><atom:updated>2009-05-06T06:07:53.527-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Exercise</category><category domain="http://www.blogger.com/atom/ns#">Exercise 22</category><title>Exercise 22</title><description>&lt;strong&gt;Exercise 22. &lt;/strong&gt;&lt;br /&gt;&lt;strong&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;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Customer Relationship Management (CRM)&lt;/strong&gt; system includes tools, technologies and procedures that allow managing, improving and facilitating sales, support and related interactions with customers, prospects, and business partners throughout the enterprise. The main goal of a CRM system is to help sales and marketing people to analyze of customer behavior and its value for the organization by using technology and human resources. Research already made in this area states that, using CRM systems, organizations may obtain loyal and more satisfied customers by improving their business, reducing acquisition costs and gaining acknowledgment of their brand, which it is translated to a better financial performance. Some organizations only implement some functionalities of a CRM system and, although this action may limit the whole system functionality, it is a great step towards integrating the missing modules in the future to achieve a complete implementation. (Iseing, 2007).&lt;br /&gt;&lt;br /&gt;On the other hand, a &lt;strong&gt;Supply Chain Management (SCM)&lt;/strong&gt; System is a packaged technological solution that, after its deployment, it offers to the organization several advantages to coordinate their raw material acquisition, production and logistic processes, and at the same time, it improves relationship with customer and suppliers, building longterm strategic alliances. We can define a SCM system as the technological solution that manages and give support to activities related with product delivery, from raw material management until the final product reaches the end customer. It includes processes for raw material acquisition, production and assembly, storage, inventory control, order management, distribution along commercial channels and customer delivery. A SCM system will allow the organization to automate and control in a better way processes related to product acquisition, production and warehousing in order to obtain the desired benefits. (Iseing, 2007).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;CRM&lt;/strong&gt; systems are usually projects whose application needs to be prepared to quickly respond to changes in the requirements, maybe one of the reasons being the dynamic and sometimes unstable environment of the commercial processes in the organizations. For example, most of the time the marketing department needs to adequate their processes to obtain new information about competitors, clients, new markets and market tendencies. &lt;strong&gt;On the other hand&lt;/strong&gt;, in the &lt;strong&gt;SCM &lt;/strong&gt;home grounds usually systems implementations require coordination of many members of the logistic chain, involving a large working team that needs a well-based and detailed plan to pursue the success of the overall SCM implementation process. Additionally, while SCM systems deal with information processing for operational transactional purposes, CRM systems concentrate more on information analysis for commercial decision support. (Iseing 2007).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Referances:&lt;/strong&gt;&lt;br /&gt;Iseing (2007). "IMPLEMENTATION APPROACHES FOR EXTENDED ENTERPRISESYSTEMS: COMPARATIVE ANALYSIS OF CRM AND SCM SYSTEMS IMPLEMENTATIONAPPROACHES". Received 6th May, 2009 from URL - &lt;a href="http://www.iseing.org/emcis/EMCIS2007/emcis07cd/EMCIS07-PDFs/704.pdf"&gt;http://www.iseing.org/emcis/EMCIS2007/emcis07cd/EMCIS07-PDFs/704.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/exercise-22.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5837873896111880182.post-6880726519698085898</guid><pubDate>Tue, 05 May 2009 18:59:00 +0000</pubDate><atom:updated>2009-05-05T13:13:48.199-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Exercise</category><category domain="http://www.blogger.com/atom/ns#">Exercise 21</category><title>Exercise 21</title><description>&lt;div&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Exercise 21 .Develop the class diagram for the following shopping cart specifications:&lt;br /&gt;&lt;br /&gt;A shoppingCart object is associated with only one creditCard and customer and to items in itemToBuy object, Persistent customer information such as name, billing address, delivert 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 producti. The credit card object contains the secure method for checking that the charge is authentic.&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;My class diagram is showed in the following:&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3UOt3Go5BrFrTCNkS4Fczeus2BzLw3VncMHiqi8RuIkqQOv3WZJrCqM73sswercJdDqnP_u2UH3NUp6dTnIF0fbWKPbwBI2A6p-HNgROB-1rw21nzOa0fXWdgkAoNs4BxiDz5bcLUJKym/s1600-h/ClassDiagram.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5332435477622920146" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 400px; CURSOR: hand; HEIGHT: 314px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3UOt3Go5BrFrTCNkS4Fczeus2BzLw3VncMHiqi8RuIkqQOv3WZJrCqM73sswercJdDqnP_u2UH3NUp6dTnIF0fbWKPbwBI2A6p-HNgROB-1rw21nzOa0fXWdgkAoNs4BxiDz5bcLUJKym/s400/ClassDiagram.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;This blog is created at March of 2009, which is powered by Sam Kwong!&lt;/div&gt;</description><link>http://samkwong.blogspot.com/2009/05/exercise-21.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3UOt3Go5BrFrTCNkS4Fczeus2BzLw3VncMHiqi8RuIkqQOv3WZJrCqM73sswercJdDqnP_u2UH3NUp6dTnIF0fbWKPbwBI2A6p-HNgROB-1rw21nzOa0fXWdgkAoNs4BxiDz5bcLUJKym/s72-c/ClassDiagram.png" width="72"/><thr:total>0</thr:total></item></channel></rss>