Tuesday 27 August 2013

Why NoSQL?

A NoSQL database provides a way for storage and retrieval that uses loosely consistency models than traditional relational database.
NoSQL is a whole new way of thinking about databases. Relational database may not be the best solution to all scenarios. NoSQL does not observe the traditional relational database structure. It is not built on tables and does not need SQL to manipulate data.

Interactive applications have changed greatly over the last 15 years and, so have data management needs. Currently three interrelated trends Big Data, Big Users, and Cloud Computing are driving the idea of NoSQL.
Currently new applications are being hosted in the cloud and are available over the internet where they must support global users everyday. Over 2.5 billion people are connected to the internet worldwide and the amount of time each spends online is steadily growing. Supporting large number of users simultaneously is important but tracking the usage of applications is difficult to determine so its necessary to support rapid growing numbers of concurrent users. Maintaining the performance users demand is nearly impossible and developers are moving away from relational technologies to a more scalable database technology  which NoSQL provides.

Third parties such as Twitter, Facebook and others have made data capture and retrieval a lot easier than it used to be. Personal user information, machine logging data and an array of ever-expanding data are being captured. The use of data is increasingly changing and the nature of its usage. Applications that do not find ways to balance it quickly fall behind. NoSQL provides  a data model that maps better to the application’s organization of data and simplifies the interaction between the application and the database, resulting in less code to write, debug, and maintain.

There are some great NoSQL databases such as






Couchbase Server

 amongst others which can be of great usage.

NoSQL databases meets new challenges for three main reasons:
  1. Better application development productivity through more flexible data model
  2. Great ability to scale dynamically to support more users and data
  3. Improved performance for highly responsive applications and to allow more complex processing of data.

Thursday 22 August 2013

Why All These Scripting Languages

Over the last fifteen years, there has been a fundamental change in the way people write computer programs. The transition from system programming languages like C or C++ to scripting languages like Perl or PHP has risen up because of the use of the internet as a communication tool.

The main characteristics of a scripting language is its ease of usage and they are usually interpreted from source code unlike system programming languages.
Scripting programming languages such as Python, Rexx, Unix shells, Perl and Tcl represent a very unique style of programming than system programming languages. These languages are intended for writing programs from scratch and fixing components together.

There are a lot of scripting languages in the system and here are some of the popular ones;

Perl (Practical Extraction and Report Language). This is a popular string processing language for writing small scripts for system administrators and web site maintainers. Much web development is now done using Perl.
JavaScript, perhaps the most publicised and well-known scripting language was initially developed by Netscape as LiveScript to allow more functionality and enhancement to web page authoring that raw HTML could not accommodate.
VBScript, a cut-down version of Visual Basic, used to enhance the features of web pages in Internet Explorer.
Python is a widely used general purpose, high-level programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C. The language provides constructs intended to enable clear programs on both a small and large scale.
PHP is a server-side scripting language designed for web development but also used as a general purpose programming language. PHP code is interpreted by a web server with a PHP processor module which generates the resulting web page: PHP commands can be embedded directly into an HTML source document rather than calling an external file to process data. It has also evolved to include a command line interface capability and can be used in standalone graphical application.

New languages often learn from existing languages and add, remove and combine features in a new way. There is a few different paradigms like object oriented and functional and many modern languages try to mix features from them both.
For the same reason there are hammers, screwdrivers, handsaws, bandsaws, jackhammers, crowbars, and a host of other tools: not every language is perfect for every task. Some languages are targeted at specific problem domains
Also, for the same reason that shirts come in different colors: some people just like the "style" of one language over another.
And, of course, a lot of programmers find it fun to invent a new language, just to see what happens, or perhaps because they have some knowledge about languages and want to scratch an itch, or try out some ideas.

Friday 16 August 2013

The Open Source Ideology

In the development of software, open source signifies that a product includes permission to use its source code, design documents, or contents.
There has been conflicting definitions and differences between the free software movement and the open source movement.

The term “open source” software is used by some people to mean more or less the same category as free software. It is not exactly the same class of software: they accept some licenses that we consider too restrictive, and there are free software licenses they have not accepted. However, the differences in extension of the category are small: nearly all free software is open source, and nearly all open source software is free. 
-- Free Software foundation

Though the market for open source software is on the high, there is still a school of thought against it.
There are many reasons projects should go open source, a few are:

By uploading your codes to sites like GitHub, it makes your code available to people with similar ideas to yours. People can help improve your project and probably make suggestions to to guide you.

Writing a complete software is an arduous task. Lets face it, our ideas can't always be the best. By allowing others access to our software, we can get have the knowledge and expertise of our contributors. Going open source leads your software to be of a better quality.

Going open source doesn't make your project free, you can keep some parts of your code as private as you want it. People have the notion that making their codes available would give their competitors the upper hand. But consider that you have a lot of contributors to your project which will far outweigh what your competitor can get.

I hope these few tips has changed your perception about going open source. You can go around and explore some open source software or start making your project open.

Monday 12 August 2013

Role of software testers

Though they are often underrated, software testers play a huge role in software development. Right from the requirement gathering stage to when the software is completed.
How many people will take the risk of taking in untested drug? Or drive a car which is not tested? Not many people I suppose. In the same way software put on the market has to be tested. The Microsofts and apples of this world all go through testing processes with all their software before they become commercial. That is not to say they are without faults.
Developers are problem solvers, the can rack up prototypes of any system in weeks or even days but testers come from a different angle. They show weaknesses in the system. They come out with test cases to show the program breaks, which will in turn lead to corrections by the developer.
Many developing companies and freelancers in Africa do not value testing. They basically do not get why an independent body would have to verify his work. But with the gradual growth of software development in Africa of late a few are beginning to wrap their heads around the idea of testing.
It may be sometime before software testing is fully embraced in this part of the world.

Expat Accra