Community Blogs

Wont be good

With new Linux.Com we got many opportunity for share our experiences. Blogs, groups, submitting articles. all of these good. But one thing about the site will be problem. "Guru Wars" because some of pll want the rewards so badly, they can simply take every unneccesary steps for being number one. This kind ranking systems can be huge problem for our community.

Make c/p and post unlimited blog entries

Join all groups

Be everyones friend

Send some sort answers to all topics at the forums(yeah, gg^^, yow yow)

and be number one! Linux.Com can continue this race, but they must make some changes for the  safety of our minds :D First of all they should close the ranking system to members with this ppl wont know whats their status. Second they should remove guru status from the main page. I really dont care whose ranking better. If they are good i can read their work by myself.

Your Fan

Ceyhun Alyesil


Keyboard shortcut for Gwibber

I've recently joined Twitter and its great! I installed Gwibber and its a nifty client. Being the rodent averse person I am, I had to find a way to have a keyboard shortcut for this trivial task. So, what did I do? I wrote this:


if [ -z "$(ps -eaf |grep -i $ppath|grep -v grep)" ] ; then
    nohup $prgstr &
    sleep 1
[ -z "$(wmctrl -l |grep -i $prg|grep -v grep)" ] && $prgstr
wmctrl -a "${prg}"

This launches Gwibber if its already not running. Otherwise, it just brings the window to the foreground. Best part of Gwibber is, it ensures you only have one instance running so this works even when Gwibber is iconified on gnome-panel.Bless you wmctrl

My HP Laptop had an "Information" key which was lying idle. So, I fired up "xev", got the keycode, assigned it to a virtual key (F21 in this case) and attached the above script to it in Compiz! So now, I just need to press one key to check my Twitter feeds :)

 Next step, modify it to work as a toggle key...



Well i think this website its quite impressive and renewing. More interactive and openminded. Well done!

grnotify in den Jaunty Quellen

Die Vorgeschichte: Neben Linux besitze ich noch eine weitere Sache des WWW, welche mich sehr interessiert und wo ich mich auch etwas auskenne: Google. Da liegt es nahe, wenn man versucht diese beiden Sachen zu kombinieren. Da ich mich, wie bereits erwähnt, sehr mit Linux beschäftige, lese ich jeden Tag etliche Nachrichten und Blogs mit Linux als Themenschwerpunkt - und das an verschiedenen Standpunkten. Also brauche ich einen Feedreader im Web: der Google Reader.

Die Programmvorstellung: Diesen kann man sehr leicht und sehr gut mit einem Linuxdesktop verknüpfen: das in den Ubuntu-Quellen enthaltene Paket "grnotify"ist ein Applet, welches sich so lange ruhig verhält, bis es neue Feeds gibt. Diese kann man dann aus dem Applet heraus öffnen. Das geniale daran: es prüft die Anzahl der ungelesenen Feeds vom Google Reader. Also kann man auch im Google Reader Feeds lesen und bei der nächsten Abfrage verringert sich die Anzahl der ungelesenen Feeds in grnotify. Hat man also 10 ungelesene Feeds und öffnet fünf aus dem Google Reader heraus, weiß auch grnotify, dass es nur noch fünf ungelesene gibt.

 Das Problem: In der Version die in den Jaunty Paketquellen enthalten ist aber gibt es mit grnotify ein Problem: Es will nicht mehr starten. In der Fehlermeldung heißt es, das Modul "GoogleReader" würde nicht gefunden werden, es ist aber da. Ob es ein Bug im Programm oder in Python ist, ist mir nicht bekannt, aber wie man es umgeht: Man nutzt einfach eine ältere Version, da das Programm schon immer zum Feedabrufen gedacht war, funktioniert also auch eine ältere Version, und sogar noh besser als die Aktuellste: sie startet nämlich. Auf gibt es diese funktionerende Version von grnotify. Die Versionsnummer (1.0.2) zeigt: sehr nahe an 1.0, also bestimmt stabil. Kann ich nur bestätigen ;-).

Viel Spass



Fsniper is a tool to watch for files, and execute commands on them. It can be aquired by anyone running archlinux via these commands


sudo makepkg -i


and that's it. Installed. To start fsniper use the fsniper binary. This will start in the foreground by default, which negligates it's use. Instead of executing it with a "&" appended, we just use the --daemon option. This executes it as, you guessed it, a daemon. Don't execute it yet though, as we have no configuration file

Fsniper uses one configuration file, located in ~/.config/fsniper/config. It  has a very simple structure, but it is a bit littered with curley brackets, so be carefull. Here's the layout:

  watch {

                Directory/you/want/to/watch {

                                 files {

                                       handler = comand you want to execute on file





The files can be defined via name or mime type. The program takes wildcards (* and so on) aswell as enviroment variables. For the handler, "%%" is the full file path, while "%" is just the file name.

  As you can see, it's a simple setup, but hugley usefull. Here is my configuration file:

 watch {

                $HOME/bin {

                                * {

                                               handler = chmod 755 %%



                $HOME {

                                 Desktop {

                                                    handler = rmdir %%




The first one makes every new file in my bin directory executable, and the second one deleats the Desktop folder everytime it is created (kde desktop keeps making one)


I can't see much more to say about fsniper apart from one thing, DON'T use it on file types you are likly to download with firefox (*.tar.gz, *.zip, *. jpg ect, ect,) as they are first put into a *.*.part file, while a seperate *.* file is created, meaning that the *.* file is acted upon, but before it has had any data inputed into it from the *.*.part file.



Over the past few weeks, I've been working on a script that downloads files from youtube, and then extracts the audio from them. Well, it dosn't actualy, it just acts as a wrapper for several different programs that actualy do the work. It adds several fetures though:

Interactive execution 

Search function



Renaming and moving files

 Its dependencies are:

 youtube-dl - actual downloads the .flv files

pacpl - encodes the files

id3 - tags the files

 All of these can be install via one command on archlinux systems:

 sudo pacman -S id3 youtube-d; yaourt -S pacpl

once you have done that, you need to get the actual script. For this, we use git (pacman -S git) to download it. Once that is installed, we can fetch an up to date copy with the following comand.

git clone  git://

Once that has been done, you will have a new folder called Youtube-audio in your current directory. Inside that will be another file called youtube-audio. That is the actual script. You can copy that to your personal bin directory, or if you want it to be acceseible globaly, to /usr/bin. Just remeber to make it executable with chmod 755.

 Once that has been done, we can actual use the program. To execute it, just type youtube-audio into a comand line (Gui coming later). You will be asked if you want to enter the url of the video you want, or want to search for it. I suggest searching. You will be prompted to enter your search queary, and a list of the top 5 results will apear. After that you will go though a dialoug that will let you tag the file, rename it, and move it to some where apropriate. The program is still very immature, so let me know if any finds any problems.



¡Benvidos a Galiza-Linux!

Un novo blog no que impulsar a expansión de Linux en galego.


Kids and Linux

Hey, Just got back from my daughters Pre-K graduation program and seeing the technology section in their class reminded me of time her and I built an Edubuntu box. I feel children should be fully exposed to technology. There a some really great projects out there for children, Edubuntu, GCompris, Tux Paint to name a few.

Edubuntu is a great project for all ages. When I first introduced it to my daughter (she had just turned 4) it was its own distro for the most part but now its an add-on of packages for an existing Ubunutu install. Now, not to knock it by any means, but if you don't want to dedicate a whole computer for your child's use I recommend installing a couple of packages individually. 

Two of my favorites are GCompris and Tux Paint .  GCompris teaches your child all kinds of things from algebra to shapes and sounds.  While Tux Paint is an enhanced paint program with a really cool stamp tool. 

 So lets say you don't want to install any of these packages on YOUR computer. Why not remaster Knoppix with GCompris, Tux Paint, and whatever else. Nothing better than a live CD/DVD for the little one to play with.

What's your take on this? Feel free to share your favorites.  



The Begining

This is the begining of my blog that will follow my Linux journey as well as give useful tips and tricks to others in the community.

The Disadvantages of's New Guru Point System

It is in terribly poor taste, in my opinion, to come into someone else's home and denigrate or criticize them for the way they do things in their own home. This posting is going to give me a bit of that feeling. I don't make a habit of this as a new member of a community. However, in this instance, I think it's necessary to point out a few things that I am witnessing here at the new I apologize if feelings are hurt in the process. It's not intentional, I assure you.


I don't know who came up with the new Guru points/rewards program here at, but it has a downside. To me, a guru is someone with above average knowledge about a certain subject. Being a guru does not always mean that the person is going to be forthcoming with their knowledge or helpful to others. However, in the GNU/Linux/Opensource communities, we usually take for granted that someone labeled as a "guru" is someone who takes extra time and effort to help those in need in these communities.

The new Guru points/rewards program, while being kinda' cool and giving members a goal to work toward, is not promoting the kind of guru this community deserves. I've seen many members here blatantly manipulating their actions here at just to increase the Guru points tally. That's great! They're going to get a laptop autographed by Linus. Hell, I'd like to have one of those too. Yet, are these people the knowledgeable and helpful gurus that we've come to know and love in our communities? Probably not.

Just because joeblabberface2002 and janehacker13 create 23 Groups and join 119 more between them doesn't make them gurus, in my estimation. It makes them cheating manipulators of a system set up with honest goals and intentions, but faulty foresight of human behavioral patterns.

Solutions? Good question. I know is still in flux and will be for some time. That is the nature of a new and evolving website. I'm sure others have made the same observations as I have here. I wouldn't be surprised to hear that something to solve this issue is already in the works. There must be a fairer way, I'd say. There are many, many intelligent people here from all over the world. I should think a bit of brainstorming and discourse could work out for the betterment of and the entire community.

This wasn't my original plan for today's blogpost, but hey... it needed to be said.

Until next time...

V. T. Eric Layton

***Tempus Fugits***



Using Perl to print Avery labels.

This blog will discuss how to use the Perl module PostScript::MailLabels to print Avery labels.

The basic design is to have your user(s) run the following BASH shell script, which will then call a Perl script that builds a postscript file, then the BASH script will send the postscript file to the printer.

Here is the shell script your user(s) will run.



#This shell script is used to print address labels.#

#Must export default printer environment variable
#in order for lpr to function correctly.  The rest
#will be executed from a Perl script.

#declare variables
DATE=`date +%m%d%y`
MYPERL=`which perl`

#get name of file user wants to process
echo "What printer do you want to print to?"
#echo "Going to process: $DEFAULTPRINTER"

#set default printer to DEFAULTPRINTER

#call perl script which builds a postscript
#file sends it to user's printer.
perl $SCRIPT

#send postscript file to the printer
`cat ${FILEPATH}$DATE | lpr -P $PRINTER`

exit 0

 The BASH script basically asks the user what printer they want to print to,  set's the user's DEFAULT printer, then calls your Perl script using the modulePostScript::MailLabels to build a postscript file, then the BASH script  sends it to the user's printer.

Here is the Perl script which does most of the "heavy lifting."

#!/usr/bin/perl -w


#This script will open a file containing a list of                  #
##addresses, use the addresses to build a postscript file, #
##and send that file to a printer.                                           #

#import required modules
use strict;
use PostScript::MailLabels;

#declare local variables
my $labels;
my @addresses;
my $filename;
my $filepath = '/home/user1/';
my $date = `date +%m%d%y`;

#get name of file from user
print "Enter name of file you would like to process:  ";
$filename = <>;

##inform user of progress
print "Creating postscript file ...\n\n";

$labels = PostScript::MailLabels->new;

#create file handle for reading
open(NEWADDRESSES, "$filepath$filename") or die("Unable to open file: $!");

#read file one line at a time
while () {

    #delete first line containing name;street1;street2;citystzip$
    next if /^name;/;
        Avery       => $labels->averycode(5961),
        PaperSize   => 'letter',
        postnet     => 'no'



    #Match lastname, firstname, and address.
    my $pattern = '^(.+),\s+(.+);(.+);(.*);(.+),\s+(\w{2})\s+(\d{5}|\d{5}-\d{4})';

    $_ =~ /$pattern/;

    my $lname = $1;
    my $fname = $2;
    my $address1 = $3;
    my $address2 = $4;
    my $city = $5;
    my $state = $6;
    my $zip = $7;

    my @record;

    push @record, $fname;
    push @record, $lname;
    if ( $address2 !~ /^$/ ) {
        push @record, "$address1, $address2";
    } else {
        push @record, $address1;
    push @record, "$city,";
    push @record, $state;
    push @record, $zip;

    #print $labels->makelabels( $addresses );
    push (@addresses, \@record);

#close while loop

#open file handle for writing
open(PRINTADDRESSES, ">$filepath$date") or die("Unable to write file: $!");
 #write postscript file
print PRINTADDRESSES $labels->makelabels( \@addresses );

#close filehandle

#close filehandle

#notify user of file completion and get printer name
print "Postscript file named $date has been created successfully.\n";

#exit cleanly
exit 0;

The Perl script basically asks the user what's the name of the file they want to print, reads in the file (; delimited in this case), outputs a postscript file.

Obviously you will have to make some changes in order to get these scripts to work in YOUR environment!

Note: This is for Avery labels with Avery code 5961.  Please review  PostScript::MailLabels's documentation on CPAN to see if the module supports your particular labels or not.  You will also probably have to tweak the  "labelsetup" and "definelabel" parts to fit your needs.  Also note that the file this script reads is in the format of name;strete1;street2;citystzip$ semicolon delimited with a trailing $.  You will have to tweak the regex if your file is in a differet format.

Disclaimer:  This blog entry comes with NO expressed warranty, guarantee, support, or maintenance of any kind!  Use at your own risk!  

Good luck and happy printing!

Page 123 of 137

Upcoming Linux Foundation Courses

  1. LFD312 Developing Applications For Linux
    05 Jan » 09 Jan - Virtual
  2. LFS220 Linux System Administration
    05 Jan » 08 Jan - Virtual
  3. LFD331 Developing Linux Device Drivers
    12 Jan » 16 Jan - Virtual

View All Upcoming Courses

Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board