Monday, March 26, 2007

Extracting fields from a file

Have you every wanted to extract a particular field from a flat file that was hundreds or thousands of lines long?

Now, I bet your saying, sure you could import the file into Excel, Spreadsheet or some other spreadsheet application, but what fun would that be. That would mean using your mouse, but your a keyboard kind-of-person. In addition, opening very large files may leave spreadsheet applications very sluggish.

So whats the alternative? AWK (or gawk). Awk is a command line program that can do just what you wish. For example, lets say that you wanted to extract all the full names from your system's /etc/passwd file. Now you could import the file in your favorite spreadsheet application, specify a delimiter, and wait for it to process, depending on the size of your passwd file. Alternatively, you could run the following awk command:

awk -F: '{print $5}' /etc/passswd

This command uses the '-F' flag to specify the semicolon as a delimiter. The 'print $5' section tells the program to print out the 5th field in the file. Finally /etc/passwd specifies the file to extract the field from.

Now I bet you are saying, so what? How did this help me at all, and why didn't I just use the spreadsheet? Well, not only did you not have to import the file into the spreadsheet program, but you can easily pipe the output of this program to other useful applications that allow you to accomplish what you need to. A quick example, is the ability to pipe the output through the 'sort' command which will then list the users full names in alphabetical order.

Still not convinced that this was easier than opening your precious spreadsheet application. When you are referencing a data source that changes often, such as the passwd file on high usage *nix systems, awk definitely pulls its weight. You could easily setup an alias, or a shell script to execute the command for you, and now you can simply type a few characters and hit enter as opposed to fiddling with your spreadsheet, waiting for it to import the data, and dealing with the slow responsiveness as all your system memory is used up.

Give it a try.

Sunday, March 25, 2007

Beryl: Lack of Dual Video Card Support

I recently upgraded from one EVGA Gefore 6800 PCI Express card which had two 19" Widescreen Samsung Syncmaster monitors to two Gigabyte Geforce 7300 LE video cards. Since they were both nvidia cards, the upgrade was quite easy. I was required to make a few updates in the /etc/X11/xorg.conf. These weren't to bad. It required adding another video card section, or 'device' and then linking that device to one of the other monitors and adding it to the server layout.

The really disappointing thing was the lack of beryl support for multiple video cards. At first I thought that some configuration item was messed up, so I started troubleshooting. I closed beryl manager and opened beryl through the command prompt and I was able to see the error regarding ROR which would not allow beryl to start.

I started looking through the forums on the beryl website and I did find a few places that explained why this was not possible, although there were a few posts that eluded to the possibility of two video cards and beryl. In order to clear up confusion, I created a post to try to get a straight answer. After a few days, I received no response, so I posted again.....still no response. Here is the link to the forum post. Maybe someone will reply, but until then it seems impossible to use beryl with two video cards and one extended desktop. (Note: Beryl does work with two video cards if you use two separate X sessions. You can still drag the mouse between them screen, but you cannot drag windows between the sessions or interact in any other way.)

Auto Complete

Possibly the single greatest feature in a Linux system is auto complete. If you have never used this feature before, open a shell and start typing a command, and press the 'Tab' key before you finish typing it.

This feature saves so much time when typing commands and especially paths. But it isn't just a time saver.

Another great use for it is to verify the existence of files and directories. For instance, if you think a file exists in /etc/apt/ called sources.list but you aren't sure, you can type:

'less' (or cat or more) followed by '/etc/apt' and then start pressing the 'Tab' key. The auto complete feature will first add a '/' to the end of '/etc/apt', which verifies that it is in fact a directory, and then when you continually press tab, it will display the files within the directory.

Mastering the use of the auto complete feature is one of the first steps to saving yourself a lot of time when using the command line.

Thursday, March 01, 2007

Apache2 and SSL on Ubuntu

A perfect small guide to setup apache2 and ssl on ubuntu:

A Mini-Howto for apache2: :)

apt-get install apache2
(and answer the questions)

Now, enable ssl:
a2enmod ssl

configure ssl:
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/ssl
"/etc/apache2/sites-enabled/ssl" should look like this:

NameVirtualHost *:443

(... configure the directories too...)
and "/etc/apache2/sites-enabled/default" should look like this:

NameVirtualHost *:80

(... configure the directories too...)
In /etc/apache2/ports.conf, add Listen 443

In the middle of /etc/apache2/sites-available/ssl file, insert this two lines:

SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem

Hope it helps :)

Tuesday, February 27, 2007

firefox evince and acroread using mozplugger

The problem: Have both acroread (Adobe acrobat reader for linux), and evince (a pdf reader for linux) installed, but by default have documents open in firefox tabs in evince and not acroread.

The reason both need to be installed is because acroread allows you to fill in and print interactive pdfs, but evince is much more lightweight and scrolls much better. Evince overall leaves my system more responsive when using it.

By default with acroread installed, it becomes the default for opening PDFs in firefox while using mozplugger. In order to have evince be the default PDF reader in firefox you need to modify mozplugger's settings which are stored in:


Open this and find the section:

application/pdf:pdf:PDF file
application/x-pdf:pdf:PDF file
text/pdf:pdf:PDF file
text/x-pdf:pdf:PDF file

Now find the line that reads:


Now you will need to move that line below the line similar to:

repeat noisy swallow(evince) fill: evince "$file"

So you should end up with:

application/pdf:pdf:PDF file
application/x-pdf:pdf:PDF file
text/pdf:pdf:PDF file
text/x-pdf:pdf:PDF file
repeat noisy swallow(evince) fill: evince "$file"

Now close all firefox windows and start it again.

Monday, January 15, 2007

Flash in 64 bit Linux

I was FINALLY able to get it working. I wish I would have found this earlier. It worked like a charm:

Tuesday, December 19, 2006

Firefox Memory

Now everyone has heard the firefox memory leak rumors.....errrr.....feature announcement....yea....Ok, feature or no feature, c'mon:

I have a feature request.....remove this one.....

Saturday, December 02, 2006

HOWTO: Set your system up for Wake On LAN (WOL) - Ubuntu Forums

This site has a great and quick how-to for setting up wakeonlan. I set it up but haven't yet tested to make sure it works on my desktop, which is set to suspend after 1 hr of inactivity

HOWTO: Set your system up for Wake On LAN (WOL) - Ubuntu Forums: "Automatic way:
This script does everything described in the Manual way, for you, except step 1 and step 4.

The automatic method is super dialup friendly! thanks to gzip compression the filesize is a mere 1.5kb! almost half the extracted size of 3.4kb!

1. If you havent already, go to your BIOS, and turn on WakeOnLAN (it varies, look for it.) If your network card is onboard, your set for step 2, otherwise there is probably a cable that should go from your network card to your motherboard, though this is not always the case.

Before continuing, note the interface you want to do this to. Most people know how to do this, if you do not, look at step 2a of the manual method.

2. Download and extract this: You can do it with the GUI and run the extracted program in a terminal by double clicking it, or open a terminal and do the following:

wget tar -zxvf lanwake0.9.tar.gz ./wolinstall0.9.bash

3. As the exit of the program notes, now you just need to get/use a wake on lan sending program, like wakeonlan.

4. Sit on your lazy *** and have fun