Thursday, May 28, 2009
Closing Remark
I have recently been using Joomla 1.0 (a version of Mamba) as our CMS for various websites including a new Corporate website (http://www.ClubFervor.com ) . Currently I am also evaluating Joomla 1.5 which has subtantial support from various frameworks.
I have also recently reviwed some presentation from the developer community. Here is one of them http://hdl.handle.net/1807/10363 and http://www.scribd.com/doc/15093512/Joomla-Framework-Tour
It appears that using a framework development tools, i may be able to make use of the Joomla CMS and wrapped around it with custom application developed via rapid prototyping tools.
Interesting indeed. !!
Monday, May 25, 2009
Elevator Pitch# 2
Hi. My name is Daniel Chun. This course has been useful in introducing many contemporary internet technologies, web development tools and its underlying benefits. I graduated in computer science 20 years ago, and have mostly been developing business models for internet business (B2B and B2C) side as opposed to involving in coding. Having said that, the ability to get back to the lower level working with syntax and codes still gives me that extra edge when managing complex business relationships, processes, analysis and outcomes.
Although the RoR workshops and tutorials have been more than what I can cope for, I am sure that the intent to get the student understanding the elegance of the contemporary approach to rapid prototyping and development process was the message to today's manager. As a General Manager of a SME in HK, my learnings here in this course will be mostly focused in developing a means (through e-infrastructure and portal and modules development) to engage users (end customers) of our hardline products to become our own "loyal customers" "believers". I will be consuming more of my time to understand what will be the best way for our business to use existing open source CMS system such as Joomla, and other people's loyalty management system to integrate into a complete CRM system. Some modules and components will be developed using these framework to be installed under Joomla.
Thank you.
Tuesday, May 19, 2009
Exercise 26.
2. Summarise your understanding and describe its relevance (250 words max) in either your study at university or in your work environment;
As a manufacturer involving in both OBM (ie. original brand manufacturing) and OEM (Original Equipment Manufacturing); our end customers are indirectly serviced through retailers and distributors. As such, it is often very difficult to understand what are the customers feedback and purchasing behaviour. Getting access to these information are often a tedious and inefficient process of collecting paper based feedbacks and complaints. With the advent of telecommunications, manufacturers can use various touch points such as web, mobile and interactive kiosks to engage a consumer to tell more about their experience. Proctor & Gamble has designed MyPampers.ca - a loyality solution in rewarding their customers some form of rewards. This engagement of end customers now allows the manufacturer or brand owner to learn more about the customer's purchase and consumption behavior. The need to integrate a component of the CRM is to ensure that the business process are tracked when there are multiple touch points in which consumers can interact with the company or system as a whole, the records or business intelligence are therefore essential to deliver services to end customers. A collective database supported by analytics engines gives a business the intelligence to forecast demand, seasonal purchase patterns, and to a certain extent involve users in the feedback loop of new product development (NPD).
Exercise 25. M-Commerce
By using the other passive base stations' and its signal strength and additional information about the direction of the signals, these informaiton can help a mobile operator to identify approximately where a mobile user will be. And based on this assumption, a mobile operator or a value added service provider can therefore offer information or service coupons or offers that is based on these geographic locales.
Restaurant and shopping guides, coupon offers, and similar call for action type service are the most common services.
2. WAP or SMS services for an airline website and a bank will be significantly different. The banking industry will have more details and audit trail since banks are required by laws and regualtion for certain money laundering activities, and this touch point or channel for completing a transaction would be perceived as the same as going to the bank. Although the services that can be viewed (ie. Informational base) such as real time or not is irrelevant, the substantial consequence of using WAP and SMS as a channel in a banking environment would be definitely be governed the same way as a bank teller window.
3. W3C website has specific micro sub site on VoiceXML. http://www.w3.org/Voice/
Voice based hypertext markup languages is the original thought for VoiceXML is the W3C's standard XML format for specifying interactive voice dialogues between a human and a computer. It allows voice applications to be developed and deployed in an analogous way to HTML for visual applications.
According to W3C, the VoiceXML 3.0 is being implemented now since Dec 2008 published. Many applications have been deployed, processing millions of telephone calls per day. These applications include: order inquiry, package tracking, driving directions, emergency notification, wake-up, flight tracking, voice access to email, customer relationship management, prescription refilling, audio newsmagazines, voice dialing, real-estate information and national directory assistance applications.
Most of the applications todate appears to be at inbound or outbound calling related applications typical of a customer call center, tele-marketing, operator-assisted environment and perhaps used for "software agents".
4. Nokia is predominantly a hardware manufacturer from mobile switch CO, base station related BCS, BTS, software, handphones, drivers for handphones, open application interface - they have also invest resources in the development of applications of mobile devices. When being described as end-to-end expertise.
Companies that are involved in mobile telephony market today may not necessary have the expertise and intimate knowledge of the necessary technology at the back end - the ones that actually provides the call, the call transfer, the location based advisory service, etc. Although a common protocol are often followed using industry standards such as GSM MoU, 3GPP, ITU, IEEE, etc.
As a leading mobile technology provider, Nokia offers the infrastructural domain expertise more than just the "handphones" we see today. Most of us have never seen a BTS, BCS or mobile switches in their entire life.
Exercise 24. Virtual business worlds and software agents
Intelligent Software agents
Autonomous agents
Distributed agents
Multi-agents
Mobile agents
Fuzzy agents
2. An extensive amount of software intelligence - in the form of articficial intelliegence and according to Wikipedia, Intelligent agents (also known as rational agents) are not just software programs, they may also be machines, human beings, communities of human beings (such as firms) or anything that is capable of goal directed behavior.
3. e-Commerce vs Software agents
Agents can used the latest and prevalent technologies to handle transactions carried over on the internet space (
4. a, b LC_MOO at http:///

C. I cannot get it working, Only using Browse and a screen that explains ROCKY ..

Tried using it with an account "train1" and "train1" as pwd

Reference:
1. Griss, M (2001) Software Agent as next generation software components. Ch.36 in Component-Based Software Engineering: Putting the Pieces Together. Addison Wesley
Monday, May 18, 2009
Exercise 23. Searching mechanisms
1. An Internet spider is a program designed to "crawl" over the World Wide Web, the portion of the Internet most familiar to general users, and retrieve locations of Web pages. It is sometimes referred to as a webcrawler. Many search engines use webcrawlers to obtain links, which are filed away in an index. When a user asks for information on a particular subject, the search engine pulls up pages retrieved by the Internet spider. Without spiders, the vast richness of the Web would be all but inaccessible to most users, rather as the Library of Congress would be if the books were not organized.
Some search engines are human-based, meaning that they rely on humans to submit links and other information, which the search engine categorizes, catalogues, and indexes. Most search engines today use a combination of human and crawler input. Crawler-based engines send out spiders, which are actually computer programs that have sometimes been likened to viruses because of their ability to move between, and insert themselves into, other areas in cyberspace.
Spiders visit Web sites, record the information there, read the meta tags that identify a site according to subjects, and follow the site's links to other pages. Because of the many links between pages, a spider can start at almost any point on the Web and keep moving. Eventually it returns the data gathered on its journey to the search engine's central depository of information, where it is organized and stored. Periodically the crawler will revisit the sites to check for changed information, but until it does so, the material in the search engine's index remains the same. It is for this reason that a search at any time may yield "dead" Web pages, or ones that can no longer be found.
No two search engines are exactly the same, the reason being (among other things) a difference in the choice of algorithm by which the indices are searched. Algorithms can be adjusted to scan for the frequency of certain keywords, and even to circumvent attempts at keyword stuffing or "spamdexing," the insertion of irrelevant search terms intended simply to draw traffic to a site.
2. Meta-Search Engine - appears like an aggregator for receiving your input (search requests) and forward the request 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.
3. I know this from my personal experience in SEO (without paying anyone to list to top spots)
Tried "Little Scientist" or "BOYTOYS", my listings are at the top.
Metatags keywords - by creating lots of relevant keywords within the tags
Use lots of texts in the content body, sometimes links to outside websites, and also have external websites (eg. Blogs, forums, other community sites such as linkedin, youtube, wikipedia to link back). I have also tried building google and SEO friendly CMS like DRUPAL which is extremely friendly to search engines and have them linked to the sites.
In the past, both Yahoo and Google allows a customer to enter the URL to get it listed.
The name of the page is also important, avoid using redirect clause as spiders do not like them.
Exercuse 22. CRM and SCM
SCM (supply chain management) is the process of planning, implementing and controlling the operations of the supply chain with the purpose to satisfy customer requirements as efficiently as possible.
e-SCM is the application of information and communication technologies to form a seamless path for the smooth delivery of goods and products from suppliers, manufactuers, distributoers and retailers int othe hands of customers
Reference
Bartz., T (2006) User customization : Utilizing Content Management Systems to efficiently organize user group content. Thesis publication for research at
Fill C & Fill K (2005) Business to Business Marketing – Relationships, Systems and communications, Prentice Hall
Kim, B (2005) Mastering Business In
Laudon & Laudon (2006), “Management Information System, Managing The Digital Firm, 9th Edition”, Pearson Education
Ozer, M (2005) Online Business: tailoring your business environment in order to compete. Department of Management,
Saturday, May 16, 2009
Execercise 20. Modeling the UML and the 9 diagram types
Use Case Diagram displays the relationship among actors and use cases.
Class Diagram models class structure and contents using design elements such as classes, packages and objects. It also displays relationships such as containment, inheritance, associations and others.
Interaction Diagrams
Sequence Diagram displays the time sequence of the objects participating in the interaction. This consists of the vertical dimension (time) and horizontal dimension (different objects).
Collaboration Diagram displays an interaction organized around the objects and their links to one another. Numbers are used to show the sequence of messages.
State Diagram displays the sequences of states that an object of an interaction goes through during its life in response to received stimuli, together with its responses and actions.
Activity Diagram displays a special state diagram where most of the states are action states and most of the transitions are triggered by completion of the actions in the source states. This diagram focuses on flows driven by internal processing.
Component Diagram displays the high level packaged structure of the code itself. Dependencies among components are shown, including source code components, binary code components, and executable components. Some components exist at compile time, at link time, at run times well as at more than one time.
Deployment Diagram displays the configuration of run-time processing elements and the software components, processes, and objects that live on them. Software component instances represent run-time manifestations of code units.
Execercise 19. TP monitors and transaction protocols
Atomicity refers to the ability of the DBMS to guarantee that either all of the tasks of a transaction are performed or none of them are. For example, the transfer of funds from one account to another can be completed or it can fail for a multitude of reasons, but atomicity guarantees that one account won't be debited if the other is not credited.
Atomicity states that database modifications must follow an “all or nothing” rule. Each transaction is said to be “atomic.” If one part of the transaction fails, the entire transaction fails. It is critical that the database management system maintain the atomic nature of transactions in spite of any DBMS, operating system or hardware failure.
The Consistency property ensures that the database remains in a consistent state before the start of the transaction and after the transaction is over (whether successful or not).
Consistency states that only valid data will be written to the database. If, for some reason, a transaction is executed that violates the database’s consistency rules, the entire transaction will be rolled back and the database will be restored to a state consistent with those rules. On the other hand, if a transaction successfully executes, it will take the database from one state that is
Isolation refers to the requirement that other operations cannot access or see the data in an intermediate state during a transaction. This constraint is required to maintain the performance as well as the consistency between transactions in a DBMS.
Durability refers to the guarantee that once the user has been notified of success, the transaction will persist, and not be undone. This means it will survive system failure, and that the database system has checked the integrity constraints and won't need to abort the transaction. Many databases implement durability by writing all transactions into a transaction log that can be played back to recreate the system state right before a failure. A transaction can only be deemed committed after it is safely in the log.
2. TP monitor is a control program that manages the transfer of data between multiple local and remote terminals and the application programs that serve them. It may also include programs that format the terminal screens and validate the data entered.In a distributed client/server environment, a TP monitor provides integrity by ensuring that transactions do not get lost or damaged. It may be placed in a separate machine and used to balance the load between clients and various application servers and database servers. It is also used to create a high availability system by switching a failed transaction to another machine thus avoiding any database or machine to be overwhelmed.
3. Load balanacing - MOM Message Orientated Middleware supports asynchronous communication whereas RPC Remote Procedure Call - is a synchronous communication where the calling application must stop processing or is blocked from proceeding until receiving the response from the remote procedure. In the scenario, TP Monitoring has greater performance advantage in load balancing over both RPC and MOM. TP monitoring would implement the following in load balancing, use queued input buffer to protect against peak in the workload;
priority scheduling to prioritize messages; support server threads to save overhead of heavy weight processes; and make sure that none of the process would be overloaded.
4. With one-phase atomic commit protocol, a server could make a decision by itself to abort transaction. As a result, the consistency of the transaction would be affected.
With two-phase commit protocol, the coordinator would co-ordinate and consolidates an unique decisions of all the servers and client involved before a final decision on whether to abort or commit a transaction which could ensure the consistency of the transaction.
Two-phase commit protocol provides the advantages over one-phase atomic commit protocol. Automatic recovery mechanism: transaction will be recovered as long as a system or media is failure during transaction executing. Synchronization among all participating databases: all database servers will receive the same action, either commit or rollback.
Exercise 17. Concurrency terms
2. Locks - In computer science, a lock is a synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution. Locks are one way of enforcing concurrency control policies.
3. Deadlock - Deadlock most often occurs when two (or more) threads are each waiting for the other(s) to do something.
4. Semaphores - a semaphore is a protected variable or abstract data type which constitutes the classic method for restricting access to shared resources such as shared memory in a multiprogramming environment. A counting semaphore is a counter for a set of available resources, rather than a locked/unlocked flag of a single resource.
5. Mutex (mutual exclusion) -Mutual exclusion (often abbreviated to mutex) algorithms are used in concurrent programming to avoid the simultaneous use of a common resource, such as a global variable, by pieces of computer code called critical sections.
Examples of such resources are fine-grained flags, counters or queues, used to communicate between code that runs concurrently, such as an application and its interrupt handlers. The problem is acute because a thread can be stopped or started at any time.
6. Thread - a thread of execution results from a fork of a computer program into two or more concurrently running tasks. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process. Multiple threads can exist within the same process and share resources such as memory, while different processes do not share these resources.7. Event - event-driven programming or event-based programming is a programming paradigm in which the flow of the program is determined by events — i.e., sensor outputs or user actions (mouse clicks, key presses) or messages from other programs or threads.
Event-driven programming can also be defined as an application architecture technique in which the application has a main loop which is clearly divided down to two sections: the first is event selection (or event detection), and the second is event handling. In embedded systems the same may be achieved using interrupts instead of a constantly running main loop; in that case the former portion of the architecture resides completely in hardware.
8. Waitable Timer - A waitable timer object is a synchronization object whose state is set to signaled when the specified due time arrives. There are two types of waitable timers that can be created: manual-reset and synchronization. A timer of either type can also be a periodic timer.
Sunday, May 10, 2009
Exercise 16. Authentication and Encryption systems
http://www.ebay.com.hk
http://www.paypal.com
How to use PAYPAL ? they have a guideline to help their auction site users to use PAYPAL.
Click this http://pages.ebay.com.hk/paypal/buyer.html
Yes. I do trust ebay and paypal. They are trusted merchants and websites.
2. For any merchant to receive trust, they can either use their main brand or lend a hand from their official corporation status or to have their website and organisations tested/endorsed by BBB (better business bureaus) or similar organisations.
For websites, a merchant should always use their own digital certificates (which is verified by Certificate Authoriry - CA) before and hence buliding that TRUSTED relationship.
Consumers of websites, if in doubt, can check the issuer of the digital certificates about their details.
3. Verisign has been a certificate authority providing 3rd party services to organisations and websites the digital certificates business.
4. TRUSTe offers privacy and trust endorsement services for organisations, businesses and websites. According to Consumer Privacy Guide (2009), TRUSTe developed the first online privacy seal program, which has grown from over 500 licensed websites in 1999 to more than 1200 sites in a variety of industries in 2000 and over 2000 in 2001, including 50 of the top 100 most heavily trafficked Web sites. The TRUSTe privacy seal programs allows consumers to have assurance that the websites they are using are compliant with fair information practices approved by the U.S. Department of Commerce, Federal Trade Commission and prominent industry-represented organizations and associations.
5. PGP encryption is often used in mail and or point to point. You will need a public key, a private key and the software to encrypt and decrypt.


6. There are physical keys (eg. HSBC SD Key, please see below, thumbprints or other biometric measure, rectna laser scanning are all the new technologies available for authenticating identities.

Reference:
1. Consumer Privacy Guide (2009) What is TRUSTe and how does it work to protect my privacy? Retrieved on May 10, 2009 at http://www.consumerprivacyguide.org/faq/truste.shtml
Excercise 15. Protecting and Archiving Data

1. A firewall is always necessary to guard against a network (either at home or at the office) from any possible attack (whether intended or with no intentions). A firewall can be a physical hardware solution or can also be implemented as a software solution. Firewalls prevent unauthorized Internet users from accessing private networks connected to the Internet, especially intranets. All messages entering or leaving the intranet (i.e., the local network to which you are connected) must pass through the firewall, which examines each message and blocks those that do not meet the specified security criteria (Indiana University, 2009)
XNET Solutions - offers a hardware firewall. Details at http://www.xnet.com.pk/
Checkpoint - offers what they called appliance based (which i understood as hardware) firewall Details at http://www.checkpoint.com/index.html Further checking it, Checkpoint's solution contained both hardware and software
Norman Software - offers software firewall solution. Details at http://www.norman.com/
2. Backup Policy
Charles Sturt University (CSU) has the following documents in their website.
www.csu.edu.au/division/dit/about/Dit_policies/DIT-Policy-for-Information-
The system operation team has strict guideline to backup procedures which will be followed strictly.
3. Using just a simple keywords of "How to write a virus" at google, it returns 19100000 hits.
and high on the list is even youtube videos to teach someone who may be interested to do so.

Reference:
1. Indiana University (2009). What is Firewall ?
Retrieved on May 10, 2009 at http://kb.iu.edu/data/aoru.html
Exercise 14. Electronic Payments and security 2
2. Cookies can be security risk because it leaves a trace of details of previous internet transactional details and could be cookie-jacked by intenders. (McWilliams, 2002) has suggested that the regular hotmail visits are already very risky as the cookies used by Hotmail kept sensitive data including the passwords.
Reference:
1. McWilliams. B (2002) Hotmail at risk to cookies thieves. Retrieved on 10 May 2009 at http://www.wired.com/science/discoveries/news/2002/04/52115
Exercise 13. Electronic Payments and Security 1
Recently, I use this following TALENT PORTAL from Hong Kong Science Park
https://talent.hkstp.org very often to post some vacancies we had
For Fellow students, jobseekers and friends, if you need to find a job, please feel free to use this.
We are seeking for Project Manger !!
2. What is SET ?
Not many institution has implemented SET. I remember at one stage I had printed out the specification of the SET v 1.0 to really read through it. They had a merchant implementation guideline and also a generic help files. SSL is like our plain old telephone. It's encryption method is widely adopted. SSL is secure socket layer which provides END TO END encryption once a session is intiated.
Many websites that uses SSL will have https:// as their URL.
Exercise 12. Designing a secure framework
In the SET protocol, two different encryption algorithms are used – DES and RSA. The DES algorithm has been used since the 1970’s (Schneier, 1996), and that they were responsible for reducing its key size from the original 128-bits to 56.
RSA 128 bit encryption is a form of asymmetric system. According to the explanation in Wikipedia, with a key of length bits, there are 2128 possible keys. The large number of operations (2128) required to try all possible 128-bit keys is considered extremely hard to break with the digital computing power of today. Some crytography specialists claimed they have broken higher number of keys (TheRegister.co.uk , 2008)
2. Intrusion detection system is commonly known as IDS. Internet Security Systems (2009) defined that when an IDS looks for these patterns in network traffic, it’s network-based. When an IDS looks for attack signatures in log files, it’s host-based. In either case, IDS of both types look for attack signatures, specific patterns that usually indicate malicious or suspicious intent.

The typical NIDS scenario where an attempt has been made to funnel the traffic through the NIDS device on the network. It does not take a genius to see that if you had to isolate a single machine and take the machine away from the network like is done by many business people when in transit that NIDS would be very flawed. The Red device represents where the NIDS has been installed.

Host based IDS are a more comprehensive solution and displays great strengths in all network environments. It does not matter where the machines are even if they are away from the network they will be protected at all times. The Orange machines represent where the HIDS is installed.

3. "Phishing" is the term used to describe illegal "email sending to a user falsely claiming to be an established legitimate enterprise in an attempt to scam the user into surrendering private information that will be used for identity theft. The e-mail directs the user to visit a Web site where they are asked to update personal information, such as passwords and credit card, social security, and bank account numbers, that the legitimate organization already has. The Web site, however, is bogus and set up only to steal the user’s information.
TD Canada Trust, a bank from Canada, had a few sagas of their customers randomly receiving "phishing" emails over the years and had issued clear statements and instructions to their customers on their website to educate customers how to detect "emails" that could be phishing emails. (TD Canada Trust Website, 2009)

Reference
1. Clark. T (1999), Visa, Mastercard try to revive SET. CNET news online.
Retrieved on May 10, 2009 at http://news.cnet.com/2100-1017-225723.html
2. Schneier, B. (1996) Applied Cryptography, John Wiley & Sons, Canada.
3. The Register.co.uk (2008) , RSA is dead. Discussion Thread at
Retrieved on May 9, 2009 at http://www.theregister.co.uk/2007/05/22/unreadable_writing_is_on_the_wall/comments/
4. TD Canada Trust Web site (2009) Email Safety.
Retrieved on May 10, 2009 at http://www.td.com/security/email.jsp
Friday, May 8, 2009
Sunday, April 12, 2009
Elevator Pitch# 1
Saturday, April 11, 2009
Workshop 4 - learning more about RoR syntax
1. Ok. I just went to http://www.fincher.org/tips/Languages/Ruby/ and had reviewed the samples.
Why do i need vi if i can just copy and paste from the tutorial into the notepad and save as .RB file and run it..
So i did exactly that for some of the rest of the tutorials.


I haven't completed all 46 tutorials. I did read it all though.
2. What are the syntax differences in the way that Ruby and Javascript use the if statement?
There are some significant difference in the if statement in RUBY and in Javascript
- Ruby uses "elsif" and Javascript use "else if"
- Ruby does not place the comparision in parenthesis and Javascript do place the comparision in parenthesis
- Ruby does not use "then" and Javascript uses "then" option
- Ruby requires the "end" to finish the condition testing and Javascript uses the last set of {} parenthesis instead
3. While Ruby and Python are quite similar, can you find some similarities between Ruby and Javascript?
Ruby is a server-side scripting and interpreting language and Javascript is purely a client-side play and similarities are that they can both handle similar input and outputs. The difference is the efficiency.
Workshop 3

I have Ruby on Rails loaded, downloaded MySQL Tools and have it all installed and working.
I also did find the database.yml file inside the config directory.
It keeps saying that sqlite3 is not available (no such file to load), when I issue at command prompt with "rake db:migrate".. At this point, I am puzzled. I mean, I want to overcome this, but I ain't no programmer anymore.. I will come back to this.
Workshop 2

2. Convention Over Configuration (CoC) – means that Rails makes assumptions about
what you want to do and how you’re going to do it, rather than letting you tweak
every little thing through endless configuration files in XML or the like.
3. I load up the link but it does not appear to be live. http://wiki.rubyonrails.org/rails/pages/UnderstandingMVC
I also downloaded the MVCtutorial zip file and did walked through some of it
4. Watched the "video" at Youtube. The speaker Amando Fox is actually a very "good" presenter

5. Read through some of the description from this author about MVC. Quite enlightening.
Workshop 1
Q1. Make a list of all programming languages and web development tools used by you in prior experiences...
Q1. Make a list of all programming languages and Web development tools used by you in prior experiences. Describe what you know about Web application frameworks before we begin.Web applicaiton framework is a software framework that is designed to support the development of dynamic websites, web applications and web services. The framework aims to alleviate the overhead associated with common activities used in web development. For example, many frameworks provide libraries for database access, templating frameworks and session management, and often promote code resue. (Source: Wikipedia, 2009)
I have mainly used these languages in the past
1. C and Sun SparcOS Digital Ultrix or Kodak's BSD version of Unix back in 1990s
2. Cobol
For Web development, i have used the following
3. Basic HTML tools
4. Simple PERL/PHP scripts interfacing MySQL
5. Microsoft Frontpage as an authoring tool (I tried dreamwever and didn't like it too much)
6. other image cropping software and FTP tools
7. Off the shelf CMS, Shoppingcart (eg. Drupal, Joomla, OScommerce)
Q2. Ruby is "an interpreted scripting language" for quick and easy object-oriented programming. Find out about the Ruby language and discover what this means.
Ruby is an interpreted scripting language unlike lower level languages like FORTRAN, C, PASCAL which need to be compiled into executable sources. Ruby is slower but offers high efficiency including lower level control of the operating systems. Ruby does not need to be compiled to offer the same level of access as the predecessor when comes to programming langugages.
Ruby is percieved by many to be more elegant, yet it does pretty much the same job as PERL, TCL and Python. Thomas & Hunt (2000) strongly supports that Ruby does offer very elegant and lightweight syntax and offers some rationale to maintain easy to read clean code.
Ruby is object oriented based programming language and was originaly inspired by PERL and Smalltalk; and originally created by a Japanese called Yukihiro "Matz" Matsumoto in 1990's.
Q3. What is Rails and how does it work with Ruby?
Rails Rails is a web development framework written in the Ruby language which is designed to make programming web applications easier by making several assumptions about what every developer needs to get started. Rails allows a web developer or programmer to write less code while accomplishing more than many other languages and frameworks.Ruby on Rails was extracted by David Heinemeier Hansson from his work on Basecamp, a project management tool by 37signals (now a web application company). Heinemeier Hansson first released Rails as open source in July 2004, but did not share commit rights to the project until February 2005. The latest verison is Rails version 2.3 which was released on March 15, 2009.
With the increasing popularity of the Rails web development framework, the Ruby programming language is making its way towards the top. By focusing on convention over configuration, RoR is lowering the barriers of entry to programming and positively impacting employee productivity-ultimately proving that all of the hype is true and well-deserved.
Rails work with Ruby by means of elegantly organized around the Model, View,
Controller architecture, usually just called MVC and also providing rapid feedback loop which allows developer to save time between making a change in code and seeing the results in the execution of your application on the screen
Q4. What is meant by "convention over configuration" in regards to the use of Rails in Web application development?
CoC is the short form for Convention over Configuration means that that Rails makes assumptions about what you want to do and how you’re going to do it, rather than letting you tweak every little thing through endless configuration files. 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 "products_sold", that one needs to write code regarding these names.
Q5. When did Model-View-Controller begin and where is it used?
MVC begins in 1979 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.
MVC is often seen in web applications, where the view is the actual HTML or
XHTML page, and the controller is the code that gathers dynamic data and
generates the content within the HTML or XHTML.
Q6. Describe the steps involved with the MVC design approach
MVC is often seen in web applications, where the view is the actual HTML or XHTML page, and the controller is the code that gathers dynamic data and generates the content within the HTML or XHTML. The model is represented by the actual content, which is often stored in a database or in XML nodes, and the business rules that transform that content based on user actions.The MVC design approach entails 3 major components - Models, Views and Controllers
Models (Active Record)
– A model represents the information (data) of the application and the rules to manipulate that
data.
– In the case of Rails, models are primarily used for managing the rules of interaction with a
corresponding database table.
– In most cases, one table in your database will correspond to one model in your application.
The bulk of your application’s business logic will be concentrated in the models.
Views (Active View)
– Views represent the user interface of your application.
– In Rails, views are often HTML files with embedded Ruby code that performs tasks
related solely to the presentation of the data. Views handle the job of providing data to the
web browser or other tool that is used to make requests from your application.
Controller (Active Controller)
– Controllers provide the “glue” between models and views.
– In Rails, controllers are responsible for processing the incoming requests from the web
browser, interrogating the models for data, and passing that data on to the views for presentation.
Reference
1. Thomas,. D & Hunt, A (2000) Programming Ruby: A Pragmatic Programmer's Guide, Addison Wesley.
Exercise 11. XML Introduction
i) XMLPARSE at http://www.gnu.org/software/gnustep/resources/documentation/Developer/Tools/Reference/xmlparse.html
ii) expat - XML Parser Toolkit Version 1.2 at http://webdesign.about.com/gi/dynamic/offsite.htm?site=http://www.jclark.com/xml/expat.html
iii) LARK - http://webdesign.about.com/gi/dynamic/offsite.htm?site=http://www.textuality.com/Lark/
2. The benefits of adopting a schema standardised for a business sector enables
i) the exchange of documents between different people and organizations in much structured manner ;
ii) the control of namespace according to http://www.W3.org/2001/XMLSchema-instance allows for easier validation of documents ;
iii) allowing global standardardisation using pre-defined namespace that is muched needed.
3. SMIL stands for Synchronized Multimedia Integration Language, and is a XML markup language endorsed by W3C for describing multimedia presentations. It defines markup for timing, layout, animations, visual transitions, and media embedding, among other things.
This techonology will enable the users to make web presentation of with a variety of media items such as text, images, video, and audio, as well as links to other SMIL presentations, and files from multiple web servers. SMIL markup is written in XML, and has similarities to plain old html syntax.
It is specificlly useful for applying to the use of multimedia presentationon the web. As of Dec 1, 2008, The SYMM Working Group at W3C.org has published the SMIL 3.0 Recommendation.
Exercise 10. Application Server platforms in e-commerce
http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca&infotype=an&appname=iSource&supplier=897&letternum=ENUS200-415
In the ORACLE website, it largely refers their Siebel Commerce suites as their E-commerce platform that supports database driven applications. Link is here
http://www.oracle.com/applications/crm/siebel/self-service-ebilling/siebel-e-commerce-8-1-1.html
Sybase website also mentions its GDI . Link is here http://www.sybase.com/detail?id=1008953
For Microsoft, their e-commerce efforts has been with MSDN for small business although they also have relevant articles dated for 2005 MS SQL for e-commerce.
MySQL is a open source GPL license (acquired by Sun OS), but IBM, Oracle, Microsoft and Sybase are all related to paid/license software. In terms of functionality, there isn't much difference other than scalability and performance.
2. AJAX stands for (Asynchronous JavaScript and XML), is a group of interrelated web development techniques used to create interactive web applications or rich Internet applications. With Ajax, web applications can retrieve data from the server asynchronously in the background without interfering with the display and behavior of the existing page. (Wikipedia, 2009)
Garrett (2005) suggested that "An Ajax application eliminates the start-stop-start-stop nature of interaction on the Web by introducing an intermediary —an Ajax engine —between the user and the server" And because of this efficiency, many organisation in the connected economy can employed this development framework as the software architecture of choice. The use of Ajax can reduce connections to the server, reducing IPC calls and users experience faster or more responsive applications. These important attributes will be significant in the enterprise software development level.
3. Ruby on rails's MVC and Flash's Action Script 2.0 are both object oriented programming language which allows both to create classes, definte sub-classes and its relationships.
Reference:
Garrett, J (2005) Ajax: A New Approach to Web Applications. Adaptive Path. Retrieved on Apr 12 at http://www.robertspahr.com/courses/cwd/ajax_web_applications.pdf
Wikipedia (2009) Definition of AJAX. retreieved on Apr 12, at http://en.wikipedia.org/wiki/AJAX
Exercise 9. Web form design and processin: A basis for e-commerce interaction
I changed the code to reflect our need to use the data


The link of the PERL SCRIPT is at http://www.scriptarchive.com/download.cgi?s=ccver&c=txt&f=cc_ver.pl
and yes i was able to change the form to read input into new variables that I defined in particularly i changed to the variable to "parfarm" eq "french" then, process the Credit Card.
The CGI is placed onto the CGI bin directory. At this point, it did not process it right, as there may be some other errors from the original script.

Exercise 8. PHP and MySQL database access
Exercise 7. User Input for database access with PHP

But it does not return my name; i check the syntax and it seems ok. the URL still also shows that myname variable being submitted is Daniel Chun

Exercise 6. Some Server Practice with PHP
the first attempt to use the php_info.php was working at http://littlescientist.net/php_info.php
it loads back a series of recommended variables - almost a complete table of help and guidelines.
I then followed Exercice 6.1 to create the small php to echo the local environment variable. but somehow this is not successful. I load it and renamed it to be http://littlescientist.net/practice.php. I think this is due to the $ root definition of local vs an actual host.

6.2 Hello_world.php - small application; I was able to complete this. I use "japanese Koni Chi Wa instead though.

Saturday, March 14, 2009
Application Environment - RoR

So i thought I have installed everything - so it seems. when i run the testApp. It does gives me the same if I call the application using http://localhost:3000; however, when I clicked on the link "About your application environment" - It returns some errors
More investigation is needed. In the mean time, i have downloaded the 70MB InstantRuby and the MySQL Essentials.
Exercise 5. Network and Programming frameworks
http://wiki.tcl.tk/11005
The codes use sockets to wait for calls or message to be pass through; within that it use handlers to handle each of these participants' nick name and pass through. Once a socket is opened, almost like a session, the data is broadcast to both ends of the socket.
2. Peer to Peer Computing and Grid Architecture or Grid Computing have both similar objectives - both claiming to resolve problems prevail at large scale computing societies and both of which have gained in popularity in the successful deployment and applications (Foster., I & Iamnitchi. A, 2003)
Behsaz. B, Jaferian. P, & Reza-Meybodi. M (2008) defines "Grid computing is a distributed computing approach to create an illusion of simple yet large virtual computer from a large set of heterogonous computers sharing various resource types to benefit a (virtual) organization." where as P2P computing is defined as Global Computing ""Globalcomputing is a distributed computing approach for computing with a large collection of heterogeneous computers which are essentially scattered over the world and sharing various kinds of resources."
P2P tends to be larger in scale due to the popularity in the use of domestic home use computers and often has less accountability and reliability is therefore not very suitable for mission critical type applications or workflow process. On the other hand, Grid computing tends to focus on the sharing of resources of mid-size servers capacity with very reliable DNS/routing/IP address to support the reliability for more "mission critical" or "workflow intensive" applications.
3. Comparision of web development framework.
I have not used any web application development framework; but i will attempt to compare the JAVA framework and the RoR framework.
JAVA - requires the compilation of the code to binarys and requires the Java Virtual Machine to process the binary. Ruby on Rails on the other hand tends to be a very simple and elegant solution to first time programmers as it hides away all the details and troublesome syntax related issues in low level programming languages. Both of the languages are object-oriented programming languages. IBM (2005) published a comparison of the two web development framework and outlines the stack view and clearly shows that RoR has simpler structure.
Reference
Foster. I & Iamnitchi., A (2003) On Death, Taxes, and the Convergence of Peer-to-Peer and
Grid Computing, Department of Computer Science, University of Chicago.
Behsaz. B, Jaferian. P, & Reza-Meybodi. M (2008) Comparison of Global Computing with Grid
Computing . Department of Computer Engineering and Information Technology, Amirkabir
University of Technology (Tehran Polytechnic), 424 Hafez ave., Tehran, Iran
Retrieved on http://www.cs.ualberta.ca/~behsaz/Publications/GlobalvsGrid-TR.pdf
IBM (2005) Ruby on Rails and J2EE: Is there room for both? Two Web application frameworks compared.
Retreived on http://www.ibm.com/developerworks/web/library/wa-rubyonrails/
Exercise 4. Virtual Private Networks
Coming from the telecom domain of expertise. VPN in the older days could mean "corporate networks" and "environment" that has to be end to end secured - physical layer. With the advent of packet data swtiching networks, information can be "wrapped" in a virtual envelope, with address information, and be sent via various routes with network protocols such as the IP protocol. Older protocols are like the X.25 standards in data communications or X.400 for mail messaging. These are pretty much old school but some are still used today. Datapac for example is a common data network used extensively in HK during 1980's to 2000's.
DNS on the other hand is Domain Name Servers. IP addresses is in the form or x.x.x.x and name servers are needed to reroute pneumonic names such as google.com to a traceable table of ip address and eventually reaching the physical location of the server that serves the page of google.com. DNS is a complex hirearchical system of trust and labelling system in a lay man's terms.
2. TCP protocol - Transmission Control Protocol. With the design of IP, being packetised and kept in an virtual envelope, each packet of information and data will have to be routed with the given information (as headers, trailers) as to where it should go. TCP allows the efficient parsing of the address information in order to reach its destination. TCP and IP are very closely knitted terminology and data protocols because they are complimentary. IP is related to packetising data and information and TCP is related to the transport layer of the packet data.
3. E-Business applications is a very abstract term; it gets abused a lot. Sometimes, people think by owning a domain name, a email account, a website is automatically a e-business capable. In my belief, to be classified as a genuine e-business application, the convenience and output must be greater than the effort of inputs and that the application must solve a problem that otherwise cannot be solved by existing means. Ebay is a classic example, Paypal is another example, Youtube is also another example but not nytimes.com
Intranet - accessing corporate network and resource using IP protocol inside a building or site
Extranet - accessing corporate network and resources using IP protocol outside a building or site or remotely
Web portal - a website which plays the role of aggregator and repository of many information feed and content. eg. http://nytimes.com
B2B - Busines To Business websites ( This B2B word brings me tears. I once invested as an angel investor US$20K in a business called B2Bweb.com in 1998-2000. It literally vaporises !!); however success in operating B2B marketplace has been better for Alibaba
(BeijingReview, 2007) debuted at listing at Hong Kong Stock Exchange eg. http://Alibaba.com
B2C - Business To Consumer websites (I did make some money online running B2C online stores before selling the business when in Canada, I have no negative sentiment towards this B2C name). eg. http://www.eToys.com
There are also C2C websites. C2C is like ebay or china's taobao (BejingReview, 2007), and kijiji type of classifieds adveristing websites.
4. With respect to VPN. Most of today's business applications and online businesses are running some form of VPN - by resources sharing of secured sessions; session based i.e. not link based. In the most simplest form, it is as simple as using https://xyz.com of the payment gateway or login session to a corporate network. In theory, the global network or the Internet that we use today is in fact a global VPN being sliced and diced into "sessions" of VPN.
In the past, there are many international value-added network business. AT&T VANS, Infonet, Sprint IVAN, BT IVAN and NTT, GlobalOne, etc. These international data networks are slowly moving aways from their own infrastructure (eg. T1/T3 link based network) to IP based networks. In summary, I would say that TCP/IP is now the most important network protocol replacing X.25 in VPN.
Reference:
1. Ferguson. P & Huston. G (1998) . What is a VPN ?
Retrieved from http://campus.murraystate.edu/tsm/tsm340/vpn/vpn.pdf
2. Bejiing Review (Aug 9, 2007) B2B Pioneer a Millionaire Maker
Retrieved from http://english.beijingreview.com.cn/print/txt/2007-08/03/content_71488.htm