technology

Wolfram Alpha: Gives Answers Directly Unlike Google

Wolfram Alpha, a new “Computational Knowledge Engine” developed by British physicist Stephen Wolfram, is all set to revolutionize search with its amazing/innovative ability to give answers to your questions directly – instead of directing you to sources where you “might” get the required information.

The software is still in its initial days of existence and will be available for use later this month. Already touted to be a Google Killer – which most probably it won’t be, the Wolfram Alpha has managed to rake up considerable storm even before its launch. It was showcased earlier this week at Harvard University. Many experts consider this to become the “Internet’s Holy Grail” once fully operational. It will be able to understand and respond to ordinary queries and give answers to queries in ordinary language, similar to how a person would respond when queries. To give you an idea of what this is capable of, let us take a few examples. Suppose you want to compare the height of the Empire State Building with the length of the Golden Gate Bridge, all you need to do is to type in your query and wait for the software to calculate your results derived from various sources. Once the search is over, you will not only get a detailed answer to your query but also a lot of other related information that might be of interest to you.

Many experts believe this to be a part of the natural evolution of the internet. Additionally, the results that you receive are assessed by experts and are made available only after a thorough verification. This is unlike Wikipedia, which thrives on user-generated content. Wolfram Alpha is incidentally based on Stephen Wolfram’s Mathematica software, a standard tool for scientists, engineers and academics for crunching complex maths.

You can learn more about Wolfram Alpha here.

Standard
downloads

DriverMax

DriverMax is a powerful free utility which helps you download, backup and restore the drivers installed on your Windows Vista or Windows XP computer and check if newer versions are available. Download all drivers from one place in just a few steps. Or back them up so you will have all of them in a single place and will be able to reinstall them in a few minutes.


This tool can save you a lot of time when reinstalling Windows, especially on older computers for which the original CDs containing the drivers have been lost. You no longer have to track down old driver installation CDs, insert one installation CD after another or spend hours searching for drivers on the Internet.

DriverMax is also able to display a detailed report about all drivers (versions, release dates) installed on your system. Identify unknown devices in your computer and get Windows Vista rating information before you purchase new hardware. Version 4.5 is located on a faster server. An account activation bug is solved.


Standard
apis, downloads

Glary Registry Repair

Glarysoft Registry Repair is an advanced registry cleaner for Windows that allows you to safely scan, clean, and repair registry problems. Problems with the Windows registry are a common cause of Windows crashes and error messages. Glarysoft Registry Repair allows you to fix your registry and optimize your PCs performance with a few simple mouse clicks.Version 3 improves scan engine and fixed some bug.

Download

Standard
apis, downloads

TrueCrypt

Free open-source disk encryption software for Windows Vista/XP/2000 and Linux

Main Features:

Further information regarding features of the software may be found in the documentation.

Standard
development, technology

Software development process

A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle and software process. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.

All methods undertake the seven steps listed to different degrees:

Domain Analysis
Often the first step in attempting to design a new piece of software, whether it is an addition to existing software, a new application, a new subsystem or a whole new system, is what is generally referred to as “Domain Analysis”. Assuming that the developers (including the analysts) are not sufficiently knowledgeable in the subject area of the new software, the first task is to investigate the so-called “domain” of the software. The more knowledgeable they are about the domain already, the less the work required. Another objective of this work is to make the analysts who will later try to elicit and gather the requirements from the area experts or professionals, speak with them in the domain’s own terminology and to better understand what is being said by these people. Otherwise they will not be taken seriously. So, this phase is an important prelude to extracting and gathering the requirements. The following quote captures the kind of situation an analyst who hasn’t done his homework well may face in speaking with a professional from the domain: “I know you believe you understood what you think I said, but I am not sure you realize what you heard is not what I meant.

Software Elements Analysis
The most important task in creating a software product is extracting the requirements. Customers typically know what they want, but not what software should do, while incomplete, ambiguous or contradictory requirements are recognized by skilled and experienced software engineers. Frequently demonstrating live code may help reduce the risk that the requirements are incorrect.

Scope Analysis
Once the general requirements are gleaned from the client, an analysis of the scope of the development should be determined and clearly stated. This is often called a scope document. Certain functionality may be out of scope of the development project as function of cost, others as a result of unclear requirements at the time the development has begun. If the development is done externally, this document can be considered a legal document so that if ever there are disputes, any ambiguity of what was promised to the client can be clarified.

Specification
Specification is the task of precisely describing the software to be written, possibly in a rigorous way. In practice, most successful specifications are written to understand and fine-tune applications that were already well-developed, although safety-critical software systems are often carefully specified prior to application development. Specifications are most important for external interfaces that must remain stable. A good way to determine whether the specifications are sufficiently precise is to have a third party review the documents making sure that the requirements are logically sound.

Software architecture
The architecture of a software system refers to an abstract representation of that system. Architecture is concerned with making sure the software system will meet the requirements of the product, as well as ensuring that future requirements can be addressed. The architecture step also addresses interfaces between the software system and other software products, as well as the underlying hardware or the host operating system.

Coding
Reducing a design to code may be the most obvious part of the software engineering job, but it is not necessarily the largest portion.

Testing
Testing of parts of software, especially where code by two different engineers must work together, falls to the software engineer.

Implementation
After the code is appropriately tested and approved, it is moved into production environment i.e. is made available for business use.

Documentation
An important (and often overlooked) task is documenting the internal design of software for the purpose of future maintenance and enhancement. Documentation is most important for external interfaces.

References:

Computer World, 2002, Retrieved on June 22, 2006 from the World Wide Web: http://www.computerworld.com/developmenttopics/development/story/0,10801,71151,00.html

Software Development Process Advice and Strategies

Software development life cycle (SDLC) [visual image], software development life cycle

Standard