You are on page 1of 37

Issue #23 - March 2009

full circle
STEVE STALCUP

THE INDEPENDENT MAGAZINE FOR THE UBUNTU COMMUNITY PROGRAM IN C - PART 7


WEB DEVELOPMENT - PART 4
SPREADING UBUNTU - PART 2

TROUBLESHOOTING TROUBLESHOOTING

USING THE COMMAND LINE


HOW TO BE A GEEK GODDESS

1
Full Circle magazine is not affiliated with or endorsed by Canonical Ltd.
p.04

Troubleshooting p.06

full circle
Program In C - Part 7 p.08
Web Development - Part 4 p.15
Spread Ubuntu - Part 2 p.19

www.fullcirclemagazine.org
Becoming An Ubuntu User p.22

How To Be A Geek Goddess p.23


: Steve Stalcup p.24
p.26
p.28
p.30
P.23 P.24
P.08 P.15 p.32
p.33
: Task Managers p.35
p.37

P.19 P.28 P.30 P.35

icons: KDE4 Oxygen

The articles contained in this magazine are released under the Creative Commons Attribution-Share Alike 3.0
Unported license. This means you can adapt, copy, distribute and transmit the articles but only under the following
conditions: You must attribute the work to the original author in some way (at least a name, email or URL) and to this
magazine by name ('full circle magazine') and the URL www.fullcirclemagazine.org (but not attribute the article(s) in any way that
suggests that they endorse you or your use of the work). If you alter, transform, or build upon this work, you must distribute the
resulting work under the same, similar or a compatible license.

2
EDITORIAL
This magazine was created using :

I
t's true what they say, time does fly when you're having fun. Next
month is the second anniversary of FCM. Full Circle magazine will
be two years old this coming April, and, in celebration of this
(semi)monumental event, FCM#24 will be an uber-issue with
surprises galore.
What do we want for our birthday? I'm glad you asked. We'd like to
see FCM slap-bang on the front page of SlashDot, and Digg if possible.
Not only will it keep Robert happy, it's his life long aim to be on
SlashDot, but it will expose FCM to many new readers. A readership of Ubuntu is a complete operating
system that is perfect for laptops,
25,000 each month is great, but we want more. We're greedy
desktops and servers. Whether at
like that. I'm sure there are still many folks out there who haven't home, school or work Ubuntu
heard of Full Circle magazine, and we can't have that. contains all the applications you'll
ever need including word processor,
Enjoy this month's issue, keep a close eye out for FCM#24 on the email application and web browser.
24th of April and good luck in this month's competition. Oh, and keep
Ubuntu is and always will be free of
those emails coming! charge. You do not pay any licensing
fees. You can download, use and
share Ubuntu with your friends,
family, school or business for
Editor, Full Circle Magazine absolutely nothing.
ronnie@fullcirclemagazine.org
Once installed, your system is ready
to use with a full set of productivity,
internet, drawing and graphics
applications, and games.

3
French Police: We Saved Millions Xavier Guimard, who says that
NEWS By Adopting Ubuntu the Gendarmerie has been able
to reduced its annual IT budget
France's Gendarmerie Nationale says by 70 percent without having to
Ubuntu 9.04 Beta Released it has saved millions by migrating its reduce its capabilities.
desktop software infrastructure away : http://arstechnica.com
Both the from Windows and replacing it with
server, and Ubuntu.
desktop
editions, of They began their transition to open
Ubuntu 9.04 source software in 2005 when it Game Development Survey
(Jaunty replaced Microsoft Office with
Jackalope) OpenOffice.org. It gradually adopted Free Game Developer forum are
beta have been released. It comes other software applications, including having a discussion about the
with many new features, some of Firefox and Thunderbird. After the possible ways of funding an open
which come courtesy of upstream. launch of Windows Vista in 2006, it source game project, and have
A new GNOME release, a new decided to phase out Windows and placed the arguments into a
X.org release, a new notification incrementally migrate to Ubuntu. survey to ask people their
system, they're all in there. opinions. If you would like to
At the current stage of the migration, take part in the survey, click the
Since Ubuntu 9.04 comes with it has adopted Ubuntu on 5,000 source link below, as they are
GNOME 2.26, it inherits its new workstations. Based on the success trying to get as many
features: it comes with the of this migration, it plans to switch participants as possible.
Brasero burning tool, better 15,000 workstations to Ubuntu by
support for multiple monitors with the end of the year. It aims to have http://tinyurl.com/opensurvey
a new configuration panel, better the entire organization, and all
PulseAudio integration, and so on. 90,000 of its workstations, running
This Ubuntu 9.04 beta also comes Ubuntu by 2015.
with X.org 1.6, and several more A report published by the European
video cards now use open drivers. Commission's Open Source Sorry if you didn't win this month,
but in next months issue we'll be
: http://www.osnews.com Observatory provides some details
reviewing and
from a recent presentation given by have copies to give away!
Gendarmerie Lieutenant-Colonel

4
GNOME 2.26 Released burning backends. Note that the
NEWS previous method of burning is
still part of GNOME.

Canonical Launching Ubuntu Work on GNOME's mail and


groupware suite, Evolution , has
Server Training Course focussed on users migrating
from Windows. Evolution now
Expanding its Ubuntu training supports importing Outlook .pst
series, Canonical is planning to files, as well as support for
make an Ubuntu Server training Microsoft Exchange's MAPI
course available later this year. In protocol. This makes GNOME
a blog posting Canonical, the much more suited to work with
financial backer of Ubuntu Linux, The GNOME team has released
Exchange servers.
said that the new course is being GNOME 2.26, the latest release in the
designed in response to requests 2.x release branch. As everyone There are also a few media-
from both students and partners. knows, GNOME is a multi-platform related improvements, such as
open source desktop environment. the automatic subtitle
'Deploying Ubuntu in the The 2.26 release continues GNOME's downloader plugin in Media
Enterprise Environment' will be a policy of incremental updates to a Player. There's also a new
five-day course designed for stable base, and as such, it comes volume control applet that
intermediate-to-advanced system packed with a boatload of new makes full use of PulseAudio's
administrators working in features. advanced audio features. The
organisations which are about to old Gstreamer mixer is still
deploy, or have already deployed, GNOME 2.26 includes the Brasero
available to those who aren't
Ubuntu desktops and servers in CD/DVD burning tool as the default
using PulseAudio.
the office, Canonical said. burning application. Even though
GNOME already supported burning Other new features include,
“Participants will acquire the capabilities, Brasero brings new among others, video chat in
skills they need to deploy, features to GNOME such as audio Empathy, better multi monitor
configure and maintain Ubuntu track preview, track splitting, volume support, and fingerprint reader
Server Edition within an normalisation, full multisession support.
enterprise infrastructure.” support, integrity checks, a cover
editor, and support for multiple : http://www.osnews.com
: http://www.tectonic.co.za

5
COMMAND AND CONQUER
to see if they show any
indication of having recognized
Written by Lucas Westermann your USB stick. If the drive is
recognized by the system you

I
've noticed that there were to find out what you need to do to can, for a more specific error
quite a few posts on Ubuntu resolve the issue. message, try mounting the USB
Forums in the last couple of stick manually, and see why it is
A more difficult problem to
weeks about how to troubleshoot failing.
troubleshoot is if, for example, you
errors that occur. Therefore, I
insert a USB stick and it isn't The above commands and
decided I'd cover some basic
recognized by Nautilus. The first ideas can apply to almost any
things I do when trying to find
command that should be run is: issue that you might encounter,
where a problem is occurring, so
that I can google for a solution dmesg|tail as long as you have a basic
(unless I can fix it without that). understanding of where to look.
For general knowledge, logs are See if the output of that refers to The next suggestion, however, is
stored under /var/log/, and there the insertion of a USB stick, or for slow boot times and to see
are system logs (for everything), anything that relates to your specific what exactly is going on when
and then a collection of logs for problem. If it doesn't appear in the you start the computer - in case
applications or processes. output you can try either extending something is hanging and
the amount of output you see by causing a large delay.
The first thing that should be adding the -n argument to tail, and
done - if an application crashes on This is done by a program
the number of lines you want called boot chart which is in the
startup (e.g. Firefox freezes and displayed. So seeing 14 lines of
crashes after you launch it) - is to Ubuntu repositories. You can just
output would be: install it with:
launch the application from the
dmesg|tail -n 14
terminal - then any errors that sudo apt-get install bootchart
arise are displayed in the
terminal. If that gives you an error Otherwise, you can remove and re- Once it's installed, you merely
message, the best solution would insert the stick in a new USB slot, or have to restart your computer
be to either copy and paste the check the outputs of and then you can view the
gist of the error into google for a sudo fdisk -l resulting chart in eye of gnome
search, or else, if you understand (default image viewer) - by
the error, to use that information lsusb navigating to the

6
/var/log/bootchart/ folder and little. For example, if you're working investigated in the man pages
opening the correct image (they on a wireless connectivity issue, or a (using the “man” command
are named by date). wireless device not being recognized, covered in an earlier article of
post the output of commands such C&C), and using the commands
Also, hardware issues can be
as ifconfig, iwconfig, lshw -C will also greatly help your
checked by the program lshw,
Network; if it's a USB wireless understanding of them.
which lists hardware information.
dongle, then also the output of lsusb,
The most useful way to do it is to
if it's PCI then lspci, etc. This helps
run it using the -C flag, and then
because whoever decides to help
the section (display, network,
you won't have to ask for any more
etc.). So, for example, wireless http://www.troubleshooters.com/t
information if you supply enough in
issues would be checked with: promag/200007/200007.htm
the first post, and any subsequent
sudo lshw -C Network replies may be able to answer your
question without a long back and
This command displays details forth, which usually can last for a day
on your network devices (ethernet or two (depending on timezones and
and wireless), and lists as much time of day the post was created).
information as possible, from Just keep in mind that the more
capabilities to drivers, and so information is supplied, the more
forth. The most important is information someone has to work
probably to check that it isn't with to solve a problem that they can
disabled, and that the driver is neither see nor physically
listed (it will be in the last line of troubleshoot.
the device section and denoted
with “driver=[drivername]”). This article was created to be a
useful guide to give people has learned all he
On a last note, if you run into knows from repeatedly
somewhere to start when trying to
breaking his system, then
any errors or problems you are solve problems on their own, or to having no other option but to
unable to troubleshoot or fix, improve their chances of getting discover how to fix it. When he
attach as much information as support when they need to ask for it. finds time, he also publishes a
possible that could be relevant to It is by no means exhaustive, nor are blog at http://lswest-
any request you make. Too much the commands listed explained ubuntu.blogspot.com.
information is better than too thoroughly. Any commands can be

7
HOW-TO
Written by Elie De Brauwer
PROGRAM IN C - PART 7
only what happens with memory
(de)allocation. The tool discussed
FCM#17-22 - Program In C - Parts 1-6 here is named gdb (The GNU
debugger), and to this tool there
are no real limits - if there is
something related to an application
which you want to examine, GDB is
the tool. On a regular Ubuntu
system, gdb can be installed by
Dev
entering:
Graphics Internet Multimedia System
sudo apt-get install gdb

All IDE's on a Linux system which


allow debugging will typically have
CD/DVD HardDrive USB Drive Laptop Wireless
the text-mode gdb as a backend.
Here, I will focus on using gdb from

I
n part 6 of this series, I showed the command line, but know that panels. At the top, you have the
you some non-intrusive ways when it comes to complex data panel where you can
of examining applications. In debugging, it can sometimes be display variables and browse
this article, I will present a tool useful to have a graphical view on through their contents. In the
which allows you to dig deeper, to things. One of the older graphical middle, you can see the source
do some post-mortem analysis, frontends on gdb is called (Data panel where the source code is
and to examine the inner working Display Debugger), you can install it shown - here you can place
of an application. Where by typing: breakpoints. And the bottom
strace/ltrace/valgrind are really panel allows you to see the gdb
sudo apt-get install ddd
nice tools, they will show only a interaction. You can either type
part of what really happens; Above right is a screenshot of ddd gdb commands in there, or you
strace shows, for example, only in action. It consists of three large can click the matching buttons.
system calls, while valgrind shows

8
The example in this article is
called . There is already an
ifstat application in Ubuntu, but 01. #include <stdio.h>
this application behaves the same 02. #include <stdlib.h>
but is simpler. The application is 03. #include <string.h>
presented in Listing 1 and Listing 04. #include <unistd.h>
2. The goal of the application is to 05. typedef unsigned long long ull
06. int parseDevFile(const char * iface, ull *bRx, ull *pRx,
print, every 2 seconds, the
07. ull *bTx, ull *pTx)
interface rate of a given network 08. {
interface. It is basically a while 09. FILE * fp = NULL;
loop (Lines 29-49) which reads 10. char * line = NULL;
/proc/dev/net and prints the 11. unsigned int len = 0;
incoming and outgoing interface 12. fp = fopen("/proc/net/dev", "r");
rate for a given network interface 13. if(fp==NULL)
in both kilobytes per second and 14. {
as packets per second. The main 15. return -1;
16. }
function itself is rather simple
17. while(getline(&line,&len,fp)!= -1)
(Lines 51-60). Here we check if 18. {
there is one parameter given from 19. if(strstr(line,iface)!=NULL)
the command line. This one 20. {
parameter will become the 21.
interface the user wants to sscanf(strstr(line,":")+1,"%llu%llu%*u%*u%*u%*u%*u%*u%llu%llu",
monitor. If no parameters, or too 22. bRx, pRx, bTx, pTx);
many parameters, are given, a 23. }
24. }
message is printed which
25. fclose(fp);
instructs the user how to use the 26. free(line);
application. Up until now, nothing 27. return 0;
really new has been shown, all 28. }
new things are in the
parseDevFile() function (Lines 5- Listing 1: ifstat.c (part 1)
28), so the new things are briefly
discussed here. This function will
open /proc/dev/net and parse its

9
29. void dumpInterfaceUsage(const char * iface)
contents, the counters we are 30. {
interested in will be stored in the 31. ull ifaceBRxOld=0, ifaceBTxOld=0, ifacePRxOld=0, ifacePTxOld=0;
bRx, pRx, bTx and pTx pointers 32. ull ifaceBRxNew=0, ifaceBTxNew=0, ifacePRxNew=0, ifacePTxNew=0;
33. const int SLEEP_TIME = 2;
which are passed when calling
34.
this function. By passing pointers, 35.
we are capable of changing the if(parseDevFile(iface,&ifaceBRxOld,&ifacePRxOld,&ifaceBTxOld,&ifacePTx
values of these variables from Old)==-1) return;
within the function. The function 36. sleep(SLEEP_TIME);
will return 0 on success, or -1 37. while(1)
when opening the file has failed. 38. {
39.
In this example, it is the first if(parseDevFile(iface,&ifaceBRxNew,&ifacePRxNew,&ifaceBTxNew,&ifac
time we open a file - on Line 9 ePTxNew)==-1) return;
there is a file pointer declared. 40. printf("%s In: %8.2f kbyte/s %5llu P/s Out: %8.2f kbyte/s
%5llu P/s\n", iface,
Line 12 contains a call to fopen()
41. (ifaceBRxNew-ifaceBRxOld)/(SLEEP_TIME * 1024.0),
(man fopen for details), the first 42. (ifacePRxNew-ifacePRxOld)/SLEEP_TIME,
argument is the file we want to 43. (ifaceBTxNew-ifaceBTxOld)/(SLEEP_TIME * 1024.0),
open, the second argument says 44. (ifacePTxNew-ifacePTxOld)/SLEEP_TIME);
how we want to open this file. In 45. ifaceBRxOld=ifaceBRxNew; ifaceBTxOld=ifaceBTxNew;
this case “r” means we want to 46. ifacePRxOld=ifacePRxNew; ifacePTxOld=ifacePTxNew;
open the file for reading. Once we 47. sleep(SLEEP_TIME);
are done with reading from the 48. }
49. }
file, we close it using fclose() on
50.
Line 25. 51. int main(int argc, char **argv)
52. {
53. if(argc != 2)
Let's discuss C-style I/O: 54. {
fopen(), fclose(), fread(), fwrite() 55. printf("Usage: %s interfacename\n", argv[0]);
calls are part of the C-standard, 56. exit(1);
57. }
and these should be available on
58. dumpInterfaceUsage(argv[1]);
each platform. open(), close(), 59. return 0;
read(), write(), however, are part 60. }
of the POSIX standard, and these
Listing 2: ifstat.c (part 2)
10
are the actual internal system Lines 19-24 do the actual parsing flags passed to the compiler, this
calls. One usually uses fread() of the line read from the file. Line 19 means that debugging symbols
when reading from a file. checks if the interface name is are embedded within my binary,
However, if you look at the somewhere within the line we read and this will allow the debugger
manual page, it would tell you (meaning we read enough lines). If to get more precise information.
that you need to specify a buffer - we are at the correct line, sscanf()
the size of an element and how will be used to convert the values on When I try to start the
many elements to read - and this the line to the unsigned long long application, and I pass by
is not really convenient in our variable we are using in the accident 'b' as the interface
case. This is why we make use of application. Notice that the '*' within name, the application behaves
getline(); this function takes a the formatstring means that we are as follows:
pointer to a pointer as first not interested in this value. edb@lapedb:~/fullcircle/c-7$
argument, and a pointer to an ./ifstat b
Now, compiling and running the Segmentation fault
integer as a second argument.
application gives the output below
Internally, this function will always
when I examine the activity of my Now, what happened here:
read a full line, and it will either
wireless link. apparently our application tried
copy the data to the buffer passed
if there is enough room, or it will to access some memory which
reallocate a new buffer if there is didn't belong to the application,
not enough room (see man Unfortunately, this article is about the kernel didn't like this, and
getline for details). All we should debugging, and although this sent us a signal SIGSEGV. As a
keep in mind is to free the pointer example seems to behave now, it is result, the application
getline() allocated for us (Line 26). far from perfect. Notice that I terminated. There are two
compiled the example with the -ggdb options we could adopt in this
situation; we could either restart
the application in our debugger
and do some live debugging
edb@lapedb:~/fullcircle/c-7$ gcc -ggdb -o ifstat ifstat.c
edb@lapedb:~/fullcircle/c-7$ ./ifstat wlan0
there. Or we could obtain a core
wlan0 In: 1.36 kbyte/s 16 P/s Out: 1.50 kbyte/s 16 P/s file and do some post mortem
wlan0 In: 103.25 kbyte/s 84 P/s Out: 4.61 kbyte/s 54 P/s debugging. When you encounter
wlan0 In: 1.29 kbyte/s 15 P/s Out: 1.50 kbyte/s 16 P/s a situation like this with any of
the packages your distribution
has to offer, and you file a bug

11
report, people will often ask you the application was terminated due and we see here that we are stuck
for a core file. It's useful to know to a segmentation violation. We at a line which contains a 'b'
how to create these core files, so entered where, and gdb responded (which we passed as interface),
that's what we'll do first. with a backtrace - a list of all but the strstr() which searches for
functions that were called - we see a ':' has returned NULL since there
edb@lapedb:~/fullcircle/c-7$
ulimit -c unlimited we started at main, then entered is not ':' in the header. So,
dumpInterfaceUsage, then entered sscanf() tried to read from
edb@lapedb:~/fullcircle/c-7$ parseDevFile, which called sscanf. memory address 1.
./ifstat b Thus, usually one hopes (and here
In order to have the same effect
one is usually correct) that the
Segmentation fault (core on a live session, start gdb, and
problem lies within the code you just
dumped) pass the binary as the first
wrote, and not within the library you
argument. At the gdb prompt, you
edb@lapedb:~/fullcircle/c-7$
called. So our guess here would be
type run followed by the startup
ls -hal core that we did something wrong when
arguments. And the same will
calling sscanf(). So, to be sure, I
happen:
-rw------- 1 edb edb 280K 2009- asked gdb to print the line variable,
03-07 13:33 core

With ulimit, limits to certain edb@lapedb:~/fullcircle/c-7$ gdb ifstat core


resources can be set, the size of a GNU gdb 6.8-debian
corefile is one of these resources, Copyright (C) 2008 Free Software Foundation, Inc.
and nowadays this is by default License GPLv3+: GNU GPL version 3 or later
set to 0. When we set this to <http://gnu.org/licenses/gpl.html>
unlimited, an application can This is free software: you are free to change and redistribute it.
dump a core file (a core file is a There is NO WARRANTY, to the extent permitted by law. Type "show
copying"
dump of the working memory of and "show warranty" for details.
an application). Now let's take a This GDB was configured as "i486-linux-gnu"...
look at it using gdb (right).
warning: Can't read pathname for load map: Input/output error.
Now what have we done here? Reading symbols from /lib/tls/i686/cmov/libc.so.6...done.
We started gdb, and passed our Loaded symbols for /lib/tls/i686/cmov/libc.so.6
binary, and the core file, as Reading symbols from /lib/ld-linux.so.2...done.
startup arguments. gdb told us
NOTE: and several other libc.so.6 errors.

12
edb@lapedb:~/fullcircle/c-7$ get a gdb prompt when the showing an expression every
gdb ifstat breakpoint is encountered. We time) on the line pointer which
decide to step through this function contains our string (the output is
(gdb) run b
by issuing a number of steps a bit trimmed down for
Starting program: commands (this equals executing formatting reasons). But we see
/home/edb/fullcircle/c- one line of code). After the fopen() that we go through the while
7/ifstat b call, we investigate whether the file loop without executing the
Program received signal pointer is valid; it seems it is. So we sscanf. So we can only conclude
SIGSEGV, Segmentation fault. decide to put a display (this is that the interface “bla” does not
0xb7fd26c7 in rawmemchr ()
from
/lib/tls/i686/cmov/libc.so.6 edb@lapedb:~/fullcircle/c-7$ gdb ifstat
(gdb) break parseDevFile
But here we did not make use of Breakpoint 1 at 0x80485da: file ifstat.c, line 11.
(gdb) run bla
the core file. The following (right)
Starting program: /home/edb/fullcircle/c-7/ifstat bla
is the output of a live session. Breakpoint 1, parseDevFile (iface=0xbf96175d "bla", bRx=0xbf961290,
When we started the pRx=0xbf961280, bTx=0xbf961288, pTx=0xbf961278) at ifstat.c:11
11 FILE * fp = NULL;
application with 'bla' as a
(gdb) step
parameter, we saw that all our 12 char * line = NULL;
rates remained zero. So we (gdb) step
decided to take a look. If 13 unsigned int len = 0;
something goes wrong, we (gdb) step
suspect it to be in parseDevFile, 15 fp = fopen("/proc/net/dev", "r");
so by calling break parseDevFile, (gdb) step
we tell gdb to place a breakpoint 16 if(fp==NULL)
when this function gets called. (gdb) print fp
$1 = (FILE *) 0x9e20008
This means the application will (gdb) step
start and work as normal, but it 21 while(getline(&line,&len,fp)!= -1)
will interrupt and present a gdb (gdb) display line
shell each time the breakpoint is 1: line = 0x0
met. After setting the breakpoint, (gdb) step
we start the application and we 23 if(strstr(line,iface)!=NULL)

13
NOTE: and several 'line = 0x9e20170' errors.
exist. When we issue cont to But I hope that this is sufficient to let application! Make sure it prints a
continue execution, we see the the reader understand that gdb warning when an interface
next time the program encounters allows you to examine how an cannot be found, and make the
the breakpoint we are dropped application is running; how it is interface matching more
back to the gdb shell. making use of the system. And I intelligent.
strongly advise everybody who
works with C applications to invest
In this article I introduced first some time in getting to learn to work is a
the concept of C style I/O, and the with gdb, since this will prove to be Belgian Linux fanatic, and
use of getline(), but I also gave a an extremely valuable tool when it apart from spending time
comes to troubleshooting with his family, he enjoys playing
bird's eye overview of gdb. Due to with technology, and spends his
limited space, I have been able to applications. When it comes to
days waiting for Blizzard to finally
only scratch the surface of gdb. exercises for this article, fix the release Diablo III.

' ' is
reviewed on page 23 of this issue.

14
HOW-TO
Written by Brett Alton
WEB DEVELOPMENT - PART 4
many others), is not the be-all-and-
end-all programming language used
FCM#20 - 22 - Web Dev. Part 1 - 3 Assuming you made your first
on the Internet. Nor is it the best.
website after reading part two of
A number of programming this web development series in
languages are available for web Full Circle #21, we will continue
developers, including, but not limited to modify the 'index.html' file
to, Python, Perl, Ruby (and Ruby on which we saved in the localhost
Rails), Java (JSP), ASP, ASP.net, etc. folder.
Heck, if you want to get into some
Dev Graphics Internet Multimedia System esoteric programming, you can even
use C, C++, or many other low-level
programming languages. Editing many pages will
quickly become a nuisance if
But, what you need to understand
CD/DVD HardDrive USB Drive Laptop you wanted to add, for example,
Wireless
is that every language is different
a page called birds.html, or edit
and has its different uses and
the footer on all the pages

P
purposes. Some are procedural,
rogramming languages are because it is now, for example,
some are object-oriented, and some
meant to automate tasks 2010. In PHP, you can make your
are mixed. If you want to try Python,
and make life easier. PHP is page dynamic by splitting off
go right ahead! In fact, I encourage
no exception. each section and making it
it. Plus, it looks great on a résumé to
modular.
However, PHP, no matter how know more programming languages
great, easy to use, or heavily – right? Some employers will hire you First, we'll split off the CSS into
propagated (an estimated 20 only if you have experience with another file. This isn't required,
million installs, and used by ASP.net, while others will like you to but is done as good practice,
websites and programs such as have only PHP and Python. Learn and you should do this for
Facebook, Wikipedia (MediaWiki), what you feel comfortable with, and almost all aspects of your
Digg, Wordpress, Yahoo!, and what the industry dictates (if you're website (CSS, javascript, PHP or
interested in money!).

15
anything that is repeated Now, to make the rest of the should contain the following files
throughout the website). website more modular, take the code and folders:
beginning with <!DOCTYPE> and
Put the code (below) in a new localhost/
ending in '<body>', and place it in a css/
folder called 'css', and name the
folder called 'inc' under the filename screen.css
file 'screen.css'.
'header.php'. inc/
In index.html, delete: footer.php
Do the same for '<p>Menu:</p>' header.php
<style type="text/css"> and '</ul>' and place it in a file menu.php
</style> called 'menu.php' inside the 'inc' index.php
folder.
and replace it with Now, inside 'index.php', add
Lastly, create 'footer.php' inside
<link rel="stylesheet" the following code to the very
the folder 'inc'. The content should
type="text/css" top:
begin with '<div id="footer">' and
href="css/screen.css" />
end with '</html>'. <?php
You just successfully separated include ('inc/header.php');
your CSS from your HTML. Copy the rest of the content '<div ?>
id="content">' to the div tag
('</div>') just before the menu include where the
*{ '<div id="footer">', menu used to be:
color: #ececec; and put it inside a
font-family: 'DejaVu Sans', sans-serif; <?php
file called include ('inc/menu.php');
}
'index.php', directly ?>
body{
background-color: #212122; inside the localhost
} folder, beside and the following code at the
#footer{ 'index.html'. You very bottom:
border-top: 1px solid #ccc; may now delete
<?php
} 'index.html' as we
#footer p{ include ('inc/footer.php');
will not need it any ?>
font-size: 80%; more.
text-align: center;
} Right now, your To the astute reader, you'll
localhost folder notice that all we've done is

16
taken the header, menu and your very first piece of PHP, and your and:
footer code out, placed in an first PHP function (the include()
external file like we've done with (2) encase your PHP code
function). Whenever you write PHP
our CSS, and then included it in inside PHP tags "<?php ?>".
code, it is important to:
our 'index.php' file. There are exceptions to this rule
(1) have the filename end in .php,
You've also been introduced to

<?php
include ('inc/header.php');
?>
<div id="content">
<?php
switch($_GET['page'])
{
default:
case 'home':
echo '<h1>My First Website!</h1><p>Hello, and welcome to my first website!
Please bear with me as I am just getting started in web development,
but there will be much more to come soon!</p>';
break;
case 'dogs':
echo '<p>I like dogs!</p>';
break;
case 'cats':
echo '<p>I like cats!</p>';
break;
case 'lizards':
echo '<p>I like lizards!</p>';
break;
}
?>
<?php
include ('inc/menu.php');
?>
</div>
<?php
include ('inc/footer.php');
?>

17
(as with almost everything I've that the switch statement will in between each page with no
touched on so far), but these two accept: 'home', 'dogs', 'cats', and problems, and witness the
practices are best for security, 'lizards'. The 'default' case will be the changing content.
convenience, and consistency. content used if none of the formerly
Try to experiment for yourself,
listed cases are used. (e.g.
If you surf to and add a fifth page called
http://localhost/index.php?page=bird
http://localhost/index.php, you will 'birds', and see if you can get it
s). This isn't the most effective way
notice no difference between the working.
with dealing with a broken query
'index.html' file we previously string, but it's a start. Please note that this is a very
created and the 'index.php' file
basic introduction to PHP. When
we just created. Now, inside inc/menu.php, modify
creating websites that use
your code to look like this:
include's, there are security
<p>Menu:</p> factors that should be
Lastly, for our introduction to <ul> considered (such as direct
PHP, I will introduce to you the <li><a access to your include files (files
switch statement. href="index.php?page=home">Home</a
inside our 'inc' folder)), but I will
></li>
Firstly, place the code in the <li><a have to touch on this another
previous page in the file href="index.php?page=dogs">Dogs</a time.
'index.php', deleting everything ></li>
else. <li><a
href="index.php?page=cats">Cats</a
The switch statement is ></li>
grabbing the variable 'page' from <li><a
href="index.php?page=lizards">Liza
the query string (anything after rds</a></li>
the URL with a question mark (?) </ul>
behind it constitutes a query
string). This now enables us to pass a
Proper query string format variable called 'page' to 'index.php' -
would look like this: with the content 'home', 'dogs', 'cats' is an Ubuntu
http://example.com?variable=5. or 'lizards', depending on which link enthusiast, computer
We will use this in just a second. is clicked. technician and software
engineer from Toronto, Canada
You will also notice the cases You will then see that you can go

18
HOW-TO
Written by Grant Paton-Simpson SPREAD UBUNTU - PART 2
Ubuntu's growth on the desktop. of web hosting plummeted once
you could use non-Microsoft
FCM#22 - SPREAD UBUNTU - PART 1
technologies. Even Internet
Explorer users have benefited
enormously as Microsoft has had
The key idea is critical mass. Once to play catch-up.
Firefox gained critical mass, the web- Similarly, once Desktop Linux
browser war re-ignited, the internet reaches a certain level of usage,
became a much better place for it will be too big for hardware
Dev Graphics Internet Multimedia System developers to work in, and the cost and software producers to
ignore. This will mean better
drivers, and more native Linux
versions of important
CD/DVD HardDrive USB Drive Laptop Wireless
applications. This is already
beginning to happen.

W
hy should we bother
persuading other people
to try Ubuntu? Isn't it
enough that the option is there if
we want it? Why do we have to be
so obsessed with beating
Windows (or Apple OS X) all the
time? These are the sorts of
things I have heard some
bloggers say.
In response, there are four main
reasons we should encourage

19
innovation. As a side note, this is find old television series on the
why we should be pleased to see internet, and pay a reasonable
competition from other desktop price to download them. DRM
Software has reduced
Linux distros - it keeps the pressure enables media cartels to ignore
enormously in cost. In the late
on, e.g. to improve boot speed. public demand, and it should be
1980s, WordPerfect 4.2 for DOS
resisted. Unlike Vista, Ubuntu
cost me NZ $1,500. Now the
does not support DRM, and this
equivalent sum would get me a
is another reason we should
good desktop PC plus a small
Digital Rights Management (DRM) support Ubuntu.
notebook - including all software.
Open-source software, such as is being removed from music, but
Ubuntu, has accelerated this visual content is still too hard to
trend. Large software companies (legally) search, access, and view.
do not have a natural right to We should be able to do things like
Yes, a careless or gullible user
hyper-profitability, and software can compromise the security of
becoming a commodity is great any computer system, but
news for consumers. Windows is too risky for the
common desktop user. All things
being equal, Ubuntu will provide
them with much better security. I
Monopolies are bad for have seen numerous Windows
consumers, especially when the machines so infested that they
dead hand of a monopoly in one ran like 286s.
area is able to extend into other
areas. A vibrant and growing Computer use has increasingly
desktop Linux community can become Internet use, and
make possible whole new Ubuntu is perfect for such a
categories of innovation. The purpose.
stagnation of web browsing (no
tabbed browsing, slow Javascript
etc.) under Internet Explorer 6 The real price of a Windows
highlighted the dangers of relying machine includes the hardware,
on one company as the source of the OS, the applications, plus all

20
the protection you need to buy (to burning, etc.). Did I mention they are
prevent the machine being taken all free?!
over). Then, there is the constant
work of keeping the security
systems up-to-date, and running Desktop Linux is not the complete
the various checks and tests. The answer for everyone. Not all
Total Cost of Ownership is much Windows applications run
higher than it may seem. successfully under Wine, and,
Already, Linux is having an sometimes, there are no native Linux
impact on the cost of software. alternatives, especially for specialist
The option of Linux on netbooks business applications. This is less of
has substantially limited an issue now that virtualisation is
Microsoft's ability to extract viable for the ordinary user, but will
monopoly profits from XP on the still be an issue for some users.
same platform. It will be
interesting to see what impact
this ultimately has on OS pricing. Desktop Linux matters, and
promoting Ubuntu is currently the
best way to support that.
Community is one of the best
things about Ubuntu. The
helpfulness, the positive attitude,
and the sense that people don't
help other people only for money.

is a
Ubuntu has lots of top-class software developer from
applications available, including Auckland, New Zealand, with a
Firefox, Thunderbird, OpenOffice, PhD in Sociology. Married to Elizabeth
GIMP, VLC, Pidgin, Inkscape, with 4 lively children, and a custom
database business (http://www.p-
RhythmBox, Transmission
s.co.nz).
(BitTorrent), and Brasero (CD

21
MY STORY
Written by Lars Blomgaard
BECOMING AN UBUNTU USER

A
bout 6 years ago, I tried to desktop right away, and the fact that work, Web surfing, email, and
install Fedora (FC 3) on my there were new versions every six learning about the terminal. The
desktop, because I needed months. I also experienced that if I best part is, if I need a program,
to run a simple Web server for a needed help, there was a community I just go get it, and it works right
school experiment. Since it was ready to answer away.
my first experience with Linux, I my questions.
In the
got confused and didn't have the When I first saw future, I'll still
courage to get in depth with the the wubi installer, I be learning
setup. At that time I thought the had to try it. At more about
information was scarce first I experienced the Linux
(information probably was some crashes in world and
accessible, but I didn't find it). the GUI (or x- Ubuntu. I will
Therefore, I decided to install server), and the encourage
Windows, and run XAMPP instead wireless network others to try
to solve my problem. had some Ubuntu, since
At my university, I was handed difficulties it's easy to
a CD with Ubuntu 5.04 by one of connecting and use. The only
my teachers. That was my first staying connected. thing that's
experience with the Ubuntu When the next release came out, all keeping me from exclusively
distribution. We (my friends and I) these problems were solved, and the running Linux is its inability to
began by installing Ubuntu on one wubi is running smoothly and stable. run my games. I know there is a
of the school desktops, to see Wubi is now a permanent part of my Wine solution to this issue. I
how it worked. Since we hadn't desktop machine. have tried to install and run
had much experience with the games, but have not succeeded,
I have borrowed a laptop from my
use of the terminal and the setup unfortunately. I won't blame
work that is running Intrepid Ibex
of a Web server, we used the Linux for that, but I hope that it
(clean install on hard drive). I have,
machine only as a Web surfer. I will get better in the future.
so far, been pleased with the laptop
liked the look and feel of the
installation, which I use for office

22
BOOK REVIEW HOW TO BE A GEEK GODDESS
Written by Cathy Malmrose

Admittedly, there was little in the book that easier to use. My daughter did her first
was appropriate for me. I already know how clean install of Ubuntu at five years
to set up a desktop (and can build one with old. A neighbor complained that he
my eyes closed), but I am not the book's couldn't possibly use Linux because
Christina Tynan-Wood
audience. My friends are the audience, the “it's too hard”. When we got home, my
December 2008, 344 massive population of non-geeky; even a- daughter asked if she could try
pages technical people are the intended audience. installing it. We wiped one of the
Geek Goddess appeals to women who are desktops (which had been doing
ISBN: 1-59327-187-9 seeking the savvy that is currently beyond Windows / Ubuntu performance
their reach. benchmark tests), and handed her an
install CD. She couldn't read all the
Geek Goddess has a tremendous amount of
instructions, so she asked her six year
I began reading “How To Be a Geek humor, and a highly personal writer's voice.
old brother, “What does this say?”
Goddess” while traveling to visit family For the mainstream, this is the ideal
They pressed Enter until the install
and friends who were not technically approach. Personally, I found the
was complete. So, dear Christine Tynan-
inclined. I was surrounded by people stereotypes unnecessary and distracting,
Wood, trust me – Ubuntu is easy
who did not know their desktop nor but my less technical friends, when I read it
enough to use, and should be included
laptop make nor model, let alone the to them, found this approach comforting.
in your book's next printing as a
actual specs. Within this context, the Go figure.
delightfully easy operating system.
Geek Goddess book was a highly useful The number of people using Linux - Ubuntu
tool. Here, I'll even write the first line for
in particular - is growing so quickly that
her: “Ubuntu, Apple or Windows?
I found myself marking pages to share incorporating new users with grace,
Deciding which operating system to
with these friends. I marked the section especially the a-technical ones, is not an
use is one of the easiest decisions you
on security software for a friend who is easy task. In reading this book and writing
will make. Pick the one that works best
constantly sabotaging her desktop's this review, I am choosing to focus on the
- currently Ubuntu - with the others
ability to fend off viruses. I marked positive – if this book helps some women
lagging as a distant second or third
nearly every page in Chapter 5 for a take ownership of their computing power
choice to be used only if you must...”
friend who shops online, and we enjoyed more seriously, then kudos to the author.
looking at some of the new leads Maybe, in her next printing, she'll expand
together. I read parts of Chapter 11 to a her section “Apple or Windows?” to include
grandma who takes great pleasure in Ubuntu. It would have been a smart choice
communicating with friends through for her to include it in the current printing.
blogs and email. In general, the book Ubuntu is easy enough to install, and even http://nostarch.com
was quite useful for the non-techy crowd.

23
MOTU INTERVIEW
Taken from
STEVE STALCUP
Behind MOTU is a site featuring interviews with those known as 'Masters of the Universe' (MOTU). They are the volunteer army of
package maintainers who look after the Universe and Multiverse software repositories.

learning experience due to a failed


dual-boot install)
As for packaging, there's a lot of
great resources I used to learn
the basics of packaging. The
From the time I messed up that
“Old” Ubuntu packaging guide,
installation to last October, that’s
the Debian New Maintainers
when I decided to give Kubuntu a
Guide. I wish there were such
spin.
tools as the MOTU videos and
MOTU recopies when I started
learning packaging. These new
guides really help break down
31 I’ve had the goal of joining the MOTU the process into manageable
Central Ohio, USA team for some time, but really didn’t bite-size tasks.
get serious until the beginning of the
vorian Hardy cycle. My “New Years #Ubuntu-motu on freenode was
Resolution” for 2008 was to join the (and is) the fastest way to get
MOTU team. With this goal, I started my questions answered.
by contributing in small ways, and Everyone on the MOTU channel
gradually tackling larger and more is willing to offer a helping hand,
I have been using Linux for a little complex tasks. Then, in what seems or at least point you in the right
over 3 years now. My first distro like no time at all, I was getting new direction.
was Ubuntu (5.04). For me, this packages into Ubuntu and Debian.
was a great crash-course in
running Linux (which was a forced

24
I love working with such a great will be amazed at what they
group of people, who truly are have been missing ;) (I know I
My main focus will be helping ensure
fulfilling a mission of Ubuntu, by was when I used Kubuntu for the
Kubuntu is a top-shelf release.
pushing out the very best that first time)
Another area I am focusing on is
Open Source software has to
helping with the sponsoring queue. I
offer. The team atmosphere is
had some wonderful sponsors who
tremendous.
spent time reviewing my
contributions and teaching me how – Jedi Master Yoda
to improve. The best way I know to
thank them is by doing the same for
Set goals, then jump right in! For
other contributors and MOTU
me, goal setting was the key I spend all my other spare time
hopefuls :) More importantly, fixing
between wanting to be a MOTU, with my four kids and wonderful
these bugs makes for a better
and actually working towards wife.
release.
becoming a MOTU.
It will be frustrating at times, but
it will also be very exciting. I
clearly remember the frustration I
felt while trying to figure how to With KDE
make specific things work, and 4.1, long
the thrill of finding the solution. time KDE
You can’t learn how to do this users can
stuff and not fail (a lot) along the expect to be
way. pleased with
what
Most importantly, the MOTU team
Kubuntu has
is awesome to work with!
to offer. I
Everyone is willing to help answer
honestly
a question, help steer you in
think people
finding solutions, and giving
new to the K
honest feedback.
desktop
environment

25
LETTERS Every month we like to publish some of the emails we receive. If you would like to
submit a letter for publication, compliment or complaint, please email it to:
letters@fullcirclemagazine.org. PLEASE NOTE: some letters may be edited for space reasons.

I
n the FCM#22 Top 5 there was Writer of Letter of the Month wins
an arcticle about Handbrake. two metal Ubuntu case badges!

R
At the end you stated that it's
not in the repositories and that egarding Marianne Popps
one should install the .deb file question in FCM#22: I am using
from the site. Unfortunately, the Skype application (right) -
that's not enough, when you use they have a version for Linux you can
Ubuntu 8.04 you will also need download it from:
libxcb-render-util0 from the Jaunty http://www.skype.com/download/skype
repo. It's available (and working, I /linux/) - with a simple Logitech
checked) from here: camera which came with its own
http://packages.ubuntu.com/jaunt headset and microphone and it works
y/libxcb-render-util0 great. You should try it.

Ed:

I
saw your article in FCM#22 and Ed:
the way I create a bootable

I
'd just like to suggest my Ubuntu USB is this: boot an
favourite DVD ripping Ubuntu system (live CD or other), .
replacement for DVD Shrink, put in the USB stick, select "install to

A
K9Copy. It's a Qt application, so USB" in the menu. Ubuntu will then ccording to X.org[1] some
the users need the Qt libraries take care of it all. Does your method video drivers cannot
installed, but it seems to have all provide advantages over my lazy display modes that are not
of the features of DVD Shrink and method? found in the video device's BIOS.
is laid out in quite an intuitive way. So while the device may
nominally support 1024x768,

26
and may work in Windows using contact with when developing on netbook interface of Easy Peasy,
some tricks in the driver, it may Ubuntu myself. I have often had to they can just install their favorite
not currently be possible in Linux. create my own .deb files to work desktop environment on top of it
I have an which I around issues such as old versions, and not do a complete re-install.
believe falls into this category. missing packages, etc. I've given up I am not a fan of the netbook
working out those kind of issues on remix interface and do:
[1]
Launchpad and getting them
http://www.x.org/wiki/FAQVideoMo sudo apt-get xubuntu-desktop
updated in the distribution because
des
the process is simply too slow.
This keeps the EEE PC kernel
On an unrelated note, Teamspeak with a new desktop. For those
and Ventrilo are mentioned; who have the 1000 model (which
however, Mumble is not. Mumble is has two SDD's) you could maybe

I
n response to Edward Hewitt's open source cross platform and is explain how to format the 8GB
piece in issue 22 of Full Circle: just as good, if not better than the for "/" and the 32GB for /home?
Firstly, if EA was ever to other two mentioned.
support Linux, the community
would need to listen to some of
the criticisms they have already
said about the system. You can

I
read more about this here on my don't know if this
blog: is on all EEE PCs,
http://andrewfenn.blogspot.com/2 but it should be
009/02/ea-linux-support.html pointed out: on my
EEE PC 1000 the only
Not only does EA make some
bootable USB port is
valid points on the faults of
the one on the left
distributions such as Ubuntu, but
side, the two on the
Steve Streeting, the creator of
right would not boot
Ogre3D has too (you can read his
the USB at all.
comment on the page above, his
nick is Sinbad). These criticisms You could also let
should be addressed because people know that if
they are things I have come into they do not like the

27
UBUNTU WOMEN Lydia Pintscher Interview
Written by Myriam Schweingruber

LP: Exactly, I am one of the Kubuntu LP: I am, right. Mainly, I hang
Council people. around in the channel to help
newbies and people who had a
bad day and need to vent.
Having a place to do that is
really helpful.
LP: Since shortly after I started using
Linux I think. That was around Breezy.

LP: Right, and of course to


LP: Back then, I wanted to try Linux, encourage women to go out
and wasn't sure which distribution to there and make Ubuntu rock by
choose. As everyone was talking coding, bug triaging, promotion,
about Ubuntu and how cool it was at and so on - there is something to
Lydia Pintscher (above): Sure. I that time, I gave it a try. But I also do for everyone. It just
am Lydia, from Germany, Free heard people talk about Kubuntu. So, sometimes takes a little time to
Software enthusiast, cat herder, after 2 hours of playing with Ubuntu, find that task.
social media Ninja, and some I installed Kubuntu, fell in love, and
more. I am mainly doing am using it ever since. I love how
community management for KDE, applications are integrated, and of LP: I am a student of computer
and specifically Amarok. I am also course it is blue! I love blue! science, but, honestly, there are
known as Nightrose on IRC. a lot of people out there who
write better code than I do. And
projects like KDE and Kubuntu
are much better served by me

28
doing community work and LP: I think packaging is
promotion than coding. ;-) It is a something only few women do,
skill set many projects need. and it would be nice to change
that.

LP: Think about what you like to


do. You don't have to be an expert LP: It is a challenge. But really,
at it. We all started small and had there's lots of people around to
to learn. Once you know what you help you get started, and it is an
like, go to the responsible team, incredibly rewarding feeling to
and ask how you can help. Most LP: Yes we have KDE-Women, but it have your first package in the
of them will be glad to help you basically has been dead for quite a Ubuntu archive, installable by
get started. If you don't know long time, which is a good thing. thousands of people.
what you like, or are afraid to go
around the community on your
own, come to our IRC channel or LP: It shows that women in KDE feel
mailing-list. We'll try to help. And comfortable enough in the whole
as I said before: there is KDE community, and are well
something for everyone; don't be integrated. I hope we will reach the For more about our interview
afraid to ask. same with Ubuntu Women soon. One series, check out our website:
step to that goal would be to get http://wiki.ubuntu-
more women involved in all parts of women.org/Interviews
Ubuntu.

29
UBUNTU GAMES
Written by Edward Hewitt
FOSS GAMING SURVEY

T
his week's main article is game-related projects.
written by Joseph Guarino. He Humorously enough, 95%
posted a FOSS (Free and Open actively play FOSS games, and
GAME NEWS Source Software) gaming survey on 88% agree that there are tons of
Ubuntu Forums, and has written FOSS games! This was a far cry
• about his findings from the survey. from the rants I got from friends
- The Linux in the community who claimed
My primary efforts with the survey otherwise. A heartening fact was
community was pleased to
were to gauge community perception that, within the FOSS
hear about the support of
surrounding FOSS gaming, and open community, a full 56% of the
Eve Online for Linux, back in
a productive dialogue on the issues survey users had contributed,
November 2007. However, it
surrounding it. In many discussions volunteered or donated to these
has been announced that
with gamers, friends, and fellow LUG projects. I know that, outside our
Eve will stop support of
members I found some uniform community, this number is much
Linux, due to lack of
misconceptions relating to FOSS lower because people don't
demand.
games, and Linux as a gaming understand the need to
• platform. The survey paralleled my contribute. Only in supporting
- The critically acclaimed efforts with a speech at SCALE, so I these projects in the many ways
puzzle game, World of Goo, went forward to gather the FOSS we can (becoming a project
has been released for Linux. community's collective member, donating, advocating,
This game has been highly opinion/wisdom where little to no etc.) will they thrive. As part of
received by PC Gamer and data existed. The overwhelmingly this survey, I offered a prize, and
GameSpot. You can buy or positive response of nearly 700 users a $100 donation to the FOSS
download the demo from: was quite heartening. The gaming project of the winners
http://2dboy.com/games.php misconceptions I tested were along 3 choice. The $100 went to one of
common veins: my favourite FOSS FPS's - Nexuiz.

Sourceforge.net shows As
nearly 30,000 FOSS games and

30
Linux users, many of us don't feel for the everyday user. The end
as though the hardware vendors game (pun intended) was to
see us as a valid market open the dialogue to move us
opportunity. Our simple survey forward on these challenges.
stats show that, on the contrary, Personally, I believe we, as a
we want games on our platform of community, need to look at
choice. Nearly 64% consider Linux Linux Gaming in a new light. Our
a gaming platform, and a full 60% challenges are less technical
think that hardware vendors need ones, and more about building
to improve support for Linux. and supporting community,
Personally, I don't think that rallying industry, improving our
vendors realize how far the Linux business/marketing/PR efforts -
desktop has come, and the to make the changes we need.
business opportunity we In my own efforts I am starting a
represent. Let's vote with our companies and less to the podcast to highlight the many
dollars, and make them independent ones. Some smaller amazing FOSS gaming projects,
understand. Support the game companies do deserve connect with industry, and
companies that support our recognition for consistently actively challenge these past
community! supporting our community, and assumptions. Please join me as
deserve our support in return. 90% of 04/09 at
use Wine or other compatibility www.opengamingnow.com. Now
technology to play Windows games it's time for our community to let
A full our voice be heard. Anyone else
90% want to buy commercial on Linux. This makes me wonder
what would happen in 2009 if more tired of dual booting?
games on Linux, and 85% would
be more likely to buy a game title games came natively to the Linux
if it has a native Linux version. platform.
Linux users want games on their There are many paths to improving , aka chewit, is a
own terms, and I know they can Linux's penetration into the desktop keen PC gamer and
be a profitable segment for these marketplace, and gaming could sometimes enjoys console
commercial game companies. gaming. He is also on the
certainly be one of them. We are at a development team for the Gfire
Arguably, this applies mostly to point with the Linux desktop that it's project (Xfire Plugin for Pidgin)
larger commercial game increasingly a ripe gaming platform

31
Q&A
Written by Tommy Alsemgeest
If you have Ubuntu-related questions, email them to:
questions@fullcirclemagazine.org, and Tommy will answer them in a future issue.

Q A A
Basically, yes. The easiest With that much RAM, and
way to keep your settings doing only normal
when reinstalling Ubuntu is to computing tasks such as
have a separate home partition. If internet and email, you should
you are going to keep your existing technically not need swap space.
home files, make sure you copy the However, if one day you use up

A
hidden files and folders as well. all your RAM, your PC would
The best alternative to

Q
probably crash. It would be like
Photoshop is definitely
going skydiving without a
GIMP (right). It is very
backup parachute.
powerful, and works under
Windows and Linux. The previous
issues of Full Circle Magazine are
a good place to learn more about
GIMP.
Q
Q
A
There is a very
comprehensive how-to on
dial up modems in the
Ubuntu Community
Documentation at:
https://help.ubuntu.com/commun
ity/DialupModemHowto

32
MY DESKTOP
Your chance to show the world your desktop or PC. Email your screenshots and
photos to: misc@fullcirclemagazine.org and include a brief paragraph about your
desktop, your PC's specs and any other interesting tidbits about your setup.

I've been using Linux for a couple of years now and have tried To my shock, after upgrading to Kubuntu 8.10, KDE3.5 was gone. I
dozens of distros. My favorite is Ubuntu 8.041 LTS. I like Linux for had been meaning to switch to KDE4 for a while, and as it seems
the ability to customize it to my liking in terms of the applications like I now had no choice, I decided to make the most of it. As you
and themes. In the past I've been frustrated with the amount of can see, I have Avant Window Navigator at the bottom and two
spyware and viruses I've had using XP. Linux affords me a safer plasma widgets for monitoring what's happening in my computer,
computing experience. There are eight PCs in my household, and as well as controlling Amarok. Apart from that, I have Swiftfox,
Windows licensing makes this cost prohibitive. I've turned several Emesene and Konversaton open for web browsing, MSN and IRC
friends onto Linux for those same virtues. I do still use some respectively.
Windows programs, but find Wine a great utility to have. I can
share all the files and music on my home network, whether they
be running Windows or Linux. And since I also play guitar, I've
begun exploring home audio recording applications like
Rosegarden, Ardour and Hydrogen.

33
MY DESKTOP

I first tried Linux several years ago and I've tried many window This is my Ubuntu 8.10, installed on a 8GB USB memory stick. It
managers and distros from e17 to SuSe. Now I use Ubuntu on has Clearlooks OSX theme and icons and Compiz with the
my laptop and on a desktop-PC (Pentium III) with IP-Fire. cylinder effect enabled. AWN dock bar is at the bottom of the
Currently I'm using Ubuntu 8.10 on my Asus A7J with Compiz, screen with customized Pidgin and Thunderbird launchers that
Cairo-Dock, Conky and Screenlets. My Asus A7J is a CoreDuo indicate unread messages. Some interesting programs installed
(2x1,8Ghz) with ATI X1600 for video display. include those related to network security assessment. Now I can
easily plug it in anywhere I go, and use my own set of
applications in my choice of environment. I have booted it on
platforms other than those I installed it on and it detects new
hardware at boot time. There is just one issue of a lag in
programs loading up or when too many are running.

34
TASK MANAGERS
Written by Andrew Min

http://live.gnome.org/Tasque http://blog.sarine.nl/
Tasque is a simple yet The prize for the oldest
powerful GTK task and most respected task
manager. It has managers goes, hands
standard to-do list down, to GToDo, the
features such as ancient Linux to-do list.
multiple lists, but It's been around for
what really sets it ages, but it still has the
apart are two things: tools you need. Included
Remember the Milk are multiple task lists, an
integration and export-to-HTML function,
Evolution integration. multiple categories,
Remember the Milk is priority, a tray icon,
without a doubt my notifications, advanced sorting, and much more. You
favorite web-based can also get a handy Gnome panel applet for
task manager, and Evolution is one of the best PIM accessing your task list from the task bar. It certainly
clients around. This superior integration is what doesn't have all the bells and whistles of, say,
really makes Tasque one of the most popular task Thinking Rock, but it's incredibly useful and
managers on the Linux desktop, and my personal barebones at the same time.
favorite.
To install GToDo, use the ` ` package in the
To install Tasque, use the ` ` package in the `universe` repositories. You can also get the tray
`universe` repositories. applet using ` `.

35
http://quicklist.sourceforge.net/ http://www.trgtd.com.au/
http://makagiga.sourceforge.net/
QuickList is a way to, well, quickly make ThinkingRock is the most popular GTD-
Makagiga is a powerful mini-PIM app. lists. It's actually for more than just to- style task manager around. Based on
Along with the multiple to-do lists, it do lists, acting more like a database the popular lifestyle pioneered by
sports an integrated RSS reader, program. At the start, you can add text, David Allen, this is a powerful (but
notepad, support for collecting images numeric, date, or time columns to the very hefty) app. It's not just a to-do
and links, bookmarks, a presentation left, center, or right. You can then input list; it's a powerful time-management
mode, a built-in search engine, a the respective data into the columns. It's tool to simplify your life. It has
console, and plugins for anything else perfect for a barebones to-do list, since everything you could possibly imagine,
you can think of. It even supports you can add basically whatever feature including criteria, topics, context, and
widgets and themes. And despite the (name, description, date, time, priority, much more. As the website jokingly
fact that it's written in Java, it's neither completion/incompletion, and so on) by notes, "If you don't have time to
bloated nor out-of-place on a Linux just adding another column. Users download and use this software, then
desktop (it uses Oxygen icons, but looks familiar with spreadsheets and database you really need it." So if you like GTD
fine in Gnome). programs will feel especially at home. and don't mind heavy Java apps, check
out ThinkingRock.

Makagiga isn't in the repositories To install QuickList, use the


yet. However, you can install it ` ` package from the To install ThinkingRock, follow
with the .deb package at `universe` repositories. the instructions at
http://url.fullcirclemagazine.org/2d http://url.fullcirclemagazine.org/8
da71 has been a Linux 48f54
addict since he first installed
openSuSE in VMWare. Learn
more about him at
http://www.andrewmin.com/

36
HOW TO CONTRIBUTE Full Circle Team

- Ronnie Tucker
ronnie@fullcirclemagazine.org
We are always looking for new articles to include in Full Circle. For article guidelines, - Rob Kerfia
ideas, and for issue translation, please see our wiki: admin@fullcirclemagazine.org
http://wiki.ubuntu.com/UbuntuMagazine
- Robert Clipsham
Please email your articles to: articles@fullcirclemagazine.org mrmonday@fullcirclemagazine.org

If you would like to submit news, email it to: news@fullcirclemagazine.org


Mike Kennedy
Send your comments or Linux experiences to: letters@fullcirclemagazine.org Robert Orsino
David Haas
Hardware/software reviews should be sent to: reviews@fullcirclemagazine.org Gord Campbell

Questions for Q&A should go to: questions@fullcirclemagazine.org

MyDesktop screens should be emailed to: misc@fullcirclemagazine.org

If you have questions, you can visit our forum: www.fullcirclemagazine.org

And our thanks go out to


Canonical, the Ubuntu Marketing
Team and the many translation
teams around the world.

A magazine isn't a magazine without articles and Full Circle is no exception. We


need your Opinions, Desktops and Stories. We also need Reviews (games, apps &
hardware), How-To articles (on any K/X/Ubuntu subject) and any questions, or
suggestions, you may have. Sunday 05th April 2009.
Send them to:
Friday 24th April 2009.

37

You might also like