Saturday, July 22, 2006

Increase Your Computer’s Heart Beat Add RAM To It.

Sometimes the speed of computer becomes so sluggish, that it becomes difficult to tolerate, and we start doing lots of action like rebooting computer or deleting extra folders, but always it does not work.
For slow computer to work fast we need speed and that means lots of RAM, which stands for Random Access Memory. It is a kind of memory used for holding program and data being executed.
When we start our computer and launch any application like browsing the Internet or writing any letter, the basic data required for running these applications and the operating system is loaded into RAM or sometimes just referred to as memory.

New PC when you buy from the market comes with standard amount of memory. The RAM that comes with the computer is the minimum amount requires to run what’s already installed on the system. More powerful programs or application consumes more RAM and due to multitasking nature of many system i.e. running more than one application at a time, consumption of RAM increases. Then there are pop-up programs that run constantly in the background so that you can access them instantly at any time. These programs are also nonstop RAM consumers.

Random Access Memory chips are large rectangular shaped and made with memory cells with support logic that reads and writes data, it is mounted directly onto the motherboard and transfers data by use of address and data buses. Each data bus consists of number of circuits.

RAM speed can be measure in different ways depending on the age of the computer. Older RAM is measured in nanoseconds also written as ns. One nanosecond is one-billionth of a second and is the measurement of access time to or from RAM.

Newer RAM is measured in megahertz and it matches the speed of motherboard to communicate with the processor. A higher RAM speed in megahertz means faster read and writes to the RAM chip.

Due to changing technologies in computer we need to add more software to our system, more powerful applications will be there and more programs will be there, everything will need their share of RAM. If you have less RAM in your system, every process will wait for their turn, which may take time so your system will be slow and you will be irritated.
In order to make your system fast you have to upgrade your system by adding more RAM, now if you finally decided to upgrade the system you would first have to find out what kind of RAM your computer uses. You would need to match its speed, the pin size and based on your system’s RAM you have to choose either tin or gold-based pin RAM. Once everything is done i.e. you got the right RAM, you have to take out old RAM from the socket and rock the new RAM in place of old RAM.

After upgrading your system you will see the satisfying changes in the speed, your system will be faster and in single click you will see your work done. RAM is the energy lifeblood of the computer operations.

Changing Technologies.

If we will go back few years from now and compare the world at that time and what it is now, we will see we have come a long way in short span of time. Lets go back before 1980s when Internet was a new concept and very few people were aware of these triplet WWW i.e. World Wide Web, nobody would have thought at that time, these Ws are going to rule the world in future.
The Internet has revolutionized the computer and communications in the world like nothing before. Initially started as ARPANET and grew into the Internet, is one of the most successful examples of the benefits of sustained investment and commitment to research and development of information infrastructure.
Because of Internet we are so near to our parents and relatives, in spite of being so far geographically. Sometimes it’s the open heart and we write long mails and sometimes it’s only few lines of doing good, but there is a hope in every mail that there is a sign of life, and there is a contact.

Technology is changing at very fast speed, suppose you are out of this technological world for about 90 days, you are far behind all the technological developments.
Lets take a look into the growth of computing hardware, initially the computer was a room size box using all the punch cards then gradually size decreased and now it has become so light and small that it can sit on our lap as laptop or notebook or tablet PC. Time is not far when technological advances will one day allow computers to be implanted in the human body -- and could help the blinds to see and the deaf to hear.

Isn’t it so great, if we can talk to our computer? Technological advancements are taking place in this field as well, companies are working to produce more effective Voice Recognition Software for computers.
There are many people in this world who cannot use keyboard or mouse due to some reason they lost full use of hands, reason can be anything like spinal cord injury, orthopedic trauma, carpal tunnel, muscle weakness or anything else. In that case they simply have to talk to computer and get its response. Like to open file they simply have to say “Open File” or to close it “Close File”, whatever they want to type regardless of whether they have a disability, they simply have to speak and computer will automatically type for them. New research in this field is going on, where a small chip can be implant in brain of human which will enable paralyzed human to operate computer or even play games just by thinking about it. Now the thoughts can control a computer, a television, fan, light…or anything you can think of.

Many people in this world are very much benefited by digital technologies, hearing impaired people are no longer different than the people those who can hear, hearing impaired people can hear by wearing strong digital hearing aids, and they can also use telephone with closed captioning, they can read a phone conversation as a listen to it.
Sometimes hearing aids are not effective in providing effective communication, in that case ABI (Auditory Brainstem Implant) can be very effective to the patient, ABI is an audio brain stem implant, which directly sends audio signals to the brain. Part of this device is hardwired directly into the brain stem and small device about the size of a small radio is carried into the patient pocket.

As violence and conflicts are part of human life through out the history. Use of technology to make weapons, fighter jets and devices has changed the conventional wars. Military is using smart bombs, which seeks target and destroy it. These bombs can be operated by computers in the aircraft and guided towards the target, which enabled military to target enemies only. Use of unmanned systems including the robot aircrafts to attack target significantly reduces the risk to human life. Scientist are working on schemes is to build a shield to defend countries from enemy ballistic missiles.

Science and Technologies has changed the way of life human has lived in the past and it will be changing the future, which now can be imagined or seen in the movies.

Thursday, July 06, 2006

Software Testing

Software testing is the most important phase in any software development project, so that we can know whether our project or product is going to be successful or it will fail before it goes live.
We can define software testing as process use to identify the quality of developed computer software, so that the developer of software can compare the results produced by the finished software and the expected one.
Through testing we cannot get totally bug free software we cannot achieve complete correctness through testing, but at least we can find some defects, which are there in the software.

There are many, many different ways and levels to test software; here I am mentioning very basic and common levels of testing, which are usually done for all software. If the software is very complex or real time oriented than more levels can be added to the testing to achieve a reliable software product.

Broadly software-testing levels are categorized into three levels.
Ø Unit Testing
Ø Integration Testing
Ø System Testing

Unit Testing.
In this phase of testing, separate units of software system are tested. This is also known as component testing in which each module is tested alone to find any error in its source code. Programmer performs this testing as part of the development life cycle. The prerequisite for this phase is Unit Test Plan, which should be written from Low-level design document.

Integration Testing.
This testing is done to test the communication between different components of the software; all the modules that a program comprises are being bring together to test whether they are functioning in correct order with their counter part. Modules are typically integrated in a top-down, incremental fashion.
For some projects integration testing can further be divided into two levels: -
Ø Assembly Integration Testing.
Ø System Integration Testing.
During assembly testing, the integration of the software components is tested. During system integration testing, the communication with external systems is tested. Integration Test Plan should be written from High Level design document.

System Testing
This level of testing is done to test the functionality of software as a complete system. System testing is entirely different then integration testing. In integration testing interaction of component are tested while in system testing interaction of complete software with the system is tested.
Besides system functionality and behavior, system testing may include testing configuration, throughput, security, resource utilization, and performance.
After testing levels we will come to test designs. As we all know, before developing any component for the software first we have to design it, same is the case with software testing, before going for testing any software we have to design tests for the system.
Two most common methods for test design are Black box testing and White box testing
Black-box test design treats the system as a "black-box", so it doesn't explicitly use knowledge of the internal structure. Black-box test design is usually described as focusing on testing functional requirements. White-box test design allows one to peek inside the "box”, and it focuses specifically on using internal knowledge of the software to guide the selection of test data. Synonyms for white-box include: structural, glass-box and clear-box. Now we will discuss about some testing techniques, there are many testing techniques for testing any software, here I have mentioned some like:
Ø Regression Testing Regression tests are tests that are run more than once. If the product or their environments have changed since the last time a test was run, it may find a new bug. Regression tests may be automated or manual.
Ø Stress Testing Tests are run to determine if the software can withstand an unreasonable load with insufficient resources or extreme usage.
Ø Performance Testing Tests are run to determine actual performance as compared to predicted performance.
In the software market you can get many tools for software testing, depending on your system and budget you have to choose among many tools. Some of the tools are:
Ø WinRunner
Ø TeamTest
Ø Silk Test
Ø JTest, C++ Test
Ø Junit.
The testing phase, which is the most important phase in the software cycle gets secondary treatment from developers and IT managers, nobody wants to go to the testing team, people are forced to go for testing in any software development team.
Still testing is the only way to determine whether an application will function properly before it is deployed.

Sunday, July 02, 2006

Software Management:Version Control

Version Control System

When I started my job with a startup company I was the 3rd employee in that company. We were working on an idea to make the Internet faster and reliable.
As my company didn’t get millions of dollar in Venture Capitalist (VC) funding, so we were having limited resources for the development. Life was easier and enjoyable between all three of us and we worked hard to make the first demo of the concept. With the help of this demo my company managed to get good funding from VCs and a time line to come up with the first beta release of the product.

We started hiring and in a months time we were a strong team of 10 software developers. All the code and documents, which I was having I had distributed to all the team members. And team members had to build software using those files as the base.
Slowly the complexity increased in the software and team members had to share the files to implement interfaces. Every thing was very smooth because I was handling all the files and was having all the control on the code and files. Then I went for vacation for about 3 weeks and came to office only to know about the disaster, which happened when I was not there.
Analysis: What exactly has happened when I was not in office?
Everybody worked hard and spent more hours in office to make sure that things finished. They finished the coding in their local machine and moved all their files in my machine, which was acting as a server.
When I checked the files in the server it only had the last persons changes in the files, where as rest of others engineers work got over written by last persons changes.
This was a loss of 3 weeks efforts made by team and there was no recovery of the old files or the changes of other team members because there were no backups or version control mechanism.
Proactively I learned the lesson and forced my company to buy a version control system.
What is Version Control System?
Version Control is the task of keeping a software system consisting of many versions and configurations well organized. In other words a Version Control System enables developers to keep historical versions of the files under development and to retrieve past versions. It stores version information for every file (and the entire project structure) in a collection normally called a repository or vobs depending on the Version Control Tools.

How did I choose Version Control System suitable for my needs?
My aim to find a Good source control, secure, easy to manage, scalable, and with little learning curve software, which can easily expended depending on the needs.
I did a research in the market and got the list of latest Version Control System software.
Some of the best VCS software’s are
· Rational Clear case
· Microsoft’s Visual Source Safe
· PVCS
· CVS etc.
I found all the version control systems are having good features and backed by some of the big companies in the software industry. I choose Rational Clear case mainly because of it is available on Linux.
Some of the features of Clear case are
Ø Clear case manages files, directories and other development assets for the entire development cycle.
Ø Parallel development support like automatic branching, merging and differencing technology, more easily resolves conflicts etc.
Ø Transparent, real-time access to files and directories Fast access to any version of any element.
Ø It supports disconnected usage means continue development efforts while disconnected from the network, and it easily synchronize changes when reconnected to the network.
Ø Build and release management Optimize build times, improve reproducibility of builds.
Ø User authentication to control access of software files
Ø Scalability from small team to big team and geographically distributed enterprises Support.

What I achieved after deploying the version control system is the peace of mind and then I didn’t have to worry if any developer would merge a wrong version. I could always get the older version and avoid any last minute surprises.

Monday, June 26, 2006

History Of Java.

Let’s take a ride to Java’s history.

History goes back to late 1970’s when Bill Joy (chief scientist at Sun Microsystems) wanted to design a language that could be used for consumer devices like cable TV switchboxes. Joy decided that C++ and other languages was inadequate for this job, so they decided to write a language that should be short and highly effective, as the language is supposed to work on different architectures so it should be platform independent.

Joy with other group of engineers like James Gosling, Mike Sherolin, Patrick Naughton and several others decided to work on the idea to develop programming tool and the name of the project was given Green Project.

Now the first question was that, what will be the name of new language?

They decided to name the language as “Oak” (While James Gasoline was staring at an Oak tree outside his office window), later that name was dismissed as it was copyrighted and used for some other languages.
It was becoming difficult for the team to decide the name of new language, later the name “Java” struck one day during a visit to local coffee shop.

There were certain objectives the “Oak” has to meet in the consumer electronic market. As the market is filled with huge crowd of manufacturers, the main requirement of Oak was completely platform independent, regardless of the type of CPU in the device. This was the main reason Oak was deigned to be interpreted language, as compiled version cannot run on all platforms.
Job of interpreter was to create intermediate “byte code” for hypothetical machine. One more advantage was also there by doing so that as both code and interpreter was small, issues related to size was solved.

Why they decided to keep size small?
They have thought of the popularity of Oak, they have in their mind if Oak will be successful in the electronic industry, and then it should be mastered easily and in less span of time.
One more concern was there i.e. the security, as Oak based devices were accepted to work on network and they are supposed to exchange code and information, for this reason they decided to exclude pointers, so that nothing could access arbitrary address in the memory.

In April 1991 within two months with the effort of the team a hardware prototype known as “*7” was developed, by august of 1991, the team had a working prototype of the user interface and graphical system.

Work was going on for the development of an operating system, a language, an interface, and a new hardware platform through the summer of 1992.
In sep the *7 prototype was completed, it was a PDA-like device.

Unfortunately, the market did not accepted this type of technology and the battle has started to sell this new technology, even no one was interested in producing this at Sun.

In Nov 1992, the Green Project was united under the name First Person, this gave Java unsuccess in consumer electronics market.

First Person spent great amount of time to make market for the technology, but everything was in vain and finally First Person was dissolved in 1994. Most of the employees were moved to other division, but few persons still persuaded the objective of finding home for new technology.

While all this was going on, Internet was getting its popularity. The World Wide Web has requirements such as reliability, security and architectural independent; all there were fully in accordance with Java’s design parameters.
By sep of 1994, Naughton and Jonathan Payne started writing “Web Runner” later it was known as “Hot Java”. It was written in Java to show its capabilities and power, the browser was capable of interpreting the intermediate byte code.

Well despite being designed for different objective java has found its match in World Wide Web.
The introduction of Java in the information market is realized as emergence of new era in the history of web.
Sun formally announced Java and Hot Java at SunWorld’95 (May 23, 1995) In January 1996, Netscape 2.0 was released, that was Java enabled. From then everybody started supporting Java like Microsoft also announced they would support Java in their Internet Explorer Browser.

After all these failures and successes Java has finally arrived and became so popular in the tech market.

This is a true saying “Hard Work Really Pays”

Thursday, June 22, 2006

Secure Socket Layer : Internet security.

In this article we will discuss about security of your data on Internet. We will discuss about the technology, which is used for secure transaction on the Internet, a technology that ensures the cardholders that their information is safe during ordering process.

This secure technology that I am talking about is known as SSL stands for Secure Socket Layer. It is designed to create a secure connection to the server for transmission of confidential data through Internet, this standard security technology establishes an encrypted link between a web server and browser. This encrypted link ensures that all data passed between the web server and browser remains private and integral. As defined as industry standards SSL is used by millions of websites in the protection of their online transactions with their customers.

Now the question arises how can you make your web server to make SSL connection with costumer browser?

In order to create an SSL connection a web server requires an SSL certificate. When you choose to activate SSL on your web server you will be prompted to complete a number of questions about the identity of your website and your company. Your web server then creates two cryptographic keys-a Private Key and a Public Key.

At this point I will give brief introduction of cryptographic system.

In simple words we can say cryptography is the theory of secret writing. It is an art of protecting information by transferring it into an unreadable format that is known as encryption. Data, which is encrypted, is known as cyber text.
In order to convert cyber text into plain text (readable format) or in other words if anybody wants to decrypt the message, has to posses a secret key.
Encrypted message can sometimes be broken by cryptanalysis, also called codebreaking.

Public key is known to everyone its not secret it is placed into a Certificate Signing Request (CSR). A certificate serves as an electronic “passport” that establishes an online entity’s credentials when doing business on the web. When Internet user sends confidential information to a web server, the user’s browser will access the server’s digital certificate and establishes a secure connection. In computer language certificate is a data file containing your details like your name, certificate serial number and expiration date, copy of certificate holder’s public key and the digital signature of the certificate-issuing authority.

After providing all the information you have to submit your CSR to a trusted Certificate Authority such as Starfield Technologies. Now concern certification authority will verify your identity, existence and domain registration ownership during SSL certificate application process. Once all the details are verified you are allowed to use SSL with your web server.

Public key, which is there in the CSR, is used to encrypt messages to certificate holder’s server, and the private key is stored in your local computer and it “decrypts” the secure messages so they can be read by your server. Data that is encrypted with the public key can be decrypted only with the private key. Conversely, data encrypted with the private key can be decrypted only with the public key

How SSL works?
Suppose you are a customer and you want to send confidential information to a secure site. Then how everything will work As the customer you won’t see all the process which take place behind the scenes so that you will experience uninterrupted shopping experience, you will only see a “padlock” icon in the browser’s status bar and the “https://” prefix in the URL.

1. A customer contacts a site and accesses a secured URL.
2. Server responds, automatically it sends its digital certificate to the customer. This digital certificate authenticates the site.
3. Customer’s web browser verifies that the server’s certificate is valid that is its been issued by a certificate authority that browser trusts.
4. Customer browser then generates a unique one time “session key” which is like a code to encrypt all communication with the site.
5. Now customer’s browser encrypts the session key with the site’s public key that was sent with site’s digital certificate, so that only the concern site can read the session key.
6. From here onwards a secure session gets established and all communications will be encrypted and decrypted by the two parties in the session.

This process is known as “handshake” process.
Now suppose if a customer attempts to submit personal information to an unsecured Web Site, the browser’s security mechanism will show a warning telling the customer that this site is not a secure site, accordingly customer can switch over to some other secure sites.

For all online merchants a secure SSL certificate provides a convenient and reliable means. With secure SSL certificate customers can rely on the business they can safely handover their credit card information and all other personal information to SSL secured sites.

Friday, June 16, 2006

Communicate without wire: Bluetooth

In this article I will talk about Bluetooth. You must be thinking what is this Bluetooth? Is it something related to cosmetics or something related to teeth or may be something…

Well to begin with, Bluetooth is a new technology named after the 10th century Danish king Harald Bluetooth Blatand who ruled part of Scandinavia in 960AD .He helped unite his part of the world. As the name implies that Bluetooth would be the technology to unite the mobile world.

Bluetooth device is the revolutionary device launched by L.M Ericsson, to integrate its phone with all Internet enabled devices. Two L.M Ericsson telephone employees, the Swedish born Sve Mattison and his Dutch colleague, Jaap Haartsen, originally designed Bluetooth technology in 1994.

The term Bluetooth refers to an open specification governed by the Bluetooth special interest group (SIG) for wireless personal area networks (PANs). This technology provides a way to connect and exchange information between devices like personal digital assistants (PDAs), mobile phones, laptops, PCs, printers and digital cameras via a secure, low cost, globally available short-range radio frequency.

Lets look at some examples where we can use Bluetooth technology.

Now days, you have to either manually enter the names and phone numbers of all your contacts or in other advance way you can use a cable to connect your phone and PC and can run some application to synchronize the contact information.
With this new technology you could see this happens automatically, without your involvement, whenever phone will come in the range of PC data will automatically updated.
With Bluetooth there are so many exciting applications like, now days whenever you come to office, you have to do so many setup to get start to work, like you have to connect your notebook to USB port, you switch it on, then your notebook gets boot up and after that only you are able to log in. All this process takes some of your time now think about the situation where you walk into the office switch on the notebook and get ready to do work. This is possible with Bluetooth, it makes your notebook to start communicating with your server via radio signals, not require you to connect it to the USB port.
Even car manufacturers are not left behind; car manufacturers such as BMW, Lexus and Toyota have equipped some of their models with Bluetooth car kits. This allows you to use the features of your cell phone through the car’s audio system while the phone itself stored in the trunk for instance.


Now the question arises, how this technology works?

The Bluetooth system consists of an RF (Radio Frequency) transceiver, baseband and protocol stack. It uses radio standards to enable file-sharing and data transfers between devices like PDA and desktop. These radio frequencies are present in all directions and their range varies between 10cm to 10m, further it can be extended to 100m depending on the power class of the product, again this power transmission rates varies in many Bluetooth products depending on the power saving features available in particular unit, bandwidth requirements, transmission distance, etc.
Because this Bluetooth technology uses radio signals, the walls in our house will not impede a Bluetooth network. Also we can control devices in the different rooms very easily.

Bluetooth operates in globally available low radio frequency at 2.4 GHz and supports data speed of up to 721 Kbps, as well as three voice channels.
To make use of Bluetooth technology you have to make sure the new device which you buy is Bluetooth compatible, Bluetooth compatible devices comes with software to configure Bluetooth to share data by implementing specific profiles, these profiles will determine what type of information or resources the device can store.

When you want two new Bluetooth device should communicate, first you have to introduce them to share data, this is known as pairing (authorizing the device to communicate with each other).
It is also possible to configure the devices to have password protection, so that other people cannot take part in your communication. One more thing is also there, you can set up the device to constantly announce their presence to the device in its range, and the connection can be automatically establish.

Conclusion.
As this is the emerging technology today and is widely adopted by industry leaders, in every version new features are included, the next version of Bluetooth includes a number of features to increase security, usability and value of Bluetooth.

Sunday, June 11, 2006

Java Virtual Machine


Java Virtual Machine.

Sun Microsystems’s Java Virtual Machine is one of the best-known examples of application virtual machine.

In this article we will discuss about Java Virtual Machine and how it works.

As we know java has come up as powerful computer programming language, which has got its own benefits over conventional languages.
Main advantage of java programming language is platform independence, which means any application written in java can be operated on any of the platform, instead of having to produce separate versions of the application for each computer and operating system.

Now the question arises how it's possible for a Java application to run on many different machines?
From the figure above you can get the flow of java program execution.
The key to Java's portability and security is the Java Virtual Machine on which java relies, because of this simulated machine computer programmer does not communicate with system, in turn it it directly communicates with virtual machine, in this way programmer utilizes functions that are built into the JVM and not the operating system.

JVM does not have any information regarding the programming language. It knows only the binary format of the byte code.The java compiler from which you compile java program does not produce native executable code for a particular machine like C compiler would do. Instead it produces a special format called byte code, in other words byte code can be thought of as the machine language for JVM.
The JVM interprets a stream of bytecodes as a sequence of instructions and then execute to produce desired output.
JVM depends on opearting system, it must have a possible mapping for its instruction on every operating system or machine that it is installed in order to work.
Once the bytecodes are interpreted by the JVM the instructions are mapped to the instructions in the operating system or on the hardware. JVM actually uses operating system and machine instructions to carry out the instructions it has been given.

It is possible that the instruction which JVM has can be carry out by one operating system and while with another it is not. This is one of the reason why Java has not achieved 100% portability.

The main purpose of the Java Virtual Machine is to solve the problem with creating portable computer programs. The question which still comes to the mind does the JVM completely solved the problem and made Java 100% portable?
The answer is no..It does not completely solve the problem, there is no doubt that it has provided a good solution that is most part effective but not 100% effective. Java has still achieved a relatively high degree of portability. Java has allowed people to develop many cross-platform applications and has proven to be useful and powerful interpretation of a virtual machine.

Sponsers link