9:18 PM

A beautiful header for your Arch Linux!!!


While checking at the various images of Arch Linux KDE, the Arch headers on most terminals caught my eyes. I searched the net for the same so that even my terminal would look geeky!! The one I found was Archey which is available at AUR.https://aur.archlinux.org/packages/archey/ The Archey is a python script that could print the header on your terminal upon installation. I thought of tweaking the same or building a new one. The problem was with designing the logo. So I got into the Archey files and copied the code for generating the logo. And within minutes with my little codes the Arch header with Arch Linux logo and basic system information was up. Thought of sharing the same. Hope that it may be useful to some one.
Happy Hacking!!!



     The script for the header

9:46 AM

My girl.......


In love with Arch Linux.... <3

systemd kde4 3.6.9 kernel.......




3:44 AM

systemd : faster way to boot you system.


The systemd is a new addition to the linux system which is a replacement to the older initscripts. In earlier versions of arch linux (and on all other distros) the various daemons where started sequentially in the order in which the occure in the deamon array in rc.conf file. The systemd is an agressive parallization technique to start various deamons thus reducing you boot up time.Today I tried systemd and it was good.The system booted in less than 10 sec.

The arch community has dropped their support to the older method and insist users to use only systemd. So I gave it a try. The newer installtions come with systemd by default.

systemd can be installed by pacman -S systemd. Once installed the system can be booted using systemd by adding kernel parameter as /usr/lib/systemd/systemd

The systemd provides various tweaking facilites.

for example systemd-analyze returns the boot time of the system

systemd-analyze blame provides a verbose output of time taken by various services.

A simple graph can be ploted as
systemd-analyse plot tem.svg
eog tem.svg to view the graph.

More tips can be found at http://freedesktop.org/wiki/Software/systemd

8:26 AM

Small brightness tweak on laptop....


It was very hard trying all these days to fix the brightness controll on dell xps15.Finally got it corrected....The ACPI controlls the brightness in your laptop wich can be tweaked through a simple file in the folder

    /sys/class/backlight

The folder contains a number of subfolders like acpi_video0,intel_backlight etc. These folders contain a number of file like
brightness : which contains the present brightness value
max_brightness : the maximum possible brightness value

 use intel onboard graphics which controlls the brightness. All I need to do is to change the value of brightness file in intel_backlight.This can be done simply by echo command.

Here is a simple sript to perform the same.The up arrow key can be used to increase the brightness and down arrow key can be used to decrease the brightness.Make sure you run the script as root who has the right to write into the file.

===================================================


#!/bin/sh

folder="/sys/class/backlight/intel_backlight"

cd "$folder"

value=3000
max=4882
min=100

if (($EUID != 0))
then
    echo "You do not have required previlages to run the script!!!"
    exit 1
fi

while true
do
    read -n3 -s  key
    echo -n "$key" | grep "\[B"
    if [ "$?" -eq 0 ]
    then
        if (($value < 100))
        then
            value=100
            continue
        fi
        echo $value
        echo -n $value > brightness 
        value=$[$value-100]
    fi
    echo -n "$key" | grep "\[A" 
    if [ "$?" -eq 0 ]
    then
        if (($value > 4000))
        then
            continue
        fi
        echo $value
        echo -n $value > brightness 
        value=$[$value+100]
    fi
done

===================================================

11:26 PM

Using NTFS drivers on Linux


In Arch Linux the users will not have any read permissions on NTFS drives by difault. It can be resolved using a simple package called ntfs-3g. Apart from Debian the the ntfs usage has to be manually done by editting the /etc/fstab file. Perform the following as root to add the NTFS capabilities.

pacman -S ntfs-3g

add the following line to /etc/fstab

# <file system>   <dir>  <type>    <options>             <dump>  <pass> 
/dev/<NTFS-part>  /mnt/windows  ntfs-3g   defaults    0       0 
 
  
The partition will be mounted at /mnt/windows.If you do not want to mount the partition by default use none instead.
If you want to people in users group access the drive then use

gid=users,umask=0022 
 
instead of default under options.
Reboot the system and enjoy!!!

8:05 AM

Shell script to convert video to mp3

The following shell script takes a video file as input and converts it into mp3 file at users home directory.Ensure that the file name is specified in double quotes if it contains any whitspaces.

====================================================


#!/bin/sh


folder="/home/$USER/Music"
name=""
if [ -z "$1" ]
then
    echo "No file name specified "
    echo "Please provide the absolute path of the file Ensure that the file name is enclosed in single quotes"
    exit 1
fi

echo "Output file name?"
read name
ffmpeg -i "$1" -acodec libmp3lame -ab 160k -ar 44100 -ac 2 "$folder/$name" 
if (($? != 0 ))
then
    pacman -Q lame ffmpeg > /dev/null
    if (($? !=0))
    then
        echo "Please ensure that lame and ffmpeg are installed on your system"
        exit 2
    else
        echo "No such file exists"
        exit 3
    fi
fi
echo "File successfully converted"
exit 0

===================================================

12:55 PM

Hangman game through Python



Simple python code to implement the hangman game.The code assumes that you have a file named 'words.txt' which contains n number of words.The program randomly selects one word from the file. The user is given 8 chances to guess the word.Each word guessed by the user is added to the lettersGuessed list.Procedure isWordGuessed() is used to determine whether the guessed letter is in the secretWord.If not the number of guesses remaining is reduced by one.Procedure getGuessedWord is used to print present correctly guessed words and thier locations...

===================================================import

import random
import string

WORDLIST_FILENAME = "words.txt"

def loadWords():
        print "Loading word list from file..."
    inFile = open(WORDLIST_FILENAME, 'r', 0)
    line = inFile.readline()
        wordlist = string.split(line)
        print "  ", len(wordlist), "words loaded."
       return wordlist

def chooseWord(wordlist):
       return random.choice(wordlist)

def isWordGuessed(secretWord, lettersGuessed):
    for letter in secretWord:
        if letter in lettersGuessed:
            continue
        else:
            return False
    return True

def getGuessedWord(secretWord, lettersGuessed):
    result = ""
    for letter in secretWord:
        if letter in lettersGuessed:
            result += letter
        else:
            result +=  '_ '
    return result
   


def getAvailableLetters(lettersGuessed):
    result = ""
    for letter in string.ascii_lowercase:
        if letter not in lettersGuessed:
            result += letter
    return result
   

def hangman(secretWord):
    lettersGuessed = []
    mistakesMade = 8
    guess=""
    print "Welcome to the game, Hangman!"
    print "I am thinking of a word that is" ,len(secretWord)," letters long."
    while mistakesMade:
        print "--------------------------------------------------------"
        print "You have",mistakesMade," guesses left."
        print "Available letters:",getAvailableLetters(lettersGuessed)
        print "Please guess a letter:"
        guess=raw_input()
        guess=guess.lower()
        if guess in lettersGuessed:
            print "You've already guessed that letter" ,getGuessedWord(secretWord,lettersGuessed)
            continue
        else:
            lettersGuessed.append(guess)
        if isWordGuessed(secretWord,[guess]):
            print "Good guess:",getGuessedWord(secretWord,lettersGuessed)
        else:
            print "Oops! That letter is not in my word:",getGuessedWord(secretWord,lettersGuessed)
            mistakesMade -= 1   
        if  '_' not in getGuessedWord(secretWord,lettersGuessed):
            print "Congratulations, you won!"
    print  "Sorry, you ran out of guesses. The word was ",secretWord,"."

def main():
    wordlist = loadWords()
    secretWord = chooseWord(wordlist)
    hangman(secretWord)

if __name__ == '__main__':
    main()

==================================================

12:45 PM

Python program to find solution of a polynomial using Newtons method



The Newtons method is used to find the root of an n digree polynomial by successive guesses.The simple algorithm to find the root using Newtons method is.
  1. Take initial guess as x_0
  2. Now evaluate the value of the polynomial at x_0
  3. Check if the value is near to zero within a small epsilon (say .01). If yes we call x_0 as the root 
  4. calculate new value of x_0 as x_0=x_0-[f(x)/f'(x)] 
  5. Check if this new value is close to root and so on until you find a root


Here is a simple python program to find the root of a polynomial.The polynomial is represented as a list with the index of each number as the power of x.Three procedures are used to find the value of the polynomial,its derivative and to compute the root of the polynomial

The program returns a list with root and number of itterations performed to find the root

=================================================== 



def evaluate(poly, x):
    value=0.0
    for index in range(len(poly)):
        value  = value+(x**index)*poly[index]
    return value

def Deriv(poly):
    for index in range(len(poly)):
            poly[index]*=index
    poly.pop(0)
    if len(poly) == 0:
        poly.insert(0,0.0)
    return poly

def Root(poly, x_0, epsilon):
    value = (evaluate(poly,x_0))
    poly1=[]
    for num  in poly:
            poly1.append(num)   
    Deriv(poly1)
    count = 0
    while abs(value)  >= epsilon:
        derivalue=(evaluate(poly1,x_0))
        if derivalue == 0:
            x_0 = 0
            break
        x_0 = x_0 - (value/derivalue)
        value=(evaluate(poly,x_0))
        count += 1
    return [x_0,count]
   
  def main():
    poly = [-13.39, 0.0, 17.5, 3.0, 1.0]   
    #poly=[1]
    x_0 = 0.1
    epsilon = .0001
    print computeRoot(poly, x_0, epsilon)   
           
if __name__ == '__main__':
    main()


===================================================
===fa 
  

1:55 AM

Migratting to Arch Linux..!!




After experimenting on Fedora for months today i ported myself fully to Arch.Arch Linux is a light weight Linux distribution.The Arch is based on simplicity, simple as stick!! The Arch Linux provides the power and combustibility than any other Linux system out there.

The Arch Linux involves installation from scratches and  one can customize the OS in any way one needs to. On a fresh installation of the operating system you will only have a basic Linux system with no GUI,no sound,etc but all basic modules to run an OS. You will be greeted only by a tty where you can login as root and start building your custom OS!!!

The Arch Linux emphasis on simplicity and wants to make your system as simple as possible.By giving such a low functional operating system, the Arch wants the users to add only those packages one needs to. This makes your system light weight and much more flexible than any other Linux distribution. That is in Fedora installing the OS will give you many different packages which you may not even know what it does.There no such case in Arch.If you think you want it then you can install it.

The Arch uses a power full package manager called pacman.The pacman is a light weight package manager in which you will have access to the latest packages compared to other package managers like apt or rpm.

Final word: The Arch Linus is a definite try for intermediate and expert Linux users. Even though the installation in little bit lengthy you will surely benefit from it, you will get a clear picture of what each are meant for and so on.....Beginners are not recommended to use Arch Linux as you should have basic understanding of Linux file system and which files are meant for what and so on....

The arch wiki page is the best guide one can find.The beginners guide contains all details you may want .

Arch Linux beginners guide

Be sure to read each and every line of the wiki if you miss one it will surely screw your system ;) . Last day I accidentally missed a warning which crashed my system...

So give it a try .
Keep exploring and live curious !!!

12:37 AM

Installing mp3 puling gstreamer and vlc on fedora

The fedora repository does not provide many software's which are provided in rpmfusion repo. The rpm fusion contains many popular packages like vlc and gstreamer (mp3 plugin for rhythmbox etc)
The following shell script configures rpmfusion on fedora and installs your favorite softwares........


#!/bin/sh

#program on fedora to install gstreamer vlc
#these packages are in rpm fusion repostiory

no_of_argmnt=1;

#checks wether the user is root or not
if (( $EUID != 0 ))
then
    echo "the script must be runed as root"
    echo "try again as"
    echo "su -c \`sh $0.sh \"package\"\`"
    echo "package can be gstreamer or vlc "
    exit 1
fi

#checks for the parameters
if (( $no_of_argmnt != $#))
then
    echo "parametes missing"
    echo "scrpit usage::"
    echo "su -c \`sh $#.sh \"package\"\`"
    echo "package can ve gstreamer or vlc "
    exit 1
fi

echo "Configuring Rpm fusion...."
echo "Getting rpm fusion package from http://download1.rpmfusion.org"
yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

if [ $1 == "vlc" ]
then
    echo "Installing vlc..."
    yum install vlc
elif [ $1 == "gstreamer" ]
then
    echo "Installing gstreamer..."
    yum install gstreamer-{ffmpeg,plugins-{good,ugly,bad{,-free,-nonfree}}}
else
    echo "Unknown package"
fi

echo "Finishing installation.."
exit 0
    

7:37 AM

Script to install flash plugin



A simple bash script to install flash for mozilla and/or chromium browser on any linux system.

sript usage:

To install for fedora use
    sh installflash.sh mozilla

To install for chromuin use
    sh installflash.sh chromium

For both use
    sh installflash.sh mozilla chromium

IMPORTANT :: the script must be excecuted as root

####################################################

#!/bin/sh


if [ -z $1 ]
    then
    echo "Arguements missings"
    echo
    echo "To install for fedora use"
    echo "    sh installflash.sh mozilla"
    echo
    echo "To install for chromuin use"
    echo "    sh installflash.sh chromium"
    echo
    echo "For both use "
    echo "    sh installflash.sh mozilla chromium"
    echo   
    exit 1
fi

if (( $EUID != 0 ))
     then
     echo "This scritp must be run as root"
     exit 1
fi
echo "Downloading flash files from adobe"
mkdir temp
cd temp

wget http://fpdownload.macromedia.com/get/flashplayer/pdc/11.2.202.236/install_flash_player_11_linux.x86_64.tar.gz
tar -xvf install_flash_player_11_linux.x86_64.tar.gz

if [ -n $2 ]
    then
    echo "installing flash for mozilla"
    mv libflashplayer.so /usr/lib64/mozilla/plugins/ 2> /dev/null
    if (( $? != 0 ))
    then
        mkdir usr/lib64/mozilla/plugins/
        mv libflashplayer.so /usr/lib64/mozilla/plugins/       
    fi
    echo "installing flash for chromium"
    mv libflashplayer.so /usr/lib64/chromium-browser/plugins/ 2> /dev/null
    if (( $? != 0 ))
    then
        mkdir usr/lib64/mozilla/plugins/
        mv libflashplayer.so /usr/lib64/chromium-browser/plugins/       
    fi
   
fi
if [ $1 = "mozilla" ]
    then
    echo "installing flash for mozilla"
    mv libflashplayer.so /usr/lib64/mozilla/plugins/ 2> /dev/null
    if (( $? != 0 ))
    then
        mkdir usr/lib64/mozilla/plugins/
        mv libflashplayer.so /usr/lib64/mozilla/plugins/       
    fi
fi

if [ $1 = "chromium" ]
    then
    echo "installing flash for chromium"
    mv libflashplayer.so /usr/lib64/chromium-browser/plugins/ 2> /dev/null
    if (( $? != 0 ))
    then
        mkdir usr/lib64/mozilla/plugins/
        mv libflashplayer.so /usr/lib64/chromium-browser/plugins/       
    fi
fi

rm -rf temp/
rmdir temp

###################################################

6:46 AM

Enable Flash Player For Chrome In Linux

Adobe Flash Player is is a multimedia platform used to add animation video and interactivity to webpages.The synaptic package manager provides a flah plugin which may or may not work....It didn't work for me!!!
Here is an alternative way to do so...

Download the .tar.gz file found at the link  http://get.adobe.com/flashplayer/otherversions/

Extract the file to get file libflashplayer.so

create a file named plugin at  opt/chrome/ by the command


sudo mkdir /opt/google/chrome/plugins



Now move the file to the created folder using

sudo cp /location/flashplugin-installer/libflashplayer.so /opt/google/chrome/plugins


Now the launcher command has to be edited by the following steps.

Right click at Applications and click on edit menus




Under the internet look for google chrome right click to  get properties 


Change the command as

/opt/google/chrome/google-chrome --enable-plugins %U

Restart Chrome and you are done !!!!!!





8:10 PM

Linear Regression

Linear regression in is an approach to modeling the relation between a scalar variable y and another variable x.The linear regression involves an analysis of a set of data so as to arrive at an approximate relation between the data so that further predictions of values of y corresponding to the given values of x become possible.

Regression analysis can be done in a number of methods.In linear regression analysis we attempt to arrive at a linear equation of the form y=bx+a so as to model the data.



The values of b,slope and a,y intercept can be found with the help of the following relation

linear regression equations 

Now the equation defines a straight line so that the distance between the line and the given points in minimum.

Once the values of a and b available the prediction is possible using the equation

y=a+bx

Implementation using octave.

The linear regression analysis is implemented using 2 functions..predict() and value()

The predict function takes a nx2 matrix as argument.The elements of the matrix is the arranged such that each row corresponds to a pair of data ie x and y .
The code can be written as..


unction predict(a)

x=0;
y=0;
xy=0;
xx=0;
   yy=0;

for i=1:size(a,1)
x=x+a(i,1);
y=y+a(i,2);
xx=xx+(a(i,1)^2);
yy=yy+(a(i,2)^2);
xy=xy+(a(i,1)*a(i,2));
endfor

m=0;
c=0;

n=size(a,1);
c= ((y*xx)-(x*xy))/((n*xx)-(x*x));
m= ((n*xy)-(x*y))/((n*xx)-(x*x));

        save("c.mat");
save("m.mat");

end


function [y]=value(q)

load("c.mat");
        load("m.mat");
y=(m*q)+c;

end


6:36 AM

Bypassing network proxy in apt-get

Using apt-get command in proxy network results in an error ....
proxy authentication required.
This can be resolved by creating a configuration file in apt.
navigate to /etc/apt/apt.conf
open an editor by
nano apt.conf
add the following lines to the file
Acquire::protocol::proxy "protocol://username:password@proxy:port/";
where protocol is the network protocols like http,https,ftp,etc with wich you download the package.

9:09 PM

Installing Packages From CD/DVD

Software packages for Debian can be installed either from an installation disk or by downloading the packages from the internet.
In order to download softwares from an archive the cd/dvd must be added to the file sources.list. The sources.list file can be modified by the command apt-cdrom




# apt-cdrom add
Using CD-ROM mount point /cdrom/
Unmounting CD-ROMPlease insert a Disc in the drive and press enterMounting CD-ROMIdentifying.. [0eabc03d10414e59dfa1622326e20da7-2]
Scanning Disc for index files..  Found 1 package indexes and 0 source indexes.
This Disc is called:
 'Libranet GNU/Linux 2.8.1 CD2'
Reading Package Indexes... Done
Wrote 1271 records.
Writing new source listSource List entries for this Disc are:
deb cdrom:[Libranet GNU/Linux 2.8.1 CD2]/ archive/
Repeat this process for the rest of the CDs in your set.


This is the only way to add cd archives to the source.list



In order to identify the disk in use  the command apt-cdrom ident can be used



$ apt-cdrom ident
Using CD-ROM mount point /cdrom/
Mounting CD-ROMIdentifying.. [0eabc03d10414e59dfa1622326e20da7-2]
Stored Label: 'Libranet GNU/Linux 2.8.1 CD2'
$




Now the packages can be installed from the cd drive by the use of apt-get.
In order to endure that the packages are installed form the cd comment all other lines in the source.list file.Run aptitude update to update the changes made to the sources.list