<?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-2000632512313948863</id><updated>2012-02-16T14:21:53.493+05:30</updated><category term='difference from DBMS'/><category term='Software Engineering'/><category term='Required functionality'/><category term='Model'/><category term='Future Technologies'/><category term='TexWorks'/><category term='VC++'/><category term='NAS'/><category term='Poka Yoke'/><category term='Middleware'/><category term='Game Engines'/><category term='HTTP'/><category term='Rendering'/><category term='RUP'/><category term='Graphics'/><category term='Web Technologies'/><category term='PhD'/><category term='Apache'/><category term='Codd&apos;s Rules'/><category term='PAL'/><category term='Services'/><category term='Hierarchical'/><category term='OpenGL'/><category term='Generators'/><category term='Computer Science'/><category term='MySQL'/><category term='Beamer'/><category term='Nokia'/><category term='Web Services'/><category term='schema'/><category term='Object Oriented Paradigm'/><category term='Process Maturity'/><category term='XML'/><category term='Datawarehouse'/><category term='Attribute'/><category term='Process Capability'/><category term='Latex'/><category term='Relational'/><category term='Classes'/><category term='Association'/><category term='Gaming Consoles'/><category term='CMS'/><category term='Graphics Card'/><category term='HTML'/><category term='Graphics Engines'/><category term='Qt'/><category term='Release Candidate'/><category term='Data Models'/><category term='Software Quality'/><category term='Computer Graphics'/><category term='WAMP'/><category term='DBMS'/><category term='Opportunities'/><category term='Java/J2EE'/><category term='Workstations'/><category term='Relational Database'/><category term='Glossary'/><category term='Architecture'/><category term='MikTex'/><category term='Control'/><category term='Use Case Analysis'/><category term='Boundary'/><category term='History of Computers'/><category term='Mechanisms'/><category term='GUI'/><category term='C++'/><category term='WSDL'/><category term='SaaS'/><category term='OLTP'/><category term='DAS'/><category term='HLA'/><category term='Entity'/><category term='Resolution'/><category term='Trolltech'/><category term='Pitch RTI'/><category term='CMainFrame'/><category term='phptriad'/><category term='Motherboard'/><category term='Animation'/><category term='Application'/><category term='NTSC'/><category term='CView'/><category term='Network'/><category term='phpMyAdmin'/><category term='OLAP'/><category term='Visualization'/><category term='ISO 15504'/><category term='OODBMS'/><category term='programming'/><category term='RC'/><category term='RDBMS'/><category term='UDDI'/><category term='ORDBMS'/><category term='API'/><category term='SOAP'/><category term='Platform independent'/><category term='PHP'/><category term='Ray Tracing'/><category term='Terms'/><category term='MFC'/><category term='Google Talk'/><category term='Object Oriented Analysis and Design'/><category term='TexLive'/><category term='Operating Systems'/><category term='Radiosity'/><category term='Authentication'/><category term='Hardware'/><category term='SAN'/><category term='Databases'/><category term='RAD'/><category term='DirectX'/><category term='CMMI'/><title type='text'>Computer Science Notes</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>58</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-1331682488200085886</id><published>2012-01-29T12:07:00.003+05:30</published><updated>2012-01-29T12:16:29.797+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Databases'/><category scheme='http://www.blogger.com/atom/ns#' term='Terms'/><category scheme='http://www.blogger.com/atom/ns#' term='Glossary'/><title type='text'>Microsoft Data Access Components</title><content type='html'>Its a great article by Mahesh Chand and is available at number of sites on Internet. However, I am sharing it from &lt;a href="http://www.ozgrid.com/forum/index.php?s=e06bc987c2fac859cf1ce5692696e1b1"&gt;Ozgrid Forum.&lt;/a&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    What are the Microsoft Data Access Components?&lt;/b&gt;&lt;div&gt;&lt;ol id="posts" class="posts" start="1"&gt;&lt;li id="post_143369" class="postbit postbitim postcontainer"&gt;&lt;div class="postbody"&gt;&lt;div class="postrow"&gt;&lt;div class="content hasad"&gt;&lt;div id="post_message_143369"&gt;&lt;blockquote class="postcontent restore"&gt;&lt;div class="bbcode_container"&gt;&lt;div class="bbcode_quote"&gt;&lt;div class="quote_container"&gt;The Microsoft Data  Access Components (MDAC) are the key technologies that enable Universal Data  Access. Data-driven client/server applications deployed over the Web or a LAN  can use these components to easily integrate information from a variety of  sources, both relational (SQL) and non relational. These components include  Microsoft ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity  (ODBC).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ActiveX Data Objects (ADO) &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;ADO is the strategic  application programming interface (API) to data and information. ADO provides  consistent, high-performance access to data and supports a variety of  development needs, including the creation of front-end database clients and  middle-tier business objects that use applications, tools, languages, or  Internet browsers. ADO is designed to be the one data interface needed for  single and multi-tier client/server and Web-based data-driven solution  development. The primary benefits of ADO are ease of use, high speed, low memory  overhead, and a small disk footprint.&lt;br /&gt;&lt;br /&gt;ADO provides an easy-to-use  interface to OLE DB, which provides the underlying access to data. ADO is  implemented minimal network traffic in key scenarios, and a minimal number of  layers between the front end and data source-all to provide a lightweight,  high-performance interface. ADO is easy to use because it uses a familiar  metaphor-the COM automation interface, available from all leading Rapid  Application Development (RAD) tools, database tools, and languages on the market  today. ADO is a nice wrapper for OLD-DB.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;OLE DB &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;OLE-DB is  the Microsoft strategic system-level programming interface to data across the  organization. OLE DB is an open specification designed to build on the success  of ODBC by providing an open standard for accessing all kinds of data. Whereas  ODBC was created to access relational databases, OLE DB is designed for  relational and non relational information sources, including mainframe ISAM/VSAM  and hierarchical databases; e-mail and file system stores; text, graphical, and  geographical data; custom business objects; and more.&lt;br /&gt;&lt;br /&gt;OLE DB defines a  collection of COM interfaces that encapsulate various database management system  services. These interfaces enable the creation of software components that  implement such services. OLE DB components consist of data providers, which  contain and expose data; data consumers, which use data; and service components,  which process and transport data (such as query processors and cursor engines).  OLE DB interfaces are designed to help components integrate smoothly so that OLE  DB component vendors can bring high-quality OLE DB components to market quickly.  In addition, OLE DB includes a bridge to ODBC to enable continued support for  the broad range of ODBC relational database drivers available  today.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Open Database Connectivity (ODBC) &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The ODBC  interface is an industry standard and a component of Microsoft Windows Open  Services Architecture (WOSA). The ODBC interface makes it possible for  applications to access data from a variety of database management systems  (DBMSs). ODBC permits maximum interoperability-an application can access data in  diverse DBMSs through a single interface. Furthermore, that application will be  independent of any DBMS from which it accesses data. Users of the application  can add software components called drivers, which create an interface between an  application and a specific DBMS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;When should you use OLE-DB,  ADO, DAO, or ODBC ?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;ADO is a wrapper around OLE-DB so you can use ADO  or OLE-DB.&lt;br /&gt;&lt;br /&gt;Non-OLE environment : If a database supports ODBC and and that  database is on a server that don't support OLE then ODBC is your best choice. &lt;br /&gt;&lt;br /&gt;Non-SQL environment : ODBC is designed to work with SQL. If you have  non-SQL environment then OLE-DB is better choice.&lt;br /&gt;&lt;br /&gt;OLE environment : If  you already have ODBC drives then you can use ODBC, otherwise use  OLE-DB.&lt;br /&gt;&lt;br /&gt;Interoperability required : If you need interoperable database  components, then OLE-DB is your best choice.&lt;br /&gt;&lt;br /&gt;16-Bit data access support :  ADO don't support 16 bit so ODBC is the only choice.&lt;br /&gt;&lt;br /&gt;Using multiple  databases - If you are using databases that support Microsoft's jet engine then  definite choice is ADO or DAO. By using ADO you get workspace level support for  transaction. That means you can connect more than one database at a time in an  application, which is impossible by using ODBC. You can only connect one  database at a time by using ODBC.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ADO vs. DAO&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;ADO  is a superset of DAO in functionality point of view. In fact ADO is a  combination of DAO + RDO. I would prefer ADO in these cases. 1. If you are  proficient in COM programming. 2. If your server supports OLE environment. 3. If  you want workspace-level and multi database type ( Relational, indexed, ISAM  type, text files supports ). DAO is best choice when you have DAO components  installed on your machine and you are using Microsoft's jet database engine  based databases such as MS-Access, SQL Server, MS-Excel or Paradox. This is  fastest and easiest mathod o access databases.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;DAO vs.  ODBC&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;DAO is best choice when you have DAO components installed on  your machine and you are using Microsoft's jet database engine based databases  such as MS-Access, SQL Server, MS-Excel or Paradox. This is fastest and easiest  method to access databases. ODBC is for various type of database which provides  ODBC drives such as SQL Server, Oracle, MS-Access. Additional advantage is DAO  is workspace-level support.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Advantages of DAO:&lt;/b&gt; Easy to use.  Workspace level support. Both MFC and API provides DAO support. Speed is  relatively faster than ODBC for jet database engine  databases.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Advantages of ODBC :&lt;/b&gt; Easy to use specially when  developer are not familiar with COM environment. SQL support. Both API and MFC  support. Good for relational databases only.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Advantages of ADO or  OLE-DB :&lt;/b&gt; Workspace-level support. Fastest method to access various kind of  databases. Easy to use fi you are familiar with COM environment. Provides access  to relational, non relational and other types of data. &lt;/div&gt;&lt;div class="quote_container"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="quote_container"&gt;&lt;a href="http://forums.techarena.in/software-development/"&gt;TechArena Software Development Forum &lt;/a&gt;also beautifully differentiates these terms in following words:&lt;/div&gt;&lt;div class="quote_container"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="quote_container"&gt;&lt;div id="post_message_4272436"&gt;DAO, RDO, ADO and OLE DB are data access methods  that all accomplish exactly the same task.&lt;br /&gt;&lt;br /&gt;DAO - Data Access Objects  (1-tier)&lt;br /&gt;Allow &lt;acronym title="vBulletin"&gt;VB&lt;/acronym&gt; applications to talk to  a database (the JET Engine) via ODBC. DAO was Microsoft's first object oriented  solution for the manipulation of databases using the Jet Database Engine. The  JET engine duplicates the functionalities of ODBC, and thus does not add much  value. As the JET engine is generic, many of Oracle's features would not be  accessible. Microsoft is phasing out this method.&lt;br /&gt;&lt;br /&gt;RDO - Remote Data  Objects (2-tier)&lt;br /&gt;Allow &lt;acronym title="vBulletin"&gt;VB&lt;/acronym&gt; applications to  talk to a relational database (various Relational DBMSs) via ODBC. RDO is an  interface to remote RDBMS via OBDC. One needs the Enterprise Edition of Visual  Basic to use RDO. Microsoft is encouraging developers to migrate their RDO  programs to ADO and OLE-DB.&lt;br /&gt;&lt;br /&gt;ADO - ActiveX Data Objects (1 to  n-tier)&lt;br /&gt;Allow &lt;acronym title="vBulletin"&gt;VB&lt;/acronym&gt;/Other Web Tools  (Browsers) to interface with different kinds of data sources. ADO is a more  recent Microsoft Data Access technology designed to replace DAO and RDO. ADO is  designed to be simpler to use and more powerful than DAO/RDO. Serves an  interface to Microsoft's new OLE-DB technology (thinner than ODBC). Can be used  to access all sorts of "non traditional data" (e.g., web pages/documents,  etc.).&lt;br /&gt;&lt;br /&gt;OLE DB data provider&lt;br /&gt;OLE DB is Microsoft's successor to ODBC  that utilizes a set of COM interfaces for accessing and manipulating of data.  Oracle implemented OLE DB as part of their "Oracle Provider for OLE DB" client  software. It provides interface for both data-consuming applications and  database providers. OLE DB is considered a thin middle layer which provides  better data access performance.&lt;/div&gt; &lt;div&gt;__________________&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-1331682488200085886?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/1331682488200085886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=1331682488200085886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/1331682488200085886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/1331682488200085886'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2012/01/microsoft-data-access-components.html' title='Microsoft Data Access Components'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-2146081996091064424</id><published>2011-11-02T21:22:00.003+05:30</published><updated>2011-11-02T21:42:10.372+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='MikTex'/><category scheme='http://www.blogger.com/atom/ns#' term='Beamer'/><category scheme='http://www.blogger.com/atom/ns#' term='Latex'/><category scheme='http://www.blogger.com/atom/ns#' term='TexWorks'/><category scheme='http://www.blogger.com/atom/ns#' term='TexLive'/><title type='text'>Working Solution for : Beamer in Miktex 2.9 is not working.</title><content type='html'>I am a die-hard fan of LaTex and Beamer. But with the launch of MikTex 2.9,  started the problems of using Beamer for making presentations.&lt;br /&gt;&lt;br /&gt;Solutions given on the internet are not working.&lt;br /&gt;&lt;br /&gt;So, I tried and tried until came up with following 2 solutions that really worked:&lt;br /&gt;&lt;br /&gt;1. Install VM Player and an image of Fedora 12. Connect to Internet and issue following commands to install LaTex which by default contains beamer and related packages as well:&lt;br /&gt;  &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt; yum -y install texlive-latex&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Command pdflatex mydoc.tex produces mydoc.pdf from your tex file. This pdf can be opened using:&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;evince mydoc.pdf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; Now, you can use Latex and Beamer without loosing the comfort of Windows environment&lt;br /&gt;&lt;br /&gt;2.  Use Texlive: Download single compressed file of Texlive distribution containing all LaTex packages from http://www.tug.org&lt;br /&gt; Downloaded file is approx. 2 GB and installation is just 5 step process - all involving simple mouse clicks&lt;br /&gt;For front-end, download and install TexWorks from the same site.&lt;br /&gt;&lt;br /&gt;Before installing TexLive, remove MikTex or any other LaTex version from your computer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-2146081996091064424?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/2146081996091064424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=2146081996091064424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2146081996091064424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2146081996091064424'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2011/11/working-solution-for-beamer-in-miktex.html' title='Working Solution for : Beamer in Miktex 2.9 is not working.'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-8024927429100276660</id><published>2011-11-02T21:10:00.002+05:30</published><updated>2011-11-02T21:21:40.237+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='WAMP'/><category scheme='http://www.blogger.com/atom/ns#' term='phptriad'/><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='phpMyAdmin'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'></title><content type='html'>There are 3 types of authentication in PHPMyAdmin that controls access to associated MySQL databases associated with it.&lt;br /&gt;&lt;br /&gt;These 3 types are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;config&lt;/li&gt;&lt;li&gt;cookie&lt;/li&gt;&lt;li&gt;signon&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Authentication is set in config.inc.php file available in phpmyadmin folder under htdocs directory in Apache installation.&lt;br /&gt;&lt;br /&gt;Details of these will be taken up in subsequent posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-8024927429100276660?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/8024927429100276660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=8024927429100276660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8024927429100276660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8024927429100276660'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2011/11/there-are-3-types-of-authentication-in.html' title=''/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-4036389043473352613</id><published>2011-05-02T23:03:00.001+05:30</published><updated>2011-05-02T23:25:48.772+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAN'/><category scheme='http://www.blogger.com/atom/ns#' term='NAS'/><category scheme='http://www.blogger.com/atom/ns#' term='DAS'/><title type='text'>Storage Networks</title><content type='html'>To the individual steeped in storage, it is intuitively obvious that a  SAN carries only block-based storage over either an Ethernet or Fibre  Channel infrastructure using iSCSI or Fibre Channel protocols, whereas  NAS carries only file-based traffic over an Ethernet network.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-4036389043473352613?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/4036389043473352613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=4036389043473352613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/4036389043473352613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/4036389043473352613'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2011/05/storage-networks.html' title='Storage Networks'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-8060387583332217314</id><published>2011-05-01T14:25:00.001+05:30</published><updated>2011-05-01T14:26:39.120+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMMI'/><category scheme='http://www.blogger.com/atom/ns#' term='Process Capability'/><category scheme='http://www.blogger.com/atom/ns#' term='Process Maturity'/><category scheme='http://www.blogger.com/atom/ns#' term='ISO 15504'/><title type='text'>Process Maturity Vs Process Capability</title><content type='html'>To really understand this difference, read contents at Roy's QA page at:&lt;br /&gt;http://www.royj.net/cms/taxonomy/term/3&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-8060387583332217314?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/8060387583332217314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=8060387583332217314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8060387583332217314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8060387583332217314'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2011/05/process-maturity-vs-process-capability.html' title='Process Maturity Vs Process Capability'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-9193416018852337168</id><published>2011-04-30T08:17:00.002+05:30</published><updated>2011-04-30T08:19:59.311+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Quality'/><category scheme='http://www.blogger.com/atom/ns#' term='Poka Yoke'/><title type='text'>Poka Yoke</title><content type='html'>&lt;p&gt;Poka Yoke is a Japanese term that means to "error proof" or "foolproof" - or a method of preventing errors.&lt;/p&gt;&lt;p&gt;Poka Yoke was adopted by Toyota Production System and is a basis for Zero Quality Control (ZQC) i.e. &lt;span style="font-family:arial,helvetica,sans-serif;"&gt;preventing errors by 100 percent inspection at the source, rather than down the line. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;Poka Yoke is not specific to manufacturing at all. There are many  poka yokes in all of our daily lives that we take for granted or simply  do not recognize as poka yokes. &lt;/p&gt; &lt;p&gt;The idea of error proofing is not only applicable but necessary in  every sector. To prevent mistakes, delays, and unecessary costs is to  improve and secure ones position for today and tomorrow.&lt;/p&gt; &lt;p&gt;Examples of Poka Yokes:&lt;/p&gt; &lt;p&gt;&amp;gt; One example is the small hole in almost every bathroom sink. It is a poka yoke to help prevent sink overflow.&lt;/p&gt; &lt;p&gt;&amp;gt; Another example is in our cars that have automatic  transmissions. You can not remove the car key while the transmission is  in an unsafe position and the wheels are unlocked. The key interlock in  this case is a Safety poka yoke.&lt;/p&gt; &lt;p&gt;&amp;gt; Another example would be Memory cards for your camera, laptop,  or phone. Most have a notch or tab type poka yoke that prevents the card  from being installed upside down. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-9193416018852337168?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/9193416018852337168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=9193416018852337168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/9193416018852337168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/9193416018852337168'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2011/04/poka-yoke.html' title='Poka Yoke'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-6088664898146467078</id><published>2011-03-28T18:57:00.003+05:30</published><updated>2011-03-28T18:59:59.613+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='schema'/><category scheme='http://www.blogger.com/atom/ns#' term='Datawarehouse'/><category scheme='http://www.blogger.com/atom/ns#' term='Databases'/><category scheme='http://www.blogger.com/atom/ns#' term='OLTP'/><category scheme='http://www.blogger.com/atom/ns#' term='OLAP'/><title type='text'>How Is a Data Warehouse Really Different from a Normal Database</title><content type='html'>&lt;p class="tipMainAuthor"&gt;Don Jones differentiates the difference between a normal database and a data warehouse in a concise and precise manner in following bullets:&lt;br /&gt;&lt;/p&gt;       &lt;p&gt;An operational data store (ODS), which you may also call an   Online  Transaction Processing (OLTP) or transactional database, has  several key   features:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;It contains detailed information. For example,  it not only   contains summary information such as the total amount of an order  but   also detailed information such as how much each item costs.&lt;/li&gt;&lt;li&gt;It is designed to process transactions, meaning  it’s typically   dealing with one piece of data at a time: one order, one  product, one   customer. It may be used to generate basic reports from this data,  but   it’s structure is optimized to support rapid access to small chunks of    data.&lt;/li&gt;&lt;li&gt;The schema is rigid and unchanging.&lt;/li&gt;&lt;li&gt;It contains up-to-date information, and is  updated in real-time.&lt;/li&gt;&lt;li&gt;The quality of input data is often very high,  meaning  applications  and other elements ensure that correct data goes into the   data  warehouse.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;A data warehouse, in contrast, often includes these  features:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Some data may be summarized, meaning detail is  not available. You   may be able to tell the total amount of a given order but  not the cost   of each product contained in the order.&lt;/li&gt;&lt;li&gt;Its purpose is to drive analysis and decisions.  Access is usually for large quantities of data, in order to see trends.&lt;/li&gt;&lt;li&gt;The schema may be loosely structured and may  change over time to support different analysis scenarios.&lt;/li&gt;&lt;li&gt;The information is historical and may not be  entirely up to date.   The emphasis is on past data and trends, more so than  immediate,   real-time data.&lt;/li&gt;&lt;li&gt;Data is often “cleaned,” meaning errant or  “edge” data may be   removed to make trends clearer. Data warehouses tend to  focus on &lt;em&gt;sets&lt;/em&gt; of data rather than on  individual elements.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Companies with a data warehouse will always have one or more  “normal” databases that feed the data warehouse.&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(Source: http://nexus.realtimepublishers.com/content/?tip=how-is-a-data-warehouse-really-different-from-a-normal-database)&lt;/span&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/2000632512313948863-6088664898146467078?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/6088664898146467078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=6088664898146467078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/6088664898146467078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/6088664898146467078'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2011/03/how-is-data-warehouse-really-different.html' title='How Is a Data Warehouse Really Different from a Normal Database'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-7147876758295334723</id><published>2011-03-23T21:41:00.001+05:30</published><updated>2011-03-23T21:43:44.954+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Databases'/><category scheme='http://www.blogger.com/atom/ns#' term='ORDBMS'/><title type='text'>Good places to learn object oriented databases</title><content type='html'>Learn about Object Oriented Databases @:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;http://www.odbms.org&lt;/li&gt;&lt;li&gt;http://www.comptechdoc.org/independent/database/basicdb/dataobject.html&lt;/li&gt;&lt;li&gt;http://www.artima.com/lejava/articles/javaone_2008_anat_gafni.html&lt;/li&gt;&lt;li&gt;http://en.wikipedia.org/wiki/Object_database&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/2000632512313948863-7147876758295334723?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/7147876758295334723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=7147876758295334723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/7147876758295334723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/7147876758295334723'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2011/03/good-places-to-learn-object-oriented.html' title='Good places to learn object oriented databases'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-5563411589728524119</id><published>2011-03-23T20:01:00.000+05:30</published><updated>2011-03-23T20:02:44.573+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Object Oriented Paradigm'/><category scheme='http://www.blogger.com/atom/ns#' term='Databases'/><category scheme='http://www.blogger.com/atom/ns#' term='OODBMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Models'/><category scheme='http://www.blogger.com/atom/ns#' term='ORDBMS'/><title type='text'>Timeline of Object Databases</title><content type='html'>(Taken from wikipedia)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1985 – Term Object Database first introduced&lt;/li&gt;&lt;li&gt;1988 &lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Versant_Corporation"&gt;Versant Corporation&lt;/a&gt; started (as Object Sciences Corp)&lt;/li&gt;&lt;li&gt;Objectivity, Inc. founded&lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;Early 1990s &lt;ul&gt;&lt;li&gt;Gemstone (&lt;a href="http://en.wikipedia.org/wiki/Smalltalk"&gt;Smalltalk&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;GBase (&lt;a href="http://en.wikipedia.org/wiki/LISP" class="mw-redirect" title="LISP"&gt;LISP&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;VBase (O2- ONTOS – INFORMIX)&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Objectivity/DB"&gt;Objectivity/DB&lt;/a&gt; launched&lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;Mid 1990’s &lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Versant_Object_Database"&gt;Versant Object Database&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/ObjectStore"&gt;ObjectStore&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Poet&lt;/li&gt;&lt;li&gt;Jade&lt;/li&gt;&lt;li&gt;Matisse&lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;2000’s &lt;ul&gt;&lt;li&gt;Cache’&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Db4o"&gt;db4o&lt;/a&gt; project started by Carl Rosenberger&lt;/li&gt;&lt;li&gt;ObjectDB for Java&lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;2001 &lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/IBM"&gt;IBM&lt;/a&gt; acquires &lt;a href="http://en.wikipedia.org/wiki/Informix" class="mw-redirect" title="Informix"&gt;Informix&lt;/a&gt; (Illustra) integrates with &lt;a href="http://en.wikipedia.org/wiki/IBM_DB2" title="IBM DB2"&gt;DB2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;db4o shipped to first pilot customer&lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;2004 - db4o's commercial launch as db4objects, Inc.&lt;/li&gt;&lt;li&gt;2008 - db4o acquired by &lt;a href="http://en.wikipedia.org/wiki/Versant_Corporation"&gt;Versant Corporation&lt;/a&gt;&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/2000632512313948863-5563411589728524119?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/5563411589728524119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=5563411589728524119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/5563411589728524119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/5563411589728524119'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2011/03/timeline-of-object-databases.html' title='Timeline of Object Databases'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-8386603446803604908</id><published>2011-03-23T19:52:00.001+05:30</published><updated>2011-03-23T19:54:22.257+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Databases'/><category scheme='http://www.blogger.com/atom/ns#' term='Relational Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Codd&apos;s Rules'/><title type='text'>DBMS Vs RDBMS</title><content type='html'>&lt;span id="sort1"&gt;&lt;span class="tdvamseel"&gt;&lt;span style="font-weight: bold;"&gt;DBMS Vs. RDBMS: Some viewpoints taken from internet&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In DBMS tables are not related.  In RDBMS tables are related In DBMS only one user can access the same  database at the same time. In RDBMS many users simultaneously access the  same database RDBMS is more secure than DBMS In DBMS store and retrieve  small amount of Data In RDBMS store and retrieve large amount of Data.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="sort1"&gt;&lt;span class="tdvamseel"&gt;The database which follows Codd's atleast 6 rules is called as RDBMS.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-8386603446803604908?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/8386603446803604908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=8386603446803604908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8386603446803604908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8386603446803604908'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2011/03/dbms-vs-rdbms.html' title='DBMS Vs RDBMS'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-1444127654607950585</id><published>2011-03-11T22:04:00.002+05:30</published><updated>2011-03-11T22:05:02.265+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMainFrame'/><category scheme='http://www.blogger.com/atom/ns#' term='CView'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='MFC'/><category scheme='http://www.blogger.com/atom/ns#' term='VC++'/><title type='text'>Code snippet to access view class from main frame in SDI Apps VC++</title><content type='html'>&lt;pre class="FreeTextNG"&gt;CFrameWnd *pFrame = static_cast&lt;cframewnd&gt; (AfxGetMainWnd());&lt;br /&gt;CMyView *pView = static_cast&lt;cmyview&gt; (pFrame-&gt;GetActiveView());&lt;br /&gt;ASSERT(pView != NULL); // SDI should have one&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-1444127654607950585?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/1444127654607950585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=1444127654607950585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/1444127654607950585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/1444127654607950585'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2011/03/code-snippet-to-access-view-class-from.html' title='Code snippet to access view class from main frame in SDI Apps VC++'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-3264086035522876451</id><published>2010-10-30T13:21:00.002+05:30</published><updated>2010-10-30T13:41:14.658+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java/J2EE'/><title type='text'>Day 1 - Overview of Java</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;How Java Got Evolved?&lt;/span&gt;&lt;br /&gt;1. Fundamental reasons for computer language development:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To adapt to changing environments &amp;amp; uses&lt;/li&gt;&lt;li&gt;To implement refinements&amp;amp; improvements in art of programming&lt;/li&gt;&lt;/ul&gt;2. Era before Java&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Programming through toggling of switches on front panel&lt;/li&gt;&lt;li&gt;Assembly Language&lt;/li&gt;&lt;li&gt;FORTRAN&lt;/li&gt;&lt;li&gt;C (Structured Programming)&lt;/li&gt;&lt;li&gt;C++ (Object-Orientation for complexity management)&lt;/li&gt;&lt;/ul&gt;3. Java is no exception&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Java = C++  - {Problem Areas}&lt;/li&gt;&lt;li&gt;Also, Java = C (Syntax) + C++ (Object-Orientation)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Scenarios that led to creation of Java&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Variety of CPU were existing in late 80’s &amp;amp; embedded systems were gaining popularity&lt;/li&gt;&lt;li&gt;Developing compiler for each of them was expensive &amp;amp; time-consuming&lt;/li&gt;&lt;li&gt;So, a platform independent solution was needed&lt;/li&gt;&lt;li&gt;Internet also started spreading at that time&lt;/li&gt;&lt;/ul&gt;               -Portability: Low-Priority Problem --&gt; High Profile Necessity &lt;ul&gt;&lt;li&gt;In 1991, James Gosling at Sun Microsystems conceived Oak as an architecturally neutral solution for portability&lt;/li&gt;&lt;li&gt;Later, Oak was renamed to Java in 1995&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Why Java is important to Internet?&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Internet = Static Information + Dynamic Part&lt;/li&gt;&lt;li&gt;Dynamic part requires (unknown) programs from elsewhere to run on your computer&lt;/li&gt;&lt;/ul&gt;                 - Issues of Portability &amp;amp; Security&lt;ul&gt;&lt;li&gt;As a solution, Java provided Applets which are portable and secure&lt;/li&gt;&lt;li&gt;Applets are tiny Java programs which are:&lt;/li&gt;&lt;/ul&gt;                 - Transmitted over Internet&lt;br /&gt;                 - Executed by Java-compatible Web Browser&lt;br /&gt;                 - Can react to user-inputs and change dynamically&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Protability &amp;amp; Security: Who is behind the scene?&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Java’s Magic: Bytecode&lt;/li&gt;&lt;/ul&gt;              - Bytecode is highly optimized set of instructions designed to be executed  by Java &lt;br /&gt;                 run-time system, which is called Java Virtual Machine (JVM)&lt;ul&gt;&lt;li&gt;JVM is essentially an interpreter&lt;/li&gt;&lt;li&gt;Portability: Just provide JVM for desired platform&lt;/li&gt;&lt;li&gt;Security: JVM controls bytecode execution and prevents Applets from  accessing different parts of computers and applications to generate side-effects&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Features of Java&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Portable&lt;/li&gt;&lt;li&gt;Secure&lt;/li&gt;&lt;li&gt;Simple&lt;/li&gt;&lt;/ul&gt;              - Easy to learn &amp;amp; use effectively&lt;br /&gt;              - Small number of clear ways of doing a task &lt;ul&gt;&lt;li&gt;Object-Oriented&lt;/li&gt;&lt;/ul&gt;             - Purely O-O&lt;ul&gt;&lt;li&gt;Robustness&lt;/li&gt;&lt;/ul&gt;            - Reliable execution of code on multiple platforms&lt;br /&gt;            - Through: strictly-typed, auto de-allocation, exception-handling&lt;ul&gt;&lt;li&gt;Multithreaded&lt;/li&gt;&lt;/ul&gt;            - Provides constructs for multithreading and auto multiprocess synchronization&lt;ul&gt;&lt;li&gt;Architecture-Neutral&lt;/li&gt;&lt;/ul&gt;           - Write-one; run anywhere, anytime; forever&lt;ul&gt;&lt;li&gt;Interpreted and High Performance&lt;/li&gt;&lt;/ul&gt;           - Through bytecode which is an engineered solution for interpretation&lt;ul&gt;&lt;li&gt;Distributed&lt;/li&gt;&lt;/ul&gt;            - Supports TCP/IP as designed for Internet&lt;br /&gt;            - RMI: Unparallel level of abstraction to client-server programming&lt;ul&gt;&lt;li&gt;Dynamic&lt;/li&gt;&lt;/ul&gt;            - Uses run-time type information to verify and resolve access to objects at run-time&lt;br /&gt;            --&gt;Allows dynamic linking of code in safe &amp;amp; expedient environment manner Robustness&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Myths About Java&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Java is Internet version of C++&lt;/li&gt;&lt;li&gt;Java will replace C++&lt;/li&gt;&lt;li&gt;Java programming is simple&lt;/li&gt;&lt;li&gt;Java increases productivity&lt;/li&gt;&lt;li&gt;All software should be coded in Java&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Continuing Revolution&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Java Standard Editions (J2SE)&lt;/li&gt;&lt;/ul&gt;          - 1.7 (early development)&lt;br /&gt;          - 1.6 (stable, current)&lt;br /&gt;          - 1.5 (stable)&lt;br /&gt;          - 1.4 (stable)&lt;br /&gt;          - 1.3 (obsolete)&lt;br /&gt;          - 1.2 (no longer actively supported)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Java Enterprise Editions:&lt;/li&gt;&lt;/ul&gt;           - J2EE 1.4&lt;br /&gt;           - Java EE 5&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Java for Micro Devices&lt;/li&gt;&lt;/ul&gt;          - J2ME&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255); font-weight: bold;"&gt;Books:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Java 2 Complete Reference, 5th Ed., by Herbert Schildt&lt;/li&gt;&lt;li&gt;J2EE Unleashed by Paul Allen, SAMS Publisher&lt;/li&gt;&lt;li&gt;CodeNotes for J2EE by Gregory Brill&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;Websites:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;http://www.javapassion.com&lt;/li&gt;&lt;li&gt;http://www.java.sun.com&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/2000632512313948863-3264086035522876451?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/3264086035522876451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=3264086035522876451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/3264086035522876451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/3264086035522876451'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2010/10/day-1-overview-of-java.html' title='Day 1 - Overview of Java'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-8178820677931912483</id><published>2010-08-16T21:06:00.002+05:30</published><updated>2010-08-16T21:15:00.353+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Databases'/><title type='text'>Some Features of MySQL</title><content type='html'>&lt;ul&gt;&lt;li&gt;Scalability: Can support large databases. Some data stats: 50 million records, 60,000 tables of 5 billion rows. Thatswhy, Yahoo, Google, and other industry giants use it.&lt;/li&gt;&lt;li&gt;Portability: Supported on many OS and different architectures: PCs to mainframes&lt;/li&gt;&lt;li&gt;Connectivity: Fully networked. Supports TCP/IP &amp;amp; Unix Sockets, Named Pipes. Access from any where. Multi-user. APIs available for many host languages like C, C++, Java, Perl, PHP&lt;/li&gt;&lt;li&gt;Speed: Benchmark proved it is as fast or faster than many commercially available RDBMS&lt;/li&gt;&lt;li&gt;Ease of Use: Simple to install, implement, and optimize&lt;/li&gt;&lt;li&gt;Open Source: Global audience participating in review, testing, &amp;amp; development of code&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="if(typeof(jsCall)=='function'){jsCall();}else{setTimeout('jsCall()',500);}" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-8178820677931912483?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/8178820677931912483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=8178820677931912483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8178820677931912483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8178820677931912483'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2010/08/some-features-of-mysql.html' title='Some Features of MySQL'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-6021222934597756741</id><published>2010-08-16T20:57:00.002+05:30</published><updated>2010-08-16T21:05:49.908+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='difference from DBMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Required functionality'/><category scheme='http://www.blogger.com/atom/ns#' term='Relational Database'/><category scheme='http://www.blogger.com/atom/ns#' term='RDBMS'/><title type='text'>More On Relational Databases</title><content type='html'>&lt;ul&gt;&lt;li&gt;Relational database alone is not sufficient&lt;/li&gt;&lt;li&gt;Data Base Management System is required to provide (for data):&lt;/li&gt;&lt;/ul&gt;                      - Storage&lt;br /&gt;                      - Connectivity&lt;br /&gt;                      - Security&lt;br /&gt;                      - Analysis&lt;br /&gt;                      - Manipulation&lt;br /&gt;                      - Data Management&lt;br /&gt;                      - Maintaining Meta-data&lt;br /&gt;                      - Managing Transactions&lt;br /&gt;                      - Optimizing Performance&lt;br /&gt;                      - Backup &amp;amp; Recovery&lt;br /&gt;                      - Protect data from corruption &amp;amp; inconsistencies&lt;br /&gt;                      - Client-server tools for admin &amp;amp; data related tasks&lt;br /&gt;DBMS Vs RDBMS: RDBMS not only provides storage but also supports relationships&lt;br /&gt;&lt;br /&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="if(typeof(jsCall)=='function'){jsCall();}else{setTimeout('jsCall()',500);}" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-6021222934597756741?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/6021222934597756741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=6021222934597756741' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/6021222934597756741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/6021222934597756741'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2010/08/more-on-relational-databases.html' title='More On Relational Databases'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-2780684629053234369</id><published>2010-08-16T20:53:00.001+05:30</published><updated>2010-08-16T20:56:56.227+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Databases'/><category scheme='http://www.blogger.com/atom/ns#' term='DBMS'/><title type='text'>Introduction To Databases and DBMS</title><content type='html'>&lt;ul&gt;&lt;li&gt;Databases are globally used - air/railway reservation, online auction/shopping etc.&lt;/li&gt;&lt;li&gt;Databases are backbone of information age&lt;/li&gt;&lt;li&gt;Bigger &amp;amp; better applications are being developed to access and manipulate the stored data&lt;/li&gt;&lt;li&gt;To bring down associated costs, following features are desired:&lt;/li&gt;&lt;li&gt;       &lt;span style="font-style: italic;"&gt; support for multiple platforms and specific optimization in a Data Base Management Systems (DBMS)&lt;/span&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;       flexible &amp;amp; scalable data sources&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Database is collection of related data organized and classified in a structured format that is described by metadata (data about data) which defines how data is defined and stored &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt; this is required to provide efficient access and maintenance&lt;/li&gt;&lt;li&gt; e.g. structuring information in a phonebook - data field, their types, constraints&lt;/li&gt;&lt;/ul&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="if(typeof(jsCall)=='function'){jsCall();}else{setTimeout('jsCall()',500);}" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-2780684629053234369?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/2780684629053234369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=2780684629053234369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2780684629053234369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2780684629053234369'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2010/08/introduction-to-databases-and-dbms.html' title='Introduction To Databases and DBMS'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-8587056537027620912</id><published>2010-08-16T20:11:00.004+05:30</published><updated>2010-08-16T20:52:57.844+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network'/><category scheme='http://www.blogger.com/atom/ns#' term='Hierarchical'/><category scheme='http://www.blogger.com/atom/ns#' term='Databases'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Models'/><category scheme='http://www.blogger.com/atom/ns#' term='Relational'/><title type='text'>Data Models</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Data Models: &lt;/span&gt;&lt;span&gt;Whether entity relationship is represented by links or tuples&lt;br /&gt;&lt;br /&gt;Three main data models are:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Hierarchical Model&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Period: 1960&lt;/li&gt;&lt;li&gt;Approach: Records are arranged in inverted tree like structure with relationship in one direction and there can be only one parent&lt;/li&gt;&lt;li&gt;Disadvantages: 1. Rigid parent-child structure 2. Difficult navigation pro grammatically&lt;/li&gt;&lt;li&gt;E.g. IBM IMS&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Network Model&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Period: 1970&lt;/li&gt;&lt;li&gt;Approach: Records are arranged in networked node fashion. i.e. same as hierarchical with multiple parents&lt;/li&gt;&lt;li&gt;Disadvantages: More flexible navigation (because of bi-directional relationship)but still changes to database and application are still complicated&lt;/li&gt;&lt;li&gt;In both above models, structure is hard-wired in the application program, so change in database means need to change using applications as well&lt;/li&gt;&lt;li&gt;E.g. CODYSL DBTG&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Relational Model&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Period: Late 1970 and 1980s&lt;/li&gt;&lt;li&gt;Approach: parent-child relationship of above models replaced with related tables comprising of rows and columns. &lt;/li&gt;&lt;li&gt;Advantage: Flexibility even with complex relationships. Relational database is independent of application&lt;/li&gt;&lt;li&gt;E.g. DB2, Oracle, SQL Server, MySQL&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;It is to be noted that databases based on hierarchical and network models still exist and are in use.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-8587056537027620912?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/8587056537027620912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=8587056537027620912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8587056537027620912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8587056537027620912'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2010/08/data-models.html' title='Data Models'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-4166019836053768446</id><published>2010-08-14T23:20:00.001+05:30</published><updated>2010-08-14T23:23:45.286+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Databases'/><category scheme='http://www.blogger.com/atom/ns#' term='Codd&apos;s Rules'/><category scheme='http://www.blogger.com/atom/ns#' term='RDBMS'/><title type='text'>Codd's 12 Rules for RDBMS</title><content type='html'>&lt;p&gt;&lt;b&gt;Rule 0:&lt;/b&gt; The system must qualify as &lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Relational_model" title="Relational  model"&gt;relational&lt;/a&gt;&lt;/i&gt;, as a &lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Database" title="Database"&gt;database&lt;/a&gt;&lt;/i&gt;,  and as a &lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Management_system" title="Management system"&gt;management system&lt;/a&gt;&lt;/i&gt;.&lt;/p&gt; &lt;dl&gt;&lt;dd&gt;For a system to qualify as a relational database management system (&lt;a href="http://en.wikipedia.org/wiki/RDBMS" title="RDBMS" class="mw-redirect"&gt;RDBMS&lt;/a&gt;), that system must use its &lt;i&gt;relational&lt;/i&gt;  facilities (exclusively) to &lt;i&gt;manage&lt;/i&gt; the &lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Database" title="Database"&gt;database&lt;/a&gt;&lt;/i&gt;.&lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;&lt;b&gt;Rule 1:&lt;/b&gt; The &lt;i&gt;information rule&lt;/i&gt;:&lt;/p&gt; &lt;dl&gt;&lt;dd&gt;All information in the database is to be represented in one and only  one way, namely by values in column positions within rows of tables.&lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;&lt;b&gt;Rule 2:&lt;/b&gt; The &lt;i&gt;guaranteed access rule&lt;/i&gt;:&lt;/p&gt; &lt;dl&gt;&lt;dd&gt;All data must be accessible. This rule is essentially a restatement  of the fundamental requirement for &lt;a href="http://en.wikipedia.org/wiki/Unique_key" title="Unique key"&gt;primary  keys&lt;/a&gt;. It says that every individual scalar value in the database  must be logically addressable by specifying the name of the containing &lt;a href="http://en.wikipedia.org/wiki/Table_%28database%29" title="Table  (database)"&gt;table&lt;/a&gt;, the name of the containing column and the primary  key value of the containing &lt;a href="http://en.wikipedia.org/wiki/Row_%28database%29" title="Row  (database)"&gt;row&lt;/a&gt;.&lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;&lt;b&gt;Rule 3:&lt;/b&gt; &lt;i&gt;Systematic treatment of null values&lt;/i&gt;:&lt;/p&gt; &lt;dl&gt;&lt;dd&gt;The DBMS must allow each field to remain null (or empty).  Specifically, it must support a representation of "missing information  and inapplicable information" that is &lt;a href="http://en.wikipedia.org/wiki/Systematic" title="Systematic" class="mw-redirect"&gt;systematic&lt;/a&gt;, distinct from all regular values  (for example, "distinct from zero or any other number", in the case of  numeric values), and independent of &lt;a href="http://en.wikipedia.org/wiki/Data_type" title="Data type"&gt;data  type&lt;/a&gt;. It is also implied that such representations must be  manipulated by the DBMS in a systematic way.&lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;&lt;b&gt;Rule 4:&lt;/b&gt; &lt;i&gt;Active &lt;a href="http://en.wikipedia.org/wiki/Online" title="Online" class="mw-redirect"&gt;online&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Database_catalog" title="Database  catalog"&gt;catalog&lt;/a&gt; based on the relational model&lt;/i&gt;:&lt;/p&gt; &lt;dl&gt;&lt;dd&gt;The system must support an online, inline, relational &lt;a href="http://en.wikipedia.org/wiki/Database_catalog" title="Database  catalog"&gt;catalog&lt;/a&gt; that is accessible to authorized users by means of  their regular &lt;a href="http://en.wikipedia.org/wiki/Query_language" title="Query language"&gt;query language&lt;/a&gt;. That is, users must be able  to access the database's structure (catalog) using the same query  language that they use to access the database's data.&lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;&lt;b&gt;Rule 5:&lt;/b&gt; The &lt;i&gt;comprehensive data sublanguage rule&lt;/i&gt;:&lt;/p&gt; &lt;dl&gt;&lt;dd&gt;The system must support at least one relational language that &lt;dl&gt;&lt;dd&gt; &lt;ol&gt;&lt;li&gt;Has a &lt;a href="http://en.wikipedia.org/wiki/Linear_syntax" title="Linear syntax"&gt;linear syntax&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Can be used both interactively and within application programs,&lt;/li&gt;&lt;li&gt;Supports data definition operations (including view definitions),  data manipulation operations (update as well as retrieval), security and  integrity constraints, and &lt;a href="http://en.wikipedia.org/wiki/Database_transaction" title="Database  transaction"&gt;transaction&lt;/a&gt; management operations (begin, commit, and  rollback).&lt;/li&gt;&lt;/ol&gt; &lt;/dd&gt;&lt;/dl&gt; &lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;&lt;b&gt;Rule 6:&lt;/b&gt; The &lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/View_%28database%29" title="View  (database)"&gt;view&lt;/a&gt; updating rule&lt;/i&gt;:&lt;/p&gt; &lt;dl&gt;&lt;dd&gt;All views that are theoretically updatable must be updatable by the  system.&lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;&lt;b&gt;Rule 7:&lt;/b&gt; &lt;i&gt;High-level insert, update, and delete&lt;/i&gt;:&lt;/p&gt; &lt;dl&gt;&lt;dd&gt;The system must support set-at-a-time &lt;i&gt;insert&lt;/i&gt;, &lt;i&gt;update&lt;/i&gt;,  and &lt;i&gt;delete&lt;/i&gt; operators. This means that data can be retrieved from a  relational database in sets constructed of data from multiple rows  and/or multiple tables. This rule states that insert, update, and delete  operations should be supported for any retrievable set rather than just  for a single row in a single table.&lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;&lt;b&gt;Rule 8:&lt;/b&gt; &lt;i&gt;Physical data independence&lt;/i&gt;:&lt;/p&gt; &lt;dl&gt;&lt;dd&gt;Changes to the physical level (how the data is stored, whether in  arrays or linked lists etc.) must not require a change to an application  based on the structure.&lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;&lt;b&gt;Rule 9:&lt;/b&gt; &lt;i&gt;Logical data independence&lt;/i&gt;:&lt;/p&gt; &lt;dl&gt;&lt;dd&gt;Changes to the logical level (tables, columns, rows, and so on) must  not require a change to an application based on the structure. Logical  data independence is more difficult to achieve than physical data  independence.&lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;&lt;b&gt;Rule 10:&lt;/b&gt; &lt;i&gt;Integrity independence&lt;/i&gt;:&lt;/p&gt; &lt;dl&gt;&lt;dd&gt;&lt;a href="http://en.wikipedia.org/wiki/Integrity_constraints" title="Integrity constraints"&gt;Integrity constraints&lt;/a&gt; must be  specified separately from application programs and stored in the &lt;a href="http://en.wikipedia.org/wiki/Database_catalog" title="Database  catalog"&gt;catalog&lt;/a&gt;. It must be possible to change such constraints as  and when appropriate without unnecessarily affecting existing  applications.&lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;&lt;b&gt;Rule 11:&lt;/b&gt; &lt;i&gt;Distribution independence&lt;/i&gt;:&lt;/p&gt; &lt;dl&gt;&lt;dd&gt;The distribution of portions of the database to various locations  should be invisible to users of the database. Existing applications  should continue to operate successfully : &lt;dl&gt;&lt;dd&gt; &lt;ol&gt;&lt;li&gt;when a distributed version of the DBMS is first introduced; and&lt;/li&gt;&lt;li&gt;when existing distributed data are redistributed around the system.&lt;/li&gt;&lt;/ol&gt; &lt;/dd&gt;&lt;/dl&gt; &lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;&lt;b&gt;Rule 12:&lt;/b&gt; The &lt;i&gt;nonsubversion rule&lt;/i&gt;:&lt;/p&gt; &lt;dl&gt;&lt;dd&gt;If the system provides a low-level (record-at-a-time) interface,  then that interface cannot be used to subvert the system, for example,  bypassing a relational security or integrity constraint.&lt;/dd&gt;&lt;/dl&gt;(Source: Wikipedia)&lt;br /&gt;Importance Level: Usually asked in interviews of those who claim to have worked in field of databases&lt;br /&gt;:) In fact, the rules are so strict that all popular so-called "relational"  DBMSs fail on many of the criteria&lt;br /&gt;To-do: Figure out which RDBMS support how many rules&lt;br /&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="if(typeof(jsCall)=='function'){jsCall();}else{setTimeout('jsCall()',500);}" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-4166019836053768446?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/4166019836053768446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=4166019836053768446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/4166019836053768446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/4166019836053768446'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2010/08/codds-12-rules-for-rdbms.html' title='Codd&apos;s 12 Rules for RDBMS'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-7831147093994646362</id><published>2010-08-10T07:58:00.003+05:30</published><updated>2010-08-10T08:02:54.144+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Pitch RTI'/><category scheme='http://www.blogger.com/atom/ns#' term='HLA'/><category scheme='http://www.blogger.com/atom/ns#' term='Object Oriented Analysis and Design'/><category scheme='http://www.blogger.com/atom/ns#' term='RUP'/><category scheme='http://www.blogger.com/atom/ns#' term='Architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='Terms'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='RDBMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Mechanisms'/><category scheme='http://www.blogger.com/atom/ns#' term='Glossary'/><title type='text'>Rational Unified Process - Defining Software Architecture</title><content type='html'>&lt;ul&gt;&lt;li&gt; &lt;span style="font-style: italic;"&gt;Analysis&lt;/span&gt;: The purpose of this activity is to define candidate architecture for the system based on experience gained from similar systems or in similar problem domains. The architectural patterns, key mechanisms, modeling conventions, reuse strategy for the system is defined. It provides input to the planning process.&lt;/li&gt;&lt;li&gt; &lt;span style="font-style: italic;"&gt;Design Elements&lt;/span&gt;: The purpose of this activity is to analyze interactions of analysis classes to identify Design Model elements.&lt;/li&gt;&lt;li&gt; &lt;span style="font-style: italic;"&gt;Design Mechanisms&lt;/span&gt;: The purpose of this activity is to refine the analysis mechanism into design mechanisms based on the constraints imposed by the implementation. &lt;/li&gt;&lt;li&gt; &lt;span style="font-style: italic;"&gt;Run-Time Architecture&lt;/span&gt;: The purpose of this activity is to analyze concurrency requirements, to identify processes, identify inter-process communication mechanisms, allocate inter-process coordination resources, identify process lifecycles, and distribute model elements among processes.&lt;/li&gt;&lt;li&gt; &lt;span style="font-style: italic;"&gt;Distribution&lt;/span&gt;: The purpose of this activity is to describe how the functionality of the system is distributed across physical nodes. This is required only for distributed systems.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Communication&lt;/span&gt;: A means to make different elements exchange data among themselves.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Persistency&lt;/span&gt;: A means to make an element persistent (i.e. exists after the application that is created it ceases to exist)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Analysis-To-Design-To-Implementation Mechanisms Map&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Analysis Mechanisms     Design Mechanisms         Implementation Mechanisms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;Communication                       HLA-RTI                             PitchRTI 1516&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;Persistence                         Relational DBMS                        MySQL 5.4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="if(typeof(jsCall)=='function'){jsCall();}else{setTimeout('jsCall()',500);}" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-7831147093994646362?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/7831147093994646362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=7831147093994646362' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/7831147093994646362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/7831147093994646362'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2010/08/rational-unified-process-defining.html' title='Rational Unified Process - Defining Software Architecture'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-1873896960055489125</id><published>2010-08-08T21:17:00.001+05:30</published><updated>2010-08-08T21:20:47.742+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Databases'/><category scheme='http://www.blogger.com/atom/ns#' term='Terms'/><category scheme='http://www.blogger.com/atom/ns#' term='Glossary'/><title type='text'>Database Terminology</title><content type='html'>(i) Data Item: It is the smallest unit of data. It may be derived, atomic, composite or embedded.&lt;br /&gt;(ii) Database: It is a repository of stored data which is both integrated (i.e. unified with reduced redundancy) and shared.&lt;br /&gt;(iii) Data Base Management System (DBMS): It records and maintains information (meaningful data). DBMS software hides all the details of data stored and present it to user in desired operation. Some functions include add, delete, read, modify, and special functions like sorting and math functions. &lt;br /&gt;(iv) DBMS software may follow hierarchical, network, or relational data model. Latest DBMS also make use of object oriented concepts and may be Object DBMS (ODBMS), Object Oriented DBMS (OODBMS) or Object Relational DBMS (ORDBMS). However, use of RDBMS is most prevalent. &lt;br /&gt;(v) RDBMS: RDBMS software is based on relational data model and follows relational algebra. RDBMS stores data about attributes of some entities in form of related tables where each table comprises of rows and columns.  Some common RDBMS are MS Access, Oracle, MySQL, PostgreSQL.&lt;br /&gt;(vi) Entity: Items about which relevant information is stored. For e.g. Employee, machine part etc.&lt;br /&gt;(vii) Attributes &amp; Domains: Columns of a table are referred to as attributes. A domain is a pool of values from which actual values appearing in a given column are drawn. E.g. COLOR can be an attribute in a table and values like red, orange, green etc. constitutes its domain.&lt;br /&gt;(viii) Tuples &amp; Records: Tuples in a relation represents the records which are the rows in a table. For e.g. in a table for employee, there may be records for me, you, friend etc&lt;br /&gt;(ix) Schema: A schema is a logical database description and is based on types of data being used. It gives name of entities and attributes and specify the relationship between them (which could be one-one, one-many, many-many or even conditional). It is a framework into which values of data item can be fitted. Schema is DBMS independent and remains same, however, values may change over time.&lt;br /&gt;(x) Keys: Some attribute or combination of attributes in a table forms the keys. These keys could be Super Key, Candidate Key, Primary Key, Alternate Key, or Foreign Key. A primary key is used to uniquely identify a record in a table. A foreign key is one which is primary key in another relation (i.e. table) and helps in linking the tables. &lt;br /&gt;(xi)  Database Design: It could be conceptual, logical, or physical. A data modeler does the conceptual database design by studying and modeling the data in technology independent manner. A database designer (or may be Data Base Administrator, DBA) does the logical database design by mapping or translating the conceptual data design into logical database design to fit in the chosen data model (relational, object relational etc.). Physical database design is done by DBA by translating logical design into one or more physical design – each tailored for particular DBMS which will manage the database and particular computer system that will run the database.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-1873896960055489125?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/1873896960055489125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=1873896960055489125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/1873896960055489125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/1873896960055489125'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2010/08/database-terminology.html' title='Database Terminology'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-5185672897425537728</id><published>2010-08-05T21:17:00.003+05:30</published><updated>2010-08-05T21:27:19.399+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='WAMP'/><category scheme='http://www.blogger.com/atom/ns#' term='phptriad'/><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='phpMyAdmin'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Configuring Apache, MySQL, PHP, and PHPMyAdmin</title><content type='html'>phptriad is a great tool. Just double-click the installer to install this tool and in next 2-3 minutes, you are ready with a web development/deployment environment. WAMP and many other clones came up.&lt;br /&gt;&lt;br /&gt;But configuring four of them yourself gives you more control over the development environment. You have the option of choosing latest versions of these software according to your platforms.&lt;br /&gt;&lt;br /&gt;This configuration is easy if every step is followed carefully with no shortcuts, slips, and oversights.&lt;br /&gt;&lt;br /&gt;I have taken below stated steps from one of my trainees' report and he might have taken from some website only. But, the thing is that these steps are complete and worked for me everytime; so these should work for you also.&lt;br /&gt;&lt;br /&gt;Just try...&lt;br /&gt;The Apache Server combined with the power of PHP, MySQL, and phpMyAdmin, creates one of the best possible development environments for a web programmer. Getting everything properly configured can take 20-30 minutes, so make sure you have enough time set aside before beginning the installation.&lt;br /&gt;  &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installing Apache:&lt;/span&gt;&lt;br /&gt;Go to www.apache.org and download "Win32 Binary (MSI Installer): apache_2.2.8-win32-x86-openssl-0.9.8g.msi to your desktop.&lt;br /&gt;1.    Double click "apache_2.2.8-win32-x86-openssl-0.9.8g.msi", and if prompted, click "run".&lt;br /&gt;2.    An installation wizard will appear.Click "Next".&lt;br /&gt;3.    The next page contains the terms of agreement. Select "I accept", and click "Next".&lt;br /&gt;4.    Read about the Apache Server, and click "Next"&lt;br /&gt;5.    The next screen will ask you for specific server information.Click "Next".&lt;br /&gt;6.    On the next screen, select "Typical Installation" and click "Next".&lt;br /&gt;7.    Click "Next".&lt;br /&gt;8.    Click "Install".&lt;br /&gt;9.    Open up Internet Explorer and type in "http://localhost". If you see a page that says "It works!" then the Apache server has been installed successfully.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installing PHP:&lt;/span&gt;&lt;br /&gt;1.    Go to www.php.net and download the "PHP 5.2.0 zip package" to your desktop. (Be patient while it downloads, the ZIP file is over 9MB!)&lt;br /&gt;&lt;br /&gt; Create a new folder called "php" in your C Drive. Copy the "php-5.2.0-Win32.zip" file to there ("C:\php") and extract it using WinZIP or a similiar program.&lt;br /&gt;2.    Your "C:\php" directory should now look like:&lt;br /&gt;3.    Next copy the "php.ini-dist" file from "C:/php/" to "C:/WINDOWS" and rename it to "php.ini". This is your PHP configuration file. We'll come back to this later.&lt;br /&gt;4.    Now it's time to tell Apache that PHP exists. Open up your Apache configuration file ("C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf") in notepad and add these four lines to the bottom of the "LoadModule" section:&lt;br /&gt;LoadModule php5_module "c:/php/php5apache2_2.dll"&lt;br /&gt;AddHandler application/x-httpd-php .php&lt;br /&gt;# configure the path to php.ini&lt;br /&gt;PHPIniDir "c:/windows"&lt;br /&gt;5.    In your "htdocs" directory, create a file called "info.php". Open it in notepad and add this line of code to it:&lt;br /&gt;&lt;?php phpinfo(); ?&gt;&lt;br /&gt;6.    Restart your Apache Server for the changes to take effect: Start &gt; All Programs &gt; Apache HTTP Server 4.2.4 &gt; Control Apache Server &gt; Restart&lt;br /&gt;7.    Open up Internet Explorer and type in: http://localhost/info.php. If your browser takes you to a page that looks like this, then PHP has been installed successfully!&lt;br /&gt;Modifying your PHP Configuration File:&lt;br /&gt;•    Your PHP configuration (php.ini) file is located in "C:/WINDOWS/php.ini". You can modify it with notepad or a similiar text editor.&lt;br /&gt;•    Open it up and find the line that says:&lt;br /&gt;extension_dir = "./"                    and change it to&lt;br /&gt; extension_dir = "C:\php\ext"&lt;br /&gt;•    Find the line that says:&lt;br /&gt;;session.save_path = "/tmp"    and change it to&lt;br /&gt;session.save_path = "C:\WINDOWS\temp"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installing MYSQL:&lt;/span&gt;&lt;br /&gt;1.    Go to www.mysql.com and download the "Windows (x86) Setup.EXE (version 5.0.27)" to your desktop. (To do this you'll need to register an account with MySQL.).&lt;br /&gt;2.     Double click on the "Setup.exe" file. An installation wizard will appear.&lt;br /&gt;3.    Select "Typical" Installation and click "Next".&lt;br /&gt;4.    Click "Install". (Be patient, this can take up to several minutes).&lt;br /&gt;5.    The next screen will ask you to "Sign Up". Select "Skip Sign-Up" for now.&lt;br /&gt;6.    The next screen will tell you that the installation wizard is complete. Make sure that the "Configure the MySQL Server now" field is checked before clicking "Finish".&lt;br /&gt;7.    The MySQL Server Instance Configuration Wizard should appear. Click "Next".&lt;br /&gt;8.    Select "Detailed Configuration" and click "Next".&lt;br /&gt;9.    Select "Developer Machine" and click "Next".&lt;br /&gt;10.    Select "Multifunctional Database" and click "Next".&lt;br /&gt;11.    Click "Next".&lt;br /&gt;12.    Select "Decision Support (DSS)/OLAP" and click "Next".&lt;br /&gt;13.    Select "Multifunctional Database" and click "Next".&lt;br /&gt;14.    Make sure "Enable TCP/IP Networking" is checked, the Port Number is set to "3306", and "Enable Strict Mode" is checked. Click "Next".&lt;br /&gt;15.    Select "Standard Character Set" and click "Next".&lt;br /&gt;16.    Check "Install As Windows Service", set the Service Name to "MySQL", and check "Launch the MySQL Server automatically". Make sure that the "Include Bin Directory in Windows Path" is NOT checked. Click "Next".&lt;br /&gt;17.    On the next screen, check the box that says "Modify Security Settings". Enter a password for the default "root" account, and confirm the password in the box below. Do NOT check the boxes "Enable root access from remote machines" or "Create An Anonymous Account". Click "Next".&lt;br /&gt;18.    Click "Execute". (This may take a few minutes. Be patient).&lt;br /&gt;19.    Click "Finish".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Configuring PHP to work with MySQL:&lt;/span&gt;&lt;br /&gt;Now that both PHP and MySQL are installed, we have to configure them to work together.&lt;br /&gt;1.    Open up your php.ini file (C:/WINDOWS/php.ini) and find the line:&lt;br /&gt;;extension=php_mysql.dll&lt;br /&gt;To enable the MySQL extension, delete the semi-colon at the beginning of that line.&lt;br /&gt;2.    Next we must add the PHP directory to the Windows PATH. To do this, click: Start &gt; My Computer &gt; Properties &gt; Advanced &gt; Environment Variables. Under the second list (System Variables), there will be a variable called "Path". Select it and click "Edit". Add ";C:\php" to the very end of the string and click "OK".&lt;br /&gt;3.    Restart your computer for the changes to take effect&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installing phpMyAdmin:&lt;/span&gt;&lt;br /&gt;Now that both Apache, PHP and MySQL are installed, we can install phpMyAdmin, a tool that allows you to easily manage your MySQL databases.&lt;br /&gt;1.    Go to www.phpMyAdmin.net and download "english.zip" under phpMyAdmin-2.11.6 section to your desktop.&lt;br /&gt;2.    Create a new folder called "phpmyadmin" in your "htdocs" directory. Extract the contents of the "phpMyAdmin-2.11.6.zip" ZIP file here. Your C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\phpmyadmin" directory should now look like:&lt;br /&gt;3.    Create a new file in the "phpMyAdmin" directory (above) called "config.inc.php". Place this code inside it and be sure to replace "YOUR_PASSWORD_HERE" (in both places below) with your MySQL Password:&lt;br /&gt;&lt;?php&lt;br /&gt;$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */&lt;br /&gt;$i = 0;&lt;br /&gt;$i++;&lt;br /&gt;$cfg['Servers'][$i]['user'] = 'root';&lt;br /&gt;$cfg['Servers'][$i]['password'] = 'YOUR_PASSWORD_HERE';&lt;br /&gt;$cfg['Servers'][$i]['auth_type'] = 'config';&lt;br /&gt;$cfg['Servers'][$i]['host'] = 'localhost';&lt;br /&gt;$cfg['Servers'][$i]['connect_type'] = 'tcp';&lt;br /&gt;$cfg['Servers'][$i]['compress'] = false;&lt;br /&gt;$cfg['Servers'][$i]['extension'] = 'mysql';&lt;br /&gt;$cfg['Servers'][$i]['controluser'] = 'root';&lt;br /&gt;$cfg['Servers'][$i]['controlpass'] = 'YOUR_PASSWORD_HERE';&lt;br /&gt;$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';&lt;br /&gt;$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';&lt;br /&gt;$cfg['Servers'][$i]['relation'] = 'pma_relation';&lt;br /&gt;$cfg['Servers'][$i]['table_info'] = 'pma_table_info';&lt;br /&gt;$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';&lt;br /&gt;$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';&lt;br /&gt;$cfg['Servers'][$i]['column_info'] = 'pma_column_info';&lt;br /&gt;$cfg['Servers'][$i]['history'] = 'pma_history';&lt;br /&gt;$cfg['UploadDir'] = '';&lt;br /&gt;$cfg['SaveDir'] = '';&lt;br /&gt;?&gt;&lt;br /&gt;4.    phpMyAdmin has now been successfully installed! To use it, open up Internet Explorer and type in "http://localhost/phpmyadmin". This will bring you to the main phpMyAdmin page. If you have any questions, refer to the phpMyAdmin website or the "Documentation.html" file in the /phpMyAdmin/ directory.&lt;br /&gt;5.    Enjoy using Apache, PHP, MySQL, and phpMyAdmin!&lt;br /&gt;&lt;br /&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="if(typeof(jsCall)=='function'){jsCall();}else{setTimeout('jsCall()',500);}" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-5185672897425537728?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/5185672897425537728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=5185672897425537728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/5185672897425537728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/5185672897425537728'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2010/08/configuring-apache-mysql-php-and.html' title='Configuring Apache, MySQL, PHP, and PHPMyAdmin'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-7069916720542845020</id><published>2010-08-04T21:40:00.002+05:30</published><updated>2010-08-04T21:42:10.587+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='History of Computers'/><title type='text'>Fortran Statement on Fortran Code Card (Punch Card)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_07BopuFgDKc/TFmRPHeHB8I/AAAAAAAAAc0/9aFwAZdEx2Q/s1600/punch+card+fortran.bmp"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 176px; height: 400px;" src="http://3.bp.blogspot.com/_07BopuFgDKc/TFmRPHeHB8I/AAAAAAAAAc0/9aFwAZdEx2Q/s400/punch+card+fortran.bmp" alt="" id="BLOGGER_PHOTO_ID_5501588108699174850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="if(typeof(jsCall)=='function'){jsCall();}else{setTimeout('jsCall()',500);}" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-7069916720542845020?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/7069916720542845020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=7069916720542845020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/7069916720542845020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/7069916720542845020'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2010/08/fortran-statement-on-fortran-code-card.html' title='Fortran Statement on Fortran Code Card (Punch Card)'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_07BopuFgDKc/TFmRPHeHB8I/AAAAAAAAAc0/9aFwAZdEx2Q/s72-c/punch+card+fortran.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-2318837694114282545</id><published>2010-08-04T21:30:00.002+05:30</published><updated>2010-08-04T21:39:48.784+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Motherboard'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>Motherboard Layout For Intel's D945GCNL</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_07BopuFgDKc/TFmQSnHnHEI/AAAAAAAAAcM/fhKdMejs4Rw/s1600/MB_LAYOUT.bmp"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 331px; height: 400px;" src="http://1.bp.blogspot.com/_07BopuFgDKc/TFmQSnHnHEI/AAAAAAAAAcM/fhKdMejs4Rw/s400/MB_LAYOUT.bmp" alt="" id="BLOGGER_PHOTO_ID_5501587069222722626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="if(typeof(jsCall)=='function'){jsCall();}else{setTimeout('jsCall()',500);}" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-2318837694114282545?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/2318837694114282545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=2318837694114282545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2318837694114282545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2318837694114282545'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2010/08/motherboard-layout-for-intels-d945gcnl.html' title='Motherboard Layout For Intel&apos;s D945GCNL'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_07BopuFgDKc/TFmQSnHnHEI/AAAAAAAAAcM/fhKdMejs4Rw/s72-c/MB_LAYOUT.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-8262917369283246119</id><published>2010-05-02T14:35:00.001+05:30</published><updated>2010-05-02T14:36:56.039+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Databases'/><title type='text'>10 Common Database Design Mistakes</title><content type='html'>&lt;ol type="1"&gt;&lt;li&gt;Poor design/planning  &lt;/li&gt;&lt;li&gt;Ignoring normalization  &lt;/li&gt;&lt;li&gt;Poor naming standards  &lt;/li&gt;&lt;li&gt;Lack of documentation  &lt;/li&gt;&lt;li&gt;One table to hold all domain values  &lt;/li&gt;&lt;li&gt;Using identity/guid columns as your only key  &lt;/li&gt;&lt;li&gt;Not using SQL facilities to protect data integrity  &lt;/li&gt;&lt;li&gt;Not using stored procedures to access data  &lt;/li&gt;&lt;li&gt;Trying to build generic objects&lt;/li&gt;&lt;/ol&gt; &lt;ol start="10" type="1"&gt;&lt;li&gt;Lack of testing&lt;/li&gt;&lt;/ol&gt;Detailed description available at:&lt;br /&gt;http://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-8262917369283246119?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/8262917369283246119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=8262917369283246119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8262917369283246119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8262917369283246119'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2010/05/10-common-database-design-mistakes.html' title='10 Common Database Design Mistakes'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-4410002736154559878</id><published>2010-02-17T22:50:00.003+05:30</published><updated>2010-02-17T22:55:39.019+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Release Candidate'/><category scheme='http://www.blogger.com/atom/ns#' term='RC'/><title type='text'>What is a Release Candidate (RC)?</title><content type='html'>&lt;span class="mContent"&gt;While looking at specification of a server machine, I found RC written after Windows Server 2008 HyperV. I, immediately, googled for it and found:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A &lt;/span&gt;&lt;span style="font-style: italic;" class="yellowFade"&gt;&lt;span&gt;&lt;span style="position: relative;" class="yellowFadeInnerSpan"&gt;release&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;" class="yellowFade"&gt;&lt;span&gt;&lt;span style="position: relative;" class="yellowFadeInnerSpan"&gt;candidate&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; is a version of a software program that is usually not in its final form. While the version is functional, it's not quite ready to offer for sale to the general public [wisegeek.com].&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Of beta version and RC, beta version is a precursor to RC and has more bugs&lt;br /&gt;&lt;br /&gt;Once bugs have been removed from RC, the software goes to Release To Market/Manufacture (RTM) stage.&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-4410002736154559878?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/4410002736154559878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=4410002736154559878' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/4410002736154559878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/4410002736154559878'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2010/02/what-is-release-candidate-rc.html' title='What is a Release Candidate (RC)?'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-7864603563499975604</id><published>2009-12-16T22:30:00.001+05:30</published><updated>2009-12-16T22:30:37.326+05:30</updated><title type='text'>Guidelines Use Case Analysis - Interaction Diagrams</title><content type='html'>Having knowing how to identify various classes &amp;amp; their attributes and responsibilities, its time to know about interaction diagrams. These diagrams model a scenario and are of two types:&lt;br&gt;&lt;ul&gt;&lt;li&gt;Collaboration Diagrams&lt;/li&gt; &lt;li&gt;Sequence Diagrams&lt;/li&gt;&lt;/ul&gt;Both represent same information but in different ways. To know in detail, which to use when and guidelines about preparing such diagrams, just see this &lt;a href="http://www.scribd.com/doc/24183503/Guidelines-Use-Case-Analysis-Interaction-Diagrams"&gt;presentation&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/2000632512313948863-7864603563499975604?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/7864603563499975604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=7864603563499975604' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/7864603563499975604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/7864603563499975604'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2009/12/guidelines-use-case-analysis.html' title='Guidelines Use Case Analysis - Interaction Diagrams'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-7961756240471977195</id><published>2009-12-15T19:23:00.003+05:30</published><updated>2009-12-15T19:28:37.030+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Object Oriented Analysis and Design'/><category scheme='http://www.blogger.com/atom/ns#' term='Boundary'/><category scheme='http://www.blogger.com/atom/ns#' term='Entity'/><category scheme='http://www.blogger.com/atom/ns#' term='Use Case Analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='Classes'/><title type='text'>Guidelines Use Case Analysis (Analysis Classes)</title><content type='html'>In previous post, we dealt with what is use-case analysis in detail. We saw there are 3 types of analysis classes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Boundary Class&lt;/li&gt;&lt;li&gt;Control Class&lt;/li&gt;&lt;li&gt;Entity Class&lt;/li&gt;&lt;/ul&gt;Having seen the details about these classes in presentation linked through previous post, its now time to know how to identify these classes from use-case descriptions.&lt;br /&gt;These guidelines about analysis classes are given in this&lt;a href="http://www.scribd.com/doc/24124785/Guidelines-Use-Case-Analysis-Analysis-Classes"&gt; presentation&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-7961756240471977195?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/7961756240471977195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=7961756240471977195' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/7961756240471977195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/7961756240471977195'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2009/12/guidelines-use-case-analysis-analysis.html' title='Guidelines Use Case Analysis (Analysis Classes)'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-5262185106418600182</id><published>2009-12-10T19:29:00.005+05:30</published><updated>2009-12-15T19:22:41.425+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Association'/><category scheme='http://www.blogger.com/atom/ns#' term='Model'/><category scheme='http://www.blogger.com/atom/ns#' term='RUP'/><category scheme='http://www.blogger.com/atom/ns#' term='Attribute'/><category scheme='http://www.blogger.com/atom/ns#' term='Use Case Analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='Classes'/><title type='text'>Use Case Analysis</title><content type='html'>Use case analysis is performed in early stages of elaboration phase of Rational Unified Process (RUP). It acts as a foundation for the system to be built. Use case model is transformed into analysis model; so there is shift from requirements centric activities to analysis &amp;amp; design centric activities.&lt;br /&gt;&lt;br /&gt;Use case analysis involves supplementing use case description, finding analysis classes, distributing behavior, identifying attributes, establishing associations etc.&lt;br /&gt;&lt;br /&gt;To know in detail, what is the purpose of each step and how that is carried out, please see presentation available &lt;a href="http://www.scribd.com/doc/23927712/Use-Case-Analysis"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-5262185106418600182?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/5262185106418600182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=5262185106418600182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/5262185106418600182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/5262185106418600182'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2009/12/use-case-analysis-is-performed-in-early.html' title='Use Case Analysis'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-7630351430080922798</id><published>2009-11-04T21:45:00.001+05:30</published><updated>2009-11-04T21:45:54.862+05:30</updated><title type='text'>Links to Free University Lectures in Computer Science</title><content type='html'>&lt;a href="http://www.ebookslab.info/2007/06/13/148-free-university-lectures-in-computer-science.html"&gt;http://www.ebookslab.info/2007/06/13/148-free-university-lectures-in-computer-science.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/2000632512313948863-7630351430080922798?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/7630351430080922798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=7630351430080922798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/7630351430080922798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/7630351430080922798'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2009/11/links-to-free-university-lectures-in.html' title='Links to Free University Lectures in Computer Science'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-6442539749557104069</id><published>2009-10-19T22:20:00.002+05:30</published><updated>2009-10-19T22:28:21.061+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><title type='text'>Use Cases</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Table of Contents&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Introduction&lt;/li&gt;&lt;li&gt;Actors&lt;/li&gt;&lt;li&gt;Identifying Actors&lt;/li&gt;&lt;li&gt;Use-Cases&lt;/li&gt;&lt;li&gt;Identifying Use-Cases&lt;/li&gt;&lt;li&gt;Use-Case Diagrams&lt;/li&gt;&lt;li&gt;Use-Case Relationships-association, include, extend&lt;/li&gt;&lt;li&gt;Checking Use-Cases&lt;/li&gt;&lt;li&gt;Documenting Use-Cases-basic flow, alternate flow, pre-condition, post-condition&lt;/li&gt;&lt;li&gt;Use-Case Template&lt;/li&gt;&lt;li&gt;Use-Case Ranking&lt;/li&gt;&lt;li&gt;Identifying Requirement Packaging&lt;/li&gt;&lt;li&gt;Use-Case &amp;amp; Development Stages&lt;/li&gt;&lt;/ul&gt;Complete notes available &lt;a href="http://www.scribd.com/doc/21297570/Use-Cases"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-6442539749557104069?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/6442539749557104069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=6442539749557104069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/6442539749557104069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/6442539749557104069'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2009/10/use-cases.html' title='Use Cases'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-6609345992898707322</id><published>2009-07-22T21:54:00.002+05:30</published><updated>2009-07-22T22:03:10.107+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Databases'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><title type='text'>Qt and MySQL</title><content type='html'>Qt integrates well with different backend RDBMS and frontend Graphics APIs.&lt;br /&gt;However, using MySQL with Qt on Windows is a bit difficult to start with. You have to make mysql driver plugins. This is a bit confusing and material available on Internet generally does not help much. I tried N numbers of methods scattered here and there in forums and elsewhere.&lt;br /&gt;But nothing worked. The concept was simple. Install development environment for MySQL. Convert the installed libraries which are for MSVC compiler into those of mingw32. You have to download mingw utilities for these conversions. Then configure Qt for these plugins and make it.&lt;br /&gt;So, even if one step does not work then all efforts are gone. I wasted almost ten days until I found this compact but most useful tutorial for same. Here's the &lt;a href="http://wiki.qtcentre.org/index.php?title=Building_the_QMYSQL_plugin_on_Windows_using_mingw"&gt;link&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-6609345992898707322?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/6609345992898707322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=6609345992898707322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/6609345992898707322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/6609345992898707322'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2009/07/qt-and-mysql.html' title='Qt and MySQL'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-6481443285907302576</id><published>2009-07-21T22:33:00.002+05:30</published><updated>2009-07-21T22:41:00.794+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Platform independent'/><category scheme='http://www.blogger.com/atom/ns#' term='Nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='Trolltech'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><title type='text'>Why Qt?</title><content type='html'>Qt, originally from Trolltech, and now acquired by Nokia is a powerful library for GUI applications. It is a platform independent solution primarily used for developing frontends for C++ programs. However, recently, bindings for other programming languages are also made available. Integrated Development Environment (IDE) for Qt is called Qt Creater. GUIs can be developed as WYSIWYG based tool called Qt Designer. Bundled context-sensitive help and sample examples and demos on variety of applications make Qt an indispensable tool for software developers.&lt;br /&gt;&lt;br /&gt;Soon, I will start posting tutorial on Qt. So, keep visiting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-6481443285907302576?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/6481443285907302576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=6481443285907302576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/6481443285907302576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/6481443285907302576'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2009/07/why-qt.html' title='Why Qt?'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-67890436952479363</id><published>2009-05-06T22:59:00.001+05:30</published><updated>2009-05-06T22:59:32.349+05:30</updated><title type='text'>Shell Script for Turning Off Keyboard Echo</title><content type='html'>&lt;font&gt;&lt;font color="#000000"&gt;&lt;pre class="PROGRAMLISTING"&gt;Taken from &lt;a href="http://www.museum.state.il.us/ismdepts/library/linuxguides/abs-guide/system.html"&gt;here&lt;/a&gt;:&lt;br&gt;&lt;br&gt; #!/bin/bash&lt;br&gt;&lt;br&gt;echo&lt;br&gt;echo -n &amp;quot;Enter password &amp;quot;&lt;br&gt; read passwd&lt;br&gt;echo &amp;quot;password is $passwd&amp;quot;&lt;br&gt;echo -n &amp;quot;If someone had been looking over your shoulder, &amp;quot;&lt;br&gt;echo &amp;quot;your password would have been compromised.&amp;quot;&lt;br&gt;&lt;br&gt;echo &amp;amp;&amp;amp; echo  # Two line-feeds in an &amp;quot;and list&amp;quot;.&lt;br&gt; &lt;br&gt;stty -echo    # Turns off screen echo.&lt;br&gt;&lt;br&gt;echo -n &amp;quot;Enter password again &amp;quot;&lt;br&gt;read passwd&lt;br&gt;echo&lt;br&gt;echo &amp;quot;password is $passwd&amp;quot;&lt;br&gt;echo&lt;br&gt;&lt;br&gt;stty echo     # Restores screen echo.&lt;br&gt;&lt;br&gt;exit 0&lt;/pre&gt; &lt;/font&gt;&lt;/font&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-67890436952479363?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/67890436952479363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=67890436952479363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/67890436952479363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/67890436952479363'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2009/05/shell-script-for-turning-off-keyboard.html' title='Shell Script for Turning Off Keyboard Echo'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-8695114985321891025</id><published>2009-04-17T21:59:00.003+05:30</published><updated>2009-04-17T22:02:58.175+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><title type='text'>Seven Deadly Sins Of Software Project Management</title><content type='html'>Download special report&lt;br /&gt;"&lt;a href="http://csnotes.esmartguy.com/freepmreport.pdf"&gt;Seven Deadly Sins Of Software Project Management&lt;/a&gt;"&lt;br /&gt;By David Churchville, ExtremePlanner Software Inc.&lt;br /&gt;&lt;br /&gt;To download this report, right click above link and choose "Save Target As..."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-8695114985321891025?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/8695114985321891025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=8695114985321891025' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8695114985321891025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8695114985321891025'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2009/04/seven-deadly-sins-of-software-project.html' title='Seven Deadly Sins Of Software Project Management'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-1003297513407938486</id><published>2009-04-15T13:59:00.003+05:30</published><updated>2009-04-15T14:13:02.802+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Object Oriented Paradigm'/><title type='text'>Objects Vs Components</title><content type='html'>&lt;ul&gt;&lt;li&gt;An object is an real programmatic entity i.e. an instance of an class&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;However, a component can consist of more than one object. &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Component is a more abstract term. e.g.  webserver is a component of an enterprise architecture or button is a component.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Usually components encapsulate some reusable functionality, are autonomous but can be connected to other components. Objects can as well do this but &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Objects are, next to primitive types but components are usually bigger and have more common functions.&lt;/li&gt;&lt;/ul&gt;Quoting from &lt;a rel="nofollow" href="http://en.wikipedia.org/wiki/Software_componentry" target="_blank"&gt;wikipedia&lt;/a&gt;:&lt;div style="margin: 5px 20px 20px;"&gt;&lt;table style="width: 603px; height: 155px;" border="0" cellpadding="3" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;   &lt;td class="alt2" style="border: 1px inset ;"&gt;&lt;div style="text-align: justify;"&gt;  A software component is a system element offering a predefined service and able to communicate with other components. &lt;span style="font-style: italic;"&gt;Clemens Szyperski&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;David&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Messerschmitt&lt;/span&gt; give the following five criteria for what a software component shall be to fulfill the definition:&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Multiple-use&lt;/li&gt;&lt;li&gt;Non-context-specific&lt;/li&gt;&lt;li&gt;Composable with other components&lt;/li&gt;&lt;li&gt;Encapsulated i.e., non-investigable through its interfaces&lt;/li&gt;&lt;li&gt;A unit of independent deployment and versioning. &lt;/li&gt;&lt;/ol&gt;  &lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;Yet another definition is:&lt;br /&gt;&lt;div style="margin: 5px 20px 20px;"&gt;&lt;div style="text-align: justify;"&gt;    &lt;/div&gt;&lt;table border="0" cellpadding="3" cellspacing="0" width="100%"&gt;  &lt;tbody&gt;&lt;tr&gt;   &lt;td class="alt2" style="border: 1px inset ; text-align: justify;"&gt; A component is an object written to a specification. It does not matter what the specification is: COM, Java Beans, etc., as long as the object adheres to the specification. It is only by adhering to the specification that the object becomes a component and gains features like reusability and so forth. &lt;/td&gt;  &lt;/tr&gt;  &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;So, the difference between component &amp;amp; object is essentially a perspective difference.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;More importantly, components do not support inheritance whereas objects do.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;(Adapted from: &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;http://forums.devx.com/showthread.php?s=2aa11bf305df7a0bc38815911cfb259b&amp;amp;t=25304&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-1003297513407938486?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/1003297513407938486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=1003297513407938486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/1003297513407938486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/1003297513407938486'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2009/04/objects-vs-components.html' title='Objects Vs Components'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-454709679418514193</id><published>2009-04-11T10:37:00.002+05:30</published><updated>2009-04-11T10:53:09.234+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Future Technologies'/><title type='text'>Miniaturization Technology</title><content type='html'>&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt; &lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt;&lt;/span&gt;&lt;/span&gt;       &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt; &lt;img src="http://f954.mail.yahoo.com/ya/download?mid=1%5f734537%5f2%5f37661%5f0%5fAGrbK8oAAU6WRGXWjAxLrTk9km4&amp;amp;pid=9&amp;amp;fid=%2540S%2540Search&amp;amp;inline=1" width="348" border="0" height="511" /&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New  Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt; &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;   &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div&gt;&lt;span style="font-family:Comic Sans MS;font-size:180%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-size:18;" &gt;look closely n' guess what they cud be...&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt; &lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt; &lt;img src="http://f954.mail.yahoo.com/ya/download?mid=1%5f734537%5f2%5f37661%5f0%5fAGrbK8oAAU6WRGXWjAxLrTk9km4&amp;amp;pid=5&amp;amp;fid=%2540S%2540Search&amp;amp;inline=1" width="640" border="0" height="393" /&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div&gt;&lt;span style="font-family:Comic Sans MS;font-size:180%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-size:18;" &gt;PENS WITH HIDDEN CAM&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Comic Sans MS;font-size:180%;color:navy;"&gt; &lt;span style=";font-size:18;color:navy;"  &gt;ERA&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Comic Sans MS;font-size:180%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-size:18;" &gt;&lt;img src="http://f954.mail.yahoo.com/ya/download?mid=1%5f734537%5f2%5f37661%5f0%5fAGrbK8oAAU6WRGXWjAxLrTk9km4&amp;amp;pid=7&amp;amp;fid=%2540S%2540Search&amp;amp;inline=1" width="18" border="0" height="18" /&gt; ????? &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Comic Sans MS;font-size:180%;color:navy;"&gt;&lt;span style=";font-size:18;color:navy;"  &gt;NO&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Comic Sans MS;font-size:180%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-size:18;" &gt; !!! &lt;img src="http://f954.mail.yahoo.com/ya/download?mid=1%5f734537%5f2%5f37661%5f0%5fAGrbK8oAAU6WRGXWjAxLrTk9km4&amp;amp;pid=6&amp;amp;fid=%2540S%2540Search&amp;amp;inline=1" width="18" border="0" height="18" /&gt; NAH...rofl&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt; &lt;img src="http://f954.mail.yahoo.com/ya/download?mid=1%5f734537%5f2%5f37661%5f0%5fAGrbK8oAAU6WRGXWjAxLrTk9km4&amp;amp;pid=2&amp;amp;fid=%2540S%2540Search&amp;amp;inline=1" width="638" border="0" height="443" /&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div&gt;&lt;span style="font-family:Comic Sans MS;font-size:180%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-size:18;" &gt;any wild guesses now?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt; &lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times  New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div&gt;&lt;span style="font-family:Comic Sans MS;font-size:180%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-size:18;" &gt;no clue?...&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div&gt;&lt;span style="font-family:Comic Sans MS;font-size:180%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-size:18;" &gt;ladies and gentlemen... congratulations! you've just now looked into the future...&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt; &lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div&gt;&lt;span style="font-family:Comic Sans MS;font-size:180%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-size:18;" &gt;yep that's right! no booing now... &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;    &lt;div&gt;&lt;span style="font-family:Comic Sans MS;font-size:180%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-size:18;" &gt;you've seen something that would replace your PC in the near future.... &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div&gt;&lt;span style="font-family:Comic Sans MS;font-size:180%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-size:18;" &gt;NOW SEE THIS...&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt; &lt;img src="http://f954.mail.yahoo.com/ya/download?mid=1%5f734537%5f2%5f37661%5f0%5fAGrbK8oAAU6WRGXWjAxLrTk9km4&amp;amp;pid=3&amp;amp;fid=%2540S%2540Search&amp;amp;inline=1" width="640" border="0" height="491" /&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div&gt;&lt;span style="font-family:Comic Sans MS;font-size:180%;color:blue;"&gt;&lt;span style=";font-size:18;color:blue;"  &gt;In the revolution of miniature of computers, the scientists  are ahead with bluetooth technology... See the forthcoming computers within ur pockets ..  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt; &lt;img src="http://f954.mail.yahoo.com/ya/download?mid=1%5f734537%5f2%5f37661%5f0%5fAGrbK8oAAU6WRGXWjAxLrTk9km4&amp;amp;pid=8&amp;amp;fid=%2540S%2540Search&amp;amp;inline=1" width="640" border="0" height="547" /&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div&gt;&lt;span style="font-family:Comic Sans MS;font-size:180%;color:red;"&gt;&lt;span style=";font-size:18;color:red;"  &gt;This pen sort of instrument produces both the monitor as well as the keyboard on flat surfaces from where you can just carry out the normal operations you do on your desktop. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;    &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt; &lt;img src="http://f954.mail.yahoo.com/ya/download?mid=1%5f734537%5f2%5f37661%5f0%5fAGrbK8oAAU6WRGXWjAxLrTk9km4&amp;amp;pid=4&amp;amp;fid=%2540S%2540Search&amp;amp;inline=1" width="396" border="0" height="547" /&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;  &lt;div&gt;   &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;  &lt;div&gt;  &lt;div style="line-height: 14.4pt;"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#333333;"&gt;&lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:10;"  &gt; &lt;img src="http://f954.mail.yahoo.com/ya/download?mid=1%5f734537%5f2%5f37661%5f0%5fAGrbK8oAAU6WRGXWjAxLrTk9km4&amp;amp;pid=10&amp;amp;fid=%2540S%2540Search&amp;amp;inline=1" width="911" border="0" height="678" /&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;      &lt;span style="font-family:Times New Roman;font-size:100%;color:navy;"&gt;&lt;span style=";font-size:12;color:navy;"  &gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-454709679418514193?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/454709679418514193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=454709679418514193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/454709679418514193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/454709679418514193'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2009/04/miniaturization-technology.html' title='Miniaturization Technology'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-8583261685560438166</id><published>2009-04-05T21:01:00.002+05:30</published><updated>2009-04-05T21:08:43.420+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>In the World of Programming, C++ Still Rules</title><content type='html'>The reasons being:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Object-Oriented Support&lt;/li&gt;&lt;li&gt;Easy GUI development (MFC, Qt,...)&lt;/li&gt;&lt;li&gt;Easy interface with DBMS (Oracle, MySQL, MS Access,...)&lt;/li&gt;&lt;li&gt;Easy interface with Graphics (OpenGL, DirectX)&lt;/li&gt;&lt;li&gt;Easy interface with Simulation Packages&lt;/li&gt;&lt;li&gt;Easy interface for Internet Apps&lt;/li&gt;&lt;li&gt;Good interface with Presentation Tools&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/2000632512313948863-8583261685560438166?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/8583261685560438166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=8583261685560438166' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8583261685560438166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8583261685560438166'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2009/04/in-world-of-programming-c-still-rules.html' title='In the World of Programming, C++ Still Rules'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-6324082188263449164</id><published>2009-04-05T20:50:00.003+05:30</published><updated>2009-04-05T20:58:56.632+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Operating Systems'/><title type='text'>Why Linux Has Not Yet Phased Out Windows?</title><content type='html'>Simply because Windows have following positives:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Easy installation &amp;amp; upgrade&lt;/li&gt;&lt;li&gt;Easy configuration &amp;amp; administration&lt;/li&gt;&lt;li&gt;Low maintenance &amp;amp; support overheads&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;Multi-vendor/3rd party software availability&lt;/li&gt;&lt;li&gt;Availability of wide range of hardware drivers&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;Highly user-friendly&lt;/li&gt;&lt;li&gt;Acceptable performance &amp;amp; Reliability&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/2000632512313948863-6324082188263449164?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/6324082188263449164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=6324082188263449164' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/6324082188263449164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/6324082188263449164'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2009/04/why-linux-has-not-yet-phased-out.html' title='Why Linux Has Not Yet Phased Out Windows?'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-3507591133600843921</id><published>2008-10-16T09:46:00.002+05:30</published><updated>2008-10-16T09:49:43.108+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Graphics Engines'/><category scheme='http://www.blogger.com/atom/ns#' term='Rendering'/><category scheme='http://www.blogger.com/atom/ns#' term='Workstations'/><category scheme='http://www.blogger.com/atom/ns#' term='Game Engines'/><category scheme='http://www.blogger.com/atom/ns#' term='Visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='Graphics Card'/><category scheme='http://www.blogger.com/atom/ns#' term='DirectX'/><category scheme='http://www.blogger.com/atom/ns#' term='PAL'/><category scheme='http://www.blogger.com/atom/ns#' term='Ray Tracing'/><category scheme='http://www.blogger.com/atom/ns#' term='NTSC'/><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='Radiosity'/><category scheme='http://www.blogger.com/atom/ns#' term='Resolution'/><category scheme='http://www.blogger.com/atom/ns#' term='Gaming Consoles'/><title type='text'>Interesting Questions in Computer Graphics</title><content type='html'>&lt;ol&gt;&lt;li&gt;How a Graphics Engine is different from Game Engine?&lt;/li&gt;&lt;li&gt;Why graphics engines are preferred?&lt;/li&gt;&lt;li&gt;What are the components of a Game Engine?&lt;/li&gt;&lt;li&gt;Examples of Game and Graphics Engine?&lt;/li&gt;&lt;li&gt;Compare OpenGL with DirectX.&lt;/li&gt;&lt;li&gt;What is rendering?&lt;/li&gt;&lt;li&gt;What are the different techniques of light transport?&lt;/li&gt;&lt;li&gt;How ray-casting is different from ray-tracing?&lt;/li&gt;&lt;li&gt;Which effects are provided by radiosity&lt;/li&gt;&lt;li&gt;What is the difference between painter’s algorithm and z-buffer algorithm?&lt;/li&gt;&lt;li&gt;Compare vector and raster graphics.&lt;/li&gt;&lt;li&gt;How CRT, LCD, TFT, and Plasma differ?&lt;/li&gt;&lt;li&gt;Give latest specifications of a graphics card.&lt;/li&gt;&lt;li&gt;Difference between NTSC and PAL standard.&lt;/li&gt;&lt;li&gt;What is visualization and How it is different from graphics?&lt;/li&gt;&lt;li&gt;Different types of visualizations – data, information, knowledge.&lt;/li&gt;&lt;li&gt;How visualization is different from volume rendering?&lt;/li&gt;&lt;li&gt;What is photo-realistic and non-photorealistic rendering?&lt;/li&gt;&lt;li&gt;What is real time rendering?&lt;/li&gt;&lt;li&gt;How animated movies are created?&lt;/li&gt;&lt;li&gt;How animation is different from visualization?&lt;/li&gt;&lt;li&gt;How VR differs from AR and MR?&lt;/li&gt;&lt;li&gt;Concept of resolution and associated terms.&lt;/li&gt;&lt;li&gt;What are the different color models along with adv and disadvantages of each.&lt;/li&gt;&lt;li&gt;How graphics workstations are different from normal workstations.&lt;/li&gt;&lt;li&gt;What are gaming consoles; give examples?&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/2000632512313948863-3507591133600843921?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/3507591133600843921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=3507591133600843921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/3507591133600843921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/3507591133600843921'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/10/interesting-questions-in-computer.html' title='Interesting Questions in Computer Graphics'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-7013344403241606995</id><published>2008-10-14T22:43:00.000+05:30</published><updated>2008-10-14T22:45:27.671+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Application'/><category scheme='http://www.blogger.com/atom/ns#' term='RAD'/><category scheme='http://www.blogger.com/atom/ns#' term='HLA'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><category scheme='http://www.blogger.com/atom/ns#' term='Generators'/><title type='text'>Application Generators</title><content type='html'>Abstract&lt;br /&gt;Rapid Application Development (RAD) is the need today. Many automated tools are available for this&lt;br /&gt;purpose. Application Generator is one such tool. It reduces the application development time, besides&lt;br /&gt;other advantages. In this paper, design considerations of an application generator are discussed. In the&lt;br /&gt;end, case study of application generator for High Level Architecture (HLA) based simulations is presented.&lt;br /&gt;Keywords: HLA, RAD&lt;br /&gt;1 Introduction&lt;br /&gt;An application generator is a RAD tool. It not only generates source code but&lt;br /&gt;also provides facility to build (compile and link) and execute the generated&lt;br /&gt;application. An application generator may either be generic or may relate to&lt;br /&gt;particular domain. Most of the application generators fall into later category.&lt;br /&gt;The following sections bring out the need and advantages of an application&lt;br /&gt;generator. This is followed by design issued involved and implementation&lt;br /&gt;issues are highlighted using case study of an application generator.&lt;br /&gt;1.1 Need and Advantages of an Application Generator&lt;br /&gt;The application generators offer following advantages:-&lt;br /&gt;1. Being a RAD tool, the application development time is considerably&lt;br /&gt;reduced. This increases throughput and productivity.&lt;br /&gt;2. The generated code is less error-prone compared to manual writing of&lt;br /&gt;code.&lt;br /&gt;3. It saves the developer from tedious routine programming.&lt;br /&gt;4. In some cases, it saves the developer from having expertise in particular&lt;br /&gt;domain. For example, if application generator generates code&lt;br /&gt;corresponding to usage of particular Application Programming Interface&lt;br /&gt;(API), then developer may need not know the API in great depth.&lt;br /&gt;He can concentrate mainly on application logic.&lt;br /&gt;5. Developer need not know the intricacies of compilation and launching&lt;br /&gt;process.&lt;br /&gt;The need of an application generator can be judged from the above cited&lt;br /&gt;advantages.&lt;br /&gt;1&lt;br /&gt;2 Design of an Application Generator&lt;br /&gt;The main issues are the areas which needs application generators, customization&lt;br /&gt;parameters, templates design and application building. The subsequent&lt;br /&gt;paragraphs address these issues. a) Areas requiring Application Generators&lt;br /&gt;As obvious, the intended areas are those which have fixed and well-defined&lt;br /&gt;solution to a problem. So, the code can be automatically generated for these&lt;br /&gt;solution steps. b) Customization parameters Basically, these are the identified&lt;br /&gt;parameters to be taken as user inputs. Essentially, these inputs should&lt;br /&gt;satisfy following criteria: i) The number of user inputs should be as minimum&lt;br /&gt;as possible. ii) The inputs should be specific to task for which code generation&lt;br /&gt;is required. iii) The inputs should not be ridiculous. iv) It should have&lt;br /&gt;proper labeling, data-type and range. It may also have default values as well.&lt;br /&gt;v) They only serve the purpose of customization of underlying templates.&lt;br /&gt;c) Template Design This task involves identification of design-pattern of&lt;br /&gt;the application. Design-pattern means the steps required to solve a particular&lt;br /&gt;problem. The templates should have well-placed and well-marked containers&lt;br /&gt;for user input substitution i.e. the part of templates that will be replaced by&lt;br /&gt;user-inputs. d) Code Generation The inputs fed by user and the appropriate&lt;br /&gt;templates become the source for code generation. The task involves fitting&lt;br /&gt;the user-input into the template and generating the code in a programming&lt;br /&gt;language. The generated code should have meaningful comments which will&lt;br /&gt;help the application developer in later stages. e) Extending and Building the&lt;br /&gt;Generated Code The developer should be able to add application-specific&lt;br /&gt;code to the generated code. He should then convert this source code into&lt;br /&gt;executable one and launch the generated application from within the application&lt;br /&gt;generator itself.&lt;br /&gt;3 Implementation Issues&lt;br /&gt;While implementing the above design, following considerations must be taken&lt;br /&gt;into account:- a) Portability: If application generator is needed to be portable&lt;br /&gt;then Java is most preferred programming language. Java uses the concept&lt;br /&gt;of byte-codes and is an interpreted language. So, Java programs run both&lt;br /&gt;in Windows and Unix-Variant environments and on both RISC and CISC&lt;br /&gt;processor based systems. b) Targeted Language: This is the language in&lt;br /&gt;which source code is generated by application generator. The choice entirely&lt;br /&gt;2&lt;br /&gt;depends on the particular application. An application generator should generate&lt;br /&gt;code for more than one language. This requires templates to be provided&lt;br /&gt;for all supported languages. c) Code generation Strategies: Broadly&lt;br /&gt;speaking, all code generation strategies employ ”if-then-else and find-replace”&lt;br /&gt;paradigm. More specifically, these strategies are: i) Hard-coded approach:&lt;br /&gt;The code to be outputted is hard-coded into the source code of application&lt;br /&gt;generator itself. The approach is simple and straight-forward but has following&lt;br /&gt;disadvantages:- * Code maintenance is difficult * Usually, supports&lt;br /&gt;one target language only. ii) Template-based approach: The code to be outputted&lt;br /&gt;(called template) is separate from the code of application generator.&lt;br /&gt;The code is generated as a modification of template as per user input. It&lt;br /&gt;has following advantages: * Code maintenance is easy * Can easily support&lt;br /&gt;multiple target languages. And the disadvantage is: * Overhead of reading&lt;br /&gt;template files. But this is not a significant problem. iii) Visual application&lt;br /&gt;design: The customization parameters are in form of so called components&lt;br /&gt;or controls. The developer chooses the available controls, interconnect them,&lt;br /&gt;set their properties and attach callback functions. The code is then generated&lt;br /&gt;in accordance with the visual design. The main advantage is: * Appealing to&lt;br /&gt;model the application visually And disadvantage is: * May use proprietary&lt;br /&gt;software solutions like Java Beans and ActiveX technologies.&lt;br /&gt;d) Extending the generated code: The application generator must implement&lt;br /&gt;a minimal source code editor. It should have support of basic editing&lt;br /&gt;operations like copy, cut, paste etc.&lt;br /&gt;e) Building and Launching the Application: The implementation language’s&lt;br /&gt;feature of calling system commands should be efficiently exploited.&lt;br /&gt;To build an application, invocation of appropriate compiler is required. Any&lt;br /&gt;error in build process must be provided to the developer in meaningful manner&lt;br /&gt;and should indicate possible cause and solution of the occurred error.&lt;br /&gt;f) Configurability: The implementation of an application generator must&lt;br /&gt;have configurable feature. Some of the configurable parameters are: i) Choosing&lt;br /&gt;directories like where to place the generated code. ii) Target language in&lt;br /&gt;which output source code is required iii) Path and name of compiler to be&lt;br /&gt;used g) Installation: Ideally, should self-extracting installation executable.&lt;br /&gt;The installation process should create different directories to put the code&lt;br /&gt;into. Facility may be there to add it to Start Menu, Desktop and Quick&lt;br /&gt;Launch Bar. Third-party freely available software can be used for this purpose.&lt;br /&gt;The application generator may provide the facility to wrap the generated&lt;br /&gt;application into an installation executable.&lt;br /&gt;3&lt;br /&gt;CASE STUDY: HLAAppGen - Application Generator for HLA based&lt;br /&gt;simulations&lt;br /&gt;First a brief introduction to HLA is given. This is followed by the design&lt;br /&gt;and implementation of the application generator. Main issues discussed are&lt;br /&gt;the implementation of design considerations described in preceding sections.&lt;br /&gt;Overview of High Level Architecture (HLA) HLA is a framework for integrating&lt;br /&gt;distributed simulations. The standard was initially proposed by US&lt;br /&gt;Department of Defense and later standardized by IEEE as standard 1516.&lt;br /&gt;The main aim of HLA is reusability and inter-operability of simulations irrespective&lt;br /&gt;of their development and execution environments. The HLA terms&lt;br /&gt;used in this paper are defined below: Federate: Any HLA-complaint simulation&lt;br /&gt;Federation Object Model (FOM): This is description of all the data&lt;br /&gt;exchanges that are going to take place among different federates Run-Time&lt;br /&gt;Infrastructure (RTI): Support software that provides communication between&lt;br /&gt;federates Federation: Federates, FOM and RTI constitutes a federation To&lt;br /&gt;achieve the aim, HLA specifies following six groups of services:&lt;br /&gt;Service Functionality Federation Management * Creation &amp;amp; Destruction&lt;br /&gt;of federation * Join and Resign of federate * Save and Restore synchronization&lt;br /&gt;points Declaration Management * Publish data for other federates *&lt;br /&gt;Subscribe to required data Object Management * Creation and Destruction&lt;br /&gt;of objects * Attribute Update and Reflect Ownership Management * Allows&lt;br /&gt;sharing of an attribute among federates * Follows principle of mutual exclusion&lt;br /&gt;* PUSH or PULL ownership technique is used Data Distribution Management&lt;br /&gt;* Refinement of Declaration Management Service * Receiver federates&lt;br /&gt;receive only particular instances of interactions (transient messages) or&lt;br /&gt;attribute updates * Thus provide reduces unnecessary network traffic Time&lt;br /&gt;Management * Time co-ordination among participating simulations&lt;br /&gt;Need of Application Generator for HLA based simulations HLA is new&lt;br /&gt;technology and hence like other fields requires automated tools. Application&lt;br /&gt;generator is one of the obvious choice. Moreover, the RTI software provides&lt;br /&gt;an API of functions implementing HLA services. Also, there is a well-defined&lt;br /&gt;fixed procedure of HLA-complaint simulations. So, code for this can be&lt;br /&gt;automatically generated. Finally, we get all advantages mentioned in earlier&lt;br /&gt;sections. Although the application generator developed by me supports all&lt;br /&gt;six group of services but here only the essential Federation Management and&lt;br /&gt;Declaration Management code generation is illustrated.&lt;br /&gt;Customization Parameters For Federation Management, the identified&lt;br /&gt;user inputs are:- a) RTI Host - Hostname where central component of RTI is&lt;br /&gt;4&lt;br /&gt;running b) RTI Port - Port to which central component of RTI is bind c) RTI&lt;br /&gt;Type - To support multiple RTI (US DoD and IEEE standards) d) FOM File&lt;br /&gt;- Name of the FOM file used e) Federation Name f) Federate Name These&lt;br /&gt;inputs are fed through Graphical User Interface (GUI)&lt;br /&gt;Template Design The main steps in HLA-complaint simulation are: *&lt;br /&gt;Create federation * Join federation * Publish data * Subscribe data * Process&lt;br /&gt;and send published data * Receive and process subscribed data&lt;br /&gt;The template is basically source code for above steps in target language.&lt;br /&gt;There are templates for both HLA 1.3 and HLA 1516. The target language&lt;br /&gt;is Java.&lt;br /&gt;Code Generation Earlier mentioned ”if-then-else and Find-Replace” paradigm&lt;br /&gt;is adaopted. The template code is modified as per user input. Suitable comments&lt;br /&gt;for developer are inserted and the final code is written into a file with&lt;br /&gt;its name corresponding to federate name.&lt;br /&gt;Extending the generated code The generated code is written into a file&lt;br /&gt;and same is shown in source code editing area of the application generator’s&lt;br /&gt;main GUI. Basic editing operations like cut, copy and paste are implemented.&lt;br /&gt;For this Java Swing and Abstract Window Toolkit (AWT) are used.&lt;br /&gt;Building and Launching the Generated Application The source code can&lt;br /&gt;be compiled and application can be launched through menu items of main&lt;br /&gt;GUI and also through shortcut buttons. javac ¡filename.java¿ and java ¡filename&lt;br /&gt;¿ commands are executed internally. The application generator captures&lt;br /&gt;and shows the messages related to Build process to aid the developer&lt;br /&gt;to check and correct if any bug is present.&lt;br /&gt;Other Features Time-stamping: The generated code contains time-stamp&lt;br /&gt;by putting the system time at the time of code generation at the beginning of&lt;br /&gt;the generated code. Version Control: For managing different versions of same&lt;br /&gt;application. Successive numbers are appended to filename to keep different&lt;br /&gt;versions. Launching RTI: Federation execution needs RTI software to run at&lt;br /&gt;first. This can be launched from within the application generator, thereby,&lt;br /&gt;saving the user from knowing how to start RTI.&lt;br /&gt;5&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-7013344403241606995?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/7013344403241606995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=7013344403241606995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/7013344403241606995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/7013344403241606995'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/10/application-generators.html' title='Application Generators'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-2160151411901125065</id><published>2008-10-12T23:12:00.003+05:30</published><updated>2008-10-24T09:24:08.707+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='UDDI'/><category scheme='http://www.blogger.com/atom/ns#' term='Services'/><title type='text'>Service Oriented Architecture</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  Service Oriented Architectures (SOA) has become a buzzword these ways. Generally, it is confused with Web Services. But SOA is an architectural concept and web services are one way of implementing them.&lt;br /&gt;&lt;br /&gt;The software is growing complex everyday. Modular designs, object-oriented approaches, and component based software were proposed by researchers to address complexity and promote re-use. However, issues of maintenance, deployment, and integration of large-scale software remained problem until the advent of SOA. By adopting a SOA, you eliminate the headaches of protocol and platforms and your applications integrate seamlessly.&lt;br /&gt;&lt;br /&gt;This article discusses the SOA in general, covering the key points, requirements and issues involved in service-oriented computing. We will dive deeper into SOA how this architecture allows faster integration and execution play.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SOA Analogies&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The principles of SOA can be found in numerous places. That is to say, there are examples that abound that are analogous to the SOA ideal. Consider how different items . potentially manufactured by different vendors -- integrate together to provide some repeatable service.&lt;br /&gt;For instance, a DVD player, which can connect to virtually any TV, can also play just about any DVD movie. Those same DVDs can be played on another device, such as a laptop, or automobile entertainment system. All of these devices integrated with the DVD provide common operational service, although the quality of the service may be different.&lt;br /&gt;&lt;br /&gt;As another example, consider batteries which are used for numerous consumer electronic devices. The common service provided is loosely coupled power. It is possible to take the same AA batteries out of a MP3 player, and plug them into a small flashlight, or wireless mouse to receive for power needs.&lt;br /&gt;&lt;br /&gt;Similarly, the objective of SOA is to minimize unnecessary dependencies among systems and software elements. This in effect, is what loose coupling is all about.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Key Components of SOA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first step in learning something new is to understand its vocabulary. In the context of SOA, we have the terms service, message, and dynamic discovery. Each of these plays an essential role in SOA [1].&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Services&lt;/span&gt;&lt;br /&gt;A service in SOA is an exposed piece of functionality with three properties:&lt;br /&gt;1.    The interface contract to the service is platform-independent.&lt;br /&gt;2.    The service can be dynamically located and invoked.&lt;br /&gt;3.    The service is self-contained. That is, the service maintains its own state.&lt;br /&gt;&lt;br /&gt;A platform-independent interface contract implies that a client from anywhere, on any OS, and in any language, can consume the service. Dynamic discovery hints that a discovery service (e.g., a directory service) is available. The directory service enables a look-up mechanism where consumers can go to find a service based on some criteria. For example, if I was looking for a credit-card authorization service, I might query the directory service to find a list of service providers that could authorize a credit card for a fee. Based on the fee, I would select a service (see Figure 1). The last property of a service is that the service be self-contained.&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;Figure 1: Directory service  &lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Message&lt;/span&gt;&lt;br /&gt;Service providers and consumers communicate via messages. Services expose an interface contract. This contract defines the behavior of the service and the messages they accept and return. Because the interface contract is platform- and language-independent, the technology used to define messages must also be agnostic to any specific platform/language. Therefore, messages are typically constructed using XML documents that conform to XML schema. XML provides all of the functionality, granularity, and scalability required by messages. That is, for consumers and providers to effectively communicate, they need a non-restrictive type of system to clearly define messages; XML provides this. Because consumers and providers communicate via messages, the structure and design of messages should not be taken lightly. Messages need to be implemented using a technology that supports the scalability requirements of services. Having to redesign messages will break the interface to providers, which can prove to be costly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Dynamic Discovery&lt;/span&gt;&lt;br /&gt;Dynamic discovery is an important piece of SOA. At a high level, SOA is composed of three core pieces: service providers, service consumers, and the directory service. The role of providers and consumers are apparent, but the role of the directory service needs some explanation. The directory service is an intermediary between providers and consumers. Providers register with the directory service and consumers query the directory service to find service providers. Most directory services typically organize services based on criteria and categorize them. Consumers can then use the directory services' search capabilities to find providers. Embedding a directory service within SOA accomplishes the following:&lt;br /&gt;1.    Scalability of services; you can add services incrementally.&lt;br /&gt;2.    Decouples consumers from providers.&lt;br /&gt;3.    Allows for hot updates of services.&lt;br /&gt;4.    Provides a look-up service for consumers.&lt;br /&gt;5.    Allows consumers to choose between providers at runtime rather than hard-coding a single provider.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Elements of Service-Oriented Architectures&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SOA gives several advantages. It allows seamless integration between different applications and platforms. Another advantage is that SOA allows extending the capabilities of already existing applications without disturbing them much. To realize the above advantages, SOAs impose the following requirements:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Loose coupling. &lt;/span&gt;No tight transactional properties would generally apply among the components. In general, it would not be appropriate to specify the consistency of data across the information resources that are parts of the various components. However, it would be reasonable to think of the high-level contractual relationships through which the interactions among the components are specified.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Implementation neutrality&lt;/span&gt;. The interface is what matters. We cannot depend on the details of the implementations of the interacting components. In particular, the approach&lt;br /&gt;cannot be specific to a set of programming languages.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Flexible configurability. &lt;/span&gt;The system is configured late and flexibly. In other words, the&lt;br /&gt;different components are bound to each other late in the process. The configuration&lt;br /&gt;can change dynamically.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Long lifetime.&lt;/span&gt; We do not necessarily advocate a long lifetime for our components. However, since we are dealing with computations among autonomous heterogeneous parties in dynamic environments, we must always be able to handle exceptions. This means that the components must exist long enough to be able to detect any relevant exceptions, to take corrective action, and to respond to the corrective actions taken by others. Components must exist long enough to be discovered, to be relied upon, and to engender trust in their behavior.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Granularity. &lt;/span&gt;The participants in an SOA should be understood at a coarse granularity. That is, instead of modeling actions and interactions at a detailed level, it would be better to capture the essential high-level qualities that are (or should be) visible for the purposes of business contracts among the participants. Coarse granularity reduces dependencies among the participants and reduces communications to a few messages of greater significance.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Teams. &lt;/span&gt;Instead of framing computations centrally, it would be better to think in terms of how computations are realized by autonomous parties. In other words, instead of a participant commanding its partners, computation in open systems is more a matter of business partners working as a team. That is, instead of an individual, a team of cooperating participants is a better modeling unit. A team-oriented view is a consequence of taking a peer-to-peer architecture seriously.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SOA is the latest buzzword these days. This article clearly brings out two important conclusions. Firstly, SOA is general purpose architecture; although, it is talked about in business applications but it finds equal importance in military simulation domains as well. Secondly, SOA should not be confused with Web Services. Web Services are just one way of implementing SOA.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Principles of Service Oriented Computing available through http://www.soa.org&lt;br /&gt;&lt;br /&gt;2. Paul, Tram Chase, Larry Root, Karl Crosson, Moving Towards a Service Oriented Architecture (SOA) for Distributed Simulation Component Environments, SimVentions Inc.&lt;br /&gt;&lt;br /&gt;3. Per M Gustavvson, Service Oriented Simulations Concept, SimTect, Sydney, Australia, May 2005.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-2160151411901125065?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/2160151411901125065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=2160151411901125065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2160151411901125065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2160151411901125065'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/10/service-oriented-architecture.html' title='Service Oriented Architecture'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-4231419160557718787</id><published>2008-10-12T23:12:00.001+05:30</published><updated>2008-10-12T23:16:38.329+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='UDDI'/><category scheme='http://www.blogger.com/atom/ns#' term='Services'/><title type='text'></title><content type='html'>1. Introduction&lt;br /&gt;&lt;br /&gt;   Service Oriented Architectures (SOA) has become a buzzword these ways. Generally, it is confused with Web Services. But SOA is an architectural concept and web services are one way of implementing them.&lt;br /&gt;The software is growing complex everyday. Modular designs, object-oriented approaches, and component based software were proposed by researchers to address complexity and promote re-use. However, issues of maintenance, deployment, and integration of large-scale software remained problem until the advent of SOA. By adopting a SOA, you eliminate the headaches of protocol and platforms and your applications integrate seamlessly.&lt;br /&gt;This paper discusses the SOA in general, covering the key points, requirements and issues involved in service-oriented computing. We will dive deeper into SOA and later explore how we can take SOA techniques and related technologies and evolve HLA to support a loosely coupled architecture allowing faster integration and execution play.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. SOA Analogies&lt;br /&gt;&lt;br /&gt;The principles of SOA can be found in numerous places. That is to say, there are examples that abound that are analogous to the SOA ideal. Consider how different items . potentially manufactured by different vendors -- integrate together to provide some repeatable service.&lt;br /&gt;For instance, a DVD player, which can connect to virtually any TV, can also play just about any DVD movie. Those same DVDs can be played on another device, such as a laptop, or automobile entertainment system. All of these devices integrated with the DVD provide common operational service, although the quality of the service may be different.&lt;br /&gt;As another example, consider batteries which are used for numerous consumer electronic devices. The common service provided is loosely coupled power. It is possible to take the same AA batteries out of a MP3 player, and plug them into a small flashlight, or wireless mouse to receive for power needs.&lt;br /&gt;Similarly, the objective of SOA is to minimize unnecessary dependencies among systems and software elements. This in effect, is what loose coupling is all about.&lt;br /&gt;&lt;br /&gt;3. Key Components of SOA&lt;br /&gt;The first step in learning something new is to understand its vocabulary. In the context of SOA, we have the terms service, message, and dynamic discovery. Each of these plays an essential role in SOA [1].&lt;br /&gt;3.1 Service&lt;br /&gt;A service in SOA is an exposed piece of functionality with three properties:&lt;br /&gt;1.    The interface contract to the service is platform-independent.&lt;br /&gt;2.    The service can be dynamically located and invoked.&lt;br /&gt;3.    The service is self-contained. That is, the service maintains its own state.&lt;br /&gt;A platform-independent interface contract implies that a client from anywhere, on any OS, and in any language, can consume the service. Dynamic discovery hints that a discovery service (e.g., a directory service) is available. The directory service enables a look-up mechanism where consumers can go to find a service based on some criteria. For example, if I was looking for a credit-card authorization service, I might query the directory service to find a list of service providers that could authorize a credit card for a fee. Based on the fee, I would select a service (see Figure 1). The last property of a service is that the service be self-contained.&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;Figure 1: Directory service   &lt;br /&gt;3.2 Message&lt;br /&gt;Service providers and consumers communicate via messages. Services expose an interface contract. This contract defines the behavior of the service and the messages they accept and return. Because the interface contract is platform- and language-independent, the technology used to define messages must also be agnostic to any specific platform/language. Therefore, messages are typically constructed using XML documents that conform to XML schema. XML provides all of the functionality, granularity, and scalability required by messages. That is, for consumers and providers to effectively communicate, they need a non-restrictive type of system to clearly define messages; XML provides this. Because consumers and providers communicate via messages, the structure and design of messages should not be taken lightly. Messages need to be implemented using a technology that supports the scalability requirements of services. Having to redesign messages will break the interface to providers, which can prove to be costly.&lt;br /&gt;3.3 Dynamic Discovery&lt;br /&gt;Dynamic discovery is an important piece of SOA. At a high level, SOA is composed of three core pieces: service providers, service consumers, and the directory service. The role of providers and consumers are apparent, but the role of the directory service needs some explanation. The directory service is an intermediary between providers and consumers. Providers register with the directory service and consumers query the directory service to find service providers. Most directory services typically organize services based on criteria and categorize them. Consumers can then use the directory services' search capabilities to find providers. Embedding a directory service within SOA accomplishes the following:&lt;br /&gt;1.    Scalability of services; you can add services incrementally.&lt;br /&gt;2.    Decouples consumers from providers.&lt;br /&gt;3.    Allows for hot updates of services.&lt;br /&gt;4.    Provides a look-up service for consumers.&lt;br /&gt;5.    Allows consumers to choose between providers at runtime rather than hard-coding a single provider.&lt;br /&gt;4. Need for the Loose Coupling of M&amp;amp;S&lt;br /&gt;&lt;br /&gt;SOA is intended to provide and support the integration and interoperability of loosely coupled subsystems and software elements. This differs from most object based architectures, which bind data and processing tightly together. In these instances, integrated elements can not be decoupled, at least not easily.&lt;br /&gt;For example, this tight coupling is a problem that affects many within the M&amp;amp;S community. There has been a long standing issue with how HLA is applied for enabling distributed simulation environments. For instance, a FOM typically does not provide loose coupling of federates. Or perhaps it should be said that the federate can not typically be loosely coupled with a FOM. Consider that each federate must be tooled to operate to the agreements of a FOM, and that these agreements may vary from FOM to FOM. The irony is that the coupling of federates is absolutely necessary to formulate a federation. It,s just that it can,t be considered a loose coupling because federates have to be made to play to a new sheet of music known as FOM. Thus, exchanging one federate for another, while possible, is not always easy.&lt;br /&gt;The desire would be for the FOM to behave like a DVD, and the federate to function like a DVD player capable of loosely coupling with any FOM . and thus interoperating with other federates within a federation. In other words, in a SOA compliant HLA, a federate should be able to digest and adapt to a FOM and be able to perform accordingly. We must realize the quality of service may vary among any one of these federates, but the operational aspect (i.e., interoperability) should always be the same.&lt;br /&gt;Specifically, the federate is capable of playing, whether efficiently or poorly, to the common model information identified in the FOM.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5 Elements of Service-Oriented Architectures&lt;br /&gt;&lt;br /&gt;SOA gives several advantages. It allows seamless integration between different applications and platforms. Another advantage is that SOA allows extending the capabilities of already existing applications without disturbing them much. To realize the above advantages, SOAs impose the following requirements:&lt;br /&gt;&lt;br /&gt;Loose coupling. No tight transactional properties would generally apply among the components. In general, it would not be appropriate to specify the consistency of data across the information resources that are parts of the various components. However, it would be reasonable to think of the high-level contractual relationships through which the interactions among the components are specified.&lt;br /&gt;&lt;br /&gt;Implementation neutrality. The interface is what matters. We cannot depend on the details of the implementations of the interacting components. In particular, the approach&lt;br /&gt;cannot be specific to a set of programming languages.&lt;br /&gt;&lt;br /&gt;Flexible configurability. The system is configured late and flexibly. In other words, the&lt;br /&gt;different components are bound to each other late in the process. The configuration&lt;br /&gt;can change dynamically.&lt;br /&gt;&lt;br /&gt;Long lifetime. We do not necessarily advocate a long lifetime for our components. However, since we are dealing with computations among autonomous heterogeneous parties in dynamic environments, we must always be able to handle exceptions. This means that the components must exist long enough to be able to detect any relevant exceptions, to take corrective action, and to respond to the corrective actions taken by others. Components must exist long enough to be discovered, to be relied upon, and to engender trust in their behavior.&lt;br /&gt;&lt;br /&gt;Granularity. The participants in an SOA should be understood at a coarse granularity. That is, instead of modeling actions and interactions at a detailed level, it would be better to capture the essential high-level qualities that are (or should be) visible for the purposes of business contracts among the participants. Coarse granularity reduces dependencies among the participants and reduces communications to a few messages of greater significance.&lt;br /&gt;&lt;br /&gt;Teams. Instead of framing computations centrally, it would be better to think in terms of how computations are realized by autonomous parties. In other words, instead of a participant commanding its partners, computation in open systems is more a matter of business partners working as a team. That is, instead of an individual, a team of cooperating participants is a better modeling unit. A team-oriented view is a consequence of taking a peer-to-peer architecture seriously.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. Beyond HLA Evovled&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Figure 2: Beyond HLA&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   There are different view points whether HLA is a SOA or not. Consider a case of an HLA federation. Suppose an HLA federate ‘A’ publishes and produces some data. Now if another federate ‘B’ can also publish and produce same data then it can easily replace federate ‘A’. So, in this case HLA acts an SOA. Figure 2 shows capabilities can be added to already existing federates and made available as service.&lt;br /&gt;   However, if the new federate that replaces some other federate but does not publish same data as specified in Federation Object Model (FOM) for the federate to be replaced then inter-operability is not possible in true sense. This means in HLA, a federate is tightly bound to FOM and this may require some effort to make it suitable for another federation. On this view, some authors claim that HLA is not a SOA.&lt;br /&gt;&lt;br /&gt;   6.1 Opportunity for Applying SOA Principles&lt;br /&gt;&lt;br /&gt;It can be argued that the great thing about DIS was that it fit closer to an SOA approach. Consider one could take any 2.03 DIS simulation and make it work within any other 2.03 DIS simulation environment. It was a simple mechanism allowing a simulation to be decoupled and reattached to other environments. It could be argued that a RPR-FOM Federate could also work within any RPR-FOM Federation, but consider the difficulty to take a federate and make it easily work for different FOMs and, just as importantly, different RTI implementations [3] .&lt;br /&gt;The truth however is that HLA provides a much more extendible approach for interoperability than DIS  provides. There.s no limitation to a specific set of Protocol Data Units (PDUs) as DIS requires. The FOM is intended to be an extension enabler allowing&lt;br /&gt;federates to be better represented and reflected in a distributed environment. Furthermore the mechanisms of exchange are architected in a manner that is much more optimal in comparison to the performance of DIS, which required updates of complete entities whether information changed or not. Essentially HLA allows only the data that needs to be exchanged to be ultimately reflected, and therefore can be much more efficient. The key is to advance HLA in a manner that it adheres to SOA principles.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6.2 Federates as Software Agents&lt;br /&gt; &lt;br /&gt;The mechanics of SOA are commonly attributed to the application of software agents, where self-autonomous software agents interact among one another; acting as providers and consumers in a very loosely coupled environment. A provider can be a web service providing functional remote procedures and data access, whereas a consumer can be a client application that might request a provider for computational analysis or access of specific data and/or the autonomously receipt of subscribed information when it becomes available It is quite possible that in HLA, a federate could be considered a software agent as well. The key requirement for this capability to take hold is through the application of common interfaces&lt;br /&gt;&lt;br /&gt;6.3 The Application of a Common Interface&lt;br /&gt;&lt;br /&gt;The interoperability and loose coupling of integrated elements, which SOA achievescan be attributed to the following two constraints:&lt;br /&gt;&lt;br /&gt;1. A small set of simple and ubiquitous interfaces to all participating software agents. Only generic semantics are encoded at the interfaces. The interfaces should be universally available for all providers and consumers.&lt;br /&gt;&lt;br /&gt;2. Descriptive messages constrained by an extensible schema delivered through the interfaces. No, or only minimal, system behavior is prescribed by messages. A schema limits the vocabulary and structure of messages. An extensible schema allows new versions of services to be introduced without breaking existing services.&lt;br /&gt;&lt;br /&gt;According to these constraints the key for SOA interoperability is the application of common interface. Specifically we can identify from analysis the following requirements for supporting the loose coupling of an interoperable environment:&lt;br /&gt;&lt;br /&gt;The common interface must be leveraged by all participating software agents (i.e. federates)&lt;br /&gt;That the interfaces must be accessible and understood by all providers and consumers&lt;br /&gt;·    Interfaces serve as the framework for the messages that are to be exchanged&lt;br /&gt;·    Minimal system behavior is provided by these interfaces (or messages)&lt;br /&gt;·    An XML schema should be applied to define the vocabulary and structure&lt;br /&gt;·    Additional services should be able to be added without impairing the common interface.&lt;br /&gt;·    A principle need within the M&amp;amp;S community is to determine how common interfaces can be established, shared and integrated within a distributed component simulation environment that is supported by HLA federates and other resources.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6.4 Making HLA a true Service Oriented Architecture&lt;br /&gt;&lt;br /&gt;Tight binding of a federate with FOM sometimes deviate HLA from being a true SOA. What is required is another mechanism to define the interface; a more modular approach that can be utilized in different ways.&lt;br /&gt;This is where the concept of Base Object Models (BOMs) makes sense. A BOM is a standards-based approach for describing a reusable component or piece part of a simulation or system. BOMs are unique in that they are able to represent or support discrete patterns of interplay within or among simulations.&lt;br /&gt;A BOM distinguishes between a component’s or piece part’s interface and its implementation. Specifically, a BOM reflects a language neutral interface that identifies the essential elements provided by a component or piece part. The implementation (or&lt;br /&gt;functionality) for that component or piece part can be captured independently through source code, a binary object such as a Windows DLL, a Unix Object, or in other ways such as the Simulation Reference Markup Language (SRML).&lt;br /&gt;This separation of interface from implementation allows BOMs to serve as building blocks for supporting the composability of loosely coupled systems&lt;br /&gt;Using BOMs, concept of adaptability and aggregation is met along with loose&lt;br /&gt;coupling requirement of SOA. Using BOMs, HLA federates can be made loosely coupled in web services framework as shown in Figure 3.&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Figure 3: SOA Service and Connections with HLA and BOMs&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Conclusion&lt;br /&gt;&lt;br /&gt;SOA is the latest buzzword these days. This paper clearly brings out two important conclusions. Firstly, SOA is general purpose architecture; although, it is talked about in business applications but it finds equal importance in military simulation domains as well. Secondly, SOA should not be confused with Web Services. Web Services are just one way of implementing SOA.&lt;br /&gt;In later part of the paper, it is shown that HLA may not be considered a true SOA on the grounds that a federate is tightly bound to FOM and does not satisfy the criteria of loosely coupled of SOA. However, separating simulation’s interface from its implementation using BOM based Application Frameworks (BAF), HLA can be converted into a true SOA.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;br /&gt;1. Principles of Service Oriented Computing available through http://www.soa.org&lt;br /&gt;&lt;br /&gt;2. Paul, Tram Chase, Larry Root, Karl Crosson, Moving Towards a Service Oriented Architecture (SOA) for Distributed Simulation Component Environments, SimVentions Inc.&lt;br /&gt;&lt;br /&gt;3. Per M Gustavvson, Service Oriented Simulations Concept, SimTect, Sydney, Australia, May 2005.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-4231419160557718787?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/4231419160557718787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=4231419160557718787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/4231419160557718787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/4231419160557718787'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/10/1.html' title=''/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-4157656969496307826</id><published>2008-10-10T16:17:00.003+05:30</published><updated>2008-10-10T16:35:47.398+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='SaaS'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='UDDI'/><category scheme='http://www.blogger.com/atom/ns#' term='Middleware'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Services'/><title type='text'>Web Services Basics</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Many definitions of web services&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Application that communicate with SOAP (SOAP is an XML based messaging protocol) &lt;/li&gt;   &lt;li&gt;Has SOAP interface&lt;/li&gt;   &lt;li&gt;Some oppose constraining web services to SOAP&lt;/li&gt;   &lt;li&gt;Applications that communicate over Internet&lt;/li&gt;   &lt;li&gt;Anything accessible over Internet&lt;/li&gt;   &lt;li&gt;Web services are Software As A Service (SaaS)&lt;/li&gt; &lt;/ul&gt; &lt;span style="font-weight: bold;"&gt;Author’s definition of web service&lt;br /&gt;&lt;/span&gt; &lt;ul&gt;   &lt;li&gt;An application that provides Web API (API that lets applications communicate with other applications using XML and Web)&lt;/li&gt;   &lt;li&gt;Web services use web to perform application to application integration&lt;/li&gt;   &lt;li&gt;Services that uses web may become reality sometime&lt;br /&gt;  &lt;/li&gt; &lt;/ul&gt; &lt;span style="font-weight: bold;"&gt;Some hypes that web services&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Dynamic assembly of web-based software services&lt;/li&gt;   &lt;li&gt;Is SaaS business model&lt;/li&gt;   &lt;li&gt;Spontaneous discovery of business models&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Why web services?&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Helps integrate applications that significantly lower price point than any other integration technology&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How web services work?&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Web services represent new form of middleware technology based on XML &amp;amp; web to solve challenges associated with application-to-application integration.&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Traditional middleware (RPC, CORBA, RMI, DCOM) blues&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Heterogeneity is not supported&lt;/li&gt;   &lt;li&gt;Does not work across Internet&lt;/li&gt;   &lt;li&gt;Is not pervasive&lt;/li&gt;   &lt;li&gt;Hard to use &amp;amp; re-use&lt;/li&gt;   &lt;li&gt;Expensive&lt;/li&gt;   &lt;li&gt;Maintenance costs are outrageous&lt;/li&gt;   &lt;li&gt;Tightly coupled =&gt; Fragile&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Web services positives&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Platform independent (development to distributed computing)&lt;/li&gt;   &lt;li&gt;Language independent (development, deployment, access independence)&lt;/li&gt;   &lt;li&gt;Based on XML &amp;amp; Web &lt;/li&gt;   &lt;li&gt;Pervasive &lt;/li&gt;   &lt;li&gt;Work across Internet&lt;/li&gt;   &lt;li&gt;Heterogeneity Interoperability&lt;/li&gt;   &lt;li&gt;Makes application talk to each other&lt;/li&gt;   &lt;li&gt;Lower development cost &lt;/li&gt;   &lt;li&gt;Faster time to market&lt;/li&gt;   &lt;li&gt;Easier Maintenance&lt;/li&gt;   &lt;li&gt;Reduced Total Cost of Ownership&lt;/li&gt;   &lt;li&gt;Loosely coupled &lt;/li&gt;   &lt;li&gt;Minimizes impact of changes to your applications &lt;/li&gt;   &lt;li&gt;Reduces maintenance cost&lt;/li&gt;   &lt;li&gt;Web services interface provides a layer of abstraction&lt;/li&gt;   &lt;li&gt;Abstraction increases reusability&lt;/li&gt; &lt;/ul&gt; &lt;span style="font-weight: bold;"&gt;Defining Web &amp;amp; Service:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Web&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Immensely scalable information space filled with interconnected (via Internet) resources&lt;/li&gt;   &lt;li&gt;Resource can be any type of named information object that is accessible through web. E.g. doc, picture, web-page, email, application&lt;/li&gt;   &lt;li&gt;Solves integration challenges&lt;/li&gt;   &lt;li&gt;Is pervasive (spreading or spread throughout)&lt;/li&gt;   &lt;li&gt;Provides universal connectivity&lt;/li&gt; &lt;/ul&gt; &lt;span style="font-weight: bold; font-style: italic;"&gt;Service&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Application that exposes its functionality through API&lt;/li&gt;   &lt;li&gt;Resource that is designed to be consumed by software rather than human beings&lt;/li&gt;   &lt;li&gt;Implies Service Oriented Architecture (SOA)&lt;/li&gt;   &lt;li&gt;SOA is basic architecture used by RPC style middleware systems&lt;/li&gt;   &lt;li&gt;SOA separates interface (which hides internal functionality [client need not to know this] of application)&lt;/li&gt;   &lt;li&gt;Piece of software that works for other software&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Combining Web &amp;amp; Service,&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Web Service = Web Resource         +     Service&lt;/li&gt; &lt;/ul&gt;       (which is consumed                            (Functionality exposed&lt;br /&gt;       by software rather                                through API)&lt;br /&gt;       than in browser) &lt;ul&gt;   &lt;li&gt;Runs on a server, waiting for an application to call it and ask for some work&lt;/li&gt;   &lt;li&gt;Usually, doesn’t provide human interface and only way to access is API&lt;/li&gt;   &lt;li&gt;Can perform system function (e.g. file handling) or business application function (e.g. stock quote)&lt;/li&gt;   &lt;li&gt;In client-server terms, service is a server&lt;/li&gt;   &lt;li&gt;E.g. Print Server, File Server, Database Server, Service Oriented Software (Web Server, Application Server)&lt;/li&gt;   &lt;li&gt;Business applications are implemented as services:&lt;/li&gt; &lt;/ul&gt;             - Consolidate effort&lt;br /&gt;            - Reduces duplicate work &lt;ul&gt;   &lt;li&gt;Business application services run in Application Server&lt;/li&gt; &lt;/ul&gt;           &lt;span style="font-style: italic;"&gt;Application servers manage &amp;amp; co-ordinate utilization of all resources available in shared, multi-processing environment, enabling optimized performance, scalability (because many users can share a service), reliability, &amp;amp; availability&lt;/span&gt; &lt;ul&gt;   &lt;li&gt;Web service may implement many functions e.g. Order Processing System Service implementing catalog, shopping cart, payment etc.&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Building Web Services&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;To let clients access a service over Internet, you must build a network API for service.&lt;/li&gt;   &lt;li&gt;Some kind of communication middleware to be used to create new API.&lt;/li&gt;   &lt;li&gt;Using traditional middleware posses blues&lt;/li&gt;   &lt;li&gt;Requirement: Services to be available to heterogeneous users across multiple systems (including Internet) at reasonable cost.&lt;/li&gt;   &lt;li&gt;Solution: Web service which is free, vendor-independent along with other advantages provides integration, flexibility, and service reusability.&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Web Evolution&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Web&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Originally created to support interactive communication&lt;/li&gt; &lt;/ul&gt;     Interactiveè Communication with people using email and instant messengers and information access using browsers&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Web Site&lt;/span&gt;&lt;br /&gt;Static -------&gt;Dynamic&lt;br /&gt;    Dynamic: Calls application that dynamically generates and renders requested information &lt;br /&gt;           &lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Web Service&lt;/span&gt;&lt;br /&gt;Provides universal connectivity, immense scalability of web, supports much richer set of usage models than do human oriented applications.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Comparing Website with Web Services&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Websites (dynamic ones) allow people to talk to applications whereas Web Services allow applications to talk to other web services or applications&lt;/li&gt;   &lt;li&gt;Websites provide group of web resources to be accessed by humans whereas Web Services provide group of web resources designed to be accessed by applications.&lt;/li&gt;   &lt;li&gt;Interfaces are quite different. &lt;/li&gt; &lt;/ul&gt;            - Websites supports human clients who have tremendous capacity to interpret meaning of information (HTML with text, graphics, widgets, and links). Humans interpret information based on visual layout and physical association&lt;br /&gt;         - But applications cannot interpret information this way. An application:&lt;br /&gt;               * Needs unambiguous information&lt;br /&gt;               * Which programmatic functions are available&lt;br /&gt;               * How to structure &amp;amp; interpret data being exchanged&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Web API defines these programmatic functions and data structures in a completely unambiguous way.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Defining Characteristics: &lt;/span&gt;Web Service is:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Web resource accessible using platform independent and language neutral web protocols such as HTTP to ensure easy integration of heterogeneous environments.&lt;/li&gt;   &lt;li&gt;Provides an API that can be called from another program. This application-application API can be invoked from any type of application. Provides access to application logic that implements a service.&lt;/li&gt;   &lt;li&gt;Typically, registered and can be located through a Web Service registry&lt;/li&gt;   &lt;li&gt;Registry enables service consumers (human/apps) to find services that match their needs.&lt;/li&gt;   &lt;li&gt;Supports loosely coupled connections between systems. Communicates by passing XML messages to each other via web API which adds a layer of abstraction to environment that makes connections flexible and adaptable.&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Understand Scope of Web Services&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Scope:&lt;/li&gt; &lt;/ul&gt; o    Build Web Service&lt;br /&gt;o    Run Web Service&lt;br /&gt;o    Use Web Service&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;4 basic concepts:&lt;/li&gt; &lt;/ul&gt;             &lt;span style="font-style: italic;"&gt;1. XML &amp;amp; Web Services Technologies&lt;/span&gt;&lt;br /&gt;                  There are the foundations&lt;br /&gt;            2. &lt;span style="font-style: italic;"&gt;Web Services Infrastructure&lt;/span&gt;&lt;br /&gt;                - Build, deploy, manage, &amp;amp; use Web Services&lt;br /&gt;                - Implements XML and Web Services technologies&lt;br /&gt;          &lt;span style="font-style: italic;"&gt; 3. Web Services&lt;/span&gt;&lt;br /&gt;               - Information resource or business process made available to other applications through Web API&lt;br /&gt;              - Resource that supports application-application communication using Web Services Infrastructure&lt;br /&gt;             - Any piece of code that can be converted into Web Services&lt;br /&gt;          &lt;span style="font-style: italic;"&gt;4. Web Services Templates&lt;/span&gt;&lt;br /&gt;              - Represents kinds of applications and initiatives for which Web Service technology offers substantial benefits e.g. Portals, ERP, CRM, EAI initiatives &amp;amp; B2B integration.&lt;br /&gt;      &lt;br /&gt;      &lt;span style="font-style: italic;"&gt;Each layer builds on layer below it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Web Service Business Model&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Software as a Service (SaaS) is not a Web Service template but business model&lt;/li&gt;   &lt;li&gt;SaaS: License subscription rights to deploy software in your own organization. E..g. salesforce.com offering CRM subscription&lt;/li&gt;   &lt;li&gt;Rarely, you sell a Web Service but sell products or service with the help of Web Service&lt;/li&gt;   &lt;li&gt;Rarely, Web Service are focus of business model and without a viable business model it is hard to create a business case of Web Service.&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Case Studies&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;1. Google&lt;/span&gt;&lt;br /&gt;·    Leading web search company&lt;br /&gt;·    Public search engine indexing more than 3 million web pages&lt;br /&gt;·    Has human oriented browser interface&lt;br /&gt;·    Business model that supports this service is advertisement (means of revenue generation for Google)&lt;br /&gt;·    Also provides Web Services interface to this public search engine (WS API) to query Google search from an application rather than browser and returns structured data that requesting application can process.&lt;br /&gt;·    Google Web API can be used for any new &amp;amp; interesting application like subject monitoring, market research, plagiarism detection.&lt;br /&gt;·    Google Web API is not a new service but a programmatic interface to Google’s public search engine&lt;br /&gt;·    It is out of goodwill – free but limited to 1000 queries a day &amp;amp; no advertisement support&lt;br /&gt;·    But your Web Service should be designed to support your existing business model &amp;amp; should provide a new improved mechanism to sell or use an existing product or service.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;2. Kinko&lt;/span&gt;&lt;br /&gt;·    A document solution &amp;amp; business services company&lt;br /&gt;·    Offers client interface (add-on to MS Office) to its Print Web Service. Users can order prints with different options like binding, stapling, charges, location etc. &amp;amp; will be even notified when request is completed.&lt;br /&gt;·    This web service does not compete with company’s core business model but enhances it by providing another way for users to submit print jobs – level of convenience that user appreciates.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;3. Amazon&lt;/span&gt;&lt;br /&gt;·    Uses Web Services to enhance core business model which is based on online retail sales&lt;br /&gt;·    Its online catalogue feature was designed to be viewed by human using browser.&lt;br /&gt;·    But Amazon developed Web Service so that affiliate applications can use this Web Services through Web API.&lt;br /&gt;·    Before Web Service, this was difficult&amp;amp; needed a screen scraping application that simulates human sitting at browser&lt;br /&gt;·    Win-win situation for Amazon &amp;amp; Affiliates resulting in rise in product sales.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;4. UPS&lt;/span&gt;&lt;br /&gt;·    Provides Web Service to streamline logistic process – online integration, shipping, tracking, &amp;amp; related functions&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;5. T-Mobile&lt;/span&gt;&lt;br /&gt;·    Here, Web Service enables a new business model&lt;br /&gt;·    T-mobile provides a wireless web portal&lt;br /&gt;&lt;br /&gt;CONSUMER -----------------T-MOBILE-------------CONTENT  PROVIDERS&lt;br /&gt;(E-mail, SMS                      (Revenue from               (Consumer usage, billing)&lt;br /&gt; Stocks, Banking)                 increased airtime         &lt;br /&gt;                                              usage)&lt;br /&gt;Web Service is not focus but this would not work without them&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Internal Integration&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Previous examples were of external application integration &lt;/li&gt;   &lt;li&gt;Makes customers/partners to do business&lt;/li&gt;   &lt;li&gt;Anything that simplifies Business Interface is a valuable commodity&lt;/li&gt;   &lt;li&gt;Web Services themselves do not define business model instead they support existing business model&lt;/li&gt;   &lt;li&gt;Sometimes, enables new business model as well.&lt;/li&gt;   &lt;li&gt;Web Services can also be used for internal integration of applications.&lt;/li&gt;   &lt;li&gt;Similarly, internal Web Services should support your core business model&lt;/li&gt;   &lt;li&gt;Improve or optimize your internal application system to make business process  work better&lt;/li&gt;   &lt;li&gt;Explore if Web Services can dramatically lower cost of your application integration&lt;/li&gt;   &lt;li&gt;Case Study of Merill Lynch:&lt;/li&gt; &lt;/ul&gt;                   Multiple applications communicates to mainframe based CICS through Web Service.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;            Using Message-Oriented-Middleware (MOM) technology would have cost $800,000 compared to $30,000 using Web Services. Any client environment can access CICS environment using SOAP gateway without needing any specific software or any special adaptors on any of the systems.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt; &lt;span style="font-weight: bold;"&gt;Executive Summary&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Web Service: An application that provides Web API which exposes functionality  of application to other applications.&lt;/li&gt;   &lt;li&gt;Web API:&lt;/li&gt; &lt;/ul&gt;           - Relies on web service technologies to manage communication&lt;br /&gt;          - Purpose is to enable integration of heterogeneous applications. &lt;ul&gt;   &lt;li&gt;Web Service Technologies: Are Pervasive, Vendor-Independent, Language, Neutral, Cost-Effective&lt;/li&gt;   &lt;li&gt;Do not represent new business model but are a technology to build systems to  support business&lt;/li&gt;   &lt;li&gt;IT departments uses Web Services to reduce cost &amp;amp; simplify integration process.&lt;/li&gt; &lt;/ul&gt; &lt;span style="font-weight: bold;"&gt;Some Uses&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;To implement internal point-to-point application integration projects&lt;/li&gt;   &lt;li&gt;To consolidate your development efforts &amp;amp; reduce redundant applications&lt;/li&gt;   &lt;li&gt;Implement General Purpose Integration Bus for your internal applications&lt;/li&gt;   &lt;li&gt;External application integration for business partnerships.&lt;/li&gt; &lt;/ul&gt; &lt;span style="font-style: italic;font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Source: Web Services Basics: A Manager's Guide By Ann Thomas Manes&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-4157656969496307826?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/4157656969496307826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=4157656969496307826' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/4157656969496307826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/4157656969496307826'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/10/web-services-basics.html' title='Web Services Basics'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-4904434350552144933</id><published>2008-09-19T21:22:00.000+05:30</published><updated>2008-09-19T21:23:48.697+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Talk'/><title type='text'>Web Service Middleware: All Grown Up</title><content type='html'>&lt;object width="425" height="349"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PJfxNKplAZ4&amp;hl=en&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6&amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/PJfxNKplAZ4&amp;hl=en&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6&amp;border=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="349"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-4904434350552144933?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/4904434350552144933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=4904434350552144933' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/4904434350552144933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/4904434350552144933'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/09/web-service-middleware-all-grown-up.html' title='Web Service Middleware: All Grown Up'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-2577171311450551905</id><published>2008-09-16T20:45:00.003+05:30</published><updated>2008-09-16T20:59:45.255+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>What exactly is a Content Management System?</title><content type='html'>Going by the name, a Content Management System (CMS) is a system that manages content where:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Content - Any digital information (text, images, videos, sounds, documents) that can be stored and managed in electronic format.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Management - Rules, process, flows that helps in managing the content.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;System - Tool (s) that provides effective and efficient production of output from the managed content. &lt;/li&gt;&lt;/ul&gt;Most often, CMS is&lt;span style="font-style: italic;"&gt; confused&lt;/span&gt; with some application that manages web pages. An application that manages web pages is a web CMS. However, document management systems, asset management systems are also CMS.&lt;br /&gt;&lt;br /&gt;There are many open source web CMS available - &lt;span style="font-style: italic;"&gt;Joomla, Drupal, Mambo&lt;/span&gt;, and many others.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Joomla&lt;/span&gt; is quite easy to use in &lt;span style="font-style: italic;"&gt;AMP (Apache, MySQL, PHP)&lt;/span&gt; environments. Simply unzip the downloaded Joomla zip folder into htdocs directory under Apache installation. You will be prompted for some configurations which are quite intuitive. After installtion completes, remove the installation directory from the Joomla folder and a control panel is available for managing your web resources. You can customize frontpage, menus, article content, and there are built-in modules like login and registration ones. You can add your own modules as well. Its simplicity and usefulness can only be judged by using it. So, why not downloaded Joomla from &lt;a href="http://www.joomla.org"&gt;here&lt;/a&gt; and get-set-go...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-2577171311450551905?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/2577171311450551905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=2577171311450551905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2577171311450551905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2577171311450551905'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/09/what-exactly-is-content-management.html' title='What exactly is a Content Management System?'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-1074638960689378975</id><published>2008-08-30T10:07:00.001+05:30</published><updated>2008-08-30T10:10:34.287+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='Graphics'/><title type='text'>Intel's new graphics chips could have broader uses</title><content type='html'>&lt;h1 class="headline"&gt;&lt;span style="font-size:100%;"&gt;Intel's new graphics chips could have broader uses&lt;/span&gt;&lt;/h1&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div id="author" style="float: left;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;a href="http://www.iht.com/cgi-bin/search.cgi?query=By%20John%20Markoff&amp;amp;sort=publicationdate&amp;amp;submit=Search"&gt;By John Markoff&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;a id="articleLocation" title="Click to view map" href="http://www.iht.com/articles/2008/08/04/business/chip.php#"&gt;SAN FRANCISCO&lt;/a&gt;:&lt;/strong&gt; Intel on Monday was releasing the first technical details of a new family of chips intended to soup up computer graphics and, eventually, a broad range of computing tasks.&lt;/p&gt;  &lt;p&gt;The new microprocessor family, code-named Larrabee, will be available in late 2009 or early 2010. Intel is releasing the details of its plans before the Siggraph industry conference starts in Los Angeles next Monday.&lt;/p&gt;&lt;p&gt;Read complete story &lt;a href="http://www.in.com/active18/readnow/storypage.php?docid=5360969&amp;amp;clusid=28186"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&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/2000632512313948863-1074638960689378975?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/1074638960689378975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=1074638960689378975' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/1074638960689378975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/1074638960689378975'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/08/intels-new-graphics-chips-could-have.html' title='Intel&apos;s new graphics chips could have broader uses'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-77376387219983595</id><published>2008-08-23T23:25:00.000+05:30</published><updated>2008-08-23T23:26:56.614+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Graphics'/><title type='text'>How Computer Graphics (CG) Changed Special Effects in Movies</title><content type='html'>&lt;p&gt;By &lt;a href="http://ezinearticles.com/?expert=Saju_Asokan"&gt;Saju Asokan&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;If you spend some time during your weekends to watch some old thriller titles, you would get nothing but boredom, from those special effects that kept you at the edge of your seat, a couple of years back. What makes this tremendous change in the special effects industry in such a short span of time? Nothing but the magical entry of computer graphics into the special effects industry.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Special effects in olden days:&lt;/strong&gt; The special effects in olden days were sometimes referred to as camera techniques. During those days, computers had no role in the industry that we see today. Most special effects movies with human casts would do some stunts with an alien or a monstrous creature. Either they would make a full sized model of the creature with the aid of robotics and hydraulic systems or would create a small scale model and magnify it while mixing up the scene. Usually a combination of these techniques was used in olden days.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;How computer graphics revolutionized the field:&lt;/strong&gt; Computer graphics really became a magic wand for the movie director. lets see how:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;• &lt;strong&gt;Limits imposed by real world models are gone:&lt;/strong&gt; Before its introduction, a movie director how ever creative he is had so many limitations. The special effects he could incorporate into a movie were limited by the robotic creatures, whose movements were obviously limited by the hydraulic machines that powered them. Keep in mind that the robotics field was not as developed during those times as it is now. In the case of computer graphics, the models are modeled using a graphics workstation. All it takes is a team of skilled graphic designers and powerful workstations to render the scenes. The physical restraints got almost completely dissolved.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;• &lt;strong&gt;Cost has been dramatically reduced: &lt;/strong&gt;In the olden days, budget had been a significant constraint since, the monstrous models created for movies used to cost a fortune. These models were crafted with robust devices and the drive train that powered them would be highly sophisticated, so that they would appear as real and their movements as fluid as possible. Due to this level of sophistication, the expense for the creation of such models always turned out to be high. With the introduction of computer graphics, the cost of creation of a model could be limited to the hiring cost of a team of graphics professionals, a farm of fast computers for rendering and experts to control the work flow. The physical models created could be brought down to the minimum.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;• &lt;strong&gt;Minimal wastage of resources:&lt;/strong&gt; In the past, the models created for a movie would cost a significant share of the whole budget but if the movie happens to be not a sequel, the models might not find a reuse in the future at all. This would be nothing but a pure wastage of money and resources. Since, in computer graphics, nothing much exists physically, no wastage of real physical resources occur. If a CG model ever needs to be altered, all it takes is the effort from the part of a graphics professional.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;• &lt;strong&gt;Time saving:&lt;/strong&gt; The fabrication process, used for the creation of physical models was time consuming. The process would demand time for the setting and fixing of joints irrespective of the availability of human labor. But in the case of computer graphics, the more the number of skilled workforce the production team has at hands, the faster the work will get done.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;• &lt;strong&gt;Far superior reality: &lt;/strong&gt;With the advent of the latest animation and modeling software, the scenes are getting so realistic that it is hard to distinguish. The presence of latest composing, mixing and editing software, makes it a cakewalk to blend special effects scenes with the usual cast shots.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The introduction of computer graphics can be claimed as one of the very few industry refinements that has caused almost zero negative effects. The days of fabricating huge casts and models to make a six legged creature, that would make the audience scream are far gone. CG revolutionized the field so dramatically that our expectations and benchmarks have been quadrupled in a time-frame of couple of years.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;My website provides &lt;a target="_new" href="http://www.sajuonline.com/"&gt;3d graphics tutorials&lt;/a&gt; on 3d modeling and animation softwares like 3ds max, maya etc.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;(The website provides comprehensive and step-by-step tutorials on 3DS Max and also provides comprehensive articles on Technology, Spirituality and Relationships).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Article Source: &lt;a href="http://ezinearticles.com/?expert=Saju_Asokan" target="_new"&gt;http://EzineArticles.com/?expert=Saju_Asokan&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ezinearticles.com/?How-Computer-Graphics-%28CG%29-Changed-Special-Effects-in-Movies&amp;amp;id=1385044" target="_new"&gt;http://EzineArticles.com/?How-Computer-Graphics-(CG)-Changed-Special-Effects-in-Movies&amp;amp;id=1385044&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/2000632512313948863-77376387219983595?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/77376387219983595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=77376387219983595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/77376387219983595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/77376387219983595'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/08/how-computer-graphics-cg-changed.html' title='How Computer Graphics (CG) Changed Special Effects in Movies'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-2394143338754757867</id><published>2008-08-17T16:39:00.000+05:30</published><updated>2008-08-17T16:40:43.759+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Opportunities'/><category scheme='http://www.blogger.com/atom/ns#' term='PhD'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>Doing a PhD in Computer Science</title><content type='html'>&lt;p&gt; &lt;/p&gt;&lt;h4&gt; &lt;a href="http://www.cse.iitk.ac.in/cgi-bin/faculty.cgi?jalote"&gt;Pankaj Jalote&lt;/a&gt;&lt;br /&gt;Professor, CSE Department, IIT Kanpur &lt;/h4&gt;Article Source: &lt;span class="a"&gt;www.cse.iitk.ac.in/acad/doing&lt;b&gt;phd&lt;/b&gt;.html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;p&gt; PhD is the highest degree offered anywhere in the world (barring the highly  uncommon DSc). Its focus, unlike regular degrees, is not learning existing  knowledge but creating new knowledge. No wonder, PhD is desired by anyone  wishing to `make a mark' - the brightest seek it as it allows challenges that  no other degree does; the innovative desire it as it allows the possibility to  innovate and create new knowledge and technologies; the ambitious seek it as  it is the top of the academic ladder; and the persistent seek it as this is  the one degree where persistence and self discipline are brought to full use.  &lt;/p&gt;&lt;p&gt; Despite the romance of doing a PhD, there seems to be some `fear' frequently  in the youth about pursuing a PhD - prospective students are sometimes scared  because they think it is ``too difficult and they will not be able to do it'',  or because ``it takes too much time'', or perhaps just because ``PhD means  that you have to be a teacher and I don't want to be a teacher''. All of these  reasons/fears are actually false.  This note discusses some of these issues in  an attempt to clarify the situation for prospective candidates. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;h3&gt; What is Involved in a PhD? &lt;/h3&gt; &lt;p&gt; First let us clearly understand what is involved in doing a PhD. PhD is,  as everyone knows, about doing research. And research is about formulating  problems or questions whose answers the research or practitioner community  wants to know, and whose answers are not known. Doing research is to provide  some answer to these questions. So, the key aspects of doing a PhD are  (a) formulating a question or a problem that is of interest and that can be  solved, and (b) providing a useful/interesting solution to the stated problem.  The results obtained are presented in national/international conferences,  and/or submitted to scientific journals. &lt;/p&gt;&lt;p&gt; The problems that are addressed by a PhD scholar can range from very difficult  open problems to evolutionary technology issues. In Computer Science, the  problem area can range from highly theoretical/mathematical to modeling and  experimentation or building new technologies. For example, there are a lot of  open problems regarding the complexity of solving some problems algorithmically  (for example, checking whether a number is a prime - a problem for which an  efficient solution was proposed only recently by Prof. Agarwal of CSE/IITK).  These problems typically involve complex theoretical and mathematical  development. Similarly, there are many problems that require understanding the  behavior of various systems. Approaching such problems frequently uses  modeling and experimentation. Then there are problems of the type where  something innovative and useful is done using computers and software. Working  on such problems typically involves building systems and prototypes. In other  words, a scholar doing a PhD in Computer Science has a wide range of areas to  choose from, depending on his inclination, ability, and interests. &lt;/p&gt;&lt;p&gt; Generally, PhD programs world over proceed as follows: do some course work,  pass some qualifying exam, and then write a thesis that has to be defended  (sometimes, at the early stages of the thesis a `proposal' may have to be  submitted.) In a place like CSE/IIT Kanpur, generally, a student who joins the  PhD program after completing his/her B.Tech/BE will spend about 1 year doing  the courses, about 1 to 2 years for formulating the problem, which also  requires an in-depth study of the chosen area, and about 2 years or more for  developing the solutions and writing the thesis. Once the thesis is written,  it is examined by some experts and a thesis defense is scheduled. This process  takes about 6 months, but the candidate can start his post PhD job once the  thesis is submitted. &lt;i&gt;Hence, doing a PhD takes about as much time as doing a  BE, or the amount of time a doctor spends doing his residency and MD.&lt;/i&gt; &lt;/p&gt;&lt;p&gt; Doing a PhD is indeed hard. However, the difficulty is not because extreme  intelligence is necessary. Brilliance, of course, helps - brilliant people  can attack hard problems and produce solid results and leave a permanent mark  on the field. However, students with good academic background and some amount  of creativity can also do a PhD, and do quite well. Completing a PhD primarily  requires a drive, motivation, and hard work. Hard and motivated work determines  not only the quality of the final work, but also the amount of time needed to  complete the PhD. In general, a PhD can be completed in 4 to 5 years - 4 years  for the motivated and 5 for the not-so-motivated. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;h3&gt; What are the Options after PhD? &lt;/h3&gt; &lt;p&gt; Clearly, one of the main job opportunities after PhD is a faculty position in  some University, College, or an Institute. This option, world over, is one of  the most preferred options for people with PhD. One of the reasons for this is  that in today's world, the best quality people require freedom in their work  and have a strong desire to ``make a mark''. Both of these are well supported  by research activities a faculty undertakes as part of his job - he has the  freedom to select the problems he works on, and through his research he  creates new knowledge which is published under his authorship. This is a very  strong motivating factor and very good people across the world sacrifice other  benefits for academic freedom and possibilities to create and innovate.  &lt;/p&gt;&lt;p&gt; In faculty positions it should be mentioned that for Computer Science, as  there is a shortage of qualified faculty in most good institutions, there are  always openings in places like IITs/NITs/RECs/Central Universities, etc. In  addition, now some private universities as well as institutions set up by  overseas universities coming up which also are looking for qualified faculty  (and these places are paying much more than Govt. scales - up to 3 times more!) &lt;/p&gt;&lt;p&gt; However, teaching is by no means the only option for a PhD. India today is  fast becoming a center for global R&amp;amp;D. Due to the quality of its manpower,  and the lower cost, many organizations have started setting up R&amp;amp;D centers  in India. And these centers are looking for PhDs (and not finding them, as  there are not enough getting produced!) Some example of these are IBM India  Research Center in New Delhi, GE Research in Bangalore, Mentor Graphics in  Hyderabad, Cadence, etc. &lt;/p&gt;&lt;p&gt; Besides these research centers, most of the big Indian IT companies have  started high end technology development and consulting, and R&amp;amp;D centers or  cells, in which they need PhDs. Almost all the IT majors - TCS, Infosys,  Wipro, etc. employ a large number of PhDs (upward of about 50 each) and are  always looking for more people to enhance their R&amp;amp;D activities. This  activity will increase in these companies as these companies become larger. A  few years back, we had done an informal survey on salaries with these companies  and we were told that most of them will offer at least twice as much starting  salary for a PhD as for a BE. Starting salaries for many of these positions  are of the order of Rs 50,000 PM or more. &lt;/p&gt;&lt;p&gt; Besides these opportunities in India, people with PhDs are global citizens and  move around quite a bit. Immediately after PhD, there are opportunities for  post-doctoral work in US and Europe. While working as a researcher/faculty,  there are opportunities for visiting faculty appointments or visiting  researchers in US, Europe, Singapore, etc., where a faculty member from India  can spend a year or two in overseas universities or research labs. Many faculty  members from India avail of this from time to time. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-2394143338754757867?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/2394143338754757867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=2394143338754757867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2394143338754757867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2394143338754757867'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/08/doing-phd-in-computer-science.html' title='Doing a PhD in Computer Science'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-8800098036520078982</id><published>2008-07-19T23:26:00.003+05:30</published><updated>2008-07-19T23:30:04.893+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Important Notice</title><content type='html'>Dear visitors,&lt;br /&gt;I have started a series on C++ programming called "C++-The Natural Way" citing real life examples for the concepts involved.&lt;br /&gt;You may follow my posts at:&lt;br /&gt;&lt;a href="http://cplusplus-naturally.blogspot.com/"&gt;http://cplusplus-naturally.blogspot.com&lt;/a&gt;&lt;br /&gt;Feedbacks, suggestions, and contents are most welcome.&lt;br /&gt;Thanks for visit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-8800098036520078982?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/8800098036520078982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=8800098036520078982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8800098036520078982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/8800098036520078982'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/07/important-notice.html' title='Important Notice'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-2769539799952373293</id><published>2008-06-27T16:54:00.001+05:30</published><updated>2008-06-27T16:57:31.525+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Graphics'/><title type='text'>Techniques in 3D Graphics</title><content type='html'>Going beyond flatland (2D graphics) is more of a challenge than merely adding another axis. Many techniques are applied together to map the high expectations of mind onto the 2D displays. To render a 3D scene, techniques such as shaping, shading, textures, lighting, reflections, hidden-surface removal, perspective projections are employed.&lt;br /&gt;&lt;br /&gt;Read my complete article at:&lt;br /&gt;http://www.ezinearticles.com/?3D-Graphics-=-2D-Graphics-+-Third-Axis-+-Many-Techniques&amp;amp;id=1254027&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-2769539799952373293?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/2769539799952373293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=2769539799952373293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2769539799952373293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2769539799952373293'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/06/techniques-in-3d-graphics.html' title='Techniques in 3D Graphics'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-2868910832161761180</id><published>2008-06-26T12:40:00.001+05:30</published><updated>2008-06-26T12:44:22.199+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>XML Parsing Using DOM with VC++</title><content type='html'>eXtensible Markup Language (XML) is the industry standard for exchanging information. XML allows users to define their own tags. &lt;br /&gt;&lt;br /&gt;XML parsers are tools used to read or write to an XML document. These parsers are based on either DOM (Document Object Model) or SAX (Simple API for XML) standards. A good description of using DOM in VC++ is given in following article:&lt;br /&gt;http://www.howtodothings.com/computers-internet/how-to-use-an-xml-parser-module&lt;br /&gt;&lt;br /&gt;Using DOM in VC++ is not very straight forward. In the above article, I have presented the information collected from many sources to get the code working.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-2868910832161761180?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/2868910832161761180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=2868910832161761180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2868910832161761180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/2868910832161761180'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/06/xml-parsing-using-dom-with-vc.html' title='XML Parsing Using DOM with VC++'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-937341983243934494</id><published>2008-06-18T13:47:00.001+05:30</published><updated>2008-06-18T13:50:05.503+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Databases'/><title type='text'>How To Use Structured Query Language (SQL)</title><content type='html'>&lt;p&gt;Structured Query Language (SQL) is a computer language for creating database and manipulating data. SQL is an ANSI (American National Standard Institute) standard and is supported by almost all Relational Data Base Management Systems (RDBMS) like Oracle, MySQL, SQLServer, MS Access, PostGreSQL etc. SQL has two parts: &lt;/p&gt; &lt;ul&gt;&lt;li&gt;Data Definition Language (DDL): to create, alter, or drop tables and indexes. &lt;/li&gt;&lt;li&gt;Data Manipulation Language (DML): to insert, update, retrieve or delete the data in the tables.&lt;/li&gt;&lt;/ul&gt;A brief introduction to using SQL is given in my tutorial at:&lt;br /&gt;http://www.howtodothings.com/computers-internet/how-to-use-structured-query-language-sql&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-937341983243934494?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/937341983243934494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=937341983243934494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/937341983243934494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/937341983243934494'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/06/how-to-use-structured-query-language.html' title='How To Use Structured Query Language (SQL)'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-1891638900943408185</id><published>2008-06-17T13:11:00.001+05:30</published><updated>2008-06-17T13:15:43.426+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>Which Mobile Computer Is For Me?</title><content type='html'>&lt;o:p&gt;&lt;/o:p&gt;The question is not which laptop is for me but which mobile computer is for me. This is because laptop is a kind of mobile computer, just as notebooks, deskbook, and tablet PCs are. Let us start with distinction between these kinds of mobile computers.    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=""&gt;Laptop:&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Bigger      than notebooks&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Has      built-in disk drives&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Screen      is atleast 15 inch wide&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Generate      so much heat that you cannot use them on your lap&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Weight:      6-8 pounds&lt;/li&gt;&lt;/ul&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=""&gt;Notebook:&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Popularly      known as 'Ultra-Portables'&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Since      the drive is not built into the unit, notebooks are smaller and lighter      than laptops. &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Usually,      of the size of a binder notebook&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Weight:      Under 4 pounds&lt;/li&gt;&lt;/ul&gt;    &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;Deskbook:&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;True replacement of desktops&lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Larger and heavier than laptops/notebooks&lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Power comes as they use same processors as desktops but power comes at the cost of battery draining quickly&lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Weight: Over 8 pounds&lt;/li&gt;&lt;/ul&gt;          &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Tablet PC:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Mobility,      size, and weight similar to laptops/notebooks&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;They      are mobile computers with a twist - Tablet display screens can swivel 360      degree on its base&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Can be      turned into a slate on which you can write using a stylus and a software      will automatically convert your handwriting into text.&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Weight:      2-4 pounds&lt;/li&gt;&lt;/ul&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;Factors To Be Considered Before Buying A &lt;st1:place st="on"&gt;Mobile&lt;/st1:place&gt; Computer&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;    &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Portability&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Size&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Looks&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Performance&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:place st="on"&gt;Battery&lt;/st1:place&gt; Life&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Screen      Size&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Keyboard      Space&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Optical      drives (CD/DVD etc)&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;High      End Graphics&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Port      Selection&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Wireless      Connectivity&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Price&lt;/li&gt;&lt;/ul&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;b style=""&gt;&lt;u&gt;Some Decision Aids In Choosing Which &lt;st1:place st="on"&gt;Mobile&lt;/st1:place&gt; Computer Is For You&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;If you      are frequent traveler and want a mobile computer for giving      demos/presentations then definitely notebooks are best as they are light      and compact compared to laptops.&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;If you      are a student (with dad’s good bank account) and in a college that allows      mobile computers inside class then tablet PCs may the best for taking      notes using stylus.&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;However,      if you are looking for desktop replacement then go for laptops. Also,      consider following aspects:&lt;/li&gt;&lt;ul style="margin-top: 0in;" type="circle"&gt;&lt;li class="MsoNormal" style=""&gt;Screen       size should be at least 15 inch&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Drives       should be built-in&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Ports       should be located at convenient location&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Should       support wireless connectivity&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;If       you are an avid gamer then have a high end graphics card inside your       lappy.&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Go       for latest processors, maximum RAM and hard disk storage&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=""&gt;&lt;u&gt;Apple Vs Dell Vs Sony Vs …Vs…….&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;I feel Apple laptops are luxury possessions. Usually, they are four times costlier than their counter-parts. Since they run Mac OS then third-party application support may not be as good as those running Windows OS.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -1.25in;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Dell seems to be a good options considering performance and affordability. But they have showrooms and service centers only at few places. You can send your configuration requirement online and Dell will deliver your laptop by post. Since there are very few showrooms and service centers (if any) then after sales support may be questionable.&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;I liked following configuration:&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;b style=""&gt;&lt;u&gt;DELL INSPIRON 1525 LAPTOP (E-value code: R540604)&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Intel Core2 Duo Processor&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;3GB Dual Channel DDR2 SDRAM&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;250GB SADA Hard Disk 5400 rpm&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;15.4” WXGA TFT Display&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Cost: Rs. 39,900/= (excluding taxes and other charges) – Great Deal !!!&lt;/p&gt;To Buy, Call or Go Online:  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;http://www.dell.co.in&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;1800      425 4002 (Toll Free MTNL/BSNL Users, Mon-Sat:9a,-6pm)&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;080-2510      8001&lt;/li&gt;&lt;/ul&gt;      &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;br /&gt; &lt;/o:p&gt;&lt;b style=""&gt;&lt;i style=""&gt;In the end, do remember. Compactness and lightness comes at the cost of performance. Also, smaller size may also make the system difficult to use because of small keyboard and screen etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Disclaimer: Above are my personal views based on open literature and reviews from the users.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-1891638900943408185?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/1891638900943408185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=1891638900943408185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/1891638900943408185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/1891638900943408185'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/06/which-mobile-computer-is-for-me_17.html' title='Which Mobile Computer Is For Me?'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-4262300409794141502</id><published>2008-06-13T10:27:00.000+05:30</published><updated>2008-06-13T10:29:58.219+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><title type='text'>Building A Knowledge System Using LAMP</title><content type='html'>Free ebooks, tutorials, and articles have flooded the Internet. Millions of Internet users are just downloading them without significantly and efficiently utilizing the downloaded material. One reason is that such material is not generally properly organized and is not searchable efficiently.&lt;br /&gt;&lt;br /&gt;As a solution to above problem, a software can be developed using famous LAMP (Linux, Apache, MySQL, and PHP) stack. For the readers not familiar with LAMP, here is an excerpt from book &lt;span style="font-weight: bold;"&gt;Ajax: The Definitive Guide by Anthony T. Holdener, III.&lt;/span&gt;&lt;br /&gt;“&lt;br /&gt;&lt;span style="font-style: italic;"&gt;LAMP (Linux, Apache, MySQL, PHP [Perl/Python]) is an acronym that started in Germany and has been buzzing around the Internet since the late 1990s. Once O'Reilly and MySQL AB popularized the term, it spread. It stands for the quintessential open source web development platform that has been around for a long time and sometimes does not get the recognition it deserves. But it is obviously out there.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Refer to the Netcraft survey referenced in the section "The Web Server," earlier in this chapter. There is no denying that Apache is the most-used web server on the Internet. Take a closer look at the survey and see the number of Apache servers using mod_php, mod_perl, or mod_python. Combine that with the trends you can see for PHP versus ASP/ASP.NET, Python, Ruby, and JSP by using Google's latest toy, Google Trends (http://www.google.com/trends). The number of downloads for MySQL should clearly indicate its usage on the Web. As for Linux, it continues to gain ground, no matter how much you want to argue to the contrary.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;LAMP has become the platform of choice for development of high-performance web applications, especially if you just follow the open source model of the platform. Have the L stand for Linux, FreeBSD, Solaris, or any other open source operating system; the M stand for MySQL or PostgreSQL; and the P stand for PHP, Python, Perl, Java, or Ruby. There is, of course, really no altering Apache with the A.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;LAMP seems to be the Web 2.0 platform of choice too. Look at the list of innovative, inventive sites on the Web that use LAMP: Wikipedia, WordPress, MySQL AB, Amazon, Google, Yahoo!, and MySpace. These are all high-volume sites that use a model that obviously works. LAMP has also been incorporated into other corporate systems, including those of Disney and Boeing, to name a few.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;LAMP provides a stable, scalable, and cheap web platform for use with any Ajax web application. As the Web 2.0 movement grows with more Ajax web applications replacing the more classic sites, LAMP will be right there as well. Check out O'Reilly's LAMP site, ONLamp.com, at http://www.onlamp.com/ for more on LAMP.&lt;/span&gt;&lt;br /&gt;“&lt;br /&gt;Coming to technical part of solution, you a need a database table in MySQL RDBMS which will contain meta-data about ebook/ tutorial like title, author(s), category, sub-category, brief description, some keywords. Next, you require two web pages - one for uploading material and second page for searching &amp;amp; displaying search results. On uploading page, user feeds the meta-data about the material being uploaded. PHP script is required to copy the uploaded material into preset folders (based on category &amp;amp; sub-category) on your server. The whole system is made web-based so that it can be used by others also on Internet/Intranet. Apache is being used as the web server.&lt;br /&gt;&lt;br /&gt;Now, you have so many knowledge sources at your disposition. Would it not be appropriate to call it a Knowledge System?&lt;br /&gt;&lt;br /&gt;I will try to cover the installation and configuration of LAMP in my subsequent posts and later the complete code for the solution. Till then, keep visiting my blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-4262300409794141502?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/4262300409794141502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=4262300409794141502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/4262300409794141502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/4262300409794141502'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/06/building-knowledge-system-using-lamp.html' title='Building A Knowledge System Using LAMP'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-915732463640522468</id><published>2008-06-12T13:18:00.000+05:30</published><updated>2008-06-12T13:20:46.920+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java/J2EE'/><title type='text'>FAQs in JAVA</title><content type='html'>&lt;p class="style13" align="justify"&gt;Following are some questions which are frequently asked in job interviews as well as in other academic courses in Java technology.&lt;/p&gt;     &lt;p class="style13" align="justify"&gt;&lt;span class="style21"&gt;1. Method Overloading Vs. Method Overriding&lt;/span&gt;&lt;/p&gt;     &lt;p align="justify"&gt;&lt;strong&gt;Method overriding &lt;/strong&gt;refers to over-riding the  functionality of a method in the parent class. The rules for method overriding are:-&lt;/p&gt;     &lt;div align="justify"&gt;       &lt;ul&gt;&lt;li&gt;Overriding method must  have same signature as overridden method&lt;/li&gt;&lt;li&gt;Overriding method's  return type MUST be the same as that of overridden method's return type. &lt;/li&gt;&lt;li&gt;Overriding method's  throws clause must be compatible. &lt;/li&gt;&lt;li&gt;ANY METHOD CAN THROW  UnChecked exception without declaring.&lt;/li&gt;&lt;/ul&gt;     &lt;/div&gt;     &lt;p align="justify"&gt;&lt;strong&gt;Method overloading &lt;/strong&gt;refers to a  class having more than one method with same name but different parameter list. (Note that this makes their signature different). &lt;strong&gt;There  are no rules&lt;/strong&gt;. In affect, overloaded methods are entirely independent of  each other. &lt;strong&gt;Remember, if signature is different, it is a different method.&lt;/strong&gt;&lt;/p&gt;     &lt;p class="style13" align="justify"&gt;&lt;span class="style21"&gt;2. Parameter Passing By-Reference and By-Value &lt;/span&gt; &lt;/p&gt;     &lt;p align="justify"&gt;In parameter &lt;strong&gt;passing-by-reference &lt;/strong&gt;approach , the reference of the variable is passed to the formal argument of the subroutine. So, the value of the variable used in calling method also gets modified.&lt;/p&gt;     &lt;p align="justify"&gt;In &lt;strong&gt;parameter  passing-by- value &lt;/strong&gt;approach, a copy of value is made from actual to formal method. So, the value of the variable in calling program remains unaffected. &lt;/p&gt;     &lt;p align="justify"&gt;&lt;span class="style21"&gt;3. Method super( ) Vs. keyword super &lt;/span&gt;&lt;/p&gt;     &lt;p align="justify"&gt;The method&lt;strong&gt; ‘super()’&lt;/strong&gt; is used to invoke a superclass constructor.&lt;br /&gt;      The keyword ‘&lt;strong&gt;super&lt;/strong&gt;’ allows access to things in the  superclass that are &lt;em&gt;hidden&lt;/em&gt; by things in the subclass. For example, super.x always refers to an instance variable named x in the superclass. This can be useful for the following reason: If a class contains an instance variable with the same name as an instance variable in its superclass, then an object of that class will actually contain two variables with the same name: one defined as part of the class itself and one defined as part of the superclass. The variable in the subclass does not replace the variable of the same name in the superclass; it merely hides it. The variable from the superclass can still be accessed, using super.&lt;/p&gt;     &lt;div align="justify"&gt;When you write a method in a subclass that has the same signature as a method in its superclass, the method from the superclass is hidden in the same way. We say that the method in the subclass overrides the method from the superclass. Again, however, super can be used to access the method from the superclass. &lt;/div&gt;     &lt;p align="justify"&gt;&lt;span class="style21"&gt;4. final, finalize( ), finally( ) &lt;/span&gt;&lt;/p&gt;     &lt;p&gt;&lt;strong&gt;Final: &lt;/strong&gt; This has different  meaning when applied to variables and when to methods and classes.&lt;/p&gt;     &lt;p&gt;                        -  If ‘final’ is used before a variable definition then the value of the variable  cannot be modified.&lt;br /&gt;                        - If ‘final’ is applied to a class then it prevents creation of derived classes from this class i.e. inheritance is banned.&lt;br /&gt;                          -  If ‘final’ is used before a method then this method cannot be overridden in the  derived classes.&lt;/p&gt;     &lt;p&gt;            &lt;strong&gt;Finally&lt;/strong&gt;: This keyword is used in conjunction with try-catch block. However, the code within the ‘finally’ block is executed, no matter, exception is thrown or not.&lt;/p&gt;     &lt;p&gt;            &lt;strong&gt;Finalize: &lt;/strong&gt;The code in the ‘finalize()’ method is executed when the program terminates. This is different from the destructor in the sense that destructor is executed every time the object goes out-of-scope but finalize is executed only once.&lt;/p&gt;     &lt;p align="justify"&gt;&lt;span class="style21"&gt;5. throw Vs. throws&lt;/span&gt;&lt;/p&gt;     &lt;p align="justify"&gt;Basically, "&lt;strong&gt;throw&lt;/strong&gt;" means: something's gone wrong, crash my program unless somebody up the stack thought this might happen, catches it, and does something else.&lt;br /&gt;     &lt;br /&gt;However, "&lt;strong&gt;throws&lt;/strong&gt;" is a tag  for methods, to warn people up the stack to be prepared.&lt;/p&gt;     &lt;p class="style13" align="justify"&gt;&lt;span class="style21"&gt;6. Wait Vs. Sleep&lt;/span&gt;&lt;/p&gt;     &lt;p&gt;‘Wait’ causes a thread to be in  suspended mode until an event occurs for which the thread is waiting.&lt;/p&gt;     &lt;p&gt;‘Sleep’ suspends a thread for a  known specified duration.&lt;/p&gt;     &lt;p class="style13" align="justify"&gt;&lt;span class="style21"&gt;7. Interface Vs. Class&lt;/span&gt;&lt;/p&gt;     &lt;p align="justify"&gt;‘&lt;strong&gt;Interface&lt;/strong&gt;’ contains only the member variables and declaration of the member functions. It does not contain implementation of these methods. The implementation is done in the class that implements this interface. So, an interface may have many implementations.&lt;/p&gt;     &lt;p align="justify"&gt;&lt;br /&gt;      On the other  hand, a &lt;strong&gt;class&lt;/strong&gt; is a complete entity in itself. It has member variables and  methods declaration and  implementation  as well.&lt;/p&gt;     &lt;p class="style13" align="justify"&gt;&lt;span class="style21"&gt;8. Init Vs. Start methods of an applet &lt;/span&gt;&lt;/p&gt;     &lt;p&gt;‘&lt;strong&gt;Init&lt;/strong&gt;’ method contains code needed  for initialization of the applet while ‘&lt;strong&gt;Start&lt;/strong&gt;’ method starts the actual  execution of the applet.&lt;/p&gt;     &lt;p class="style13" align="justify"&gt;&lt;span class="style21"&gt;9. Applet Vs. Application &lt;/span&gt;&lt;/p&gt;     &lt;p&gt;An application is a standalone java program which requires no supporting software for their execution whereas an applet requires supporting software (like web browser or ‘appletviewer’ utility) for their execution.&lt;/p&gt;     &lt;p class="style13" align="justify"&gt;&lt;span class="style21"&gt;10. String Vs. StringBuffer&lt;/span&gt;&lt;/p&gt;     &lt;p&gt;A string created as &lt;strong&gt;String&lt;/strong&gt; class  object cannot be modified. If modification is required then a new string has to  be created.&lt;br /&gt;    However, a string created with&lt;strong&gt; StringBuffer&lt;/strong&gt; class has methods to modify the string.&lt;/p&gt;     &lt;p class="style13" align="justify"&gt; &lt;/p&gt;      &lt;div class="story"&gt;     &lt;h3&gt;Recommended Books &lt;/h3&gt;     &lt;ul&gt;&lt;li&gt;Java 2 Complete Reference by Patrick Naughton &amp;amp; Herbert Schildt&lt;/li&gt;&lt;li&gt;J2EE Unleashed by Paul Allen and Joseph J Bambara&lt;/li&gt;&lt;li&gt;Codenotes for j2ee by Gregory Brill &lt;/li&gt;&lt;/ul&gt;     &lt;p class="story style23"&gt;Recommended Websites &lt;/p&gt;     &lt;ul&gt;&lt;li&gt;http://www.javapassion.com&lt;/li&gt;&lt;li&gt;http://java.sun.com&lt;/li&gt;&lt;/ul&gt;   &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-915732463640522468?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/915732463640522468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=915732463640522468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/915732463640522468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/915732463640522468'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/06/faqs-in-java.html' title='FAQs in JAVA'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-3387871586009649401</id><published>2008-06-10T13:31:00.003+05:30</published><updated>2008-06-10T13:53:01.594+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><title type='text'>Modern Web Standards</title><content type='html'>&lt;p class="MsoPlainText" style="text-align: center;" align="center"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:14;"  &gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="text-align: center;" align="center"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:14;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;div style="border: 1pt solid windowtext; padding: 1pt 4pt;"&gt;  &lt;p class="MsoPlainText" style="border: medium none ; padding: 0in;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Introduction&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Web standards enable the content of an application to be made available to a much wider range of people and technologies at lower costs and faster development speeds.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Earlier the browser makers were to blame for difficulties in adopting web standards. &lt;i style=""&gt;Browser Wars (4.0 Browsers)&lt;/i&gt;: Nothing you did in one environment would work the same in another. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Now developers are to blame for not adopting standards. Reasons: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Some developers are stuck with the mentality of the 1990s&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;"Helpful" What You See Is What You Get (WYSIWYG) software that still generates code geared for 4.0 browsers without any real thought to document structure, web standards, separating structure from presentation, and so forth.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Now several standards bodies provide the formal standards and technical specifications &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;World Wide Web Consortium (W3C) - http://www.w3.org &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;European Computer Manufacturer's Association (ECMA) - http://www.ecma-international.org &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Internet Engineering Task Force (IETF) - http://www.ietf.org/. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Standards provided: XHTML, CSS, JavaScript, the DOM, XML, XSLT, RSS, and Atom.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.25in;"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Not only does &lt;st1:city st="on"&gt;Ajax&lt;/st1:city&gt; use each standard, but also these standards are either the fundamental building blocks of &lt;st1:city st="on"&gt;Ajax&lt;/st1:city&gt; or may be used in exciting ways with &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:city&gt;&lt;/st1:place&gt; web applications.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;div style="border: 1pt solid windowtext; padding: 1pt 4pt;"&gt;  &lt;p class="MsoPlainText" style="border: medium none ; padding: 0in;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XHTML (Extensible HyperText MarkUp Language)&lt;span style=""&gt;                                            &lt;/span&gt;W3C Standard&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XHTML --&gt; HTML 4.0.1 as XML&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Versions:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XHTML 1.0: January 26, 2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XHTML 1.1: May 31, 2001&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XHTML 1.2: August 1, 2002: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in;"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Module-based XHTML Recommendation: You could add other modules or components to create a new document type without breaking standards compliance (though it would break XHTML compliance)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.75in; text-indent: 0in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XHTML 2.0: &lt;st1:street st="on"&gt;&lt;st1:address st="on"&gt;Working Dr&lt;/st1:address&gt;&lt;/st1:street&gt;aft&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;HTML forms --&gt; XForms &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;HTML frames --&gt; XFrames, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;DOM Events --&gt; XML Events&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in;"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Development taking advantage of this recommendation will most likely be geared toward more specialized audiences that have the ability to view such applications, and not the general public &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Why not widely adopted?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;"if it ain't broke, don't fix it" mentality &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;people just do not see the benefits of XML, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;no budget to change sites that already exist and function adequately. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;All deprecated features of HTML (presentation elements, framesets, etc.) were also removed completely Slow Adoption: People wondering how to do things without using frames and using CSS.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;No backward-compatiblity with previous versions of XHTML 1.0 and HTML. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.75in;"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Potentials of XHTML&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Development of new applications on the Web, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Use of those applications on different platforms such as mobile and wireless devices&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;More information at &lt;a href="http://www.w3.org/MarkUp/"&gt;http://www.w3.org/MarkUp/&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Web Hypertext Application Technology Working Group (WHATWG) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Formed on June 4, 2004. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Mission&lt;/span&gt;&lt;/st1:place&gt;&lt;/st1:city&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;: To develop specifications based on HTML and related technologies to ease the deployment of interoperable Web Applications, with the intention of submitting the results to a standards organization."&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Vision: Creating a single development environment on which web applications are built. Publishing technical specifications intended for implementation in what it calls "mass-market web browsers" such as Safari, Mozilla, and Opera.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Together with W3C working on HTML 5 (Currently draft). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;HTML 5 abandons the strictness of XML that XHTML had adopted, and Focuses on adding new features to HTML itself. Added elements include nav, article, aside, section, header, footer, mark, time, meter, progress, figure, dialog, datagrid, details, menu, command, and more.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt solid windowtext; padding: 1pt 4pt;"&gt;  &lt;p class="MsoPlainText" style="border: medium none ; padding: 0in;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;JavaScript&lt;span style=""&gt;                                    &lt;/span&gt;&lt;span style=""&gt;                                                                             &lt;/span&gt;ECMA Standard&lt;span style=""&gt;                                        &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Netscape Communications Corporation's implementation of ECMAScript &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Now a registered trademark of Sun Microsystems, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Microsoft’s implementation ECMA standard is JScript. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Not to do with incompatibilities among web browsers which are actually due to differences in DOM implementation rather than JavaScript or its subset, ECMAScript.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Versions:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Initial: December, 1995&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;JavaScript 1.5 &lt;-- ECMA-262 Edition 3 standard. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;JavaScript is 1.7: Latest version as of 2007&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;§&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;New features: Array extras, String generics, and extensions such as pop( ), push( ), shift( ), and unshift( ).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;JavaScript technically does not comply with ECMA International standards. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Mozilla -JavaScript (closer to standards)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Internet Explorer -JScript, and &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Opera and Safari - other ECMAScript implementations&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;More information at &lt;span style=""&gt; &lt;/span&gt;&lt;a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm"&gt;http://www.ecma-international.org/publications/standards/Ecma-262.htm&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt solid windowtext; padding: 1pt 4pt;"&gt;  &lt;p class="MsoPlainText" style="border: medium none ; padding: 0in;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Document Object Model (DOM)&lt;span style=""&gt;                             &lt;/span&gt;&lt;span style=""&gt;                                                &lt;/span&gt;W3C Standard&lt;span style=""&gt;                    &lt;/span&gt;&lt;span style=""&gt;                      &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Levels:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Level 1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Level 2: Introduced modules to the specification: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;§&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;November 13, 2000: The Core, View, Events, Style, and Traversal and Range &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;§&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;January 9, 2003: HTML module&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Level 3: Greater functionality to work with XML--&gt;Move towards AJAXThe &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;§&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;December 15, 2003: Validation module&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;§&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;April 7, 2004: Core and Load and Save modules&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;§&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Not all of the modules for DOM Level 3 have become recommendations yet, and because of that they bear watching. Following are working group notes:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Abstract Schemas : since July 25, 2002; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Events: November 7, 2003 (though it was updated April 13, 2006); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XPath:&lt;span style=""&gt;  &lt;/span&gt;since February 24, 2004; and &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Requirements and Views and Formatting: since February 26, 2004. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.75in;"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;More Information at &lt;a href="http://www.w3.org/DOM/DOMTR"&gt;http://www.w3.org/DOM/DOMTR&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt solid windowtext; padding: 1pt 4pt;"&gt;  &lt;p class="MsoPlainText" style="border: medium none ; padding: 0in;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Cascading Style Sheets (CSS)&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style=""&gt;                                                          &lt;/span&gt;W3C Standard&lt;span style=""&gt;                                              &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Versions:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;May 12, 1998: "Cascading Style Sheets Level 2 (CSS2) Recommendation" &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.25in;"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Most modern browsers support most of the CSS2 specifications, though there are some issues with full browser support. However, all modern browsers should fully support.CSS1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;August 2, 2002: CSS2.1. Working snapshot of the current CSS support in web browsers than an actual recommendation. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.25in;"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Browsers are working toward full implementation of the CSS2.1 standard mainly so that when the newer Cascading Style Sheets Level 3 (CSS3) finally becomes a recommendation they will not be as far behind the times. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;CSS3 has been under development since 2000: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Idea of modularity with its design. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Defines the styles needed for better control of paged media, positioning, and generated content, plus support for Scalable Vector Graphics (SVG) and Ruby--&gt; Moving towards &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;AJAX&lt;/st1:place&gt;&lt;/st1:city&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.75in;"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;More information at &lt;a href="http://www.w3.org/Style/CSS/"&gt;http://www.w3.org/Style/CSS/&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt solid windowtext; padding: 1pt 4pt;"&gt;  &lt;p class="MsoPlainText" style="border: medium none ; padding: 0in;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;eXtensible Markup Language (XML)&lt;span style=""&gt;                                                                     &lt;/span&gt;W3C Standard&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;General language for describing different kinds of data&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;One of the main data transportation agents used on the Web. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Versions:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XML 1.0: February 10, 1998, October 6, 2000, February 4, 2004. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XML 1.1: February 4, 2004&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Gave consistency in character representations and relaxed names, allowable characters, and end-of-line representations. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Why XML?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;It is self-documenting, meaning that the structure itself defines and describes the data within it. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Because it is plain text, there are no restrictions on its use, an important point for the free and open Web. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Both humans and machines can read it without altering the original structure and data. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XML may not be the transportation mode of choice for many applications, but it may still be the foundation for the data that is being used in those applications by way of syndication feeds.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.25in;"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.25in;"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;More information at: &lt;a href="http://www.w3.org/XML/"&gt;http://www.w3.org/XML/&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.25in;"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.25in;"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt solid windowtext; padding: 1pt 4pt;"&gt;  &lt;p class="MsoPlainText" style="border: medium none ; padding: 0in;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Syndication&lt;span style=""&gt;                               &lt;/span&gt;RDF-W3C Standard&lt;span style=""&gt;                                   &lt;/span&gt;Atom-IETF Standard&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Syndication:&lt;span style=""&gt;  &lt;/span&gt;Sections of a web site are made available for other sites to use, most often using XML as the transport agent. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Sources of Feed: News, weather, and blog web sites,… no limitation &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Evolution: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;1995: R. V. Guha (Apple Inc) created a system called Meta Content Framework (MCF) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;1997: Microsoft released its own format, called Channel Definition Format (CDF)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;1999: RDF-SPF 0.9 (renamed to RSS 0.9) --&gt;syndication feeds began to take off.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Two Types:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;RSS&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;§&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Family of standards, all using XML for their base structure&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;§&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;RDF, the basis of RSS 1.0, is a W3C standard &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;§&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Versions:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;RDF Site Summary (RSS 0.9 and 1.0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Rich Site Summary (RSS 0.91 and 1.0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Really Simple Syndication (RSS 2.0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;§&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Each syndication format is different from the next, especially RSS 1.0. (This version is more modular than the others, but also more complex.) Most RSS processors can handle all of them, but mixing pieces from different formats may confuse even the most flexible processors.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Atom&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;§&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Syndication specification&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;§&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Evolution: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Different versions of RSS and resulting issues and confusion led to Atom 1.0 in July 2005, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;RFC 4287: December 2005. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;§&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Differences between Atom 1.0 and RSS 2.0:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Unlike RSS 2.0, Atom 1.0 is within an XML namespace &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Unlike RSS 2.0, Atom 1.0 has a registered MIME type RSS 2.0 often sent as application/rss+xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Unlike RSS 2.0, Atom 1.0 includes an XML schema, and undergoes standardization. RSS 2.0 cannot it be modified due to its copyright.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 2in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;More information at &lt;a href="http://tools.ietf.org/html/4287"&gt;http://tools.ietf.org/html/4287&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt solid windowtext; padding: 1pt 4pt;"&gt;  &lt;p class="MsoPlainText" style="border: medium none ; padding: 0in;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XSLT&lt;span style=""&gt;                                                                                                                          &lt;/span&gt;W3C Standard&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XML-based language used to transform, or format, XML documents. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Versions:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XSLT 1.0 : November 16, 1999As of &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XSLT version 2.0:&lt;span style=""&gt;  &lt;/span&gt;January 23, 2007. Introduced XPath 2.0. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:11;"&gt;&lt;span style=""&gt;o&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Most browsers currently support only XSLT 1.0 and XPath 1.0.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XSLT uses XPath to identify subsets of the XML document tree and to perform calculations on queries&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Wingdings;font-size:11;"  &gt;&lt;span style=""&gt;Ø&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;XSLT takes an XML document and creates a new document with all of the transformations, leaving the original XML document intact. In &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:city&gt;&lt;/st1:place&gt; contexts, the transformation usually produces XHTML with CSS linked to it so that the user can view the data in his browser.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.25in;"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;More information at &lt;a href="http://www.w3.org/Style/XSL/"&gt;http://www.w3.org/Style/XSL/&lt;/a&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.25in;"&gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-3387871586009649401?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/3387871586009649401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=3387871586009649401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/3387871586009649401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/3387871586009649401'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/06/modern-web-standards.html' title='Modern Web Standards'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-5738375925912045467</id><published>2008-05-29T17:03:00.002+05:30</published><updated>2008-06-10T13:28:18.610+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><title type='text'>Comparing PHP with J2EE</title><content type='html'>While attending a course on Advanced Java, I thought I can do all these things with PHP as well. Then by go for such a heavy weight option like J2EE.&lt;br /&gt;I search on net revealed the real differences. I will give a detailed description later. As of now, we can note that J2EE offers features like transaction management, database connection pooling etc. which are not present in PHP. PHP is lightweight, easy to learn, and gives good performance only for small and mid size applications. For large applications, its J2EE that rules.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-5738375925912045467?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/5738375925912045467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=5738375925912045467' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/5738375925912045467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/5738375925912045467'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/05/comparing-php-with-j2ee.html' title='Comparing PHP with J2EE'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-5333560255555888312</id><published>2008-05-29T16:39:00.001+05:30</published><updated>2008-06-10T13:28:51.469+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java/J2EE'/><title type='text'>Notes on Servlets</title><content type='html'>I have prepared notes on Servlets from sources like J2EE unleashed by Paul Allen, CodeNotes for J2EE by Grigory Brill, and website javapassion.&lt;br /&gt;You can download these notes fro:&lt;br /&gt;&lt;a href="http://zainvi.sf.googlepages.com/servlets.pdf"&gt;Notes on Servlets&lt;/a&gt;&lt;br /&gt;I am planning to add more notes on J2EE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-5333560255555888312?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/5333560255555888312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=5333560255555888312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/5333560255555888312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/5333560255555888312'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/05/notes-on-servlets.html' title='Notes on Servlets'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2000632512313948863.post-897485891752408663</id><published>2008-05-28T09:31:00.001+05:30</published><updated>2008-06-10T13:29:27.476+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='API'/><title type='text'>How to Create and Kill Processes Using Win32 API</title><content type='html'>&lt;div style="border: 1pt solid windowtext; padding: 1pt 4pt;"&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0in;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;Creating A Process&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;A process can be created using CreateProcess function of Win32 API. The prototype of this function is:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;span style=""&gt;BOOL CreateProcess&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;span style=""&gt;(LPCTSTR lpszImageName, // path of executable file&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;span style=""&gt;LPTSTR lpszCommandLine, // command line&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;span style=""&gt;LPSECURITY_ATTRIBUTES lpsaProcess, // process security attributes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;span style=""&gt;LPSECURITY_ATTRIBUTES lpsaThread, // thread security attributes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;span style=""&gt;BOOL fInheritHandles, // does new process inherit handles&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;span style=""&gt;DWORD fdwCreate, // process creation flags&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;span style=""&gt;LPVOID lpvEnvironment, // environment block for new process&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;span style=""&gt;LPCTSTR lpszCurDir, // current folder for new process&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;span style=""&gt;LPSTARTUPINFO lpsiStartInfo, // specifies window features&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;span style=""&gt;LPPROCESS_INFORMATION lppiProcInfo); // new process information&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;To create a process, you can simply pass the name of the process leaving the other parameters to take the default value NULL except the ninth and tenth parameter. Ninth parameter is the address of the structure STARTUPINFO that you need to fill before calling CreateProcess and contains information required to run the process. Tenth parameter is the address of the uninitialized structure PROCESS_INFORMATION which receives the information about the newly created process.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;STARTUPINFO structure must be initialized to 0 to avoid process crash due to corrupted data. This initialization can be done using either of the following function calls:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre&gt;&lt;b style=""&gt;&lt;span style="font-size:9;"&gt;memset(&amp;amp;StartupInfo, 0, sizeof(StartupInfo));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b style=""&gt;&lt;span style="font-size:9;"&gt;::ZeroMemory(&amp;amp;StartupInfo, sizeof(StartupInfo));&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;i style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;Of the several fields in STARTUPINFO, field ‘cb’ must be set to the size of the STARTUPINFO structure.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;Following call will launch the notepad with readme.txt file opened in it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=""&gt;STARTUPINFO StartupInfo;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=""&gt;PROCESS_INFORMATION ProcInfo;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=""&gt;memset (&amp;amp;StartupInfo, 0, sizeof (STARTUPINFO));&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=""&gt;StartupInfo.cb = sizeof (STARTUPINFO); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=""&gt;::CreateProcess ("notepad.exe", _T("readme.txt"),NULL,NULL,FALSE,0,NULL,NULL, &amp;amp;StartupInfo, &amp;amp;ProcInfo);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;If application path is not in your PATH environment variable then you need to specify to append the complete path to the application name, e.g. “C:\\Windows\\System32\\notepad.exe”. Note the use of double back-slash in the path string.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt solid windowtext; padding: 1pt 4pt;"&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0in;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;Running A Console Application Silently&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;To run a console application without starting the associated command prompt, you need to set following two fields of&lt;span style=""&gt;  &lt;/span&gt;STARTUPINFO before calling the CreateProcess function.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre&gt;&lt;b style=""&gt;&lt;span style="font-size:9;"&gt;StartupInfo.dwFlags = STARTF_USESHOWWINDOW;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b style=""&gt;&lt;span style="font-size:9;"&gt;StartupInfo.wShowWindow = SW_HIDE;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;Both these fields are of DWORD type. The first field dwFlags informs the application that we are setting window display information while second field wShowWindow sets the window to hide.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt solid windowtext; padding: 1pt 4pt;"&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0in;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;Killing A Process&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;The Win32 API function used to kill a process is:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;span style=""&gt;BOOL TerminateProcess(HANDLE hProcess, UINT fuExitCode);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;Before we can call this function, we require handle to the process. This is done using OpenProcess function and passing process id as contained in the PROCESS_INFORMATION structure returned by CreateProcess function call. Process id can be retrieved using other means also.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre&gt;&lt;b style=""&gt;&lt;span style="font-size:9;"&gt;HANDLE hHandle;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=""&gt;hHandle = ::OpenProcess(PROCESS_ALL_ACCESS,0,ProcInfo.dwProcessId ); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;It is better to check the ExitCode returned by the child process.&lt;span style=""&gt;  &lt;/span&gt;Following function does this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=""&gt;DWORD dwExitCode = 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=""&gt;::GetExitCodeProcess(hHandle,&amp;amp;dwExitCode);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;The process is finally killed by TerminateProcess function as follows:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=""&gt;If(dwExitCode == STILL_ACTIVE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;b style=""&gt;&lt;span style=""&gt;::TerminateProcess(hHandle,dwExitCode);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt solid windowtext; padding: 1pt 4pt;"&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0in;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;Related Win32 API Functions&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;To wait until the child process has exited.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre&gt;&lt;b style=""&gt;&lt;span style="font-size:9;"&gt;::&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size:9;"&gt;WaitForSingleObject(ProcInfo.hProcess, INFINITE);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;To change the process priority&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;span style=""&gt;::SetPriorityClass &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;To release the handles in ProcInfo. These functions will not terminate the process itself.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre&gt;&lt;b style=""&gt;&lt;span style="font-size:9;"&gt;CloseHandle(ProcInfo.hThread); and CloseHandle(ProcInfo.hProcess);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt solid windowtext; padding: 1pt 4pt;"&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0in;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;End Notes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;Besides Win32 API functions, following functions can also be used for creating and killing the processes:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;o&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;System()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;o&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;WinExec()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;o&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;ShellExecute()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;o&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;PostMessage (WM_CLOSE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;But CreateProcess is the most powerful one.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt solid windowtext; padding: 1pt 4pt;"&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0in;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;References&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:11;"  &gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;Code Project Website&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;ul&gt;&lt;li&gt;Books&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;o&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;Mastering Visual C++ 6&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;, &lt;/span&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;Michael J. Young&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;, &lt;/span&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;Sybex, Inc.&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;, &lt;/span&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;ISBN: 0782122736&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;o&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;Programming Appli&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;cations for Microsoft Windows, Jeffrey Richter,&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;ISBN 1-57231-996-8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h1&gt;&lt;span style=";font-family:Arial;font-size:9;"  &gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2000632512313948863-897485891752408663?l=computer-science-notes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://computer-science-notes.blogspot.com/feeds/897485891752408663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2000632512313948863&amp;postID=897485891752408663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/897485891752408663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2000632512313948863/posts/default/897485891752408663'/><link rel='alternate' type='text/html' href='http://computer-science-notes.blogspot.com/2008/05/how-to-create-and-kill-processes-using.html' title='How to Create and Kill Processes Using Win32 API'/><author><name>Zens</name><uri>http://www.blogger.com/profile/10316908809263926575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
