Sunday 31 August 2014

PERL PROGRAM TO COUNT nunber of Words, lines and charachters in a file

// Demo.pl


$line=0;
$word=0;
$char=0;

print("\n Count Line,word,character");
open(FILE,"Demo1.sh");
while(<FILE>)
{
$line++;
$char+=length($_);
$word+=scalar(split(/\W+/,$_));
}

print("\nline   word   char  ");
print("\n$line   $word  $char \n");

close(FILE);

******************Sample OUTPUT**********************
//My program is saved on desktop
//Demo1.sh is input file...as per need change name of input file which is located in same directory

svcet@svcet-MS-7636:~$ cd Desktop
svcet@svcet-MS-7636:~/Desktop$ perl Demo.pl

 Count Line,word,character
line   word   char 
2   11  61

Steps to Use Magic ISO Maker For Creating ISO Image and working with ISO Image.

  1. How to quickly create an new ISO files or an new CD/DVD.
  2. How to edit ISO files.
  3. How to make ISO from CD-ROM
  4. How to extract boot image from CD/DVD-ROM.
  5. How to make bootable image from floppy disk.
  6. How to make bootable ISO image.
  7. How to convert CD/DVD image format.
  8. How to burn CD/DVD with CD/DVD image file.

  • Quickly create an new ISO file or an new CD/DVD

    1. Click menu "Files" ->"New" to choose which type of ISO image you want to create



    Data CD/DVD image:  The new ISO image contains two file systems  - ISO 9660 and Joliet. This ISO image or CD/DVD burnt with this ISO image can be read on Microsoft Windows.

    Bootable CD/DVD image:  Create a bootable ISO image with choosing bootable image file that can be get from bootable floppy disk or another bootable ISO image. The new ISO image contains two file systems  - ISO 9660 and Joliet.  This ISO image or CD/DVD burnt with this ISO image can be read on Microsoft Windows.

    UDF CD/DVD image:  Create UDF-ONLY ISO image.

    Hybrid CD/DVD image: The new ISO image contains four file systems  - ISO 9660,  Joliet, UDF and Apple HFS+. The ISO image or CD/DVD burnt with this ISO image can be read on Microsoft Windows and Mac OS X.

    Unix/Linux CD/DVD image: The new ISO image contains three files systems - ISO 9660, Joliet and RockRidge. The ISO image or CD/DVD burnt with this ISO image can be read on Microsoft Windows ,Linux and Unix.

    2. Dragging files or directories from Local Browser  into ISO Panel. or click the button " or to add files or directories.



    3. Click to create an new folder. Then enter the folder name.



    4. Click to delete files or folders.

    5. Press F2 or click to rename file name, folder name or volume name.

    >>For creating an new ISO image.
    6. Click to save in ISO image.



    >>For creating an new CD or DVD.

    6. Click to burn CD/DVD on-the-fly.



    7. Choose your CD/DVD recorder, Choose write speed. Important: you must remember to clear the "Finalize CD" checkbox if you need to write data onto this CD or DVD later. With a Multisession CD or DVD, this checkbox is only checked for the last session of the CD or DVD. This setting write protects the CD or DVD and no further writing is possible.

    8. Click "Burn it!" button to start the burn process.

  • Using MagicISO to edit ISO file

    1. Click to open ISO file or choose File menu and Click Open Command.

    2. Dragging files or directories from Local Browser  into ISO Panel. or click the button " or to add files or directories.

    3. Click to create an new folder. Then enter the folder name.

    4. Click to delete files or folders.

    5. Press F2 or click to rename file name, folder name or volume name.

    6. Click to save in ISO image.




    >>For creating an new CD.
    6. Click to burn CD/DVD on-the-fly.



    7. Choose your CD/DVD recorder, Choose write speed. Important: you must remember to clear the "Finalize CD" checkbox if you need to write data onto this CD or DVD later. With a Multisession CD or DVD, this checkbox is only checked for the last session of the CD or DVD. This setting write protects the CD or DVD and no further writing is possible.

    8. Click "Burn it!" button to start the burn process.

     
  • Make ISO from CD/DVD-ROM

    1. Click Menu "Tools"->"Make ISO from CD/DVD-ROM"





    2.  Choose "Source CD/DVD-ROM"



    3. Enter output file name

    4. Choose output format for your CD/DVD.



    Standard ISO image file (.ISO): It is used for All kind of DVD Disc and Data CD with single track.

    BIN image file (.BIN/.CUE): It is used for Audio CD, Video CD, Super Video CD and all CD with single session.

    NRG image file (.NRG): It is used for All kind of CD (include Audio CD, Video CD, Super Video CD and Data CD etc.)

    Universal Image Format ( *.UIF): It is used for all kind of CD and DVD. It is strongly recommended for backuping your CD or DVD. Read here to learn more.

    5. If you choose "Universal Image Format(*.UIF)" as output format, you can enter password for protecting your image file.

    6. Click "Ok" to process.

     
  • Extract boot image from CD/DVD-ROM

    1. Click Menu "Tools"->"Make ISO from CD/DVD-ROM"



    2.  Choose "Source CD/DVD-ROM"



    3. Enter output file name.

    4. Check "Export Boot Image".

    5. Click Ok button to process.

     
  • Make boot image from floppy disk

    1. Click menu "Tools"->" Make boot image from floppy disk"

    2. Enter the name of bootable image file to save.

     
  • Make bootable ISO image

    1.  Open an ISO image.

    2. Click to set boot image file.

    3. Click button to save ISO file.

     
  • Convert CD/DVD image

    1.  Click menu "Tools"->"Convert ..."



    2. Enter source file name,   Choose output format, Enter output file



    3. Click "Convert"

    Click here to learn about how to convert .DMG to ISO image.


     
  • Burn CD/DVD with CD/DVD image file

    1. Click to open "Burn CD!" Dialog



    2. Choose CD/DVD-Writer

    3. Enter CD/DVD image filename

    4. Choose writing speed.

    5. Click "Burn it!"

Write a program in Python/C++ to read display the i-node information for a given text file,image file.

#!/usr/bin/python

import os, sys

# Open a file
fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )

# Now get  the touple
info = os.fstat(fd)

print "File Info :", info

# Now get uid of the file
print "UID of the file :%d" % info.st_uid

# Now get gid of the file
print "GID of the file :%d" % info.st_gid

# Now get inode of the file
print "i-node number of the file :%d" % info.st_ino

# Now get size of the file
print "size of the file :%d" % info.st_size

# Now get number of blocks for the file
print "number of blocks allocated for file :%d" % info.st_blocks

# Close opened file
os.close( fd)

Sunday 24 August 2014

SQL vs NOSQL


Most of you are already familiar with SQL database, and have a good knowledge on either MySQL, Oracle, or other SQL databases. In the last several years, NoSQL database is getting widely adopted to solve various business problems.
It is helpful to understand the difference between SQL and NoSQL database, and some of available NoSQL database that you can play around with.

SQL vs NoSQL: High-Level Differences

  • SQL databases are primarily called as Relational Databases (RDBMS); whereas NoSQL database are primarily called as non-relational or distributed database.
  • SQL databases are table based databases whereas NoSQL databases are document based, key-value pairs, graph databases or wide-column stores. This means that SQL databases represent data in form of tables which consists of n number of rows of data whereas NoSQL databases are the collection of key-value pair, documents, graph databases or wide-column stores which do not have standard schema definitions which it needs to adhered to.
  • SQL databases have predefined schema whereas NoSQL databases have dynamic schema for unstructured data.
  • SQL databases are vertically scalable whereas the NoSQL databases are horizontally scalable. SQL databases are scaled by increasing the horse-power of the hardware. NoSQL databases are scaled by increasing the databases servers in the pool of resources to reduce the load.
  • SQL databases uses SQL ( structured query language ) for defining and manipulating the data, which is very powerful. In NoSQL database, queries are focused on collection of documents. Sometimes it is also called as UnQL (Unstructured Query Language). The syntax of using UnQL varies from database to database.
  • SQL database examples: MySql, Oracle, Sqlite, Postgres and MS-SQL. NoSQL database examples: MongoDB, BigTable, Redis, RavenDb, Cassandra, Hbase, Neo4j and CouchDb
  • For complex queries: SQL databases are good fit for the complex query intensive environment whereas NoSQL databases are not good fit for complex queries. On a high-level, NoSQL don’t have standard interfaces to perform complex queries, and the queries themselves in NoSQL are not as powerful as SQL query language.
  • For the type of data to be stored: SQL databases are not best fit for hierarchical data storage. But, NoSQL database fits better for the hierarchical data storage as it follows the key-value pair way of storing data similar to JSON data. NoSQL database are highly preferred for large data set (i.e for big data). Hbase is an example for this purpose.
  • For scalability: In most typical situations, SQL databases are vertically scalable. You can manage increasing load by increasing the CPU, RAM, SSD, etc, on a single server. On the other hand, NoSQL databases are horizontally scalable. You can just add few more servers easily in your NoSQL database infrastructure to handle the large traffic.
  • For high transactional based application: SQL databases are best fit for heavy duty transactional type applications, as it is more stable and promises the atomicity as well as integrity of the data. While you can use NoSQL for transactions purpose, it is still not comparable and sable enough in high load and for complex transactional applications.
  • For support: Excellent support are available for all SQL database from their vendors. There are also lot of independent consultations who can help you with SQL database for a very large scale deployments. For some NoSQL database you still have to rely on community support, and only limited outside experts are available for you to setup and deploy your large scale NoSQL deployments.
  • For properties: SQL databases emphasizes on ACID properties ( Atomicity, Consistency, Isolation and Durability) whereas the NoSQL database follows the Brewers CAP theorem ( Consistency, Availability and Partition tolerance )
  • For DB types: On a high-level, we can classify SQL databases as either open-source or close-sourced from commercial vendors. NoSQL databases can be classified on the basis of way of storing data as graph databases, key-value store databases, document store databases, column store database and XML databases.

SQL Database Examples

1. MySQL Community Edition

MySQL database is very popular open-source database. It is generally been stacked with apache and PHP, although it can be also stacked with nginx and server side javascripting using Node js. The following are some of MySQL benefits and strengths:
  • Replication: By replicating MySQL database across multiple nodes the work load can be reduced heavily increasing the scalability and availability of business application
  • Sharding: MySQL sharding os useful when there is large no of write operations in a high traffic website. By sharding MySQL servers, the application is partitioned into multiple servers dividing the database into small chunks. As low cost servers can be deployed for this purpose, this is cost effective.
  • Memcached as a NoSQL API to MySQL: Memcached can be used to increase the performance of the data retrieval operations giving an advantage of NoSQL api to MySQL server.
  • Maturity: This database has been around for a long time and tremendous community input and testing has gone into this database making it very stable.
  • Wide range of Platforms and Languages: MySql is available for all major platforms like Linux, Windows, Mac, BSD and Solaris. It also has connectors to languages like Node.js, Ruby, C#, C++, C, Java, Perl, PHP and Python.
  • Cost effectiveness: It is open source and free.

2. MS-SQL Server Express Edition

It is a powerful and user friendly database which has good stability, reliability and scalability with support from Microsoft. The following are some of MS-SQL benefits and strengths:
  • Integrated Development Environment: Microsoft visual studio, Sql Server Management Studio and Visual Developer tools provide a very helpful way for development and increase the developers productivity.
  • Disaster Recovery: It has good disaster recovery mechanism including database mirroring, fail over clustering and RAID partitioning.
  • Cloud back-up: Microsoft also provides cloud storage when you perform a cloud-backup of your database

3. Oracle Express Edition

It is a limited edition of Oracle Enterprise Edition server with certain limitations. This database is free for development and deployment. The following are some of Oracle benefits and strengths:
  • Easy to Upgrade: Can be easily upgraded to newer version, or to an enterprise edition.
  • Wide platform support: It supports a wide range of platforms including Linux and Windows
  • Scalability: Although the scalability of this database is not cost effective as MySQL server, but the solution is very reliable, secure, easily manageable and productive.

NoSQL Database Examples

1. MongoDB

Mongodb is one of the most popular document based NoSQL database as it stores data in JSON like documents. It is non-relational database with dynamic schema. It has been developed by the founders of DoubleClick, written in C++ and is currently being used by some big companies like The New York Times, Craigslist, MTV Networks. The following are some of MongoDB benefits and strengths:
  • Speed: For simple queries, it gives good performance, as all the related data are in single document which eliminates the join operations.
  • Scalability: It is horizontally scalable i.e. you can reduce the workload by increasing the number of servers in your resource pool instead of relying on a stand alone resource.
  • Manageable: It is easy to use for both developers and administrators. This also gives the ability to shard database
  • Dynamic Schema: Its gives you the flexibility to evolve your data schema without modifying the existing data

2. CouchDB

CouchDB is also a document based NoSQL database. It stores data in form of JSON documents. The following are some of CouchDB benefits and strengths:
Schema-less: As a member of NoSQL family, it also have dynamic schema which makes it more flexible, having a form of JSON documents for storing data.
  • HTTP query: You can access your database documents using your web browser.
  • Conflict Resolution: It has automatic conflict detection which is useful while in a distributed database.
  • Easy Replication: Implementing replication is fairly straight forward

3. Redis

Redis is another Open Source NoSQL database which is mainly used because of its lightening speed. It is written in ANSI C language. The following are some of Redis benefits and strengths:
  • Data structures: Redis provides efficient data structures to an extend that it is sometimes called as data structure server. The keys stored in database can be hashes, lists, strings, sorted or unsorted sets.
  • Redis as Cache: You can use Redis as a cache by implementing keys with limited time to live to improve the performance.
  • Very fast: It is consider as one of the fastest NoSQL server as it works with the in-memory dataset.