<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3194943459551535899</id><updated>2011-08-02T12:17:43.364+10:00</updated><category term='Exercise 10'/><category term='Introduction'/><category term='Experiences'/><category term='Exercise 02'/><category term='Exercise 05'/><category term='Topic 05'/><category term='Exercise 22'/><category term='Topic 10'/><category term='Exercise 17'/><category term='Workshop 4'/><category term='Topic 09'/><category term='Exercise 18'/><category term='Topic 01'/><category term='Workshop 7'/><category term='Exercise 01'/><category term='Topic 04'/><category term='Workshop 3'/><category term='Exercise 21'/><category term='Exercise 04'/><category term='Exercise 16'/><category term='Learning Ruby'/><category term='Exercise 08'/><category term='Exercise 13'/><category term='Elevator Pitch 2'/><category term='Exercise 19'/><category term='Topic 03'/><category term='Exercise 24'/><category term='Workshop 6'/><category term='Workshop 2'/><category term='Exercise 15'/><category term='Topic 07'/><category term='Exercise 12'/><category term='Elevator Pitch 1'/><category term='Exercise 20'/><category term='Exercise 07'/><category term='Exercise 03'/><category term='Exercise 14'/><category term='Exercise 23'/><category term='Workshop 5'/><category term='Workshop 1'/><category term='Rants'/><category term='Exercise 09'/><category term='Exercise 25'/><category term='Observations'/><category term='Exercise 06'/><category term='Exercise 11'/><category term='Topic 02'/><category term='Workshop 8'/><category term='Topic 08'/><title type='text'>ITC565 Business Application Development</title><subtitle type='html'>My blog designed to enhance my learning and to act as a learning tool as we investigate web 2.0 technologies within a business application development framework.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>90</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-7525422192295282921</id><published>2009-07-20T13:10:00.006+10:00</published><updated>2009-07-20T20:39:49.506+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Elevator Pitch 2'/><title type='text'>Evaluation Report</title><content type='html'>&lt;p&gt;My final summary and elevator pitch is contained at &lt;a href="http://www.archive.org/download/ElevatorPitch2/ElevatorPitch2.wma"&gt;Elevator Pitch 2&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The transcript of the report is as follows:
&lt;blockquote&gt;&lt;p&gt;As our journey investigating the issues surrounding Business Application development draws to a close it is time to reflect on what we have seen and experienced.&lt;/p&gt;&lt;p&gt;The topic series and related exercises has delved briefly into areas such as e-commerce, distributed systems, database and application servers, system security, system design and mobile computing.&lt;/p&gt;&lt;p&gt;The workshop series required the development of an Online Taxi Booking System using the Ruby on Rails framework as a design platform. It introduced the MVC design pattern and DRY principle and pushed the convention over configuration mantra espoused by the Ruby community. At times major frustration and gnashing of teeth ensued, but it all came good in the end.&lt;/p&gt;&lt;p&gt;These topics and workshop series have all added a little to the total understanding required to develop a Business Application in today’s rapidly changing online environment.&lt;/p&gt;&lt;p&gt;Progress along this journey has been detailed in our blog which has proved both useful and enlightening.&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-7525422192295282921?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/7525422192295282921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/07/evaluation-report.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7525422192295282921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7525422192295282921'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/07/evaluation-report.html' title='Evaluation Report'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-7386441995643773292</id><published>2009-07-19T20:35:00.002+10:00</published><updated>2009-07-19T21:13:20.845+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 7'/><title type='text'>Workshop 7: End of the Line (Part 2)</title><content type='html'>&lt;p&gt;Well it appears that I was wrong. I have managed to produce an application that integrates booking a cab with an authentication mechanism. However even though I have successfully melded these 2 attributes together the sum of the parts still does not make an appropriate production application.&lt;/p&gt;&lt;p&gt;In order for this application to be production ready a large number of enhancements would need to be developed. This would include the following:&lt;ul&gt;&lt;li&gt;save bookings to database&lt;/li&gt;&lt;li&gt;allow retrieval of previous bookings so user can review booking history&lt;/li&gt;&lt;li&gt;allow for payments&lt;/li&gt;&lt;li&gt;have comprehensive test suite&lt;/li&gt;&lt;li&gt;etc&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;h3&gt;Deployment&lt;/h3&gt;&lt;p&gt;According to (Hartl, chapter 17) Mongrel is suitable to use as a webserver for Production use with a ROR application. Currently, there are only two things that everyone seems to agree on: Use Mongrel as the Rails application server, and deploy to some flavor of Unix (most commonly Linux). The rest is up to you. One option is to use a shared host. Because of the explosive growth of Rails, there are now many shared host options, and a web search for "Rails shared host" provides a cornucopia of possibilities. If you're deploying to your own server, they recommend running Apache in front of a single Mongrel process to start. &lt;/p&gt;
After locating the server, to deploy you need to do the following:&lt;ol&gt;&lt;li&gt;Create the production database&lt;/li&gt;&lt;li&gt;specify the production database details in the database.yml file&lt;/li&gt;&lt;li&gt;migrate the application to production&lt;br/&gt;rake db:migrate RAILS_ENV=production&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;(Hartl, ch17) recommends the following to set up a production Rails application:&lt;ul&gt;&lt;li&gt;Linux/Apache/Mongrel for deployment&lt;/li&gt;&lt;li&gt;Caching mod_proxy_balance and shared nothing and for scaling&lt;/li&gt;&lt;li&gt;Subversion or darcs for version control&lt;/li&gt;&lt;li&gt;Capistrano for automated deployment and rollback&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
&lt;strong&gt;References&lt;/strong&gt;&lt;br/&gt;
Hartl, M &amp; Prochazka, A (2008). RailsSpace: Building a Social Networking Website with Ruby on Rails, Pearson Education&lt;br/&gt;&lt;strong&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-7386441995643773292?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/7386441995643773292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-7-end-of-line-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7386441995643773292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7386441995643773292'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-7-end-of-line-part-2.html' title='Workshop 7: End of the Line (Part 2)'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-5174400677944623720</id><published>2009-07-19T19:58:00.006+10:00</published><updated>2009-07-19T20:18:06.305+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 6'/><title type='text'>Workshop 6/7: Application Success</title><content type='html'>The following  screenshots define the application that I developed today after reading RailsSpace and developing as I read:&lt;br/&gt;
The home page:&lt;br/&gt;
&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/SmLwJjw9OjI/AAAAAAAAAJY/WuKQ6URsGjI/s1600-h/1.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 126px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/SmLwJjw9OjI/AAAAAAAAAJY/WuKQ6URsGjI/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360110553534380594" /&gt;&lt;/a&gt;&lt;br/&gt;
The about page:&lt;br/&gt;
&lt;a href="http://2.bp.blogspot.com/_JS00SNKPHSk/SmLwJel0WrI/AAAAAAAAAJQ/pyQGK0EX6uM/s1600-h/2.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 135px;" src="http://2.bp.blogspot.com/_JS00SNKPHSk/SmLwJel0WrI/AAAAAAAAAJQ/pyQGK0EX6uM/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360110552145484466" /&gt;&lt;/a&gt;&lt;br/&gt;
The help page:&lt;br/&gt;
&lt;a href="http://2.bp.blogspot.com/_JS00SNKPHSk/SmLwJZF4BSI/AAAAAAAAAJI/snzkC-WVsTc/s1600-h/3.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 124px;" src="http://2.bp.blogspot.com/_JS00SNKPHSk/SmLwJZF4BSI/AAAAAAAAAJI/snzkC-WVsTc/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360110550669329698" /&gt;&lt;/a&gt;&lt;br/&gt;
The login page:&lt;br/&gt;
&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/SmLwI6qMZZI/AAAAAAAAAJA/YKn_wos7KzU/s1600-h/4.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 214px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/SmLwI6qMZZI/AAAAAAAAAJA/YKn_wos7KzU/s400/4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360110542500160914" /&gt;&lt;/a&gt;&lt;br/&gt;
The user hub once logged in:&lt;br/&gt;
&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/SmLvxB4q67I/AAAAAAAAAI4/z6-0p8dX-ok/s1600-h/5.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 179px;" src="http://3.bp.blogspot.com/_JS00SNKPHSk/SmLvxB4q67I/AAAAAAAAAI4/z6-0p8dX-ok/s400/5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360110132123069362" /&gt;&lt;/a&gt;&lt;br/&gt;
Choosing to book a taxi:&lt;br/&gt;
&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/SmLvwzkYObI/AAAAAAAAAIw/zcAcxc07vHw/s1600-h/6.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 248px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/SmLvwzkYObI/AAAAAAAAAIw/zcAcxc07vHw/s400/6.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360110128279861682" /&gt;&lt;/a&gt;&lt;br/&gt;
The user selections from the booking screen. This is where more work would need to be done in a production environment or working application. A booking record would need to be written at this point and the user notified of thir booking number.&lt;br/&gt;
&lt;a href="http://2.bp.blogspot.com/_JS00SNKPHSk/SmLvwiDfb0I/AAAAAAAAAIo/Hkep1KAN4bc/s1600-h/7.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 179px;" src="http://2.bp.blogspot.com/_JS00SNKPHSk/SmLvwiDfb0I/AAAAAAAAAIo/Hkep1KAN4bc/s400/7.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360110123578519362" /&gt;&lt;/a&gt;&lt;br/&gt;
If the user selects Boioking History from the hub screen then all booking for the current user should be displayed.&lt;br/&gt;
&lt;a href="http://2.bp.blogspot.com/_JS00SNKPHSk/SmLvwR-8QzI/AAAAAAAAAIg/HAJAqqEDvuE/s1600-h/8.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 124px;" src="http://2.bp.blogspot.com/_JS00SNKPHSk/SmLvwR-8QzI/AAAAAAAAAIg/HAJAqqEDvuE/s400/8.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360110119264469810" /&gt;&lt;/a&gt;&lt;br/&gt;
If the user selects the logout option then they get sent here:&lt;br/&gt;
&lt;a href="http://2.bp.blogspot.com/_JS00SNKPHSk/SmLvwOKJ-cI/AAAAAAAAAIY/TF6hRnK_o-U/s1600-h/9.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 160px;" src="http://2.bp.blogspot.com/_JS00SNKPHSk/SmLvwOKJ-cI/AAAAAAAAAIY/TF6hRnK_o-U/s400/9.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360110118237764034" /&gt;&lt;/a&gt;&lt;br/&gt;
The following shows the user registration screen:&lt;br/&gt;
&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/SmLyJzTBO-I/AAAAAAAAAJw/NujeMfUbxU8/s1600-h/10.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 220px;" src="http://1.bp.blogspot.com/_JS00SNKPHSk/SmLyJzTBO-I/AAAAAAAAAJw/NujeMfUbxU8/s400/10.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360112756727036898" /&gt;&lt;/a&gt;&lt;br/&gt;
Here we see that we have form validation enabled:&lt;br/&gt;
&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/SmLyJiF6Z6I/AAAAAAAAAJo/pvpU37hN6Uw/s1600-h/11.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 272px;" src="http://1.bp.blogspot.com/_JS00SNKPHSk/SmLyJiF6Z6I/AAAAAAAAAJo/pvpU37hN6Uw/s400/11.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360112752108660642" /&gt;&lt;/a&gt;&lt;br/&gt;
This shows a succesfully registered user, has the same effect as a user logging in:&lt;br/&gt;
&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/SmLyJah6NXI/AAAAAAAAAJg/_0cTfIIst7I/s1600-h/12.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 179px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/SmLyJah6NXI/AAAAAAAAAJg/_0cTfIIst7I/s400/12.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360112750078604658" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-5174400677944623720?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/5174400677944623720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-67-application-success.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/5174400677944623720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/5174400677944623720'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-67-application-success.html' title='Workshop 6/7: Application Success'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JS00SNKPHSk/SmLwJjw9OjI/AAAAAAAAAJY/WuKQ6URsGjI/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-2676023338223058670</id><published>2009-07-19T17:35:00.006+10:00</published><updated>2009-07-19T19:58:33.808+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 6'/><title type='text'>Workshop 6/7: Integrating RailsSpace with OTBS</title><content type='html'>I have got the RailsSpace application to the point where it should be really easy to integrate what i had done previously with the OTBS.With that in mind&lt;ol&gt;&lt;li&gt;I created a vehicle controller&lt;br/&gt;ruby script/generate controller Vehicle cabtype bookcab&lt;/li&gt;&lt;li&gt;modified the bookcab.html.erb to look like we did in Workshop 4&lt;/li&gt;&lt;li&gt;Changed the link in the application.html.erb file to point to the vehicle bookcab form&lt;br/&gt;&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/SmLO1AyoutI/AAAAAAAAAIQ/Hx86xVE4eGE/s1600-h/Workshop+7+railsspace+j.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 176px;" src="http://1.bp.blogspot.com/_JS00SNKPHSk/SmLO1AyoutI/AAAAAAAAAIQ/Hx86xVE4eGE/s400/Workshop+7+railsspace+j.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360073916665084626" /&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://2.bp.blogspot.com/_JS00SNKPHSk/SmLO1Crd5zI/AAAAAAAAAII/nIhgkF4lqG0/s1600-h/Workshop+7+railsspace+k.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 113px;" src="http://2.bp.blogspot.com/_JS00SNKPHSk/SmLO1Crd5zI/AAAAAAAAAII/nIhgkF4lqG0/s400/Workshop+7+railsspace+k.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360073917171885874" /&gt;&lt;/a&gt;&lt;br/&gt; Unfortunately when you choose the link I get the following error message:&lt;br/&gt;
&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/SmLO0-yvPwI/AAAAAAAAAIA/zNzgxwxhtd8/s1600-h/Workshop+7+railsspace+l.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 124px;" src="http://3.bp.blogspot.com/_JS00SNKPHSk/SmLO0-yvPwI/AAAAAAAAAIA/zNzgxwxhtd8/s400/Workshop+7+railsspace+l.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360073916128640770" /&gt;&lt;/a&gt;&lt;br/&gt;I would love to continue investigating the issue, but unfortunately I have now developed a visual migraine, and looking at the computer screen is akin to looking at a kalaidescope.&lt;/li&gt;&lt;p&gt;Pregnant pause for 2 hours .....&lt;/p&gt;&lt;li&gt;Well I have my application working. Yee haa! The comment from Karen helped in the end. The error about the unknown route was purely because I had not restarted the server after creating the vehicle controller.&lt;/li&gt;&lt;li&gt;I have managed to integrate the RailsSpace application with the OTBS application we have been developing. See my next post for application details.&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-2676023338223058670?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/2676023338223058670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-67-integrating-railsspace-with.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2676023338223058670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2676023338223058670'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-67-integrating-railsspace-with.html' title='Workshop 6/7: Integrating RailsSpace with OTBS'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JS00SNKPHSk/SmLO1AyoutI/AAAAAAAAAIQ/Hx86xVE4eGE/s72-c/Workshop+7+railsspace+j.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-1588535893255558774</id><published>2009-07-19T16:06:00.007+10:00</published><updated>2009-07-19T19:16:41.367+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 6'/><title type='text'>Workshop 6/7: Developing RailsSpace</title><content type='html'>The following are the steps I have taken to develop the RailsSpace application:&lt;ol&gt;&lt;li&gt;ruby script/generate controller Site index about help
&lt;/li&gt;&lt;li&gt;Here is where we learn how do undo things.&lt;br/&gt;ruby script/destroy controller &lt;ControllerName&gt;&lt;/li&gt;&lt;li&gt;Change the root mapping in the routes.rb file&lt;br/&gt;map.connect '', :controller =&gt; "site"&lt;/li&gt;&lt;li&gt;Then to ensure that the default routing works we need to remove the public/index.html page.&lt;/li&gt;&lt;li&gt;Modify the pages defined when we created the Site controller (index, about and help)&lt;/li&gt;&lt;li&gt;Modify layouts.&lt;/li&gt;&lt;li&gt;Add navigation and the site looks like:&lt;/li&gt;&lt;br/&gt;&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/SmKfkZSSEXI/AAAAAAAAAG4/nqTOB352XZU/s1600-h/Workshop+7+railsspace.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 365px; height: 190px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/SmKfkZSSEXI/AAAAAAAAAG4/nqTOB352XZU/s400/Workshop+7+railsspace.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360021954135986546" /&gt;&lt;/a&gt;&lt;li&gt;Add css and the site now looks like&lt;/li&gt;&lt;br/&gt;&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/SmKg7l49C9I/AAAAAAAAAHA/PCaViBVUNI8/s1600-h/Workshop+7+railsspace+b.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 393px; height: 227px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/SmKg7l49C9I/AAAAAAAAAHA/PCaViBVUNI8/s400/Workshop+7+railsspace+b.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360023452168031186" /&gt;&lt;/a&gt;&lt;li&gt;Well now we want to create a user so we need a database. I have create a mysql database called railsspace.&lt;/li&gt;&lt;li&gt;Generate the user model&lt;br/&gt;ruby script/generate model User&lt;/li&gt;&lt;li&gt;create the user in the database&lt;br/&gt;rake db:migrate&lt;/li&gt;&lt;li&gt;learn here that we can roll back the database migration by using the command;&lt;br/&gt;rake db:migrate VERSION=0&lt;/li&gt;&lt;li&gt;Add validation to the user model.&lt;/li&gt;&lt;li&gt;Testing the validation gives the following output&lt;br/&gt;&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/SmKnmlD-ZEI/AAAAAAAAAHI/UL9rZjjTAnY/s1600-h/Workshop+7+railsspace+c.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 145px;" src="http://1.bp.blogspot.com/_JS00SNKPHSk/SmKnmlD-ZEI/AAAAAAAAAHI/UL9rZjjTAnY/s400/Workshop+7+railsspace+c.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360030787749962818" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Add magic columns to the model&lt;br/&gt;ruby script/generate migration AddUserTimestamps&lt;/li&gt;&lt;li&gt;Add user controller to enable us to register users&lt;br/&gt;ruby script/generate controller User index register&lt;/li&gt;At this point I got a hosting error within APTANA studio that says I couldnt have 2 application using the same host. I have gotten this error before and the only solution I could find was to close and restart APTANA. This worked.&lt;li&gt;So I now have the following nicely rendered registration page:&lt;br/&gt;&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/SmKvAGxTTaI/AAAAAAAAAHQ/hgkHfHeUNdI/s1600-h/Workshop+7+railsspace+d.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 336px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/SmKvAGxTTaI/AAAAAAAAAHQ/hgkHfHeUNdI/s400/Workshop+7+railsspace+d.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360038922876571042" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Add debugging info so that we can debug easily. Gee I wish I had seen this before. Very nice!!&lt;/li&gt;&lt;li&gt;Continuing on we deal with what happens if a user registers successfully.The following screenshot shows this taking place:&lt;br/&gt;&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/SmK0LRux5sI/AAAAAAAAAHY/OQHEW2uxYQY/s1600-h/Workshop+7+railsspace+e.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 293px;" src="http://3.bp.blogspot.com/_JS00SNKPHSk/SmK0LRux5sI/AAAAAAAAAHY/OQHEW2uxYQY/s400/Workshop+7+railsspace+e.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360044612355483330" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Add the link to the registration page in the application.html.erb file&lt;/li&gt;&lt;li&gt;Add a helper function to reduce ugly code and then review documentation&lt;br/&gt;rake doc:app&lt;br/&gt;and then view  doc/app/index.html&lt;/li&gt;&lt;li&gt;Clean up the database&lt;br/&gt;rake db:migrate VERSION=0&lt;blockquote&gt;This will clean the database&lt;/blockquote&gt;&lt;br/&gt;rake db:migrate&lt;blockquote&gt;This will rebuild the database&lt;/blockquote&gt;&lt;/li&gt;&lt;br/&gt;I would love to investigate the testing functionality within ROR but due to time constraints I am going to bypass this section. (Here is hoping that this decision doesnt come back to bite me.)&lt;br/&gt;&lt;li&gt;I am now back to where I started the RailsSpace review earlier today. ie I have now created the session&lt;/li&gt;&lt;li&gt;Modify the user_controller so that registered users are automatically logged in.&lt;/li&gt;&lt;li&gt;Change the application.html so that if we are developing we can see what the session variable contains as well. Add some javascript to display individual debug options seperately as required.&lt;br/&gt;&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/SmK8YChQNNI/AAAAAAAAAHg/ZAJDb4XeBlY/s1600-h/Workshop+7+railsspace+f.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 354px;" src="http://1.bp.blogspot.com/_JS00SNKPHSk/SmK8YChQNNI/AAAAAAAAAHg/ZAJDb4XeBlY/s400/Workshop+7+railsspace+f.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360053627703538898" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Lets add a login template and link the main application screen accordingly.&lt;/li&gt;&lt;li&gt;We can now add a logout page as well and modify the code so that the appropriate menu items appear dependent upon the logged in condition.&lt;br/&gt;&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/SmLApV2mfEI/AAAAAAAAAH4/SIHlPU8wby4/s1600-h/Workshop+7+railsspace+g.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 185px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/SmLApV2mfEI/AAAAAAAAAH4/SIHlPU8wby4/s400/Workshop+7+railsspace+g.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360058322997640258" /&gt;&lt;/a&gt;
&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/SmLApLHcgoI/AAAAAAAAAHw/LR07bJlqLFA/s1600-h/Workshop+7+railsspace+h.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 158px;" src="http://1.bp.blogspot.com/_JS00SNKPHSk/SmLApLHcgoI/AAAAAAAAAHw/LR07bJlqLFA/s400/Workshop+7+railsspace+h.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360058320115499650" /&gt;&lt;/a&gt;
&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/SmLApPrqTZI/AAAAAAAAAHo/iq-5OTiGKn0/s1600-h/Workshop+7+railsspace+i.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 159px;" src="http://3.bp.blogspot.com/_JS00SNKPHSk/SmLApPrqTZI/AAAAAAAAAHo/iq-5OTiGKn0/s400/Workshop+7+railsspace+i.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360058321341140370" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Now lets create a protected page&lt;br/&gt;I added the code "the stupid way" as the book says inside the controller and verified that it worked.&lt;/li&gt;&lt;li&gt;Add nice URL forwarding to protected pages, once user is authorised, by utilising the properties of the request.request.uri&lt;/li&gt;&lt;li&gt;At this point we are all about looking at code refactoring&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-1588535893255558774?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/1588535893255558774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-67-developing-railsspace.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1588535893255558774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1588535893255558774'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-67-developing-railsspace.html' title='Workshop 6/7: Developing RailsSpace'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JS00SNKPHSk/SmKfkZSSEXI/AAAAAAAAAG4/nqTOB352XZU/s72-c/Workshop+7+railsspace.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-5706693360184671977</id><published>2009-07-19T12:52:00.011+10:00</published><updated>2009-07-19T16:08:13.791+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 6'/><title type='text'>Workshop 6/7: Reading RailsSpace</title><content type='html'>&lt;p&gt;Well I think that I made another mistake in developing my application. I didnt read the railsspace text sufficiently. I relied on the learningrails podcats/screencast series to develop the login module. As you will have noticed reading my blog this was in no way successful.&lt;/p&gt;&lt;p&gt;I am currently reading section 6 of RailSpace and it looks like it shows what i should have done to get the login process to work.  It is actually debateable at this point as to what i would need to do to get the OTBS to work and utilise the login functionality correctly. It could be that if I implement the session logging capabilities in Section 6 of RailsSpace, that i may actually get a functioning application. But on the other hand, I may find that I am being led up yet another garden path.&lt;/p&gt;&lt;p&gt;In order to investigate whether RailsSpace would in fact revive my application I would be inclined to once again rebuild my OTBS application from the ground up. This goes entirely against the principles espoused by the rails community of DRY or dont repeat yourself (did I actually just break that rule by spelling out the DRY definition?). But considering I am between a rock and a hard place in terms of a functioning application, I feel that this is sctually the best method.&lt;/p&gt;&lt;p&gt;Concurrently with starting with a completely fresh application, I would implement a source code control systems to ensure that I was able to backtrack if and when the need arose.&lt;/p&gt;&lt;p&gt;Well I have just created a new rails application, to see if the logging mechanism within RailsSpace will actually work for me. Following on from the steps is section 6:&lt;ol&gt;&lt;li&gt;Run rake db:sessions:create&lt;/li&gt;This was successful&lt;li&gt;In config/environment.rb, uncomment the line:config.action_controller.session_store = :active_record_store&lt;/li&gt;Well here was my first problem. There was no such line in the file. So I copied the line from RailsSpace into the file.&lt;li&gt;Run rake db:migrate&lt;/li&gt;Well this bit worked fine.&lt;li&gt;Its at this point that I realise that we need to go back to the beginning of the book and actually build an application, because there is currently nothing in this one. So its back to the start of Chapter 2.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-5706693360184671977?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/5706693360184671977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-67-reading-railsspace.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/5706693360184671977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/5706693360184671977'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-67-reading-railsspace.html' title='Workshop 6/7: Reading RailsSpace'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-2420000587250541943</id><published>2009-07-19T12:24:00.004+10:00</published><updated>2009-07-19T12:47:26.133+10:00</updated><title type='text'>Workshop 6/7: My final application</title><content type='html'>Below are screenshots of my application as it stands:
&lt;ol&gt;&lt;li&gt;This shows the main page when you first start the application.&lt;br/&gt;
&lt;a href="http://2.bp.blogspot.com/_JS00SNKPHSk/SmKE_JDF13I/AAAAAAAAAGY/WM-Qx6FsLvE/s1600-h/Workshop+67+Home.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 185px;" src="http://2.bp.blogspot.com/_JS00SNKPHSk/SmKE_JDF13I/AAAAAAAAAGY/WM-Qx6FsLvE/s400/Workshop+67+Home.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5359992726819821426" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;If I click on Log Out the following screen appears:&lt;br/&gt;&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/SmKE_abJPOI/AAAAAAAAAGg/xtMiFIS0jqw/s1600-h/Workshop+67+logout.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 349px;" src="http://3.bp.blogspot.com/_JS00SNKPHSk/SmKE_abJPOI/AAAAAAAAAGg/xtMiFIS0jqw/s400/Workshop+67+logout.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5359992731484110050" /&gt;&lt;/a&gt;&lt;br/&gt;This would seem to imply that the user has been logged out. Howver if I simply click on Book Cab&lt;/li&gt;&lt;li&gt;
&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/SmKE_jRIjpI/AAAAAAAAAGo/TWnZ11m0FJs/s1600-h/Workshop+67+BookCab.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 398px;" src="http://3.bp.blogspot.com/_JS00SNKPHSk/SmKE_jRIjpI/AAAAAAAAAGo/TWnZ11m0FJs/s400/Workshop+67+BookCab.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5359992733858041490" /&gt;&lt;/a&gt;&lt;br/&gt; This is the screen that display when the user selects Book Cab. Irrespective of the user being logged in or not.&lt;/li&gt;&lt;li&gt;&lt;br/&gt;&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/SmKHY7pk3-I/AAAAAAAAAGw/jD81iGUeFkc/s1600-h/workshop67+error.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 336px; height: 400px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/SmKHY7pk3-I/AAAAAAAAAGw/jD81iGUeFkc/s400/workshop67+error.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5359995368922996706" /&gt;&lt;/a&gt;&lt;br/&gt;This is the screen I get if I try to login from the login screen without a valid user being specified.&lt;br/&gt;This actually implies to me that the session management is working correctly, but I am not getting the expected results throughout the application.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-2420000587250541943?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/2420000587250541943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-67-my-final-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2420000587250541943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2420000587250541943'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-67-my-final-application.html' title='Workshop 6/7: My final application'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JS00SNKPHSk/SmKE_JDF13I/AAAAAAAAAGY/WM-Qx6FsLvE/s72-c/Workshop+67+Home.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-8721548270461859486</id><published>2009-07-19T11:52:00.003+10:00</published><updated>2009-07-19T12:23:27.118+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 6'/><title type='text'>Workshop 6/7: Login Headache</title><content type='html'>You may have read my rant on the developer forum about ROR giving me a headache. Well here is my expanation of my issue.

I have followed the learningrails webcast series for developing web applications, and you may notice that the css that I have used in my OTBS comes straight from them. In webcast 10 and 11 they develop or introduce the sessions controller and include the AuthenticatedSystem. 

My problem arises from the fact that no matter what i seem to do the authentication controller seems to think I am logged in.

Below is a screen shot of my application.html.erb file:
&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/SmJ-Lsla_yI/AAAAAAAAAGQ/CjdVWfMVmX8/s1600-h/Workshop67.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 179px;" src="http://1.bp.blogspot.com/_JS00SNKPHSk/SmJ-Lsla_yI/AAAAAAAAAGQ/CjdVWfMVmX8/s400/Workshop67.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5359985245936090914" /&gt;&lt;/a&gt;

Unless I have completely got it wrong, the "logged_in?" is not getting changed, and the session is staying live (so to speak), which really makes it impossible to test my application correctly.

If the user is not logged in I dont want them to be able to book a cab. Unfortunately, I always seem to be logged in.

So to reiterate what I said on the developer forum(on 8th July):
&lt;blockquote&gt;
I am definitely starting to loath the whole Ruby on Rails experience.

I have been endeavouring to get something as simple as sessions to work. I am either connected or not. Well that all sounds good. Except for the fact that I am connected when I shouldnt be.

Following the learningrails screencasts, I add authentication to the application. I add the before_filter to all the relevant controllers.

However when I logout, i stay logged in.

AAAARRRRGGHHHH!!!! &lt;/blockquote&gt;

The thing that has stood out for me with Ruby, that they said ad nauseum on the learningrails webcast series, developing with Ruby is MORE FUN. Well in my experience NOT is actually more the case. It is more infuriating than anything else I have ever had to program. When it works it is good. When it doesnt my only response is AAAARRRRGGHHHH!!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-8721548270461859486?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/8721548270461859486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-67-login-headache.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8721548270461859486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8721548270461859486'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-67-login-headache.html' title='Workshop 6/7: Login Headache'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JS00SNKPHSk/SmJ-Lsla_yI/AAAAAAAAAGQ/CjdVWfMVmX8/s72-c/Workshop67.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-2502519351123222347</id><published>2009-07-19T10:52:00.003+10:00</published><updated>2009-07-19T17:47:40.007+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 7'/><title type='text'>Workshop 7: End of the Line</title><content type='html'>&lt;p&gt;To deploy an application to production, it must be production ready. Well in successful project world anyway. I have raised some issues in the forums about where we have gone with the OTBS and especially the failings that affected my development process.&lt;/p&gt;&lt;p&gt;My system is far from and never will reach a production ready stage. The reasons for this are many and include the following:&lt;ul&gt;&lt;li&gt;lack of source code control&lt;/li&gt;&lt;li&gt;lack of testing methodology&lt;/li&gt;&lt;li&gt;no interface/linkage for payment mechanisms&lt;/li&gt;&lt;li&gt;what is the process that happens after a taxi is booked?&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;One of the problems that we have endured as developers is lack of a project plan. Reviewing the Workshop material, these are issues that were to be addressed by the blue team in Workshop 5. I am not sure of their progress but they have failed from a project management perspective in that they have not managed user expectations on this project.&lt;/p&gt;&lt;p&gt;It is at moments such as now when upon reflection I feel that I maybe should have chosen the other route and joined the blue team. The questions that have been tormenting me over the last few weeks are exactly the questions posed by Ken for the Managers thread (ie the blue team), but due to time constraints there is no way that these can now be achieved.&lt;/p&gt;&lt;p&gt;But even going down that path we are still in the situation of not having a project manager to set the project on track and to bring it to a successful conclusion.&lt;/p&gt;&lt;p&gt;Maybe it is worth thinking about for future versions of this subject to involve the project management subjects in a combined assignment across subject boundaries?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-2502519351123222347?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/2502519351123222347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-7-end-of-line.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2502519351123222347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2502519351123222347'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-7-end-of-line.html' title='Workshop 7: End of the Line'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-2234146943238678358</id><published>2009-07-06T19:57:00.003+10:00</published><updated>2009-07-06T20:16:51.505+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Observations'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 5'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Ruby'/><title type='text'>Workshop 5/6: More Taxi booking system - followup</title><content type='html'>&lt;p&gt;Must give thanks to Karen's comment. Even though what she said to do was what I had done, the fact that she commented actually triggered the correct outcome for me.&lt;/p&gt;&lt;p&gt;I have got the BookCab form integrated with my OTBS. In order to do this I had to do the following&lt;ol&gt;&lt;li&gt;Move the bookcab method into the VehicleController&lt;/li&gt;&lt;li&gt;Move the bookcab.html.erb file into the views\vehicle\ directory&lt;/li&gt;&lt;li&gt;Change the form action to form_action ="cabtype" instead of "vehicle/cabtype"&lt;/li&gt;&lt;li&gt;modify my application.html.erb file so that the 'Book Cab' link pointed to the correct controller and action.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;On the face of it it looks like the variable scope is confined to the MVC that is of interest. In this case it was the cab booking variables in the bookcab view being transferred to the cabtype view.&lt;/p&gt;&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/SlHOiWES-6I/AAAAAAAAAGA/niXHgwjYLec/s1600-h/Integrated+View.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 334px;" src="http://3.bp.blogspot.com/_JS00SNKPHSk/SlHOiWES-6I/AAAAAAAAAGA/niXHgwjYLec/s400/Integrated+View.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5355288521354705826" /&gt;&lt;/a&gt;&lt;p&gt;My next step now is to introduce a login mechanism and enable passenger information to be collected.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-2234146943238678358?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/2234146943238678358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-56-more-taxi-booking-system_06.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2234146943238678358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2234146943238678358'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-56-more-taxi-booking-system_06.html' title='Workshop 5/6: More Taxi booking system - followup'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JS00SNKPHSk/SlHOiWES-6I/AAAAAAAAAGA/niXHgwjYLec/s72-c/Integrated+View.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-8644817514240623231</id><published>2009-07-05T21:45:00.006+10:00</published><updated>2009-07-06T07:37:33.087+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Observations'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 5'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Ruby'/><title type='text'>Workshop 5/6: More Taxi booking system</title><content type='html'>&lt;p&gt;I have just been having a lot of fun. &lt;/p&gt;&lt;p&gt;I thought I would go back into the Taxi Booking system, to improve the look of the site and to look at adding login functionality. This would involve utilising what we had developed in workshop 4 with the changes in workshop 5.&lt;/p&gt;&lt;p&gt;I also wanted to change how I had dealt with the protect_from_forgery error that we all got in workshop 5. I simply hashed out the line, and so everything worked.&lt;/p&gt;&lt;p&gt;Well the idea started out as a good one. Unfortunately, I managed to break everything, so that nothing worked. I changed the routes file so that there were no recognised routes.&lt;/p&gt;&lt;p&gt;Scratching my head for half an hour ensued, until I realised that I had in actual fact hashed out all the route info in the routing file. So message actually made sense. With that sorted out and the taxi details showing again I decided to press on.&lt;/p&gt;&lt;p&gt;My Online Taxi Booking System now looks like&lt;br/&gt;
&lt;a href="http://2.bp.blogspot.com/_JS00SNKPHSk/SlCXqLuz4hI/AAAAAAAAAFg/CycjoQzMzu8/s1600-h/otbs_entry.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 213px;" src="http://2.bp.blogspot.com/_JS00SNKPHSk/SlCXqLuz4hI/AAAAAAAAAFg/CycjoQzMzu8/s400/otbs_entry.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5354946707902947858" /&gt;&lt;/a&gt;&lt;br/&gt;Unfortunately the information doesn't came across as you can see by the following:&lt;br/&gt;
&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/SlCXqfTVgtI/AAAAAAAAAFo/hyPBtbXcNlk/s1600-h/otbs_result.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 375px;" src="http://1.bp.blogspot.com/_JS00SNKPHSk/SlCXqfTVgtI/AAAAAAAAAFo/hyPBtbXcNlk/s400/otbs_result.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5354946713156420306" /&gt;&lt;/a&gt;&lt;br/&gt;I am beating my head against a brick wall at the moment. Possibly mind gone blank syndrome. I definitely need to get back to RailsSpace, for another installment, which might clear things up a bit. In the meantime, I close this blog post with a screenshot of my pages_controller and file structure&lt;br/&gt;
&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/SlCXqvj4l5I/AAAAAAAAAFw/ZtOzUjtCHl4/s1600-h/pages_controller.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 395px;" src="http://1.bp.blogspot.com/_JS00SNKPHSk/SlCXqvj4l5I/AAAAAAAAAFw/ZtOzUjtCHl4/s400/pages_controller.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5354946717520795538" /&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://2.bp.blogspot.com/_JS00SNKPHSk/SlCZVqOB5KI/AAAAAAAAAF4/VxlWH7Ese0w/s1600-h/filestructure.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 283px; height: 400px;" src="http://2.bp.blogspot.com/_JS00SNKPHSk/SlCZVqOB5KI/AAAAAAAAAF4/VxlWH7Ese0w/s400/filestructure.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5354948554332955810" /&gt;&lt;/a&gt;&lt;p&gt;You may notice that the Vehicle Controller is empty. I was getting some routing issues and so just moved the code into the pages controller. I am definitely thinking this was the wrong way to go. But that is where it is at the moment.&lt;/p&gt;&lt;H2&gt;Update&lt;/H2&gt;&lt;p&gt;Well after posting this blog, I had a slight rethink and put the Cabtype method back into the vehicle controller. The views all seem to work, and the cabtype view does get displayed after submitting the booking form. Alas the variables are not being initialised, so the cabtype view is not displaying the selected information. Any ideas anyone?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-8644817514240623231?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/8644817514240623231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-56-more-taxi-booking-system.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8644817514240623231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8644817514240623231'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/07/workshop-56-more-taxi-booking-system.html' title='Workshop 5/6: More Taxi booking system'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JS00SNKPHSk/SlCXqLuz4hI/AAAAAAAAAFg/CycjoQzMzu8/s72-c/otbs_entry.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-6788171411258363671</id><published>2009-07-01T09:45:00.002+10:00</published><updated>2009-07-01T09:48:08.428+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Observations'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Ruby'/><title type='text'>CSS and Ruby</title><content type='html'>I have just come across this Ruby gem which could be very useful for you all.&lt;br/&gt;
&lt;a href="http://lesscss.org/"&gt;http://lesscss.org/&lt;/a&gt;&lt;br/&gt;
Less is Leaner css. Less extends css by adding: variables, mixins, operations and nested rules.&lt;br/&gt;
If you use css then this could be useful.&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-6788171411258363671?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/6788171411258363671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/07/css-and-ruby.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6788171411258363671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6788171411258363671'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/07/css-and-ruby.html' title='CSS and Ruby'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-1774128960992572271</id><published>2009-06-30T08:25:00.003+10:00</published><updated>2009-06-30T08:29:44.459+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Observations'/><title type='text'>Web 2 communities in action</title><content type='html'>&lt;strong&gt;Mythbuster Adam Savage fights $11,000 AT&amp;T bill with Twitter army&lt;/strong&gt;

Have a look at the following commentry on Computerworld blog:
&lt;a href="http://blogs.computerworld.com/mythbuster_adam_savage_fights_11_000_at_t_bill_with_twitter_army?source=CTWNLE_nlt_dailyam_2009-06-29"&gt;http://blogs.computerworld.com/mythbuster_adam_savage_fights_11_000_at_t_bill_with_twitter_army?source=CTWNLE_nlt_dailyam_2009-06-29&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-1774128960992572271?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/1774128960992572271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/web-2-communities-in-action.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1774128960992572271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1774128960992572271'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/web-2-communities-in-action.html' title='Web 2 communities in action'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-7063312604215257985</id><published>2009-06-29T21:21:00.002+10:00</published><updated>2009-06-29T21:39:58.617+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Observations'/><category scheme='http://www.blogger.com/atom/ns#' term='Rants'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Ruby'/><title type='text'>Some very helpful Ruby tomes</title><content type='html'>&lt;p&gt;I have just going through Workshop 6 and the Topic reading: (Hartl)&lt;/p&gt;
&lt;p&gt;This made mention of David Hannermeir Hansens 15 minute blog development presentation. &lt;a href="http://media.rubyonrails.org/video/rails_take2_with_sound.mov"&gt;http://media.rubyonrails.org/video/rails_take2_with_sound.mov&lt;/a&gt; in the introduction. I watched this (i suspect that Craig had recommended this earlier) and wish that I had seen this earlier in the subject. &lt;/p&gt;
&lt;p&gt;Having watched the demonstration, I read (Collingbourne)&lt;/p&gt;
&lt;p&gt;I now feel that I have a much better grasp of ROR, because of these references. I have gotten back into the first few chapters of (Hartl) and really wish that this had been recommended prior to Workshop 1. It goes through a nice seemingly simple step by step process for setting up rails, and actually specifies requirements. There is a distinct chance that maybe hindsight is playing a part in my thinking, remembering back to the number of lost hours trying to get a working setup.&lt;/p&gt;
&lt;p&gt;However, what really got me to put this missive together was a single line in (Hartl, s2.2.1)&lt;blockquote&gt;In case you ever need to undo the work done by generate, you can use ruby script/destroy controller &lt;ControllerName&gt;. That's certainly a lot easier than deleting a bunch of files by hand.&lt;/blockquote&gt; which clarified in my mind where I had been going wrong in my attempts at building the OTBS. i may well have seen this before, but I don't remember seeing this in the same section as talking about generating the controller. But then again, this may well be hindsight in action.&lt;/p&gt;&lt;br/&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;br/&gt;
Collingbourne, H (2008)"The Little Book of Ruby"&lt;br/&gt;
Hartl, M &amp; Prochazka, A, (2008). RailsSpace: Building a Social Networking Website with Ruby on Rails, Pearson Education&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-7063312604215257985?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/7063312604215257985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/some-very-helpful-ruby-tomes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7063312604215257985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7063312604215257985'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/some-very-helpful-ruby-tomes.html' title='Some very helpful Ruby tomes'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-370571103770015424</id><published>2009-06-26T11:11:00.001+10:00</published><updated>2009-06-26T11:12:51.930+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Observations'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Ruby'/><title type='text'>Ruby Use on the rise</title><content type='html'>Just came across this article on the net that you might be interested in:
&lt;br/&gt;
&lt;a href="http://blog.internetnews.com/skerner/2009/06/report-ruby-use-on-the-rise.html"&gt;http://blog.internetnews.com/skerner/2009/06/report-ruby-use-on-the-rise.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-370571103770015424?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/370571103770015424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/ruby-use-on-rise.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/370571103770015424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/370571103770015424'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/ruby-use-on-rise.html' title='Ruby Use on the rise'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-2906417997447669692</id><published>2009-06-23T22:00:00.002+10:00</published><updated>2009-07-19T22:01:11.986+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 8'/><title type='text'>Workshop 8: Ruby on Rails Workshops Report and Evaluation</title><content type='html'>&lt;ol&gt;&lt;li&gt;List what you consider to be the three strengths of Ruby on Rails workshop series&lt;/li&gt;&lt;p&gt;&lt;ol&gt;&lt;li&gt;Ruby is probably a language that once you "get it" it all falls in to place. The MVC and convention over configuration means that you dont have to go looking in obscure places to find the answers to error situations. It means that application maintenance should be made simpler.&lt;/li&gt;&lt;li&gt;Exposure to the Ruby way of doing things.&lt;/li&gt;&lt;li&gt;?? Due to the frustration experienced with development and the lack of overall workshop focus I find it very difficult to find anything that would qualify as a strength. Although it is feasible that I could use my experiences in the workshops as a reason not to use Rails as an application development environment&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;li&gt;List what you consider to be the three weaknesses of Ruby on Rails workshop series:&lt;/li&gt;&lt;p&gt;&lt;ol&gt;&lt;li&gt;There was a distinct lack of focus throughout the workshop series. It seemed to be heading in a certain direction for the first 4 workshops, but then at workshop 5 a complete change in tack occurred. The first 4 workshops should be removed. If you start with workshop 5 and go through the RailsSpace book and develop the OTBS application in conjunction.&lt;/li&gt;&lt;li&gt;The development of the OTBS did not seem to have any real relevance to the rest of the subject matter. The Workshops should be redefined so that the development of the application corresponds to the learning outcomes being investigated in the topics.&lt;/li&gt;&lt;li&gt;Their was little scope for collaboration with other students within the workshops. As I mentioned in an earlier blog their is scope to include a project manager from a project management subject to cross pollinate the learning outcomes for students, and to improve the collaboration aspect.&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;li&gt;List what aspects of Ruby on Rails workshop series that you found to be most difficult.&lt;/li&gt;&lt;p&gt;Getting Ruby installed and operational. I found it hard to find any useful installation information initially. I am sure that there is lots of documentation in existence, but asking the right question proved to be difficult. Also the fact that i was trying to install in a windows environment proved frustrating. I resorted to creating a Windows XP VM to host my APTANA development environment. Once the software infrastructure was in place everything was OK.&lt;/p&gt;&lt;li&gt;List what improvements could be made to the Ruby on Rails workshop series:&lt;/li&gt;&lt;p&gt;The workshop series should be redesigned so that:&lt;ul&gt;&lt;li&gt;A VM should be developed so that all students start off on the same foot.&lt;/li&gt;&lt;li&gt;The references to other frameworks could be removed.&lt;/li&gt;&lt;li&gt;All the students have a programming background(?), and as such do we really need to compare looping structures or suyntax of different languages?&lt;/li&gt;&lt;li&gt;It has a defined goal with some KPIs that need to be met as students progress.&lt;/li&gt;&lt;li&gt;The workshop content should involve aspects of the topic being examined to more closely tie in with the subject objectives.&lt;/li&gt;&lt;li&gt;their should be more of a project managed feel about the workshops so that we dont miss our targets&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
Free response and reflective questions:&lt;br/&gt;
&lt;li&gt;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;/li&gt;&lt;p&gt;My immediate response to this question is what other frameworks? Did we actually use another framework. And if we did when? If this is referring to the few questions that were used in php, then I think it is simply irrelevant.&lt;/p&gt;&lt;p&gt;The experince could definitely be improved if a virtual machine was provided that had the framework already set up. I dont think that anything of real value is learnt by all students being in the dark and having to install and test various servers and hope that everything works. Everyones machine is different, and so they all have to spend a large block of time getting up and running. A VM would solve this problem by everyone starting off on the front foot.&lt;/p&gt;&lt;li&gt;Did the Developer’s or IT managers Team that you joined after workshop 4 have a preference towards using other tools to facilitate collaboration? Comment on the differences between these use of the sub-forum or Interact wiki tools from your experiences in this subject.&lt;/li&gt;&lt;p&gt;There was little if any collaboration. This is primarily due to the time constraints imposed by the topic Q&amp;A and the workshops. There is simply not enough time to get through the volume of work expected, and collaborate as well.&lt;/p&gt;&lt;p&gt;The forums were the best spot for eliciting information from other students if required.&lt;/p&gt;&lt;li&gt; Further comments to add?&lt;/li&gt;&lt;p&gt;It may not necessarily seem that I enjoyed the Workshop series. This is not actually the case. I did find that developing in Ruby was enjoyable to a point. However this was generally overbalanced by the frustration felt when things didnt work out correctly. Learning a new language and development paradigm is an experience to be savoured. But it is very easy to be turned off and things to sour when brick walls seemingly appear. The DRY principle is espoused by the Rails community, but that is probably what I failed at the most. I think that my final tally for creating the Online Taxi Booking System was probably somewhere upward of 20. That is I started from scratch in excess of 20 times.&lt;/p&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-2906417997447669692?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/2906417997447669692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-8-ruby-on-rails-workshops.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2906417997447669692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2906417997447669692'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-8-ruby-on-rails-workshops.html' title='Workshop 8: Ruby on Rails Workshops Report and Evaluation'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-5324407246102384087</id><published>2009-06-23T21:59:00.000+10:00</published><updated>2009-06-23T22:00:36.750+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 7'/><title type='text'>Workshop 7: End of the Line: production site migration and maintenance</title><content type='html'>To Do:

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. 

Which way?

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

Can you get the OTBS Running in production mode as a minimal production server?

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;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-5324407246102384087?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/5324407246102384087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-7-end-of-line-production-site.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/5324407246102384087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/5324407246102384087'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-7-end-of-line-production-site.html' title='Workshop 7: End of the Line: production site migration and maintenance'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-8492733218723377453</id><published>2009-06-23T21:55:00.002+10:00</published><updated>2009-06-23T21:59:13.474+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 6'/><title type='text'>Workshop 6: Enjoying the Ride: Web framework alternatives, scalability and flexibility</title><content type='html'>Upon the completion of this workshop, developers or managers should be able to: 
&lt;ul&gt;&lt;li&gt;Discuss and analyse the latest Web framework technologies based upon experiences so far with Ruby on Rails&lt;/li&gt;&lt;li&gt;Identify and evaluate challenges and opportunities concerning the use of the latest Web 2.0 technologies and to ‘benchmark’ (compare) other alternatives&lt;/li&gt;&lt;li&gt;Discuss and evaluate current Ruby on Rails framework and the alternative emerging technologies.&lt;/li&gt;&lt;li&gt;Evaluate and devise scalability, flexibility, capacity planning and performance testing strategies for conducting e-commerce.&lt;/li&gt;&lt;li&gt;Deploy Web 2.0 or later technology in their business environments such as the ideas and methods of the ‘RailsSpace’ approach to the OTBS&lt;/li&gt;&lt;li&gt;Think critically and analytically when exposed to new technologies.&lt;/li&gt;&lt;li&gt;Share your findings with your peers and examine what the other team is doing.&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;generate a controller and an action by adding a method(s) to a controller&lt;/li&gt;&lt;li&gt;create a view template for each action and to link to actions from views&lt;/li&gt;&lt;li&gt;use AJAX to improve the user experience&lt;/li&gt;&lt;/ul&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;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-8492733218723377453?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/8492733218723377453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-6-enjoying-ride-web-framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8492733218723377453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8492733218723377453'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-6-enjoying-ride-web-framework.html' title='Workshop 6: Enjoying the Ride: Web framework alternatives, scalability and flexibility'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-861639177313611323</id><published>2009-06-23T21:50:00.004+10:00</published><updated>2009-06-28T22:01:50.115+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 5'/><title type='text'>Workshop 5: Part C: Screen layouts and forms processing with text fields, check boxes, radio buttons and multiple list controls</title><content type='html'>&lt;ol&gt;&lt;li&gt; Create a new application called cabs in the same projects directory to demonstrate the use of an active view.

&gt; rails cabs
&gt; cd cabs

&lt;/li&gt;&lt;blockquote&gt;Complete&lt;/blockquote&gt;&lt;li&gt;Create a controller called Vehicle in cabs\app\controllers

cabs&gt; ruby script/generate controller Vehicle

&lt;/li&gt;&lt;blockquote&gt;Complete&lt;/blockquote&gt;&lt;li&gt;Add an action to vehicle_controller.rb as the method called cabtype

class VehicleController&lt; ApplicationController
   def cabtype
   end
end

&lt;/li&gt;&lt;blockquote&gt;Complete&lt;/blockquote&gt;&lt;li&gt;Add a view template - cabs\app\views\vehicle\cabtype.rhtml
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;/li&gt;&lt;blockquote&gt;Complete&lt;/blockquote&gt;&lt;li&gt;Save the view and restart the Web server and navigate to http://localhost:3000/cabs/cabtype
&lt;/li&gt;&lt;blockquote&gt;Navigated to http://127.0.0.1:3004/vehicle/cabtype&lt;/blockquote&gt;&lt;li&gt;Create a file in the public directory - \cabs\public called input.html
&lt;/li&gt;&lt;blockquote&gt;Done this&lt;/blockquote&gt;&lt;li&gt;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

class VehicleController&lt; ApplicationController
   def cabtype
     @data1 = params[:text1]
     @data2 = params[:check1]
@data3 = params[:radios1]
@data4 = params[:building1]
   end
end

&lt;/li&gt;&lt;blockquote&gt;Done this&lt;/blockquote&gt;&lt;li&gt;Edit the view template cabtype.rhtml
&lt;/li&gt;&lt;blockquote&gt;Done this&lt;/blockquote&gt;&lt;li&gt;Start the Web server and go to the opening page of this application at http://localhost:3000/input.html
&lt;/li&gt;&lt;blockquote&gt;Did this and had a horrible looking screen. If you just do a cut and paste from a word file the quotes play up just a little bit. This leads to a horrible looking screen rendering. Having done this Craigs mention of this problem comes to light. Should have been a touch more careful, and validated what i copied a bit more. But lesson hopefully learnt. Took but a matter of moments to rectify and have the screen render nicely.&lt;/blockquote&gt;&lt;li&gt;Submit the forms data. What do you find?&lt;/li&gt;&lt;blockquote&gt;I get a rather horrible screen that screams &lt;strong&gt;ActionController::InvalidAuthenticityToken&lt;/strong&gt; at me.

This is obviously security related. Looked in Application Controller and noticed the second line "protect_from_forgery".&lt;br/&gt;Hashed this out.&lt;br/&gt;Kept getting response, No route matches "/cabtype" with {:method=&gt;:post}&lt;br/&gt;This led me to change the Submit action on the input form to "vehicle/cabtype"&lt;br/&gt;Unfortunately this still did not work. After a few minutes of scratching my head I did the brute force approach and recreated the project. Here was the whole COC conversation that happened on the forums all over again. But brute force worked.&lt;br/&gt;&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/SkdbYfv8WzI/AAAAAAAAAFI/PmIhXIlzeuE/s1600-h/Workshop+5c.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 368px; height: 248px;" src="http://3.bp.blogspot.com/_JS00SNKPHSk/SkdbYfv8WzI/AAAAAAAAAFI/PmIhXIlzeuE/s400/Workshop+5c.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5352347158550698802" /&gt;&lt;/a&gt;
 &lt;/blockquote&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-861639177313611323?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/861639177313611323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/worksop-5-part-c-screen-layouts-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/861639177313611323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/861639177313611323'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/worksop-5-part-c-screen-layouts-and.html' title='Workshop 5: Part C: Screen layouts and forms processing with text fields, check boxes, radio buttons and multiple list controls'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JS00SNKPHSk/SkdbYfv8WzI/AAAAAAAAAFI/PmIhXIlzeuE/s72-c/Workshop+5c.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-8039804228207826683</id><published>2009-06-23T21:47:00.002+10:00</published><updated>2009-06-28T21:01:26.888+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 5'/><title type='text'>Workshop 5:Part B: The active view: passing data from an action too a view</title><content type='html'>&lt;ol&gt;&lt;li&gt;Create a new application called scenery in the same projects directory to demonstrate the use of an active view.

&gt; rails scenery
&gt; cd scenery
&lt;/li&gt;&lt;blockquote&gt;Complete&lt;/blockquote&gt;&lt;li&gt;Create a controller called Demo in scenery\app\controllers

scenery&gt; ruby script/generate controller Demo

&lt;/li&gt;&lt;blockquote&gt;Complete&lt;/blockquote&gt;&lt;br&gt;&lt;li&gt;Add an action to demo_controller.rb as the method called rubycobe

class DemoController&lt; ApplicationController
   def rubycode
   end
end

&lt;/li&gt;&lt;blockquote&gt;Complete&lt;/blockquote&gt;&lt;li&gt;Add a view template - scenery\app\views\demo\rubycode.rhtml
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;/li&gt;&lt;blockquote&gt;Complete&lt;/blockquote&gt;&lt;li&gt;Save and restart the Web server and navigate to http://localhost:3000/scenery/rubycode

&lt;/li&gt;If I was to follow the script blindly then one of two things will happen here.&lt;ul&gt;&lt;li&gt;I have made a mistake or&lt;/li&gt;&lt;li&gt;the workshop script is wrong&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;If I navigate to the url &lt;br/&gt;../scenery/rubycode&lt;br/&gt; I get the error Routing Error.&lt;br/&gt;However if I do the logical thing and navigate to&lt;br/&gt; ../demo/rubycode&lt;br/&gt; then I get my expected page returned.&lt;br/&gt;
&lt;li&gt;Use the Time.now example to pass data from an action to a view. 

&lt;/li&gt;&lt;br&gt;&lt;li&gt;Modify and save the rubycode action with a value for the time instance variable in the DemoController class in app\controllers\demo_controller.rb

class DemoController&lt; ApplicationController
   def rubycode
  @time_now = Time.now
   end
end

&lt;/li&gt;&lt;blockquote&gt;Done that&lt;/blockquote&gt;&lt;li&gt;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;_br&gt;
The time is &lt;_%= @time.now %_&gt;
&lt;_br&gt;

&lt;/li&gt;&lt;blockquote&gt;Obviously this piece of code is wrong. We should be using the variable defined in the controller @time_now&lt;/blockquote&gt;&lt;li&gt;Restart the Web server and navigate the browser to http://localhost:3000/demo/rubycode

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;/li&gt;&lt;blockquote&gt;The output and the code files  are shown below&lt;/blockquote&gt; &lt;a href="http://2.bp.blogspot.com/_JS00SNKPHSk/SkdMzS8rz6I/AAAAAAAAAFA/IULRSLQt0WY/s1600-h/Workshop+5b.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 208px;" src="http://2.bp.blogspot.com/_JS00SNKPHSk/SkdMzS8rz6I/AAAAAAAAAFA/IULRSLQt0WY/s400/Workshop+5b.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5352331126296530850" /&gt;&lt;/a&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-8039804228207826683?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/8039804228207826683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-5part-b-active-view-passing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8039804228207826683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8039804228207826683'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-5part-b-active-view-passing.html' title='Workshop 5:Part B: The active view: passing data from an action too a view'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JS00SNKPHSk/SkdMzS8rz6I/AAAAAAAAAFA/IULRSLQt0WY/s72-c/Workshop+5b.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-795386396881266596</id><published>2009-06-23T21:41:00.005+10:00</published><updated>2009-06-28T22:03:47.349+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 5'/><title type='text'>Workshop 5: Part A: Viewing the action</title><content type='html'>&lt;ol&gt;&lt;li&gt;Create the Rails application framework in the projects folder: C:\InstantRails\...\projects\&gt;rails animals&lt;/li&gt;&lt;br/&gt;&lt;blockquote&gt;Complete&lt;/blockquote&gt;&lt;li&gt;Running  the application on localhost:3000 using the WeBrick ruby server (or Mongrel as alternative) and access via Web browser at http://localhost:3000/&lt;/li&gt;&lt;br/&gt;&lt;li&gt;Create the controller to make the application do an action. This is under the controller-action/model-view structure.


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:

&gt;ruby script/generate controller Mammal

The mammal_controller.rb contains just a bare class description:

class MammalController&lt; ApplicationController
end

and the ApplicationController class inherits from ActionController::Base class in the ActionController module under Rails.&lt;/li&gt;&lt;br/&gt;&lt;blockquote&gt;Complete&lt;/blockquote&gt;&lt;li&gt;Test the controller by starting the WEBrick server and navaigatibng the browser to http://localhost:3000/mammal Note how the controller name is appended to the end of the URL and that no action resulted because there are no controller methods.&lt;/li&gt;&lt;br/&gt;
I get the following:&lt;blockquote&gt;Routing Error

No route matches "/mammals" with {:method=&gt;:get}&lt;/blockquote&gt;
I think this is simply because I coulnt follow instructions and typed /mammals rather than /mammal.&lt;br/&gt;
&lt;li&gt;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:

class MammalController&lt; ApplicationController
   def breathe
   end
end

&lt;/li&gt;&lt;br/&gt;&lt;blockquote&gt;Complete&lt;/blockquote&gt;&lt;li&gt;Start the WEBrick server and browse at http://localhost:3000/mammals/breathe where you will get a “missing template” message since it is missing a view for the breathe method. 

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;/li&gt;&lt;br/&gt;&lt;li&gt;Create and save a view in that directory by using a text editor to create a view called breathe.rhtml

&lt;_html&gt;
 &lt;_head&gt;
    &lt;_title&gt;Breathe Easy&lt;/_title&gt;
 &lt;/_head&gt;
 &lt;_body&gt;Inhale and Exhale
 &lt;/_body&gt;
&lt;/_html&gt;

Restart the WEBrick serve r and browse again at http://localhost:3000/mammals/breathe

&lt;/li&gt;&lt;br/&gt;
Browsed to ../mammal/ and got the following message
&lt;blockquote&gt;Unknown action
No action responded to index. Actions: breathe&lt;/blockquote&gt;
So added the action /mammal/breathe and got the expected result.&lt;br/&gt;

&lt;li&gt;Try Ruby code and HTML in the action view by using the &lt;%....%&gt; wrapper around the inserted Ruby code. Here are some snippets to try from workshop 4:
&lt;br&gt;
5 + 6 =&lt;%= 5 + 6 %&gt;
&lt;/br&gt; &lt;br&gt;
=&lt;% 4.times do %&gt;
Inhale Exhale &lt;br&gt;
&lt;%end%&gt; &lt;br&gt;
Time is &lt;%=Time.now %&gt;
&lt;/br&gt;
The output of this little exercise is&lt;br/&gt;
&lt;a href="http://2.bp.blogspot.com/_JS00SNKPHSk/SkdHT2KhX3I/AAAAAAAAAE4/LJ2H3VWSQ5s/s1600-h/Workshop+5a.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 133px;" src="http://2.bp.blogspot.com/_JS00SNKPHSk/SkdHT2KhX3I/AAAAAAAAAE4/LJ2H3VWSQ5s/s400/Workshop+5a.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5352325088435855218" /&gt;&lt;/a&gt;&lt;br/&gt;
NOTE: in practise you normally perform calculations in the action (method) and pass the results to the view.
&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-795386396881266596?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/795386396881266596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-5-part-viewing-action.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/795386396881266596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/795386396881266596'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-5-part-viewing-action.html' title='Workshop 5: Part A: Viewing the action'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JS00SNKPHSk/SkdHT2KhX3I/AAAAAAAAAE4/LJ2H3VWSQ5s/s72-c/Workshop+5a.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-7758643125484677701</id><published>2009-06-23T21:32:00.003+10:00</published><updated>2009-06-23T21:41:22.986+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 5'/><title type='text'>Workshop 5: Admiring the scenery</title><content type='html'>Topic objectives
&lt;ul&gt;&lt;li&gt;To reflect on what has been done so far with Ruby on Rails&lt;/li&gt;&lt;li&gt;To reflect on my role and decide to continue as EITHER a Developer OR as an IT infrastructure manager&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;I will be continuing the workshops in the role of a developer. So I will be on the RED team.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-7758643125484677701?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/7758643125484677701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-5-admiring-scenery.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7758643125484677701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7758643125484677701'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-5-admiring-scenery.html' title='Workshop 5: Admiring the scenery'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-3571200258832350019</id><published>2009-06-23T21:19:00.004+10:00</published><updated>2009-07-27T13:13:23.450+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 25'/><title type='text'>Exercise 25: M-commerce and the e-wallet: Innovation and mobile devices</title><content type='html'>Explore some of the problems associated with mobile technology or their suppliers.
&lt;ol&gt;&lt;li&gt;What is meant by a location based service?&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;According to (&lt;a href="http://en.wikipedia.org/wiki/Location-based_service"&gt;Wikipedia&lt;/a&gt;) a location-based service (LBS) is an information and entertainment service, accessible with mobile devices through the mobile network and utilizing the ability to make use of the geographical position of the mobile device.&lt;/p&gt;&lt;p&gt;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;/p&gt;&lt;/blockquote&gt;&lt;li&gt;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;/li&gt;&lt;blockquote&gt;Olympic Airways provides a wap service at &lt;a href="http://www.olympic-airways.gr/wap"&gt;http://www.olympic-airways.gr/wap&lt;/a&gt; to allow users to &lt;ul&gt;&lt;li&gt;keep an eye on all Olympic Airlines Flights
&lt;/li&gt;&lt;li&gt;Get information on Departures from and Arrivals at the Athens International Airport as if you were before the Flight Information Display at the airport&lt;/li&gt;&lt;li&gt; Check your actual miles if you are a member of our Frequent Flyer program&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Southwest Airlines utilises WAP &lt;a href="http://mobile.southwest.com/"&gt;http://mobile.southwest.com/&lt;/a&gt; which allows passengers to &lt;ul&gt;&lt;li&gt;book flights&lt;/li&gt;&lt;li&gt;Check Flight status&lt;/li&gt;&lt;li&gt;Check In&lt;/li&gt;&lt;li&gt;Cancel Flights&lt;/li&gt;&lt;li&gt;view schedules&lt;/li&gt;&lt;li&gt;etc&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Apparently at some time prior to 23 October 2004 Westpac had WAP banking services enabled. However according to an article on ITWire on 13 October 2004 &lt;a href="http://www.itwire.com/content/view/182/2/"&gt;http://www.itwire.com/content/view/182/2/&lt;/a&gt; from 23 October 2004, "the Westpac banking site will no longer support wireless application protocol (WAP) internet banking through your mobile phone"&lt;/p&gt; Until recently according to (&lt;a href="http://www.australianit.news.com.au/story/0,24897,25194759-24169,00.html"&gt;AustralianIT&lt;/a&gt;) mobile banking services have not been provided by Australian banks. They had provided services in the earlier parts of the decade but closed them down in mid to late 2004 due to poor patronage. But things seem to have turned the corner with the banks now re entering the mobile market.&lt;/blockquote&gt;&lt;li&gt;Lucent Technologies designs and delivers the systems, services and software that drive next-generation communications networks at: &lt;a href="http://www.lucent.com"&gt;http://www.lucent.com&lt;/a&gt;&lt;/li&gt;&lt;blockquote&gt;According to &lt;a href="http://www.alcatel-lucent.com/wps/portal/aboutus"&gt;http://www.alcatel-lucent.com/wps/portal/aboutus&lt;/a&gt;&lt;p&gt;Alcatel-Lucent is the trusted partner of service providers, enterprises and governments worldwide, providing solutions to deliver voice, data and video communication services to end-users.&lt;/p&gt;&lt;p&gt; 
A leader in fixed, mobile and converged broadband networking, IP technologies, applications and services, Alcatel-Lucent leverages the unrivalled technical and scientific expertise of Bell Labs, one of the largest innovation powerhouses in the communications industry&lt;/p&gt;
&lt;/blockquote&gt;&lt;li&gt;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;/li&gt;&lt;blockquote&gt;The current standard for VoiceXML is v2.1 which was released on 19 June 2007. The current working draft as at 2 June 2009 is &lt;a href="http://www.w3.org/TR/voicexml30/"&gt;Voice Extensible Markup Language (VoiceXML) 3.0&lt;/a&gt; &lt;/blockquote&gt;&lt;li&gt;Investigate CDMA, GSM or other network technologies for mobile phones and circuit-switched and packet-switched data capabilities.&lt;/li&gt;&lt;blockquote&gt;According to (&lt;a href="http://en.wikipedia.org/wiki/Code_division_multiple_access"&gt;Wikipedia&lt;/a&gt;) Code division multiple access (CDMA) is a channel access method utilized by various radio communication technologies.&lt;p&gt;One of the basic concepts in data communication is the idea of allowing several transmitters to send information simultaneously over a single communication channel. This allows several users to share a bandwidth of frequencies. This concept is called multiplexing. CDMA employs spread-spectrum technology and a special coding scheme (where each transmitter is assigned a code) to allow multiple users to be multiplexed over the same physical channel. By contrast, time division multiple access (TDMA) divides access by time, while frequency-division multiple access (FDMA) divides it by frequency. CDMA is a form of "spread-spectrum" signaling, since the modulated coded signal has a much higher data bandwidth than the data being communicated&lt;/p&gt;&lt;p&gt;(&lt;a href="http://en.wikipedia.org/wiki/GSM"&gt;Wikipedia&lt;/a&gt;) suggests that GSM (Global System for Mobile communications: originally from Groupe Spécial Mobile) is the most popular standard for mobile phones in the world.  GSM differs from its predecessors in that both signaling and speech channels are digital, and thus is considered a second generation (2G) mobile phone system. This has also meant that data communication was easy to build into the system. Newer versions of the standard were backward-compatible with the original GSM phones. For example, Release '97 of the standard added packet data capabilities, by means of General Packet Radio Service (GPRS). Release '99 introduced higher speed data transmission using Enhanced Data Rates for GSM Evolution (EDGE).&lt;/p&gt;
&lt;/blockquote&gt;&lt;li&gt;According to Nokia:
&lt;blockquote&gt;“The Nokia One Mobile Connectivity Service provides easy and secure access to email, calendar, directory and more from a mobile phone, PDA, PC or fixed-line phone - take your corporate applications mobile.”&lt;/blockquote&gt;
Why is a company like Nokia – http://www.nokia.com – described as having end-to-end expertise?&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;According to (&lt;a href="http://www.nokiasiemensnetworks.com/cn/Insight/end-to-end/end-to-end-expertise.htm?languagecode=en%20topic%20End-to-end%20expertise%20-%20our%20offering"&gt;Nokia&lt;/a&gt;) it takes innovation to win new business. Yet by its nature, innovation is hard work. The promise of a novel service is fulfilled through a complete understanding of all its components.&lt;/p&gt;&lt;p&gt;Nokia Siemens Networks, in collaboration with our parent companies Nokia and Siemens, offer end-to-end expertise and capabilities to create seamless, personalized end-user experiences delivered by streamlined business and network solutions.&lt;/p&gt;&lt;p&gt;We offer five key steps to create competitiveness through end-to-end innovation:&lt;ul&gt;&lt;li&gt;conduct the research&lt;/li&gt;&lt;li&gt;identify the opportunitiesfor innovation&lt;/li&gt;&lt;li&gt;specify the solutions&lt;/li&gt;&lt;li&gt;implement your plans&lt;/li&gt;&lt;li&gt;evolve your services portfolio&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;/ol&gt;&lt;br/&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;br/&gt;The Australian IT. Suncorp dials into mobile banking. Retrieved 19 July 2009, from &lt;a href="http://www.australianit.news.com.au/story/0,24897,25194759-24169,00.html"&gt;http://www.australianit.news.com.au/story/0,24897,25194759-24169,00.html&lt;/a&gt;&lt;br/&gt;Nokia Siemens Networks. End to end expertise. Retrieved 27 July 2009, from &lt;a href="http://www.nokiasiemensnetworks.com/cn/Insight/end-to-end/end-to-end-expertise.htm?languagecode=en%20topic%20End-to-end%20expertise%20-%20our%20offering"&gt;http://www.nokiasiemensnetworks.com/cn/Insight/end-to-end/end-to-end-expertise.htm?languagecode=en%20topic%20End-to-end%20expertise%20-%20our%20offering&lt;/a&gt;&lt;br/&gt;Wikipedia. Location-based service. Retrieved 14 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/Location-based_service"&gt;http://en.wikipedia.org/wiki/Location-based_service&lt;/a&gt;&lt;br/&gt;Wikipedia. Code division multiple access. Retrieved 19 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/Code_division_multiple_access"&gt;http://en.wikipedia.org/wiki/Code_division_multiple_access&lt;/a&gt;&lt;br/&gt;Wikipedia. GSM. Retrieved 19 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/GSM"&gt;http://en.wikipedia.org/wiki/GSM&lt;/a&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-3571200258832350019?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/3571200258832350019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-25-m-commerce-and-e-wallet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3571200258832350019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3571200258832350019'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-25-m-commerce-and-e-wallet.html' title='Exercise 25: M-commerce and the e-wallet: Innovation and mobile devices'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-8481779979076598706</id><published>2009-06-23T21:17:00.003+10:00</published><updated>2009-07-14T21:40:47.717+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 24'/><title type='text'>Exercise 24: Virtual business worlds and cyberagents</title><content type='html'>Search the Web for a site that uses a cyber character or cyber agent to host a business site. (If you create a successful cyber agent, you may be able to get large companies to use it to sell their products online.)
&lt;ol&gt;&lt;li&gt;Describe what software agents are.&lt;/li&gt;&lt;blockquote&gt;According to (&lt;a href="http://en.wikipedia.org/wiki/Software_agent"&gt;Wikipedia&lt;/a&gt;) , a software agent is a piece of software that acts for a user or other program. Such "action on behalf of" implies the authority to decide which (and if) action is appropriate. The idea is that agents are not strictly invoked for a task, but activate themselves.&lt;/blockquote&gt;&lt;li&gt;Differentiate the various types of software agents.&lt;/li&gt;&lt;blockquote&gt;(&lt;a href="http://en.wikipedia.org/wiki/Software_agent"&gt;Wikipedia&lt;/a&gt;) identifies the following types of software agents:&lt;ul&gt;&lt;li&gt;Autonomous agents&lt;/li&gt;Autonomous agents are software agents that claim to be autonomous, being self-contained and capable of making independent decisions, and taking actions to satisfy internal goals based upon their perceived environment.&lt;br/&gt;&lt;br/&gt;&lt;li&gt;Distributed agents&lt;/li&gt;Since agents are well suited to include their required resources in their description, they can be designed to be very loosely coupled and it becomes easy to have them executed as independent threads and on distributed processors. Thus they become distributed agents and the considerations of distributed computing apply. Agent code is particularly easy to implement in a distributed fashion and should scale well&lt;br/&gt;&lt;br/&gt;&lt;li&gt;Multi-agent systems&lt;/li&gt;When several agents (inter)act they may form a multi-agent system a.k.a. multiple-agent system. Characteristically such agents will not have all data or all methods available to achieve an objective (this can be referred to as "limited viewpoint") and thus will have to collaborate with other agents. Also, there may be little or no global control and thus such systems are sometimes referred to as swarm systems. As with distributed agents, data is decentralized and execution is asynchronous&lt;br/&gt;&lt;br/&gt;&lt;li&gt;Mobile agents&lt;/li&gt;Agent code that moves itself, including its execution state, on to another machine, to continue execution there. This is also referred to as mobile code. Agents can be used to gather system information, taking back-up of files by copying them in client-server paradigm, monitoring network throughput or to check resources availability and moderating the resource utilization of system by checking the services running on system&lt;br/&gt;&lt;br/&gt;&lt;li&gt;Fuzzy agents&lt;/li&gt;In computer science a fuzzy agent is a software agent that implements fuzzy logic. This software entity interacts with its environment through an adaptive rule-base and can therefore be considered as a type of intelligent agent.&lt;/ul&gt;&lt;/blockquote&gt;&lt;li&gt;Describe how techniques such as artificial intelligence and statistical techniques are used in software agents.&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;(&lt;a href="http://en.wikipedia.org/wiki/Intelligent_agent"&gt;Wikipedia&lt;/a&gt;)In artificial intelligence, an intelligent agent (IA) is an autonomous entity which observes and acts upon an environment (i.e. it is an agent) and directs its activity towards achieving goals (i.e. it is rational). Intelligent agents may also learn or use knowledge to achieve their goals.&lt;/p&gt;&lt;p&gt;Intelligent agents are also closely related to software agents. For example, autonomous programs used for operator assistance or data mining (sometimes referred to as bots) are also called "intelligent agents".&lt;/p&gt;&lt;p&gt;As software agents have an autonomous role, they need to be able to make decisions. Statistical techniques are used to devise the decision model that the agent will use. As the agent learns, the statistical model is refined by the agent so that the decisions it makes better fit with expectations.&lt;/p&gt;&lt;/blockquote&gt;&lt;li&gt;List popular software agents currently in use in the commercial world.&lt;/li&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/"&gt;http://www.amazon.com/&lt;/a&gt;makes recommendations on what you might like to buy, based upon previous enquiries.&lt;/li&gt;&lt;li&gt;NASA's Jet Propulsion Laboratory has an agent that monitors inventory, planning, and scheduling equipment ordering to keep costs down.&lt;/li&gt;&lt;li&gt;Allstate Insurance has a network with thousands of computers. The company uses a network monitoring agent from Computer Associates International called Neugent that watches its huge networks 24 hours a day. Every five seconds, the agent measures 1200 data points and can predict a system crash 45 minutes before it happens.&lt;/li&gt;&lt;li&gt;Google has agents that analyse web browsing trends and provide targeted advertising.&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;li&gt;Identify various activities in e-commerce where software agents are currently in use.&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;It is suggested (&lt;a href="http://en.wikipedia.org/wiki/Software_agent"&gt;Wikipedia&lt;/a&gt;)that there are 4 essential types of intelligent software agents:&lt;ol&gt;&lt;li&gt;Buyer agents or shopping bots&lt;/li&gt;&lt;li&gt;User or personal agents&lt;/li&gt;&lt;li&gt;Monitoring and surveillance agents&lt;/li&gt;&lt;li&gt;Data mining agents&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;p&gt;Examples of using software agents include: &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.autocarinsurancebest.com/search.html?q=software+agents&amp;submit=Search"&gt;Car insurance Quotes.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Travel and Holiday comparison portals eg &lt;a href="http://www.flightcentre.com.au/"&gt;FlightCentre&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;/p&gt;&lt;/blockquote&gt;&lt;/ol&gt;&lt;br/&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;br/&gt;
Car insurance Quotes. Free Resources: software agents. Retrieved 14 July 2009, from &lt;a href="http://www.autocarinsurancebest.com/search.html?q=software+agents&amp;submit=Search"&gt;http://www.autocarinsurancebest.com/search.html?q=software+agents&amp;submit=Search&lt;/a&gt;&lt;br/&gt;
Wikipedia. Intelligent agent. Retrieved 14 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/Intelligent_agent"&gt;http://en.wikipedia.org/wiki/Intelligent_agent&lt;/a&gt;&lt;br/&gt;
Wikipedia. Software agent. Retrieved 14 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/Software_agent"&gt;http://en.wikipedia.org/wiki/Software_agent&lt;/a&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-8481779979076598706?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/8481779979076598706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-24-virtual-business-worlds-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8481779979076598706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8481779979076598706'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-24-virtual-business-worlds-and.html' title='Exercise 24: Virtual business worlds and cyberagents'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-3747064317953284462</id><published>2009-06-23T21:15:00.003+10:00</published><updated>2009-07-13T22:22:27.817+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 23'/><title type='text'>Exercise 23: Searching mechanisms</title><content type='html'>&lt;ol&gt;&lt;li&gt;How do search engines such as Alta Vista differ from information directories?&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;I must admit that I was very surprised to see that altavista still had a presence on the web.&lt;a href="http://www.altavista.com/"&gt;http://www.altavista.com/&lt;/a&gt; I guess it is debateable as to whether having a website constitutes a presence.&lt;br/&gt;I seemingly remember that years ago it was one of the big few interfaces to the web, but now it just looks like the very poor mans google.&lt;/p&gt;&lt;p&gt;Having said all that and having to search for the connections between Altavista, information directories, and this topic, (&lt;a href="http://en.wikipedia.org/wiki/AltaVista"&gt;Wikipedia&lt;/a&gt;) provided the enlightenment. It turns out that AltaVista used a fast, multi-threaded crawler (Scooter) to trawl the net.&lt;/p&gt;&lt;p&gt;I am going to take a stab that an information directory is meant to represent a static information source, whereas AltaVista which used a crawler, could be thought of as a dynamic data source.&lt;/p&gt; &lt;/blockquote&gt;&lt;li&gt;What is a spider? What does it do?&lt;/li&gt;&lt;blockquote&gt;A spider is an automated software program used to locate and collect data from web pages for inclusion in a search engine's database, and to follow links to find new pages on the world wide web.(Eustace, p2)&lt;/blockquote&gt;&lt;li&gt;Describe a search situation where the requirement for recall is high?&lt;/li&gt;&lt;blockquote&gt;I am having trouble defining exactly what this question is actually asking. I am going to take a stab that it is referring to the correllation between search terms and the returned results. The more relevant the result the higher the recall value. With this interpretation in mind, (Cole)relates Visualizing a high recall search strategy output for undergraduates in an exploration stage of researching a term paper. The abstract states that When accessing an information retrieval system, it has long been said that undergraduates who are in an exploratory stage of researching their essay topic should use a high recall search strategy; what prevents them from doing so is the information overload factor associated with showing the undergraduate a long list of citations. One method of overcoming information overload is summarizing and visualizing the citation list. &lt;/blockquote&gt;&lt;li&gt;What is a meta-search engine? Provide some examples.&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;According to (&lt;a href="http://en.wikipedia.org/wiki/Metasearch_engine"&gt;Wikipedia&lt;/a&gt;)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;/p&gt;&lt;p&gt;Brainboost, ChunkIt!, Clusty, Dogpile, Excite, Harvester42, HotBot, Info.com, Ixquick, Kayak, LeapFish, Mamma, Metacrawler, MetaLib, Mobissimo, Myriad Search, SideStep, Turbo10, WebCrawler, DeeperWeb  are all meta-search engines.&lt;/p&gt;&lt;/blockquote&gt;&lt;li&gt;What is spamming?&lt;/li&gt;&lt;blockquote&gt;According to (&lt;a href="http://help.yahoo.com/l/us/yahoo/smallbusiness/bizmail/spam/spam-21.html"&gt;Yahoo&lt;/a&gt;)Spam is any message or posting, regardless of its content, that is sent to multiple recipients who have not specifically requested the message. Spam can also be multiple postings of the same message to newsgroups or list servers that aren't related to the topic of the message. Other common terms for spam include UCE (unsolicited commercial email) and UBE (unsolicited bulk email).&lt;/blockquote&gt;&lt;li&gt;How can you get your site listed at major search sites; and how could you improve your site ranking?&lt;/li&gt;&lt;blockquote&gt;According to (&lt;a href="http://help.yahoo.com/l/us/yahoo/smallbusiness/webhosting/promote/promote-05.html"&gt;Yahoo&lt;/a&gt;) to get your site listed and improve your ranking do the following:&lt;ul&gt;&lt;li&gt;Submit your site&lt;/li&gt;&lt;li&gt;add meta tags&lt;/li&gt;&lt;li&gt;cultivate links to your site&lt;/li&gt;&lt;li&gt;build a quality site&lt;/li&gt;&lt;li&gt;keep your site fresh&lt;/li&gt;&lt;li&gt;use a sitemap&lt;/li&gt;&lt;/ul&gt; &lt;/blockquote&gt;&lt;/ol&gt;&lt;br/&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;br/&gt;  
Cole C., Mandelblatt B., Stevenson J. Visualizing a high recall search strategy output for undergraduates in an exploration stage of researching a term paper (2002) Information Processing and Management, 38 (1), pp. 37-54.  
&lt;br/&gt;Eustace K, Bots, agents, spiders and mobile computing. ITC382/ITC594/ITC565 Topic 10 lecture notes&lt;br/&gt;
Wikipedia. AltaVista. Retrieved 13 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/AltaVista"&gt;http://en.wikipedia.org/wiki/AltaVista&lt;/a&gt;&lt;br/&gt;
Wikipedia. Metasearch engine. Retrieved 13 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/Metasearch_engine"&gt;http://en.wikipedia.org/wiki/Metasearch_engine&lt;/a&gt;&lt;br/&gt;Yahoo!Help. How can I get my site listed in search engines? Retrieved 13 July 2009, from  &lt;a href="http://help.yahoo.com/l/us/yahoo/smallbusiness/webhosting/promote/promote-05.html"&gt;http://help.yahoo.com/l/us/yahoo/smallbusiness/webhosting/promote/promote-05.html&lt;/a&gt;&lt;br/&gt;Yahoo!Help. What is spam? Retrieved 13 July 2009, from  &lt;a href="http://help.yahoo.com/l/us/yahoo/smallbusiness/bizmail/spam/spam-21.html"&gt;http://help.yahoo.com/l/us/yahoo/smallbusiness/bizmail/spam/spam-21.html&lt;/a&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-3747064317953284462?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/3747064317953284462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-23-searching-mechanisms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3747064317953284462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3747064317953284462'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-23-searching-mechanisms.html' title='Exercise 23: Searching mechanisms'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-7605800453592522140</id><published>2009-06-23T21:13:00.002+10:00</published><updated>2009-07-20T22:21:39.893+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 09'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 22'/><title type='text'>Exercise 22</title><content type='html'>&lt;ol&gt;&lt;li&gt;Use the coordination theory framework to describe the contribution of ERP software to organisational goals such as efficiency and flexibility.&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;(&lt;a href="http://en.wikipedia.org/wiki/Enterprise_resource_planning"&gt;Wikipedia&lt;/a&gt;)defines Enterprise resource planning (ERP) is a company-wide computer software system used to manage and coordinate all the resources, information, and functions of a business from shared data stores.&lt;p&gt;&lt;/p&gt;An ERP system has a service-oriented architecture with modular hardware and software units and "services" that communicate on a local area network. The modular design allows a business to add or reconfigure modules (perhaps from different vendors) while preserving data integrity in one shared database that may be centralized or distributed.
&lt;/p&gt;&lt;/blockquote&gt;&lt;li&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;/li&gt;&lt;blockquote&gt;&lt;p&gt;(&lt;a href="http://en.wikipedia.org/wiki/Customer_relationship_management"&gt;Wikipedia&lt;/a&gt;) defines Customer relationship management (CRM)as  consisting of the processes a company uses to track and organize its contacts with its current and prospective customers. CRM software is used to support these processes; information about customers and customer interactions can be entered, stored and accessed by employees in different company departments. Typical CRM goals are to improve services provided to customers, and to use customer contact information for targeted marketing.&lt;/p&gt;&lt;p&gt;According to (&lt;a href="http://en.wikipedia.org/wiki/Business-to-business"&gt;Wikipedia&lt;/a&gt;) Business-to-business (B2B) describes commerce transactions between businesses, such as between a manufacturer and a wholesaler, or between a wholesaler and a retailer&lt;/p&gt;&lt;p&gt;Supply chain management software as defined by (&lt;a href="http://en.wikipedia.org/wiki/Supply_chain_management"&gt;Wikipedia&lt;/a&gt;) are tools or modules used in executing supply chain transactions, managing supplier relationships and controlling associated business processes.&lt;/p&gt;&lt;/blockquote&gt;&lt;li&gt;What are the limitations of the EDI platform? How does a web-based platform for inter-enterprise communication rectify these limitations?&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;According to (&lt;a href="http://en.wikipedia.org/wiki/Electronic_Data_Interchange"&gt;Wikipedia&lt;/a&gt;) Electronic Data Interchange (EDI) refers to the structured transmission of data between organizations by electronic means. It is used to transfer electronic documents from one computer system to another (ie) from one trading partner to another trading partner. It is more than mere E-mail; for instance, organizations might replace bills of lading and even checks with appropriate EDI messages&lt;/p&gt;&lt;p&gt;Often missing from the EDI specifications (referred to as EDI Implementation Guidelines) are real world descriptions of how the information should be interpreted by the business receiving it. For example, suppose candy is packaged in a large box that contains 5 display boxes and each display box contains 24 boxes of candy packaged for the consumer. If an EDI document says to ship 10 boxes of candy it may not be clear whether to ship 10 consumer packaged boxes, 240 consumer packaged boxes or 1200 consumer packaged boxes. It is not enough for two parties to agree to use a particular qualifier indicating case, pack, box or each; they must also agree on what that particular qualifier means&lt;/p&gt;&lt;p&gt;The Internet has provided a means for any company, no matter how small or where they are located in the world, to become part of a major supply chain initiative hosted by a global retailer or manufacturing company. Many companies around the world have shifted production of labour intensive parts to low-cost, emerging regions such as China and Eastern Europe. Web-based EDI, or webEDI, allows a company to interact with its suppliers in these regions without the worrying of implementing a complex EDI infrastructure&lt;/p&gt;&lt;/blockquote&gt;&lt;li&gt;Describe the CRM Life Cycle and the different segments of CRM software.&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;According to (&lt;a href="http://www.crmnewz.com/crmnewz-18-20050407CRMandCustomerLifeCycle.html"&gt;CRMNEWZ&lt;/a&gt;) the life cycle of CRM consists of three phases - customer acquisition, customer relationship enhancements and customer retention. CRM software streamlines CRM activities at each phase of customer relationship management.&lt;ul&gt;&lt;li&gt;Customer Acquisition&lt;/li&gt;Contact management module and direct marketing module of CRM allow companies to effectively promote and market their products and services to prospects. Those modules help speed up the acquiring processes and reduce the cost of acquiring new customers.&lt;li&gt;Customer Relationship Enhancements&lt;/li&gt;CRM helps companies better understand existing customers' needs and behaviors and enhance the profitability from existing customers by cross-selling. They can customize their products and services to individual customers' needs and preferences.&lt;li&gt;Customer Retention&lt;/li&gt;Customer service module of CRM system gives the organizations the edge in customer support. They can increase customer satisfaction while reducing the cost of support. Customer retention is critical to the overall profitability of an organization. A customer you spend hundreds of dollars and months to acquire may leave you in seconds as a result of poor customer services.&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;According to (&lt;a href="http://en.wikipedia.org/wiki/Customer_relationship_management"&gt;Wikipedia&lt;/a&gt;)CRM includes many aspects which relate directly to one another:&lt;ul&gt;&lt;li&gt;Front office operations — Direct interaction with customers, e.g. face to face meetings, phone calls, e-mail, online services etc.&lt;/li&gt;&lt;li&gt;Back office operations — Operations that ultimately affect the activities of the front office (e.g., billing, maintenance, planning, marketing, advertising, finance, manufacturing, etc.)&lt;/li&gt;&lt;li&gt;Business relationships — Interaction with other companies and partners, such as suppliers/vendors and retail outlets/distributors, industry networks (lobbying groups, trade associations). This external network supports front and back office activities.&lt;/li&gt;&lt;li&gt;Analysis — Key CRM data can be analyzed in order to plan target-marketing campaigns, conceive business strategies, and judge the success of CRM activities (e.g., market share, number and types of customers, revenue, profitability).&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/ol&gt;&lt;br/&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;br/&gt;
CRMNEWZ. CRM And Customer Life Cycle. Retrieved 20 July 2009, from &lt;a href="http://www.crmnewz.com/crmnewz-18-20050407CRMandCustomerLifeCycle.html"&gt;http://www.crmnewz.com/crmnewz-18-20050407CRMandCustomerLifeCycle.html&lt;/a&gt;&lt;br/&gt;
Wikipedia. Business-to-business. Retrieved 20 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/Business-to-business"&gt;http://en.wikipedia.org/wiki/Business-to-business&lt;/a&gt;&lt;br/&gt;
Wikipedia. Customer relationship management. Retrieved 20 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/Customer_relationship_management"&gt;http://en.wikipedia.org/wiki/Customer_relationship_management&lt;/a&gt;&lt;br/&gt;
Wikipedia. Electronic Data Interchange. Retrieved 20 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/Electronic_Data_Interchange"&gt;http://en.wikipedia.org/wiki/Electronic_Data_Interchange&lt;/a&gt;&lt;br/&gt;
Wikipedia. Enterprise resource planning. Retrieved 20 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/Enterprise_resource_planning"&gt;http://en.wikipedia.org/wiki/Enterprise_resource_planning&lt;/a&gt;&lt;br/&gt;
Wikipedia. Supply chain management. Retrieved 20 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/Supply_chain_management"&gt;http://en.wikipedia.org/wiki/Supply_chain_management&lt;/a&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-7605800453592522140?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/7605800453592522140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7605800453592522140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7605800453592522140'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-22.html' title='Exercise 22'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-6953513189228203027</id><published>2009-06-23T21:12:00.001+10:00</published><updated>2009-07-11T21:29:48.280+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 09'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 21'/><title type='text'>Exercise 21: Shopping cart specifications</title><content type='html'>Develop the class diagram for the following shopping cart specifications:
&lt;blockquote&gt;A shoppingCart object is associated with only one creditCard and customer and to items in itemToBuy object. Persistent customer information such as name, billing address, delivery address, e-mail address and credit rating is stored in the customer object. The credit card object is associated with a frequentShopper discount object, if the credit rating for the customer is good. The customer can make or cancel orders as well as add and delete items to the shopping cart product. The credit card object contains the secure method for checking that the charge is authentic.&lt;/blockquote&gt;&lt;blockquote&gt;&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/Slh2p48njjI/AAAAAAAAAGI/hiG0S3tXRVo/s1600-h/Exercise21-ShoppingCartSpec.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 384px;" src="http://1.bp.blogspot.com/_JS00SNKPHSk/Slh2p48njjI/AAAAAAAAAGI/hiG0S3tXRVo/s400/Exercise21-ShoppingCartSpec.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5357162218790555186" /&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;p&gt;This is a class diagram of the textual information provided. This was produced using the class diagram tool in Visual Studio 2008. There are no multiplicities defined. This would be fleshed out with some further business case analysis.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-6953513189228203027?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/6953513189228203027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-21-shopping-cart.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6953513189228203027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6953513189228203027'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-21-shopping-cart.html' title='Exercise 21: Shopping cart specifications'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JS00SNKPHSk/Slh2p48njjI/AAAAAAAAAGI/hiG0S3tXRVo/s72-c/Exercise21-ShoppingCartSpec.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-4222927458670255737</id><published>2009-06-23T21:11:00.002+10:00</published><updated>2009-07-10T22:11:29.228+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 09'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 20'/><title type='text'>Exercise 20: Modeling with UML</title><content type='html'>&lt;ol&gt;&lt;li&gt;Use Case, Class, Sequence, Collaboration, State chart, Activity, Component and Deployment diagrams are used in UML. Describe each of the eight (8) main diagrams used in UML.&lt;/li&gt;&lt;/ol&gt;&lt;ol type="i"&gt;&lt;li&gt;Use Case diagram&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;Use cases are text stories, widely used to discover and record requirements.(Larman, p61)&lt;/p&gt;&lt;p&gt;A use case diagram is an excellent picture of the system context; it makes a good context diagram, that is, showing the boundary of a system, what lies outside of it, and how it gets used. It serves as a communication tool that summarizes the behaviour of a system and its actors.(Larman, p90)&lt;/p&gt;&lt;/blockquote&gt;&lt;li&gt;Class diagram&lt;/li&gt;&lt;blockquote&gt;Class diagrams are used to illustrate classes, interfaces, and their associations. They are used for static object modeling. (Larman, p249)&lt;/blockquote&gt;&lt;li&gt;Sequence diagram&lt;/li&gt;&lt;blockquote&gt;A system sequence diagram (SSD) is a fast and easily created artifact that illustrates input and output events related to the systems under discussion. An SSd shows, for a particuler course of events within a use case, the external actors that interact directly with the system, the system (as a black box), and the system events that the actors generate.(Larman, p173-175)&lt;/blockquote&gt;&lt;li&gt;Collaboration diagram&lt;/li&gt;&lt;blockquote&gt;Also called an interaction diagram or a communication diagram. These diagrams illustrate how objects interact via messages. They are used for dynamic object modelling. There are two common types: sequence and communication interaction diagrams. (Larman p221)&lt;/blockquote&gt;&lt;li&gt;State Chart diagram&lt;/li&gt;&lt;blockquote&gt; A state chart allows nesting to obtain substates; a substate inherits the transitions of its superstate (the enclosing state). Substates can be graphically shown by nesting them in a superstate box. (Larman, p489)&lt;/blockquote&gt;&lt;li&gt;Activity diagram&lt;/li&gt;&lt;blockquote&gt; A UML activity diagram shows sequential and parallel activities in a process. They are useful for modelling business processes, workflows, data flows, and complex algorithms.(Larman, p477)&lt;/blockquote&gt;&lt;li&gt;Component diagram&lt;/li&gt;&lt;blockquote&gt;UML components are a design-level perspective,; they don't exist in the concrete software perspective, but map to concrete artifacts such as a set of files. (Larman, p654)&lt;/blockquote&gt;&lt;li&gt;Deployment diagram&lt;/li&gt;&lt;blockquote&gt;A deployment diagram shows the assignment of concrete software artifacts (such as executable files) to computational nodes (something with processing services). It shows the deployment  of software elements to the physical architecture and the communication (usually on a network) between physical elements. (Larman, p651)(&lt;/blockquote&gt;&lt;/ol&gt;&lt;br/&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;br/&gt;Larman, C. (2005). Applying UML and patterns: an introduction to object-oriented analysis and design and the unified process (3rd ed.): Prentice Hall PTR Upper Saddle River, NJ, USA.&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-4222927458670255737?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/4222927458670255737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-20-modeling-with-uml.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4222927458670255737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4222927458670255737'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-20-modeling-with-uml.html' title='Exercise 20: Modeling with UML'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-3952391421954046561</id><published>2009-06-23T21:08:00.003+10:00</published><updated>2009-07-09T22:17:45.770+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 19'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic 08'/><title type='text'>Exercise 19: TP monitors and transaction protocols</title><content type='html'>&lt;ol&gt;&lt;li&gt;Give a description in your own words of the ACID properties of a transaction.&lt;/li&gt;&lt;blockquote&gt;&lt;strong&gt;Atomic&lt;/strong&gt; means that all portions of a transaction will process successfully or none of them will.&lt;br/&gt;&lt;strong&gt;Consistan&lt;/strong&gt;t means that if a transaction is repeated then the same result will eventuate.&lt;br/&gt;&lt;strong&gt;Isolated&lt;/strong&gt; means that the transaction is not affected by other transactions.&lt;br/&gt;&lt;strong&gt;Durable&lt;/strong&gt; means that the result are stored permanently. &lt;/blockquote&gt;&lt;li&gt;Describe a TP monitor environment. How can a TP monitor stop an operating system being overwhelmed?&lt;/li&gt;&lt;blockquote&gt;A TP (Transaction Processing) monitor is a complex program which manages the execution of a transaction starting with the client executing the transaction; it will normally employ a number of servers and then return any results to the client. TP monitors carry out two important processes: they manage the concurrent execution of the threads and processes that make up a transaction and ensure that the ACID properties detailed earlier in the chapter are enforced; for example, a TP monitor ensures that when a transaction updates a shared item of data when other transactions wish to access the data then the result of the updating is consistent.(Ince, p365)&lt;/blockquote&gt;&lt;li&gt;What is difference in load balancing with traditional and transactional MOM, RPC and conversations?&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;According to (&lt;a href="http://en.wikipedia.org/wiki/Load_balancing_(computing)"&gt;Wikipedia&lt;/a&gt;) load balancing is a technique to spread work between two or more computers, network links, CPUs, hard drives, or other resources, in order to get optimal resource utilization, maximize throughput, and minimize response time.&lt;/p&gt;&lt;p&gt;Message-oriented middleware (MOM) is infrastructure focused on message sending that increases the interoperability, portability, and flexibility of an application by allowing the application to be distributed over multiple heterogeneous platforms. It reduces the complexity of developing applications that span multiple operating systems and network protocols by insulating the application developer from the details of the various operating system and network interfaces&lt;/p&gt;&lt;p&gt;In traditional MOM, messages are addressed to their recipients, although sender and receiver are loosely coupled and need not synchronise to communicate.(&lt;a href="http://dsonline.computer.org/portal/site/dsonline/menuitem.9ed3d9924aeb0dcd82ccc6716bbe36ec/index.jsp?&amp;pName=dso_level1&amp;path=dsonline/topics/middleware&amp;file=intro_MOM.xml&amp;xsl=article.xsl"&gt;IEEE&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;Remote procedure call (RPC) is an Inter-process communication technology that allows a computer program to cause a subroutine or procedure to execute in another address space (commonly on another computer on a shared network) without the programmer explicitly coding the details for this remote interaction.&lt;/p&gt;&lt;/blockquote&gt;&lt;li&gt;How can TP Monitors save money?&lt;/li&gt;&lt;blockquote&gt;TP monitors save money by making use of the processer idle time between user requests. This usage relieves the need for purchasing additional hardware for each individual to utilise. It also means that you make the hardware that you do have work more efficiently from a business perspective.&lt;/blockquote&gt;&lt;li&gt;Why is a two-phase commit protocol better than a one-phase atomic commit protocol?&lt;/li&gt;&lt;blockquote&gt;The two-phase commit protocol is better in a distributed environment in that it allows a server to make a unilateral decision to abort a transaction if required.&lt;br/&gt;(Ince, p361) The description of the protocol is detailed below in steps 3.1 to 3.4. The general rule about aborting or committing a transaction is:
1. If the client requests that a transaction is aborted, for example the client is building up an order in a shopping cart and decides not to complete the order, then the coordinator will inform all the servers involved in the transaction that they should abort.
2. If one of the servers decides to abort a transaction, for example in order to release a lock, then the coordinator informs all the servers involved in the transaction; they will then all abort.
3. If the client asks for a transaction to be committed then the two-phase commit protocol starts and steps 3.1 to 3.4 are carried out.
3.1 The coordinator asks each server whether they can commit.
3.2 Each server decides whether it can commit or not and sends back a reply which indicates the result of its decision. If it cannot commit then it aborts its transaction.
3.3 If all the servers have voted to commit their transactions then the coordinator informs all the servers that they can commit.
3.4 If at least one server cannot commit then the coordinator decides to abort the transaction and sends an abort message to all the servers involved.
4. Those servers which have agreed to commit to a transaction wait for the final decision from the coordinator. This will be either a commit instruction or an abort instruction. They will then act on this.&lt;/blockquote&gt;&lt;li&gt;What is CICS by IBM?&lt;/li&gt;&lt;blockquote&gt;(Ince, p365-366) CICS is a complex TP monitor marketed by IBM. It will:&lt;ul&gt;&lt;li&gt;Initiate and destroy threads to carry out transactional operations. Many transaction monitors will access a pool of threads which have been set up when the monitor was started.&lt;/li&gt;&lt;li&gt;Manage the resources that are being accessed, for example ensuring that updates are carried out in such a way that the resource does not lend itself in an inconsistent state.&lt;/li&gt;&lt;li&gt;Ensure that if a transaction fails then suitable action is taken; this action can be provided by a programmer as code to be executed. In order to do this most TP monitors will use a two-phase atomic commit protocol.&lt;/li&gt;&lt;li&gt;Schedule threads so that low-priority transactions, for example batch transactions, are allocated a smaller share of resources than high-priority transactions such as online transactions.&lt;/li&gt;&lt;li&gt;Enable the processing load on a distributed system to be shared between a number of servers.&lt;/li&gt;&lt;li&gt;Enable a distributed system to function – even in the presence of the failure of one or more servers.&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;/ol&gt;&lt;br/&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;br/&gt;IEEE, (2009). Message-Oriented Middleware. Retrieved 9 July 2009, from  &lt;a href="http://dsonline.computer.org/portal/site/dsonline/menuitem.9ed3d9924aeb0dcd82ccc6716bbe36ec/index.jsp?&amp;pName=dso_level1&amp;path=dsonline/topics/middleware&amp;file=intro_MOM.xml&amp;xsl=article.xsl"&gt;http://dsonline.computer.org/portal/site/dsonline/menuitem.9ed3d9924aeb0dcd82ccc6716bbe36ec/index.jsp?&amp;pName=dso_level1&amp;path=dsonline/topics/middleware&amp;file=intro_MOM.xml&amp;xsl=article.xsl&lt;/a&gt;&lt;br/&gt;Ince, D. (2006). Developing Distributed &amp; E-commerce Applications: Prentice-Hall, Inc. Upper Saddle River, NJ, USA.&lt;br/&gt;
Wikipedia. Load balancing (computing). Retrieved 9 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/Load_balancing_(computing)"&gt;http://en.wikipedia.org/wiki/Load_balancing_(computing)&lt;/a&gt;&lt;br/&gt;
Wikipedia. Message-oriented middleware. Retrieved 9 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/Message-oriented_middleware"&gt;http://en.wikipedia.org/wiki/Message-oriented_middleware&lt;/a&gt;&lt;br/&gt;
Wikipedia. Remote procedure call. Retrieved 9 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/Remote_procedure_call"&gt;http://en.wikipedia.org/wiki/Remote_procedure_call&lt;/a&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-3952391421954046561?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/3952391421954046561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-19-tp-monitors-and-transaction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3952391421954046561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3952391421954046561'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-19-tp-monitors-and-transaction.html' title='Exercise 19: TP monitors and transaction protocols'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-1783560276313799656</id><published>2009-06-23T21:05:00.003+10:00</published><updated>2009-07-06T21:12:39.392+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 08'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 18'/><title type='text'>Exercise 18: Threading demonstration in Python</title><content type='html'>A simple demonstration of the threading module in Python that uses both a lock and semaphore to control concurrency is by Ted Herman at the University of Iowa.&lt;blockquote&gt;&lt;p&gt;I have looked at the code  and the output.&lt;/p&gt;&lt;p&gt;The microsoft subjects that form part of this course also deal with threading issues, required us to understand concurrency and enabled us to think about threadsafe practices. &lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-1783560276313799656?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/1783560276313799656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-18-threading-demonstration-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1783560276313799656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1783560276313799656'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-18-threading-demonstration-in.html' title='Exercise 18: Threading demonstration in Python'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-2458357592583131683</id><published>2009-06-23T21:03:00.003+10:00</published><updated>2009-07-06T21:02:12.280+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 17'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic 08'/><title type='text'>Exercise 17: Concurrency terms</title><content type='html'>Find definitions for eight terms and concepts used in threaded programming:
&lt;ol&gt;&lt;li&gt;Thread Synchronization&lt;/li&gt;&lt;blockquote&gt;(&lt;a href="http://msdn.microsoft.com/en-us/library/dsw9f9ts(VS.71).aspx"&gt;msdn&lt;/a&gt;)Synchronization provides a compromise between the unstructured nature of multi threaded programming and the structured order of synchronous processing.

You use synchronization techniques: 

To explicitly control the order in which code runs whenever tasks must be performed in a specific sequence 
-or- 

To prevent the problems that can occur when two threads share the same resource at the same time. 
For example, you could use synchronization to cause a display procedure to wait until a data retrieval procedure that is running on another thread is complete.

&lt;/blockquote&gt;&lt;li&gt;Locks&lt;/li&gt;&lt;blockquote&gt;Locks are pieces of software that make sure that two processes do not get into each other's way when accessing a common resource and sequence the processes when there are dependencies among them.(Eustace, p8) &lt;/blockquote&gt;&lt;li&gt;Deadlock&lt;/li&gt;&lt;blockquote&gt;A deadlock is a case where two pieces of code are trying to access the same objects but are blocking each other from getting at the resources. (Johnson, p396)&lt;/blockquote&gt;&lt;li&gt;Semaphores&lt;/li&gt;&lt;blockquote&gt;In the .Net framework The Semaphore class is used to throttle usage of some resource. Specifically, a Semaphore creates a kernel object that supports a certain number of
valid slots at once. When the slots are filled, the remaining code will block until a slot is made available by another thread releasing the slot.(Johnson, p405)&lt;/blockquote&gt;&lt;li&gt;Mutex (mutual exclusion)&lt;/li&gt;&lt;blockquote&gt;A Mutex allows synchronization (like a lock) across AppDomain and process boundaries. (Johnson, p402-405) Using a named Mutex is a common way to synchronize data across process boundaries. &lt;/blockquote&gt;&lt;li&gt;Thread&lt;/li&gt;&lt;blockquote&gt;A process is a running program – code, data (variables, data structures, etc) with at least one thread of execution.
A thread is a flow of control through the process, plus a private stack for local data. Threads enable concurrency (Eustace, p2)&lt;/blockquote&gt;&lt;li&gt;Event&lt;/li&gt;&lt;blockquote&gt;An Event provides a way to notify to multiple threads (across AppDomain and process boundaries) that some event has occurred. Events are a type of kernel object that has two states, on and off. These states allow threads across an application to wait until an event is signaled to do something specific.(Johnson, p402-406)&lt;/blockquote&gt;&lt;li&gt;Waitable timer.&lt;/li&gt;&lt;blockquote&gt;A waitable timer (&lt;a href="http://msdn.microsoft.com/en-us/library/ms687012(VS.85).aspx"&gt;MSDN&lt;/a&gt;) object is a synchronization object whose state is set to signaled when the specified due time arrives. The behavior of a waitable timer can be summarized as follows:
&lt;ul&gt;&lt;li&gt;When a timer is set, it is canceled if it was already active, the state of the timer is nonsignaled, and the timer is placed in the kernel timer queue.&lt;/li&gt;&lt;li&gt;
When a timer expires, the timer is set to the signaled state. If the timer has a completion routine, it is queued to the thread that set the timer. The completion routine remains in the asynchronous procedure call (APC) queue of the thread until the thread enters an alertable wait state. At that time, the APC is dispatched and the completion routine is called. If the timer is periodic, it is placed back in the kernel timer queue.&lt;/li&gt;&lt;li&gt;When a timer is canceled, it is removed from the kernel timer queue if it was pending. If the timer had expired and there is still an APC queued to the thread that set the timer, the APC is removed from the thread's APC queue. The signaled state of the timer is not affected.&lt;/li&gt;&lt;/ul&gt; 
&lt;/blockquote&gt;&lt;/ol&gt;&lt;br/&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;br/&gt;Eustace K. Concurrency and Transactions, ITC382/ITC594/ITC565 Topic 8&lt;br/&gt;MSDN. Waitable Timer Objects. Retrieved on 6 July 2009, from &lt;a href="http://msdn.microsoft.com/en-us/library/ms687012(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms687012(VS.85).aspx&lt;/a&gt;&lt;br/&gt;
MSDN. Thread Synchronization. Retrieved on 6 July 2009, from &lt;a href="http://msdn.microsoft.com/en-us/library/dsw9f9ts(VS.71).aspx"&gt;http://msdn.microsoft.com/en-us/library/dsw9f9ts(VS.71).aspx&lt;/a&gt;&lt;br/&gt;Johnson, B., Lanham, B., &amp; Wildermuth, S. (2007). Mcpd self-paced training kit (exam 70-549): designing and developing enterprise applications using the microsoft®. net framework.&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-2458357592583131683?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/2458357592583131683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-17-concurrency-terms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2458357592583131683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2458357592583131683'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-17-concurrency-terms.html' title='Exercise 17: Concurrency terms'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-1484216924829378166</id><published>2009-06-23T21:00:00.004+10:00</published><updated>2009-07-01T21:50:40.639+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 16'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic 07'/><title type='text'>Exercise 16: Authentication and Encryption systems</title><content type='html'>&lt;ol&gt;&lt;li&gt;Visit an e-commerce website and survey the mode of payment allowed. Would you trust the site with your business?&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;A site that I have used multiple times is &lt;a href="http://www.umart.com.au/"&gt;UMART Online&lt;/a&gt;. It is an online computer shop.
They accept payment by Cash/EFTPos/Cheque. They do have a physical presence as well with multiple stores around Australia. Their method of payment by credit card requires filling in a paper based form, with your credit card details, faxing it to them, and if your order is over $500 sending in a photocopy of your Drivers Licence.&lt;/p&gt;&lt;p&gt;This method is a little confronting, when looked at from a security perspective, with Identity theft concerns. But their prices made it seem just to good.&lt;/p&gt;&lt;/blockquote&gt;
&lt;li&gt;Global e-commerce presents challenges exempt from domestic e-commerce. What security concerns add to the complexity of international e-business?&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;Access by unauthorized users is the area of risk that approaches the level of "significant" and is perceived to present the greatest overall security risk to e-Commerce. (&lt;a href="http://www.isaca.org/Template.cfm?Section=Deliverables&amp;amp;Template=/ContentManagement/ContentDisplay.cfm&amp;amp;ContentID=8547"&gt;Isaca&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;According to (&lt;a href="http://www.isaca.org/Template.cfm?Section=Deliverables&amp;amp;Template=/ContentManagement/ContentDisplay.cfm&amp;amp;ContentID=8547"&gt;Isaca&lt;/a&gt;), the security impact of e-Commerce can be placed into two categories: &lt;ul&gt;&lt;li&gt;Improper or unauthorized use of the organization's e-Commerce offering (i.e., web site)&lt;/li&gt;&lt;li&gt;Using connectivity to the Internet as the path to the organization's internal, private systems for unauthorized access&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;li&gt;What measures should e-commerce provide to create trust among their potential customers? What measures can be verified by the customer?&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;Knowing when to trust a website depends in part on who publishes the website, what information they want, and what you want from the site. If you're not sure whether to trust a website, consider these questions: &lt;ul&gt;&lt;li&gt;Are you visiting a secure site?&lt;/li&gt;&lt;li&gt;Is the website certified by an Internet trust organization?&lt;/li&gt;&lt;li&gt;Is the website owned by a company or organization that you know well?&lt;/li&gt;&lt;li&gt;Does the website ask you for personal information?&lt;/li&gt;&lt;li&gt;On a retail website, is there a way to contact someone by phone or mail?&lt;/li&gt;&lt;li&gt;If you don't recognize the site, do you have other information to help you decide?&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;According to &lt;a href="http://windowshelp.microsoft.com/Windows/en-US/Help/dfe83943-3394-48fb-8a4b-406f0b479c331033.mspx"&gt;Microsoft&lt;/a&gt; a website might not be trustworthy if: &lt;ul&gt;&lt;li&gt;The site is referred to you through an e‑mail message from someone you don't know.&lt;/li&gt;&lt;li&gt;The site offers objectionable content, such as pornography or illegal materials.&lt;/li&gt;&lt;li&gt;The site makes offers that seem too good to be true, indicating a possible scam or the sale of illegal or pirated products.&lt;/li&gt;&lt;li&gt;You are lured to the site by a bait and switch scheme, in which the product or service is not what you were expecting.&lt;/li&gt;&lt;li&gt;You are asked for a credit card as a verification of identity or for personal information that does not seem necessary.&lt;/li&gt;&lt;li&gt;You are asked to provide a credit card number without proof that the transaction is secure.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;li&gt;Visit 10 e-commerce websites. How many mention security on their home page? Is privacy mentioned? How many of them belong to the TRUSTe association?&lt;/li&gt;
&lt;li&gt;Visit the Verisign web site - what solutions does it offer for e-commerce?&lt;/li&gt;
&lt;blockquote&gt;&lt;a href="http://www.verisign.com.au/ssl-certificates/e-commerce-security/"&gt;Verisign&lt;/a&gt; provides SSL Certificates and other security services. Their site mentions 2 related products and services. &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.verisign.com.au/ssl/buy-ssl-certificates/secure-site-services/index.html"&gt;Secure Site SSL Services&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.verisign.com.au/ssl/secured-seal/"&gt;Verisign Secured Seal&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;li&gt;Visit your e-mail or WWW browser provider site and search for security. What technologies does your particular product support?&lt;/li&gt;
I took the following screen shot of the Bigpond Security information page. I guess that they are primarily Windows based. I make this statement based upon the Windows Only stipulation on the Bigpond Security trial.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/SktMHCF5xWI/AAAAAAAAAFY/Cn4HAoWE7Ks/s1600-h/Exercise16.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 398px; height: 400px;" src="http://3.bp.blogspot.com/_JS00SNKPHSk/SktMHCF5xWI/AAAAAAAAAFY/Cn4HAoWE7Ks/s400/Exercise16.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5353456265764390242" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;li&gt;Visit the TRUSTe web site. Describe what services and solutions are offered.&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://www.truste.org/about/our_services.php"&gt;TRUSTe&lt;/a&gt; provides services to alleviate privacy concerns relating to company communications, by ensuring that those communications align with privacy standards.&lt;/p&gt;&lt;p&gt;The TRUSTe motto of "Their Privacy Is Your Business" identifies the goal of Building Customer Trust to ensure future Revenue.&lt;/p&gt;&lt;/blockquote&gt;&lt;li&gt;Get the latest PGP software from &lt;a href="http://web.mit.edu/network/pgp.html"&gt;http://web.mit.edu/network/pgp.html&lt;/a&gt;; install it on two machines and encrypt a message on one machine and decrypt it on the other.&lt;/li&gt;
&lt;li&gt;The use of digital certificates and passports are just two examples of many tools for validating legitimate users and avoiding consequences such as identity theft. What others exist?&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;Other methods of user validation include biometric authentication (fingerprints, palm prints, voice analysis, iris scans etc) and handheld password tokens.(&lt;a href="http://www.cromwell-intl.com/security/security-authentication.html"&gt;Authentication Tools&lt;/a&gt;) &lt;/p&gt;&lt;/blockquote&gt;&lt;/ol&gt;
&lt;strong&gt;References&lt;/strong&gt;
Authentication Tools. Retrieved 1 July 2009, from &lt;a href="http://www.cromwell-intl.com/security/security-authentication.html"&gt;http://www.cromwell-intl.com/security/security-authentication.html&lt;/a&gt;
ISACA. e-Commerce Security - A Global Status Report. Retrieved 1 July 2009, from &lt;a href="http://www.isaca.org/Template.cfm?Section=Deliverables&amp;amp;Template=/ContentManagement/ContentDisplay.cfm&amp;amp;ContentID=8547"&gt;http://www.isaca.org/Template.cfm?Section=Deliverables&amp;amp;Template=/ContentManagement/ContentDisplay.cfm&amp;amp;ContentID=8547&lt;/a&gt;
Microsoft. When to trust a website. Retrieved 1 July 2009, from &lt;a href="http://windowshelp.microsoft.com/Windows/en-US/Help/dfe83943-3394-48fb-8a4b-406f0b479c331033.mspx"&gt;http://windowshelp.microsoft.com/Windows/en-US/Help/dfe83943-3394-48fb-8a4b-406f0b479c331033.mspx&lt;/a&gt;
TRUSTe. Privacy Is Everyone's Business. Retrieved 1 July 2009, from &lt;a href="http://www.truste.org/about/our_services.php"&gt;http://www.truste.org/about/our_services.php&lt;/a&gt;
Verisign. E-Commerce Security: What Is It? Retrieved 30 June 2009, from &lt;a href="http://www.verisign.com.au/ssl-certificates/e-commerce-security/"&gt;http://www.verisign.com.au/ssl-certificates/e-commerce-security/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-1484216924829378166?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/1484216924829378166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-16-authentication-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1484216924829378166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1484216924829378166'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-16-authentication-and.html' title='Exercise 16: Authentication and Encryption systems'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JS00SNKPHSk/SktMHCF5xWI/AAAAAAAAAFY/Cn4HAoWE7Ks/s72-c/Exercise16.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-2717013158140031598</id><published>2009-06-23T20:53:00.006+10:00</published><updated>2009-07-21T14:06:23.231+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 15'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic 07'/><title type='text'>Exercise 15: Review questions</title><content type='html'>&lt;ol&gt;&lt;li&gt;Can a simple firewall be designed from standard computer equipment? &lt;blockquote&gt;&lt;p&gt;(&lt;a href="http://en.wikipedia.org/wiki/Firewall_(networking)"&gt;Wikipedia&lt;/a&gt;) A firewall is a dedicated appliance, or software running on a computer, which inspects network traffic passing through it, and denies or permits passage based on a set of rules.&lt;/p&gt;&lt;p&gt;It is a software or hardware that is normally placed between a protected network and a not protected network and acts like a gate to protect assets to ensure that nothing private goes out and nothing malicious comes in.&lt;/p&gt;&lt;p&gt;A firewall's basic task is to regulate some of the flow of traffic between computer networks of different trust levels. Typical examples are the Internet which is a zone with no trust and an internal network which is a zone of higher trust. A zone with an intermediate trust level, situated between the Internet and a trusted internal network, is often referred to as a "perimeter network" or Demilitarized zone (DMZ).&lt;/p&gt;&lt;p&gt;There are several types of firewall technigues: &lt;ul&gt;&lt;li&gt;Packet Filter - looks at each packet entering or leaving a network and accepts or rejects it based upon user defined rules.&lt;/li&gt;&lt;li&gt;Application Gateway - Applies security mechanisms to specific applications. These can impose a performance degradation.&lt;/li&gt;&lt;li&gt;Circuit-level gateway - Applies security mechanisms to a TCP or UDP connection.&lt;/li&gt;&lt;li&gt;Proxy Server - intercepts all messages entering and leaving network. Effectively hides true network addresses.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;li&gt;What hardware components would you need for a proxy server?&lt;/li&gt;&lt;blockquote&gt;Strictly speaking no hardware components are required explicitly for a proxy server. This is because the functions of proxy, firewall, and caching can be in separate server programs or combined in a single package. Different server programs can be in different computers. For example, a proxy server may in the same machine with a firewall server or it may be on a separate server and forward requests through the firewall.(&lt;a href="http://whatis.techtarget.com/definition/0,,sid9_gci212840,00.html"&gt;Whatis.com&lt;/a&gt;) &lt;/blockquote&gt;&lt;li&gt;What makes a firewall a good security investment? Accessing the Internet, find two or three firewall vendors. Do they provide hardware, software or both?&lt;/li&gt;&lt;blockquote&gt;As identified above a firewall acts like a gate to protect assets to ensure that nothing private goes out and nothing malicious comes in.&lt;/blockquote&gt;&lt;p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.adtran.com/"&gt;Adtran&lt;/a&gt;'s NetVanta line provides varying levels of network firewall protection based on the enterprise client's security needs. The hardware-based solution provides corporate protection, including VPN and regulatory compliance, for on-site and remote employees.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.checkpoint.com/index.html"&gt;Check Point&lt;/a&gt;'s line of network firewalls includes Power-1 Appliances for large data centers, VPN product lines and UTM appliances. Its line of Integrated Appliance Solutions provides integrated software and hardware solutions for customized firewall protection&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cisco.com/en/US/hmpgs/index.html"&gt;Cisco&lt;/a&gt;'s firewall offerings are designed to work with only Cisco networks and include the hardware-based ASA 5500, router and switch firewalls such as the Cisco Firewall Services Module and the software-based Cisco IOS&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt; &lt;li&gt;Accessing a firewall vendor site, find out what solutions are offered:
&lt;a href="http://www.checkpoint.com/"&gt;http://www.checkpoint.com&lt;/a&gt;&lt;p&gt;Solutions are provided for&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.zonealarm.com/security/en-au/home.htm?lid=en-au"&gt;Home and Home Office&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.checkpoint.com/products/smallbusiness/index.html"&gt;Small &amp; Mid-sized Business&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.checkpoint.com/products/index.html"&gt;Enterprise&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.checkpoint.com/products/industries/government/index.html"&gt;Government&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.checkpoint.com/solutions/compliance/index.html"&gt;Compliance&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
&lt;a href="http://www.microsoft.com/catalog/display.asp?subid=22&amp;amp;site=10538&amp;amp;x=44&amp;amp;y=21"&gt;http://www.microsoft.com/catalog/display.asp?subid=22&amp;amp;site=10538&amp;amp;x=44&amp;amp;y=21&lt;/a&gt;&lt;blockquote&gt;This URL is broken.&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;Does the company you work for (or the school you attend) utilise a proxy server for Internet access? Is the proxy server intended to keep hackers out of the network, or control employees’ access to the Internet?&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;Yes, firewall used to keep hackers out.&lt;/p&gt;&lt;p&gt;We are using content filtering  with a product called surf control to restrict internet content.&lt;/p&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Find out if your university or workplace has a backup policy in place. Is it followed and enforced?&lt;/p&gt;&lt;blockquote&gt;My workplace does enforce a backup policy. Full cyclic backups are done on a nightly and weekly basis. Monthly backups are kept for 12 months.&lt;/blockquote&gt;&lt;li&gt;Most of the antivirus software perform an active scanning of the user activity on the Internet, detecting downloads and attachments in e-mails. Hackers have readily available resources to create new viruses. How easy is it to find a virus writing kit? Search the Internet and find such a tool. For example, see what you can find at &lt;a href="http://vx.netlux.org/dat/vct.shtml"&gt;http://vx.netlux.org/dat/vct.shtml&lt;/a&gt;&lt;/li&gt;&lt;blockquote&gt;This website produced a list of 195 virus creation tools.&lt;/blockquote&gt;
&lt;li&gt;Download a virus checker and read the documentation.&lt;/li&gt;&lt;blockquote&gt;I have &lt;a href="http://free.avg.com/"&gt;AVG free&lt;/a&gt; installed on all my computers at home. Work uses Symantec Corporate edition.&lt;/blockquote&gt;&lt;li&gt;How does it operate?&lt;/li&gt;&lt;blockquote&gt;x&lt;/blockquote&gt;&lt;li&gt;What is the process of updating the virus signature file?&lt;/li&gt;&lt;blockquote&gt;Using the software tool provided.&lt;/blockquote&gt;&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/Skn6dyIKdzI/AAAAAAAAAFQ/K998Vu0ohHA/s1600-h/Exercise15.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5353085021685708594" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 292px" alt="" src="http://1.bp.blogspot.com/_JS00SNKPHSk/Skn6dyIKdzI/AAAAAAAAAFQ/K998Vu0ohHA/s400/Exercise15.JPG" border="0" /&gt;&lt;/a&gt;

&lt;li&gt;How does the publisher charge for the product/service?&lt;/li&gt;&lt;blockquote&gt;Currently there are a purported 80 million users of AVG Free. &lt;a href="http://free.avg.com/"&gt;AVG&lt;/a&gt; does provide a subscription model that is more fully featured.&lt;/blockquote&gt;&lt;/ol&gt;
&lt;strong&gt;References&lt;/strong&gt;
AVG. Retrieved 30 June 2009, from &lt;a href="http://free.avg.com/"&gt;http://free.avg.com/&lt;/a&gt;&lt;br/&gt;
SearchSecurityChannel.com. Partner Program Directory. Retrieved 20 July 2009, from &lt;a href="http://searchsecuritychannel.techtarget.com/generic/0,295582,sid97_gci1316089,00.html"&gt;http://searchsecuritychannel.techtarget.com/generic/0,295582,sid97_gci1316089,00.html&lt;/a&gt;&lt;br/&gt;
Wikipedia. Firewall. Retrieved 30 June 2009, from &lt;a href="http://en.wikipedia.org/wiki/Firewall_(networking)"&gt;http://en.wikipedia.org/wiki/Firewall_(networking)&lt;/a&gt;&lt;br/&gt;
Whatis.com. proxy server. Retrieved 30 June 2009, from &lt;a href="http://whatis.techtarget.com/definition/0,,sid9_gci212840,00.html"&gt;http://whatis.techtarget.com/definition/0,,sid9_gci212840,00.html&lt;/a&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-2717013158140031598?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/2717013158140031598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-15-review-questions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2717013158140031598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2717013158140031598'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-15-review-questions.html' title='Exercise 15: Review questions'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JS00SNKPHSk/Skn6dyIKdzI/AAAAAAAAAFQ/K998Vu0ohHA/s72-c/Exercise15.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-1134660895628280679</id><published>2009-06-23T20:52:00.003+10:00</published><updated>2009-06-26T21:21:02.833+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 14'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic 07'/><title type='text'>Exercise 14: Electronic payments and security II</title><content type='html'>&lt;ol&gt;&lt;li&gt;You can learn more about Cookies at: &lt;a href="http://home.netscape.com/newsref/std/cookie_spec.html"&gt;http://home.netscape.com/newsref/std/cookie_spec.html&lt;/a&gt;&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;Unfortunately this URL is a little out of date. But the 404 message below is very nice.&lt;br/&gt;&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/SkSuBGmFXQI/AAAAAAAAAEo/vRDzv-RL3HM/s1600-h/404Error.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/SkSuBGmFXQI/AAAAAAAAAEo/vRDzv-RL3HM/s400/404Error.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5351593591196441858" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;li&gt;You can learn more about electronic payment systems with Reading 9 on Electronic Reserve on the CSU Library Service Web site at: http://www.csu.edu.au/division/library/eservices/ereserve.htm
The article is by Schneider, P &amp; Perry, JT 2001, ‘Electronic payment systems’, Chapter 7, in Electronic Commerce, Course Technology, Boston.&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;As we have been informed before by Ken, we can ignore the readings. Consequently there is nothing to do here.&lt;/p&gt;&lt;/blockquote&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-1134660895628280679?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/1134660895628280679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-14-electronic-payments-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1134660895628280679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1134660895628280679'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-14-electronic-payments-and.html' title='Exercise 14: Electronic payments and security II'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JS00SNKPHSk/SkSuBGmFXQI/AAAAAAAAAEo/vRDzv-RL3HM/s72-c/404Error.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-7111647012972766452</id><published>2009-06-23T20:48:00.006+10:00</published><updated>2009-06-30T20:33:17.682+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 13'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic 07'/><title type='text'>Exercise 13: Electronic payments and security I</title><content type='html'>&lt;ol&gt;&lt;li&gt;List and describe your experiences with a secure Web site. Begin by defining some security issues in Reading 8. Some examples may be:&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;University enrolment;&lt;/li&gt;
&lt;li&gt;online banking, auctions, real estate;&lt;/li&gt;
&lt;li&gt;booking a cheap air ticket or concert ticket;&lt;/li&gt;
&lt;li&gt;shopping online for a book, software or a CD.&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;What is SET and how does it compare to SSL as a platform for secure electronic transaction? Is SET in common use?&lt;/li&gt;&lt;blockquote&gt;According to (&lt;a href="http://www.ellinogermaniki.gr/ep/agroweb/htmls/lessons/commerce1/423.htm"&gt;AGROWEB&lt;/a&gt;) SET (Secure Electronic Transaction) is a system for ensuring the security of financial transactions on the Internet. It was supported initially by Mastercard, Visa, Microsoft, Netscape, and others. With SET, a user is given an electronic wallet (digital certificate) and a transaction is conducted and verified using a combination of digital certificates and digital signatures among the purchaser, a merchant, and the purchaser's bank in a way that ensures privacy and confidentiality. &lt;br/&gt;&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/SkSxi5kWGUI/AAAAAAAAAEw/wQoH3vWL0TY/s1600-h/SETdefinition.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 277px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/SkSxi5kWGUI/AAAAAAAAAEw/wQoH3vWL0TY/s400/SETdefinition.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5351597470349924674" /&gt;&lt;/a&gt;&lt;p&gt;(&lt;a href="http://en.wikipedia.org/wiki/Secure_electronic_transaction"&gt;Wikipedia&lt;/a&gt;) further confirms that SET &lt;strong&gt;was&lt;/strong&gt; a standard protocol for securing credit card transactions over insecure networks, specifically, the Internet.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.visa-asia.com/ap/au/merchants/productstech/vbv_implementvbv_faq.shtml"&gt;Visa&lt;/a&gt; looks like it may have replaced SET with a new protection method called Verified by Visa. They state that Secure Sockets Layer (SSL) securely encrypts the information that is being sent over the Internet. Verified by Visa uses SSL to securely transmit data, but also adds another very important layer of protection by confirming the identity of the Visa cardholder during the transaction. This authentication process creates a virtual card present environment. It is this important additional function that enables Visa card issuers to provide your business with guaranteed payment for the most common types of internet disputes.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/ol&gt;
&lt;strong&gt;References&lt;/strong&gt;&lt;br/&gt;
AGROWEB eCommerce Training Material. Retrieved 26 June 2009, From &lt;a href="http://www.ellinogermaniki.gr/ep/agroweb/htmls/lessons/commerce1/423.htm"&gt;http://www.ellinogermaniki.gr/ep/agroweb/htmls/lessons/commerce1/423.htm&lt;/a&gt;&lt;br/&gt;
Visa. Verified By Visa. Retrieved 26 June 2009, from &lt;a href="http://www.visa-asia.com/ap/au/merchants/productstech/vbv_implementvbv_faq.shtml"&gt;http://www.visa-asia.com/ap/au/merchants/productstech/vbv_implementvbv_faq.shtml&lt;/a&gt;&lt;br/&gt;
Wikipedia. Secure Electronic Transaction. Retrieved 26 June 2009, from &lt;a href="http://en.wikipedia.org/wiki/Secure_electronic_transaction"&gt;http://en.wikipedia.org/wiki/Secure_electronic_transaction&lt;/a&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-7111647012972766452?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/7111647012972766452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-13-electronic-payments-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7111647012972766452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7111647012972766452'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-13-electronic-payments-and.html' title='Exercise 13: Electronic payments and security I'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JS00SNKPHSk/SkSxi5kWGUI/AAAAAAAAAEw/wQoH3vWL0TY/s72-c/SETdefinition.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-2898934541621231009</id><published>2009-06-21T13:16:00.004+10:00</published><updated>2009-06-21T14:18:50.458+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Elevator Pitch 1'/><title type='text'>Evaluation Report</title><content type='html'>&lt;p&gt;My elevator pitch is contained at &lt;a href="http://www.archive.org/download/ElevatorPitch1/ElevatorPitch1.wma"&gt;Elevator Pitch 1&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;the transcript of the report is as follows:
&lt;blockquote&gt;&lt;p&gt;Hello this is Grant Lavers.&lt;/p&gt;&lt;p&gt;Developing an online business application is analogous to baking a cake.&lt;/p&gt;&lt;p&gt;First you need a recipe. In our case we need to understand the users and consumers of our business model and our objective, is it Business to Consumer, Business to Business, or maybe even Consumer to Consumer.&lt;/p&gt;&lt;p&gt;Secondly, we need to gather the ingredients to make our cake. In the Web 2 world this means looking at the communication protocols, data storage requirements, programming languages, and delivery mechanisms that will mix together to create our application.&lt;/p&gt;&lt;p&gt;
Thirdly we need to bake the cake. In the case of ITC565 this means looking at the Ruby on Rails development environment, which implements the Model View Controller design pattern and pushes the Convention over Configuration mantra.&lt;/p&gt;&lt;p&gt;
The proof of a cake is in the eating. This will happen over the coming weeks, but it looks good so far.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Unbeknown to me at the time, the most difficult thing about doing the elevator pitch, was actually working out how to post it to the blog. I wrongly assumed that posting audio would be the same as posting video. Well i know better now. I have used the free hosting site &lt;a href="www.archive.org"&gt;www.archive.org&lt;/a&gt; to host the audio file. Maybe someone else can suggest a better alternative for the future.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-2898934541621231009?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/2898934541621231009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/evaluation-report.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2898934541621231009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2898934541621231009'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/evaluation-report.html' title='Evaluation Report'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-1173677131556514384</id><published>2009-06-18T22:06:00.002+10:00</published><updated>2009-06-18T22:13:05.579+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Observations'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 3'/><title type='text'>Workshop 3: Follow Up</title><content type='html'>&lt;p&gt;I persevered with my OTBS application today, and got the style sheets incorporated into the application. So it now looks nice. Am using the same style sheets as the LearningWebApps screen casts did.&lt;/p&gt;&lt;p&gt;Unfortunately I have just hibernated my Virtual Machine and it takes to long to bring back up, so no pictures of the current version for now.&lt;/p&gt;&lt;p&gt;I was reading Workshops 5-8 this morning and got a little concerned that the flow of the workshops doesn't seem quite right. Workshops 1-4 have been about setting up the ruby environment and having it talk to MySQL. Workshop 3 had us build the model using the scaffold which effectively built a working model (minus the niceties). Workshop 5 then seems to go back to the beginning and holds your hand as you build the application. It seems like it would have been beneficial to read all 8 workshops before starting so that we didn't bumble our way through setting up an application.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-1173677131556514384?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/1173677131556514384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-3-follow-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1173677131556514384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1173677131556514384'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-3-follow-up.html' title='Workshop 3: Follow Up'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-388127345255994050</id><published>2009-06-18T21:41:00.004+10:00</published><updated>2009-06-18T22:05:17.061+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 4'/><category scheme='http://www.blogger.com/atom/ns#' term='Observations'/><title type='text'>Workshop 4: Puzzled</title><content type='html'>&lt;p&gt;Have been going through the exercises for workshop 4 and am a little puzzled as to what is supposed to be happening with the adding values to the list. I get the list returned and nothing seems to have happened. (I think I just had an epiphany as I was writing this sentence.) It dawned on me that you need to specify the variable that you want to see. So you will see in the Image below that I have specified the value and got the expected result.&lt;/p&gt;
&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/SjopT1igLmI/AAAAAAAAAEg/JBdZKt9S4vQ/s1600-h/Workshop4Q2.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 297px; height: 400px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/SjopT1igLmI/AAAAAAAAAEg/JBdZKt9S4vQ/s400/Workshop4Q2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5348632928221933154" /&gt;&lt;/a&gt;&lt;br/&gt;
&lt;p&gt;So the title above neesd to be changed to &lt;strong&gt;no longer puzzled&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I have looked at the challenge problems, and reviewed the code that Ken supplied. The exercises are relatively trivial and dont really provide much in the way of learning about Business Applications Development. Consequently I will not be spending time coding them.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-388127345255994050?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/388127345255994050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-4-puzzled.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/388127345255994050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/388127345255994050'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-4-puzzled.html' title='Workshop 4: Puzzled'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JS00SNKPHSk/SjopT1igLmI/AAAAAAAAAEg/JBdZKt9S4vQ/s72-c/Workshop4Q2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-2069202596556586007</id><published>2009-06-17T21:58:00.002+10:00</published><updated>2009-06-17T22:01:57.792+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Observations'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 3'/><title type='text'>Workshop 3: Link issues</title><content type='html'>Just going through the workshop document again and decided I would try to look at the screencast for migrating a prototype to a production site. Unfortunately the link to &lt;a href="http://www.mysql.com/products/tools/migration-toolkit/tutorials/migrate-sql-server.html"&gt;http://www.mysql.com/products/tools/migration-toolkit/tutorials/migrate-sql-server.html&lt;/a&gt; gets redirected to &lt;a href="http://dev.mysql.com/downloads/gui-tools/5.0.html"&gt;http://dev.mysql.com/downloads/gui-tools/5.0.html&lt;/a&gt; which although probably very useful, not what I wanted to see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-2069202596556586007?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/2069202596556586007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-3-link-issues.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2069202596556586007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2069202596556586007'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-3-link-issues.html' title='Workshop 3: Link issues'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-3210503427963306568</id><published>2009-06-16T21:57:00.003+10:00</published><updated>2009-06-16T22:03:23.873+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 3'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Ruby'/><title type='text'>Workshop 3: Building the model</title><content type='html'>&lt;p&gt;The model has been built. Very ugly and definitely needs revision. But its a start.&lt;/p&gt;
&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/SjeI_ypif6I/AAAAAAAAAEY/v21qHreBzig/s1600-h/Workshop3Model.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 83px;" src="http://3.bp.blogspot.com/_JS00SNKPHSk/SjeI_ypif6I/AAAAAAAAAEY/v21qHreBzig/s400/Workshop3Model.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5347893712034889634" /&gt;&lt;/a&gt;&lt;p&gt;This took a few iterations to get it to work. I started out with only a few fields in my model. Fell into a hole when, after having got that to work, I tried to add the remaining fields.&lt;/p&gt;&lt;p&gt;Still to do with this:&lt;ul&gt;&lt;li&gt;add look up values for passenger count, taxi-type, and building&lt;/li&gt;&lt;li&gt;get the site to look nice&lt;/li&gt;&lt;li&gt;lots more little things&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-3210503427963306568?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/3210503427963306568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-3-building-model.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3210503427963306568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3210503427963306568'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-3-building-model.html' title='Workshop 3: Building the model'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JS00SNKPHSk/SjeI_ypif6I/AAAAAAAAAEY/v21qHreBzig/s72-c/Workshop3Model.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-3179111739476693350</id><published>2009-06-16T20:41:00.004+10:00</published><updated>2009-06-16T20:56:03.776+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Observations'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 3'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Ruby'/><title type='text'>Workshop 3: Much rejoicing</title><content type='html'>&lt;p&gt;There is much rejoicing happening because I have just gotten MySQL to play nice with ruby.&lt;/p&gt;&lt;p&gt;I had been getting authentication issues, which resolved themselves by explicitly stating the localhost IP address (127.0.0.1) instead of using localhost in the database.yaml.&lt;/p&gt;&lt;p&gt;Additionally I had been getting the following error when trying to run the migration (rake db:migrate)&lt;br/&gt;

&lt;blockquote&gt;rake aborted!
undefined method `each' for #&lt;mysql:0x3f865bc&gt;&lt;/blockquote&gt;
&lt;p&gt;It turns out that MySQL 5.1 doesn't play nicely with Ruby and so the solution is to download an older copy of the MySQL client library. This link &lt;a href="http://forums.aptana.com/viewtopic.php?f=20&amp;amp;t=7563&amp;amp;p=27407&amp;amp;hilit=libmysql.dll#p27407"&gt;Aptana forum&lt;/a&gt; solved the problem.&lt;/p&gt;
&lt;p&gt;So I now get:&lt;/p&gt;

&lt;blockquote&gt;&gt;rake db:migrate&lt;br/&gt;rake db:migrate&lt;br/&gt;
(in C:/Documents and Settings/Grant/My Documents/Aptana Studio/OnlineTaxiBookingScheme)&lt;br/&gt;
== CreatePassengers: migrating ===============================================&lt;br/&gt;
-- create_table(:passengers)&lt;br/&gt;
-&gt; 0.0300s&lt;br/&gt;
== CreatePassengers: migrated (0.0300s) ======================================&lt;br/&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-3179111739476693350?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/3179111739476693350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-3-much-rejoicing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3179111739476693350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3179111739476693350'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/workshop-3-much-rejoicing.html' title='Workshop 3: Much rejoicing'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-1242317996084806197</id><published>2009-06-11T20:24:00.001+10:00</published><updated>2009-06-23T21:28:18.568+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 04'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Observations'/><category scheme='http://www.blogger.com/atom/ns#' term='Rants'/><title type='text'>Exercise 10: Posting shenanigans</title><content type='html'>I just don't understand blogger sometimes.

I had published the blog (Answers 1-6) and the tables were all over the shop. I have just done a cut and paste of the same code, and republished. Amazingly the result looks like it was supposed to.

There could be something in that I used Windows live writer in this instance to re-publish, whereas I used blogger to post originally.

Unfortunately, if you had been following my blog, then you would have known that i experienced the exact opposite scenario earlier on in the journey. Those blogs (Karen posted comments) may no longer exist, as it was very much a learning curve in the early days, and reorganisation of the material was in order.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-1242317996084806197?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/1242317996084806197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-10-posting-shenanigans.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1242317996084806197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1242317996084806197'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-10-posting-shenanigans.html' title='Exercise 10: Posting shenanigans'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-2163897838743670373</id><published>2009-06-10T20:21:00.004+10:00</published><updated>2009-06-23T21:28:55.077+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 05'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 11'/><title type='text'>Exercise 11: Answer</title><content type='html'>&lt;ol&gt;   &lt;br /&gt;&lt;strong&gt;     &lt;li&gt;Conduct research on the Internet to find out what tools can be used to parse an XML document and ensure that the document is well formed and valid.&lt;/strong&gt;        &lt;br /&gt;        &lt;br /&gt;        &lt;blockquote&gt;The &lt;a href="http://www.w3.org/XML/"&gt;W3C&lt;/a&gt; website links to the following &lt;a href="http://www.google.com/search?q=XML+parser"&gt;•parsers (both proprietary and open source)&lt;/a&gt;           &lt;br /&gt;          &lt;br /&gt;          &lt;p&gt;This provides links to sites for &lt;/p&gt;          &lt;ul&gt;           &lt;li&gt;&lt;a href="www.w3schools.com/Xml/xml_parser.asp"&gt;w3Schools - Javascript&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://search.cpan.org/~msergeant/XML-Parser-2.36/Parser.pm"&gt;CPan - Perl&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4a3ad088-a893-4f0b-a932-5e024e74519f&amp;amp;displaylang=en"&gt;Microsoft - MSXML&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://xerces.apache.org/xerces2-j/"&gt;Apache - Xerces2&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://au.php.net/xml"&gt;php&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;and many, many more. &lt;/li&gt;         &lt;/ul&gt;          &lt;p&gt;Not all of these tools will actually validate the document. It is a case of choosing the tool that is most relevant to the task you are using it for. &lt;/p&gt;       &lt;/blockquote&gt;     &lt;/li&gt;      &lt;li&gt;&lt;strong&gt;XML schema is a forthcoming development of the technology. Visit the W3C website and search for information on schema. What are the benefits of adopting a schema standardized for a business sector? &lt;/strong&gt;       &lt;br /&gt;        &lt;br /&gt;        &lt;blockquote&gt;XML Schema is a language for providing and restricting the structure and content of elements contained within XML documents (&lt;a href="http://en.wikipedia.org/wiki/Semantic_Web"&gt;Wikipedia&lt;/a&gt;)&lt;/blockquote&gt;        &lt;blockquote&gt;Adopting a schema standardized for a business sector will reduce the impacts caused by the prevalence of competing standards. Additionally it will reduce the burdens imposed on business by having to cater for multiple standards in their publication and/or consumption of web services.(zur Muehlen et al., 2005, p. 28)&lt;/blockquote&gt;     &lt;/li&gt;      &lt;li&gt;&lt;strong&gt;What are DOMs and why were they developed? &lt;/strong&gt;       &lt;br /&gt;        &lt;br /&gt;        &lt;blockquote&gt;(&lt;a href="http://en.wikipedia.org/wiki/XML_parser"&gt;Wikipedia&lt;/a&gt;)DOM (Document Object Model) is an interface-oriented Application Programming Interface that allows for navigation of the entire document as if it were a tree of &amp;quot;Node&amp;quot; objects representing the document's contents. A DOM document can be created by a parser, or can be generated manually by users (with limitations). &lt;/blockquote&gt;        &lt;blockquote&gt;(&lt;a href="http://en.wikipedia.org/wiki/Document_Object_Model"&gt;Wikipedia&lt;/a&gt;)The Document Object Model (DOM) is a cross-platform and language-independent convention for representing and interacting with objects in HTML, XHTML and XML documents.&lt;/blockquote&gt;     &lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Why are some developers using SAX instead of DOM for document processing? &lt;/strong&gt;       &lt;br /&gt;        &lt;br /&gt;        &lt;blockquote&gt;(&lt;a href="http://en.wikipedia.org/wiki/XML_parser"&gt;Wikipedia&lt;/a&gt;)SAX is a lexical, event-driven interface in which a document is read serially and its contents are reported as &amp;quot;callbacks&amp;quot; to various methods on a handler object of the user's design. SAX is fast and efficient to implement, but difficult to use for extracting information at random from the XML, since it tends to burden the application author with keeping track of what part of the document is being processed. It is better suited to situations in which certain types of information are always handled the same way, no matter where they occur in the document.&lt;/blockquote&gt;        &lt;blockquote&gt;(&lt;a href="http://en.wikipedia.org/wiki/Document_Object_Model"&gt;Wikipedia&lt;/a&gt;)DOM is likely to be best suited for applications where the document must be accessed repeatedly or out of sequence order. If the application is strictly sequential and one-pass, the SAX model is likely to be faster and use less memory.&lt;/blockquote&gt;       &lt;strong&gt;&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;SMIL is an application of XML. What is the purpose of this technology? Where does it apply? &lt;/strong&gt;       &lt;br /&gt;        &lt;br /&gt;        &lt;blockquote&gt;(&lt;a href="http://www.w3.org/AudioVideo/"&gt;W3C&lt;/a&gt;)The Synchronized Multimedia Integration Language (SMIL, pronounced &amp;quot;smile&amp;quot;) enables simple authoring of interactive audiovisual presentations. SMIL is typically used for &amp;quot;rich media&amp;quot;/multimedia presentations which integrate streaming audio and video with images, text or any other media type. &lt;/blockquote&gt;        &lt;blockquote&gt;(&lt;a href="http://smw.internet.com/smil/smilhome.html"&gt;Streaming Media World&lt;/a&gt;)SMIL was created specifically to solve the problems of coordinating the display of a variety of media (multimedia) on Web sites. By using a single time line for all of the media on a page their display can be properly time coordinated and synchronized.&lt;/blockquote&gt;       &lt;strong&gt;&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;The current recommendation of W3C is to use XHTML as an alternative to HTML.&lt;/strong&gt;        &lt;br /&gt;        &lt;br /&gt;        &lt;blockquote&gt;It would be nice to see the source of this recommendation. I cant say that I disagree with the sentiment.&lt;/blockquote&gt;     &lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Do you think adopting XHTML is a wise move?&lt;/strong&gt;        &lt;br /&gt;        &lt;blockquote&gt;The simple answer is YES.&lt;/blockquote&gt;  &lt;blockquote&gt;Since HTML's inception, there has been rapid invention of new elements for use within HTML (as a standard) and for adapting HTML to vertical, highly specialized, markets. This plethora of new elements has led to interoperability problems for documents across different platforms.(&lt;a href="http://www.w3.org/TR/xhtml1/"&gt;W3C&lt;/a&gt;)&lt;/blockquote&gt;  &lt;blockquote&gt;XHTML is a family of current and future document types and modules that reproduce, subset, and extend HTML 4.    &lt;br /&gt;The XHTML family is the next step in the evolution of the Internet. By migrating to XHTML today, content developers can enter the XML world with all of its attendant benefits, while still remaining confident in their content's backward and future compatibility.(&lt;a href="http://www.w3.org/TR/xhtml1/"&gt;W3C&lt;/a&gt;)&lt;/blockquote&gt; &lt;/li&gt; &lt;/ol&gt; &lt;br /&gt;&lt;strong&gt;References&lt;/strong&gt;   &lt;br /&gt;  &lt;br /&gt;Streaming Media World. SMIL. Retrieved 10 June 2009, from &lt;a href="http://smw.internet.com/smil/smilhome.html"&gt;http://smw.internet.com/smil/smilhome.html&lt;/a&gt;   &lt;br /&gt;W3C. XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition). Retrieved 10 June 2009, from &lt;a href="http://www.w3.org/TR/xhtml1/"&gt;http://www.w3.org/TR/xhtml1/&lt;/a&gt;   &lt;br /&gt;W3C. Synchronized Multimedia. Retrieved 10 June 2009, from &lt;a href="http://www.w3.org/AudioVideo/"&gt;http://www.w3.org/AudioVideo/&lt;/a&gt;   &lt;br /&gt;Wikipedia. Document Object Model. Retrieved 10 June 2009, from &lt;a href="http://en.wikipedia.org/wiki/Document_Object_Model"&gt;http://en.wikipedia.org/wiki/Document_Object_Model&lt;/a&gt;   &lt;br /&gt;Wikipedia. Semantic Web. Retrieved 10 June 2009, from &lt;a href="http://en.wikipedia.org/wiki/Semantic_Web"&gt;http://en.wikipedia.org/wiki/Semantic_Web&lt;/a&gt;   &lt;br /&gt;Wikipedia. XML. Retrieved 10 June 2009, from &lt;a href="http://en.wikipedia.org/wiki/XML_parser"&gt;http://en.wikipedia.org/wiki/XML_parser&lt;/a&gt;   &lt;br /&gt;zur Muehlen, M., Nickerson, J. V., &amp;amp; Swenson, K. D. (2005). Developing web services choreography standards—the case of REST vs. SOAP. Decision Support Systems, 40(1), 9-29.&lt;a href="http://search.cpan.org/~msergeant/XML-Parser-2.36/Parser.pm"&gt;&lt;/a&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-2163897838743670373?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/2163897838743670373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-11-answer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2163897838743670373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2163897838743670373'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-11-answer.html' title='Exercise 11: Answer'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-4271936985678754891</id><published>2009-06-07T16:45:00.010+10:00</published><updated>2009-06-23T21:28:18.568+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 04'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 10'/><title type='text'>Exercise 10:Answers 7-12</title><content type='html'>&lt;ol start="7"&gt;
&lt;strong&gt;&lt;li&gt;What are the differences between HTML and
DHTML?&lt;/strong&gt;
&lt;blockquote&gt;&lt;p&gt;
DHTML: Dynamic HTML. An extension of HTML that enables, among other things, the inclusion of small animations and dynamic menus in Web pages. DHTML code makes use of style sheets and JavaScript.&lt;/p&gt;&lt;p&gt;DHTML sites are dynamic in nature. DHTML uses client side scripting to change variables in the presentation which affects the look and function of an otherwise static page. DHTML characteristics are the functions while a page is viewed, rather than generating a unique page with each page load (a dynamic website).&lt;/p&gt;&lt;p&gt;On the other hand, HTML is static. HTML sites relies solely upon client-side technologies. This means the pages of the site do not require any special processing from the server side before they go to the browser. In other words, the pages are always the same for all visitors - static. HTML pages have no dynamic content, as in the examples above&lt;/p&gt;&lt;/blockquote&gt;&lt;strong&gt;&lt;li&gt;Why was XHTML developed? Do you think this addresses most of the HTML weaknesses?&lt;/strong&gt;
&lt;blockquote&gt;According to (&lt;a href="http://www.w3schools.com/XHTML/xhtml_html.asp"&gt;W3C&lt;/a&gt;)The Most Important Differences:
&lt;ul&gt;&lt;li&gt;XHTML elements must be properly nested&lt;/li&gt;&lt;li&gt;XHTML elements must always be closed&lt;/li&gt;&lt;li&gt;XHTML elements must be in lowercase&lt;/li&gt;&lt;li&gt;XHTML documents must have one root element&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;strong&gt;&lt;li&gt;What are the similarities between JavaScript, VBScript and ZOPE’s DTML?&lt;/strong&gt; &lt;blockquote&gt;DTML is a server side scripting language, like SSI, PHP, ASP, and JSP. This means that DTML commands are executed by Zope at the server, and the result of that execution is sent to your web browser. By contrast, client-side scripting languages like Javascript are not processed by the server, but are rather sent to and executed by your web browser. (&lt;a href="http://www.zope.org/Documentation/Books/ZopeBook/2_5_edition/DTML.stx"&gt;Zope&lt;/a&gt;)&lt;/blockquote&gt;&lt;strong&gt;&lt;li&gt;What are the similarities and differences between ASP, JSP and PHP?&lt;/strong&gt;

(&lt;a href="https://www.webhostinglogic.com/support/support-topics/php-jsp-asp.html"&gt;WebHostingLogic&lt;/a&gt;)
&lt;ul&gt;
&lt;li&gt;PHP (Hypertext Preprocessor)an open source, server-side, HTML embedded scripting language used to create dynamic Web pages.&lt;/li&gt;
&lt;li&gt;ASP (Active Server Pages) is a Microsoft promoted technology to enable HTML pages to be dynamic and interactive by embedding scripts, either VB Script or Jscript&lt;/li&gt;
&lt;li&gt;JSP (Java Server Pages) are web-pages that include scripts that can modify a page before sending it to the user. Similar to ASP pages, but produced by Sun Microsystems&lt;/li&gt;
&lt;/ul&gt;
&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/SjYlBV0Xa9I/AAAAAAAAAEQ/c79pJubgOb8/s1600-h/Exercise+10q10.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 319px;" src="http://1.bp.blogspot.com/_JS00SNKPHSk/SjYlBV0Xa9I/AAAAAAAAAEQ/c79pJubgOb8/s400/Exercise+10q10.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5347502312515922898" /&gt;&lt;/a&gt;&lt;br/&gt;
(&lt;a href="http://www.blogger.com/feeds/4951080038221931058/posts/default"&gt;BlogPost&lt;/a&gt;)&lt;br/&gt;

&lt;strong&gt;&lt;li&gt;What are the differences between the various approaches to scripting?&lt;/strong&gt;&lt;blockquote&gt;&lt;p&gt;There are two ways of scripting viz. one on the client side and the other on the server side. PHP and ASP code are server side scripting technologies. While JSP supports client side scripting.&lt;/p&gt;&lt;p&gt;On Server side scripting, when a user in a website request for any services, the request goes to the server of the website and the appropriate output is displayed after the request is processed from the remote server.&lt;/p&gt;&lt;p&gt;In case of client side scripting, the request is executed on the client side and the appropriate result is show with the help of script. VBScript is used for this purpose.&lt;/p&gt;(&lt;a href="http://www.blogger.com/feeds/4951080038221931058/posts/default"&gt;BlogPost&lt;/a&gt;)&lt;/blockquote&gt;
&lt;strong&gt; &lt;li&gt;List some of the shareware or freely available tools for web design. In addition to a good HTML editor, what utilities could be very handy to the developer?&lt;/strong&gt;&lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;A search on google for "free web design tools" returned 8030 results. Top of the list is &lt;a href="www.webweaver.nu"&gt;www.webweaver.nu&lt;/a&gt;. This provides links to clipart and graphics, online tools, web design resources and tips and tricks.&lt;/p&gt;&lt;p&gt;There are lots of other tools available, and it would once again come down to getting the right tool for the users requirements.&lt;/p&gt;&lt;p&gt;What the users requirements are for developing a web site will determine what tools they need. Some basic questions to answer would be: &lt;ul&gt;&lt;li&gt;Is the site going to be dynamic or static?&lt;/li&gt;&lt;li&gt;Will a database be required?&lt;/li&gt;&lt;li&gt;Who are the intended audience?&lt;/li&gt;&lt;li&gt;How will the site be hosted?&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Utilities useful to a developer include css editor, icon and graphical design tools, and web page template designers. Notepad is always handy.&lt;/p&gt;&lt;/blockquote&gt;&lt;/ol&gt;
&lt;strong&gt;References&lt;/strong&gt;&lt;br/&gt;
BlogPost. Retrieved 15 June 2009, From &lt;a href="http://www.blogger.com/feeds/4951080038221931058/posts/default"&gt;http://www.blogger.com/feeds/4951080038221931058/posts/default&lt;/a&gt;&lt;br/&gt;
WebHostingLogic, Inc. COMPARISON OF PHP, JSP AND ASP. Retrieved 15 June 2009, from &lt;a href="https://www.webhostinglogic.com/support/support-topics/php-jsp-asp.html"&gt;https://www.webhostinglogic.com/support/support-topics/php-jsp-asp.html&lt;/a&gt;&lt;br/&gt;
WikiAnswers.com. What is the difference between HTML and DHTML?. Retrieved 7 June 2009, from &lt;a href="http://wiki.answers.com/Q/What_is_the_difference_between_HTML_and_DHTML"&gt;http://wiki.answers.com/Q/What_is_the_difference_between_HTML_and_DHTML&lt;/a&gt;&lt;br/&gt;
W3C. Differnces Between XHTML and HTML. Retrieved 7 June 2009, from &lt;a href="http://www.w3schools.com/XHTML/xhtml_html.asp"&gt;http://www.w3schools.com/XHTML/xhtml_html.asp&lt;/a&gt;&lt;br/&gt;
Zope. Chapter 4: Dynamic Content with DTML. Retrieved 15 June 2009, from &lt;a href="http://www.zope.org/Documentation/Books/ZopeBook/2_5_edition/DTML.stx"&gt;http://www.zope.org/Documentation/Books/ZopeBook/2_5_edition/DTML.stx&lt;/a&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-4271936985678754891?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/4271936985678754891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-10answers-7-12.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4271936985678754891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4271936985678754891'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-10answers-7-12.html' title='Exercise 10:Answers 7-12'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JS00SNKPHSk/SjYlBV0Xa9I/AAAAAAAAAEQ/c79pJubgOb8/s72-c/Exercise+10q10.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-309621703697247970</id><published>2009-06-07T12:41:00.016+10:00</published><updated>2009-06-23T21:28:18.569+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 04'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 10'/><title type='text'>Exercise 10: Answers 1-6</title><content type='html'>&lt;ol&gt;    &lt;strong&gt;&lt;li&gt;List some application servers in competition with    ZOPE. Access the web and find the latest version of the application servers    mentioned in the text. When were they released? Can you make any conclusion    about the release cycle of Internet software in comparison to other business    software (e.g. spreadsheet, word processor, accounting packages)?&lt;/strong&gt;  &lt;blockquote&gt; &lt;p&gt;If by "in competition" Ken means Open source applications then competing applications server platforms would include (&lt;a href="http://en.wikipedia.org/wiki/Application_Server"&gt;Wikipedia&lt;/a&gt;): Appaserver, Base4, and Spring Framework.&lt;/p&gt; If however Ken is referring to Application servers in general then the list is substantially longer and can be defined by type: &lt;table border="1"&gt; &lt;tr&gt;&lt;th&gt;Type&lt;/th&gt;&lt;th&gt;Name&lt;/th&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Java Application Servers&lt;/td&gt;&lt;td&gt;J2EE&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;WebSphere Application Server&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;- &lt;/td&gt;&lt;td&gt;WebLogic Server (Oracle)&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;- &lt;/td&gt;&lt;td&gt;JBoss (Red Hat)&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;- &lt;/td&gt;&lt;td&gt;JRun (Adobe Systems)&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;- &lt;/td&gt;&lt;td&gt;Apache Geronimo (Apache Software Foundation)&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;- &lt;/td&gt;&lt;td&gt;Sun Java System Application Server&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;- &lt;/td&gt;&lt;td&gt;SAP Netweaver AS (ABAP/Java) (SAP)&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;- &lt;/td&gt;&lt;td&gt;Glassfish Application Server.&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Microsoft Platform&lt;/td&gt;&lt;td&gt;.NET Framework&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Zend platform&lt;/td&gt;&lt;td&gt;Zend Server&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Other platforms&lt;/td&gt;&lt;td&gt;Appaserver&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;- &lt;/td&gt;&lt;td&gt;Base4&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;- &lt;/td&gt;&lt;td&gt;Zope&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;- &lt;/td&gt;&lt;td&gt;Spring Framework&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; &lt;p&gt; In the text (I am going to presume we are talking about the study guide) Ken mentions the following: &lt;table border="1"&gt; &lt;tr&gt;&lt;th&gt;Application Server&lt;/th&gt;&lt;th&gt;Latest Version&lt;/th&gt;&lt;th&gt;Release Date&lt;/th&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;ZOPE 2&lt;/td&gt;&lt;td&gt;2.11.3&lt;/td&gt;&lt;td&gt;2 May 2009&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;ZOPE 3&lt;/td&gt;&lt;td&gt;3.4.0&lt;/td&gt;&lt;td&gt;29 Jan 2009&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;JBoss&lt;/td&gt;&lt;td&gt;5.1.0.GA&lt;/td&gt;&lt;td&gt;23 May 2009&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Enhydra&lt;/td&gt;&lt;td&gt;7.4-1&lt;/td&gt;&lt;td&gt;11 Dec 2008&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;IBMs Websphere&lt;/td&gt;&lt;td&gt;6.0.2.35&lt;/td&gt;&lt;td&gt;5 June 2009&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; &lt;/p&gt; &lt;p&gt; The release dates for web software is very recent. Almost all have a release date within the last 4-5 weeks, with frequent updates being released. Enhydra seems to be out of date. This is often the case with web products. Other applications and business software that is installed typically has a much longer release cycle.&lt;/p&gt; &lt;/blockquote&gt;  &lt;strong&gt;&lt;li&gt;List the main Web servers. What types of companies    are offering the leading servers? Distinguish between open source and    proprietary products. Who is providing support for the products? How much do    they cost? Do you think the Web server purchase price is a significant factor    in budget considerations for a large e-commerce initiative?&lt;/strong&gt; &lt;blockquote&gt; &lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/SitBGpUn4jI/AAAAAAAAAEA/BohCIGKFU50/s1600-h/400px-Webservers_2009_04_svg.png"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 305px; CURSOR: hand" src="http://3.bp.blogspot.com/_JS00SNKPHSk/SitBGpUn4jI/AAAAAAAAAEA/BohCIGKFU50/s400/400px-Webservers_2009_04_svg.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5344436965232599602"&gt;&lt;/a&gt;(&lt;a href="http://en.wikipedia.org/wiki/Web_server"&gt;WikiPedia&lt;/a&gt;) &lt;table border="1"&gt; &lt;tr&gt;&lt;th&gt;Vendor&lt;/th&gt;&lt;th&gt;Product&lt;/th&gt;&lt;th&gt;Web Sites Hosted&lt;/th&gt;&lt;th&gt;Percent&lt;/th&gt;&lt;th&gt;Open Source&lt;/th&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Apache&lt;/td&gt;&lt;td&gt;Apache HTTP Server&lt;/td&gt;&lt;td&gt;96,531,033&lt;/td&gt;&lt;td&gt;52.05%&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Microsoft&lt;/td&gt;&lt;td&gt;Internet Information Services&lt;/td&gt;&lt;td&gt;61,023,474&lt;/td&gt;&lt;td&gt;32.90%&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Google&lt;/td&gt;&lt;td&gt;Google Web Server&lt;/td&gt;&lt;td&gt;9,864,303&lt;/td&gt;&lt;td&gt;5.32%&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Nginx&lt;/td&gt;&lt;td&gt;Nginx&lt;/td&gt;&lt;td&gt;3,462,551&lt;/td&gt;&lt;td&gt;1.87%&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Lighttpd&lt;/td&gt;&lt;td&gt;Lighttpd&lt;/td&gt;&lt;td&gt;2,989,416&lt;/td&gt;&lt;td&gt;1.61%&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Oversee&lt;/td&gt;&lt;td&gt;Oversee&lt;/td&gt;&lt;td&gt;1,847,039&lt;/td&gt;&lt;td&gt;1.00%&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Others&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;9,756,650&lt;/td&gt;&lt;td&gt;5.26%&lt;/td&gt;&lt;td&gt;?&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;Total&lt;/b&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;&lt;b&gt;185,474,466&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;100.00%&lt;/b&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt;(&lt;a href="http://en.wikipedia.org/wiki/Comparison_of_web_servers"&gt;Wikipedia&lt;/a&gt;)  Essentially all web servers are provided free. Consequently web server purchase price (in terms of software) is a negligable concern. Ongoing support and maintenance costs are where proprietary businesses such as Microsoft make there money. Microsoft provides a paid support avenue. Community forums provide a support mechanism for the open source solutions. Additionally companies have set themselves up to provide paid support for open source systems.&lt;/blockquote&gt;   &lt;strong&gt;&lt;li&gt;Go to the website of IBM, Oracle, Microsoft and    Sybase. Is there any mention of e-commerce associated with their database    products? What suite or partnership do they list with related e-commerce    offerings? How do they compare with open source products like MySQL?&lt;/strong&gt;    &lt;blockquote&gt; These were not easy to obtain at first. So I just went to the websites of each of the 4 companies and used 2 search terms 'e-commerce' and 'e-commerce Databases' to return the following results table: &lt;table border="1"&gt; &lt;tr&gt;&lt;th&gt;Company&lt;/th&gt;&lt;th&gt;Website&lt;/th&gt;&lt;th&gt;SearchTerm:e-commerce&lt;/th&gt;&lt;th&gt;SearchTerm:e-commerce databases&lt;/th&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;IBM&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.ibm.com"&gt;www.ibm.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;19,396&lt;/td&gt;&lt;td&gt;11,842&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Microsoft&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com"&gt;www.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;169,000&lt;/td&gt;&lt;td&gt;6,650&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Oracle&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.oracle.com"&gt;www.oracle.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2,436&lt;/td&gt;&lt;td&gt;529&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Sybase&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.sybase.com"&gt;www.sybase.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;109&lt;/td&gt;&lt;td&gt;56&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt;  &lt;/blockquote&gt;      &lt;strong&gt;&lt;li&gt;Access the web and find the current rate for website    hosting. What are the criteria used by the ISP for pricing?&lt;/strong&gt;  There are a large number of companies providing website hosting services for various dollar amounts. Generally they all seem to have a monthly charge. This is based upon the amount of storage required and the expected bandwidth that will be used. Some services charge per MB for excess usage. An example plan is from &lt;a href="http://www.westnethosting.com.au/web-hosting/"&gt;Westnethosting&lt;/a&gt;&lt;br/&gt;  &lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/Sitgy0dQuII/AAAAAAAAAEI/99XQnR1bTVY/s1600-h/Exercise10q4.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 349px;" src="http://1.bp.blogspot.com/_JS00SNKPHSk/Sitgy0dQuII/AAAAAAAAAEI/99XQnR1bTVY/s400/Exercise10q4.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5344471808996325506" /&gt;&lt;/a&gt;  &lt;strong&gt; &lt;li&gt;Why is the perception getting stronger that    integration will become a critical factor in coming days? What is the role of ERP within the enterprise    software architecture?&lt;/strong&gt;
&lt;blockquote&gt;&lt;p&gt;(&lt;a href="http://www.tech-faq.com/erp.shtml"&gt;techFAQ&lt;/a&gt;)ERP stands for Enterprise Resource Planning. ERP is a way to integrate the data and processes of an organization into one single system. Usually ERP systems will have many components including hardware and software, in order to achieve integration, most ERP systems use a unified database to store data for various functions found throughout the organization.&lt;/p&gt;
&lt;p&gt;Integration is an extremely important part to ERP's. ERP's main goal is to integrate data and processes from all areas of an organization and unify it for easy access and work flow. ERP's usually accomplish integration by creating one single database that employs multiple software modules providing different areas of an organization with various business functions&lt;/p&gt;&lt;/blockquote&gt;&lt;strong&gt;&lt;li&gt;What is Customer Resource Management and why is it important to e-commerce?&lt;/strong&gt;&lt;blockquote&gt;&lt;p&gt;(&lt;a href="http://www.tech-faq.com/crm-software.shtml"&gt;techFAQ&lt;/a&gt;)Customer Resource Management(CRM) is a strategy for doing business.&lt;/p&gt;&lt;p&gt;CRM methodologies are focused on building individual customer relationships for the purpose of creating and maintain a loyal customer base.&lt;/p&gt;&lt;p&gt;Internet users are very fickle beings. If a user has a bad experience at a site they are not likely to return. So CRM is about getting and manageing return business.&lt;/p&gt;&lt;/blockquote&gt;
   &lt;/ol&gt;      &lt;strong&gt;References&lt;/strong&gt;&lt;br&gt; Enhydra. Enhydra Server. Retrieved 7 June 2009, from &lt;a href="http://forge.ow2.org/project/showfiles.php?group_id=21"&gt;http://forge.ow2.org/project/showfiles.php?group_id=21&lt;/a&gt;&lt;br&gt; IBM. Support &amp;amp; downloads. Retrieved 7 June 2009, from &lt;a href="http://www.ibm.com/products/finder/au/finders?Ne=5000000&amp;amp;finderN=1000188&amp;amp;pg=ddfinder&amp;amp;collection=dblue&amp;amp;collectionN=4294967279&amp;amp;sid=901196651244347023190&amp;amp;cc=au&amp;amp;lc=en&amp;amp;oldC1=5000725&amp;amp;tmpl=%2Fproducts%2Ffinder%2Fau%2Fen%2Ffinders&amp;amp;C1=5000725&amp;amp;C2=5000740&amp;amp;ibm-go.x=11&amp;amp;ibm-go.y=14r"&gt;http://www.IBM.com&lt;/a&gt;&lt;br&gt; JBoss. JBoss Application Server Downloads. Retrieved 7 June 2009, from &lt;a href="http://www.jboss.org/jbossas/downloads/"&gt;http://www.jboss.org/jbossas/downloads/&lt;/a&gt;&lt;br&gt;techFAQ. What is CRM software? Retrieved 15 June 2009, from &lt;a href="http://www.tech-faq.com/crm-software.shtml"&gt;http://www.tech-faq.com/crm-software.shtml&lt;/a&gt;&lt;br&gt;techFAQ. What is ERP? Retrieved 15 June 2009, from &lt;a href="http://www.tech-faq.com/erp.shtml"&gt;http://www.tech-faq.com/erp.shtml&lt;/a&gt;&lt;br&gt; Wikipedia. Application server. Retrieved 7 June 2009, from &lt;a href="http://en.wikipedia.org/wiki/Application_Server"&gt;http://en.wikipedia.org/wiki/Application_Server&lt;/a&gt;&lt;br&gt; Wikipedia. Comparison of web server software. Retrieved 7 June 2009, from &lt;a href="http://en.wikipedia.org/wiki/Comparison_of_web_servers"&gt;http://en.wikipedia.org/wiki/Comparison_of_web_servers&lt;/a&gt;&lt;br&gt; Wikipedia. Web server. Retrieved 7 June 2009, from &lt;a href="http://en.wikipedia.org/wiki/Web_server"&gt;http://en.wikipedia.org/wiki/Web_server&lt;/a&gt;&lt;br&gt; Zope. Current Zope Releases. Retrieved 7 June 2009, from &lt;a href="http://www.zope.org/Products/"&gt;http://www.zope.org/Products/&lt;/a&gt;  &lt;strong&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-309621703697247970?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/309621703697247970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-10-answers.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/309621703697247970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/309621703697247970'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-10-answers.html' title='Exercise 10: Answers 1-6'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JS00SNKPHSk/SitBGpUn4jI/AAAAAAAAAEA/BohCIGKFU50/s72-c/400px-Webservers_2009_04_svg.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-8654409699073691343</id><published>2009-06-07T12:26:00.003+10:00</published><updated>2009-06-07T12:39:17.431+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Experiences'/><title type='text'>Moving my Internet Gateway</title><content type='html'>Up until yesterday I had been using wireless connections throughout the house. I have a Bigpond account with a wireless modem that was sitting in our bedroom.

I wanted to move the modem into the computer room so that I could have a wired network. This would allow me to connect a NAS device to the network and have some semblance of decent speed within the network.

Having a few unused telephone connections within the various rooms it was a simple matter of moving one of these. Well that should have been the case.

I took the line that was in what used to be the study (previous owners) and moved it into the computer room. This was the obvious choice as the line only had to be moved about 2 metres (horizontally) to the opposite side of the wall. The new and old computer rooms are adjoining. After taking the tiles off the roof, disconnecting the plates, moving the wire, reconnecting the plates, and getting a dial tone it was time to try out the connection. Unfortunately the telstra message "the line you are using is not connected" was played when I dialed a number. OK so that line was no good.

So I had to undo the line that was in my sons bedroom (checked that this line actually worked first), got into the ceiling, traipsed the line across multiple rooms and put it down the wall. Back inside connected it all up, and the line works.

So I now have the modem/router all within connection distance of the computers and just need some LAN cable to connect it all together.

A great way to spend the day. And I don't have the loss of signal from my modem that I sometimes experienced.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-8654409699073691343?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/8654409699073691343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/rewiring-house.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8654409699073691343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8654409699073691343'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/rewiring-house.html' title='Moving my Internet Gateway'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-5895041726188449840</id><published>2009-06-04T12:45:00.005+10:00</published><updated>2009-06-04T13:28:23.848+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Observations'/><category scheme='http://www.blogger.com/atom/ns#' term='Experiences'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Ruby'/><title type='text'>Newcastle Coders Group monthly meeting</title><content type='html'>I attended the latest monthly meeting of the &lt;a href="http://www.ncg.asn.au/News/How-to-make--cool--interfaces,-Ruby-Development,-a.aspx"&gt;Newcastle Coders Group&lt;/a&gt; last night (3 June 2009). On the agenda were talks discussing making application interfaces cool and using Ruby. The third item on the agenda was cancelled till next month.

&lt;strong&gt;'Cool’ Interface design with &lt;a href="http://blogs.msdn.com/msozacademic/archive/2007/10/03/luke-drumm-presents-xna-games-studio-at-unsw.aspx"&gt;Luke Drumm&lt;/a&gt;&lt;/strong&gt;
Luke discussed the dynamics of a games engine and how it keeps a users interest by setting little tasks. Succesful completion of a task leads to the learning of skills which can be applied in future situations. This incremental skill level increase keeps the user happy and wanting to come back for more. The games paradigm is all about incentivising the user

Luke compared the games interface mentality with the traditional business application approach which generally comes in one of 2 camps. Either the user is exposed to all the possible functionality and gets swamped with possibility, or the user has little exposure to functionality and at the same time is not shown how to progress. In either circumstance 95% of users use only 5% of an applications functionality.

The main point that Luke put forward was that games designers treat the users like adults, with some intelligence, whereas business application designers treat users like children who need there hands to be held. (Please note that this conclusion came out in the discussion but has not been portaryed all that well in my discussion)

&lt;strong&gt;Web Ready with Ruby with &lt;a href="http://www.linkedin.com/in/williammason"&gt;William Mason&lt;/a&gt;&lt;/strong&gt;
William gave a presentation about the ease of developing a website using Ruby. He was using the &lt;a href="http://ramaze.net/"&gt;Ramaze&lt;/a&gt; framework. He built a basic food menu application and showed 4 iterations of the design. The adage that anything that can go wrong will go wrong in a presentation was very true. But he persevered and game a very quick overview of the design process.

William used &lt;a href="http://www.netbeans.org/"&gt;Netbeans&lt;/a&gt; as his IDE.

Some useful (maybe) links that he gave are:
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.ruby-doc.org/docs/ProgrammingRuby/"&gt;http://www.ruby-doc.org/docs/ProgrammingRuby/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tryruby.hobix.com/"&gt;http://tryruby.hobix.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ruby-lang.org/en/"&gt;http://www.ruby-lang.org/en/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The thing that tied the 2 talks together for me is related to my experience with setting up a rails development environment. Luke says that people want to be treated like adults, which from his talk is based upon the premise that the user wants to investigate things for himself. There are times however when its good to be a child and being led by the hand is appreciated.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-5895041726188449840?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/5895041726188449840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/newcastle-coders-group-monthly-meeting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/5895041726188449840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/5895041726188449840'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/newcastle-coders-group-monthly-meeting.html' title='Newcastle Coders Group monthly meeting'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-9115027691223103314</id><published>2009-06-03T08:32:00.003+10:00</published><updated>2009-06-04T13:23:28.009+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Observations'/><category scheme='http://www.blogger.com/atom/ns#' term='Experiences'/><title type='text'>Microsofts New Search Engine</title><content type='html'>I have just used Microsoft's new search engine &lt;a href="http://www.bing.com"&gt;Bing&lt;/a&gt; and found it to be very useful. The little pop ups that appear next to the results, show additional information about the site. 

I used the search term "rapid evolutionary prototype webpages" and compared the results to google. The bing result returned more relevant answers to what I was wanting.

Overall very impressed from first impressions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-9115027691223103314?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/9115027691223103314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/microsofts-new-search-engine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/9115027691223103314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/9115027691223103314'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/microsofts-new-search-engine.html' title='Microsofts New Search Engine'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-768090401024033100</id><published>2009-06-02T22:07:00.006+10:00</published><updated>2009-06-23T21:28:18.570+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 04'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 09'/><title type='text'>Exercise 9: Second Attempt</title><content type='html'>&lt;p&gt;Well it is sometimes hard to see the wood from the trees.&lt;/p&gt;

&lt;p&gt;It also helped when I read (Ince, p129-150) where he discusses Browsers and HTML. To date I have had little to no exposure to developing web pages. Thanks to this blog I am finally getting the hang of HTML.&lt;/p&gt;

&lt;p&gt;So back to exercise 9. As it turns out my initial thoughts in &lt;a href="http://grantitc565.blogspot.com/2009/06/exercise-9-first-attempt.html"&gt;Exercise 9: First attempt&lt;/a&gt; were correct. This is basically a rehash of what we did in exercises 6-8.&lt;/p&gt;

&lt;p&gt;I was getting lost in the HTML on the entry form. Thanks to (Ince) I twigged to the fact that I needed to use the SUBMIT method on the form and the GET method in the php file to retrieve the information.&lt;/p&gt;

&lt;p&gt;So here is the input form and the HTML to create it:&lt;br/&gt;
&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/SiUYSToHaFI/AAAAAAAAADo/iuk1Mvjboro/s1600-h/Exercise9+Input.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 228px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/SiUYSToHaFI/AAAAAAAAADo/iuk1Mvjboro/s400/Exercise9+Input.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5342703235730204754" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and the php file that parses the submitted data and outputs it.&lt;br/&gt;
&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/SiUYSoyTpUI/AAAAAAAAADw/SMPGTX1CQew/s1600-h/Exercise9+Output.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 151px;" src="http://1.bp.blogspot.com/_JS00SNKPHSk/SiUYSoyTpUI/AAAAAAAAADw/SMPGTX1CQew/s400/Exercise9+Output.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5342703241410094402" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see from the output, to answer part 3 of exercise 9 yes I can modify the script to process the form.&lt;/p&gt;

&lt;p&gt;Having just written that, the question poses another question. &lt;strong&gt;What does Ken mean in step 2 when he says list the steps involved in processing the form?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What steps did he have in mind? I can see that
&lt;ol&gt;&lt;li&gt;use the get method for each parsed parameter to retrieve the value.&lt;/li&gt;
&lt;li&gt;use the value to do something&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;

&lt;p&gt;Maybe his point is that it is a relatively trivial exercise to extract the information.&lt;/p&gt; 


&lt;strong&gt;References&lt;/strong&gt;
Ince, D. (2006). Developing Distributed &amp; E-commerce Applications: Prentice-Hall, Inc. Upper Saddle River, NJ, USA.&lt;strong&gt;&lt;/strong&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-768090401024033100?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/768090401024033100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-9-second-attempt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/768090401024033100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/768090401024033100'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-9-second-attempt.html' title='Exercise 9: Second Attempt'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JS00SNKPHSk/SiUYSToHaFI/AAAAAAAAADo/iuk1Mvjboro/s72-c/Exercise9+Input.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-781415154211165731</id><published>2009-06-02T13:21:00.003+10:00</published><updated>2009-06-23T21:26:33.435+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 03'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic 01'/><title type='text'>Exercise 3: Answer</title><content type='html'>&lt;p&gt;&lt;strong&gt;Describe the steps involved with the Rapid Evolutionary Prototyping Approach as it applies to developing a Web application. &lt;/strong&gt;

(&lt;a href="http://www.blogger.com/The"&gt;Wikipedia&lt;/a&gt;) states that the process of prototyping involves the following steps
&lt;ol&gt;
&lt;li&gt;Identify basic requirements&lt;/li&gt;
Determine basic requirements including the input and output information desired. Details, such as security, can typically be ignored.&lt;br/&gt;
&lt;li&gt;Develop Initial Prototype&lt;/li&gt;
The initial prototype is developed that includes only user interfaces.&lt;br/&gt;
&lt;li&gt;Review&lt;/li&gt;
The customers, including end-users, examine the prototype and provide feedback on additions or changes.&lt;br/&gt;
&lt;li&gt;Revise and Enhance the Prototype&lt;/li&gt;
Using the feedback both the specifications and the prototype can be improved. Negotiation about what is within the scope of the contract/product may be necessary. If changes are introduced then a repeat of steps #3 ands #4 may be needed.&lt;br/&gt;
&lt;/ol&gt;

Using the Rapid Prototyping Process as defined by (&lt;a href="http://www.freshtilledsoil.com/blog/defining-contrast-between-rapid-prototyping-traditional-development.html"&gt;Federov&lt;/a&gt;) to develop a web site:
&lt;ul&gt;
&lt;li&gt;A designer interprets the clients' ideas for the product goals and user experience, shaving out features that don't make a real impact and focusing on the core value&lt;/li&gt;
&lt;li&gt;The designer begins working immediately on Photoshop/Illustrator comps of high level pages such as Home, Registration, Account Dashboard and a set of style rules for Forms, Data Tables and Wizards&lt;/li&gt;
&lt;li&gt;One approval is reached, the designer begins coding out high level pages and linking them together in XHTML/CSS.&lt;/li&gt; 
&lt;li&gt;All template pages are fleshed out in XHTML and can be easily modified, removed, added to or iterated upon.&lt;/li&gt; 
&lt;li&gt;Different states can be developed to show errors, blank states, populated states, etc. &lt;/li&gt;
&lt;li&gt;Designers hand off templates to the client who then gets developers to respond visually and experientially.&lt;/li&gt;
&lt;/ul&gt;

&lt;strong&gt;References&lt;/strong&gt;&lt;br/&gt;
Federov Alex. Blog: Fresh Tilled Ideas. Retrieved 3 June 2009, from &lt;a href="http://www.freshtilledsoil.com/blog/defining-contrast-between-rapid-prototyping-traditional-development.html"&gt;http://www.freshtilledsoil.com/blog/defining-contrast-between-rapid-prototyping-traditional-development.html&lt;/a&gt;

Wikipedia. Software prototyping. Retrieved 2 June 2009, from &lt;a href="http://en.wikipedia.org/wiki/Software_prototyping"&gt;http://en.wikipedia.org/wiki/Software_prototyping&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-781415154211165731?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/781415154211165731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-3-answer.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/781415154211165731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/781415154211165731'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-3-answer.html' title='Exercise 3: Answer'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-4592362905176734986</id><published>2009-06-01T22:19:00.003+10:00</published><updated>2009-06-23T21:28:18.571+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 04'/><category scheme='http://www.blogger.com/atom/ns#' term='Observations'/><title type='text'>Observations: Topic 4</title><content type='html'>&lt;p&gt;The Study guide (p28) says "[See Figure 2-4 on Web server-enabling technologies in Conallen, p.23]"&lt;/p&gt;&lt;p&gt;The Resources section of the Subject outline only has Conallen listed as a recommended resource. Whilst nice to have it isnt a requirement. As a result I dont have a copy.&lt;/p&gt;&lt;p&gt;This makes viewing this particular reference difficult. I am not sure if there are many more direct references in the study guide for this text, but if not then it would seem a little harsh to not just provide the diagram in the Study Guide.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-4592362905176734986?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/4592362905176734986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/observations-topic-4.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4592362905176734986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4592362905176734986'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/observations-topic-4.html' title='Observations: Topic 4'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-1034034480836727077</id><published>2009-06-01T22:09:00.002+10:00</published><updated>2009-06-23T21:28:18.571+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 04'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 09'/><title type='text'>Exercise 9: First attempt</title><content type='html'>&lt;p&gt;On first look, this looked the same as what we did in exercises &lt;a href="http://grantitc565.blogspot.com/search/label/Exercise%2006"&gt;6&lt;/a&gt;,&lt;a href="http://grantitc565.blogspot.com/search/label/Exercise%2007"&gt;7&lt;/a&gt; and &lt;a href="http://grantitc565.blogspot.com/search/label/Exercise%2008"&gt;8&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Consequently I just revised my efforts from Exercise 6 and got some output on the form. Alas, the url passed to the form does not contain the required parameter string. So now I need to look at some Javascript to work out how to do this. To google we go...
&lt;/p&gt;
Unfortunately the site that I have gone to  
&lt;a href="http://javascript.internet.com/forms/"&gt;http://javascript.internet.com/forms/&lt;/a&gt; list 1420 entries for the search term "process html forms data". Narrowing this down could take a while. However on the upside there seems to be some code that deals with creation of lookups and validation. All of which are relevant to parsing form data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-1034034480836727077?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/1034034480836727077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-9-first-attempt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1034034480836727077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1034034480836727077'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/06/exercise-9-first-attempt.html' title='Exercise 9: First attempt'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-1609914887354342981</id><published>2009-05-29T21:36:00.008+10:00</published><updated>2009-06-23T21:27:47.455+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 08'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic 03'/><title type='text'>Exercise 8: Answer</title><content type='html'>&lt;strong&gt;1. Start with a simple table in the database:&lt;/strong&gt;

In order to get this to happen I needed to create a database and then create a table 'employees'

&lt;blockquote&gt;DROP TABLE IF EXISTS `exercise8`.`employees`;
CREATE TABLE  `exercise8`.`employees` (
  `first` varchar(45) NOT NULL,
  `last` varchar(45) NOT NULL,
  `address` varchar(45) NOT NULL,
  `position` varchar(45) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
&lt;/blockquote&gt;
insert a record
&lt;blockquote&gt;
insert into exercise8.employees(first,last,address,position)
values('First','Last','Address','Position');
&lt;/blockquote&gt;
run the query
&lt;blockquote&gt;SELECT * FROM exercise8.employees e;&lt;/blockquote&gt;
and the result surprise, surprise is the first record from the employees table.

&lt;strong&gt;2. Create a Webpage&lt;/strong&gt;&lt;br/&gt; 
Here is a screenshot of the code and the webpage output&lt;br/&gt;
&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/Sh_LLmYbHFI/AAAAAAAAAC4/a_AILqvrRU4/s1600-h/Exercise8+part2.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 179px;" src="http://3.bp.blogspot.com/_JS00SNKPHSk/Sh_LLmYbHFI/AAAAAAAAAC4/a_AILqvrRU4/s400/Exercise8+part2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5341211083226684498" /&gt;&lt;/a&gt;&lt;br/&gt;

&lt;strong&gt;3. and 4. Add a record&lt;/strong&gt;&lt;br/&gt;
Here is a screenshot of the webpage output and the code&lt;br/&gt;
&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/SiBWHhuvQyI/AAAAAAAAADY/anSEYEuDVT8/s1600-h/Exercise8+part3.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 357px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/SiBWHhuvQyI/AAAAAAAAADY/anSEYEuDVT8/s400/Exercise8+part3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5341363845374886690" /&gt;&lt;/a&gt;

&lt;strong&gt;5. Retrieve multiple records&lt;/strong&gt;&lt;br/&gt;
Here is a screenshot of the webpage output and the code&lt;br/&gt;
&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/SiBWHmsua1I/AAAAAAAAADg/QgPh4pL6xm8/s1600-h/Exercise8+part5.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 220px;" src="http://3.bp.blogspot.com/_JS00SNKPHSk/SiBWHmsua1I/AAAAAAAAADg/QgPh4pL6xm8/s400/Exercise8+part5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5341363846708620114" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-1609914887354342981?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/1609914887354342981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-8-answer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1609914887354342981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1609914887354342981'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-8-answer.html' title='Exercise 8: Answer'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JS00SNKPHSk/Sh_LLmYbHFI/AAAAAAAAAC4/a_AILqvrRU4/s72-c/Exercise8+part2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-8074988480229786409</id><published>2009-05-29T21:13:00.002+10:00</published><updated>2009-06-23T21:27:47.456+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 03'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 07'/><title type='text'>Exercise 7: Answer</title><content type='html'>1. Short but simple. They say a picture is worth a thousand words, so here is 2000.
&lt;p&gt;
&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/Sh_DtY6QJNI/AAAAAAAAACo/Upb5FbbiNZk/s1600-h/Exercise7+part1.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 139px;" src="http://3.bp.blogspot.com/_JS00SNKPHSk/Sh_DtY6QJNI/AAAAAAAAACo/Upb5FbbiNZk/s400/Exercise7+part1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5341202867633005778" /&gt;&lt;/a&gt;
&lt;/p&gt;
2.
&lt;p&gt;
&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/Sh_Dtm20H3I/AAAAAAAAACw/moMGBXNG4bA/s1600-h/Exercise7+part2.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 140px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/Sh_Dtm20H3I/AAAAAAAAACw/moMGBXNG4bA/s400/Exercise7+part2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5341202871376682866" /&gt;&lt;/a&gt; 
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-8074988480229786409?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/8074988480229786409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-7-answer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8074988480229786409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8074988480229786409'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-7-answer.html' title='Exercise 7: Answer'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JS00SNKPHSk/Sh_DtY6QJNI/AAAAAAAAACo/Upb5FbbiNZk/s72-c/Exercise7+part1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-6933240153525952843</id><published>2009-05-29T20:34:00.005+10:00</published><updated>2009-06-23T21:27:47.457+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 03'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 06'/><title type='text'>Exercise 6: Answer</title><content type='html'>1 and 2 combined

An image of the webpage output and the code that produced it:

&lt;a href="http://2.bp.blogspot.com/_JS00SNKPHSk/Sh--pSlXcfI/AAAAAAAAACg/6G9LMzG6hNk/s1600-h/Exercise6+Capture.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 218px;" src="http://2.bp.blogspot.com/_JS00SNKPHSk/Sh--pSlXcfI/AAAAAAAAACg/6G9LMzG6hNk/s400/Exercise6+Capture.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5341197299657175538" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-6933240153525952843?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/6933240153525952843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-6-answer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6933240153525952843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6933240153525952843'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-6-answer.html' title='Exercise 6: Answer'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JS00SNKPHSk/Sh--pSlXcfI/AAAAAAAAACg/6G9LMzG6hNk/s72-c/Exercise6+Capture.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-4872883090996265698</id><published>2009-05-28T21:32:00.005+10:00</published><updated>2009-06-23T21:26:33.437+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 02'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic 01'/><title type='text'>Exercise 2: Answer</title><content type='html'>&lt;strong&gt;Web Quest to find 5 sites offering different business options:&lt;/strong&gt;
&lt;p&gt;
&lt;strong&gt;1. Online shopping&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.umart.com.au/"&gt;Umart Online&lt;/a&gt; is where I purchased the parts for my PC.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dell.com.au/"&gt;Dell&lt;/a&gt; is where I purchased both of my laptops.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.citysoftware.com.au/Browse/Browse.aspx"&gt;CitySoftware.com&lt;/a&gt;  cater predominantly computer industry items&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/"&gt;Amazon.com&lt;/a&gt; Purveyors of anything and everything. See &lt;a href="http://grantitc565.blogspot.com/2009/05/exercise-1-answer.html"&gt;Previous answer&lt;/a&gt; for further details.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.corpsoft.com.au/public/home.ehtml"&gt;CORPSOFT.COM.AU&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;2. Electronic payments&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.post.com.au/"&gt;Australia post&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.commbank.com.au/"&gt;Commonwealth Bank&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ezidebit.com.au/eziwebpay_index.html"&gt;eziwebpay&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.edpaymentsystems.com/"&gt;ElectronicData Payment Systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.eps-na.com/"&gt;EPS electronic payment systems&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;3. Database access&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="www.ebscohost.com/"&gt;EBSCOhost Online Research database&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ncbi.nlm.nih.gov/pubmed/"&gt;US national library of medicine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="www.familysearch.org/"&gt;FamilySearch. Family Tree research database&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.riportal.eu/public/index.cfm?fuseaction=ri.search"&gt;European portal on research infrastructures' services&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.csu.edu.au/division/library/"&gt;CSU library&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;4. WAP sites for mobile phones&lt;/strong&gt;&lt;br/&gt;
I have a mobile phone that is used for only one thing, making phone calls. And I might make about 1 or 2 of those a month. So I am not what you would really call mobile phone savvy. Having said that, my plan will be up for renewal soon and I am thinking about application development in the work environment. So this may become much more relevant to me in the future.
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.freewarepark.com/mobile-phones/wap/"&gt;Freewarepark&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.boltblue.com.au/"&gt;boltblue love your mobile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mega-mobilegames.com/"&gt;mega-mobilegames.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.partymob.com/Wap/WAP_Directory.asp"&gt;partymob.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cool.com.au/mobile-wap/"&gt;Cool&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-4872883090996265698?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/4872883090996265698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-2-answer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4872883090996265698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4872883090996265698'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-2-answer.html' title='Exercise 2: Answer'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-735494772155567532</id><published>2009-05-28T21:11:00.007+10:00</published><updated>2009-06-23T21:26:33.438+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 01'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 01'/><title type='text'>Exercise 1: Answer</title><content type='html'>&lt;strong&gt;&lt;p&gt;1. Visit &lt;a href="http://yahoo.com"&gt;http://yahoo.com&lt;/a&gt; and &lt;a href="http://zope.org"&gt;http://zope.org&lt;/a&gt; as examples of online communities.   &lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;a. What is meant by an online community and how is it important for e-commerce? &lt;/strong&gt;  &lt;blockquote&gt;&amp;quot;An online community is: Where a group of people with similar goals or interests connect and exchange information using web tools.&amp;quot; (Owyang)&lt;br/&gt;&lt;br /&gt;This brings a community of like-minded people together. So an on-line community is good in enabling communication. From a commerce perspective it opens up the avenues available to the consumer, providing much greater choice and options. It also provides greater scope to the retailer by reducing the physical presence requirements that a traditional shop-front store entails.     &lt;br /&gt;However with the good comes the bad as expressed by (Malik)&lt;/blockquote&gt;  &lt;p&gt; &lt;strong&gt; References&lt;/strong&gt;&lt;br/&gt;
Owyang, J. (December 28th, 2007).   Retrieved 21 May 2009, from &lt;a href="http://www.web-strategist.com/blog/2007/12/28/defining-the-term-community/"&gt;http://www.web-strategist.com/blog/2007/12/28/defining-the-term-community/&lt;/a&gt;
Malik, O. ( Tuesday, October 18, 2005 ). Web 2.0, Community &amp; the Commerce Conundrum.   Retrieved 21 May 2009, from &lt;a href="http://gigaom.com/2005/10/18/web-20-the-community-the-commerce-conundrum/"&gt;http://gigaom.com/2005/10/18/web-20-the-community-the-commerce-conundrum/&lt;/a&gt;

&lt;strong&gt;b. Visit the three auctions sites at &lt;/strong&gt;&lt;a href="http://ebay.com"&gt;&lt;strong&gt;http://ebay.com&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, &lt;/strong&gt;&lt;a href="http://ebay.co.uk"&gt;&lt;strong&gt;http://ebay.co.uk&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; and &lt;/strong&gt;&lt;a href="http://ebay.com.au:"&gt;&lt;strong&gt;http://ebay.com.au:&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; i.&amp;#160;&amp;#160; Is there a common thread and a local community sense in action?&lt;/strong&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The 3 sites &lt;a href="http://ebay.com/"&gt;http://ebay.com/&lt;/a&gt;, &lt;a href="http://ebay.co.uk/"&gt;http://ebay.co.uk/&lt;/a&gt; and &lt;a href="http://ebay.com.au/"&gt;http://ebay.com.au/&lt;/a&gt; are very similar. &lt;/p&gt;    &lt;p&gt;They are localized and user aware. I was asked by both the US and the UK site if I would rather visit the Australia site. From a personal view that is very good as it starts you feeling welcome straight away.&lt;/p&gt;    &lt;p&gt;The home page for eBay Australia(Tuesday 19 May 9:30pm) has the following:      &lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/ShKbXkZ5ZQI/AAAAAAAAABw/m3eOSfr1aJM/s1600-h/Ebay+Community.jpg"&gt;&lt;img style="width: 320px; height: 182px; cursor: hand" id="BLOGGER_PHOTO_ID_5337499337599051010" border="0" alt="" src="http://4.bp.blogspot.com/_JS00SNKPHSk/ShKbXkZ5ZQI/AAAAAAAAABw/m3eOSfr1aJM/s320/Ebay+Community.jpg" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;ii.&amp;#160; What electronic payment systems are used? Are they globally acceptable?&lt;/strong&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="133"&gt;&lt;strong&gt;AU&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="133"&gt;&lt;strong&gt;UK&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="133"&gt;&lt;strong&gt;US&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="133"&gt;PayPal&lt;/td&gt;          &lt;td valign="top" width="133"&gt;PayPal&lt;/td&gt;          &lt;td valign="top" width="133"&gt;PayPal&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="133"&gt;Credit Card&lt;/td&gt;          &lt;td valign="top" width="133"&gt;Credit or Debit Cards&lt;/td&gt;          &lt;td valign="top" width="133"&gt;Credit or Debit Cards&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="133"&gt;Personal or Bank Cheques&lt;/td&gt;          &lt;td valign="top" width="133"&gt;Pay on collection&lt;/td&gt;          &lt;td valign="top" width="133"&gt;Moneybookers&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="133"&gt;Money Orders&lt;/td&gt;          &lt;td valign="top" width="133"&gt;Escrow&lt;/td&gt;          &lt;td valign="top" width="133"&gt;Paymate&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="133"&gt;Bank Deposits or Bank Deposit Express&lt;/td&gt;          &lt;td valign="top" width="133"&gt;Other payment methods&lt;/td&gt;          &lt;td valign="top" width="133"&gt;ProPay&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="133"&gt;COD&lt;/td&gt;          &lt;td valign="top" width="133"&gt;&amp;#160;&lt;/td&gt;          &lt;td valign="top" width="133"&gt;Pay on collection&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="133"&gt;&amp;#160;&lt;/td&gt;          &lt;td valign="top" width="133"&gt;&amp;#160;&lt;/td&gt;          &lt;td valign="top" width="133"&gt;Escrow&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="133"&gt;&amp;#160;&lt;/td&gt;          &lt;td valign="top" width="133"&gt;&amp;#160;&lt;/td&gt;          &lt;td valign="top" width="133"&gt;Other Payment methods&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;p&gt;Some of these payment methods are globally acceptable, but not all.      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;iii. What are the benefits to of an online auction sale to a buyer, a seller and E-bay owners?&lt;/strong&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://itc565developersblog.blogspot.com/2009/04/visiting-ebay.html"&gt;(Wright)&lt;/a&gt; sums up the answer to this question perfectly:&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;eBay provides the &lt;a href="http://pages.ebay.com.au/help/policies/buyer-rules-overview.html"&gt;legal framework, contractual templates and basis of commercial trading&lt;/a&gt; for C2C, B2C and B2B clients. &lt;/p&gt;   &lt;/blockquote&gt; &lt;/blockquote&gt; 
&lt;strong&gt; References&lt;/strong&gt;&lt;br/&gt;
Wright, C. (26 April 2009). Visiting EBay.   Retrieved 21 May 2009, from &lt;a href="http://itc565developersblog.blogspot.com/2009/04/visiting-ebay.htm"&gt;http://itc565developersblog.blogspot.com/2009/04/visiting-ebay.htm&lt;/a&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;c. Find three others examples of an online business using an online community approach.&lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.graysonline.com.au/"&gt;http://www.graysonline.com.au/&lt;/a&gt; is an online auction house&lt;/li&gt;  &lt;li&gt;&lt;a href="http://www.jetstar.com/au/en/index.aspx"&gt;http://www.jetstar.com/au/en/index.aspx&lt;/a&gt; provides a one stop shop for holiday and travel planning&lt;/li&gt;  &lt;li&gt;&lt;a href="http://www.dealsdirect.com.au"&gt;http://www.dealsdirect.com.au&lt;/a&gt; is very similar to Amazon(see below)&lt;/li&gt; &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;2. Visit the famous online store front at &lt;/strong&gt;&lt;a href="http://www.amazon.com"&gt;&lt;strong&gt;http://www.amazon.com&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; a. Why has it been a successful site? How does the purchase of a book work?&lt;/strong&gt; &lt;/p&gt;  &lt;blockquote&gt;Amazon allows a consumer to browse for items of interest. If an item piques the interest of the consumer, Amazon will suggest alternatives and additional items that relate to the consumers choice. This suggesting is based upon previous choices by the consumer and others who have made similar choices.    &lt;p&gt;The steps to purchase a book are as follows: &lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Search for book/item &lt;/li&gt;      &lt;li&gt;Select book/item &lt;/li&gt;      &lt;li&gt;Choose other books/items &lt;/li&gt;      &lt;li&gt;Proceed to checkout &lt;/li&gt;      &lt;li&gt;Enter payment and shipping options &lt;/li&gt;      &lt;li&gt;Discount coupons can be entered at this stage &lt;/li&gt;      &lt;li&gt;Payment is validated and books/items are dispatched &lt;/li&gt;      &lt;li&gt;Await delivery of goods &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;b. Is there any secure transactions not involving money? &lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;Amozon allows multiple methods of paying for items as discussed above. It also allows for payment in the form of gift certificates, reward certificates, free offers if you purchase certain quantities and rebates on goods. It could be argued that these are all a form of monetary transaction, but to the consumer who is making the sale these can be seen as extra incentive. Maybe they are the straw that causes the consumer to make the purchase.&lt;/blockquote&gt;  &lt;p&gt;   &lt;br /&gt;&amp;#160;&amp;#160; &lt;strong&gt;c. What is the range of items that you can buy?      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; i. List the steps involved and comment.&lt;/strong&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;div align="justify"&gt;I think a better question could well be &amp;quot;What can't you buy?&amp;quot;.      &lt;p&gt;The list of purchasable items at Amazon seems to be growing every day.&lt;/p&gt;      &lt;p&gt;This image is just the top level menu showing the departments within which a purchase can be made.&lt;/p&gt;      &lt;p&gt;&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/ShDMAtQE8mI/AAAAAAAAABI/-1ssr7aWu9Q/s1600-h/AmazonList.JPG"&gt;&lt;img style="margin: 0px; width: 175px; height: 320px; cursor: hand; 10px: ; 0px: " id="BLOGGER_PHOTO_ID_5336989870953132642" border="1" alt="" src="http://1.bp.blogspot.com/_JS00SNKPHSk/ShDMAtQE8mI/AAAAAAAAABI/-1ssr7aWu9Q/s320/AmazonList.JPG" /&gt;&lt;/a&gt; &lt;/p&gt;      &lt;p&gt;Here are the steps you need to follow to place an order.(&lt;a href="http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700"&gt;Amazon.com&lt;/a&gt;) &lt;/p&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;ol&gt;     &lt;li&gt;       &lt;div align="left"&gt;&lt;a href="http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700#find"&gt;Find the Items You Want&lt;/a&gt;&lt;/div&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;div align="left"&gt;&lt;a href="http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700#add"&gt;Add the Items to Your Shopping Cart&lt;/a&gt;&lt;/div&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;div align="left"&gt;&lt;a href="http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700#checkout"&gt;Proceed to Checkout&lt;/a&gt; &lt;/div&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;div align="left"&gt;&lt;a href="http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700#signin"&gt;Sign In/Create a New Account&lt;/a&gt; &lt;/div&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;div align="left"&gt;&lt;a href="http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700#address"&gt;Enter a Shipping Address&lt;/a&gt;&lt;/div&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;div align="left"&gt;&lt;a href="http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700#shipping"&gt;Choose a Shipping Method&lt;/a&gt;&lt;/div&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;div align="left"&gt;&lt;a href="http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700#provide"&gt;Provide Payment Information and a Password&lt;/a&gt; &lt;/div&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;div align="left"&gt;&lt;a href="http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700#submit"&gt;Review and Submit Your Order&lt;/a&gt; &lt;/div&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;div align="left"&gt;&lt;a href="http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700#status"&gt;Check Your Order Status&lt;/a&gt; &lt;/div&gt;     &lt;/li&gt;   &lt;/ol&gt;    &lt;div align="justify"&gt;     &lt;br /&gt;I have purchased many books on Amazon, all of them computer related, predominantly with a Microsoft development mentality bias. I have found the process to be painless, cheaper than buying locally and worry free.&lt;/div&gt;&lt;/blockquote&gt;

&lt;strong&gt; References&lt;/strong&gt;&lt;br/&gt;
Amazon.com. Placing Your First Order. 21 May 2009, from &lt;a href="http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700"&gt;http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-735494772155567532?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/735494772155567532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-1-answer.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/735494772155567532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/735494772155567532'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-1-answer.html' title='Exercise 1: Answer'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JS00SNKPHSk/ShKbXkZ5ZQI/AAAAAAAAABw/m3eOSfr1aJM/s72-c/Ebay+Community.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-3838966233244896015</id><published>2009-05-27T22:00:00.002+10:00</published><updated>2009-06-23T21:27:47.458+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 03'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 06'/><title type='text'>Exercise 6: First attempt</title><content type='html'>Well found it:

&lt;?php
echo "Remote Address: ",$_SERVER['REMOTE_ADDR'];
echo "&lt;BR&gt;"
?&gt;

It definitely helps when you get the syntax correct.

The answer to my question was sourced from
&lt;a href="http://au2.php.net/manual/en/reserved.variables.server.php"&gt;http://au2.php.net/manual/en/reserved.variables.server.php&lt;/a&gt;

In my mission to find out how to use php, I created the hello_world application. It didnt provide any surprises at all. And no problems either.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-3838966233244896015?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/3838966233244896015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-6-first-attempt_27.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3838966233244896015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3838966233244896015'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-6-first-attempt_27.html' title='Exercise 6: First attempt'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-1090692835543802776</id><published>2009-05-27T20:40:00.002+10:00</published><updated>2009-06-23T21:27:47.458+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 03'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 06'/><title type='text'>Exercise 6: First attempt</title><content type='html'>Well just going from the notes I thought I would just create a html file and open it in a browser. (did I tell you that what I know about php was what was written in the exercise?)

So I dutifully copied the exercise code into notepad, saved it as exercise6.html, and opened it in IE8. I am sure that you will all be as surprised as I was to see that the screen was blank. Well so much for the short cut.

Ok off to the web site &lt;a href="http://php.net"&gt;http://php.net&lt;/a&gt;. I have now downloaded and installed WampServer 2.0h available from &lt;a href="http://www.wampserver.com/en/download.php"&gt;http://www.wampserver.com/en/download.php&lt;/a&gt;

This has loaded Apache 2.2.11,PHP 5.2.9, SQLitemanager,MySQL 5.1.33 Phpmyadmin

As to what I do with any of this. I am sitting here scratching my head with not the first clue as to what needs to happen now.

I have WAMP started and online.

Well finally I have gotten the page to display. It doesnt work but thats another issue. I am surprised that I have any hair left. None of that was obvious. (Although in hindsite it should have been).

My MySQL issues are continuing however. I get the following message
Access denied for user 'root'@'localhost' (using password:NO)

trying to find the connection string settings in the php.ini file is like looking for a needle in a haystack. I think i would rather find the needle.

When trying to display the file for exercise 6 I was getting the Undefined variable REMOTE_ADDR which makes sense as Ken said in the notes that this is the UNIX environment variable.

So I should be able to change it with the php equivalent of _SERVER["REMOTE_ADDR"]

WRONG!

Maybe it is a good time to ask for help.

What is wrong with this code ?????:

&lt;?php
echo "Remote Address: ", $REMOTE_ADDR;
echo ",BR&gt;";
?&gt;

 What should this look like?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-1090692835543802776?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/1090692835543802776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-6-first-attempt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1090692835543802776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1090692835543802776'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-6-first-attempt.html' title='Exercise 6: First attempt'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-1117879921096159547</id><published>2009-05-27T19:36:00.002+10:00</published><updated>2009-06-04T13:23:28.009+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><category scheme='http://www.blogger.com/atom/ns#' term='Rants'/><category scheme='http://www.blogger.com/atom/ns#' term='Experiences'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Ruby'/><title type='text'>Workshop 1: Setting up Ruby on Rails</title><content type='html'>Well I decided that the Win7 environment was a little bit too progressive to try and get the Ruby environment operational. I was getting security issues with the Aptana IDE not recognising the MySQL installation. I downloaded MySQL v5.1 and tried to install that. The installation stalled when it was trying to create the initialisation file, so I was unable to set the root password or create the admin user. So I decided to start again.

Last night I created a new VM and loaded XP SP3. I then loaded MySQL v5.1 and the MySQL v5 GUI tools. This time the installation went off without a hitch and I was able to create the initialization file.

I installed Aptana, then installed the RADRails perspective, which loaded all the relevant gems. I created a default/ test project using SQLlite3 and this worked fine, first go. That working I attempted to create a project using MySQL as the database. Unfortunately there are still errors being thrown and it is indicating that their are missing files relating to the MySQL gem. This fails midstep. So I have decided that their is little prospect for me to be able to learn anything if I continue trying to get MySQL to work.

Consequently all further work will involve me using SQLlite3 as the database backend.

And thanks to Ken for giving that the ok today.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-1117879921096159547?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/1117879921096159547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-1-setting-up-ruby-on-rails.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1117879921096159547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/1117879921096159547'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-1-setting-up-ruby-on-rails.html' title='Workshop 1: Setting up Ruby on Rails'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-3538050372380304591</id><published>2009-05-25T21:21:00.003+10:00</published><updated>2009-06-04T13:23:28.009+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><category scheme='http://www.blogger.com/atom/ns#' term='Rants'/><category scheme='http://www.blogger.com/atom/ns#' term='Experiences'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Ruby'/><title type='text'>Workshop 1: Loading MySQL</title><content type='html'>&lt;p&gt;I have been attempting to get MySQL installed on my VM for the past few days, have had no luck and am not going to devote anymore time to it. &lt;/p&gt;  &lt;p&gt;I goy the Aptana IDE installed, and it seems nice enough, and relatively easy to use. I followed the demo video on Saturday and had to replay the steps a few times to see what options they selected. I got the example to work. Was unable to get anything working if I chose MySQL as the default database. I get errors stating that the machine is denying the request. I don't have a screenshot of the error message unfortunately.&lt;/p&gt;  &lt;p&gt;Having had no luck I decided that I would attempt to install MySQL on the VM. As I said above, this has proven to be unsuccessful. As this course is not about Installing and configuring MySQL I don't believe it is worth the time to track down the cause of the issue.&lt;/p&gt;  
&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/Shp_cDOiPhI/AAAAAAAAACI/9dylF2EfMlk/s1600-h/AptanaCapture.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 227px;" src="http://3.bp.blogspot.com/_JS00SNKPHSk/Shp_cDOiPhI/AAAAAAAAACI/9dylF2EfMlk/s320/AptanaCapture.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5339720428080479762" /&gt;&lt;/a&gt;
This is a screenshot of the Aptana IDE showing the working test project.

It may be that I am impatient, or far to used to a Windows wizard as far as installations go. I say that because the InstantRails install that I did left a lot to be desired. If you install something why do you then have to actually find the documentation that tells you how to configure it. Why wasnt that part of the installation process. I experienced this with the MySQL install as well. I only found the InstantRails config documentation tonight when I was trying to fix up the MySQL install.

Well thats enough for now, back to the exercises. Until next time ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-3538050372380304591?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/3538050372380304591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-1-loading-mysql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3538050372380304591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3538050372380304591'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-1-loading-mysql.html' title='Workshop 1: Loading MySQL'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JS00SNKPHSk/Shp_cDOiPhI/AAAAAAAAACI/9dylF2EfMlk/s72-c/AptanaCapture.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-696703360121934659</id><published>2009-05-23T17:13:00.005+10:00</published><updated>2009-06-23T21:26:33.438+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 04'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic 01'/><title type='text'>Exercise 4: Answer</title><content type='html'>&lt;ol&gt;   &lt;li&gt;     &lt;h3&gt;Describe the IP protocol. What is DNS?&lt;/h3&gt;      &lt;br /&gt;According to (&lt;a href="http://en.wikipedia.org/wiki/Internet_Protocol"&gt;Wikipedia&lt;/a&gt;)       &lt;blockquote&gt;The Internet Protocol (IP) is a protocol used for communicating data across a packet-switched internetwork using the Internet Protocol Suite, also referred to as TCP/IP. IP is the primary protocol in the Internet Layer of the Internet Protocol Suite and has the task of delivering distinguished protocol data-grams (packets) from the source host to the destination host solely based on their addresses. For this purpose the Internet Protocol defines addressing methods and structures for datagram encapsulation. The first major version of addressing structure, now referred to as Internet Protocol Version 4 (IPv4) is still the dominant protocol of the Internet, although the successor, Internet Protocol Version 6 (IPv6) is being deployed actively worldwide&lt;/blockquote&gt;      &lt;br /&gt;      &lt;blockquote&gt;The Domain Name System (DNS) is a hierarchical naming system for computers, services, or any resource participating in the Internet. It associates various information with domain names assigned to such participants. Most importantly, it translates domain names meaningful to humans into the numerical (binary) identifiers associated with networking equipment for the purpose of locating and addressing these devices world-wide. An often used analogy to explain the Domain Name System is that it serves as the &amp;quot;phone book&amp;quot; for the Internet by translating human-friendly computer hostnames into IP addresses. For example, www.example.com translates to 208.77.188.166.(&lt;a href="http://en.wikipedia.org/wiki/Domain_Name_System"&gt;Wikipedia&lt;/a&gt;)&lt;/blockquote&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;     &lt;h3&gt;Describe the TCP protocol. How is it related to the IP protocol? &lt;/h3&gt;      &lt;br /&gt;      &lt;blockquote&gt;The Transmission Control Protocol (TCP) is one of the core protocols of the Internet Protocol Suite. TCP was one of the two original components, with Internet Protocol (IP), of the suite, so that the entire suite is commonly referred to as TCP/IP. Whereas IP handles lower-level transmissions from computer to computer as a message makes its way across the Internet, TCP operates at a higher level, concerned only with the two end systems, for example, a Web browser and a Web server. In particular, TCP provides reliable, ordered delivery of a stream of bytes from a program on one computer to another program on another computer. Besides the Web, other common applications of TCP include e-mail and file transfer. Among its other management tasks, TCP controls message size, the rate at which messages are exchanged, and network traffic congestion.(&lt;a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol"&gt;Wikipedia&lt;/a&gt;)&lt;/blockquote&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;h3&gt;Differentiate between intranets and extranets. &lt;/h3&gt;      &lt;br /&gt;      &lt;blockquote&gt;Intranet is a internal computer network, normally housed behind a companies firewall, that can be accessed only by authorized persons, especially members or employees of the organization. Extranet is an online (internet) site with additional information, which is restricted to registered users only.(&lt;a href="http://www.ukubona.com/Inter/Intra/Extranets-2660.htm"&gt;Ukobona&lt;/a&gt;)&lt;/blockquote&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;h3&gt;Describe the different elements of HTTP protocol. &lt;/h3&gt;      &lt;br /&gt;      &lt;blockquote&gt;HTTP is a request/response standard of a client and a server. A client is the end-user, the server is the web site. The client making a HTTP request—using a web browser, spider, or other end-user tool—is referred to as the user agent. The responding server—which stores or creates resources such as HTML files and images—is called the origin server. In between the user agent and origin server may be several intermediaries, such as proxies, gateways, and tunnels. HTTP is not constrained to using TCP/IP and its supporting layers, although this is its most popular application on the Internet. Typically, an HTTP client initiates a request. It establishes a Transmission Control Protocol (TCP) connection to a particular port on a host (port 80 by default; see List of TCP and UDP port numbers). An HTTP server listening on that port waits for the client to send a request message. Upon receiving the request, the server sends back a status line, such as &amp;quot;HTTP/1.1 200 OK&amp;quot;, and a message of its own, the body of which is perhaps the requested resource, an error message, or some other information. Resources to be accessed by HTTP are identified using Uniform Resource Identifiers (URIs)—or, more specifically, Uniform Resource Locators (URLs)—using the http: or https URI schemes.(&lt;a href="http://en.wikipedia.org/wiki/HTTP"&gt;Wikipedia&lt;/a&gt;)&lt;/blockquote&gt; for a more in depth look at the protocol look at &lt;a href="http://itc565developersblog.blogspot.com/2009/05/http-protocol.html"&gt;Craig&lt;/a&gt;’s blog entry.        &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;     &lt;h3&gt;What do you know about building e-business applications as an Intranet, Extranet, Web portal, B2B, B2C or Virtual Private Network (VPN)? Find some examples on the Web.&lt;/h3&gt;      &lt;br /&gt;According to &lt;a href="http://webapplications.creativewebsols.com/b2c-portals-app.htm"&gt;Creative Web Solutions&lt;/a&gt; (a web design company located in Mumbai India),       &lt;blockquote&gt;B2C Portal is like a store front where you can display your products, catalogue, price etc. The customer comes to your store visiting the website and chooses the items/products which he requires; once choosing products gets completed he is shown the total amount to be paid for the items he has selected. He is given an option for paying to complete the transaction.        &lt;h4&gt;Approaching Payment Gateway Service Provider &lt;/h4&gt; Now the Payment Gateway Service Provider comes into picture that is authorized to accept credit card on behalf of the merchant. It may be a Bank or authorized Company who can accept and process the credit card online. They provide the merchant with the payment gateway software that needs to be integrated with the website to enable a secure transaction.         &lt;h4&gt;Integrating Payment Gateway with the Website &lt;/h4&gt; This is the last stage of building a B2C Portal. The Payment Gateway software is integrated with the website to carry online transaction safely and securely. &lt;/blockquote&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;h3&gt;What role can a VPN play in business-to-business e-commerce?&lt;/h3&gt;      &lt;blockquote&gt;A Virtual Private Network (VPN) is an enabling technology that allows companies to build cost-effective private e-marketplaces or extranets that can typically operate within a sector. The Australian Automotive Network Exchange is an example of a VPN.(&lt;a href="http://www.archive.dcita.gov.au/2001/10/b2b_e-commerce/developments"&gt;DCITA&lt;/a&gt;)&lt;/blockquote&gt;   &lt;/li&gt; &lt;/ol&gt;  
&lt;strong&gt;&lt;h3&gt;References&lt;/h3&gt;&lt;/strong&gt;&lt;br/&gt;
DCITA. Contemporary developments in B2B e-commerce.   Retrieved 23 May 2009, from &lt;a href="http://www.archive.dcita.gov.au/2001/10/b2b_e-commerce/developments"&gt;http://www.archive.dcita.gov.au/2001/10/b2b_e-commerce/developments&lt;/a&gt;&lt;br/&gt;
Ukubona.   Retrieved 23 May 2009, from &lt;a href="http://www.ukubona.com/Inter/Intra/Extranets-2660.htm"&gt;http://www.ukubona.com/Inter/Intra/Extranets-2660.htm&lt;/a&gt;&lt;br/&gt;
Wikipedia. Internet Protocol. Retrieved 23 May 2009, from &lt;a href="http://en.wikipedia.org/wiki/Internet_Protocol"&gt;http://en.wikipedia.org/wiki/Internet_Protocol&lt;/a&gt;&lt;br/&gt;
Wikipedia. Domain Name System.  Retrieved 23 May 2009, from &lt;a href="http://en.wikipedia.org/wiki/Domain_Name_System"&gt;http://en.wikipedia.org/wiki/Domain_Name_System&lt;/a&gt;&lt;br/&gt;
Wikipedia. Transmission Control Protocol. Retrieved 23 May 2009, from &lt;a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol"&gt;http://en.wikipedia.org/wiki/Transmission_Control_Protocol&lt;/a&gt; &lt;br/&gt;
Wikipedia. Hypertext Transfer Protocol. Retrieved 23 May 2009, from &lt;a href="http://en.wikipedia.org/wiki/HTTP"&gt;http://en.wikipedia.org/wiki/HTTP&lt;/a&gt; &lt;br/&gt;
Wright, C. (13 May 2009). Visiting EBay. Retrieved 23 May 2009, from &lt;a href="http://itc565developersblog.blogspot.com/2009/05/http-protocol.html"&gt;http://itc565developersblog.blogspot.com/2009/05/http-protocol.html&lt;/a&gt;&lt;p/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-696703360121934659?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/696703360121934659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-4-chapter-2-review-questions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/696703360121934659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/696703360121934659'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-4-chapter-2-review-questions.html' title='Exercise 4: Answer'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-8097360214081074126</id><published>2009-05-21T22:38:00.003+10:00</published><updated>2009-05-30T07:45:01.581+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Ruby'/><title type='text'>Workshop 1: Learning Ruby</title><content type='html'>Being used to and IDE I have downloaded Aptana and am currently loading the RADRails plugin

The following link points to a video on creating a rails app in the Aptana Studio

&lt;a href="http://www.aptana.tv/movies/aptana_radrails_intro/aptana_radrails_intro.html"&gt;http://www.aptana.tv/movies/aptana_radrails_intro/aptana_radrails_intro.html&lt;/a&gt;

Whilst watching the jar files being uploaded I can only hope that, not only does this run on Win7, but the security issues Craig mentioned with downloads dont raise there ugly heads.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-8097360214081074126?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/8097360214081074126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-1-learning-ruby.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8097360214081074126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8097360214081074126'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-1-learning-ruby.html' title='Workshop 1: Learning Ruby'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-6620347076647688605</id><published>2009-05-21T21:29:00.005+10:00</published><updated>2009-05-30T07:45:01.581+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><title type='text'>Workshop 1: Challenge problems</title><content type='html'>&lt;strong&gt;1. Make a list of all programming languages and Web development tools used by you in prior experiences. Describe what you know about Web application frameworks before we begin.&lt;/strong&gt;
&lt;a href="http://grantitc565.blogspot.com/2009/05/computing-background.html"&gt;Computing/Programming languages&lt;/a&gt;
The only web development that I have is that involved in meeting the requirements for the Microsoft Industry subjects webforms and distributed applications for .net 2.0 (ITI532 and ITI533). In that light the only web development tool I have used is Visual Studio 2008.
      
&lt;strong&gt;2. Ruby is “an interpreted scripting language” for quick and easy object-oriented programming”. Find out about the Ruby language and discover what this means.&lt;/strong&gt;

The code is interpreted at runtime and not compiled at design time.  

&lt;a href="http://www.rubyist.net/~slagell/ruby/"&gt;Ruby is&lt;/a&gt;
interpreted scripting language:
&lt;blockquote&gt;•ability to make operating system calls directly
•powerful string operations and regular expressions
•immediate feedback during development&lt;/blockquote&gt;
quick and easy:
&lt;blockquote&gt;•variable declarations are unnecessary
•variables are not typed
•syntax is simple and consistent
•memory management is automatic&lt;/blockquote&gt;
object oriented programming:
&lt;blockquote&gt;•everything is an object
•classes, methods, inheritance, etc.
•singleton methods
•"mixin" functionality by module
•iterators and closures&lt;/blockquote&gt;
also:
&lt;blockquote&gt;•multiple precision integers
•convenient exception processing
•dynamic loading
•threading support&lt;/blockquote&gt;


&lt;strong&gt;3. What is Rails and how does it work with Ruby?&lt;/strong&gt;
&lt;a href="http://www.buildingwebapps.com/podcasts"&gt;Ruby on Rails&lt;/a&gt; is a powerful, open-source toolkit that enables you to build sophisticated web applications quickly.

Built in Ruby (a dynamic, object-oriented language), Ruby on Rails is a framework that provides a broad set of capabilities upon which you can build your web application:

It handles all the communication with the database, so you can deal with software objects and let the framework generate SQL.
It provides a template system for handling layouts and page sections, plus extensive facilities for form processing and Ajax updates.
There’s a wide range of plug-ins to quickly implement many features.
Ruby on Rails was designed to make the best use of your time, eliminate drudgery, and let you create great solutions with an agile, iterative approach.

There’s a tremendous demand for Ruby on Rails developers, so learning to build sites with Rails is a valuable step in your web development career, whether you’re building your skills as a freelancer or planning your next job move.


&lt;strong&gt;4. What is meant by “convention over configuration” in regards to the use of Rails in Web application development?&lt;/strong&gt;
&lt;a href="http://www.buildingwebapps.com/articles/6400-understanding-ruby-on-rails"&gt;Convention over configuration&lt;/a&gt; is a very important principle behind Rails. It goes hand-in-hand with another attribute of Rails, that it is “opinionated software”. The Rails design embodies lots of opinions about how you should structure your code, name your classes and files, and organize your database tables. There are methods to override most of these conventions, but if you go with the flow and follow the conventions, then you can avoid almost all configuration code. That’s convention over configuration — and the payoff is huge

&lt;strong&gt;5. When did Model-View-Controller begin and where is it used?&lt;/strong&gt;
&lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;History as defined by wikipedia&lt;/a&gt;
MVC was first described in 1979[1] by Trygve Reenskaug, then working on Smalltalk at Xerox PARC. The original implementation is described in depth in the influential paper Applications Programming in Smalltalk-80: How to use Model–View–Controller.[2]

There have been several derivatives of MVC; one of the most known (due to its use by Microsoft) is the Model View Presenter pattern which appeared in the early 1990s and was designed to be an evolution of MVC. However Model–View–Controller still remains very widely used.

In November 2002 the W3C voted to make MVC structures part of their XForms architecture for all future web applications [3]. These specifications will now be integrated directly into the XHTML 2.0 specifications. There are now over 20 vendors that support XForms frameworks with MVC integrated into the application stack.

&lt;strong&gt;6. Describe the steps involved with the MVC design approach.&lt;/strong&gt;

I will get back to this later&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-6620347076647688605?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/6620347076647688605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-1-challenge-problems.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6620347076647688605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6620347076647688605'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-1-challenge-problems.html' title='Workshop 1: Challenge problems'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-5297098747383046741</id><published>2009-05-21T21:07:00.002+10:00</published><updated>2009-05-30T07:45:01.582+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Ruby'/><title type='text'>Workshop 1: InstantRails podcasts</title><content type='html'>I have now listened to the entire series twice. It is not a bad way to pass the time on my commute.

I guess I am looking forward to moving on from listening about Ruby on Rails at a conceptual level to getting my hands dirty in code and application development.

A few observations first:

I certainly hope that using ruby is fun, because Michael and Christopher kept telling me that using ruby was going to be "more fun"

Having lived in the Visual Studio IDE for the past 5 years or so developing winforms apps, where seemingly all the tools are in one location, to be told I need to use a text editor, command line interface, subversion, etc etc etc was seemingly sounding like a step backwards. And this is going to be "more fun"?

And then there is episode 8. Its all about the Mac. I chuckled to myself just a little thinking about apple - windows flame wars.

Well now to get back into looking at what we need to do to get this workshop underway.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-5297098747383046741?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/5297098747383046741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-1-instantrails-podcasts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/5297098747383046741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/5297098747383046741'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-1-instantrails-podcasts.html' title='Workshop 1: InstantRails podcasts'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-7839728521429434370</id><published>2009-05-21T12:49:00.017+10:00</published><updated>2009-06-23T21:27:14.611+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 02'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 05'/><title type='text'>Exercise 5: Answer</title><content type='html'>&lt;strong&gt;1. Using any familiar programming language environment, what do you know about sockets (network) programming?&lt;/strong&gt; 

Coming from a .net framework / Microsoft programming paradigm, the use of the term socket is completely new to me. So my immediate answer to the question is not a thing.

However if we review the definition given by (Ince, p50)
&lt;blockquote&gt;"Each communication channel into and out of a TCP/IP-based computer is identified by the unique pair of numbers consisting of the IP address and the port number. This combination is a programming abstraction known as a &lt;b&gt;socket&lt;/b&gt;."&lt;/blockquote&gt;
This gives me a line of enquiry to take, and so reviewing remoting in a .net environment leads us to (as an example) looking at registering a communication channel and specifying the port. This can be done with the System.Runtime.Remoting.Channels.Http class.

Looking at (&lt;a href="http://msdn.microsoft.com/en-us/library/b6xa24z5.aspx"&gt;MSDN&lt;/a&gt;)&lt;br/&gt;
&lt;strong&gt;Sockets&lt;/strong&gt;

The System.Net.Sockets namespace contains a managed implementation of the Windows Sockets interface. All other network-access classes in the System.Net namespace are built on top of this implementation of sockets. 

The .NET Framework Socket class is a managed-code version of the socket services provided by the Winsock32 API. In most cases, the Socket class methods simply marshal data into their native Win32 counterparts and handle any necessary security checks. 

The Socket class supports two basic modes, synchronous and asynchronous. In synchronous mode, calls to functions that perform network operations (such as Send and Receive) wait until the operation completes before returning control to the calling program. In asynchronous mode, these calls return immediately. 

&lt;strong&gt;2. Define some terms. &lt;/strong&gt;

(&lt;a href="http://en.wikipedia.org/wiki/Internet_socket"&gt;Wikipedia&lt;/a&gt;) provides examples of the following API methods
&lt;blockquote&gt;Sockets are usually implemented by an API library such as Berkeley sockets, first introduced in 1983. Most implementations are based on Berkeley sockets, for example Winsock introduced in 1991. Other socket API implementations exist, such as the STREAMS-based Transport Layer Interface (TLI).

Development of application programs that utilize this API is called socket programming or network programming.

These are examples of functions or methods typically provided by the API library:

socket() creates a new socket of a certain socket type, identified by an integer number, and allocates system resources to it. 
bind() is typically used on the server side, and associates a socket with a socket address structure, i.e. a specified local port number and IP address. 
listen() is used on the server side, and causes a bound TCP socket to enter listening state. 
connect() is used on the client side, and assigns a free local port number to a socket. In case of a TCP socket, it causes an attempt to establish a new TCP connection. 
accept() is used on the server side. It accepts a received incoming attempt to create a new TCP connection from the remote client, and creates a new socket associated with the socket address pair of this connection. 
send() and recv(), or write() and read(), or recvfrom() and sendto(), are used for sending and receiving data to/from a remote socket. 
close() causes the system to release resources allocated to a socket. In case of TCP, the connection is terminated.&lt;/blockquote&gt;
&lt;strong&gt;3. How is a socket bound to a port number and what is the role of the operating system on the server end? &lt;/strong&gt;

As per the definition given by (Ince, p50), a socket does not exist without the port number. According to (&lt;a href="http://en.wikipedia.org/wiki/Internet_socket"&gt;Wikipedia &lt;/a&gt;), the operating system forwards incoming IP packets to the corresponding application or service process by extracting the socket address information from the IP and transport protocol headers

&lt;strong&gt;4. Investigate a simple chat client/server system. Look at some program code and describe how it works with multiple users. &lt;/strong&gt;

Here is a &lt;a href="http://vb.net-informations.com/communications/vb.net_chat_server_program.htm"&gt;vb.net&lt;/a&gt; chat server program written in VB that provides information on setting up and implementing  a multi user client/server chat system.

&lt;strong&gt;References&lt;/strong&gt;

Ince, D. (2006). Developing Distributed &amp; E-commerce Applications: Prentice-Hall, Inc. Upper Saddle River, NJ, USA.&lt;br/&gt;
MSDN. Sockets. .NET Framework Developer's Guide   Retrieved 27 May 2009, from &lt;a href="http://msdn.microsoft.com/en-us/library/b6xa24z5.aspx"&gt;http://msdn.microsoft.com/en-us/library/b6xa24z5.aspx&lt;/a&gt;&lt;br/&gt;
VB.NET Communications Tutorial.   Retrieved 28 May 2009, from &lt;a href="http://vb.net-informations.com/communications/vb.net_chat_server_program.htm"&gt;http://vb.net-informations.com/communications/vb.net_chat_server_program.htm&lt;/a&gt;&lt;br/&gt;
Wikipedia. Internet socket. Retrieved 27 May 2009, from &lt;a href="http://en.wikipedia.org/wiki/Internet_socket"&gt;http://en.wikipedia.org/wiki/Internet_socket&lt;/a&gt;&lt;br/&gt;
&lt;p/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-7839728521429434370?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/7839728521429434370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-5-answer-binding-sockets-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7839728521429434370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7839728521429434370'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-5-answer-binding-sockets-in.html' title='Exercise 5: Answer'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-2825585381136331807</id><published>2009-05-21T08:16:00.002+10:00</published><updated>2009-06-23T21:27:14.611+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 02'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 05'/><title type='text'>Exercise 5: About Sockets</title><content type='html'>&lt;a href="http://queue.acm.org/detail.cfm?id=1538949"&gt;Link to article about sockets&lt;/a&gt;&lt;br /&gt;
Found this on Codeproject Daily news email I received this morning. The timing is quite remarkable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-2825585381136331807?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/2825585381136331807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-5-link-to-article.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2825585381136331807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2825585381136331807'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-5-link-to-article.html' title='Exercise 5: About Sockets'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-3803655060760573368</id><published>2009-05-20T22:03:00.004+10:00</published><updated>2009-06-23T21:26:33.439+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 01'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 01'/><category scheme='http://www.blogger.com/atom/ns#' term='Rants'/><category scheme='http://www.blogger.com/atom/ns#' term='Experiences'/><title type='text'>Exercise 1: Weirdness, response to Karens comment</title><content type='html'>The issue I was trying to bring to light can hopefully be better explained by the following 2 screen shots:

&lt;a href="http://1.bp.blogspot.com/_JS00SNKPHSk/ShPyCzt0QpI/AAAAAAAAAB4/H3ukFfkel2c/s1600-h/CaptureGap.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 178px; height: 320px;" src="http://1.bp.blogspot.com/_JS00SNKPHSk/ShPyCzt0QpI/AAAAAAAAAB4/H3ukFfkel2c/s320/CaptureGap.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5337876113420206738" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_JS00SNKPHSk/ShPyCw7Hd_I/AAAAAAAAACA/tBjuQVAX8SU/s1600-h/CaptureCode.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 75px;" src="http://4.bp.blogspot.com/_JS00SNKPHSk/ShPyCw7Hd_I/AAAAAAAAACA/tBjuQVAX8SU/s320/CaptureCode.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5337876112670685170" /&gt;&lt;/a&gt;
&lt;br/&gt;
The first image shows the gap I am talking about.&lt;br/&gt;
The second screen shot displays the code that is somehow generating the gap.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-3803655060760573368?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/3803655060760573368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/weirdness-response-to-karens-comment.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3803655060760573368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3803655060760573368'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/weirdness-response-to-karens-comment.html' title='Exercise 1: Weirdness, response to Karens comment'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JS00SNKPHSk/ShPyCzt0QpI/AAAAAAAAAB4/H3ukFfkel2c/s72-c/CaptureGap.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-4501201350352197230</id><published>2009-05-19T22:03:00.004+10:00</published><updated>2009-06-23T21:26:33.440+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 01'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 01'/><category scheme='http://www.blogger.com/atom/ns#' term='Rants'/><category scheme='http://www.blogger.com/atom/ns#' term='Experiences'/><title type='text'>Exercise 1: Getting weird and unexplained layout using a table.</title><content type='html'>You may be able to see my problem that is causing me to lose hair. Have just wasted umpteen minutes trying to get the table positioned correctly in the blog. But as you can see it is appearing WAY down the page. Has anyone experienced this before. I am not a html expert, have done very little in fact so not sure why this table is being pushed down.

Hoping that someone could provide a hint.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-4501201350352197230?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/4501201350352197230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-1-getting-weird-and.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4501201350352197230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4501201350352197230'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-1-getting-weird-and.html' title='Exercise 1: Getting weird and unexplained layout using a table.'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-3634823534569355139</id><published>2009-05-19T20:34:00.002+10:00</published><updated>2009-06-04T13:23:28.011+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><category scheme='http://www.blogger.com/atom/ns#' term='Rants'/><category scheme='http://www.blogger.com/atom/ns#' term='Experiences'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Ruby'/><title type='text'>Workshop 1: Learning Ruby</title><content type='html'>&lt;p&gt;I downloaded the Audio (Lessons 1-8) from &lt;a href="http://www.buildingwebapps.com/podcasts"&gt;LearningRails&lt;/a&gt; and also the Screencasts (Lessons 9-23). Having never used a podcast in any form before, and not one to burn music, copying these to a format I could listen to in the car on the commute to and from work turned into a challenge that wasn't.&lt;/p&gt;&lt;p&gt;&lt;span style="color:#800000;"&gt;An aside:&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="color:#800000;"&gt;The iTunes player didn't work very well in burning to disk. This may have been for a number of reasons. There may be a bug in Win7 RC that caused my DVD burner to lose itself intermittently. The burner itself may have had a problem. The iTunes interface may have been my problem.&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="color:#800000;"&gt;In the end I stopped using my main machine and used my laptop. This is a dell XPS1330 and also has Win7 RC installed. This  showed the benefits of the homegroups concept introduced in Win7, and the ease with which network setup and connections is now handled.&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Now back to the point of the blog. I finally got the podcasts (audio lessons 1-8) copied onto 3 CDs. Listened to the first 6 episodes today and found that they give a very good, yet brief overview of the Ruby language. Hopefully 7 and 8 tomorrow will give me some idea about actually getting started with Ruby development.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-3634823534569355139?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/3634823534569355139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/learning-ruby.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3634823534569355139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3634823534569355139'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/learning-ruby.html' title='Workshop 1: Learning Ruby'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-3555507727284107515</id><published>2009-05-17T20:51:00.003+10:00</published><updated>2009-05-30T07:45:01.582+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 4'/><title type='text'>Workshop 4: Riding the Rails with Ruby</title><content type='html'>&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Topic objectives&lt;/b&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;To learn about the Ruby language and its classes and methods; &lt;/li&gt;&lt;li&gt;To use Ruby via an interpreter console window with Windows, Linux or MacOS &lt;/li&gt;&lt;li&gt;To select and test a Ruby IDE &lt;/li&gt;&lt;li&gt;To explain how Rails framework is built upon inheritance of Ruby classes and methods. &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;b&gt;To do: &lt;/b&gt;&lt;/p&gt;&lt;p&gt;1. Spend some time moving your way through the 46 Ruby coding examples in the Ruby Tutorial with Code from &lt;a href="http://www.fincher.org/tips/Languages/Ruby/"&gt;http://www.fincher.org/tips/Languages/Ruby/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2. What are the syntax differences in the way that Ruby and Javascript use the &lt;b&gt;if&lt;/b&gt; statement? &lt;/p&gt;&lt;p&gt;3. While Ruby and Python are quite similar, can you find some similarities between Ruby and Javascript?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Challenge Problems&lt;/b&gt;&lt;b&gt;: &lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;1. &lt;/b&gt;Create, test and debug a Ruby program called dognames.rb or catnames.rb to accept 3 names from the keyboard and to display each name on the screen in alphabetical order WITHOUT using a data structure such as a list.&lt;/p&gt;&lt;p&gt;&lt;b&gt;2. &lt;/b&gt;Write a Ruby program called &lt;b&gt;fizzbuzz.rb&lt;/b&gt; that prints the numbers from 1 to 100. But for multiples of three print "Fizz" instead of the number and for the multiples of five print "Buzz". For numbers which are multiples of both three and five print "FizzBuzz".&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;3. &lt;/b&gt;Compare the Ruby and Python versions of the dog years calculator:&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-3555507727284107515?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/3555507727284107515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-4.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3555507727284107515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3555507727284107515'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-4.html' title='Workshop 4: Riding the Rails with Ruby'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-6386630504225121448</id><published>2009-05-17T20:50:00.002+10:00</published><updated>2009-05-30T07:45:01.583+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 3'/><title type='text'>Workshop 3: Online Taxi Booking System: MySQL and Database design</title><content type='html'>&lt;p&gt;&lt;b&gt;Topic objectives&lt;/b&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Develop a database object design for an online taxi booking system (OTBS); &lt;/li&gt;&lt;li&gt;Revise database techniques with Rails and SQL &lt;/li&gt;&lt;li&gt;Describe how to use the MVC “push-based architecture” in the Ruby on Rails development environment &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;b&gt;To do: &lt;/b&gt;&lt;/p&gt;&lt;p&gt;1. Set up the &lt;b&gt;MySQL tools&lt;/b&gt; on your computer as described in section 6 above.&lt;/p&gt;&lt;p&gt;2. Rails will setup a new application directory for each of your Web application projects. Get &lt;b&gt;InstantRail&lt;/b&gt;s (Windows) or &lt;b&gt;Locomotive&lt;/b&gt; (MacOS) running on your machine. Both packages install Ruby, Rails, a Web server or one called ‘&lt;i&gt;Mongrel&lt;/i&gt;’ or another small Ruby Web server called ‘&lt;i&gt;WEBrick&lt;/i&gt;’, and MySQL “inside a bubble” as I call it so that others parts of your system are not modified (Similarly ZOPE does with installing its own Web server and Python versions).&lt;/p&gt;&lt;p&gt;3. Once Rails is running you at http://localhost:3000, you need to configure database access. Connection to the database is specified in the config/database.yml file.&lt;/p&gt;&lt;p&gt;4. Generate the &lt;b&gt;Passenger&lt;/b&gt; model by creating the MySQL database and ‘passengers’ table from the information above.&lt;/p&gt;&lt;p&gt;5. Further work on understanding MySQL under Rails by David Mertz:&lt;/p&gt;&lt;p&gt;a. See “&lt;i&gt;Fast-track your Web apps with Ruby on Rails&lt;/i&gt;” at &lt;a href="http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/"&gt;http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;b. The “&lt;i&gt;Rolling with Ruby on Rails”&lt;/i&gt; series and “Cookbook recipes by Curt Hibbs and others beginning at &lt;a href="http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html"&gt;http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-6386630504225121448?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/6386630504225121448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6386630504225121448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6386630504225121448'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-3.html' title='Workshop 3: Online Taxi Booking System: MySQL and Database design'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-6769008872059414106</id><published>2009-05-17T20:48:00.005+10:00</published><updated>2009-06-11T21:11:47.744+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 2'/><title type='text'>Workshop 2: Model View Controller design approach</title><content type='html'>&lt;p&gt;&lt;b&gt;Topic objectives&lt;/b&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Describe the history and architecture of the Model View Controller (MVC) approach to Web application design; &lt;/li&gt;    &lt;li&gt;Revise database techniques with Rails and SQL &lt;/li&gt;    &lt;li&gt;Describe how to use MVC in the Ruby on Rails development environment &lt;/li&gt;    &lt;li&gt;Set up a focus group (like a study group for peer learning) to work on the Ruby on Rails workshops via Interact tools &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;b&gt;To do: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;1. Set up a focus group (like a study group for peer learning) to work on the Ruby on Rails workshops via Interact tools as a class. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;This has been informally done via the forum. We haven't organised a study group, but comments have been forthcoming on issues when they have arisen.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2. What is meant by “&lt;b&gt;&lt;i&gt;convention over configuration&lt;/i&gt;&lt;/b&gt;” and how does it reduce coding?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;(&lt;a href="http://en.wikipedia.org/wiki/Convention_over_Configuration"&gt;Wikipedia&lt;/a&gt;)&lt;strong&gt;Convention over Configuration&lt;/strong&gt; (aka Coding by convention) is a software &lt;a href="http://en.wikipedia.org/wiki/Design_paradigm"&gt;design paradigm&lt;/a&gt; which seeks to decrease the number of decisions that developers need to make, gaining simplicity, but not necessarily losing flexibility.&lt;/p&gt;    &lt;p&gt;The phrase essentially means a developer only needs to specify unconventional aspects of the application. For example, if there's a class Sale in the model, the corresponding table in the database is called sales by default. It is only if one deviates from this convention, such as calling the table &amp;quot;products_sold&amp;quot;, that one needs to write code regarding these names.&lt;/p&gt;    &lt;p&gt;When the convention implemented by the tool you are using matches your desired behaviour, you enjoy the benefits without having to write configuration files. When your desired behaviour deviates from the implemented convention, then you configure your desired behaviour.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;3. Further work on understanding MVC:&lt;/p&gt;  &lt;p&gt;a. See the wiki at &lt;a href="http://wiki.rubyonrails.org/rails/pages/UnderstandingMVC"&gt;http://wiki.rubyonrails.org/rails/pages/UnderstandingMVC&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;As Karen pointed out on the forums and I have found out subsequently, there is nothing to be gained by going to this site. This is what grabs you    &lt;blockquote&gt;&lt;strong&gt;This topic does not exist yet&lt;/strong&gt;&lt;/blockquote&gt; As I posted on the forums, Ken may have meant for us to visit &lt;a href="http://c2.com/cgi/wiki?ModelViewController"&gt;http://c2.com/cgi/wiki?ModelViewController&lt;/a&gt;&lt;/blockquote&gt;  &lt;p&gt;b. Do the &lt;b&gt;MVC tutorial&lt;/b&gt; at &lt;a href="http://wiki.squeak.org/squeak/1767"&gt;http://wiki.squeak.org/squeak/1767&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;I have visited this URL and downloaded the tutorial which is in a nice small zip file. Unzipped the file and then looked at the contents page which said that the tutorial was to develop and MVC application in Smalltalk. Not sure about anyone else, but I decided then and there that I didn't need to learn yet another syntax just at the moment.&lt;/blockquote&gt;  &lt;p&gt;4. Got a spare hour or so? I recommend the UC Berkeley &lt;b&gt;RAD lab’s Ruby on Rails Short course&lt;/b&gt; at &lt;a href="http://youtube.com/watch?v=LADHwoN2LMM"&gt;http://YouTube.com/watch?v=LADHwoN2LMM&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;I watched this yesterday. I found this to be very useful in bringing the concepts talked about in the podcast LearningRails episodes to light. He does speak a little quickly, but he is definitely enthusiastic.&lt;/blockquote&gt;  &lt;p&gt;5. Read the Flash article using ActionScript by Colin Moock titled “&lt;b&gt;The Model-View-Controller Design Pattern&lt;/b&gt; “at &lt;a href="http://www.adobe.com/devnet/flash/articles/mv_controller.html"&gt;http://www.adobe.com/devnet/flash/articles/mv_controller.html&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;I have read this article. Got enthusiastic enough to download the entire chapter. The full chapter explains how the author builds an MVC Clock that displays digital and analog time. Unfortunately I didn't actually gain a lot from the rest of the chapter. It contains a lot of code with some explanations of how all the pieces fit together, but I felt that he laboured the point just a little. &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Wikipedia. Convention over configuration. Retrieved 11 June 2009, from &lt;a title="http://en.wikipedia.org/wiki/Convention_over_Configuration" href="http://en.wikipedia.org/wiki/Convention_over_Configuration"&gt;http://en.wikipedia.org/wiki/Convention_over_Configuration&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-6769008872059414106?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/6769008872059414106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6769008872059414106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6769008872059414106'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-2.html' title='Workshop 2: Model View Controller design approach'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-4633796369815108741</id><published>2009-05-17T20:24:00.004+10:00</published><updated>2009-07-20T21:10:10.180+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 07'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 12'/><title type='text'>Exercise 12: Designing for a secure framework</title><content type='html'>&lt;ol&gt;&lt;li&gt;Find out about SET and the use of RSA 128-bit encryption for e-commerce. &lt;/li&gt;&lt;blockquote&gt;&lt;p&gt;According to (&lt;a href="http://en.wikipedia.org/wiki/Secure_Electronic_Transaction"&gt;Wikipedia&lt;/a&gt;) Secure Electronic Transaction (SET) was a standard protocol for securing credit card transactions over insecure networks, specifically, the Internet. SET was not itself a payment system, but rather a set of security protocols and formats that enables users to employ the existing credit card payment infrastructure on an open network in a secure fashion. However, it failed to gain traction.&lt;/p&gt;&lt;p&gt;SET was developed by SETco, led by VISA and MasterCard (and involving other companies such as GTE, IBM, Microsoft, Netscape, RSA and VeriSign) starting in 1996. SET was based on X.509 certificates with several extensions. The first version was finalised in May 1997 and a pilot test was announced in July 1998.&lt;/p&gt;&lt;p&gt;SET was intended to become the de facto standard of payment method on the Internet between the merchants, the buyers, and the credit-card companies. Despite heavy publicity, it failed to win market share. Reasons for this include:&lt;ul&gt;&lt;li&gt;Network effect - need to install client software (an e wallet).&lt;/li&gt;&lt;li&gt;Cost and complexity for merchants to offer support and comparatively low cost and simplicity of the existing SSL based alternative.&lt;/li&gt;&lt;li&gt;Client-side certificate distribution logistics. &lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;According to (&lt;a href="http://en.wikipedia.org/wiki/RSA"&gt;Wikipedia&lt;/a&gt;) RSA keys are typically 1024-2048 bits long. RSA is an algorithm for public-key cryptography. It is the first algorithm known to be suitable for signing as well as encryption, and one of the first great advances in public key cryptography. RSA is widely used in electronic commerce protocols, and is believed to be secure given sufficiently long keys and the use of up-to-date implementations.&lt;/p&gt;&lt;/blockquote&gt;&lt;li&gt;Design a Web application form for a new credit card.&lt;br /&gt;&lt;/li&gt;&lt;blockquote&gt;x&lt;/blockquote&gt;&lt;li&gt;What can you find out about network and host-based intrusion detection systems?&lt;/li&gt;
&lt;blockquote&gt;&lt;p&gt;(&lt;a href="http://en.wikipedia.org/wiki/Host-based_intrusion_detection_system"&gt;Wikipedia&lt;/a&gt;)says that one can think of a HIDS as an agent that monitors whether anything or anyone, whether internal or external, has circumvented the system's security policy.&lt;/p&gt;&lt;p&gt;According to (&lt;a href="http://en.wikipedia.org/wiki/Network_intrusion_detection_system"&gt;Wikipedia&lt;/a&gt;)a network intrusion detection system (NIDS) is an intrusion detection system that tries to detect malicious activity such as denial of service attacks, port scans or even attempts to crack into computers by monitoring network traffic.&lt;/p&gt;&lt;p&gt;The NIDS does this by reading all the incoming packets and trying to find suspicious patterns. If, for example, a large number of TCP connection requests to a very large number of different ports are observed, one could assume that there is someone conducting a port scan of some or all of the computer(s) in the network. It also (mostly) tries to detect incoming shellcodes in the same manner that an ordinary intrusion detection systems does.&lt;/p&gt;&lt;p&gt;A NIDS is not limited to inspecting incoming network traffic only. Often valuable information about an ongoing intrusion can be learned from outgoing or local traffic as well. Some attacks might even be staged from the inside of the monitored network or network segment, and are therefore not regarded as incoming traffic at all.&lt;/p&gt;&lt;/blockquote&gt; &lt;/ol&gt;&lt;br/&gt;
&lt;strong&gt;References&lt;/strong&gt;&lt;br/&gt;
Wikipedia. Host-based intrusion detection system. Retrieved 30 June 2009, from &lt;a href="http://en.wikipedia.org/wiki/Host-based_intrusion_detection_system"&gt;http://en.wikipedia.org/wiki/Host-based_intrusion_detection_system&lt;/a&gt;&lt;br/&gt;
Wikipedia. Network intrusion detection system. Retrieved 30 June 2009, from &lt;a href="http://en.wikipedia.org/wiki/Network_intrusion_detection_system"&gt;http://en.wikipedia.org/wiki/Network_intrusion_detection_system&lt;/a&gt;&lt;br/&gt;
Wikipedia. RSA. Retrieved 20 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/RSA"&gt;http://en.wikipedia.org/wiki/RSA&lt;/a&gt;&lt;br/&gt;
Wikipedia. Secure Electronic Transaction. Retrieved 20 July 2009, from &lt;a href="http://en.wikipedia.org/wiki/Secure_Electronic_Transaction"&gt;http://en.wikipedia.org/wiki/Secure_Electronic_Transaction&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-4633796369815108741?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/4633796369815108741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-12-designing-for-secure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4633796369815108741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4633796369815108741'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-12-designing-for-secure.html' title='Exercise 12: Designing for a secure framework'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-6616231868087639170</id><published>2009-05-17T20:22:00.001+10:00</published><updated>2009-06-23T21:28:55.078+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 05'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 11'/><title type='text'>Exercise 11: XML introduction</title><content type='html'>&lt;ol&gt;   &lt;li&gt;Conduct research on the Internet to find out what tools can be used to parse an XML document and ensure that the document is well formed and valid.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;XML schema is a forthcoming development of the technology. Visit the W3C website and search for information on schema. What are the benefits of adopting a schema standardized for a business sector?      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;What are DOMs and why were they developed?      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Why are some developers using SAX instead of DOM for document processing?      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;SMIL is an application of XML. What is the purpose of this technology? Where does it apply?      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;The current recommendation of W3C is to use XHTML as an alternative to HTML.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Do you think adopting XHTML is a wise move? &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-6616231868087639170?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/6616231868087639170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-11-xml-introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6616231868087639170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6616231868087639170'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-11-xml-introduction.html' title='Exercise 11: XML introduction'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-8926342530145205011</id><published>2009-05-17T20:20:00.001+10:00</published><updated>2009-06-23T21:28:18.572+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 04'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 10'/><title type='text'>Exercise 10: Application server platforms in e-commerce</title><content type='html'>&lt;ol&gt;   &lt;li&gt;List some application servers in competition with ZOPE. Access the web and find the latest version of the application servers mentioned in the text. When were they released? Can you make any conclusion about the release cycle of Internet software in comparison to other business software (e.g. spreadsheet, word processor, accounting packages)? &lt;/li&gt;    &lt;li&gt;List the main Web servers. What types of companies are offering the leading servers? Distinguish between open source and proprietary products. Who is providing support for the products? How much do they cost? Do you think the Web server purchase price is a significant factor in budget considerations for a large e-commerce initiative? &lt;/li&gt;    &lt;li&gt;Go to the website of IBM, Oracle, Microsoft and Sybase. Is there any mention of e-commerce associated with their database products? What suite or partnership do they list with related e-commerce offerings? How do they compare with open source products like MySQL?      &lt;br /&gt;Access the web and find the current rate for website hosting. What are the criteria used by the ISP for pricing? &lt;/li&gt;    &lt;li&gt;Why is the perception getting stronger that integration will become a critical factor in coming days? &lt;/li&gt;    &lt;li&gt;What is the role of ERP within the enterprise software architecture? &lt;/li&gt;    &lt;li&gt;What is Customer Resource Management and why is it important to e-commerce? &lt;/li&gt;    &lt;li&gt;What are the differences between HTML and DHTML? &lt;/li&gt;    &lt;li&gt;Why was XHTML developed? Do you think this addresses most of the HTML weaknesses? &lt;/li&gt;    &lt;li&gt;What are the similarities between JavaScript, VBScript and ZOPE’s DTML? &lt;/li&gt;    &lt;li&gt;What are the similarities and differences between ASP, JSP and PHP? &lt;/li&gt;    &lt;li&gt;What are the differences between the various approaches to scripting? &lt;/li&gt;    &lt;li&gt;List some of the shareware or freely available tools for web design. In addition to a good HTML editor, what utilities could be very handy to the developer? &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-8926342530145205011?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/8926342530145205011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-10-application-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8926342530145205011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8926342530145205011'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-10-application-server.html' title='Exercise 10: Application server platforms in e-commerce'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-8331260438178995838</id><published>2009-05-17T20:14:00.001+10:00</published><updated>2009-06-23T21:28:18.572+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 04'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 09'/><title type='text'>Exercise 9: Web form design and processing: A basis for e-commerce interaction</title><content type='html'>&lt;ol&gt;   &lt;li&gt;Design the form      &lt;br /&gt;“Retrofit” the form data string above for buying some French perfume into the HTML form fields and submit button on the Web page form.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Write the script      &lt;br /&gt;Script archives exist for PERL, Python and JavaScript. Search the Web for a script that processes the HTML forms data. Read the code and list the steps involved in processing the form.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Can you modify the script to process the form? &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-8331260438178995838?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/8331260438178995838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-9-web-form-design-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8331260438178995838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/8331260438178995838'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-9-web-form-design-and.html' title='Exercise 9: Web form design and processing: A basis for e-commerce interaction'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-3820772233550156026</id><published>2009-05-17T20:12:00.001+10:00</published><updated>2009-06-23T21:27:47.459+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 08'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic 03'/><title type='text'>Exercise 8: PHP and MySQL database access</title><content type='html'>&lt;ol&gt;   &lt;li&gt;Start with a simple table in the database:      &lt;br /&gt;mysql&amp;gt; SELECT * FROM employees; &lt;/li&gt;    &lt;li&gt;Create a web page with the following PHP:      &lt;br /&gt;&amp;lt;?php       &lt;br /&gt;$db = mysql_connect(“farrer.csu.edu.au&amp;quot;, “keustace&amp;quot;, “password&amp;quot;);       &lt;br /&gt;mysql_select_db(“mydatabase&amp;quot;,$db);       &lt;br /&gt;$result = mysql_query(&amp;quot;SELECT * FROM employees&amp;quot;,$db);       &lt;br /&gt;echo &amp;quot;First Name: &amp;quot;, mysql_result($result,0,&amp;quot;first&amp;quot;), &amp;quot;&amp;lt;BR&amp;gt;&amp;quot;;       &lt;br /&gt;echo &amp;quot;Last Name: &amp;quot;, mysql_result($result,0,&amp;quot;last&amp;quot;), &amp;quot;&amp;lt;BR&amp;gt;&amp;quot;;       &lt;br /&gt;echo &amp;quot;Address: &amp;quot;, mysql_result($result,0,&amp;quot;address&amp;quot;), &amp;quot;&amp;lt;BR&amp;gt;&amp;quot;;       &lt;br /&gt;echo &amp;quot;Position: &amp;quot;, mysql_result($result,0,&amp;quot;position&amp;quot;), &amp;quot;&amp;lt;BR&amp;gt;&amp;quot;;       &lt;br /&gt;?&amp;gt;       &lt;br /&gt;My password is included? We look at security later…☺ &lt;/li&gt;    &lt;li&gt;This is how we can add a record and is part of a file to create called add_record.html      &lt;br /&gt;&amp;lt;HTML&amp;gt;       &lt;br /&gt;&amp;lt;BODY&amp;gt;       &lt;br /&gt;&amp;lt;FORM METHOD=&amp;quot;POST&amp;quot; ACTION=&amp;quot;add_record.php&amp;quot;&amp;gt;       &lt;br /&gt;First name:&amp;lt;INPUT TYPE=&amp;quot;Text&amp;quot; NAME=&amp;quot;first&amp;quot;&amp;gt;&amp;lt;br&amp;gt;       &lt;br /&gt;Last name:&amp;lt;INPUT TYPE=&amp;quot;Text&amp;quot; NAME=&amp;quot;last&amp;quot;&amp;gt;&amp;lt;br&amp;gt;       &lt;br /&gt;Address:&amp;lt;INPUT TYPE=&amp;quot;Text&amp;quot; NAME=&amp;quot;address&amp;quot;&amp;gt;&amp;lt;br&amp;gt;       &lt;br /&gt;Position:&amp;lt;INPUT TYPE=&amp;quot;Text&amp;quot; NAME=&amp;quot;position&amp;quot;&amp;gt;&amp;lt;br&amp;gt;       &lt;br /&gt;&amp;lt;INPUT TYPE=&amp;quot;Submit&amp;quot; NAME=&amp;quot;submit&amp;quot; VALUE=&amp;quot;Enter information&amp;quot;&amp;gt;       &lt;br /&gt;&amp;lt;/FORM&amp;gt;       &lt;br /&gt;&amp;lt;/BODY&amp;gt;       &lt;br /&gt;&amp;lt;/HTML&amp;gt; &lt;/li&gt;    &lt;li&gt;The corresponding PHP file is add_record.php used with the POST method:      &lt;br /&gt;&amp;lt;?php $db = mysql_connect(“farrer.csu.edu.au&amp;quot;, “keustace&amp;quot;, &amp;quot;password&amp;quot;);       &lt;br /&gt;mysql_select_db(“mydatabase&amp;quot;,$db);       &lt;br /&gt;$result = mysql_query(&amp;quot;INERT INTO employees (first,last,address,position) VALUES ('$first','$last','$address','$position')&amp;quot;);       &lt;br /&gt;if ($result == 1) { echo &amp;quot;Thank you! Your information has been entered.“;       &lt;br /&gt;} else {       &lt;br /&gt;echo &amp;quot;Sorry, there's a problem&amp;quot;;       &lt;br /&gt;}       &lt;br /&gt;?&amp;gt; &lt;/li&gt;    &lt;li&gt;The last code example shows how to get multiple records:      &lt;br /&gt;&amp;lt;?php       &lt;br /&gt;$db = mysql_connect(“farrer.csu.edu.au&amp;quot;, “keustace&amp;quot;, &amp;quot;password&amp;quot;);       &lt;br /&gt;mysql_select_db(“mydatabase&amp;quot;,$db);       &lt;br /&gt;$result = mysql_query(&amp;quot;SELECT * FROM employees&amp;quot;,$db);       &lt;br /&gt;echo &amp;quot;&amp;lt;table border=1&amp;gt;\n&amp;quot;;       &lt;br /&gt;echo &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Name&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Position&amp;lt;/b&amp;gt;&amp;lt;/tr&amp;gt;\n&amp;quot;;       &lt;br /&gt;while ($myrow = mysql_fetch_row($result)) {       &lt;br /&gt;echo &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot;, $myrow[2], &amp;quot;, &amp;quot;, $myrow[1], &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;, $myrow[3], &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;       &lt;br /&gt;}       &lt;br /&gt;echo &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-3820772233550156026?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/3820772233550156026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-8-php-and-mysql-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3820772233550156026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3820772233550156026'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-8-php-and-mysql-database.html' title='Exercise 8: PHP and MySQL database access'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-4217680557721302247</id><published>2009-05-17T20:10:00.001+10:00</published><updated>2009-06-23T21:27:47.459+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 03'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 07'/><title type='text'>Exercise 7: User input for database access with PHP</title><content type='html'>&lt;ol&gt;   &lt;li&gt;Create an HTML page with the form:      &lt;br /&gt;&amp;lt;FORM METHOD=&amp;quot;GET&amp;quot; ACTION=&amp;quot;submit.php&amp;quot;&amp;gt; What's your name? &amp;lt;INPUT NAME=&amp;quot;myname&amp;quot; SIZE=10&amp;gt;       &lt;br /&gt;(Then press RETURN)       &lt;br /&gt;&amp;lt;/FORM&amp;gt; &lt;/li&gt;    &lt;li&gt;Then, create a PHP file named submit.php with the following code:      &lt;br /&gt;&amp;lt;?php       &lt;br /&gt;echo &amp;quot;Hello, &amp;quot;, $myname;       &lt;br /&gt;?&amp;gt; &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-4217680557721302247?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/4217680557721302247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-7-user-input-for-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4217680557721302247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4217680557721302247'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-7-user-input-for-database.html' title='Exercise 7: User input for database access with PHP'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-354876469037461968</id><published>2009-05-17T20:09:00.001+10:00</published><updated>2009-06-23T21:27:47.460+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 03'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 06'/><title type='text'>Exercise 6: Some server practice with PHP</title><content type='html'>&lt;ol&gt;   &lt;li&gt;In this exercise with can call up and examine some environment variables on the server. The code below has the UNIX environment variable for storing your remote Internet address. UNIX environment variable are recognised by the use of upper case letters. Try the same code by replacing with $REMOTE_ADDR $SERVER_NAME, or $PHP_SELF      &lt;br /&gt;&amp;lt;HTML&amp;gt;       &lt;br /&gt;&amp;lt;HEAD&amp;gt;       &lt;br /&gt;&amp;lt;/HEAD&amp;gt;       &lt;br /&gt;&amp;lt;BODY&amp;gt;       &lt;br /&gt;&amp;lt;?php       &lt;br /&gt;echo &amp;quot;You are connected from: &amp;quot;,$REMOTE_ADDR;       &lt;br /&gt;echo &amp;quot;&amp;lt;BR&amp;gt;&amp;quot;;       &lt;br /&gt;?&amp;gt;       &lt;br /&gt;&amp;lt;/BODY&amp;gt;       &lt;br /&gt;&amp;lt;/HTML&amp;gt; &lt;/li&gt;    &lt;li&gt;Create a web application called &amp;quot;hello_world.php&amp;quot; which contains in the body:      &lt;br /&gt;&amp;lt;?php       &lt;br /&gt;$myvar = &amp;quot;Hello World!&amp;quot;;       &lt;br /&gt;echo $myvar;       &lt;br /&gt;?&amp;gt; &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-354876469037461968?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/354876469037461968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-6-some-server-practice-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/354876469037461968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/354876469037461968'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-6-some-server-practice-with.html' title='Exercise 6: Some server practice with PHP'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-4435736892133563054</id><published>2009-05-17T20:08:00.001+10:00</published><updated>2009-06-23T21:27:14.612+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 02'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 05'/><title type='text'>Exercise 5: Binding sockets in a chat room</title><content type='html'>&lt;ol&gt;   &lt;li&gt;Using any familiar programming language environment, what do you know about sockets (network) programming? &lt;/li&gt;    &lt;li&gt;Define some terms. &lt;/li&gt;    &lt;li&gt;How is a socket bound to a port number and what is the role of the operating system on the server end? &lt;/li&gt;    &lt;li&gt;Investigate a simple chat client/server system. Look at some program code and describe how it works with multiple users. &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-4435736892133563054?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/4435736892133563054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-5-binding-sockets-in-chat-room.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4435736892133563054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4435736892133563054'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-5-binding-sockets-in-chat-room.html' title='Exercise 5: Binding sockets in a chat room'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-6868169006564303565</id><published>2009-05-17T19:52:00.001+10:00</published><updated>2009-05-19T20:59:44.474+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Introduction'/><title type='text'>Introduction: Computing Background</title><content type='html'>&lt;p&gt;A brief look at what I have been exposed to and used over the past 20 years or so:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;XP, Vista, Win7 &lt;/li&gt;&lt;li&gt;.net framework 2.0 &lt;/li&gt;&lt;li&gt;VS 2003, 2005, 2008 (Predominantly VB) &lt;/li&gt;&lt;li&gt;Visual Basic V6, Visual Studio .Net, C# 2005 &lt;/li&gt;&lt;li&gt;SQL Server 7, 2000, 2005 &lt;/li&gt;&lt;li&gt;Microsoft Analysis Services, DTS packages &lt;/li&gt;&lt;li&gt;Extensive development of SQL Stored procedures &lt;/li&gt;&lt;li&gt;OpenDOCS, KFlow, Lattice HR/Payroll, Finance One &lt;/li&gt;&lt;li&gt;GEAC Pathway, Masterview, Heat &lt;/li&gt;&lt;li&gt;Extensive VBA Programming (Word, Excel, Access and Outlook) &lt;/li&gt;&lt;li&gt;Oracle PL/SQL and database administration &lt;/li&gt;&lt;li&gt;Oracle Financials administration and support &lt;/li&gt;&lt;li&gt;Peoplesoft v7.5 and v8.4 &lt;/li&gt;&lt;li&gt;CHRIS HR/Payroll administration and support &lt;/li&gt;&lt;li&gt;GEAC Pathway software implementation and support &lt;/li&gt;&lt;li&gt;Software and hardware installation, support and troubleshooting &lt;/li&gt;&lt;li&gt;ASP web page application development &lt;/li&gt;&lt;li&gt;CGPL (GIS Interface Programming Language) &lt;/li&gt;&lt;li&gt;Geographic Data Management System, GDMS. &lt;/li&gt;&lt;li&gt;Infomaster, Formida GIS programming language &lt;/li&gt;&lt;li&gt;MapInfo, MapBasic, Autolisp development &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-6868169006564303565?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/6868169006564303565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/computing-background.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6868169006564303565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6868169006564303565'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/computing-background.html' title='Introduction: Computing Background'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-6572726701134192006</id><published>2009-05-17T17:03:00.002+10:00</published><updated>2009-06-04T13:23:28.011+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><category scheme='http://www.blogger.com/atom/ns#' term='Rants'/><category scheme='http://www.blogger.com/atom/ns#' term='Experiences'/><title type='text'>Workshop 1: InstantRails success – Ruby now working</title><content type='html'>&lt;p&gt;Got to have some fun with testing Win7 and creating a virtual machine. Worked fine after I had fiddled a bit with some of the settings.  &lt;/p&gt;&lt;p&gt;Got my completely vanilla Win7 virtual machine set up about 4pm. Have run the InstantRails app and it has all worked. &lt;/p&gt;&lt;p&gt;Have played with the Cookbook app, sort of but am not sure what I am connected to. Have never played with a &lt;strong&gt;&lt;span style="font-size:130%;"&gt;Hosts file&lt;/span&gt;&lt;/strong&gt; before so am presuming that when changed to point mycookbook to 127.0.0.1 it worked, but when you run the site how do you tell?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-6572726701134192006?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/6572726701134192006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/instantrails-success-ruby-now-working.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6572726701134192006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/6572726701134192006'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/instantrails-success-ruby-now-working.html' title='Workshop 1: InstantRails success – Ruby now working'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-3028050956155830660</id><published>2009-05-17T12:39:00.006+10:00</published><updated>2009-06-04T13:23:28.011+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><category scheme='http://www.blogger.com/atom/ns#' term='Rants'/><category scheme='http://www.blogger.com/atom/ns#' term='Experiences'/><title type='text'>Workshop 1: Ruby fun</title><content type='html'>&lt;div align="justify"&gt;I am having a wonderful time trying to get ruby to work. &lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;
&lt;/div&gt;I have downloaded itunes64, installed it and have proceeded to download lots of podcasts(in the learning rails series)&lt;/div&gt;&lt;div align="justify"&gt;
On unzipping the Instantrails zip file (this took longer than I expected, in the order of 5 minutes or so. Seems excessive for a 170MB expansion)and trying to run the InstantRails app was informed that my file path could not contain spaces. Painful to say the least.
&lt;/div&gt;&lt;div align="justify"&gt;
Got a new path and copied all the files (only about 40000 of them)&lt;/div&gt;&lt;div align="justify"&gt;
Ran the InstantRails app and get the following error:&lt;/div&gt;&lt;div align="justify"&gt;
&lt;a href="http://3.bp.blogspot.com/_JS00SNKPHSk/Sg9639UKbNI/AAAAAAAAABA/QVMp8JrbVwM/s1600-h/ApacheError.png"&gt;&lt;img style="WIDTH: 320px; HEIGHT: 112px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5336619185227853010" border="0" alt="" src="http://3.bp.blogspot.com/_JS00SNKPHSk/Sg9639UKbNI/AAAAAAAAABA/QVMp8JrbVwM/s320/ApacheError.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;
My machine is running Windows 7 64bit, have VS2008 professional installed with SQL2008 standard edition installed.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;
I guess this has something to do with SQL server??&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;
Somewhere in all of this is the answer to my problems.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;
I may have to resort to creating a vanilla virtual machine with nothing installed. Unless someone has some other advice.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;
The documentation for installing Ruby leaves a lot to be desired.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-3028050956155830660?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/3028050956155830660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/ruby-fun.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3028050956155830660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/3028050956155830660'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/ruby-fun.html' title='Workshop 1: Ruby fun'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JS00SNKPHSk/Sg9639UKbNI/AAAAAAAAABA/QVMp8JrbVwM/s72-c/ApacheError.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-2642662473329568993</id><published>2009-05-17T11:29:00.002+10:00</published><updated>2009-05-30T07:45:01.585+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop 1'/><title type='text'>Workshop 1: Setting up the model railway</title><content type='html'>&lt;p&gt;&lt;b&gt;Topic objectives&lt;/b&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Install Ruby on Rails on your computer (InstantRails or Locomotive); &lt;/li&gt;&lt;li&gt;Learn about the Model View Controller (MVC) approach to Web application design; &lt;/li&gt;&lt;li&gt;Revise database techniques with MySQL &lt;/li&gt;&lt;li&gt;Learn how to use the Ruby on Rails development environment &lt;/li&gt;&lt;li&gt;Set up a focus group (like a study group for peer learning) to work on the Ruby on Rails workshops via Interact tools &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;b&gt;To do: &lt;/b&gt;&lt;/p&gt;&lt;p&gt;1. Download iTunes from &lt;a href="http://www.apple.com/itunes/download/"&gt;http://www.apple.com/itunes/download/&lt;/a&gt; and subscribe to the “Learning Rails” Podcasts from &lt;a href="http://www.buildingwebapps.com/podcasts"&gt;http://www.buildingwebapps.com/podcasts&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2. Install Ruby on Rails on your computer by using the material and downloads from &lt;a href="http://www.rubyonrails.org/"&gt;http://www.rubyonrails.org/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;3. Rather than get Ruby on Rails running manually, you use the pre-packaged solutions. These include everything in one bundle: Web server, database, Ruby, Rails, the works.&lt;/p&gt;&lt;p&gt;a. For OS X, there's Locomotive.&lt;/p&gt;&lt;p&gt;b. For Windows, there's Instant Rails.&lt;/p&gt;&lt;p&gt;Recommended time: 1-4 hours. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Challenge Problems: &lt;/b&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Make a list of all programming languages and Web development tools used by you in prior experiences. Describe what you know about Web application frameworks before we begin. &lt;/li&gt;&lt;li&gt;Ruby is “&lt;i&gt;an interpreted scripting language” for quick and easy object-oriented programming&lt;/i&gt;”. Find out about the Ruby language and discover what this means. &lt;/li&gt;&lt;li&gt;What is Rails and how does it work with Ruby? &lt;/li&gt;&lt;li&gt;What is meant by “convention over configuration” in regards to the use of Rails in Web application development? &lt;/li&gt;&lt;li&gt;When did Model-View-Controller begin and where is it used? &lt;/li&gt;&lt;li&gt;Describe the steps involved with the MVC design approach. &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-2642662473329568993?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/2642662473329568993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2642662473329568993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/2642662473329568993'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/workshop-1.html' title='Workshop 1: Setting up the model railway'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-4265192901899653798</id><published>2009-05-16T17:19:00.000+10:00</published><updated>2009-06-23T21:26:33.441+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 04'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic 01'/><title type='text'>Exercise 4: Chapter 2 Review questions</title><content type='html'>&lt;ol&gt;&lt;li&gt; Describe the IP protocol. What is DNS?  &lt;li&gt;Describe the TCP protocol. How is it related to the IP protocol? &lt;/li&gt; &lt;li&gt; Differentiate between intranets and extranets.    &lt;br /&gt;    &lt;/li&gt;  &lt;li&gt;   Describe the different elements of HTTP protocol.    &lt;br /&gt;&lt;/li&gt;  &lt;li&gt; What do you know about building e-business applications as an Intranet, Extranet, Web portal, B2B, B2C or Virtual Private Network (VPN)? Find some examples on the Web.  &lt;/li&gt;  &lt;li&gt;   What role can a VPN play in business-to-business e-commerce? &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-4265192901899653798?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/4265192901899653798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-4-chapter-2-review-questions_16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4265192901899653798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/4265192901899653798'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-4-chapter-2-review-questions_16.html' title='Exercise 4: Chapter 2 Review questions'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-606835780633628939</id><published>2009-05-14T16:14:00.000+10:00</published><updated>2009-06-23T21:26:33.441+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 03'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic 01'/><title type='text'>Exercise 3: Finding some common ground</title><content type='html'>&lt;ol&gt;   &lt;li&gt;Describe the steps involved with the Rapid Evolutionary Prototyping Approach as it applies to developing a Web application. &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-606835780633628939?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/606835780633628939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-3-finding-some-common-ground.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/606835780633628939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/606835780633628939'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-3-finding-some-common-ground.html' title='Exercise 3: Finding some common ground'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-958080796443332279</id><published>2009-05-13T13:19:00.001+10:00</published><updated>2009-06-23T21:26:33.442+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 02'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic 01'/><title type='text'>Exercise 2: Technology and the evolution of business options</title><content type='html'>&lt;ol&gt;   &lt;li&gt;Web quest: Find a range of five sites each offering different business options: online shopping, electronic payments, database access, WAP sites for mobile phones. Key words for your search engine: M-commerce, T-commerce and E-wallet. &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-958080796443332279?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/958080796443332279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-2-technology-and-evolution-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/958080796443332279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/958080796443332279'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-2-technology-and-evolution-of.html' title='Exercise 2: Technology and the evolution of business options'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-524563429357804749</id><published>2009-05-13T13:17:00.001+10:00</published><updated>2009-06-23T21:26:33.443+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topic 01'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise 01'/><title type='text'>Exercise 1: Analysis of the online communities paradigm</title><content type='html'>&lt;p&gt;1. Visit &lt;a href="http://yahoo.com"&gt;http://yahoo.com&lt;/a&gt; and &lt;a href="http://zope.org"&gt;http://zope.org&lt;/a&gt; as examples of online communities. &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; a. What is meant by an online community and how is it important for e-commerce?    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; b. Visit the three auctions sites at &lt;a href="http://ebay.com"&gt;http://ebay.com&lt;/a&gt;, &lt;a href="http://ebay.co.uk"&gt;http://ebay.co.uk&lt;/a&gt; and &lt;a href="http://ebay.com.au:"&gt;http://ebay.com.au:&lt;/a&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; i.&amp;#160;&amp;#160; Is there a common thread and a local community sense in action?     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ii.&amp;#160; What electronic payment systems are used? Are they globally acceptable?     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; iii. What are the benefits to of an online auction sale to a buyer, a seller and E-bay owners?     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; c. Find three others examples of an online business using an online community approach.&lt;/p&gt;  &lt;p&gt;2. Visit the famous online store front at &lt;a href="http://www.amazon.com"&gt;http://www.amazon.com&lt;/a&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; a. Why has it been a successful site? How does the purchase of a book work?     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; b. Is there any secure transactions not involving money?     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; c. What is the range of items that you can buy?     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; i. List the steps involved and comment.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-524563429357804749?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/524563429357804749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-1-analysis-of-online.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/524563429357804749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/524563429357804749'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/exercise-1-analysis-of-online.html' title='Exercise 1: Analysis of the online communities paradigm'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3194943459551535899.post-7767542619584830082</id><published>2009-05-11T15:13:00.001+10:00</published><updated>2009-05-19T21:00:42.969+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Introduction'/><title type='text'>Introduction: A little about me</title><content type='html'>&lt;p align="justify"&gt;This is my 5th trimester in my masters with CSU.
I have almost 20 years working in local government, with a few years contract work in the private sector.
I predominantly work with Microsoft products and .net technologies, mostly winform applications.
I have started a blog once before but any interest I had died out after about 2 days. Most likely due to the blog not having a focus or direction.
I am looking forward to this subject, and I can see it will have direct implications with what I do at work.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3194943459551535899-7767542619584830082?l=grantitc565.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grantitc565.blogspot.com/feeds/7767542619584830082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://grantitc565.blogspot.com/2009/05/introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7767542619584830082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3194943459551535899/posts/default/7767542619584830082'/><link rel='alternate' type='text/html' href='http://grantitc565.blogspot.com/2009/05/introduction.html' title='Introduction: A little about me'/><author><name>Grant Lavers</name><uri>http://www.blogger.com/profile/11814609335702014472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_JS00SNKPHSk/SoD8eBLbFhI/AAAAAAAAAJ4/NFuC_XSO_KE/S220/Grant.JPG'/></author><thr:total>0</thr:total></entry></feed>
