Wednesday, September 29, 2010

CSS 3... The New Generation of CSS...


Cascading Style Sheets (CSS) is a style sheet format, endorsed by the World Wide Web Consortium (W3C) that works with HTML documents using simple syntax and various style properties denoted by English language keywords.

CSS3 offers a huge variety of new ways to create an impact with your designs, with quite a few important changes. This first tutorial will give you a very basic introduction to the new possibilities created by the standard.

CSS1 (Version 1.0) incorporated innumerable layout settings suitable for downloadable HTML pages. CSS2 (Version 2.0) provides additional XML support, downloadable fonts and audio presentations for visually impaired users. CSS3 (Version 3.0) continues in development and its improved highlights include: vertical text, extensive backgrounds and borders, speech recognition and user interaction.

CSS3 promises to include some very cool features that will make styling much easier for advanced layouts. Unfortunately, there is only some browser support for some of these features at the time of this post. I’ve seen some support for these in Firefox, so you can at least begin to play around with some of the features. However, I would hold off on using these exclusively for your layouts until there is more cross browser support.







The biggest change that is currently planned with CSS level 3 is the introduction of modules. The advantage to modules is that it (supposedly) allows the specification to be completed and approved more quickly, because segments are completed and approved in chunks. This also allows browser and user-agent manufacturers to support sections of the specification but keep their code bloat to a minimum by only supporting those modules that make sense. For example, a text reader wouldn’t need to include modules that only define how an element is going to display visually. But even if it only included the aural modules, it would still be a standards complaint CSS 3 tool.



Backgrounds and Borders 

border-radius -- allows for rounded borders
border-break -- can close the border of a box that has been stopped at a break point (page break, column break, line break)
border-image -- instead of using a border style, it sets an image as the border
box-shadow -- adds a shadow to an element

Multi-column Layout 

The multi-column layout adds a new kind of container -- column box. The content of multi-column elements flows from column to column. The column box is encapsulated within the main div container of the content.

Advanced Layout

The goal is to keep the content and the layout order separate. The module attempts to simplify laying out elements on complex Web pages and forms. Two methods proposed are Template Based Positioning and Tabbed Displays. Template Based Positioning lets you create a grid layout and place elements within slots on the grid. The Tabbed Display method piles up elements like tabbed cards, displaying only one at a time. 

Grid Positioning

·         Explicit grid -- generated with grid-columns and grid-rows
·         Natural grid -- generated automatically, for instance multi-column elements -- the edges on both sides of the column make grid lines
·         Default grid -- elements that do not fit into the two grid categories above are regarded as having a single-cell grid
Selectors

·         E:only-of-type -- refers to an element which is the only sibling of its type
·         E:not(s) -- selects any element that doesn't match the simple selector s
·         E ~ F -- selects an F element that comes after an E element
·         E:nth-child(n) -- selects an element which is the nth child of its parent element
·         E:nth-last-child(n) -- same as the previous selector, but counting from the last one
·         E:nth-of-type(n) -- selects an element which is the nth sibling of its type

Media Queries

The aim is to extend the functionality of media types by adding expressions. Some of the media features that can be used in these expressions are width, height and colour. This allows pages to be customised for different devices without changing the content. 

CSS Marquee


Marquee contains the properties that control the speed and direction of the “marquee” effect. Marquees are a scrolling mechanism that needs no user intervention: overflowing content moves into and out of view by itself. Marquee is mostly used on mobile phones. 

User Interface

·         Box-Sizing- let’s you change the behavior of the browser in calculating the width of an element.
·         Resize- It allows you to specify if a box is resizable.
·         Outline- allows the offset to be rendered away from the edge of the specified element.

Speech


CSS2 added support for the Aural media type which is used for “styling” speech synthesis in aural user agents (e.g. screen readers). The specification added several properties to this new media type. The current Working Draft of CSS2.1 reserves media="speech", but explicitly does not define which properties apply to it. Also, the aural media type has been deprecated. The CSS 3 Speech module removes some of the old properties and adds new ones. All of them are now assigned to the speech media type.

Ruby

CSS will now support the ability to add small annotations on top or next to words, most often used in Chinese and Japanese. They are generally used to give the pronunciation or meaning of difficult ideograms.

Hopefully, in a mainly positive way CSS3 will obviously be completely backwards compatible, so it won’t be necessary to change existing designs to ensure they work – web browsers will always continue to support CSS2. The main impact will be the ability to use new selectors and properties which are available. These will allow you to both achieve new design features (animation or gradients for instance), and achieve current design features in a much easier way (e.g. using columns). Once it's fully adopted as a standard and Web browsers and user-agents begin using it, CSS 3 will be a powerful tool for Web designers. The new features listed above are only a small sub-set of all the additions and changes to the specification.















Tuesday, September 28, 2010

HTML 5... 5th major revision of the Hypertext Markup Language...

HTML was developed by the W3C until 2004, when members of the HTML working group grew disturbed with the direction the W3C was going with HTML. They felt that the W3C was not paying enough attention to the real world development needs of the language and focusing too much on XML and XHTML. So they formed a new group called WHATWG (Web Hypertext Application Technology Working Group) devoted to evolving the web. They started by working on a new specification of HTML - HTML 5.

HTML 5 will allow the web browser to become a development platform. A primary goal for HTML 5 is to ensure interoperability among browsers so that Web applications and documents behave the same way no matter which HTML 5 complaint browser is used to access them.

HTML5 is a W3C specification that defines the fifth major revision of the Hypertext Markup Language (HTML). One of the major changes in HTML5 is in respect to how HTML addresses Web applications. Other new features in HTML5 include specific functions for embedding graphics, audio, video, and interactive documents.  New elements also allow you to define sections of your Web page using new tags such as < article > which defines an article, < nav > which defines navigation links, < source > which defines media resources, and many others. For example, the navigation section of your page would be enclosed in the < nav > tags.





HTML 5 is expected to offer numerous improvements over HTML 4, including:

  • New parsing rules for enhanced flexibility
  • New attributes
  • Elimination of outmoded or redundant attributes
  • Immediate-mode drawing
  • Drag and drop
  • Back button management
  • Timed media playback
  • Offline editing
  • Messaging enhancements
  • Detailed rules for parsing
  • MIME and protocol handler registration
  • Numerous APIs
  • Ability for visitors to edit sections of web pages.
  • Offline data storage.


HTML 4 has been tweaked, prolonged and increased beyond its initial scope to bring high levels of interactivity and multimedia to Web sites. Plug-in like Flash, Silverlight and Java have added media integration to the Web, but not without some cost. In search of a "better user experience" and battery life, Apple has simply dropped support for some of these plug-in entirely on mobile devices, leaving much of the media-heavy Internet inaccessible on iPads and iPhones. HTML5 adds many new features, and streamlines functionality in order to render these processor-intensive add-ons unnecessary for many common functions. 

An HTML5 (text/html) browser will be flexible in handling incorrect syntax. HTML5 is designed so that old browsers can safely ignore new HTML5 constructs. In contrast to HTML 4.01, the HTML5 specification gives detailed rules for lexing and parsing, with the intent that different compliant browsers will produce the same result in the case of incorrect syntax. Although HTML5 now defines a consistent behavior for "tag soup" documents, those documents are not regarded as conforming to the HTML5 standard.

Currently, the Web Hypertext Application Technology Working Group estimates the end of 2010. HTML5 will of course be backwards compatible with HTML4 and all web pages are expected to work as normal. HTML5 integration will not happen overnight. Browsers are expected to be ready to handle it upon its release, and some intrepid developers have already started bulking up their HTML code with HTML5 codes that don’t affect anything currently visible to the user.

Overall HTML5 is definitely going be the future of web design, but as of now we need to wait for the full functionality of HTML and we hope soon popular web browsers like Mozilla and IE will provide full support for HTML5.

Friday, September 24, 2010

Robotics....... Welcome to the Future.....

In the year 1206 AD, Al-Jazari completed a book entitled The Book of Knowledge of Ingenious Mechanical Devices, or Kitáb fí ma'rifat al-hiyal al-handasiyya. Al-Jazari, a Muslim engineer, provided schematic information and detailed drawings of various types of automated machines, including early robots, or automatons.

There is no definitive way to conclude whether Al-Jazari actually invented all of the devices in his book, but the descriptive documentation of the automated devices used at that time is valuable, regardless of the source. Some of the robotics technology achievements used by Al-Jazari were not replicated until 300 years later, with the inventions of Leonardo DaVinci (e.g. Programmable Musical Boat).
Robotics technology is opening up new possibilities for automating tasks and enriching the lives of humans. Engineers develop man-made mechanical devices that can move by themselves, whose motion must be modeled, planned, sensed, activated and controlled, and whose motion behaviour can be influenced by “programming”.

The word 'robot' was coined by the Czech playwright Karel Capek (pronounced "chop'ek") from the Czech word for forced labor or serf. Capek was reportedly several times a candidate for the Nobel prize for his works and very influential and productive as a writer and dramatist. Mercifully, he died before the Gestapo got to him for his anti-Nazi sympathies in 1938.

The Robotic Industries Association defines robot as follows: "A robot is a reprogrammable, multifunctional manipulator designed to move material, parts, tools or specialized devices through variable programmed motions for the performance of a variety of tasks."

The structure of a robot is usually mostly mechanical and can be called a kinematic chain (its functionality being similar to the skeleton of the human body). The chain is formed of links (its bones), actuators (its muscles), and joints which can allow one or more degrees of freedom. Most contemporary robots use open serial chains in which each link connects the one before to the one after it. These robots are called serial robots (-WikiPedia).

Robots can be divided into three main categories:

  • Industrial Robots - These robots are dedicated to performing repetitive manufacturing tasks that are often unsafe or unpleasant for human workers. They are designed to repeat the same process over and over without change. Modern industrial robots can easily be programmed to perform new applications.

  • Research / Service Robots - These robots are designed to assist in exploring and gathering data. They are often used in space applications, surgeries, and household chores. They are designed to not only interact with the environment, but react appropriately, thus thinking up the term "Artificial Intelligence."

  • Educational Robots - These robots are sometimes considered toys or kits and are designed to provide an educational experience. Educational robots are used in competitions and for learning experience. They often have the ability to replicate learned behavior.

Robots will soon be everywhere, in our home and at work. They will change the way we live. In science fiction, robots become so intelligent that they decide to take over the world because humans are deemed inferior. In real life, however, they might not choose to do that. Robots might follow rules such as Asimov’s Three Laws of Robotics that will prevent them from doing so. When it comes to robots, reality still wraps science fiction. But, just because robots have not fulfill their promise in past does not mean that they will not arrive further. Indeed, the convergence of several advanced technologies is bringing the age of robotics ever nearer - smaller, cheaper, more practical and cost-effective.  One would assume that the robots of the future would become closer and closer to the decision-making ability of humans and also more independent.

Structured Evolutionary Prototyping Model...

Software prototyping refers to the activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed. It is an activity that occurs during certain software development and is comparable to prototyping as known from other fields, such as mechanical engineering or manufacturing.

Software developments that are relatively easy to prototype almost always involve human-machine interaction and/or heavy computer graphics. Other applications that are sometimes amenable to prototyping are certain classes of mathematical algorithms, subset of command driven systems and other applications where results can be easily examined without real time interaction. Applications that are difficult to prototype include control and process control systems.


Features

  • Developers build a prototype during the requirements phase
  • Prototype is evaluated by end users
  • Users give corrective feedback
  • Developers further refine the prototype
  • When the user is satisfied, the prototype code is brought up to the standards needed for a final product.

Dimensions of prototypes

1.    Horizontal Prototype


A common term for a user interface prototype is the horizontal prototype. It provides a broad view of an entire system or subsystem, focusing on user interaction more than low-level system functionality, such as database access. Horizontal prototypes are useful for:

  • Confirmation of user interface requirements and system scope
  • Demonstration version of the system to obtain buy-in from the business
  • Develop preliminary estimates of development time, cost and effort.

  1. Vertical Prototype

vertical prototype is a more complete elaboration of a single subsystem or function. It is useful for obtaining detailed requirements for a given function, with the following benefits:

  • Refinement database design
  • Obtain information on data volumes and system interface needs, for network sizing a performance engineering
  • Clarifies complex requirements by drilling down to actual system functionality


Steps

  • A preliminary project plan is developed
  • An partial high-level paper model is created
  • The model is source for a partial requirements specification
  • A prototype is built with basic and critical attributes
  • The designer builds
–the database
–user interface
–algorithmic functions
  • The designer demonstrates the prototype; the user evaluates for problems and suggests improve
  • This loop continues until the user is satisfied.

Strengths

  • Customers can “see” the system requirements as they are being gathered
  • Developers learn from customers
  • A more accurate end product
  • Unexpected requirements accommodated
  • Steady, visible signs of progress produced
  • Interaction with the prototype stimulates awareness of additional needed functionality.

Weaknesses

  • Tendency to abandon structured program development for “code-and-fix” development
  • Bad reputation for “quick-and-dirty” methods
  • Overall maintainability may be overlooked
  • The customer may want the prototype delivered
  • Process may continue forever (scope creep)

When to use Structured Evolutionary Prototyping

  • Requirements are unstable or have to be clarified
  • As the requirements clarification stage of a waterfall model
  • Develop user interfaces
  • Short-lived demonstrations
  • New, original development
  • With the analysis and design portions of object-oriented development