Saturday, November 13, 2010

Dot Net For Beginners Part 1

For the Beginners:
If you are a Beginner with Dot Net then this will help you a lot. First I would like to deal with few basic concepts regarding Dot Net.
At first Dot Net is a platform that is provided by Microsoft for the Networking based application. There is a lot of issues regarding two major software development platform i.e., java and dot net that is, which one is the better one, It’s a discussion topic, but I would like to put forward two important point regarding both of them.

·         Dot Net Being Platform dependent support multiple language environments to work on it.
·         Java being platform independent but supports only one language for development work.

Those who are new to the programming world; they have a great confusion on what programming language they should use for programming or which programming language has a better scope.
This question will be placed before those who belong to the programming world, many times. And the best answer to this question according to me is that both of them or any many other programming languages has their own advantages and disadvantages, it’s up to you, that which programming language you chooses and how sincerely you try to use the most of the features of the programming language you are using.

As I am Using Dot net so I try my best to get familiar with most and the latest offerings in the field of Dot Net.

Coming to the topic of this article will, the Dot Net can be used for basically eight types of application.

1.    ASP.NET Web applications: These include dynamic and data driven browser based applications.
2.    Windows Form based applications: These refer to traditional rich client applications.
3.    Console applications: These refer to traditional DOS kind of applications like batch scripts.
4.    Component Libraries: This refers to components that typically encapsulate some business logic.
5.    Windows Custom Controls: As with traditional ActiveX controls, you can develop your own windows controls.
6.    Web Custom Controls: The concept of custom controls can be extended to web applications allowing code reuse and modularization.
7.    Web services: They are “web callable” functionality available via industry standards like HTTP, XML and SOAP.
  1. Windows Services: They refer to applications that run as services in the background. They can be configured to start automatically when the system boots up.

Now, you can develop such varied types of applications. That’s fine. But how? As with most of the programming languages, .NET has a complete Software Development Kit (SDK) - more commonly referred to as .NET Framework SDK – that provides classes, interfaces and language compilers necessary to program for .NET. Additionally it contains excellent documentation and Quick Start tutorials that help you learn .NET technologies with ease. Good news is that - .NET Framework SDK is available FREE of cost. You can download it from the MSDN web site. This means that if you have machine with .NET Framework installed and a text editor such as Notepad then you can start developing for .NET right now!

If you are developing applications that require speedy delivery to your customers and features like integration with some version control software then simple Notepad may not serve your purpose. In such cases you require some Integrated Development Environment (IDE) that allows for Rapid Action Development (RAD). The new Visual Studio.NET is such an IDE. VS.NET is a powerful and flexible IDE that makes developing .NET applications a breeze. Some of the features of VS.NET that make you more productive are:
-      Drag and Drop design(4th generation technology)
-      IntelliSense features
-      Syntax highlighting and auto-syntax checking
-      Excellent debugging tools
-      Integration with version control software such as Visual Source Safe (VSS)
-      Easy project management
Note that when you install Visual Studio.NET, .NET Framework is automatically installed on the machine.


Visual Studio.NET Editions

-      Professional: Developers can use Professional edition to build Internet and Develop applications quickly and create solutions that span any device and integrate with any platform.
-      Enterprise Developer: Professional plus a collaborative team development, Third party tool integration for building XML Web services and built-in project templates with architectural guidelines and spanning comprehensive project life-cycle.
-      Enterprise Architect: Enterprise Developer plus includes capabilities for designing, specifying, and communicating application architecture and functionality. The additional features include Visual designer for XML Web services, Unified Modelling Language (UML) support and enterprise templates for development guidelines and policies.
Features of .NET

-      Rich Functionality out of the box:
-      Easy development of web applications:
-      OOPs Support:
-      Multi-Language Support:
-      Multi-Device Support:
-      Automatic memory management:
-      Compatibility with COM and COM+:
-      No more DLL Hell:
-      Strong XML support:
-      Ease of deployment and configuration:
-      Security:


Installing the .NET Framework SDK

Hardware Requirements:

In order to install .NET framework SDK following hardware is required:
-      Computer/Processor: Intel Pentium class, 133 megahertz (MHz) or higher
-      Minimum RAM Requirements: 128 megabytes (MB) (256 MB or higher recommended). 
-      Hard Disk:
·         Hard disk space required to install: 600 MB
·         Hard disk space required: 370 MB
·         Hard disk 80GB recommended for VS.Net
-      Display: Video: 800x600, 256 colours.
-      Input Device: Microsoft mouse or compatible pointing device


Software Requirements
-      Microsoft Internet Explorer 5.01 or later is required
-      Microsoft Data Access Components 2.6 is also required (Microsoft Data Access Components 2.7 is recommended).
-      Operating System:
·         Microsoft Windows® 2000, with the latest Windows service pack and
critical updates available from the Microsoft Security Web page.
·         Microsoft Windows XP – (Microsoft Windows XP Professional if you
want to run ASP.NET).
·         Microsoft Windows NT® 4.0.

Programming Architecture:

Why is the Need for Tier Architecture?

Factoring an application into logical parts is useful. Breaking a large piece of software into smaller pieces can make it easier to build, easier to reuse and easier to modify. It can also be helpful in accommodating different technologies or different business organizations.

1-Tier Architecture:


2-Tier Architecture:

Two logical tiers, presentation services and data services. The presentation services of a two-tiered application are responsible for gathering information from the user, interacting with the data services to perform the application's business operations, and presenting the results of those operations to the user. The Presentation services are also called the presentation layer because it presents information to the user.
Things you might find in a presentation layer include a Web browser, a terminal, a custom-designed GUI, or even a character-based user interface.

3-Tier Architecture:


 



In a three-tiered application, the presentation services are responsible for gathering information from the user, sending the user information to the business services for processing, receiving the results of the business services processing, and presenting those results to the user. The most popular architecture on the web currently, mostly taking the form of web browser processing client side presentation in the form of HTML/DHTML, etc, the web server using some scripting language (ASP) and the database server (SQL Server for example) serving up the data.

Take a look at the differences among these three.


1-Tier
2-Tier
Multi-Tier
Benefits
Very simple
Inexpensive
No server needed
Good security
More scalable
Faster execution
Exceptional security
Fastest execution
“Thin” client
Very scalable
Issues
Poor security
Multi user issues
More costly
More complex
“Thick” client
Very costly
Very complex
Users
Usually 1 (or a few)
2-100
50-2000 (+)




......to be continued.

Wednesday, November 10, 2010

Sixth Sense

      Sixth Sense Technology:

“Invent is an attempt to make programming more like thinking”

Invent= Imagine + Explore + Learn


Fig 1: Six Senses

Human have basic five senses that constitutes of Sight for vision, Sound for communication, Smell for fragrance, Taste for sweet and sour and Touch. As a child is born it does not develop all its senses from the birth but most of them are developed during a human life cycle. Millions of years have been evolved to sense the world. As According to human nature when we see someone, something, someplace our five senses perceive the information and helps in making our decision.  Most of the time the useful information perceived by our five sense doesn’t help us making the correct decisions. Being human we have a limitation while considering the data, Information and Knowledge that is available online. But the miniaturization of computing device and the availability of internet everywhere as made those data available everywhere this data has though limitation that they are limited to paper or mobile phone or digital screen. There is no interaction of those data confined on the digital screen with our physical world. Consider a Example if we meet some distant relative of our and we can recognize his/her personal or professional information in that very case we have to take our mobile or the digital screen and we have to Google about him our search about him in the data record where ever we store it.
There is no link between that digital information and our interaction with the physical world.

6th sense bridges this gapes. Bringing intangible (not able to perceived by touch) digital information available in an informative and represent able way to the physical world which is tangible and allow us to interact with those information using our normal hand gestures.


Sixth Sense is also named by it developers as “WEAR THE WORLD” device i.e., using the entire world as your computer.


Physical Aspects of the Sixth Sense Device:

Sixth sense device is a device with basic gestural interface which augments the physical world around us with digital information available. The hardware components are coupled in a pendant like mobile wearable device.

The components constituting the sixth sense device are,

1.    Micro Battery Projector.
2.    Mirror.
3.    A high resolution camera.
4.    A Phone with internet connectivity and software to allow the other devices to interact with Phone.
5.    Coloured markers.



Fig 2: The device

Now we will discuss the function and use of each of the components mentioned above.




Micro Battery Projector:

It’s a small battery powered projector that projects the digital information on any surface it can be a wall, a piece of paper or if nothing is available on our palm. In simpler words it can be used to project on any opaque surface. This projector not directly projects the digital data on to an opaque surface but it uses a small mirror that receives the data from the projector and reflects it to the opaque surface.


Mirror:

The small mirror that receives the data from the projector and reflects it to the opaque surface.
  
A high resolution camera:

The high resolution camera that is used to capture the physical world around and the physical gestures which are they way by which we contact with the physical world around us. In technical aspect the camera recognizes and tracks a user hand gestures and the physical object which is in front of it.


Coloured Marker:

Coloured marker are simple colour caps or it can be nail paint this is just to differentiate the normal fingers from the fingers with which we perform the gestures and each having a different just to differentiate it a little further. These are also called as visual tracking fiducials. Movement or arrangements of these fiducials are interpreted as gesture that acts as interaction instruction for the projector application interface. The maximum no of tracked finger is constrained to the uniqueness of the fiducials. Hence by using unique fiducials we can provide a support for multi touch and multi user interaction.
 

Technical aspects of the sixth sense device:

Computer Vision Techniques:


Computer Vision techniques includes the processing of large data set using techniques of AI (Artificial Intelligence) or ANN (Artificial Neural Network). This involves creating a machine that can see. It’s concerned with the theory of building artificial system that obtains information from images. The images can be replaced by video sequence, views from multiple camera, and multi dimensional data from medical scanners.

Examples of applications of computer vision include systems for:
  • Controlling processes (e.g., an industrial robot or an autonomous vehicle).
  • Detecting events (e.g., for visual surveillance or people counting).
  • Organizing information (e.g., for indexing databases of images and image sequences).
  • Modeling objects or environments (e.g., industrial inspection, medical image analysis or topographical modeling).
  • Interaction (e.g., as the input to a device for computer-human interaction).
Computer vision is closely related to the study of biological vision. The field of biological vision studies and models the physiological processes behind visual perception in humans and other animals. Computer vision, on the other hand, studies and describes the processes implemented in software and hardware behind artificial vision systems. Interdisciplinary exchange between biological and computer vision has proven fruitful for both fields.
Computer vision is, in some ways, the inverse of computer graphics. While computer graphics produces image data from 3D models, computer vision often produces 3D models from image data. There is also a trend towards a combination of the two disciplines, e.g., as explored in augmented reality.
Sub-domains of computer vision include scene reconstruction, event detection, video tracking, object recognition, learning, indexing, motion estimation, and image restoration.
Deploying CVT in Sixth sense Device:

In the Sixth sense device the aspect of Computer vision techniques that are used are Object recognition and searching of object with the object itself.


Examples:

1.    Drawing in open air


2.    Getting updates while reading newspaper.





3.    Using hand as dial pad


4.    playing with image

About the Inventor:

Name: Pranav Mistry
                                                    
Education:  B.E Gujarat University,
                M Tech (IIT Mumbai, Design),
                Master in Media Arts and Sciences
  from MIT
                 PHD (pursuing) From MIT 
  
Job Profile: UX Researcher with Microsoft.

Currently, He is a Research Assistant and PhD candidate at the MIT Media Lab.
For details and more of his works visit http://www.pranavmistry.com/.