YUI
YAHOO Global Object: The Yahoo Global Object contains language utilities and other baseline infrastructure for YUI.
Dom Collection: Helps with common DOM scripting tasks, including element positioning and CSS style management.
Google App Engine
Google App Engine lets you run your web applications on Google’s infrastructure. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow. W
- dynamic web serving, with full support for common web technologies
- persistent storage with queries, sorting and transactions
- automatic scaling and load balancing
- APIs for authenticating users and sending email using Google Accounts
- a fully featured local development environment that simulates Google App Engine on your computer
- task queues for performing work outside of the scope of a web request
- scheduled tasks for triggering events at specified times and regular intervals
Your application can run in one of two runtime environments: the Java environment, and the Python environment. Each environment provides standard protocols and common technologies for web application development.
Resources:
http://code.google.com/appengine/docs/whatisgoogleappengine.html
Ruby on Rails
Ruby is a dynamic, open source programming language with a focus on simplicity and productivity.
Visual Studio
Microsoft Visual Studio is an Integrated Development Environment (IDE) from Microsoft. It can be used to develop user interface along with Windows
Forms applications, web sites, web applications, and web services in both native code together with managed code for all platforms supported by
Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework and Microsoft Silverlight.
Visual Studio includes a code editor supporting IntelliSense as well as code refactoring. The integrated debugger works
both as a source-level debugger and a machine-level debugger. web designer, class designer, and database schema designer.
resource: http://en.wikipedia.org/wiki/Microsoft_Visual_Studio
Useful Website for Cornell Notetaking
Some of the websites that were usefull in develloping Cornell Notetaking website:
http://jqueryui.com/: jquery UI (user interface) provides abstractions for low-level interaction and animation, advanced effects and high-level, themeable widgets, built on top of the jQuery JavaScript Library, that you can use to build highly interactive web applications. I used this to do my dialog box to give instruction about Cornell Notetaking website to the user. It was so easy and convinient to do use jquery ui in order to achive this step.
www.walterzorn.com: An easy to use cross-browser Tooltip JavaScript Library that creates tooltips, information popup boxes.
http://www.w3schools.com/: Was good site to get what you need for web developping such as (HTML, CSS, JavaScript, XML…) which helped me
with all the examples that the website provides.
http://tinymce.moxiecode.com/: TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control. It was so good to add the editor in the Cornell website, and the examples they had it is good to make some stuff clear.
JSON pros and cons
Some benefits of using JSON relative to XML :
- JSON Fully automated way of de-serializing/serializing JavaScript objects, minimum to no coding. However, Developers have to write JavaScript code to serialize/de-serialize to/from XML.
- Very good support by all browsers. While XML parsers are built-in into all modern browsers, cross-browser XML parsing can be tricky.
- Concise format because of the name/value pair -based approach. While XML Verbose format because of tags and namespaces.
- Supported by many AJAX toolkits and JavaScript libraries. XML is not much supported AJAX toolkit.
There are some disadvantages of using JSON:
- JSON is a newer format so not enough tools to help with authoring & parsing.
- JSON does not have a <[CDATA[]]> feature, so it is not well suited to act as a carrier of sounds or images or other large binary payloads.
- Unlike XML, JSON does not provide any display capabilities because it is not a document markup language. JSON was not even intended for that purpose.
http://myarch.com/json-pros-and-cons
JSON
JSON, short for JavaScript Object Notation, is a lightweight computer data interchange format. It is a text-based, human-readable format for representing simple data structures and assosiative array (called objects).
JSON is built on two structures:
- A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array.
- An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.
The JSON format is often used for serialisation and transmitting structured data over a network connection. Its main application is in Ajax web application programming, where it serves as an alternative to the XML format.
Although JSON was based on a subset of the JavaScript programming language and is commonly used with that language, it is considered to be a language-independent data format. Code for parsing and generating JSON data is readily available for a large variety of programming languages.
The following example shows the JSON representation of an object that describes a person
{
“firstName”: “John”,
“lastName”: “Smith”,
“address”: {
“streetAddress”: “21 2nd Street”,
“city”: “New York”,
“state”: “NY”,
“postalCode”: “10021″
},
“phoneNumbers”: [
{ "type": "home", "number": "212 555-1234" },
{ "type": "fax", "number": "646 555-4567" }
]
Resources: http://en.wikipedia.org/wiki/JSON.
ATOM Syndication
Atom is an XML-based document format that describes lists of related
information known as “feeds”. Feeds are composed of a number of
items, known as “entries”, each with an extensible set of attached
metadata. For example, each entry has a title.
The primary use case that Atom addresses is the syndication of Web
content such as weblogs and news headlines to Web sites as well as
directly to user agents.
Conventions
This specification describes conformance in terms of two artifacts: Atom Feed Documents and Atom Entry Documents. Additionally, it places some requirements on Atom Processors.
An Atom Feed Document is a representation of an Atom feed, including metadata about the feed, and some or all of the entries associated with it. Its root is the atom:feed element.
This specification uses the namespace prefix “atom:” for the Namespace URI identified in Section 1.2, above. Note that the choice of namespace prefix is arbitrary and not semantically significant.
An Atom Entry Document represents exactly one Atom entry, outside of the context of an Atom feed. Its root is the atom:entry element.
This specification uses the namespace prefix “atom:” for the Namespace URI [W3C.REC-xml-names-19990114]. Note that the namspace is arbitrary it doesn’t have any semantic significance.
namespace atom = “http://www.w3.org/2005/Atom”
APP
The Atom Publishing Protocol (APP) is an application-level protocol for publishing and editing Web resources.
The protocol is based on HTTP transport of Atom-formatted representations. The Atom format is documented in the Atom Syndication Format [RFC4287].
resources: http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.1
http://en.wikipedia.org/wiki/Atom_(standard)
TinyMCE
TinyMCE: also known as the Tiny Moxiecode Content Editor, is a platform-independent web-based JavaScript/HTML WYSIWYG editor control.
It has the ability to convert HTML textarea fields or other HTML elements to editor instances.
TinyMCE is designed to easily integrate with content management systems. main features of TinyMCE:
* Browser Compatibility: TinyMCE is compatible with multiple browers across multiple Operating Systems including Internet Explorer, Mozilla Firefox, Safari, and Google Chrome.
* API: TinyMCE v3.0 includes an extensive API for custom integration.
* Plugins: TinyMCE ships with an assortment of plugins. Since TinyMCE is meant to be a client side application it does not include native file managers for various server technologies.
* Language Support: o 44 different translations are available for TinyMCE 2.x.x.
o 46 different translations are available for TinyMCE 3.x.x.
* Themes / Skins: TinyMCE offers various ways to customize the look and feel of the editor. TinyMCE is packaged with two themes, simple and advanced, as well as 2 skins for each theme, default and o2k7.
* Compressor: TinyMCE also has an optional compressor pack to reduce the overall script download footprint as well as the time it takes the script to initialize.
Example: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> <head> <link rel="stylesheet" type="text/css" href="/css/compress.php" media="screen" /> <!--[if lte IE 7]><link rel="stylesheet" href="/css/ie_fixes.css" media="screen" /><![endif]--> <script src="jscripts/tiny_mce/tiny_mce.js"></script> <link rel="alternate" type="application/rss+xml" title="TinyMCE News RSS" href="http://tinymce.moxiecode.com/forum_news_rss.php" /> <title>TinyMCE - Full featured example</title> </head> <body> <script src="jscripts/tiny_mce/tiny_mce.js"></script> <script> tinyMCE.tinymce({ theme : "advanced", mode : "textareas", plugins : "fullpage", content_css : "css/content.css", theme_advanced_buttons3_add : "fullpage", theme_advanced_resizing : true', });</script> <form method="get" action="page1"> <textarea name="content" style="width:150%"> Hello world, this is an example </textarea> </form> </body> </html>
Cloud Computing
What is cloud computing?

Cloud Computing
THE “cloud” in cloud computing comes from terminology used to describe large networks such as the internet. Rather than data being stored in and accessed from the drive of an individual computer, that data is held off in the “cloud” of the network.
Cloud computing as a term generally refers to any very large network that can manage large amounts of information and a multitude of applications for multiple users – for example, a grid network (lots of individual computer servers) in a data centre – where applications and services are stored and accessed by computer users, and data may be shared among users. Some describe cloud computing as architecture for setting up a grid-in other words, a subset of grid computing.
“Cloud Computing” is a paradigm in which information is permanently stored in servers on the Internet and cached temporarily on clients that include desktops, entertainment centers, table computers, notebooks, wall computers, handhelds, sensors, monitors, etc.
But in cloud computing, users tend to be enterprises and large organizations, the cloud is firewalled and access limited to employees or members of the organization. The cloud often makes heavy use of “virtualization”, where single computers are set up to run several self-contained operating systems at once, so that they appear to the network to be several “real” computers, and can manage information more efficiently at lower cost. The cloud can do massive computing tasks by spreading out the job between all the cheaper machines and virtual machines in the cloud. The end result is that an organization has access to supercomputing power, but in a more versatile and cost-effective form. (http://communication.howstuffworks.com/cloud-computing.htm)