Brought to you by
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.
This publication may not be redistributed without this notice.

Unclassified Articles

This section contains a list of unclassified articles.

Adding text watermark to JAlbum albums

Following are steps to add a watermark to a Jalbum album.
1. Select a photo, and click on Edit
2. Choose text filter (T icon) from the right panel and select a region where you wish to apply the watermark
3. Type the text, choose font, click on Advanced and check watermark.
4. Click on Apply to save the changes

If you wish to apply a watermark to multiple photos simultaneously, you would need to create an image filter.

5. Followng steps 1-4 on one image and go back to thumbnails
6. right-click the image and select copy
7. Edit > select all to select all thumbnails
8. right-click and select paste
9. Album > Make all to apply the changes

Agile Model

Agile model is an iterative, team-based approach for rapid delivery of an application with complete functional components. The project is divided into phases called sprints. In each sprint, a set of deliverables are completed (planned, coded, tested, documented). Deliverables are prioritized based on the nature of the work and based on business requirements. Once a sprint is completed, the completed deliverables are reviewed and evaluated by the customer. Agile requires high level of customer involvement throughout the project.


  1. Customer has many opportunities to evaluate the project progress and make changes if necessary
  2. Generally, the development is faster
  3. User-focused development


  1. Requires customers interest and participation
  2. Works best with a team dedicated to the project
  3. Scope creep can extend the project
  4. Local focus can lead to losing sight of the global project

apache2: Could not reliably determine the server's fully qualified domain name, using for ServerName

apache2: Could not reliably determine the server's fully qualified domain name, using for ServerName

This is not an error, only a warning.

To fix this in Ubuntu 12.04 LTS, type the following:

$ echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn
ServerName localhost
$ sudo service apache2 restart

To fix this in Ubuntu 14.04 LTS, type the following:

echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf
sudo a2enconf fqdn

Benefits of visual communication

Among the many extraordinary talents of Charles Dickens was his ability to describe people, places, objects, and situations in a way that allows readers to experience the events he narrated. Unfortunately, few of us have the capability or the time to describe and narrate like Dickens. Luckily, we live in the digital age where it is relatively easy to add visual aids to our text.

A noun describes a person, place, or a thing. The mere mention of a noun we know invokes an image in the mind. Upon reading the word CAR, readers would have no difficulty in visualizing a car or understanding what a car is. Most of us will visualize cars of different shapes, models, and colors. Adjectives, which describe nouns, help in narrowing the mental images of readers to something closer to what the writer is visualizing. RED CAR would narrow the color choices. RED SPORTS CAR would narrow the choices further. But now matter how descriptive the writer is, he would not be able to describe exactly what he sees. Which shade of red? Perhaps the car is a bit dusty and rusty. Perhaps the sunset has changed the hue. A picture of the car, however, allows every reader to see exactly what the writer is seeing. It shows details, which weren't even noticed by the writer. It shows details left out by the writer, such as the surroundings of the vehicle. A single image allowed the writer to describe the object better than he could have described with skillful use of adjectives. Clearly a picture is worth a thousand words and a video would perhaps be worth thousands of words.The image, of course, does not provide the artistic qualities of skillfully written paragraphs but most of us are interested in writing business and technical documents, not masterworks of fiction.

Visual communication helps in describing physical objects and explaining ideas and processes. As we have just seen, images are efficient medium for describing physical objects. Ideas and processes are not physical objects but sparks in our heads or flow of events. They can be visualized with diagrams, graphs, charts, screenshots, and other visual illustrations. Unless you enjoy writing lengthy text documents, consider adding visual illustrations in your documents. A wide array of tools are now available to make this a simple task. Mindmaps are used to organize ideas. Flow charts represent flow of events. Building plans illustrate the components and arrangement of the building components. Use case diagrams show how sequence of event in usage of a system. Depending on your industry and profession, if you are involved in a trade or profession, chances are that you there is a set of illustrative techniques which are used. You should become familiar with the visual illustration techniques i.e. learn how to interpret, create, modify, and add there illustrations to your documents. Learn to use the tools which would make creation and modification of these tools simpler. The effort you put into learning visual techniques and tools would pay back by allowing you to write visually appealing, clear, concise, and comprehensible documents while having to write fewer lines of text.

Camel case

Camel case also known as medical capitals is a convention of merging words into one word. All words are merged into one and all characters are lower case except for the first character of every word which was merged. For example, mortgage payment calculator becomes MortgagePaymentCalculator. If the first letter is lower case (mortgagePaymentCalculator) then it is referred to as lower camel case.

Camel case is very commonly used in programming. Java uses lower camel case. Zend framework used lower camel case.

Changing font size in Eclipse

To change the font size on eclipse temporarily, simply use ctrl++ and ctrl--. If you wish to change is permanently, do the following:

1. select Window > Preferences
2. choose General > Appearance > Colors and Fonts > Java Editor Text font
3. Save

Changing Mac OS Keyboard

1. Click on the Apple logo and select "System Preferences"
2. Click on "International" icon on "System Preferences" window.
3. Click on "Input Menu"
4. Make sure that "Show input menu in menu bar" is checked.
5. Make sure the "Keyboard Viewer" is set to viewable.
6. Select the languages you desire
7. Close the window
8. Use the flag icon on the top left to set the keyboard layout

Changing notepad++ themes

Notepad++ is a simple lightweight editor that packs a punch. When using any editor, you would want customize its look and feel to suit your comfort. Notepad++ comes with several preinstalled themes that you can use to customize the appearance. You an also download others from the Internet.

To change the themes,
1. click on "Settings" > "Style Configurator..."
2. Choose themes from the "Select theme" menu
3. Pick a theme you like and customize the themes with the options available in the same window.

Content search on Windows 7

Windows 7 search interface is different from previous versions of windows and it can be frustrating for new users. The Start > search field is used for all search i.e. programs, files, file contents, and even outlook emails search. By default, search is limited to file names and properties like date and file type. The search does not look inside the files so if you are searching for a file whose name you forgot but remember some lines of text, you will not be able to find it with the default settings. The following steps show how to enable file content searching so that you can search by the contents of a file.

1. Open My Computer or any folder
2. Hold Alt button and the file menu will appear
3. Click on Tools > Folder Options
4. Then click on the "Search" tab
5. Click on "Always search file names and contents" and click on OK

Now you will be able to search by file properties and contents. Click on Start and type your keyword. Be aware that the search will be very slow. To speed up search, you need to index the contents of your files. Basically, an index creates database of words and terms. When you search, Windows first looks in the index database which is a fast lookup. However, if the contents are not indexed, Windows will have to look in every file which can take a very long time. To index your file contents, do the following:

1. Click on Start and type "search" in the search field
2. You will see "Change how windows searches" in the search results. Click on it.
3. Make sure you are on "Index Settings" tab and click on "Advanced"
4. Click on "File Types" tab
5. Click on "Index Properties and File Contents" at the bottom and then click on "Add"
6. You will see the "Indexing Options" window. Click on "Modify"
7. You will see "Indexed Locations" window. Make sure all locations are checked. Then click on "OK".

Indexing can take a few hours but all subsequent searches will be very fast.

Converting audio and video file formats in Linux

The gold standard of converting audio and video file formats in Linux is FFmpeg. It is a command-line tool capable of recording, converting and streaming audio and video. This article only covers audio and video file format conversion and show how easy it is to use.
Installing FFmpeg
Chances are that you already have FFmpeg installed on your system. Do the following to check to see, if it is installed.

$ which ffmpeg


$ whereis ffmpeg
ffmpeg: /usr/bin/ffmpeg /usr/share/ffmpeg /usr/share/man/man1

If it isn't already installed, type the following if you have Ubuntu or another Debian system:

$ sudo apt-get install ffmpeg

or the following for Red Hat Family (RHEL, CentOS, Fedora)

$ yum install ffmpeg

or use the following commands if you prefer to install from source:

$ wget
$ tar xzvf ffmpeg-0.6.1.tar.gz
$ cd ffmpeg-0.6.1
$ ./configure
$ ./make
$ sudo make install

ffmpeg-0.6.1 is the latest stable version at the time of the writing of this article. You should see what is available at

Converting audio and video file formats with FFmpeg
For simple conversion, simply do the following:

$ ffmpeg -i original_file.mpg converted_file.avi

This would convert the file with default parameters, 200kbps video and 64 kbps audio. This is low quality conversion. To maintain, file quality, use the -sameq option:

$ ffmpeg -i original_file.mpg -sameq converted_file.avi

There are many other options but most users are not interested in or understand the complex aspects and options for converting files. Most of us just want a small converted file we can post online or a conversion which maintains quality. If you need more power:

$ man ffmpeg

FTP text editor for Linux

SSH is the best solution for editing files on a remote server. It is however common for many web hosts to offer FTP access only or SSH access for an additional price. In these circumstances an FTP text editor can make you life less frustrating. A really good FTP text editor on Linux is IglooFTP.

To download IglooFTP, Go to Download the tar.gz file.

$ tar xzvf IglooFTP
$ cd IglooFTP
$ sudo
$ ./Install

To run

$ IglooFTP-PRO

How can I change the filesize limit for imported files in PhpMyAdmin

The filesize limit is not defined in PhpMyAdmin. The limit is taken from php.ini file. To change this limit, you needed to edit your php.ini file:

$ locate php.ini
$ cd /etc/php5/apache2/
$ sudo cp php.ini php.ini.original
$ sudo vi php.ini

Change the following two variables in the php.ini file:

upload_max_filesize = 50M
post_max_size = 200M

This would allow file uploads of 50 megabytes. You need to restart apache before these changes can take place. On Ubuntu, the command is

$ sudo /etc/init.d/apache2/restart

How to enable user sign-up in Moodle

Author: Ayesha Saeed Khan

* Go to the left side menu
* Select authentication
* Click manage authentication
* Enable ‘email-based self registration’ option from there
* Save changes

How to get command prompt in Microsoft Windows

The steps to get the command prompt in Microsoft Windows are different based on the version of Windows you are using. Following instructions cover Windows 95 to Windows 8.

Windows Vista, Window 7, Windows 8
1. Click Start (Windows icon)
2. Type cmd and press enter (in the Search Programs and Files field)

Windows NT, Windows 2000, Windows XP
1. Click Start > Run
2. Type cmd or command and press enter

Windows 95, Windows 98, Windows ME
1. Click Start > Run
2. Type command and press enter

Immune System

Harmful invaders such as bacteria, viruses, fungi and parasites are collectively called pathogens. Invertebrates use relatively simple defense strategies that rely chiefly on protective barriers, toxic molecules, and phagocytic cells that ingest and destroy invading organisms. This is called the innate immune response. Vertebrates can also mount more sophisticated defenses, called adaptive immune response. The function of adaptive immune responses is to destroy invading pathogens and any toxic molecules they produce.

An antigen is any substance that elicits an immune response, from a virus to a sliver.

The immune system has a series of dual natures, the most important of which is self/non-self recognition. The others are: general/specific, natural/adaptive = innate/acquired, cell-mediated/humoral, active/passive, primary/secondary. Parts of the immune system are antigen-specific (they recognize and act against particular antigens), systemic (not confined to the initial infection site, but work throughout the body), and have memory (recognize and mount an even stronger attack to the same antigen the next time). [1]

Adaptive immune responses are carried out by white blood cells called lymphocytes. There are two broad categories of responses:

1. Humoral (antibody) responses: carried out by B cells
2. Cell-mediated immune responses: carried out by T cells

In humoral response, B cells are activated to secrete antibodies, which are proteins called immunoglobulins. Antibodies circulate and bind specifically to pathogens, thereby inactivating them. Binding also marks the pathogen for destruction by phagocytic cells of the innate immune system. The specific affinity of an antibody is not for the entire macromolecular antigen but for a particular site on the antigen called the epitope or antigenic determinant.

In cell-mediated immune responses, killer T cells kill cells that display foreign motifs on their surfaces. Helper T cells contribute to both humoral and cellular immune responses by stimulating the differentiation and proliferation of appropriate B cells and killer T cells.

The immune system links genes in a combinatorial manner to produce distinct protein-encoding genes not present in the genome.

Antibodies possess distinct antigen-binding and effector units

Antibodies are composed of antigen binding components Fab and Fc which does not bind antigen but is responsible for effector functions. The antibody IgG molecule consists of two kinds of polypeptide chains, light chain (L) and heavy chain (H). Each L chain is linked to an H chain by a disulfide bond, and the H chains are linked to each other by at least one disulfide bonds. The IgG molecule is shaped like an L where Fc is the stem. Segmental flexibility allows two antigen binding sites to adopt a range of orientations. One IgG molecule can bind to multiple antigens.

IgA - present in external secretions such as saliva
IgE - protection against parasites

Each of the five classes of immunoglobulins has the same light chain but a different heavy chain.

Complementarity determining loops (CDRs) are hypervariable loops present at the end of the structure. Variation of amino acid sequences of these loops provides major mechanism for the generation of vastly diverse set of antibodies. Combinatorial variation of the 3 VL and 3 VH enables construction of a very large number of binding sites.

Numerous hydrogen bonds, electrostatic interactions, and van der Waals forces, reinforced by hydrophobic interactions combine to give specific and strong binding.

Diversity is generating by gene rearrangements
We have seen that antibody specificity is determined by the amino acid sequences of the variable regions of both light and heavy chains. This variability is the result of immunoglobulin genes being rearranged in the differentiation of lymphocytes.


There are about 1012 lymphocytes and 108 distinct antibodies in a human body. Each lymphocyte is committed to respond to a specific antigen. Lymphocytes are required for adaptive immune system. Innate immune system relies on pattern recognition receptors. The antigens are either destroyed, delivered to lysosomes, attached to cell membranes to activate cell signal pathways, or delivered to a lymph node to initiate an adaptive immune response through contact with T cells. Once activated, T cells either migrate to the site of infection to help macrophages or stay behind to help B cells. Innate system is activated at the site of infection. Adaptive system is activated in perphiral lymphoid organs. Both innate and adaptive immune systems work together.

B lymphocytes develop in the bone marrow and T lymphocytes develop in the thymus. T and B cells become morphologically distinguishable only after they have been activated by the antigen. Killer T cells kill infected cells. Helper T cells help activate macrophages, B cells, and killer T cells. Upon activation, the adaptive immune system releases various lymphocytes which proliferate and differentiate selectively stimulated by antigen binding specificity.

Most antigens result in polyclonal responses, meaning that various antibodies with bind with different specificities are produced. In a monoclonal response, only one antibody is produced.

The adaptive immune system can remember prior experiences, thus providing lifelong immunity to common infectious diseases. The primary immune response occurs when the an animal is first exposed to an antigen. Secondary immune response occurs if the same antigen reappears after an extended period of time. This time the lag period is longer but the response is greater.

When naïve cells encounter an antigen cells for the first time, some of them are stimulated to proliferate and differentiate into effector cells which actively engage in making a response. Some naïve cells, however, become memory cells. Memory cells do not engage in a response but are induced into effector cells more easily. Upon a second encounter with the same antigen, the memory cells would either give rise to either effector cells or more memory cells. Memory cells can live for the lifetime of the organism.


[2] Molecular biology of the cell, 4th edition
[3] Biochemistry, 5th edition, by Stryer et al.

Installing and Configuring AWStats on Linux

AWStats is short for Advanced Web Statistics. It is powerful log analyzer which creates advanced web, ftp, mail and streaming server statistics reports from server logs in graphical and easy to read formats. AWStats is a free software distributed under the GNU General Public License. It works from the command line as well as a CGI.

AWStats Requirements

- Perl 5.0.2 or above
- Server must log files in a log file you can read
- System must be able to run perl scripts

Downloading AWStats

AWStats can be downloaded from Get the last stable version. At the time of this writing, the last stable version is:


It is a good idea to all your downloads in one place. Download awstats to your download folder.

$ cd /usr/local/src/
$ wget

Installing AWStats

You need root access to install awstats. Unzip the downloaded file.

$ tar -xzvf awstats-6.7.tar.gz

AWStats recommends installing the software at /usr/local/awstats, although you can install it anywhere you desire. Many choose to install it at web root but I prefer the default configuration.

$ mkdir /usr/local/awstats
$ mv awstats-6.7/* /usr/local/awstats

I recommend that you create a README.TXT file inside awstats-6.7 and log all the details as you install the software. For example:

1. awstats installed at /usr/local/awstats as recommended by awstats
2. awstats variable stored at /var/lib/awstats
3. ...

This would help you avoid frustration in the future.

AWStats edits Apache httpd config file so it is a good idea to back up this file before going further. While you are at it, why not back up all httpd config files.

$ locate httpd.conf
$ cp /etc/httpd/conf/httpd.conf /home/user/backup/apache
$ cp -r /etc/httpd/conf.d/*.conf /home/user/backup/apache

Configuring AWStats using

AWStats comes with a configuration script,, which configures awstats automatically. Depending on the configuration of your server, the script may or may not get the job done. Therefore, both automatic and manual configuration are covered here. Before running this script, note the address of your httpd.conf file.

$ locate httpd.conf
Note this address
$ mkdir /etc/awstats
The awstats.mole.conf file would be stored here.
$ perl /usr/local/awstats/tools/
> /etc/httpd/conf/httpd.conf
> y
> mole  (name of your site instead of mole)
> [enter]
note the cron message before hitting enter to finish
The following if you are following my configuration
/usr/local/awstats/tools/ now
/perl -update -config-mole

If is successful, it would restart Apache. If it doesn't, start by checking your SeLinux log if you have SeLinux installed and active.

$ locate audit.log
$ tail /var/log/audit/audit.log

Configuring AWStats Manually

If you don't have SeLinux and the script did not succeed, you would have to configure the awstats manually.

Edit the httpd.conf

  1. search for awstats in the file and comment out all instances with # sign
  2. Change CustomLog from common to combined. Note the log file address. This would be needed later. Something like logs/access_log.
  3. Search for the comment 'Load config files'. Under this comment add Include conf.d/*.conf. This includes external configuration files. Its a cleaner way of managing your configurations.
  4. At /etc/httpd/conf.d, create a file called awstats.conf. Add the following code to it.
    Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
    Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
    Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
    ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"
    # To permit URL access to files in awstats folder
    <Directory "/usr/local/awstats/wwwroot/">
    Options Name
    AllowOverride None
    Order allow,deny
    Allow from all

  5. Create a directory /var/lib/awstats and make it writable
  6. Edit /etc/awstats/awstats.mole.conf file. Set your log file to /var/log/httpd/access_log
  7. restart apache
    $ /sbin/service httpd restart

  8. In your browser type http://localhost/awstats/ You should see your web statistics page.
  9. To update stats,
    $ /usr/local/awstats/tools/ now

  10. If you don't see your icons, copy the icons folder to your web root. If you are using SeLinux:.
    $ ls -RZ icon/
    If you don't see something like httpd_sys_content_t, do the following:
    $ chcon -R -t httpd_sys_content_t icon

    If you are using SeLinux and the installation did not work. Restart from the beginning and check your SeLinux audit.log after each step.

Installing Apache, MySQL, PHP on Fedora the easy way

by Shahina Hayat & Sanea Sheikh

Generally, Apache, MySQL and PHP are installed automatically when you install Fedora 12 and select server during installation. If this is not the case, you can install these the following simple steps:

1. log in as root
2. yum –y install httpd php mysql mysql-server php-mysql

Starting the services
1. /sbin/chkconfig httpd on
2. /sbin/chkconfig – add mysqld
3. /sbin/chkconfig mysqld on
4. /sbin/service httpd start
5. /sbin/service/mysqld start

Setting MYSQL root password
mysqladmin -u root password 'new-password'

Check whether MYSQL is working
mysql -u root -p

Check whether PHP & Apache are working
Create a PHP script in a text document naming it phpinfo.php. W rite a following code in it


Open the following URL in your browser


Installing ClustalW on Linux

ClustalW can be downloaded from Choose the src version, something like clustalw-2.0.10-src.tar.gz.

  1. wget
  2. tar xzvf clustalw-2.0.10-src.tar.gz
  3. cd clustalw-2.0.10
  4. ./configure
  5. make
  6. su
  7. make install
  8. clustalw2

The last line is to test whether clustalw is properly installed and running.

Installing Firefox 3 on Linux

I use Fedora 9 where you can install Firefox 2 using yum but Firefox 3 can be installing using yum only for Fedora 10. But nothing stops me from installing Firefox 3 manually.

Download Firefox 3 from

$ mv firefox-3.0.5.tar.bz2 /usr/local/bin/
$ cd /usr/local/bin/
$ bzcat firefox-3.0.5.tar.bz2 | tar xvf -

To run Firefox, type:

$ sh /usr/local/bin/firefox/firefox

To add this directory to the system path

$ export PATH=$PATH:/usr/local/bin/firefox

Now you can run Firefox by typing:

$ firefox

from any directory

To add firefox to the menu:

  1. System > Preferences > Look and Feel > Main Menu
  2. Choose a menu where you need to add Firefox
  3. Click on "New Item" and browse to /usr/local/bin/firefox/firefox

Installing jalbum on Ubuntu

jAlbum is a free deskop application which lets users create online albums. It offers powerful album editing features and is very easy to use. See for some examples.

jAlbum offers debian files so you can easily install the software with Ubuntu Software Center.
1. Download jAlbum from
2. Save file and double-click on it
3. Ubuntu Software Center would open. Ignore warnings and follow instructions.

To use, Applications > Graphics > Jalbum

Installing mahara on Ubuntu

You can now install Mahara using the Synaptic Package Manager. But before you install mahara, you should create a database for mahara in MySQL or PostgreSQL. You will be asked for the database connectivity information during installation.

$ sudo apt-get install mahara

Once installation is complete, go to the mahara installation directory

$ cd /usr/share/mahara

and backup the config file

$ cp config.php config.orig.php

Then edit the config file. Make sure the following variables are defined

$cfg->dbtype   = 'mysql5';
$cfg->dbhost   = 'localhost';
$cfg->dbname   = 'mahara';
$cfg->dbuser   = 'mahara';
$cfg->dbpass   = 'your_database_password';
$cfg->wwwroot = 'http://localhost/mahara/';
$cfg->dataroot = '/var/maharadata';

Next, create a directory to store your files. Make it apache writable.

$ sudo mkdir /var/maharadata
$ sudo chown -R www-data /var/maharadata

To use, go the your web browser and type


Enjoy Mahara!

Installing MUSCLE on Linux

MUSCLE can be downloaded from Currently, there are two versions, 3.6 and 3.7.

Instructions for installing MUSCLE 3.6:
First download the

$ wget
$ tar xzvf muscle3.6_linux_ia32.tar.gz
$ cd muscle
$ cp muscle /usr/local/bin

Instructions for installing MUSCLE 3.7:

$ wget
$ tar xzvf muscle3.7_src.tar.gz
$ cd muscle
$ make
$ cp muscle /usr/local/bin

Installing Newick Utilities on Linux

Newick Utilities is a very powerful and feature rich tool for displaying and manipulating phylogenetic trees.

  1. Download Newick Utilities from Newick Utilities
  2. tar xzvf newick-utlis-x.tar.gz
  3. sudo mv newick-utils-x/src/nw* /usr/local/bin

Installing VirtualBox

A virtual machine is a a software that allows users to install multiple operating systems within an operating system. For example, if you are running Mac OS, you can install Ubuntu and Microsoft Windows inside the virtual machine.

VirtualBox is an opensource virtual machine software. I found that it is easier to install and use than Parallels and VMware Workstation.

Installing VirtualBox on Mac OS

Installing VirtualBox on Microsoft Windows

Installing VirtualBox on Debian Systems such as Ubuntu
Virtualbox is a contributing repository so you will need to add the repository to your synaptic package manager. Add the following repository.

deb natty contrib

Restart Synaptic or reboot your system. Add Oracle public key

sudo apt-key add oracle_vbox.asc

Install VirtualBox

sudo apt-get update
sudo apt-get install virtualbox-4.0
sudo apt-get install dkms

Installing an operating system on VirtualBox
Launch VirtualBox and click on "create new" and follow instructions. On Mac, if your mouse gets stuck inside the VirtualBox window, press Left Mac button.

Installing xdebug on Ubunt 10.x or Ubuntu 11.x

Installing xdebug on Ubuntu 10 or above is very easy.

1. Install php5-xdebug

$ sudo apt-get install php5-xdebug

2. Find where is installed

$ sudo updatedb
$ locate

3. Edit xdebug.ini file

$ sudo vi /etc/php5/apache2/conf.d/xdebug.ini

and make it look like the following

; configuration for php xdebug module

4. Restart the server

$ sudo /etc/init.d/apache2 restart

5. Verify that the xdebug is running

$ sudo /etc/init.d/apache2 restart

If you run phpinfo(), you should see the following text

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans

Looking for a free Window FTP client?

Back in the old days
Back in the early nineties, were transferred to the web using the ftp command of UNIX. Windows users usually had to telnet to their accounts and then run ftp commands. Around the late 90's, a freeware called WS_FTP appeared in the market. This was a very useful tools since it allowed users to access their server directories through a graphical user interface. This tool offered file management functions along with ftp functions.

CuteFTP & ZillaFTP
Sometime around the .com bust, WS_FTP became a paying software. By this time, however, several other ftp software such as CuteFTP and ZillaFTP had appeared in the market. CuteFTP is not a free software but ZillaFTP is free. It usually comes bundled with several other nice tools like download manager. I had been a frequent user of ZillaFTP but was always annoyed by the way ZillaFTP used my computer's resources. If you choose to use ZillaFTP, be sure to go to I once downloaded ZillaFTP from some download website and the software came bundled with PUPs (Potentially Unwanted Programs). Unfortunately, I can't recall the address of the download site.

Another useful program which I have been using since year 2000 is Editplus. This software is actually an editor. I allows you to go edit and manage your local and remote files. To open a remote file:
File >> Open

To open a remote file:
File >> FTP >> Open Remote

You can also upload file(s) with:
File >> FTP >> Upload


File >> FTP >> Upload Multiple

Editplus also allows its users to manage files through a directory window. Editplus is a lightweight yet powerful software which support customizable syntaxes, regular expressions, and much more. See editplus wiki for more information.

Firefox is a extensible browser which can be extended by installing plug-ins. Among all the cool and useful plug-ins, FireFTP is my favorite. It is an easy to install plugin which is free, of course. It offers most of the features offered by WS_FTP and is very easy to use. Besides, since it is a Firefox plugin, you would get automatic patches and upgrades without ever having to visit their website.

There really is no need to buy an FTP client. Use FireFTP for massive downloads, uploads, backups, etc. Use editplus to editing if you are not using another editor. Do drop a line in the comments if you know or find something better.
Happy FTP'ing!

Manipulating server files with software installed on your local Mac

To access remote files, you need to either SSH or FTP into a server. If you have an SSH account, you can use the server's command line software to edit files. FTP accounts only allow users to upload and download files.

Cyberduck is a free software which allows users to open files and manipulate them using your local software. It takes care of the uploading/downloading of files behind the scenes so it seems as if the files are residing on your local machine. To install cyberduck, simple download and double-click on the .dmg file. Drag and drop to Applications folder to make is accessible from Applications.

If need this feature for coding, I would recommend using TextWrangler instead. It has nice features for editing code and can connect to remote servers directly. If prefer to use an IDE such as Eclipse, cyberduck would be a better option.

Matching end-of-line in notepad++

To match the end-of-line in notepad++, click on Search > Find or ctrl + F. Make sure you click on regular expressions at the bottom of the window. Then type in the following command.



Neat Microsoft Windows keyboard shortcuts

Microsoft Windows offers many simple keyboard shortcuts. If you use computer as much as I do, you would find that these commands are easy to remember and simplify life a little bit. The symbol + in the table below means that you have to press those keys together. WIN refers to the windows button just to the right of CTRL key with Microsoft Windows logo. The keys are typed in CAPS to increase readability e.g. one and the letter can be confusing is lowercase but not when L is written in uppercase. The commands are NOT case sensitive.

shortcut explanation
CTRL+ESC open windows system menu
ALT+TAB switch between windows
ALT+F4 close window - the key F4, not F+4
WIN+L lock computer
WIN+D show desktop
WIN+E open windows explorer
WIN+R open run command window
WIN+F open windows search
CTRL+SHIFT+ESC open task manager
CTRL+ALT+DEL open managet to interrupt a program
CTRL+A select all
CTRL+C copy
CTRL+X cut
CTRL+V paste
SHIFT+DEL permanent delete, the delete items will not go to recycle bin

Overview of Object Oriented Design

Object-oriented Design Goals
The main design goals of object-oriented design are:

- robustness
- adaptability
- reusability

A robust software is capable of handling unexpected input. For example, anything divided by 0 is undefined. When an unexpected 0 is encountered, the software should be able to handle the problem without resulting in broken behavior.

An adaptable software is able to continue functioning with changing technologies. Portability is a subset of adaptability, referring to the ability of the software to work across different software platforms and hardware.

Reusability refers to the ability of the software or its components to be reused in other software systems.

Object-oriented Design Principles
Object-oriented design goals are difficult to achieve without the following design principles.

- Abstraction
- Encapsulation
- Modularity

Abstraction involves simplifying a complex system down to its fundamental concepts and components i.e. identifying components, naming them, and describing their functionality. In object-oriented programming languages, abstraction is accomplished with classes.

Encapsulation means hiding the internal details of a software component. When a component only interacts with the outside work with a predefined interface, the programmer is able to change the internal working of the component without changing the functionality or interface. Thus enabling the component to change without affecting its surroundings.

Modularity refers to organizing components into functional units.

Object-oriented Principles facilitate achievement of object-oriented design goals. Design patterns are canned solutions to software design problems. Design problems and solutions are not programming language specific. They are design specific. Design patterns can be implemented in any object-oriented language.

Perl CGI not running

If your Perl CGI is not running, look at the ScriptAlias settings in your httpd.conf. It defines which directories are allowed to run CGI scripts.

Playing video files in Mac OS

Newcomers to Mac OS are often frustrated media files such as audio and video. Quicktime comes pre-packaged with a Mac but it doesn't play many common files such as avi, flv, and wmv. The solution is very simple. You need to install two quicktime plugins.

1. Perian
2. Flip4Mac

Once these are installed, you can play almost any media file on your Mac. If this doesn't work for you for some reason, you could install VLC player. It would run any file except for wmv and wma files.

Playing, converting, and editing video files

There are numerous audio and video players available. Winamp, iTunes, Windows media player, Real player, and divx player can play most audio and video files. If you however come across an unsupported format, consider using VLC player. It is free, open source, and provides the greatest range of supported file formats.

Many software exist for editing audio and video files. Most of these software are not free. Luckily the best and most powerful software for media file editing are free. For audio, audacity with lame and razor lame are very good options. For video use ffmpeg.

VLC, audacity, lame, and ffmpeg is available for Linux, Mac, and Windows.

Print screen on Mac OS

The Mac OS keyboard does not have a print screen button. So this is how to capture your screen on Mac:

- Hold down Apple key ? + Shift + 3 and release all

The screen shot would appear on your desktop.

You can also do a screen capture for a portion of your screen.

- Hold down Apple key ? + Shift + 4 and release all key
- Mouse cursor would change to +
- Select the region you wish to capture


Problems installing canon scanners

Installing a scanner is quite simple but I ran into serious problems in more that one occasions. On every occasion, I saw blogs full of frustrated people so I decided to write a small summary as a sum of lessons learned from bad experiences. Use these guidelines only if you are having problems installing or running your scanner.

1. Uninstall all software/drivers associated with printers and scanners you had installed before, if you will no longer be using them.
2. Turn off your antivirus
3. Shut down all software concerning graphics and related to printers.
4. Kill all process concerning software updates
5. Go to Control Panel > System > Device Manager > Imaging Devices. Uninstall what you see.
5. Follows installation instructions provided by the device manufacturer. I mean follow it step by step and word by word.
6. Attach the USB device to your computer only if you are asked to do so by the installer or when the installation is complete and the computer has been restarted.
7. The first time you scan, the scanner calibrates the device. Make sure that you DO NOT have any document in your scanner at this time. Place your documents inside for scanning only when the calibration is complete.

If all this does not work, then delete entries from the registry. Caution, this is very risky and you should this only if you know how to fix a malfunctioning computer or if you are truly desperate.

1. Start > Run > type regedit > OK
2. Expand HKEY_CURRENT_USER > Software > Canon
3. Delete the folder Canon
4. Restart your computer

Quick facts about lighttpd

Lighttpd web server, also known as "lighty" is an excellent alternate to the Apache Web Server for small to medium sized web sites. It is a fast, secure and efficient web server. Several well-known high traffic websites such as Wikipedia and YouTube use Lighttpd.

lighttpd.conf configuration file
lighttpd.conf is the configuration file for Lighttpd. It is pretty simple to configure. Be sure to backup your file before making any changes to it. Important directives are:

Restarting Lighttpd
To commit changes, you need to restart lighttpd:

/etc/init.d/lighttpd restart

Reading command-line input in C

Following a program which echos whatever you type in the command line.

#include main(int argc, char *argv[]) { int i; for(i = 0; i < argc; i++) { printf("arg %d: %s\n", i, argv[i]); } return 0; }

argc is the count of the number of command-line arguments. argv is array of words. Each word is a string. So if you type:

myprogram.exe my input

argv[] would fill as follows:

argv[0] = myprogram.exe
argv[1] = my
argv[2] = input

The terms argc and argv are used by convention.

Reading from and Writing to Files in Java

Author: Zeeshan Fazal

Java provides a number of classes and methods that allow to read and write files. In Java all files are byte-oriented. Two of the most often-used stream classes are FileInputStream and FileOutputStream, which create byte streams linked to files.

  1. To open a file, simple create an object of one of the classes specifying the name of the file as an argument to the constructor.
  2. Use close() to close the file

FileInputStream (String fileName)
FileOutputStream (String fileName)

fileName specifies the name of the file that you want to open. After completing your file operations, you should close it by calling close(). It is defined by both FileInputStream and FileInputStream , as shown here:

void close() throws IOException

To read from a file, you can use a version of read() that is defined within FileInputStream, as shown here:

void close() throws IOException

Example of File Reading Code:


class Variables
	public static void main(String[] args) throws IOException
		int i;
		FileInputStream fin;
		File file = new File("/home/linuxjunky/Documents/Protein1");	
		try {
			fin=new FileInputStream(file);
		} catch (FileNotFoundException e) {
			System.out.println("File Not Found");
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.println("Out of Bounds");
		int j = 0;
		int L = (int) file.length();
		char[] Array = new char[L];
		System.out.println("Th Length of The Protein Is: " + L);
			i =;
			if (i != -1)
				Array[j] = (char) i;
		} while(i != -1);

Records Management

ISO-15489 defines records management as the "field of management responsible for the efficient and systematic control of the creation, receipt, maintenance, use and disposition of records, including the processes for capturing and maintaining evidence of and information about business activities and transactions in the form of records". During their lifecycle, records are created, classified, archived, and destroyed.

What is a Record

According to ISO-15489, a record is "information created, received, and maintained as evidence and information by an organization or person in pursuance of legal obligations or in the transaction of business". A record can be tangible like paper documents or intangible such as electronic documents, email, audio, and video.

Records have adminstrative value and depending on their nature, they may have fiscal, legal or historical value. Invoice and timesheets have fiscal value. Documents of incorporation, trademarks, and patents have legal value. Press releases, marketing brochures, and event summaries have historical value. Historical records are retained indefinitely.

Types of Records

There are many different ways to classify records. I prefer the following three-term method. You will find a wide variety of terms used to describe these concept on the web, so don't be surprised.:

Mandatory records
Mandatory records are records that an organization is required to preserve by law. They are proof of legal and financial rights and obligations of an organization. The information contained in these documents is complete and unalterable. The law specific retention period for such documents.Mandatory records provide evidence of business transactions and compliance. They may be required for audit or the client. Company tax records, payroll register, financial statements, and corporate registration are mandatory records.

Business records
Like mandatory records, business records are also proof of legal and financial rights of an organization. They are indispensible for the continuity of and organization. They ensure an organization's rights and obligations in the event of a disaster such as sabotage or human error. The value of a business record is defined by a business or legal process. Business records have a lifecycle where different classification or level of protection might be needed at different stages of the lifecycle. Example of business records include insurance policies, trademarks, patents, and proposals. The information contained in business documents is complete and unalterable.

Temporary records
Temporary records are generally retained for small time periods. The information contained in them may be altered. They are important for the day-to-day functions of an organization. Documents used for a workgroup, incident reports, working copies of a document, and photocopies are temporary records.

Importance of records management

Good records management requires time, space, effort, and money. However, the cost of managing is higher in terms of time, effort, and money wasted. Following are some important reasons for good record keeping.

Building sound records management policies

Every organization must have a clear records management policy and every employee of the organization must be aware of how this policy applies to him. Every employee should be able to answer questions such as how a record should be classified, how long it should be retained, where it should be stored and what measures need to be taken to protect the records.The policy should outline how to assess availability, confidentiality, and integrity risks and practical measures which could protect against these risk. Availability risk refers to the financial and legal impact of loss of access to the records. Confidentiality risk refers to the financial and legal impact of unauthorized disclosure of information. Integrity risk refers to financial and legal cost of unauthorized alteration of records. For example, there is no risk in manual alteration of a paper-based marketing document distributed to a consumer but unauthorized alteration of the corporate website is very damaging and requires several levels of network and server security. The organization should provide documents and training, which explain how a document should be identified, classified, stored, circulated, and when and how it should be destroyed.

Recovering lost Mac OS password

sudo sh

At prompt enter admin (your) password

passwd root

Now, fix your root password.


sed Tutorial

sed is an editor which can be used to modify files directly from the command line. It is a stream editor.

Suppose you have a file called a.txt

$ cat a.txt

We wish to replace all instances of the word old with new.

$ sed s'/old/new/' <a.txt>b.txt
$ cat b.txt

File a.txt is copied to b.txt and all instances of the word old are replace with new.

Often it is a good idea to test your expression before actually implementing it. For example:

$ echo older | sed 's/old/new/'

In this example, we tested the command s/old/new/ on the word older. As expected the result is the word newer.

The backslash character '\' is used to escape special characters. For example, and address data/input.txt would create confusion insides the substitution function s/// due to the extra slash. To remedy this you type data/input.txt as data\/input.txt.

The ampersand '&' character is refers to the matched string. For example:

$ echo boot | sed s'/[A-Za-z]*/&s/'
$ echo king | sed s'/[A-Za-z]*/&s/'

This code converts singular nouns to plurals by adding s. [A-Za-z] matches an English letter in both capital and small case. The * character means 1 or more. So we are matching a string with one or more English characters in either case. & refers to the matched word. &s suffixes an s to the matched word.

Setting up multiple displays on Mac OS

It is now common for users to work with multiple monitors. Laptop users, especially, prefer to work on their laptop screen and an external monitor when at they at work or at home. If you are using netflix or some other service to download movies, you would prefer to watch it on large screen rather than your laptop screen, so you would want to connect your computer to a TV or projector.

It is very easy to connect Mac OS computers to external monitors.

1. Click on the the Apple symbol on the top left of your screen
2. Choose system preferences and click on Displays
3. A window would open for each screen. Use the relevant window to adjust each screen.

Should I choose Apache with or without SSL

When downloading Apache from for Microsoft Windows Operating System, you are given two options:

OpenSSL is an open-source implementation of SSL and TLS protocols. mod_ssl is a package that provides cryptography for Apache via SSL and TLS. SSL and TLS specify how to securely encrypt and send confidential information over HTTP.

If your website will be collecting sensitive information like credit card numbers then you should install binary with openssl otherwise choose Win32 Binary without crpto.

Showing line numbers on Eclipse and RAD

To show line numbers in Eclipse or RAD, following these steps:

1. Click on Windows > Preferences
2. Click on General > Editors > Text Editors
3. Check "Show line numbers"

Shutting down and restarting Mac from Commandline

To shutdown:

sudo shutdown -h now

To restart

sudo shutdown -r now

Step Into, Step Over, and Step Out

Step into, step over, and step out are debugging options. A debugger allows programmers to step through code i.e. execute code line by line and see the contents of memory at each step.

Step into
Step into executes the current statement and stops at the next statement. If the current statement is a coding block such as a function or loop, then it steps into the block. Your next statement is the first statement in the block.

Step over
Step over executes the current statement and stops at the next statement. If the current statement is coding block such as a function or loop, then it executes the block and stops at the statement following the calling statement.

Step out
Step out moves the debugger one step above from its current statement. If the current statement is inside a coding block such as a function, the debugger completes the execution of that block and stops at the statement following the statement that called the block. If the current statement is inside main, the code will execute till the end. If a breakpoint is encountered, the debugger would stop at that breakpoint.

SVG files not displaying in my browser

All major browsers now support SVG. If you cannot see SVG, it is most likely due to an issue with the server. Just to be sure, test it on another browser.

Check your server config file to make sure that the mime-type is set to image/svg+xml. If you are running lighttpd, edit your lighttpd.conf file and the following line, in mimetype.assign directive:

"svg"    =>    "image/svg+xml",

If you are running Apache on Ubuntu, you need to edit /etc/mime.types file. Add the following line:

image/svg+xml                     svg svgz

Testing mod_rewrite

To test whether mod_rewrite is working, create a .htaccess file inside your webroot as follows:

RewriteEngine on
RewriteBase /
RewriteRule ^test.php$ rewrite.php

Create file test.php in the same directory with the following code:

echo 'mod_rewrite is not working';

Create file mod_rewrite.php in the same directory with the following code:

echo 'mod_rewrite is working';

Open the file test.php in your browser. http://localhost/test.php

Enabling mod_rewrite
If the test above returns "mod_rewrite is not working", then perhaps mod_rewrite is not enabled. To enable it, run the following command:

$ sudo a2enmod rewrite

Run the example again to see if it works.

Is mod_rewrite enabled?
If the test above fails, then check to see if mod_rewrite is enabled. Type and save the following code as info.php inside your webroot:

<?php phpinfo; ?>

Open the file with your browser and search for mod_rewrite. If you see it under Loaded Modules, the it is enabled. If you don't see it, then you need to add rewrite.load under /etc/apache/mods-available/ if you are using Ubuntu. For other Linux systems, you need to add the following lines to your httpd.conf file.

LoadModule rewrite_module modules/
AddModule mod_rewrite.c

mod_rewrite is enabled but not working
If mod_rewrite is still not working, then you need to change your override settings. Under Ubuntu, do the following:

$ cd /etc/apache2/sites-enabled
$ sudo cp 000-default 000-default.original
$ sudo vi 000-default

Find the relevant directory such as /var/www and change

AllowOverride None


AllowOverride all

Then restart server and open test.php (mentioned at the top of this page) with your browser.

$ sudo /etc/init.d/apache2 restart

If you are using a different Linux flavor, you would need to edit the relevant directory in httpd.conf.

Text Web Browsers

Text web browsers only display text on web pages, ignoring all multimedia such as flash, images, video, etc.

Why would you use a text browser when there are graphical browsers? If you are a webmaster you would be interested in knowing how your page would look to Google and Yahoo! crawlers. This would help you in SEO (search engine optimization). If you are a researcher, you need access to journals and research papers. You can access them through your university or research institute as they have subscription but you cannot access these papers from you home or neighborhood coffee shop. To access these papers, you can log into your server using you terminal and use a text browser to access these papers.

In short, text browsers are not for common users.

Following is a brief list of text web browsers:

Perl-based with an editor, browser and email client.

Tabbed Text browser

Ideal for Emacs users

Text and graphic browser with a pull-down menu system.

Free text only web browser and Gopher client distributed by the Internet Software Consortium. Probably the best available.

Text-based web browser and a test formatting tool.

Web browser for visually-impaired and blind.

UMLeT - Easy to use UML editor

For beginners, I always recommend UMLeT. It is a simple GUI, easy to use tool. It allows users to easily create diagrams of different types by clicking, dragging, and typing. It also offers the possibility to export to pdf, jpg, etc. It does not have the more powerful features of many commercial software but it also does not have the steep learning curve and cryptic interfaces of such software.

To install UMLeT on Debian systems such as Ubuntu,

sudo apt-get install umlet

To use simply type umlet on the terminal.

To add UMLet entry to the GNOME menu, see

On Microsoft Windows, simply download the zip file from Unzip it and double-click on the umlet.jar file to run.

Warning: no newline at the end of the file

This is not a error, it is a warning which can get very annoying especially if you have many source files in your project. To get rid of this error, simple go to the last line of you code (usually the closing brace '}') and hit return.

Waterfall model

Waterfall model is sequenced design process used in software development. lt has the following phases in sequential order:

1. Requirements / Analysis
2. Design
3. Coding
4. Testing
5. Maintenance

Waterfall has rigid phases with gate control between phases. Once a phase is completed, it cannot be revisited. The team works on one phase at a time. Business product is delivered at the end of the project.

- easy to understand and control
- at any given time, everyone know where they stand in terms of their work
- more resistant to scope creep

- inflexible with changing requirements
- requires good requirements and stable product definition

Waterfall is a good fit if the project has good requirements documented clearly, uses mature technology, and stable product definition. It is not suitable for projects requiring progressive elaboration, changing or unclear requirements.

Websphere: profile path length exceeds the maximum allowed length

If you get the following error message:

*** Creating the application server profile...
The following validation errors were present with the command line arguments:
profilePath: Profile path length exceeds the maximum allowed length.

then your OS is limiting the maximum length allowed for addresses. You can solve this by changing address of your profile path to a shorter path.

What is an Executive Summary

An executive summary is a miniature version of a report, proposal, or portfolio. It is usually one page or shorter. It contain enough information for readers to be acquainted with the document without actually reading the entire document. Generally it contains:

- problem statement
- background information
- main points
- description of alternatives
- conclusion

An executive summary is an independent element rather than a part of a document body i.e. in the absence of the document, an executive summary would be sufficient for a reader to understand what sort of information the document would contain.

Executive summary is the most important part of a report and thus should be very well written. When in rush, a reader may decide to read only the executive summary or a reader may use the executive summary to decide whether he wishes to read the entire document.

Technical details, charts, graphs, and examples generally do not belong in an executive summary. Concentrate on the main ideas, facts, and just enough detail to make to point. Refrain from using unnecessary words. Be precise, to the point, clear and concise. Make sure that the executive summary is accurate and fully representative of the document. It should not be misleading and ideally it should give a great first impression.

Writing math formulas in HTML

Mathematical formulas can be written in HTML without installing special fonts, MathML, or inserting images. This article shows how this can be done.

A list useful special characters
Symbol Entity Description
¬ &#172; not sign
¯ &#175; macron, overline
° &#176; degree sign
± &#177; plus-minus sign
µ &#181; micro sign
· &#183; middle dot, centered period
× &#215; multiplication sign
÷ &#247; division sign
ƒ &#402; f with hook, script f
- monospaced hyphen
&#8722; minus sign
&#8211; en dash
&#8212; em dash
&#8224; dagger
&#8225; double dagger
&#8226; bullet
&#8230; ellipsis
&#8242; prime, minute
&#8243; double prime, second
&#8260; fraction slash
&#8486; ohm sign
&#8592; leftwards arrow
&#8593; upwards arrow
&#8594; rightwards arrow
&#8595; downwards arrow
&#8596; left right arrow
&#8597; up down arrow
&#8706; partial differential
&#8710; increment, difference
&#8719; product
&#8721; summation, sum
&#8730; square root, radical
&#8734; infinity
&#8745; intersection
&#8747; integral
&#8992; top half integral
&#8993; bottom half integral
&#8776; almost equal to, approximately equal to
&#8800; not equal to
&#8801; identical to
&#8804; less than or equal to
&#8805; greater than or equal to

(a2 + b2)

lim an

n = 0

n = 0

{ sum from n = 0 to infinity } a_n

∆u  =  Δu  =  n

i = 1


Laplacian of u = Delta u = { sum from i = 1 to n } d^2u / dx_i^2

n = 0

{ product from n = 0 to infinity } a_n


f(x) dx

{ integral from a to b } f(x) dx


exp(−x2) dx   =  √π

{ integral from -infinity to +infinity } exp(-x^2) dx = square root of pi

Yum Tutorial

by Tariq Khaleeq, Sanea Sheikh, Shahina Hayat

YUM stands for 'Yellowdog Updater Modified'. YellowDog Linux is a rpm based distribution of Linux created for the ppc architecture. Fedora Core took up this package manager as of Fedora Core 1.

Leaving history aside, yum is the easiest way to install, update, and remove software from your Linux systems. This quick tutorial guides you through the steps but it is not a substitute for man yum. This tutorial would give you general usage while man page give a comprehensive documentation of yum's functionality. An added benefit of yum is that it calculates a programs dependencies and then it downloads and installs them for you.

Installing Yum

Before installing yum, check to see if you already have yum installed:

$ whereis yum

If you don't have yum installed, you can download it from To install yum,

$ rpm -Uvh yum-xx.noarch.rpm

Is a software already installed on my system

$ yum list install SOFTWARE
$ yum list install firefox

replace the word software with your software.

Installing with yum

$ yum install SOFTWARE
$ yum install firefox

replace the word software with your software.
This will get all the dependencies and prompt you with a list of dependencies you need to download and install. You can accept or decline.

Search for software

$ yum search STRING
$ yum search firefox
$ yum search fire*

where string could be software's name, or a wildcard. Yum would return a list of matches.

Uninstalling software

$ yum remove PACKAGE
$ yum remove firefox

Updating software

$ yum update PACKAGE
$ yum update firefox

Error Messages

error: Cannot retrieve repository metadata (repomd.xml) for repository : fedora. Please verify its path and try again.
You would need to edit fedora.repo and fedora-updates.repo to fix this error:

$ cd /etc/yum.repos.d
$ cp fedora.repo to fedora.repo.backup

It is important to backup any configuration file before you edit it. This way, if your modifications are unsuccessful, you can easily revert back to the original.

$ vi fedora.repo 

Uncomment all baseurls and change https to http. Save changes.

$ cp fedora-updates.repo fedora-updates.repo.backup
$ vi fedora-updates.repo 

Uncomment all baseurls and change https to http. Save changes.

$ yum update 

Run update to test your new settings.