You are on page 1of 80

NEWS

Newsdesk


New distros hit the mirrors ■ Competition for VMware ■ OSDL rejects collaboration with Microsoft
GPL 3 cracks down on infringements ■ Xandros founder dies ■ New distro for Asia ■ LPI updates

Linux licence gets tough


Worldwide consultation for GPL 3 launched with suggestion of patent retaliation clause

Developers and lawyers of software patents against free


drafting the new GNU software authors,” he said
General Public License (GPL) The proposed clause could bear
are considering adding a controversial some resemblance to Section 8 of the
clause to deal with the patent menace Mozilla Public License (MPL). This
problems expected as Linux gains a removes the rights granted under the
foothold in the mainstream. The so- licence to individuals or organisations
called patent retaliation clause would, that make patent infringements
in certain circumstances, remove an against developers and contributors.
organisation’s right to use, alter or “Whether such a clause would make it
redistribute software available under into the GPL and how exactly it would

“ONE OF THE MOST


IMPORTANT SOCIAL
DOCUMENTS OF OUR TIME.”
the licence. look is pure speculation at the
The first draft of GPL 3 is due to be moment,” Greve said. “Only the first
published by the Free Software draft will bring certainty. It is expected
Foundation (FSF) in January, and the for January 2006.”
consultation period for it has already Among the driving forces behind
begun. Joachim Jakobs, head of media the call for a patent retaliation clause
relations at FSF Europe, said it makes are the SCO case, in which SCO
sense to target developers or software launched attacks on the GPL while still
vendors who might use their patent distributing software under the licence,
portfolios to stifle free and open and fears of the offensive use of
source (FOSS) projects, but that there patents by proprietary software
had to be a measure of justice in the companies to kill competition from
clause. “We don’t want to hinder Linux and other projects such as
people from using free software if they OpenOffice.org and Openexchange.
merely hold software patents,” he told Other changes to the GPL could
Silicon.com. include elements to deal with DRM
Georg Greve, the president of FSF technology and the use of web
Europe, acknowledged that there has applications (such as those used by
been a lot of potentially damaging Google and Amazon), which are
speculation about the patent transforming the way that end users
retaliation issue, which could scare off access software.
potential developers, vendors or users, The FSF has initiated a funding
but defended the proposal. “What we drive to raise $500,000 to bankroll
are concerned about is aggressive use the consultation programme, whose

6 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.news 6 23/9/05 1:05:20 pm


NEWS

Exciting times for Linux distros


Install freaks: brace yourselves for an exciting few weeks...
Inveterate upgraders are Messman. He told delegates at the Novell’s future strategy will focus on
bracing themselves for a new company’s European BrainShare the fruits of its OpenSUSE project,
round of distribution releases conference that the cost of migrating which will make its first ‘official’ release
featuring cutting-edge desktop from Windows XP to Vista was certain in early October. SUSE 10.0 features
environments, the latest versions of to be significantly higher than that of the latest Gnome 2.12 desktop as well
OpenOffice.org and Firefox and some migrating to Linux, and so the launch as KDE 3.4, and boasts excellent
innovations designed to push Linux as of Microsoft’s next generation desktop Mono/Beagle integration (as you’d
a genuine alternative to Microsoft’s would provide an opportunity for Linux expect from the owner of Ximian). In
newly christened XP follow-up, Vista. vendors to make a major push into tandem with the release of SUSE 10.0,
Foresight Linux uses Anaconda as
The arrival of Vista offers Linux an businesses that use high numbers of the first alpha version of 10.1 should its installer, but uses a distributed,
“unrivalled window of opportunity” computers, for whom migration costs be available at the same time. cross-repository system for
according to Novell CEO Jack would be multiplied. package management.
New Mandriva release
Mandriva’s first, and possibly only, the first linux distribution based on
release candidate for its 2006 release Gnome 2.12 Version 0.9 of Foresight
has also hit the mirrors. As expected, features the new desktop complete
this release is the first to feature large with support for the Beagle desktop
elements of the Conectiva distribution, search tool, Cowbell, F-Spot and a
including the Smart package manager. Sudoku package. The latest version
By default, the distro still uses URPMI, also swaps out Rhythmbox to make
but Smart is available as an option. Banshee the default media player.
Another interesting addition is the Kat Foresight’s ethos is based on
desktop search tool, which brings choosing the right tool (and only one
Spotlight/Beagle-style search facilities tool) for a specific job rather than
to the KDE desktop. populating menus with several options
Barely a month after the release of that all cover the same few needs.
Gnome 2.12, the Ubuntu project and Foresight Linux is also interesting in
its Kubuntu sister have released the that it uses the Conary distributed
Breezy Badger distro which, like its package management system rather
predecessors, swathes the user’s than relying on RPM or APT, and the
desktop in tasteful, humanist browns. Howl networking system.
Meanwhile, Foresight Linux is ■ Look out for a new Distro Watch
Smart is like Synaptic, and improves package management in Mandriva. claiming to have beaten Ubuntu to be section in LXF74!

scope will be unprecedented. The GPL become central to the activities and GPL IN A NUTSHELL
Version 3 Development and Publicity operations of companies and
Project will, according to FSF executive governments all over the world. But
The GNU General Public License was surrounding its use in libraries,
director Richard Brown, reach out to after 14 successful years, the licence is
written by Richard Stallman in 1988. permitting ‘linking the libraries into
development communities across the in need of a review to reflect the The catalyst was his experiences proprietary executables under certain
world. “We aim to increase the growing use of free software in both developing the Emacs text editor conditions’. This version has been in
international reach of the free institutional and commercial situations. and his legal tussles with a company place for 14 years.
software movement. To develop this The Version 3 Development and called UniPress. In May 1983 UniPress Broadly the GPL gives users the right
new licence, we will be contacting Publicity Project was kicked off with a acquired an application called Gosling to acquire, alter and redistribute
communities across the globe to 150,000 donation from Stichting Emacs from James Gosling. Gosling software available under the licence,
ensure their participation in the NLnet, a Dutch non-profit organisation Emacs was based on Stallman’s original with the caveat that any changes made
Emacs application written in 1975, and and (most importanly), released to the
update of one of the most important that supports research and
the source code was publicly available. public, are done so under the same
social documents of our time.” development in internet technology.
But when UniPress purchased Gosling liberal licence. The source code to such
GPL software development is a core
Emacs, Stallman was forced to remove ‘derivative works’ should also be
Global involvement part of the organisation’s work. elements of the Gosling code from his publicly available. Therefore, if a
In an interview with Linux Format Teus Hagen, chairman of NLnet, version of Emacs and replace them with company decides to implement a MySQL
published this issue, GPL lawyer Eben said: “Our support of the GPL and the his own code. system and makes changes or
Moglen said the FSF is expecting as Free Software movement, and its From this argument, the Emacs improvements to the software for
many as 150,000 people and 8,000 desire to see the successful adoption General Public License emerged in internal use only, they are not obliged to
organisations to have an opinion about of GPLv3 achieved in the spirit of February 1988. Other application- share them with the community.
how GPL 3 should look. “It’s going to internationalisation, made the funding specific versions of the licence were also However, should they later decide to
published, until 1989 when the licence market their MySQL-based software,
be a very large conversation,” he said. of this project an important priority for
was changed to make it applicable to they would need to comply with the
The current version of the GPL was us. We hope to encourage other grant
any application. In 1991 the licence was licence and publish the changes or risk
drafted in 1991 (see GPL In A Nutshell making organisations to help fund this
updated to version 2 to clarify issues legal action.
box, right) and, Brown says, has unique project.”

www.linuxformat.co.uk LXF73 DECEMBER 2005 7

LXF73.news 7 23/9/05 1:05:23 pm


NEWS

MICHAEL
MEEKS
Michael works for Novell
full-time on developing
OpenOffice.org, and
Virtual space gets bigger
dislikes herring.
Xen-like calm disrupted by Virginian start-up
COMMENT
A new company has entered enables instructors to create self-

A better the Linux virtualisation


market, launching a desktop
product that, it claims, is comparable
contained operating systems in which
users can work with multiple operating
systems and software sets

Gnome with VMWare and other systems but


retails at half the price. Parallels
Workstation 2.0, which is set for an
October release, and will be available
simultaneously,” said Rudolph. “Virtual
machines can be programmed to
automatically reset at shutdown,
ensuring that students will have a
I was particularly on both Windows and Linux. clean, error-free environment to work
pleased, while playing The Virginia-based company behind with each time they come to class.”
with OpenSUSE’s Gnome 2.12, to it, Parallels Inc, is unusual in the Parallels’s decision to offer Linux
see some of the new features. virtualisation market for planning to support was linked, Rudolph said, to
Firstly, the use of an target enterprise as well as home the company’s wide target audience.
mmapped icon data cache that users. “As computers become more “Linux continues to grow in importance
saves memory and improves and more powerful, virtualisation will and in use. It was important to us to
performance, particularly grow in importance,” explained build a product that worked with the VMware finally has some real cross-
application startup time. Each Parallels spokesman Benjamin Rudoph. two operating systems – Windows and platform competition.
process uses far more virtual “Users at all levels of ability and Linux – that the majority of the world
memory with the cache, but that savvy will want to maximise their uses personally and professionally.” As well as opening up to new
increase is all shared, giving a machine’s potential so they can work A beta release of the Workstation architectures and platforms (including
nice reduction in the real more efficiently and more powerfully, application is available now, and a BSD and Ubuntu), the new version
memory used. Of course, the VM while enterprises will want to curb server version is due early next year. of VMware 5.5 can access and boot
can also be more aggressive hardware costs, lower overall operating up disc images saved in Symantic’s
under pressure with nicely laid expenses, and efficiently support their VMware strikes back Ghost format without changing the
out disk-backed memory. IT infrastructure. Virtualisation Not to be outgunned, VMware has underlying file structure.
The same technique is being addresses all of these concerns.” launched a beta programme of its own Curiously, VMware is claiming that
extended to fontconfig, which is Parallels even has hopes for use of to offer early access to its next users will be able to run a 64-bit
another memory hog used its software in education, to help generation application, which adds guest on a 32-bit host. For example,
across the Linux desktop. It’s create student-friendly teaching support for 64-bit operating systems users will be able to run 64-bit Linux
also great to see the results of environments. “Parallels Workstation and dual-processor systems. or BSD on a 32-Bit Windows XP host.
the Google-funded optimisation
bounties starting to appear,
which will give Gnome 2.14 yet
further improved performance
and memory consumption.
Secondly, it’s great to see
Asianux unites three nations
the system events layer and Governments get involved in pan-Asian distro programme
volume monitor working well.
System events, such as In a startling example of enterprise users. The distro itself is the top three Linux products in the
hotplugging USB devices, are regional cooperation, the being rebranded and localised by region, according to Chris Zhao, Red
now handled in a consistent, governments of Japan, China companies in the three countries Flag’s president. Zhao is confident that
responsive and easily and South Korea have joined forces involved in its development. by improving the technology, sales
configurable way that can be to promote the benefits of Linux with The distribution has been developed presence and user support for version
locked down – and users will the release of Asianux 2.0, a server- with government assistance by Red 2.0, Asianux can build on that user
feel the benefits right away. only operating system aimed at Flag from China, Japan’s Miracle Linux base. “As a next step, we will recruit
This release added a large and Haansoft Inc from more partners to join Asianux so that
amount of new functionality Korea and will be we can expand the market for the
under the hood, such as Cairo, released as, respectively, products based on it quickly,” he said.
but we are still sticking to our Red Flag DC Server 5.0, The Asianux partners are also
ABI guarantees. Gnome 2.12 Miracle Linux V4.0 and hoping to make inroads into other
forms the seventh release in Haansoft Linux 2006 markets around the world traditionally
under four years of major Server & Server 64. It served by the likes of Red Hat, Novell
improvement that hasn’t follows version 1.0, and Microsoft.
significantly altered the ABI for which was launched in Project president Jong Jin Baek said
ISVs. What that means is that my June 2004 and has that a partnership was being forged
C/Gnome binary I compiled on already become one of with an Indian company. “With India as
Red Hat 8.0 in 2002 will still run Asianux has ambitions
a new partner for the Asianux project,
on my OpenSUSE 10.0 to become the leading we will have the most powerful Linux
today – nice work. distro in east Asia. platform in Asia,” he said.

8 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.news 8 23/9/05 1:05:26 pm


NEWS

Keep music Live ■ Last Man Standing is a new


Doom3 mod designed to breathe
life into an old friend. The game
comes into its own when used in
Noodler-friendly distro Studio To Go gets a remix KillFest mode, when the intention
is to become the last man standing.
Studio To Go, the Live CD The multi-platform mod is available
from http://lms.d3files.com.
distro that provides a
complete audio studio on a
bootable CD, has had its second major
upgrade since its launch last year.
Version 1.50 of the audio suite has
been released in tandem with a
comprehensive guidebook covering
the use of the included Rosegarden
Midi and audio sequencer.
In addition to the sequencer
software, Studio To Go includes a ■ A battle has broken out
between the local authorities in
selection of VST plugins, a complete Massachusetts, who want to
JACK audio system and a range of mandate the use of “open standards
applications including Audacity and and formats” for its documents, and
Microsoft, which sees this move as a
Ardour, the audio editing environment. violation of its right to compete in the
The complete Live CD package is office suite sector. The Massachusetts
available with the Rosegarden government will soon default to the
Open Document formats currently
companion book and a USB stick to supported by OpenOffice.org and
store compositions for £79.99 from others but Microsoft says the state
should standardise on its “open”
www.ferventsoftware.com. Studio To Go includes an enormous number of noisy applications. format, which uses standard XML at
its core but has licence restrictions
that ensure competitors won’t be
able to use it.

■ SCO posted a loss of $2.4 million

OSDL says “no” to


for the second quarter of 2005. The
loss was blamed on a drop in profits
from the core UnixWare product;
its failing SCOSource programme,
launched with the intention of
convincing Linux users to insure
themselves against future litigation;

joint MS study
and legal costs of $3.1 million.

■ In some better news for the


company, SCO has signed a deal
with MySQL AB to jointly deliver
a certified edition of the open
source database on the company’s
OpenServer 6. MySQL’s Steve Curry
We don’t want your steenking money! from MySQL AB said the deal
didn’t amount to an endorsement
of SCO’s business or legal activities:
Stuart Cohen, the director of faced calls to set up a Linux “We appreciate the sensitivity of this
issue and did not make this business
the Open Source equivalent to the campaign to decision lightly.”
Development Labs (OSDL), address the perceived bias in
has ruled out the possibility of a joint the mainstream press. ■ The great Munich migration to
Linux has missed its deadline, with
Total Cost of Ownership (TCO) study The latest in a sea of Total administrators and planners wanting
with Microsoft. Microsoft executive Cost of Ownership (TCO) more testing before they roll out the
Martin Taylor approached Cohen after studies suggests that Linux is new Linux and OpenOffice.org system
to users across the city.
the LinuxWorld Expo and Conference 40% cheaper to maintain than
in San Francisco last month with an Windows. The study, funded ■ Schoolchildren the Italian region of
offer to jointly fund and publish an by IBM and undertaken by Bolzano returned to their classroom
after the summer break to find their
independent study on the relative the Robert Frances Group, computers upgraded and running a
merits of Linux and Windows. looked at application servers combination of Debian and Gnome.
The FUSS Project saw the migration
But Cohen fears that bias would and found that businesses of over 16,000 school computers
appear, regardless of the results in an running Linux found savings from Windows XP to Linux.
objective report. Microsoft’s long of 40% over Windows and
■ Sun’s on-off affair with Linux is
running ‘Get the Facts’ campaign has 54% over Solaris. back on. The company has extended
been accused of skewing paid-for The OSDL was concerned support to Red Hat Enterprise
research in its favour regardless of the that Microsoft would insist upon a server on its newly-launched range
Could a study involving the world’s of x86-based Galaxy servers.
true outcome, which Microsoft has short-term study emphasising second-biggest brand ever really
denied. The OSDL (among others) has migration costs from Windows to Linux. be impartial?

www.linuxformat.co.uk LXF73 DECEMBER 2005 9

LXF73.news 9 23/9/05 1:05:31 pm


NEWS

LPI wants your help Richard


Cobbett
Florentine telescope

to update courses
builder, physics pioneer
■ The Mozilla Foundation has and church worrier. Or
launched a new commercial was that Galileo?
arm to raise cash to assist in the
development of the Firefox browser.
COMMENT
■ Meanwhile, according to some

It’s show
estimates, Firefox is set to approach
Exam update will reflect real life
a market share of 10% by the end
of the year.
The Linux Professional The public is being asked to
■ Wikipedia has begun using
Mono to provide search services on
its main encyclopaedia.

■ SCO has rediscovered its roots as


Institute (LPI) is seeking
assistance in building a new
programme of courses and exams to
better reflect the reality of working
comment on the internal review
process, which was completed at the
end of June 2005. The LPI is
accepting comments at https://group.
(girls) time
a software company, and updated its with Linux. The organisation says that lpi.org/cgi-bin/publicwiki/view/ Red alert. Red alert.
flagship UnixWare product.
it relies upon community participation Examdev/ObjectivesReview until Microsoft has a whole
■ Win4Lin has made a to ensure its exams are at the cutting the end of February 2006. New redesign planned for its Office
breakthrough in its core technology
edge, especially when it comes to objectives will come into effect in April suite, mixing a healthy dose of
by getting Windows 2000, XP
and Server 2003 to run using the deciding on the technical objectives on and May of next year for LPIC-1 and Apple-style brushed metal with
Xen hypervisor. which the exams are based. LPIC-2 respectively. a dollop of whimsy and/or crack
■ After months of work, Linus
For the current round of The LPI has already given an early to produce an interface that you
Torvalds has migrated the consultations, the LPI has started a hint of the changes that might take may love, you may hate, but you
entire Linux kernel to its new Git wiki dedicated to the process and is place: as of October, candidates sitting certainly won’t recognise. This is
management system. The ‘directory
content management’ system has a inviting users, developers and the LPCI-1 must answer questions on it, folks. This is the Death Star’s
new site at http://git.or.cz. sysadmins to submit their comments both RPM and DPKG package exhaust port, Achilles’ heel and
to the site. management systems. Paul Verhoeven’s Showgirls, all
■ A new version of MEPISLite has
been released. The lightweight distro rolled into one. Why? Change.
has dropped OpenOffice.org in favour The fear of change.
of KOffice.
Remember all those times
■ Recent open source convert you’ve tried to get people to use
Computer Associates is following the latest open source tool, only
in the footsteps of IBM, Sun and
Nokia in releasing a portion of its
for its unfamiliarity to scare
patent portfolio to developers. them away? Just look at the
early Office12 videos. That
■ Researchers at Cambridge
University have discovered that argument is gone. Indeed, for
Gimp, the open source image the briefest sliver of time, all the
editing application, is quite adept cards are in your hands. For once,
at revealing the contents of secure
letters that are sent out by banks you’ll be pushing software that
to accompany credit or debit cards. looks similar enough to current
Researcher Mike Bond said he first
systems for your friends, family
became suspicious after being able
to read his own PIN through the and co-workers’ comfort, with
‘secure’ envelope thanks to a poor feature sets powerful enough to
printing process. Images from these
envelopes scanned into Gimp would tempt them away from 1999
reveal their contents with a few forever. After all, if they’ve got to
minor adjustments. learn a whole new way of
The LPI’s exams are intended to reflect real-world applications of Linux. working anyway, it makes sense
to try that free open source
thingy before shelling out
COMING ATTRACTIONS... hundreds of pounds on a whole
new OS and office suite.
★ International PHP Conference, 6–9 first the shindig in Frankfurt, then this call for papers suggests a strong interest
The key is to make sure that
November, Frankfurt am Main, Germany two-day event in Paris targeting in languages such as Perl, Python and
all the software is ready to go in
Four days of database management, technical and business issues. The Ruby this year.
time – complete, usable, friendly,
security, application design, GTK programme was not confirmed as we www.osdc.com.au
integration and more. PHP bliss! went to press, but it will, the organisers and above all else, BS-free.
The gathering will begin with a say, feature the crème of French PHP ★ ApacheCon US 2005, 10 December, Forget betas, forget alphas, and
programming fest and speakers will talent. San Diego, USA for the love of all things, forget
include Georg Richter from MySQL AB www.afup.org/article.php3?id_ The organisers of ApacheCon are sifting ‘when it’s done’. The only way
and Jeremy Johnstone, founder of article=220 through the 200 proposals submitted by that Linux can hope to have a
Hotscripts.com and current Yahoo eager speakers. These are for the decent showing in the home is to
staffer. ★ Open Source Developers’ Conference, conference, but the event will also get in there at the changeover
www.phpconference.com 5–7 December, Melbourne, Australia feature presentations from the likes of
from XP to Vista. Open source
Kernel hackers get a chance to work on IBM (which is running a Glucode
software is often accused of
★ Forum PHP 2005, 9–11 November, their winter tans down under (that’s installfest), Sun Microsystems and the
being behind the big names. It’s
Paris, France Australia, not a euphemism) at the Java Community Process.
It’s a busy month for PHP developers: annual OS Developers’ Conference. The www.apachecon.com time to turn that
accusation into a weapon.

www.linuxformat.co.uk LXF73 DECEMBER 2005 11

LXF73.news Sec2:11 23/9/05 1:05:34 pm


NEWS

Frederick H Berenstein
David
Cartwright
David Cartwright is an IT
consultant who specialises
in providing Linux Systems

1946–2005
and solutions.

COMMENT

Mono mania Xandros founder dies aged 59


Dr Frederick H (Rick) started his career
Berenstein, the co-founder programming in Fortran in
of the Xandros distribution, 1965, and was responsible
has died in his New York home from for the design of some
As a fair number of our cancer of the brain. He was 59. landmark applications –
readers no doubt already Berenstein was one of the driving including Trans World
know, the Mono project (www. forces in ensuring the acceptance of Airlines’ pioneering
mono-project.com) has made the open source development model automated reservation
incredible progress with its among the reticent investors of Wall system in 1985.
attempts to produce an open Street. Before launching Xandros, he Xandros’s chief
source version of the .NET made significant investments in start- executive, Andreas
development platform. ups such as Ximian and CodeWeavers Typaldos, said in a
With the introduction of and founded Linux Global Partners to statement that
Windows Vista, however, incubate new Linux projects and Berenstein had a passion
Microsoft has raised the bar for companies. He also used his influence for Linux and a strong
the open source community and experience in the free software belief in the “inevitability”
simply by producing a new pile community to encourage investment of Linux. “Beyond Rick’s
of concepts (most notably the among other venture capitalists. vision, inspiration and
new WinFX architecture) and will, which enabled him to fight his
code that open source illness, that also inspired Rick to push
developers really need to
emulate to keep up with MS.
“HIS BELIEF IN LINUX Linux forward, ahead of most other
people, through visionary investments
The push within the Mono WAS INFECTIOUS AND in companies such as Ximian,
development community is a
sensible one: as time and HARD TO ARGUE WITH.” CodeWeavers, and finally Xandros.
“His belief in the inevitability of Linux,
resources are limited, they’re from the days when I first met Rick in
spending their time In addition to being a canny leadership, which our industry, our 1999 as one of his founding group of
implementing the stuff that entrepreneur (who could have been a company and all of us will miss, I will investors in Linux Global Partners, the
people (ie application concert pianist if his mother had personally miss his example of quiet Linux incubator that he had co-
developers) actually want. Even allowed it), Berernstein was an courage, and his indomitable will and founded with William Roseman, was
with the existing .NET accomplished software engineer who determination. “It is that courage and infectious and hard to argue with.” LXF
specification it’s been decided to
leave out some of the more
esoteric things that are kind of
nice but, in reality, rarely used.
EMBEDDED LINUX NEWS
This approach will undoubtedly
be extended to WinFX as and ● PalmSource has been acquired by the space. The company recently divorced itself company plans to sign partnership
when Microsoft’s implementation Japanese company Access for $324.3 from the Canopy Group – which also owns agreements with “four or five start-ups.”
million. Access is known in Japan for its SCO – and secured major funding from Panasonic has an interest in MontaVista – it
becomes less of a moving target
NetFront embedded web browser and is venture capitalists. Trolltech’s Qtopia software took a stake in the company in 2002 –
and the open source developers
expected to build on Palm’s transition to and application stack can be found on a and is expected to use MontaVista’s newly
can see what they need to do.
Linux. Access said it intends to port range of PDAs and, increasingly, on Linux- released embedded OS as a standard for
Mono has done an based smartphones.
NetFront to the Linux platform and expects future development. Start-ups interested in
admirable job so far, and I a first release of the new system in the applying for support from the fund should
sincerely hope that this will summer of 2006. The acquisition ● Panasonic has established a new venture visit www.vc.panasonic.com.
continue. Credit must, of course, means that most of the major players and collaboration fund
go to commercial entities such as in Japan’s enormous mobile phone targeting start-ups using ● Toshiba has joined forces with Sigma
Novell, which has put money market – including leader NTT Linux in the consumer designs to develop a Linux-based platform
into the project and includes DoCoMo – now have a significant electronics sector. The new for the next generation of smart DVD
investment in the success of Linux in Technology Collaboration players. The new reference design, built on
Mono with its Unix packages, but
the embedded space. Centre will be opened in San a combination of Toshiba’s TX4938 Mips-
we should all give at least a
Jose, California and the based TX System Risc microprocessor, and
passing thought of gratitude to
● Trolltech, the developer of the Qt Sharp’s Zaurus the Sigma EM8620L digital media
the band of Mono developers
toolkit which underpins KDE, is has successfully processor, runs MontaVista’s OS and will be
who are continuing to slog along preparing to go public on the back used in DVD devices, media players, IP-
used Trolltech’s
what must seem an of its successes in the embedded Qtopia software. enabled set-top boxes and other devices.
endless road.

12 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.news Sec2:12 23/9/05 1:05:36 pm


NEWS EXTRA

Trademark trumps
Another Australian soap opera
Graham Morrison reports on a trademark action that has left a bad taste in the mouth of many free software users

At the end of July, the Perth- which much of it is released. There Linux trademark for themselves,” president of Linux Australia. “We were
based lawyer Jeremy was an explosion of dissent on explained Towns. “Our aim has been directly threatened and we looked at
Malcolm, a committed Slashdot and other internet sites, and to register the trademark and hand it how such actions might affect our
advocate of open source, contacted much confusion caused by ‘free’ not over to Linus so that we don’t end up community. Imagine if someone
around 90 Australian businesses that seeming to be all that free after all. with different rules applying to the use trademarked the word ‘Linux’ and
use the word ‘Linux’, either within their of the word ‘Linux’ in Australia as then banned all user groups from
trading name or as part of the name Under threat opposed to the rest of the world.” using it? Such issues are not
of any products they offer. Under the The organisation sponsoring Jeremy The LMI agreed that Linux Australia impossible, and thus we wanted to
title ‘Use of Linux® Trade Mark in Malcolm’s actions is Linux Australia, a should handle the issue in the country. extend protecting ‘Linux Australia’ to
Australia’, Malcolm’s letter starts: “I act group of volunteers formed to cater to “The motivation behind the action is ‘Linux’ and have done the process
for Linus Torvalds, and I am writing to the needs of the Australian Linux pretty simple,” said Pia Waugh, vice according to the Linux Mark Institute.”
you about your use of the trademark community. Linux Australia has been
Linux. This is not a letter of demand, given the task of governing Malcolm has Licence confusion
won an award
but rather a request for your assistance, the use of the ‘Linux’ for his work Before June, a perpetual licence was
and an attempt to inform or remind trademark in Australia by for Linux in available from the LMI relatively
you of the rights and obligations.” the LMI, which works Australia, but cheaply, and the LMI could not
The letter went on to explain that directly under Linus his letter generate enough money to actively
annoyed many.
the Linux Mark Institute (LMI) in the Torvalds’ jurisdiction. protect the trademark. Changes in the
United States had been appointed the Anthony Towns, secretary
worldwide exclusive licensee of the for Linux Australia, said
Linux trademark, a move instigated by Australia was behind other
Linus himself to protect it from misuse. countries such as the US,
The addressees were told it is their where the trademark was
legal responsibility to obtain a licence already registered. “My
from the LMI before using the word understanding is that this has
Linux as part of a product, service or been an ongoing issue since around
brand. The purpose of the letter was mid-2003, since the Linux Australia
to pave the way for registration of the organisation has begun to get itself in
trademark in Australia. order enough to do more than just act
Shocked that the action was as a legal body for Australia’s national

“WE WANT TO ENSURE


THAT THE WORD LINUX
WILL NEVER BE TAKEN
AWAY FROM THE LINUX
COMMUNITY” PIA WAUGH
attributed to Linus Torvalds, many Linux conference [linux.conf.au],” he
people also felt that the legalese of told Linux Format.
the letter was reminiscent of the
recent SCO debacle, as it seemed to Serve and protect
coerce people into handing over Linux Australia came into contact
money for the use of the Linux with the LMI when its own name
trademark. This appears to fly in the was threatened. “[We received]
face of free software: surely if GPL advice from IP Australia that a
software can be left to fend for itself in company in Adelaide were calling
an uncompromising world, went the themselves ‘Linux Australia, Pty
objections, so too can the name under Ltd’ and trying to register the

14 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.xtra 14 22/9/05 9:48:24 am


NEWS EXTRA

Maddog Hall:
“People are ready
and willing to
RMS SPEAKS! misuse names.”
We asked Richard Stallman, founder of the GNU Project and free
software advocate, how the trademark wrangle was likely to
affect the perceived openness and freedom of GNU/Linux, and
how businesses may approach using the word ‘Linux’ in the
future. In particular, how did he feel about Jeremy Malcolm’s
distinction between subverting IP into creating ‘copyleft’ and the
lack of a similar space for the Linux trademark?

“That concept of free doesn’t apply reasons. The freedom to call your
to the issue here, since it affects none product ‘Foobar Linux’ instead of
of those things, but only the question some other name is not very
of how you can publicise your important. Most likely Foobar is
commercial activities. I am not a actually a variant of the GNU
lawyer, but as I understand it the operating system, and calling it
issue at stake here is not whether ‘Linux’ is a mistake.
you can distribute the sources of the The issue of free software relates
kernel, Linux, in a directory called primarily to copyright law. This issue
linux; and it is not whether these is about trademark law. As Mr
source files can mention the name Malcolm says, copyright law and
‘Linux’ in their comments. It is purely trademark law are quite different.
and simply about the name used for One reason that people tend to Linux Australia say they are
a product or service. So if you want confuse them is that the fashionable satisfied with his actions, even if friendly trademark regime for the
to distribute a GNU/Linux system and term ‘IP’ encourages such confusion. they’ve been surprised by the level of Linux and open source community.
call it ‘Foobar GNU/Linux’ or ‘Foobar This is one of the reasons people
interest his letters have attracted. So I don’t see any other solution
Linux’, you have to pay – but if you should avoid using the term. When
Those letters (which have reportedly besides enforcing the use of the trade
call it just ‘Foobar’ or ‘Foobar GNU’, Mr Malcolm uses that term, he
received a minuscule 10% response) mark and using licensing fees from
you don’t have to pay. perhaps unknowingly encourages the
The freedom to share and change same confusion that he is trying to are themselves part of the trademark commercial users to support that.”
software is important for specific clear up.” registration process in Australia, as Malcolm also told us the reaction to
feedback can be used to support the the letters was actually mixed, and
case that Linux is still a well-defined blames most of the hysteria on the
term and eligible to be protected with typical Slashdot user, who he
“SLASHDOT USERS MAKE a trademark.
Anthony Towns accepts that the
describes as creating so many
overblown rows and flame wars over
JERRY SPRINGER’S letters confused a number of people,
and that some of the criticism on how
the years that “they make Jerry
Springer’s audience look like the
AUDIENCE LOOK LIKE THE they were phrased and delivered was Vatican Council.” He insists that the

VATICAN COUNCIL.” “well deserved”. Follow-up emails from


Linux Australia’s president and other
letters were not letters of demand,
and couldn’t have been interpreted as
committee members have apparently such by any reasonable reader.
JEREMY MALCOLM overcome much of the confusion. This action is the direct result of a
process that Torvalds himself initiated,
licensing model will now generate Linux Australia has been liaising “No other solution” and he shares at least some of
enough funds to globally police it. A with Jon ‘Maddog’ Hall, executive When asked if legal measures were Malcolm’s disquiet at the reactionary
side-effect of this change is that it’s no director of the advocacy group Linux the only option for protecting the nature of the Slashdot crowd. In a
longer clear if you can use the word International. He told us he expects an Linux name, Malcolm said: “In an ideal recent post to the Linux Kernel Mailing
Linux purely descriptively, as with increase in the number of trademark world, we would just rely on the list (LKML), Torvalds said he was
Debian GNU/Linux. Recipients of the battles as free and open source goodwill of the Linux and open source concerned that the Linux community
letters were also alarmed at the software becomes mainstream. “If community to ensure that the integrity would lose control of the name. “You
prospect of having to pay to use the projects such as Linux, GNU, of the trademark is maintained. History can call anything ‘MyLinux’, but the
word Linux, although the letter did OpenOffice and others do not protect has demonstrated that this is not downside is that you may have
promise that the LMI would “waive” their names, they will find that people sufficient, so we are forced back on to somebody else who did protect
any previous trademark “infringements”. are ready and willing to misuse them,” legal solutions.” himself come along and send you a
Pia Waugh denied that Linux he said. “It is a sad fact of life. I think He went on to say: “With copyright cease-and-desist letter.”
Australia is motivated by money. “In that when people get used to it they law, we have been able to subvert the It seems that as far as Linus is
fact, all trademark rights will be will realise that the [Australian] IP regime to some extent by creating concerned this is an open and shut
transferred to the Linux Mark Institute tempest in a teapot was just that.” ‘copyleft’. There isn’t really an case, and as the owner of the
for protecting,” she said. “This is the The “tempest in a teapot” phrase analogous way of creating a more trademark, he is in the right. LXF
institute that Linus himself has was coined by a Groklaw reporter.
entrusted to protect the name. ++++ BREAKING NEWS ++++
“We want to ensure that in an age Malcolm in the middle The Australian Trademark authority has This is not unusual in such
where anyone can hold patents, Linux Australia has also been criticised made an initial determination on the applications, and does not mean that
trademarks or whatever else over the for its use of Jeremy Malcolm, a lawyer status of the Linux trademark, and has the LMI will not ultimately have
heads of people interested in freedom, who was previously known for his use specified that the current supporting trademark protection granted. However,
that at least the word Linux will never of the DMCA against Google and for material provided by Jeremy Malcolm is some existing trademarks incorporating
be taken away from the Australian his association with the Church of not enough to uphold the LMI’s claim the word Linux already exist, which may
for protection. complicate the proceedings.
Linux community or businesses.” Scientology. But the committee at

www.linuxformat.co.uk LXF73 DECEMBER 2005 15

LXF73.xtra 15 22/9/05 9:48:27 am


REVIEWS Mandriva Linux 2006

LINUX DISTRIBUTION

Mandriva Linux 2006


Graham Morrison hopes for fireworks from the Mandrake/Conectiva factory, but fears a damp squib.
KEY STUFF
The first proper release from the
new regime at Mandriva. See also:
SUSE 10.0 or Red Hat Fedora.
■ DEVELOPER Mandriva
■ WEB www.mandriva.com
■ PRICE: Free download edition

When Mandriva last released


an update of the popular
Mandrake distro, opinion in
the office was mixed (see LXF67 from
April). Mandriva Linux Limited Edition
2005 was a strong distribution; its
excellent configuration and package
management tools still made it a
contender for our top distro. But there
was something missing: Mandrake’s
trailblazing history of squeezing the
latest releases on to the disc was
replaced by sober consolidation with
Conectiva, and a new, mature outlook
both for the packages included and
for the company’s business strategy.
Mandriva promised a new version
for the final quarter of 2005, and sure
enough it has delivered an optimistic
and forward-thinking distribution in
Mandriva Linux 2006. There will be a
downloadable version, as usual, but For the new release, Mandriva has added KDE 3.4, a new Socialist-Realist penguin… and very little else.
Mandriva really wants users to pay to
join its club, to be able to download configuration panels. But the most despite the recent kernel version the contents of those files, and makes
this version early and also take important addition we could find was there’s still no sign of Gnome’s finding mislaid files much easier. If
advantage of an extra disc of packages. the provision for setting up a DVB wonderful search tool, Beagle. you’ve used Beagle, you’ll appreciate
network, which is interesting if a little Considering this, it’s surprising to that searching for the contents of a
(Almost) infallible niche. DVB networks use a data layer find that KDE has been augmented file in this way rather than just its
When it comes to ease of installation, embedded in the MPEG-2 transport with its own search tool, Kat, whose name becomes compulsive once you
Mandriva can retain its seat close to stream transmitted from a satellite. feline form sits discreetly in your get used to it.
the top of the table. While not much This provides a high bandwidth toolbar. Kat is obviously designed to Kat will eventually become an
has changed, it still features one of downstream connection, while a compete with Gnome’s canine integral part of KDE’s file retrieval
the most infallible installation routines terrestrial low bandwidth connection is scavenger, and works in much the once it is embedded in the file
we’ve come across. It can deal with a used for upstream data. It’s a same way. It’s a framework for requester, but in its current state you
wide variety of hardware, and removes technology mainly of use to people indexing files described using certain can search the contents of compatible
much of the guessing that used to be working in very isolated locations. MIME types. For example, descriptors files from the Kat application window.
the mainstay of Linux installation. for PDF or HTML allow Kat to index To use Kat, you first specify which
Even more impressive is the greatly Into the details directories you wish to be indexed. Kat
improved speed of booting your First, the good news. The most serious will then wait for a period of CPU
system: less than a minute on our omission from the previous release
MANDRIVA’S CORE inactivity before scanning through the
Pentium 4, 2.2GHz, 512MB RAM has been rectified with the inclusion of SOFTWARE directories to create an index. It’s quite
machine, and 20 seconds of that was KDE 3.4.2. Mandriva can now stand 2006 LE 2005 processor-intensive, which is why Kat
for KDE. Mandriva has worked a little alongside SUSE and Fedora; and Kernel 2.6.12 2.6.10 waits for a lull in your machine’s
magic behind the scenes, even if the because it’s taken up KDE 3.4 KDE 3.4.2 3.3.2 activity. After the index has been built,
user interface doesn’t show it. relatively late it has also taken Gnome 2.10.2 2.8.1 it can be queried through either the
Apache 1.3.33 1.3.33
With such an impressive advantage of all the speed and stability kioslave, by typing kat:/search in place
Firefox 1.0.6 1.0.1
improvement in the boot speed, you fixes that were incorporated into the of a URL in Konqueror, or using its
GCC 4.0.1 3.4.3
might expect that changes have been 3.4.2 release. Gnome too has been own user interface.
Gimp 2.2.8 2.2
made at a low level, which should be upgraded to take in the goodness of OpenOffice.org 1.15 1.1.4 Another KDE feature added
most evident in Mandriva’s the 2.10 release. On the downside, automatically to the toolbar is Skim,

22 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.rev_mandriva 22 19/9/05 5:48:07 pm


REVIEWS Mandriva Linux 2006

HOW TO USE THE KAT SEARCH TOOL

1 2 3

You first need to specify just what you want Clicking on the small Kat icon in the toolbar Once your sources are indexed, you can query
to be indexed, by adding a directory and the opens another window, where you can start the database using the standalone Kat
kind of filetypes you want to be included. each indexing process independently. application (above), or from Konqueror (below).

which is KDE’s version of a Smart PHP, and also by using a cutting-edge still a great distribution, and it will
Common Input Method platform; version of the X windows environment, always have a warm place next to the
functionally almost identical to the X.org (version 6.9). The desktop feels hearth at LXF Towers, but it’s difficult
GTK SCIM panel installed as default on smoother and slightly quicker, but “This release has firmly to see just where it’s going. The
SUSE. Basically, it allows users of non- enabling the transparent windows and placed Mandriva in the #4 bottom line is that there’s essentially
Latin scripts to change their keyboard shadows using the composite spot, after SUSE, Ubuntu no difference between this release and
configuration using just a couple of extension still caused problems with and Fedora. Choosing Kat the previous one, other than the
quick mouse clicks. The KDE version our NVIDIA hardware. rather than Beagle? This essential upgrades necessary when
also lets you manage a couple of Other notable packages includes distro badly needs Mono.” treading water.
functions of the KDE composite with this release include Scribus and There’s no evidence at all of the
manager, for adding transparency and Amarok, both at version 1.3. Mandriva predecessor. But the slightly comical Conectiva acquisition. This is still
shadow effects to your desktop. also bucks the recent trend of not essence of old has been replaced by a Mandrake, even if it has tried to
Applications like Beagle and Kat including patent-risking codecs by degree of Kafka-inspired paranoia, eradicate every last instance of its old
modify changes to your system, so you enabling MP3 playback by default, with the new penguin seeming to gaze name (having said that, Kat manages
might think their presence in Mandriva which is a good step. at the dawn of Linux on the horizon. to turn up a few). The configuration
2006 indicates that the kernel has The biggest disappointment is that
been updated to include Inotify. Sure six months after SUSE 9.3 was
enough, it’s the shiny new 2.6.12
kernel that’s at the heart of the new
released with an almost fully
functional OpenOffice.org 2.0,
“MANDRIVA IS STILL GREAT
Mandriva release. Not only that, but it’s Mandriva is still using the previous BUT IT’S DIFFICULT TO SEE
also been compiled to include support
for hyperthreading and Xen. Hardware
version as its office suite of choice.
This is understandable to a degree, as JUST WHERE IT’S GOING.”
hotplugging has also been improved, not all pre-2.0 versions have been
with the migration of certain modules very stable, but it would have been Even Fedora has left the Galaxy utilities are still brilliant, and hardware
to Udev. We found USB devices in nice for the download version to theme behind, and Mandriva really support is still unprecedented. We
particular worked better than in the provide a choice – especially when should do the same. It’s easy to say finished our previous review asking if
previous release, where repeated SUSE has been able to make it work. that you can change the whole style of Mandriva’s new strategy was the end
removal of a USB key would eventually A ‘preview’ version of 2.0 is available the desktop using a couple of clicks, of the beginning, or the beginning of
mess up the automatic configuration. to Mandriva Club members on an but for a distribution at the coalface of the end, and we find ourselves six
extra disc, but an office application converting people to the Linux fold, months later putting the same
New compiler should be at the heart of a system, the charcoal and blue colour scheme question back in cold storage. LXF
Sure to interest developers, Mandriva and new users won’t be impressed if is starting to give the feel of a disused
has updated the Gnu Compiler they have to go out and get something colliery under an icy sky. Mandriva LINUX FORMAT VERDICT
Collection to version 4 from version 3. that they should have already. needs to spend time creating a lighter FEATURES 6/10
This is a big change, as the creators default user interface, perhaps taking PERFORMANCE 7/10
had to compile and test every package For art’s sake some graphical cues from SUSE and
EASE OF USE 8/10
in the distro using the new version. It seems traditional to pick on Red Hat Fedora.
GCC 4 is new territory, as so many Mandriva’s artwork, and we’re not You may have noticed that this DOCUMENTATION 6/10
things have altered for the new quite ready to break from convention review has focused on several A solid distribution with much to offer,
release. We found 2006 to be very just yet. Thankfully, the gaudy starry- relatively minor changes. After all, but there are still questions about how
Mandriva will develop.
stable, and compiling our own apps eyed ‘crow’ from last time has been KDE 3.4, Gnome 2.10 and GCC 4 are
using version 4 was unproblematic. replaced by a stylistic penguin staring essential, but other distributions have RATING 7/10
Mandriva stays at the head of the skyward. It’s an improvement, being already beaten Mandriva to the punch
distro pack by including version 5 of considerably more refined than its by a considerable margin. Mandriva is

www.linuxformat.co.uk LXF73 DECEMBER 2005 23

LXF73.rev_mandriva 23 19/9/05 5:48:09 pm


REVIEWS SUSE Linux 10.0

LINUX DISTRIBUTION

SUSE
Linux 10.0
Stylish and feature-packed, SUSE
finally makes it to double figures.
Paul Hudson tries it out.
KEY STUFF

Home-user distro with features for


everyone’s tastes. Also consider:
Mandriva, Fedora Core or Ubuntu.
■ DEVELOPER Novell
■ WEB www.novell.com
■ PRICE Free to download under
GPL or £64.95 for boxed set with
install CDs, DVDs and manuals.

Over the years, we’ve come point of asking when we would finally
to realise that SUSE is as see a truly open version of SUSE that That’s somewhat akin to saying All new: cleaned-up Yast, a smart K
regular as the 7:36 from involved the community and was that Fedora embraces and develops menu and the Blam RSS reader.
Stuttgart to Munich. Six months ago available to download. The answer was several additional important open
we reviewed SUSE 9.3, six months that the business model just didn’t standards not included in SUSE, such the best you’ll find – plus an inch-high
before that we reviewed 9.2, and so it support opening the distro up. Clearly as Anaconda (the Red Hat installer). stack of CDs and DVDs ready to be
has been pretty much since the the subsequent acquisition by Novell Here at LXF Towers we consider installed. Fedora, however, tends to
beginning of this magazine. SUSE has has reformed SUSE completely, as standards to be either de facto (made leave full stabilisation of a release for
traditionally lagged behind other only a few months ago the new standard by popular use) or de jure the Red Hat Enterprise Linux
distros, with higher version numbers openSUSE project was announced, (made standard through a ruling of a developers, which leaves the basic
eschewed in favour of fewer crashes. which aims to develop SUSE with the standards body). Yast is neither, so Fedora Core installs unsupported and
April’s 9.3 release changed that by community rather than hiding it away. keep your FUD alarm on while reading often unstable.
eclipsing Mandriva for the first time in For end users this means weekly the openSUSE website. As part of making SUSE open, the
our memory: it had more features and, builds of the distro, public roadmaps, Perhaps the only real difference www.opensuse.org site hosted a
surprisingly, more stability than its long- the chance to contribute and the between openSUSE and Fedora is that new build of version 10.0 every week
time competitor. ability to get in touch with individual the former is turned into a boxed before release, working through beta
Despite the last release differing developers at SUSE. In short, SUSE product at the end of the releases 1 to 4, then release
so much from the one before that, it has followed Red Hat, which forked off development cycle. The SUSE boxes candidates. Downloaders could test
warranted only a tiny 0.1 version bump. its own desktop distro into the Fedora provide extensive documentation – out each new release and submit bugs,
What, then, has changed so much to community a while ago. and even host their own projects on
make this SUSE 10.0 rather than 9.4? Before we get a barrage of emails the site adding their own patches and
Well, the differences this time are from novell.com addresses, we
SUSE’S CORE customisations to the release for
more philosophical than technical, should say that openSUSE is quite SOFTWARE others to try. Although we’d rather see
that’s for sure… different from Fedora – well, that’s 10.0 9.3 full access to the build server (this is
what the openSUSE people will tell Kernel 2.6.13 2.6.11 planned sometime next year) we have
Tip of the hat you anyway. The website contains such KDE 3.4.2 3.4 to give kudos to SUSE for pulling off a
About two years ago we flew over to choice quotes as: “The openSUSE Gnome 2.12 2.10 great start to the project.
Apache 2.0.54 2.0.53
Nuremburg – where SUSE’s project embraces and develops several
Firefox 1.0.6 1.0.4
headquarters are – and took a tour additional important open standards
GCC 4.0.2 3.3.5
The applications
around the labs there. We made a not included in Fedora, such as... Yast Gimp 2.2.8 2.2.4
With all the glasnost swishing around
(a standard, open source configuration OpenOffice.org 2.0 2.0 SUSE, it’s perhaps not surprising that
and management suite for Linux).” SUSE 10.0 is less of a technological
FEATURES
AT A GLANCE
Gnome 2.12 The new, The Blam
means spatial- more aggressive newsreader is
mode treeview SUSE password installed by
Nautilus. Another checker. default – and
good Mac idea it rocks!
stolen borrowed!

24 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.rev_suse 24 19/9/05 5:48:49 pm


REVIEWS SUSE Linux 10.0

revelation than 9.3 was. It’s partly a In the freely downloadable release,
victim of its own success – putting Xen, THE SUSE COMMUNITY some commercial packages are
Beagle OpenOffice.org 2.0 and Mono Distro community-making is almost Can SUSE keep up the pace while missing: Java is gone, as is
all into one release didn’t leave much becoming a sport, and the latest event is opening up even more of its systems? Macromedia’s Flash Player and Adobe
behind to make headlines for 10.0. the different ways in which distro Right now you can download CDs of Acrobat. We’re happy to wave goodbye
But don’t despair – there are enough makers try to form communities around each test release as they come out, but to all three, but if you feel pulled by
new things here to keep SUSE fans themselves. For Mandriva – arguably the really you want to be able to download the call of proprietary software and
interested: first distro to try this – the plan was to nightly builds to see if the bug you don’t want to buy the commercial
sell membership and provide unique submitted yesterday really is fixed or
■ This is the first distro (apart from SUSE you can still go ahead and
features. Ubuntu seems to have done a not. Similarly, can we expect SUSE to lay
Ubuntu) to release Gnome 2.12, download it all – the free SUSE even
great job of making a community down a strict trademark law for people
reviewed on page 30. It isn’t really a points you in the right direction.
through its plan of mailing out CDs free who want to build on top of SUSE?
user-centric release – the biggest new of charge, but to be fair not many can Traditionally, Debian, Red Hat and More interesting is that the
feature is the new Cairo back-end for afford that! For SUSE the plan seems to Mandrake have been used as parent openSUSE project has led to a freely
GTK that makes the graphics much be to release beta versions of its distros distros, but SUSE almost never – is that available SUSE release for PowerPC
smoother, but there aren’t many other very regularly to keep people interested. going to change? chips (ie your shiny new Mac Mini).
exciting new features around. Still, In fact, the only distro to have tried to Let’s hope so. If SUSE really means to SUSE has loved and left PPC before,
you’ll be getting the most up to date make a community and failed (so far) is be open, it should go all the way: let so this may only be a temporary thing…
Gnome version available. Fedora, where the plan was, “If we build people create SUSE-derivatives (and
■ Evolution is now up to version 2.4. it, they will come”. As Graham Morrison’s
account of his Kalbum project showed in
mark them as such) to their hearts’
content, and that will be what truly
For the coders
The email client has been refined and SUSE continues its dominance on the
LXF72, a community won’t build itself. makes the SUSE community a success.
polished, with even the most obvious programming front with the much-
new feature being fairly minor. needed inclusion of MonoDevelop.
■ Xen 3 is included, bringing with it So, although this is nothing like the own tab, which means users who don’t Mono libraries are included for a wide
support for x86-64 and SMP. version number jumps we saw in 9.3, want all the dirty details just get range of things, even down to
■ Kernel 2.6.13 is here, so you get SUSE remains ahead of the pack on overview screens. To back that up, ipod-sharp so you can write C#
Inotify support out of the box. every front. there’s a clear ‘choose between programs to play around with your
The inclusion of Gnome 2.12 is Gnome, KDE or other’ screen, which is new iPod Mini. SUSE’s commitment to
marred by the fact that the system Setting up much easier for new users and also detail here is almost fanatical:
tools are available only on the DVD SUSE’s installation system was already places SUSE firmly in the middle of GCC 4.0.2 is the absolute latest
release. This is also true for a few other easy to use, and the team have made both desktop camps. version as we’re going to press – a
things, including PHP 5. SUSE really a number of helpful little tweaks that The default installation is packed whole 0.0.1 version number higher
needs to grow by an extra CD to avoid make things even easier. Some of the with programs and so is quite sizeable, than in Mandriva. You also get
annoying people without DVD drives. more advanced options are but you do get just about every KDevelop and Glade for Qt- and GTK-
There are some other, smaller now hidden away under their program you need as a desktop user. based development, although Qt
version bumps – the latest Mono and Mono is installed by default, along with Designer is here in its ‘KDE Designer’
Beagle are included, for example – a number of Mono-based programs guise as well as plain old Qt Designer.
but most other components haven’t such as Tomboy, Beagle and Blam. All With Mandriva falling even further
needed to change much in the past “At a time when boxed of the OpenOffice.org 2.0 office suite is behind, we’re starting to wonder
six months. KDE 3.4 and Gimp 2.2 distros seem to be falling here, naturally, and it’s great to see whether SUSE is beginning to focus
remain, although perhaps with fewer out of favour, SUSE has that SUSE has followed Red Hat by on Ubuntu as its closest competitor.
bugs this time around. One new upped the ante, once again using the Java-free version of OOo. The Breezy Badger release (reviewed
feature we did like in the K Menu is proving you can have your SUSE’s Yast installer and control next month) includes Mono and
the ability to type in a search term to panel system has been tweaked in Gnome 2.12, plus a slew of its own
proverbial new version
have it grey out menus that don’t various small but appreciated ways. new features.
cake and enjoy eating it.”
contain what you’re looking for. SUSE 9.3 (and prior releases) had a Of course, no one really ‘wins’ in
large Yast logo at the top of the the Linux market as we all consider
window plus the SUSE toad, which proprietary software our common
took up space needlessly and just left enemy, but nonetheless it is
people wondering what ‘YaST’ means. interesting that SUSE has gone to so
Fortunately SUSE has redone the much effort to be more open with this
interface. This change has been release, and focused its efforts on
mirrored in the Sax2 X configuration refining what’s already there rather
tool, which used to have its own weird than introducing new things. LXF
interface stuck in the middle of Yast.
But now, praise Linus, this is fixed. LINUX FORMAT VERDICT
Yes, it took ten versions to stop Yast FEATURES 9/10
sucking like an industrial vacuum
PERFORMANCE 9/10
cleaner, but better late than never. Of
course, it now only sucks like a small EASE OF USE 8/10
Dyson: much more work is needed, DOCUMENTATION 9/10
particularly to clean up the mass of An enjoyable release that builds upon all
jargon in the Network Services screen. the successes of the previous release.
SUSE employees: please, if anyone Remains top of the game.

wanted to set their computer’s time RATING 9/10


Even the login screen has been smartened up, and various themes are over the network, they would never,
available for it. This is the default ‘SUSE 10.0’ theme. ever look for ‘NTP client’!

www.linuxformat.co.uk LXF73 DECEMBER 2005 25

LXF73.rev_suse 25 19/9/05 5:48:52 pm


REVIEWS Gnome 2.12

DESKTOP ENVIRONMENT

Gnome 2.12
Has Gnome managed to add updates without compromising its prized usability? Andy Hudson finds out.

KEY STUFF
Heavyweight window manager.
Also consider: KDE 3.4 or IceWM.
■ DEVELOPER Gnome Foundation
■ WEB www.gnome.org
■ PRICE Free under GPL

Nothing inspires a good


punch-up in the Linux
community as much as
choice of window manager. There are
three main camps: the lightweights,
the KDE supporters and the Gnome
advocates. In our review of Gnome
2.10 (see LXF66), we said that it had
reached a good degree of maturity,
both in features and stability. We’re
happy to report that Gnome 2.12 goes
even further, and reminds us once
again why Gnome is so many people’s
window manager of choice.
There are, as ever, two main ways
of getting Gnome 2.12. The first, and
most time-consuming, is to use the
source tarballs released by the Gnome
Foundation. The alternative, which the
majority of users choose, is to wait
until their distro is updated with the
latest release. This is the method we In typically usable fashion, Gnome 2.12 allows you to see exactly what you are dragging and dropping.
used. Testing versions of Gnome 2.12
were available on both OpenSUSE and Gnome community has put a lot of little addition is the new sidebar, where visibility of existing menu options, but
Ubuntu Breezy Badger in time for our effort in to this release. you can quickly access any it’s a step in the right direction (we’d
review. We went with OpenSUSE. One of the most significant bookmarked files, whether they’re stick with Smeg for now).
updates under the hood is the network drives or local directories.
Sleek inclusion of GTK 2.8, which uses Cairo Apart from Nautilus, improvements Simplicity
First impressions were as favourable as to enhance the graphics and make the have been made to the bundled Version 2.12 remains faithful to
ever, with 2.12 retaining the sleek look user experience more enjoyable. The software, including Evolution. This MS Gnome’s core beliefs – especially that
that Gnome’s followers know and love added bonus is that GTK 2.8 is totally Outlook replacement has had a of usability. Unlike KDE, with its horde
– but it now sports a new default compatible with earlier versions in the number of new plugins developed for of applications and seemingly endless
theme: Clearlooks. Users of Fedora 2.x family, so it’s easy for developers to it, and work has also started on ways of doing things, Gnome is still
Core 4 will already be familiar with this make the most of its functionality. making it compatible with CalDAV (the comparatively simple. But with two of
theme, as it was chosen to replace Another thing that GTK allows is the calendaring portion of WebDAV), the top three distros on DistroWatch
Bluecurve as that distro’s default ability to preview text when you drag which should make scheduling using Gnome by default, surely world
desktop appearance. It’s functional, and drop it across different Gnome- extremely easy with a messaging and domination can’t be too far away! LXF
clear and gives Gnome a fresh look. aware applications. As you drag the calendar server such as Hula.
Visually, not much else has changed. text around you can see exactly how Other changes include
LINUX FORMAT VERDICT
Don’t let this deter you though, as the much you are moving. enhancements to HAL that enable
Gnome to recognise even more FEATURES 9/10
Software plugged-in devices, and report more PERFORMANCE 9/10
Nautilus is still Gnome’s default file useful information. Weather Reporter EASE OF USE 9/10
manager, and love it or loathe it, it’s can now quickly find your location DOCUMENTATION 8/10
here to stay. There’s now a list view wherever you are in the world, and
very similar to that popularised on there’s a new CD and DVD-playing Another solid release, raising the bar for
features and ease of use.
Macs prior to OS X. Another handy applet in the toolbar. And to appease
those who have been campaigning for RATING 9/10
Your favourite tracks are just a one for years, a menu editor has been
click away with the new applet. added. It only allows you to toggle the

28 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.rev_gnome 28 21/9/05 1:49:01 pm


REVIEWS Sugar Suite 3.5

CUSTOMER RELATIONSHIP MANAGEMENT SOFTWARE

Sugar Suite 3.5


CRM software is usually closed source. Will this open release please Graham Morrison?
■ Free version

KEY STUFF easier by the presence of more than


Suite for a range of CRM tasks: use 20 tabbed buttons for getting to the
email marketing templates, track other pages in the system. The
customer queries, create quotes, problem is that Sugar Suite tries to fit
record customer history and more. too much information on one screen,
See also: AbsolutelyBusy. producing an interface that’s busy and
■ DEVELOPER SugarCRM Inc hard to get used to. We’ve seen worse,
■ WEB www.sugarcrm.com though, and the sympathetic colour
■ PRICE $2,245 for five users scheme and framing soften the blow.
or free to download under
SugarCRM Public License Try it for free
The Enterprise version of Sugar Suite
It’s surprisingly common for supports Oracle databases as well as
businesses to keep their the default MySQL and an advanced
customer details in one large reporting module that features
spreadsheet. This is especially true complex queries and a comprehensive
when the details are only needed support package. There are other
once a year for the Christmas card list. versions, including a hosted ‘Sugar On-
But if you operate like this, you’re Demand’ service, and a cheaper
missing out on a wealth of information Professional version.
about your customers with every sale If enterprise-level pricing leaves a
You can manage your entire customer database from the home page,
or enquiry. Even geeks can appreciate bitter aftertaste, consider the free
but the price is a rather cluttered design.
the amount of data that’s lost when edition. It uses yet another licence
you put the telephone down on a installation is as simple as extracting you’re selling software. Sugar Suite has (the SugarCRM Public License, natch),
customer without making any notes. the entire Sugar Suite application, an RSS module for news streams, but it is free, and can be a massive
And so customer relationship copying it to your web directory and integrated email, and an extension to boon if your business needs to really
management was born, the tedious running the included install.php page use with Microsoft’s Outlook. And as get under the bonnet and customise
name given to any smart customer from a web browser. you might expect with a system that its CRM application.
database and contact management You then need to answer a few generates more data that the Hubble Sugar Suite is so big and so
suite that helps businesses keep tabs questions about database space telescope, there’s also a complex that you really need to give it
on their customers and measure the configuration and you’re done. comprehensive reporting module a long-term trial. Regardless, this is
success of marketing campaigns. where you can add fields from just impressive software, perfectly capable
Sugar Suite is one such application. How it works about any of the other modules. of becoming an integral part of your
It is a classic Lamp solution: combining Each user within the company has an Sensitive, uncompetitive types business strategy. It’s feature-rich,
Linux, Apache, MySQL and PHP. You account. There you create customer might like to look away while we comprehensive, and best of all, you
can use it to enter customer details, accounts for your contacts and report discuss the dashboard. This is where can see the source code. LXF
making notes and to-do lists as well as on any progress using the contact you can see your sales scores pitted
planning meetings or collaborating on manager. You can raise sales against those of your fellow team LINUX FORMAT VERDICT
sales opportunities. These are all opportunities as they occur and mark members. Data mined from the FEATURES 8/10
avenues of potential for a business, any preliminary contacts as ‘leads’. database is used to determine your
PERFORMANCE 6/10
paths that present themselves and Your company’s product details are yield and efficiency from the various
need to be followed up. In layman’s also part of the system, and any customer-facing modules. Scary. EASE OF USE 6/10
terms, they’re goods and services. problems with your product can be After logging into your account, the VALUE FOR MONEY 7/10
From a system administrator’s registered as cases then, if it’s not your first page you see is the SugarCRM
This offers the best of both worlds: a
perspective, installation is relatively job to fix them, assigned to colleagues ‘home’. This is an overview of your professional and well-supported solution
easy. As long as your server is running for resolution. contacts and appointments, and shows that comes with source code exposed for
all to see.
the required versions of the software, The breadth of this software is you notices from other members of
sometimes staggering. You’ll find your team. The wealth of information RATING 7/10
modules for managing customer you’re presented with here is a little
FEATURES quotes, and a bug tracker in case overwhelming, and not made any
AT A GLANCE
Add and manage Create custom Identify the most
your sales reports with profitable sales
contacts from a complex channels with
button bar. queries. the dashboard.

30 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.rev_sugar 30 21/9/05 3:13:47 pm


REVIEWS CrossOver Office 5.0

WINDOWS EMULATOR

CrossOver Office 5.0


‘Naughty but nice’ redefined for geeks: eating
■ Wine, the base
of CrossOver Office

cream cakes while using MS Office on Linux. Would


Graham Morrison pay $40 for such an illicit thrill?

KEY STUFF Windows system components, and


CodeWeavers contributes to this
Get Windows applications working in
hugely popular open source project in
Linux. See also: Wine.
turn by ploughing its own changes
■ DEVELOPER CodeWeavers back into it. Each release provides
■ WEB www.codeweavers.com
compatibility with a desired Windows
■ PRICE $39.95
program (you can register your interest
CrossOver Office last graced for those you need on the
our pages back in LXF63, in CodeWeavers website). Last time it
February of this year. And was Apple’s iTunes software, this time
since then? Well, most people use the it’s Microsoft Office 2003.
summer months for playing volleyball
on the beach, or Unreal Tournament Cross redressing
in the office. But those crazy folks at Considering CrossOver’s complexity, it’s
CodeWeavers have worked all summer surprisingly easy to install and manage. Above: CrossOver Office lives up to its
long to bring us a shiny new version, You just need to execute a single name with Microsoft Office 2003.
and a winter break isn’t even on the installation script, after which you find Right: Each application can share a
‘bottle’– its own Windows version.
horizon: CodeWeavers’ product a setup utility added to either your
roadmap includes another major Gnome or KDE menu. It’s from the
release of CrossOver Office before the setup utility that you add and remove There’s another advantage to this
end of the year. That will be version programs and repair any installation approach; you can create bottles
6.0, and targeted specifically at that fails to work. tailored for a specific Windows is usable, but only if you absolutely
running Windows games on your Linux For the most part, you install operating system, such as Windows 98 need to buy music from Apple on your
desktop. Development of this version applications that have already been or Windows 2000, and even run Linux machine – you’d be mad to use
is most likely in response to a recent proven to work, and you select which applications from different bottles at it over a native Linux media player.
announcement from erstwhile games you need from a list. If this is a freelythe same time. Other applications don’t seem to
porting specialist TransGaming that it downloadable application like iTunes or CrossOver Office suggests which suffer the same problems at all, and
intends to broaden its compatibility to Windows Media Player, the setup bottle is most appropriate for which even Windows Media Player works well.
include Windows applications, clearly software will automatically download application at installation time. ITunes, Using CrossOver’s filetype editor, you
stepping on CrossOver Office toes. the files before attempting to install for example, uses a Windows 2000- can manually specify which files you
Back to the present, and version 5 them. There’s almost no user tailored bottle, while other applications, would like Media Player to open,
of CrossOver Office. For the uninitiated, interaction, and the whole process is Windows Media Player included, seem making it the perfect solution for
CrossOver is an application designed very smooth. If the software you’re to prefer Windows 98. some of more prickly proprietary AVI
to run Windows applications from installing comes on a CD-ROM, it’s The other big new feature in this formats you often find on the internet.
Linux. It uses Wine to provide all the just a matter of pointing CrossOver release is, as we’ve hinted, CrossOver Office seems to be going
Office to the location of the drive on compatibility with Microsoft’s Office from strength to strength, and we
A mouth-watering array of your system. 2003. It worked exceptionally well, can’t wait for the game-centric version
Windows applications are even going as far (too far?) as adding 6.0 at the end of the year. If you need
supported. Bottles of Wine the Microsoft Customer Improvement Windows compatibility, and CrossOver
The big addition for this release is Program applet to the tool bar. It’s Office supports the applications you
what CodeWeavers calls a ‘bottle’. A tempting to say that Office 2003 need, it’s highly recommended. LXF
bottle holds a single Windows performs better than OpenOffice.org –
installation, and you can install as it certainly felt like it. And it loads LINUX FORMAT VERDICT
many or as few applications into any faster too, which is really rubbing salt FEATURES 8/10
one bottle as you like. In the previous into the wound. Overall, MS Office ran
PERFORMANCE 7/10
version of CrossOver, you had basically wonderfully (with a couple of crashes),
a single bottle, and a single Windows which makes this upgrade essential if EASE OF USE 7/10
installation for each program. you need to use Office 2003. VALUE FOR MONEY 8/10
One bottle includes everything a Performance has improved
Get seamless integration of Windows
Windows applications needs to run considerably over the previous version applications on your desktop without
properly, such as the program files and – with one notable exception. ITunes is crossing over to the dark side.
the registry settings, and it means that still an ugly resource hog, making the
an ill-behaved application can be user interface very difficult to use. RATING 8/10
quarantined and left to run riot in its This is no doubt down to Apple’s
own virtual Windows installation. brushed-aluminium window design. It

32 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.rev_coo 32 21/9/05 3:52:45 pm


REVIEWS BrightStor ARCserve Backup

BACKUP SOFTWARE

BrightStor ARCserve Backup


It’s scalable, but is it usable? Graham Morrison looks at a backup solution for the big boys.

KEY STUFF screen shot at left. It’s from here that


you carry out the real tasks of an
Client–server backup system for
enterprise backup: creating backup
business. Alternatives include Bacula
and Storix. jobs, managing the media that your
data is stored on, and recovering data
■ DEVELOPER Computer Associates
in the event of a failure.
■ WEB www.ca.com
With the obvious caveat that Java
■ PRICE $775
applications can be somewhat slow
BrightStor ARCserve Backup and unwieldy, each of the separate
isn’t for the faint of heart. If components uses its own window,
you’re looking for a backup which makes the division of labour
tool that’s quick and easy to use, you’ll easy to understand.
need to look elsewhere. To be fair, this You’ll probably spend the most
software hasn’t been designed for time in the first window, the Backup
backing up your MP3 collection. It’s Manager. This is where you create your
intended to be a scalable solution that backup jobs, in simple
can cope with the dozen or so and straightforward terms. That
machines in a typical small business or means specifying a source directory
the incredibly complex requirements and how you would like the job to be
of a large data centre. That’s an handled by the backup server. You can
If it’s not pre-installed, you’ll have to unravel the thorny installation
ambitious remit for a product that has elect for the compressed archive of
process to arrive at this neat client interface.
the potential to cut short an IT your files to be backed up to a local
manager’s career if it goes wrong. the trouble of creating the correct On top of that is a management or remote disk, a server, tapes or
The implementation of ARCserve username and permissions for you. level for controlling these daemons. another destination.
Backup is equally ambitious. A server It’s only afterwards, when you’re They can augment the system by Other applets are overwhelmingly
is used for managing your backup left with a blank command prompt, providing user control, managing comprehensive. Tasks including user
data, regardless of whether this exists that you’re left wondering just where media or copying tapes. You can query access, virus checking and remote
on external tape machines or internal to turn. Fortunately, there’s a ‘Getting their status with the cstatus command. tape management can be handled
SCSI disks. A client makes a Started’ guide in the form of a PDF. Understanding what each core from here.
connection to the server for The trouble is that it doesn’t really management service does is an BrightStor ARCserve isn’t meant for
configuring and managing the various help you get started. important part of getting your head mortals. It’s meant for super system
backup jobs and processes. The client This is compounded by the cryptic around the ARCserve way of doing administrators who feel completely
can be just as easily on the same error messages you’re sent as you things, especially when it comes to a comfortable dealing with gigabytes of
machine as it can across the other wade through the command-driven couple of the more important ones. data on a daily basis. Computer
side of a network. setup utilities. Here’s a classic example: The Discovery service finds all the Associates should really provide some
‘ERROR: There was an error starting available backup servers on your on-site training with every installation,
Arcane installation the httpd daemon. Please examine network, and fields connections because the unfathomable installation
Installing ARCserve Backup is not the error message and check the between the back-end and the clients. procedure is far trickier than it needs
anywhere as easy as it should be. httpd directory.’ Repeatedly looking at The job of the Authentication service to be. This is one of the most
You’re first drawn into the realm of the error message doesn’t seem to is to ensure the integrity of the comprehensive yet convoluted
false security by the presence of an make the error any clearer, no matter network resources, as well as to applications of its kind that we’ve seen.
manage user permissions for each But when disaster strikes, it does do
resource. Another vital service is the the job it’s designed for, so hopefully
“DOES THE JOB IT’S Media Manager. This handles the
actual transfer of your vital data
you can keep yours. LXF

DESIGNED FOR SO THAT between the server and your chosen


LINUX FORMAT VERDICT
YOU CAN KEEP YOURS.” back-up device.
FEATURES 8/10
An applet a day… PERFORMANCE 7/10
installation script. Executing this script how hard you scratch your head. This sounds complicated, and it is! But EASE OF USE 5/10
goes well, and the reassuring output Once it’s set up, ARCserve Backup things get slightly easier when you VALUE FOR MONEY 6/10
from each stage of the process gives operates on several levels. The lowest finally get around to using your system
The cost of scalability is complexity, but this
you the impression that your is occupied by a series of via the Java-encumbered web
is a versatile and capable solution.
sysadmin hacker skills are management processes or daemons, interface – the top level of the system.
unquestionable. All the tools are designed to access and control the Launching a browser and connecting RATING 7/10
installed along with the Ingres back-end database, backup devices, to the backup server embeds 14
database, and the script even goes to your backup jobs and user alerts. separate Java applets, shown in the

www.linuxformat.co.uk LXF73 DECEMBER 2005 33

LXF73.rev_arc 33 16/9/05 5:08:34 pm


REVIEWS Books

Learning Perl, 4th Edition


The fourth edition of an old book, but Paul Hudson thinks it suffers from the same problems as before…

KEY STUFF is written in a tutorial style, Learning


■ AUTHORS Randal L Schwartz Perl is a reference guide at heart,
et al which means it goes through Perl
■ PUBLISHER O’Reilly programming topic by topic instead of
■ ISBN 0-596-10105-8 slowly building your knowledge up.
■ PRICE £28.50 You won’t get to learn about
■ PAGES 283 subroutines, for example, until you’ve
learned everything about operators.
There has been a recent Some parts of the book are a bit
resurgence in Perl books, despite Perl random, and this is most apparent in
6 apparently being as far away as it the use of footnotes: almost every
has ever been. This is Learning Perl, page has one or more footnotes, with
reviewed below is Advanced Perl some having up to five.
Programming, and we’re also in the Our last niggle is with the index. It’s
middle of Perl Best Practices: the slew nowhere near big enough (only nine
of treeware is pitched at a range of (Perl in a Nutshell, Python in a Nutshell, required to take you up to pages), and it’s so bad that we had to
ability levels. As its name suggests, this etc). These two series are both highly Programming level. read every entry to find what we were
book is a junior effort – but being an prized and work well in their area, but However – and this is key – this looking for.
O’Reilly Learning title, is geared there’s quite a gap between them – book isn’t suitable for people coming
towards people who have experience you can’t expect to finish Perl in a to Perl as their first language. LINUX FORMAT VERDICT
in a related area. Nutshell then go on to read Admittedly, part of the problem is that An adequate introduction if you already
At the advanced end of the Programming Perl, because the latter learning Perl will always be difficult if program competently, but you’ll need the
O’Reilly spectrum lie the Programming discusses things you still won’t know. you’re not already familiar with Unix Nutshell book alongside.
books (Programming Perl, This is where the Learning books are tools such as sed and awk, but the RATING 6/10
Programming Python etc), and at the intended to sit: they should give you bigger worry is that the book reads
other end there’s the Nutshell books all the low-level building blocks like another Nutshell: though it’s and

Advanced Perl Programming


Going from Learning to Advanced Perl in one page takes a master, but we only have Paul Hudson…

KEY STUFF
chapter Inline Extensions covers how
■ AUTHORS Simon Cozens
to embed C, Ruby and Python inside
■ PUBLISHER O’Reilly
your Perl scripts. For a long time this
■ ISBN 0-596-00456-7
■ PRICE £28.50 was one of those things we dismissed
■ PAGES 281 as cute but useless, but Crozens
provides enough examples not only to
Being able to program in Perl does get you started but to spark a real
not make you a Perl programmer. interest in making you want to find
While you might finally understand uses for inlining other languages – it’s
Damian Conway’s Lingua::Romana:: crazy, but this book makes it fun.
Perligata and have all but memorised Is there anything to drag Advanced
Programming Perl, you’ll probably still Perl Programming down? Again, we
be a bit confused if you go along to a find a small index, but so much of this
Perl Foundation fundraiser and find book is already code and diagrams
people offering money for Michael were pleasantly surprised to find that enough bases that everyone will find that a short index is pretty inevitable.
Schwern to keep his shirt on. Suffice it’s not full of back-references to the something of interest. The chapters we Kudos to Cozens: at last this is a book
to say, the Perl community is closely other book, which means you can particularly enjoyed were Parsing we’re proud to place next to
knit, with people in the inner circles jump straight in here if you’re an Techniques (how to parse your own Programming Perl.
writing code that pluralises English experienced Perlmonger. The contents language in Perl), Natural Language
words, obfuscates the string ‘just start off pretty crazy, and only get Tools (to get on the English word LINUX FORMAT VERDICT
another Perl hacker’ and reads as wackier the more you read – there’s pluralisation bandwagon) and Fun With
Packed with tools and ideas to try if you’re
haikus – as long as everyone agrees no real organisation, so you just keep Perl, which explains how to play Perl looking to push your Perl envelope. Highly
that $foo is pronounced “dollar foo”. turning the pages wondering what the Golf and more. recommended.
This book is aimed at people who heck will come next. And turn we did: Our experience with Perl is pretty RATING 9/10
have finished Programming Perl and the code is well thought-out and sizeable, but we learned a lot from
want to go still higher. However, we interesting, and the topics cover reading this book. For example, the

34 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.rev_books Sec1:34 21/9/05 3:52:19 pm


REVIEWS Books

Astronomy Hacks
Observe Nick Veitch mixing with the stars.

KEY STUFF and why to star-collimate your


telescope are not only thought-
■ AUTHORS Robert Bruce provoking, practical and well explained,
Thompson and Barbara Fritchman but also interesting. All of the topics
Thompson
discussed are done so with a depth
■ PUBLISHER O’Reilly
and clarity that many other astronomy
■ ISBN 0596-10060-4
■ PRICE £17.50 books can only aspire to.
■ PAGES 390 As ever with the Hacks series this
is a mixed bag, but if you have more
You don’t even need so much than a passing interest in astronomy
as a pair of binoculars to get into there is a lot of practical, real-world
astronomy – a single eye will do. advice here, blended with useful
Still, before you set the controls for background information and
the heart of the sun you should do presented in an easy to understand
some swotting, and Astronomy Hacks way. This is an excellent companion
is a good place to start. It is not to a night under the stars (and let’s
actually aimed at beginners, but with telescopes. For such an parties. Excellent tips on observing face it, you aren’t going to be invited
newcomers to astronomy will find accessible book there is a shallow space objects are mixed with to many parties). LXF
plenty of useful information here, phenomenal breadth and depth to the advice on how to take proper
particularly on the differences information presented, and even the observation records: “The log sheets LINUX FORMAT VERDICT
between types of telescopes and how most knowledgeable astronomer is you fill out during observing sessions
This book will save you time and
to choose one that suits both you and sure to find something worth reading. are journals because they record help you see more.
what you want to observe. Much of the material only adds transactions chronologically.
Though it starts off with some basic weight to the notion that astronomers, Periodically, you should transfer those RATING 8/10
astronomy, at least half of the book is amateur or otherwise, are anal records to a consolidated ledger”.
devoted to more advanced observation retentives who must be avoided at Zzzzzz.... However, gems such as how

www.whosbehindyourwebsite.co.uk

If you’re designing & hosting your clients’ websites, or building &


testing your own applications - what you really want is the flexibility and
performance of your own server. But sometimes the cost of managing
one is just too high, both in terms of time and money.
So wouldn’t it be great if you could share the cost of a server’s hardware
but not share its resources? In other words, the full power of your own
server with multiple domain support - in an easy-to-manage, shared
environment.
Hostway Virtual Private Servers - Now you can really get on with
doing what you do best...
To find out why visit:
onth
www.whosbehindyourwebsite.co.uk 9.95 / m
From £3 set-up fees.
and no

call us now on 0808 180 1880 • sales@hostway.co.uk • www.hostway.co.uk


Domain Registration • Email Hosting • Web Hosting • Ecommerce • Resellers • VPS • Dedicated Servers

LXF73.rev_books Sec1:35 21/9/05 3:52:24 pm


Roundup
Every month we compare tons of software,
so you don’t have to!

PHOTO MANAGERS
If you need to get your digital photo collection in order,
Andy Channelle has just the collection of apps for you.
Digital technology has There are loads of Linux orientation of a portrait shot or
transformed photography. In applications capable of dealing with remove a bit of red eye is a pain, so
the past, cameras came out your digital image collection, but which some editing capability is also helpful.
for special occasions and users had to of these is best for you? As these are desktop-focused
shoot sparingly because it was so For this Roundup we looked for applications, we put a premium on
expensive to get prints developed. In software that makes managing, editing ease of installation and user-
contrast, the advent of decent camera and distributing snaps easy and fun. friendliness. Finally, we like applications
phones means people often have a Of particular importance is the ability that make it easy to show pictures OUR SELECTION
camera to hand all day, every day. to add notes or tags to images and either locally in the form of slideshows, AT A GLANCE
Moreover, you no longer having to then search the collection based on or on the internet with HTML galleries
process 23 blurred images of your this information – this is a prized or, even better, through services such DigiKam ...................................38
thumb just to get a decent picture of feature because most digital images as Flickr and Fotopic.net. F-Spot .......................................37
your wife/kids/dog. Both of these start out called something unhelpful We tested each piece of software
GThumb ...................................39
developments have led to a huge like dcf00056.jpg. And while we on an AMD Athlon XP 2500+ with
increase in the number of pictures don’t expect any of these apps to 512MB of RAM running SUSE Kalbum.................................... 40
people take and, subsequently, a challenge Gimp in the editing stakes, Professional 9.3. This was loaded with KimDaBa .................................39
growing need for computer having to fire up a fully-fledged 2,730 digital photos of various sizes KPhotoBook ....................... 40
applications to handle the results. graphics application to change the taken over a period of six years.

36 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.round 36 19/9/05 5:56:48 pm


ROUNDUP PHOTO MANAGERS

F-Spot F-Spot’s tagging is second to none.

Mono-based app with some nice ideas.


■ VERSION 0.0.13 ■ WEB www.gnome.org/projects/f-spot
■ PRICE Free under GPL

F-Spot has been acclaimed in this possible to revert even after the
magazine as one of the most application has been shut down and
promising Linux programs to emerge restarted. This could lead to wasted
this year. It was built using the new disk space if you do lots of edits, so
Mono platform, so you’ll need the you should remove some of the
Mono runtime installed first. This is a different ‘versions’ as you work toward
recipe for dependency hell, but perfection. To make this process easier,
fortunately most distros should ship versions can be renamed, saving the
with both Mono and F-Spot available trauma of having to remember
through the package manager. whether it was modified1 or
Once it’s set up, you can add modified3 that had the red-eye
photos by selecting File > Import and removal done.
choosing a directory. It took us just For local display there is a quick
over two minutes to index and display ‘full screen’ option and a good but
2,500-plus images in the browser basic slideshow option that displays all
window. F-Spot is EXIF-aware, so the images in the browser window. F-Spot is a very smart application. simple to use, it could really do with
pictures will be arranged by the date It makes it easy to systematically tag some proper documentation.
of the photo; the rest of the EXIF data Online sophistication your pictures, which is essential if The future’s bright for F-Spot.
can be viewed by selecting an image Another great feather in the F-Spot you’re going to do any cataloguing. Further integration with Gnome and
and hitting Ctrl+I. F-Spot can also grab cap is Flickr integration (see What Is You can remove images from the other Mono projects such as Beagle
pictures directly from a camera. Flickr? box, below). Images can be library or delete them entirely, and the search and perhaps even the Tomboy
whole thing runs along at an note application are very exciting
acceptable speed. prospects, but even at this early stage,
“THIS IS A VERY SMART It would benefit from a good undo
system – this is in the pipeline – but
this is a welcome addition to the
desktop ‘lifestyle’ sector.
APPLICATION THAT MAKES as it stands, the system of creating
LINUX FORMAT VERDICT
TAGGING IMAGES EASY.” new images for each change is at
least workable, but does rely on the
A product well on its way to becoming the
user to organise things. It would also iPhoto of the Linux world.
F-Spot’s tagging system can add uploaded to your account from within be nice to have some sort of ‘virtual’
tags to hundreds of images at a time if the browser and, joy of joys, it turns file system to build collections for RATING 7/10
necessary. The tags are all user- the F-Spot tags into Flickr ones, specific purposes without affecting the
definable so you can build up a appending existing ones as needed. library as a whole. And despite being
comprehensive list of people, places,
events and concepts on your PC and WHAT IS FLICKR?
then assign different tags to images.
Sorting images is then simply a case Flickr is a photo sharing service that has As well as being an
of selecting tags in the sidebar; managed to attach itself rather excellent complement
everything tagged with that word will effectively to the blogging phenomenon. to the likes of F-Spot,
Users can join the service for free and the service has an
be displayed.
post their pictures to Flickr’s servers excellent tool called
Ranged along the top of the
(paying customers get extra features, Organizr, which runs
browser window is a calendar widget, such as more storage space). entirely within a web
which uses a bar chart metaphor to Each image (or folder of images) can browser using Flash.
display how many pictures you’ve be designated public or private and can This makes it easy to
taken in each month. Clicking on any also be tagged with a number of access and manage
of these ‘bars’ jumps the browser to keywords. You might, for example, take your photos regardless
the first image of that month. In a picture of the moon each evening from of your location. Flickr
tandem with the tags, this is a great the same spot in your garden; these is also brilliant if you
way to find the right picture every time. could then be tagged with the words plan to use photos in
‘moon’, ‘garden’ and ‘August’ and the tandem with a weblog,
Double-clicking on an image will
date, and posted to your Flickr space. as images can be
open it up into the main window, and
Users searching for pictures of the moon hosted by Flickr but Flickr can make all your photos
from here you can make minor colour would probably then be presented with accessed from, say, a Blogger account. available from anywhere.
adjustments, crop and resize the your images, especially if their search The free Flickr account has a 20MB
picture to a number of preset sizes, string also involved the words ‘garden’ per month upload limit and will display upgrading to the Pro account (at $24
and remove red eye. Changes are or ‘August’. You can get around this by only your 200 most recent images, so if per year) is recommended.
made to a copy of the image (the restricting access to your pictures. you plan on making the most of it, www.flickr.com
original remains untouched) so it’s

www.linuxformat.co.uk LXF73 DECEMBER 2005 37

LXF73.round 37 19/9/05 5:56:54 pm


ROUNDUP PHOTO MANAGERS

DigiKam
Comprehensive project.
■ VERSION 0.7.3 ■ WEB www.digikam.org
■ PRICE Free under GPL

DigiKam has been around for a which creates


while, but doesn’t have the glamour of a digital
some other photo management apps. thumbprint of
This is a shame, because it does the every image and
job efficiently and with style. It also has offers up similar
a vast suite of plugins available for ones for manual
adjusting, styling and distributing deletion. Beware!
images and collections. In fact, The images it
DigiKam is the archetypal all-rounder, finds may not be
and because it works with an already exact duplicates,
established file system – appended so delete with care.
with its own small database file – it’s Building and
worth having on every system. comparing the
The user interface is based on thumbprints on our
familiar KDE conventions: the left of whole collection
DigiKam makes everything available from a smart, comfortable interface.
the window displays the file tree while took just under
the main section shows either three minutes, and once deleted the not as elegant as F-Spot’s Flickr for example, F-Spot for Flickr
thumbnails or large versions of each pictures are moved to the desktop’s integration, does at least mean you management or Kalbum for HTML
picture. A pop-up appears when the wastebasket. This is very efficient, and can send images to the service from gallery building.
mouse is hovered over an image, and we can recommend DigiKam on the your desktop.
this displays the EXIF data and any strength of this alone, especially if your This is an excellent all-round LINUX FORMAT VERDICT
notes associated with it. It’s possible to image collection has been mangled by application that does most tasks with
If you have a digital camera, install this.
display information just below the some other management program. aplomb. The fact that it doesn’t make
thumbnail images, but this can slow DigiKam handles EXIF data well, an enormous impact on the filesystem RATING 8/10
the application down quite markedly. and can be used to embed short means that any (small) shortcomings
We also noticed that when the app notes into the data space, so those in the app can be remedied by using,
displays a date, it shows the date notes will be accessible by other
when the photo was uploaded rather compatible applications. DIGITAL CAMERAS AND LINUX
You can almost guarantee that any then you know the computer has
“WHERE DIGIKAM REALLY digital camera you buy will be usable
with your Linux PC. It wasn’t always the
recognised that the device is attached. It
also says it is using SCSI emulation to
SHINES IS IN OUTPUT case, but most devices purchased these
days will be accessible as a standard
access it, which means it will be given
the device name ‘sda1’. It should now be
AND DISTRIBUTION.” USB mass storage device – that is,
once it’s plugged in to a PC, the
possible to mount the device using the
following command:
operating system will recognise it as an mount /dev/sda1 /mnt
than the date that the photo was Thanks to the plugin system this external hard disk and mount it to the The device will then be accessible
taken, which would have been far application can access quite a desktop as a normal hard disk. You will from within the /mnt directory using
more useful. selection of external image then be able to move photos from the your normal file manager. If ‘sda1’
File management is very easy, but manipulation tools, such as an ‘oil camera to your disk using a simple drag doesn’t work, you may have other SCSI
be aware that any changes made painting’ filter and various colour filters and drop procedure. devices attached to your PC. Try ‘sdb1’,
within the album tree will be (sepia, black and white, and so on). If your camera fails to mount properly, ‘sdc1’ and so on until you hit the mark.
it may mean that the OS isn’t set to For cameras that don’t use the USB
performed in your actual filesystem. There is also a handy red-eye removal
auto-mount new devices, and you’ll mass storage protocols, you will need to
So creating a new album will make a tool and options for cropping, resizing
have to do the job manually. To do this, install GPhoto2, which is available on
new folder on your system, rather than and blurring. first plug the camera in – making sure it virtually every Linux distribution and
just build a virtual folder and populate Where DigiKam really shines, is switched off – then open a console provides automatic access to over 600
it with links. though, is in output and distribution. and type different digital cameras.
You can opt for exporting in HTML dmesg Applications such as DigiKam, F-Spot
Handy deletion gallery format, as a new album or as a This will output a ton of system and KimDaBa can automate the process
The tagging system is similar to slideshow. Slideshows to be displayed messages to the console when you of importing photos into your central
F-Spot’s, but without the advantage of locally can have a number of switch on your camera. If this output library further and also allow the
having tags available in the side panel. transitions (including OpenGL ones includes something along the lines of creation of a tag that can be applied to
localhost kernel: Initializing USB mass every image in the whole set, and that
It’s still possible to assign or remove with appropriate hardware), and the
storage driver... can be used as a ‘roll name’ to make
tags to multiple selections, but this is whole thing, including audio, can be
or searching more efficient in the future.
done through the right-click service output to an MPEG file on formats localhost kernel: scsi1 : SCSI emulation ■ For more on auto-mounting devices,
menu. Other excellent management including VCD and DVD. You can for USB mass storage device read Neil Bothwick’s tutorial on page 82.
tools include a duplicate image finder, also email images, a feature that, while

38 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.round 38 19/9/05 5:56:57 pm


ROUNDUP PHOTO MANAGERS

GThumb
The new kid on the block.
■ VERSION 2.6.6 ■ WEB http://gthumb.sourceforge.net
■ PRICE Free under GPL

GThumb is usually installed as part Rather than using tags, GThumb


of a default Gnome system, and its uses a system of ‘comments’ and
primary purpose is as a multi-format ‘categories’ to define locations,
image viewer. It does, however, have people or events. The problem with
some features that help it to rise this system is that data is not
above that humble station. explicitly saved with the images,
As with DigiKam, GThumb works meaning that if an image is moved
with an already established filesystem from one folder to another outside
rather than creating its own hierarchy. of GThumb, the associated
Its weak point has to do with access: comments and categories are lost.
where other application on test here However, one thing GThumb does GThumb is a good companion for Nautilus but lacks solid features.
have visual representations of the file do is enable the creation of catalogues,
tree available, GThumb suffers from which the developers handily compare of a slideshow. The slideshows are of Nautilus – but for anything
having the old Gnome system with the playlists you might create in the fixed variety with few options to approaching serious or sustained use,
whereby only the folder you are in and an MP3 application. It’s possible to beautify the experience. GThumb is out of its depth.
its subfolders are displayed. create a catalogue called, for example, Overall, GThumb feels a little in
To go to a higher folder, you ‘Holiday’, and populate this with links to need of attention. The minimal tools
LINUX FORMAT VERDICT
double-click on the two periods (..) images without moving the images for fixing and displaying images work
widget until you’re in the right place. It themselves. Adding pics simply within their limitations, but stacked up A good, stable image browser that lacks
the features to make it essential.
is possible to manually enter a full involves right-clicking and selecting against even the newest applications
path (something newer Gnome Add To Catalog… from the menu. here it doesn’t really cut it. For Gnome RATING 5/10
applications have done away with), but These can then be exported to CD or users it’s a handy utility to have
these are still inefficient ways to work. to a web gallery, or used as the basis around – working in conjunction with

KimDaBa icons wildly and wondering where on


earth the photos are. There is a
sensible feature in there somewhere, it
just needs a little more thought in the
exporting and adjusting images. Some
of these are shared with those
available in DigiKam, so the facilities in
that application are largely duplicated
Nice app, shame about the name! presentation department. The problem here. Perhaps a decision between
■ VERSION 2.1 ■ WEB http://ktown.kde.org/kimdaba lies in the positioning of the icon that KimDaBa and DigiKam will come
■ PRICE Free under GPL will actually take you to the images; it down to which interface you find most
appears at the bottom of a list of icons useable. KimDaBa’s database is
The really good thing about images. The only problem is that their that doesn’t really change, so it’s easy powerful, but the interface obscures
KimDaBa is its ambition. The authors ideas will take some getting used to. to miss. too much during early use. The UI
have definite ideas about the quickest The first few times you use it, you may KimDaBa stands for KDE Image becomes easier to use with time and
and most efficient way to navigate find that you’re wandering back and Database and, as this suggests, the practice, but as a piece of consumer
through hundreds and thousands of forth through different lists, clicking application is built on the idea of an software it should probably work within
internal database that handles the the conventions that most people
tags, changes and movement of expect. Perhaps splitting the interface
images. The benefit of this system is in two might help, keeping the
that it’s really fast even when navigation tools on screen even when
navigating enormous collections. browsing the thumbnails.
When we changed the thumbnail There is also a serious bug in the
preview size with over 100 images on version we tested that prevents the
screen it was almost instantaneous – thumbnail gallery from wrapping round
even when the computer was busy the window. This made for extremely
doing other processor-intensive stuff in long windows running off both edges
the background. The disadvantage is of the screen.
that it’s difficult to export comments or
tags to different systems. It also means LINUX FORMAT VERDICT
that you must remember to save your
A little confusing on first use, but gets
changes – though there is an autosave better with age. And it’s really fast.
function buried in the Configure
KimDaBa dialog. RATING 6/10
KimDaBa comes with a range of
Unusually, the slideshow runs in its own window. plugins, which deal with importing,

www.linuxformat.co.uk LXF73 DECEMBER 2005 39

LXF73.round 39 19/9/05 5:57:00 pm


ROUNDUP PHOTO MANAGERS

KPhotoBook
Immature but extremely promising.
■ VERSION 0.0.6 ■ WEB http://kphotobook.berlios.de
■ PRICE Free under GPL

KPhotoBook (KPB) is spanking new, integrates well with the rest of KDE.
so it’s the only application reviewed The familiar interface has options to
here that we had to build from source. use a standard tabbed interface to
This was simple enough as KPB uses access the file tree, tagging tools and
mainly chunks of KDE, as you’ll see EXIF data, or the IDEAl/sidebar system
when you start it up. that a number of KDE apps including
We included it here because it Konqueror and Amarok have recently
combines the best bits of DigiKam with adopted. The sidebar system makes
the superior tagging skills of F-Spot. better use of available space, but it
There are plans to implement support feels a bit clumsy moving from the file
for the same Kipi plugins system that browsing to the tagging interface.
DigiKam and KimDaBa use. KPB goes Some sort of compromise – perhaps It’s still early days yet, but a quick It’s nowhere near finished, but
further, though, with the ability to involving the as-yet unused right-click look at the project’s roadmap suggests exciting nonetheless. KPhotoBook
combine tags using Boolean operators service menu – is really needed here that the developers have ambitious is one to watch.
so you can search for images of Rita to streamline the all-important process plans for turning KPB into the standard
and Sue, excluding images with only of tagging images. image management app for the KDE
Sue or only Rita. Navigating the photo At present, and in contrast to desktop. There are some important
LINUX FORMAT VERDICT
database and tagging images is not yet many of the apps here that centre on bits missing at present – in fact, many
An application with the potential to
as simple as it is in F-Spot, but it’s the viewer, KPB is strictly a of the tools that make this kind of
become the standard KDE photo app.
getting there. KPB can also lock tags management/database application; software so desirable – but what is
to prevent mistaken deletions. there are no tools for slideshows, available is smartly done and easy to RATING 5/10
The program uses Konqueror’s image editing or even for displaying use. It will be well worth keeping an
display/rendering system, so it larger versions of thumbnails. eye on this project in the future.

Kalbum
file manager (or a more the colour of the background that can
comprehensive management app) to be achieved for the actual output.
create good-looking HTML galleries for That said, for static pages of images it
uploading to a web server. However, it does the job; but stacked up against
A focused application in need of some TLC. can be pressed into more extensive the abilities for management access,
use with a little lateral thinking. For design and tagging that is displayed by
■ VERSION 0.8.0 ■ WEB www.paldandy.com/kalbum
instance, you can make individual Flickr, Kalbum falls well short.
■ PRICE Free under GPL
albums for each month and then open One thing Kalbum does well is
them as and when needed. Pictures displaying information. The user
This application, written by LXF spectrum. That is, rather than being a can be renamed and have notes interface is divided up into fairly
scribe Graham Morrison, is aimed at tool for managing an entire photo associated with them, and can be sensible sections and so makes
the export and distribution end of the collection, it works in tandem with the moved around within the structure of accessing notes, EXIF data and other
the album. information associated with an image
Kalbum’s forte is in preparing and an easy job.
outputting complete albums for While not up to the job of general
viewing on the internet, and to this image browser, Kalbum could have a
end it integrates a decent FTP client to future as a smart Flickr ‘uploadr’; with
make uploading as painless as the FTP end already sorted, the
possible. As such, Kalbum may be author would just need to integrate
worth exploring if this forms a large some of the tagging features of Flickr’s
part of your photography habit, though API and this would be a good, simple
to get the most of it you should use it and focused application.
as a complement to an application ■ Read Graham Morrison’s diary of
such as F-Spot. developing Kalbum in LXF72.
There is an unfinished air about
Kalbum, especially as the only LINUX FORMAT VERDICT
available template for HTML output is
Limited but focused, KAlbum could do with
looking a little dated, though it uses some attention from its developer...
tabs quite well. In truth, the whole
application is in need of a little love RATING 4/10
Despite its age, Kalbum has a really useable interface that gives the user and attention. The final results look OK,
lots of information. but there’s not much beyond changing

40 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.round 40 19/9/05 5:57:03 pm


ROUNDUP PHOTO MANAGERS

PHOTO MANAGERS
THE VERDICT OVER TO YOU
Did we over-de
velop our
opinions of DigiK
As OS X and Windows have community, it does. While DigiKam is feature set. It doesn’t yet have the am at the
expense of your
excellent digital photo the clearly the best application here, Flickr integration that F-Spot offers, but photo app? So favourite
und off on the
managers in Apple’s iPhoto F-Spot and KPhotoBook both ave real there is someone somewhere LXF forums at
www.
linuxformat.co
and Google’s Picasa respectively, Linux potential to steal the top spot. currently beavering away on a plugin .uk.
needs an application approaching the DigiKam combines an easy to use as you read this. The plugin is in the
form and function of these. Thanks to interface with a stupidly early stages at present (we couldn’t
some smart work in the development comprehensive get it to install, but it’s nice to know
that the issue is being tackled). makes finding the right picture easy,
While DigiKam’s developers have and this is vital for an application like
paid a lot of attention to the interface this. Efficient tagging means effective
and have added genuinely useful searching, especially when a collection
features, the adoption of Kipi plugins is counted in thousands of pics rather
broadens the application’s scope than hundreds. Throw in the class-
DIGIKAM
enormously. The facility to output high- leading Flickr support and you have an

8/10 quality multimedia slideshows to DVD


would be especially useful to a
dedicated photo-sharer, as not
app that well deserves a place on your
system. If the plethora of plugins that
DigiKam offers seems like overkill, go
everyone will have the hardware and for this one.
software available to play back a Linux- Not quite ready for the big time,
centric one. but also worth checking out, is
F-Spot deserves an honourable KPhotoBook. We were impressed with
mention, especially as it is such a the way the developers appear to be
young project. So simple even a child thinking about navigation and tagging,
could use it, F-Spot also has the best and look forward to some really strong
tagging system that we have releases from them in the future.
experienced on any platform, easily All in all a pretty strong Roundup
beating iPhoto’s keywords. Combined this month, offering a, er, Canon of
DigiKam: the best combination of ease of use and advanced features. with the calendar widget, F-Spot apps that Linux can be proud of. LXF

TABLE OF FEATURES
Name Import from camera Export to HTML Export to Flickr Tags Slideshow Red-eye removal Colour correction
DigiKam ✔ ✔ ✔ ✔ ✔ ✔
F-Spot ✔ ✔ ✔ ✔ ✔ ✔ ✔
GThumb ✔ ✔ ✔ ✔
Kalbum ✔
KimDaBa ✔ ✔ ✔ ✔ ✔ ✔
KPhotoBook ✔

www.linuxformat.co.uk LXF73 DECEMBER 2005 41

LXF73.round 41 19/9/05 5:57:07 pm


HOTPICKS

HotPicks The best new open source software on the planet!

WEB-BASED DESKTOP icons and an adequate supply of


Mike Saunders

EyeOS
tooltips. The panel along the top acts
Mike has installed and
tested more apps than as a launcher for EyeOS’s bundle of
he’s had hot dinners. programs, while a clock sits along the
As you can see. bottom along with a trash can icon.
■ VERSION 0.7.04 ■ WEB http://eyeos.sourceforge.net
This is the place where we get
to profile some of the hottest Extras, extras
software around. So EyeOS is immediately recognisable
Each month we trawl as a desktop OS of sorts, and the
through the hundreds of open mini-programs also work in a familiar
source projects that are fashion. A calculator, text editor and
released or updated, and calendar make up the essentials, and
select the newest, most do a decent job. The more advanced
inventive and best for your utilities include an unusual but
perusal. Most of the HotPicks
workable file manager, a messaging
are available for you to try out
on our coverdiscs, but we've system and a web browser. Yes, a web
provided web links if you want browser in a web browser – but it just
to make sure you have the uses the browser’s rendering engine in
very latest version. a smaller box, so it works great.
If you know some open EyeOS’s developers could have
source software that you’d like made thing easy for themselves by
us to cover, email me at mike. simply making these mini-apps open
saunders@futurenet.co.uk. in separate browser windows. Instead,
they’ve ambitiously coded in a
primitive window manager, so you can
HOTPICKS Two EyeOS apps: web browser (an embedded Gecko here) and calculator. move the programs about, resize their
AT A GLANCE windows, and so forth. Multi-tasking
Amaya ......................................47 Linux Live CDs and cheap USB web server’s document root, change a leaves a lot to be desired, as does the
CSSED ..................................... 44 memory keys have led to a mini few permissions as explained by the performance while dragging windows;
revolution in computing: the portable docs, and go (you’ll need PHP 4.2 or although in fairness the latter is an
EyeOS...................................... 42
desktop. This is not in the laptop sense, newer). By default, there’s one issue with the host browser rather
FreeSpeak ........................... 46 but in the way you can carry around a administration account already, and than with EyeOS itself.
Gillo........................................... 45 full OS and your own files in your
KScope ....................................47 hand – booting the OS from a Live
Luma ........................................ 46 CD and loading your personal data
from the USB key.
“THIS IS AN ASTOUNDING
Mailtc ....................................... 43
Snowball ............................... 45
Still, even this isn’t ideal: locked- PROJECT FOR THE
TruBlog .................................. 43
down machines (such as public library
computers) won’t let you use anything GEEK ON THE MOVE.”
but their default settings. EyeOS is an
LOOK OUT FOR THE astounding project to get around these you can add general user accounts EyeOS is a truly amazing
HOTPICKS AWARD issues for the geek on the move, with fewer privileges once you’ve got accomplishment, pushing back the
Everything covered in our HotPicks running off a server and working things set up. boundaries of web-driven software
section is unmissable, but each
month we single out one project for entirely in a web browser window. After the login screen, EyeOS and opening up a whole new world of
outstanding At its heart, EyeOS is a CMS presents a cosmetically smooth portable computing. It can’t be a
brilliance. Only
the very best
(content management system) desktop of subtle green with grey text. replacement for a desktop OS – you’d
is chosen! designed to look and operate like a In fact, this grey on white and green never be able to run a complex
desktop OS. Via nifty use of JavaScript can be horribly eye-straining at times – graphics or sound-editing app through
and PHP, it creates a familiar working the default theme would benefit it, for example. But with some work on
environment complete with file greatly from stronger contrast. stability and a few feature additions to
manager, text editor and more. That aside, the desktop has a flesh it out, EyeOS could lead to some
It’s also easy to install: just extract modern gloss, combining incredible developments. Just imagine
the main tarball somewhere in your round-cornered shapes with effective if Google were to build on this...

42 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.hot 42 20/9/05 11:33:17 am


HOTPICKS

WEBLOG SERVER

TruBlog
■ VERSION 0.2 ■ WEB www.trublog.org EMAIL CHECKER

end, ideally running on top of


Apache. Installation is remarkably
Mailtc
simple: just extract the tarball
somewhere among your web ■ VERSION 0.6.3 ■ WEB http://mailtc.sourceforge.net
server’s HTML files, point your
browser at the resulting directory,
and the setup procedure will begin.
This nine-step, mostly automatic
process involves configuring the blog
title and owner, selecting a theme
and entering the database
connection info. Three themes are
supplied with the tarball; they’re not
exactly gorgeous but they give you a
clean and respectable page.
TruBlog supports multiple
authors and topics, exporting of RSS
feeds, commenting, trackbacks and Mail checkers are one of those
Current projections are that by other features obligatory for a lively simple everyday tools that none of us
2010 there will be more blog blog. The developers have put a pays much attention to, but they can
postings than emails sent in any great deal of effort into accessibility be tremendously useful. Instead of
given day. By 2015, blogs will be the and standards compliance – it having to fire up your email client to
largest bandwidth consumer after should work on nigh-on any browser, see if you have new messages (a time-
spam, accounting for 5% of all and supports assistive technologies eating and memory-hogging event
internet traffic; and by 2020 vocal for those with disabilities. This is with large GUI apps like Evolution), you
By default, Mailtc is set to check
communication will cease to exist as refreshing to see, when so many can have a small background applet for new mail every minute, but you
everyone exchanges thoughts by projects simply rush for the latest that periodically checks for new mails can alter that if you’re conserving
blogs. Instead of asking your spouse buzzwords and features without and indicates this accordingly. Mailtc, every byte of bandwidth.
“Can you pass the salt please?”, you’ll taking into account the wider effect. written by LXF reader Dale Whittaker,
write a blog entry about it, and The mighty WordPress would is a mail checker that pops up an icon supported) and select an icon colour
receive six comments with people beat TruBlog in a feature-for-feature on your desktop panel when new mail for the panel. It may seem like an
offering salt if you refer them for a match, but that’s only to be is waiting to be read. unnecessary frill, but it’s possible to
free iPod Maxi. In short, there is expected for a 0.2 release. Similarly, You won’t need any obscure choose a colour for the new mail icon.
plenty of demand for a new entrant there are always security concerns dependencies to compile from source This is an excellent touch, as it means
in the blog server battle, TruBlog. when using a relatively untested – just GTK 2.0. Optionally, you can you can give priorities to different
“Designed by bloggers for system on a popular blog, but we install the development packages for accounts. At work, for instance, your
bloggers”, TruBlog puts great saw no major glitches or worries OpenSSL and GNU SASL for extra business-related email account can
emphasis on creating a system with TruBlog in its current state. It’s security and authentication features. pop up as bright red when a mail
that’s easy to use. It’s driven by PHP fast, clean, charmingly easy to set Mailtc works perfectly well with arrives, but personal messages can be
with MySQL as the database back- up and has bags of potential. window managers and desktop denoted with a less urgent blue.
environments such as KDE, Gnome And that’s Mailtc in its entirety. It’s
and Xfce. If you use a different WM, worth looking at because it sets out to
you can try running Fbpanel, which do a job and does it well, with no
should display the Mailtc icon properly. pointless animations, sound effects or
When first started, Mailtc needs other fluff. Similarly, the configuration
some initial configuration. Enter the dialogs are comfortable, and it’s not
relevant settings for your POP3 or tied down to any particular desktop or
IMAP email server in the clean, WM. Give it a go if starting up
sensible dialog boxes, give it an Thunderbird every few minutes is
account name (multiple accounts are making your swap space cry.

“BEING ABLE TO COLOUR


As you’d expect, the developers use TruBlog themselves to keep
CODE MAIL ACCOUNTS IS
people informed of its progress. AN EXCELLENT TOUCH.”
www.linuxformat.co.uk LXF73 DECEMBER 2005 43

LXF73.hot 43 20/9/05 11:33:21 am


HOTPICKS

CASCADING STYLE SHEETS EDITOR

CSSED
■ VERSION 0.3.0 ■ WEB http://cssed.sourceforge.net

Cascading Style Sheets (CSS) has contents even after you’ve closed and
been a hugely welcome technology for restarted the app. It beats the need to
improving the presentation of websites. have additional text editor windows
For developers, it provides a means to floating around.
change the overall appearance of a
site with a single edit; and for users, it Elements of style
gives much more flexibility (the option Instead of writing a text-editing
to select a plainer style sheet for some component from scratch, CSSED’s
sites, say, improving accessibility). author has used the mature and
Books, tutorials, guides and tips popular Scintilla editor. This provides all
abound on using CSS – yet there’s the features you’d expect (copy and
little in the way of CSS editing software. paste, undo and redo, drag and drop) The CSSED interface can be cluttered on lower resolution screens, but
Many of the web development tools along with various extras. Syntax thankfully the panes are resizeable.
doing the rounds, such as Quanta and highlighting colours keywords in CSS,
Bluefish, focus on the HTML side. HTML, several programming languages present (instead, it’s an HTML file without any stability scares along the
There are JavaScript editors and XML and even Apache .htaccess files, while available via the website) but when it’s way. It’s the kind of app we enjoy
editors, but CSS rarely gets a look in. code-folding is useful for collapsing fully included, it’ll truly round the coming across – fast, reliable, not
CSSED aims to fill this gap, blocks of code into a single line, program off. There’s not a great deal in dependent on a truckload of weird
providing a comfortable graphical making it easier to concentrate on the the way of configuration options; just libraries, and supplied with solid
editor geared specifically towards CSS matter in hand. A simple bookmark the colours for syntax highlighting, the documentation to boot. The author
(although it will handle other web system has also been rolled in, which font settings and a handful of choices has a few more features in the
documents too, such as HTML and lets you define markers in a for the editing component. It covers all pipeline for future releases, most
XML, and even caters for Python, Perl document’s margin and step back and the basics, then, but we’d like to see notably a browser preview option and
and C source files). It doesn’t require forth between them via the toolbar. some options for redefining the ability to create style sheets from
any estoteric libraries when building CSSED can validate documents and keybindings. HTML. Similarly, as the program grows
from source: if you have GTK 2.0 with notify the developer of syntactical Despite the early version number, in popularity, we may see it expand in
its header files you shouldn’t have any errors via the Digest panel on the CSSED 0.3.0 already looks and many more directions as users and
difficulties. The standard ./configure, right-hand side. Font and colour behaves like a maturing editor, developers write their own plugins. A
make and make install (as root) dialogs assist in setting properties via delivering a healthy range of features must-try app for all web developers.
process will do the trick. Binary checkboxes, sliders and other friendly

“THE KIND OF APP WE


ENJOY COMING ACROSS –
FAST AND RELIABLE.”
packages are available for means, while changes made in the
Fedora Core 1 and 2, which can be property pane are reflected
coerced into working with other distros immediately in the code. Intriguingly,
or converted in to Debs with Alien. CSSED sports a plugin system to
expand the program via add-ons.
The interface There are only a few of these at
The CSSED main window has a bundle present, but they’re worth checking out.
of widget furniture in a busy (but still The virtual terminal plugin, for instance,
navigable) layout. The ever-useful provides a tabbed shell window next
tabbed editing panels are present to to the scratch pad, further saving
eliminate taskbar clutter, and the icon taskbar/window list space and making
set picks up on your current GTK it seem a little like an integrated
theme. Two non-detachable toolbars development environment.
sit at the top of the screen, giving A special mention should go to the
quick access to the program’s most quality of CSSED’s documentation.
commonly used features. A Most projects in mid-development
particularly helpful touch is the scratch tend to have lacking or incomplete
pad, which can be toggled on at the docs, but CSSED has a top-notch
bottom. This provides two textboxes to guide peppered with screenshots and
jot down miscellaneous notes during explanations. Unfortunately, this isn’t
editing, one of which retains its available through the program itself at

44 LXF73 DECEMBER 2005

LXF73.hot 44 20/9/05 11:33:29 am


HOTPICKS

HOT GA

ME
PUZZLE GAME

S
Snowball
■ VERSION 0.1 ■ WEB www.snowball.retrovertigo.de

We’re always chuffed to see the keybindings or dive straight into


games involving penguins here on the gameplay. Essentially, Snowball is
HotPicks. We think that penguins a blend of platform and puzzle
deserve a more prominent role in the elements – it’s reminiscent of
world, even taking into consideration Solomon’s Key from the 8-bit days.
the fame that comes with being the We must be blunt: the graphics
Linux mascot. Snowball is a game in and sound are both pretty ropey,
which you control a penguin (good). with bland sound effects and
But the sprite is small (hrm), and mediocre sprites scattered around
doesn’t exhibit any real-life penguin the playing area. True, this doesn’t
abilities (bah). Instead, this game’s detract from the puzzle elements of
black-and-white bird is simply the game; nonetheless, Snowball
Thanks to the built-in level editor, you can create your own perplexing
capable of jumping its body height would improve with some proper
puzzles. Our heroic penguin can just be seen in the bottom left.
without moving its legs, and artwork, so it’s a relief that the
constructing ice blocks in programmer Willi Kappler has taken cordon off enemies and provide a path Forward planning is essential, and
nanoseconds. Stick to March Of The a new artist on board for the next for an ice ball. This ball rolls around, the later levels (there are ten in all)
Penguins, realism fans. release. With a fittingly mellow aiming to reach an exit somewhere on are fiendishly puzzlesome. Despite
Snowball is written in Python, and soundtrack, the game’s presentation the screen, but only by putting ice the shoddy cosmetics, Snowball has
you’ll need the PyGame libraries to would be solid. blocks in the correct place can you a promising underlying gameplay
run it. Once it’s extracted, entering Controlling the penguin with the guide it to its goal. You’re limited to engine, and already it’s supplied with
./snowball.py should start the gam cursor keys and Enter, your job is to having 12 ice blocks on screen at any enough levels to make it well worth
up and drop you into the main leap around a 2D platform one point – this is where the strategy playing. Oh, and there’s a penguin in
screen, from which you can configure environment, dropping ice blocks to comes into play. it too. Quadruple hurrah!

3D ACTION GAME

Gillo
■ VERSION 1.0-beta1 ■ WEB http://sourceforge.net/projects/gillo

Last month, as we were hunting played it, the more we realised that it you coming back for one truck on an
down the best new software to put deserved an appearance in HotPicks. more go. iceberg.
on our coverdisc, we came across Gillo is one of those cheerfully insane Usefully, Gillo’s By sliding
Gillo – a wacky 3D game involving nonsense-fests that somehow comes developers have supplied around the arena,
sinister smiley faces, magnetic balls together as a playable game, and highly compatible binaries, so picking up the ball
and other bizarreness. The more we while it’s no king of longevity, it keeps you almost certainly won’t have and firing it into the
to install from source. It doesn’t goal area before your
even need installation; you can just opponent does, you score points,
extract the gillo-1.0beta1-bin-x86. thus providing you with ample
tar.bz2 file with tar xfvj and run opportunity for sneering remarks.
Gillo/bin/gillo3 to fire it up. If you There’s no CPU-controlled opposition
take the source route, you’ll need (though there is a training mode), but
development packages for OpenGL with two players battling it out the
and SDL installed beforehand. game is charmingly weird and frantic.
Your objective in Gillo is to fire a Visually and sonically it’s stock fare –
ball from your vehicle into a goal. but the lively background music
Simple as that. Oh, but the ball is makes the gameplay seem that little
magnetic, and you have to attract it to bit more insane.
your vehicle’s cannon first. And the There’s one sizable flaw with Gillo,
arena in which you play has banked though: by compressing the full
edges and can flip upside-down. And arena view into a small window, it’s
there’s a smiley face that descends often hard to keep your eyes on the
into the goal, hampering your efforts ball. Ideally, some form of network
to acquire the ball. And controlling play would be introduced in future
your vehicle is like trying to releases, giving each player a full
Three-wheeled vehicle capers as the Smiley Face of Doom stares on... manoeuvre a rocket-powered fork-lift screen of magnetic buffoonery.

www.linuxformat.co.uk LXF73 DECEMBER 2005 45

LXF73.hot 45 20/9/05 11:33:38 am


HOTPICKS

TRANSLATION FRONT-END

FreeSpeak
■ VERSION 0.11
. ■ WEB http://home.gna.org/freespeak

The internet has changed the containing a widget


way most people look at translating in which you enter
short sections of text. Rather than the text to be
thumbing through dictionaries or translated, and a
faffing around with limited electronic section at the
translators, there are now websites bottom which shows
that translate words, sentences and the resulting
even full texts to and from a translated text. That’s
multitude of languages. Alta Vista’s it – no gimickry. A
Babel Fish is one of the most useful touch is the
popular translation engines, but tabbed display, so
there are several more, and you can keep
FreeSpeak gives them a smart multiple translations
Gnome front-end on your desktop. open at the same
FreeSpeak is written in Python, time without turning
and requires the PyGTK bindings for your taskbar or Translations may need rewording,
its GUI. You may also need the window list into an overgrown mess. but it’s an impressive service in all.
Gnome-python-extras bundle along By default, FreeSpeak uses the
with Mechanoid if you want to Free Translation and Alta Vista English, French, German, Spanish, pointless bells and whistles. It’s only
exploit its full featureset. As Python engines, but Google is also available Chinese, Japanese and others. The as good as the translation engines
and PyGTK are provided with most depending on settings. Due to the speed of translation will vary that back it up, but these are
popular distros, you can typically just immense complexities of languages, depending on your internet effective enough and make
install by entering python setup.py translations are typically rough and connection and how loaded the FreeSpeak a handy desktop extra if
install (as root), and then need rewording, but they’re translation server is, but in most you frequently encounter chunks of
freespeak.py from the shell prompt. acceptable for reading instructions cases it’s nigh-on instantaneous. foreign text that you need to
When started, FreeSpeak pops or translating short passages. With FreeSpeak is impressively clean, decipher in a hurry. Es esto
up a simple dual-paned box Alta Vista, you can translate between straightforward and fast, with no correcto, Colin?.

LDAP MANAGER After a slow startup, Luma drops switch between various aspects of
you straight into the fray – there are LDAP server administration:

Luma no wizards, no welcoming dialogs.


Some more polish in the presentation
would be good, then, but as it is Luma
managing the address book, browsing
through objects, searching, managing
users and more, with straightforward
■ VERSION 2.2 ■ WEB http://luma.sourceforge.net will suit many administrators who editing panes.
would rather get straight to work than Multiple servers with their own
The Lightweight Directory Access the archive has been extracted, you battle with superficial glitter. At the security settings can be defined, and a
Protocol (LDAP) system for managing can either install or run it in place by top-left of the window you’ll find a sprinkling of admin helper utilities have
users, resources and other information entering luma-2.2/bin/luma. drop-down plugin list, which lets you been included too – password
is best known on Linux in its generation, Unix date format
OpenLDAP form (of which Slapd is the conversion and mass user creation.
server). Luma is designed to make The browser and user management
browsing and managing data stored on plugins are accompanied by icons and
LDAP servers a fast and friendly neatly organised boxes to make editing
experience, with a Qt interface and easier, so while there’s little in the way
widgets galore. It boasts a plugin of documentation, most of the options
system to provide the core functionality are self-explanatory.
and has been translated into a wide Luma works well, and while it’s not
array of languages. the most advanced admin tool of all
To get Luma up and running, you time, it’s ideal for basic management
may need to hop around your distro’s and editing chores. Some additional
repositories for a few dependencies. refinement would be welcome in
It’s written in Python with Qt as the places, as long as it weren’t to the
front-end, so you’ll need those detriment of its overall cleanliness and
installed along with the PyQt bindings no-nonsense design.
to tie it all together. Additionally, Handily, Luma indicates the
Python-ldap is required to interface strength of a password as you
Python with the LDAP server. Once enter it.

46 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.hot 46 20/9/05 11:33:41 am


HOTPICKS

HotPicks REVISITED ALSO RELEASED


SOURCE CODE NAVIGATOR & EDITOR New and updated software
that also deserves a look...

KScope ■ Guten 0.3 Project Gutenberg book


reader http://guten.sf.net
■ VERSION 1.3.0 ■ WEB http://kscope.sourceforge.netx
■ UseBB 0.6 PHP/MySQL bulletin board
In LXF45, we took a look at system www.usebb.net
KScope, a graphical front-end to the
■ Neko1.0 Compiler and virtual machine
source code browsing app CScope. A http://nekovm.org
command-line-based search tool,
CScope that aims to make large source ■ Linphone1.1.0 Gnome internet
telephony www.linphone.org
code projects, such as the Linux kernel,
easier to navigate. You can pinpoint ■ StormWar 0.14.1 3D strategy game
places where a function is called, for http://stormwar.free.fr/intro.html
instance, or search for all references to
a certain symbol. KScope adds a slick ■ Galleria 0.1 Web image gallery
generator http://qwoot.net/galleria
KDE layer to this raw functionality.
Masses of development activity has ■ Xplorer 0.6.0 Fast file manager
taken place since our coverage of http://cxplorer.sourceforge.net
KScope 0.2. The most notable highlights KScope’s new call graph feature in the bottom right, showing a visual ■ Kalva 0.7.95 KDE video recorder
are: querying via a context menu; a new representation of the code. www.andreas-silberstorff.de/ktvapp
manual; the ability to run in read-only
mode; an option for using external start a new project by pointing it to a KScope has matured from an
editors; position history for going back source code tree. The program then intriguing bolted-on GUI into an
after search results; code-completion; presents a multi-paned view in which excellent application in its own right.
drag-and-drop support; and a spiffy you can switch between files, execute Few coders will find it of great use
new call graph based on Graphviz. queries and edit the source by hand. for their own personal projects, with
We’ve included some binaries on This editing component sports code a relatively small number of source
our coverdisc, but if you have to folding and syntax highlighting, code files, but if you’re grappling
compile from source, make sure you making it effective for basic editing with a gigantic codebase such as
■ FONTpage 0.1 A PyGTK font viewer
have the KDE and Qt development jobs – but it’s not intended to be a OpenOffice.org, it could be www.pcbypaul.com/linux/
packages. Upon starting KScope is, you fully-fledged IDE. supremely useful. FONTpage.html

■ Geda suite Electronic circuit design


toolkit www.geda.seul.org
WEB BROWSER & EDITOR

Amaya
■ Ptyaim 0.5.6 Text-based AIM and
IRC client http://ptyaim.sf.net

■ Echelon 0.1 Gnome game server


■ VERSION 9.2.1 ■ WEB www.w3.org/Amaya monitor http://echelon-applet.
sourceforge.net
We haven’t looked at Amaya in
HotPicks since right back in LXF10, ■ xlayout 0.7 Control X apps via CLI
when LXF Towers was based in http://freshmeat.net/projects/xlayout
Pangaea. Amaya is the web browser
■ ReactOS 0.2.7 Open source
and editor for the World Wide Web Windows clone www.reactos.org
consortium, which started
development in 1996 and is still going ■ Ogrian 0.9.1 A Magic Carpet-esque
game http://ogrian.sourceforge.net
strong to this day. Many long-time
Linux users will wince at just hearing acceptable. But the program’s real Editing the BBC’s snooker
its name; despite the good technology strengths lie in its editing facilities. page – if only our addition
underneath, Amaya was notoriously Amaya functions as a versatile (highlighted) were true...
ugly and stood out like an especially WYSIWYG web page editor: although it doesn’t compare on a
sore thumb. meaning, you edit the visual layout of feature scale with bigger editors
Not any longer, though. The old a page rather than the raw HTML such as Dreamweaver.
interface has been ditched in favour of behind it. It supports CSS, MathML, Still, it’s free (as in freedom and
a WxWidgets GUI, resulting in a SVG and more. A sidebar down the beer), it’s extremely stable and it
smooth GTK front-end when the left contains collapsible sections for doesn’t hinder you with pampering
■ KGuitune 0.5 Guitar tuner
browser is run on Linux. It looks orders changing formatting, selecting and pointless fluff. Amaya is a good http://home.planet.nl/~lamer024/
of magnitude better. Amaya’s colours, inserting math symbols and choice if you’re looking for k3guitune.html
rendering engine isn’t as advanced as so on. It’s clearly geared towards something more advanced than the
Gecko or KHTML (used in Firefox and experienced website designers rather simplistic My Page Editor-type tools, ■ GNUnet 0.7.0 P2P network (see
HotPicks in LXF68) www.gnunet.org
Konqueror respectively), but for than newcomers (who’d feel more at but don’t want to get bogged down
relatively undemanding sites it’s home with Nvu and the like), in hacking raw HTML. LXF

www.linuxformat.co.uk LXF73 DECEMBER 2005 47

LXF73.hot 47 20/9/05 11:33:45 am


WHAT ON EARTH Parrot

What on Earth is...

PARROT?
Originally planned to help run new Perl code, this bird could go far.
Amias Channer examines Larry and the Perlmongers’ latest creation.

>> Go on then: what is Parrot?


Parrot is new breed of virtual machine (VM)
are compiled in real time before execution. C is a
compiled language: to make a program you write the
components to Parrot bytecode and use them from
any of the other languages that can be compiled to
tailored to the needs of interpreted languages. source code, then compile and link it to get a binary, Parrot bytecode. And of course, your program can be
which you then run. With an interpreted language run or ‘hosted’ on any computer with a Parrot VM.

>> Interpreted you just run an interpreter and tell it which source
languages being
Ruby, Perl and so on?
code to run. Perl test.pl, for example.
>> Can’t I use any language with
existing system libraries?
Yes, they are languages that
>> Why use a virtual machine?
Virtual machine architecture runs on top of
Well, you could, but currently only through a
separate external interface such as a database or
your real architecture. Instead of compiling to serialisation API. Interpreted languages have always
machine code you compile to bytecode, which is run had problems when it comes to sharing data
by the virtual machine. This separation allows greater structures because of their lack of a common binary
control over security and better sharing of resources interface. Perl, Python and Ruby all use completely
in exchange for a little bit of performance. different binary structures internally (for reasons of
platform neutrality) and so cannot share data

>> What’s the difference between


bytecode and machine code?
structures directly in memory without the aid of
external tools. It’s also very common for some
The key difference is that machine code runs external interfaces to work on a subset of the
directly on a real processor while bytecode available platforms, which makes porting a bit of a
runs on a made-up machine which is lottery. That’s why there’s so much hope for Parrot.
emulated by the real machine. This means
that bytecode can be run anywhere with an
interpreter, whereas machine code only works >> Will I be able to distribute binaries
of my interpreted programs?
on one type of computer. They are both equally A bytecode file isn’t strictly a binary, but if you mean
headache-inducing and shouldn’t be written directly not distributing the source code, then yes. This can
unless you are some kind of pain-loving cyborg or also be a good reason to push for the development
absolutely have to. of a Parrot targeting version of your favoured
Parrot allows the compilation of source code for language. If you are using GPLed modules in your
a variety of languages into bytecode, which can be code you should check you aren’t infringing their
run on a variety of different computers as long as licences if you plan to distribute them in bytecode.
they have a bytecode-targeting compiler.

>> Wouldn’t my code be faster


>> I don’t care what my code
runs on – what can a VM do
without the VM underneath it?
Native code, that is, code written to run on a specific
for me? machine, will always be faster than virtualised code.
You can build components of a program But if you are using a high-level language, especially
in several languages, choosing whichever an interpreted one, you have already indicated that
is the most appropriate to the task in your priority lies in functionality, because there will
hand. You can then compile your be some sort of VM involved anyway.

www.linuxformat.co.uk

LXF73.woe 48 20/9/05 10:18:54 am


WHAT ON EARTH Parrot

>> Why’s that?


Well, take the interpreted language PHP. This
typing is where variables have to be declared;
dynamic typing just creates the variables when you
bytecode translator is already available, so consider
the doors open.
is both a language and a virtual machine platform to assign to them.
host it. Static typing is generally more efficient of the two
in terms of speed and memory usage, because >> You mentioned that Perl was the
inspiration for Parrot.
>> And you don’t think the
presence of a VM slows
the compiler will know more about
what the code is doing and can
Yes. The idea was to create a self-hosting
environment for the new Perl 6. Self-hosting means
things down? optimise it further. This is great for written in its own language, like Java and C.
Given the falling cost of operating systems where you need Most of the people who work on Parrot are Perl
hardware, performance to know exactly what is hackers, and quite a lot of the ideas for
speedups can be more happening, but it’s not so Parrot are logical extensions of
effectively achieved using faster chips good for high-level Perl paradigms. This self-hosting
than by streamlining code. And to business logic environment would also allow
compensate for any performance hits, processing where Perl users to hack the insides of
when you use code that runs in a good Perl in Perl where previously this
VM, upgrades and platform changes
should be seamless.

>> There must have been


other open source VMs
before Parrot came along. Are they
any good?
There is no other open source VM with the same
features, and that’s one of the reasons why the
Parrot project was started in the first place. Though it
is cross-platform and multilingual, it was conceived
by Perl programmers primarily to host the new Perl
6 they were working on. If there was an alternative
out there, they would have used it.

>> Java and .NET are VMs. What


about them?
For a start, unlike them, Parrot is truly open source.
This allows it to be cross-platform, because there is
no underlying platform allegiance. Even though both
Java and .NET are cross-platform, they don’t
necessarily treat each platform evenly, so moving to
another platform may not work. Parrot is expected
to outperform both Java and .NET, and current tests
show it leading the pack in VM performance
although there is a lot more code to be added,
which may well change this.
Also, Java and .NET have their own native
languages –

>> Don’t tell me: Java and .NET?


Indeed. You’re a genius. Parrot, on the other you want rapid coding and clear business logic, was only
hand, is more language-agnostic. Parrot is designed regardless of how it actually works in memory. possible if
for interpreted, dynamically-typed languages in you knew
general, unlike most other VMs, which are designed
for specific statically-typed languages. >> Will Parrot talk to Java or .NET?
It will, but not for a while. The view from the
some C.
Most of the Parrot
Parrot’s nest seems to be that this can be added at development goes on in the

>> I type with one finger. Is that


static or dynamic typing?
a later stage, when bridging between a non-
dynamically-typed VM and one with type checking
Perl 6 internal mailing list.

Er… no, it’s nothing to do with keyboards. Static becomes simpler. A proof-of-concept Java to Parrot
>> How did we
get to Parrot
from Perl?
“PARROT SHOULD OUTPERFORM The moniker derives from an
April Fool’s joke, which alleged

JAVA AND .NET, AND IS MORE that Perl originator Larry Wall
and Guido van Rossum (Python
CROSS-PLATFORM THAN BOTH.” leader) were to merge Perl and Python into
a new language called Parrot. Simon Cozens,
>>

www.linuxformat.co.uk LXF73 DECEMBER 2005 49

LXF73.woe 49 20/9/05 10:18:58 am


WHAT ON EARTH Parrot

>> a senior Perl hacker and poster of the April Fool, VM and an embedded language engine, so there as well as shell scripts, resembling line noise and
then took over as Parrot’s lead developer, and the should be no need to even think about nailing it to beautifully structured web automation projects.
name has stuck – because in some ways it does its perch. Leo Tötsch, the current pumpking, pushed
merge Perl and Python. out the current release, Serenity (or 0.23), on 5
August 2005 and work continues apace. >> Perl people seem pretty quirky.
Perl as a programming language celebrates

>> I thought Perl died out with the the values of clever quirkery, flexibility and
failed dotcoms?
Nope, Perl is still going strong. Quite a few of the >> Pumpking?
Sorry, it’s a Perl thing. From the pool of
pragmatism. This focus has attracted the weirder end
of the hacker spectrum, people who love to revel in
core developers have moved on to Parrot developers, a ‘pumpking’ is chosen. their oddness at any opportunity. These people
development and very little new code is added This pumpking oversees the addition helped to create the guts of the language, so Perl
to the Perl 5 code base, although CPAN of new code to the main release took on their preferences and eccentricities. Perl
modules for the Perl repository continue to versions. Linus Torvalds could developers often do not follow the traditional
roll in. be considered the computer science degree route, and tend to
see coding problems in a less mathematical,

>> If people hate Perl, will


they hate Parrot?
more linguistic, higher-level way.

Parrot is very Perl-centric, and it will be hard


to get away from the Perlisms. You can use >> Will this lunacy infect
Parrot as well?
Parrot without writing a single line of Perl, Darn tootin! It’s what’s made Perl so
but you will have to have a working Perl successful! There are Perlmonger groups
installation to use it. Most Linux distros all over the world developing their own
include Perl, so this shouldn’t be a problem recursive acronyms, writing Perl modules that
It is possible to use Parrot with other turn your code into pictures of camels and finding
languages than Perl – in fact, the idea with Parrot time to drink copious amounts of beer. Miraculously,
is that you can stick to your chosen language and this digital bedlam has bred strong, vibrant
get the benefits of others. Your language can communities that churn out top-notch code.
become interoperable with other languages and
platforms that previously it might not have been able
to use. But you will need to have a Parrot bytecode >> But how does that make for
good code?
compiler for it to achieve this. I suppose if you have a group of happy people who
enjoy each others’ company and are constantly

>> OK, so what other languages


compile to Parrot bytecode?
trying to out do each other technically you get good
code. The tomfoolery creates a pleasurable
Loads, although there is nothing especially stable environment and, most importantly, a light-hearted
or complete yet and there won’t be until the core approach makes discussing possible conflicts much
matures. At the moment you can try prototypes of Linux 2.6 pumpking. Apparently the phrase was easier. Perl excelled during the dotcom years
Perl 6 of course, Parrot Assembler (PASM), Java, coined when a pumpkin-shaped keyring that was because you could rapidly prototype and adjust your
Jako, Integer BASIC, Scheme, Forth, TCL, Ruby, once passed between mythical programmers back in code to fit with the constantly changing business
Python, Ook, Lisp and Befunge bytecode compilers, the digital dreamtime. The keyring contained a USB practices. A more rigorously defined language would
but don’t expect them to work very well yet. If your key that allowed updates to the back-up media that not have provided the flexibility to change so quickly.
favourite language is not on this list, it could be if
you start nagging its developers now.
“PARROT IS STARTING TO CONNECT
>> Urgh, Assembler! I thought Parrot
was about high-level languages? WITH OTHER OPEN SOURCE
Calm down dear, it’s only a virtual machine. Anyway,
you don’t have to use PASM: there will be more
PROJECTS AS A VM AND LANGUAGE.”
comfortable ways to generate Parrot bytecode in the
near future. PASM is the most complete option at
the moment and is being used to write unit tests for
contained the code they worked on. The pumpkin
king was the one who had the key. >> What are the new features of
Perl 6 ?
the Parrot VM, which is the only serious work done One of its main features is better object orientation
with Parrot at the moment. When Parrot matures,
PASM will disappear into the sidelines and nobody >> What’s with all the weird names
and acronyms?
(OO). Perl 5 got a lot of flak for its hackish but
rather clever approach to OO, but Perl 6 will have
will use it unless attempting some dark voodoo The linguistic playfulness of the Perl community is a proper keywords for declaring classes so you don’t
hackery. You’ll probably never actually use PASM legacy from Mr Wall. He’s a deeply odd but have to keep fixing typos in basic constructors. This
directly but it’s handy to have the option to use it. As fantastically gifted individual, who among other should keep your code smaller and better organised.
Larry Wall says: “There is more than one way to do it.” things is a linguistics expert, prodigal quipper and A major criticism of Perl 5 was that it encouraged
wearer of frighteningly loud shirts. His playfulness bad coding practice by having too many quirks.

>> Do you think this grand idea of


Parrot will take off beyond the
and linguistic skill have imbued Perl with an
extremely flexible – some might say lethal – syntax
Indeed, it’s common to use a special ‘strict’ grammar
to turn off some of its more dangerous features
Perl community? that appeals to the more linguistically-minded when using it in production environments. To avoid
Parrot is already gaining popularity and is starting to developer. The result is that Perl is the only language, this, Perl 6 will be strict by default, but you can turn
connect with other open source projects as both a programming or otherwise, used regularly in poetry off the ‘strictness’ easily enough.

50 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.woe 50 20/9/05 10:19:00 am


WHAT ON EARTH Parrot

>> Wasn’t there some kind of


problem with Perl 6?
language has all three of these
characteristics. Remember also that
Yes, the initial plan to extend Perl 5 all the way to the code that really counts here is the
Perl 6 failed. Because of its high-level nature, Perl is machine code, and C compilers and linkers
not a great language for writing compilers, so a new create the best machine code.
development language was chosen: Haskell.
Although similarly high level, it has much better
formal debugging tools, which are essential when >> I use Mod-Perl on
Apache. Is Parrot of
writing something as sophisticated as a compiler. any use to me?
This interim compiler is called Pugs, and is intended Oh yes. The programmer Jeff Horwitz
as a bridge that will allow the development of a is working on Mod_parrot, but it’s
working Perl 6 grammar. Most of the Perl 6 designs only at version 0.3 so is nowhere
have been implemented in Pugs, and it is finding its near production grade yet. Still, the
way into production systems. Pugs has a limited possibilities with Mod_parrot are great.
lifespan because it will culminate in a port to Perl 6 It will allow multiple languages to
on Parrot. See www.pugscode.com for more info. manipulate the same data structures
from inside the same web server. You can

>> Will my Perl 5 program run in


Perl 6?
use whichever language is most appropriate to
the task in hand instead of the one that seems
Pretty much, yes, unless you’re doing something to cover the most situations.
really weird in which case you will probably know
exactly why. Perl 6 will assume Perl 5 behaviour
unless it detects Perl 6 constructs (class and module >> What else uses Parrot?
At the moment only seriously early
keywords) in your code. You might want to port to adopters should use Parrot for real work.
Perl 6 at a later date, especially if you are writing It is rumoured that some of the core Parrot
object-oriented code. developers are using it in production environments,
but of course they practically live

>> Can’t I just have Perl without all


this VM stuff?
in the Parrot development lists and are thus fully
aware of what works and what doesn’t. If you are
No, the new features of Perl 6 are what necessitated thinking of using Parrot for something serious you
Parrot’s development. The insides of Perl 5 are so should read all the PDDs and subscribe to the
twisted around themselves that a complete rewrite is Perl 6 internals list first.
needed. There will still be a Perl 5 for quite a while,
but you should expect the main body of Perl
development to move to Perl 6. Most of CPAN will >> What are PDDs?
Parrot design documents. These are
move over, and so newer concepts may only get a formal guide to what’s happening and an
coded in Perl 6, although Perl 5 has such a large historical record of the Parrot design and
userbase that this will not happen for a long time. implementation process. This means
that anyone who missed out on the

>> Was Parrot coded in Parrot or


Perl 5?
original development can know
why a certain decision was made.
Ah. Actually, it was written in C. The format is basically POD,
but they can be easily converted to

>> Why is Parrot coded in C if it’s


supposed to be self-hosting?
other formats. To read them visit
http://dev.perl.org/
Self-hosting creates a chicken and egg situation. To perl6/pdd.
get this environment to work it needs to be coded in
C and compiled to machine code first of all. From
there it can be used to rebuild itself in its own >> So what can I
do with Parrot
language. It is not unusual for compiler writers to right now?
switch languages during the development phase. In short, play, learn and bide your time.
This is possible because many compiler writers use Parrot is still relatively new, so it’s
special toolkits that generate the same functionality easier to pick up its nuances
in several languages allowing them to choose the now before the complexity
one that makes the fastest or safest machine code. gets layered on top of
it.Also, if you learn how

>> Isn’t C a bit obsolete? I thought


Parrot was all new and shiny?
it works you might be
able to help develop
C is getting on a bit but it’s still the best language a Parrot targeting
we’ve got for this sort of job. It runs on the widest version of your
range of platforms, has the biggest pool of favourite language or
development talent and is mature enough to safely help write documentation. For more information
generate small and fast machine code. No other visit www.parrotcode.org. LXF

www.linuxformat.co.uk

LXF73.woe 51 20/9/05 10:19:01 am


CRACKING THE KERNEL

COVER
FEATURE

52 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.kernel 52 23/9/05 3:54:47 pm


CRACKING THE KERNEL

Kernel hacker Greg Kroah-Hartman looks inside the


latest kernel to show you what makes your box tick.

“From a technical standpoint, I believe the kernel


will be ‘more of the same’, and that all the really
interesting stuff will be going on in user space.”
Linus Torvalds, 2001

THE AUTHOR espite what out With the release of the 2.6 kernel

Greg Kroah-Hartman works full time


for Novell on the Linux kernel. He’s
been writing kernel drivers since
1999, maintains udev and hotplug,
and also looks after various kernel
D benevolent bazaar
keeper thought, the
Linux kernel is proving
to be a very interesting and
important part of all Linux
series at the end of 2002, the kernel
engineers unleashed upon the world
an extremely stable, multiprocessor
operating system that runs faster
than any other operating system, on
subsystems. Greg has also been systems. At the lowest level, the a wider range of processor types.
known to be
kernel is responsible for making What other operating system can
an avid
the hardware (the stuff you’ve just scale from a tiny MP3 player or
Gentoo user,
but how that spent so much money on) work embedded robot controller to the
pans out now properly. It enables you to run largest supercomputers – some with
he works for your favourite web browser, email over 512 processors? All of this is
Novell is client, IRC program, 3D shooter only possible thanks to the kernel
anyone’s
guess...
and more, all at the same time.
Without it there’d be no Linux.
itself: everything on running on top
of it is just fluff.
>>

www.linuxformat.co.uk LXF73 DECEMBER 2005 53

LXF73.kernel 53 23/9/05 3:55:08 pm


CRACKING THE KERNEL

Cool kernel features


>>

We should all take some time to get better acquainted with the kernel. The
latest version has some great additions that will excite all kinds of users.
The 2.6.13 kernel was released on trawl the whole hard disk every time chooses which device is bound to
28 August, 2005. It added some you run a search. Inotify is the kernel which driver through a set of tables
200,000 new lines of code, and had part that provides this functionality to that the individual drivers register with
the same number of lines modified. user space. Older versions of the the kernel. Before now, users had
Most of the changes were bugfixes kernel had a mechanism called never been able to control this
and stability improvements; but 2.6.13 Dnotify, but it was cumbersome to use matching up between device and
also has some new and interesting and did not work very well. Inotify fixes driver, except by unloading a driver,
features that can make using a Linux all the problems in Dnotify, and allows which causes all devices controlled by
machine better – for everyone. individual files as well as entire that driver to be released.
directory trees to be watched. The 2.6.13 release includes a way
FOR DEVELOPERS for users to bind and unbind individual
Inotify Kexec and Kdump devices to specific drivers. This can
For such a simple concept (letting the The Kexec and Kdump features have allow administrators of large systems
user know about all changes that been around for a long time in to disable a single device, load a
happen to a file), Inotify has had a lot distribution kernels, but it’s only now newer driver and then bind the newer
of press. This is all down to one tool: that they’ve found a place in the main driver to that device, without
Beagle. Beagle is a Gnome application kernel tree. Kexec allows a user to disconnecting any other devices that
that enables you to instantly search load and run another Linux kernel were controlled by that original driver.
your machine for anything – whatever without requiring the currently running Just think of the hassle involved in
the type of file it is, wherever it is on kernel to shut down to the BIOS – upgrading a large disk system and
your machine. With Beagle, you can saving a lot of time at reboot. Kdump you’ll realise this is a Very Good Thing.
easily find documents, emails, web then uses this feature to grab kernel This module also enables you to
history, IRC conversations and more dumps of system in the event of a choose which device is controlled by
(for more information on kernel crash, enabling developers to which driver. Some devices can be
Beagle, see http:// analyse the system at a later date. controlled by multiple drivers, and the
beaglewiki.org). Users who want to keep kernel kernel will just use the first one it sees.
In order for tools like upgrade disruptions to a minimum (no Manual binding lets you use your own,
Beagle to run efficiently one wants to wait and watch the BIOS specific driver, which might work a lot
and know what has re-probe the SCSI bus) can use Kexec better for your device than the default
recently changed on your to keep their downtime to a minimum. one chosen by the kernel.
machine, they need
some method of FOR USERS Devfs is dead
knowing what has Bind and unbind The devfs filesystem has been disabled
changed on the system, For a device to work in Linux, it needs in 2.6.13. This has been done to flush
rather than having to a device driver to control it. The kernel out any remaining users of this in-
kernel device filesystem before it is
finally removed entirely. People who
The Linux kernel can as easily are still using devfs should move to
run a supercomputer as a
small, embedded device. udev (see LXF66). It may seem rather
odd that we’ve highlighted a feature
being disabled as a step forward, but
the truth is that devfs sucks. It’s a
huge amount of bloat, makes it harder
to read through the kernel code and
the sooner we’re rid of it, the better.

Better I/O queuing


The ‘Completely Fair Queueing’ I/O
scheduler (arguably the best overall
disk scheduler so far) has been
enhanced to allow better handing of
timeslices. Also in this area, two new
kernel system calls have been added

54 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.kernel 54 23/9/05 3:55:49 pm


CRACKING THE KERNEL

to allow user programs to modify the other operating system, and it’s clear systems, or other systems that require
I/O priorities of different processes in why the Linux kernel is recognised fast, interactive responses to events.
the system. This lets administrators as the most flexible and powerful
tweak system performance of different kernel around. Voluntary pre-emption
programs much more easily. Those users who are not comfortable
Execute in place with a fully pre-emptable kernel now
FOR EMBEDDED The ext2 filesystem now enables have another option: voluntary
Xtensa programs to be executed in place pre-emption. This allows the kernel to
A whole new CPU architecture has instead of having to be loaded into pre-empt processing at a number of
been added to the 2.6.13 kernel: memory first. This is very useful on known ‘explicit pre-emption points’
Xtensa. Xtensa is a 32-bit embedded embedded systems that have a limited that have been selected to reduce the
processor that can be placed within amount of RAM but a large amount of maximum latency of rescheduling
system-on-chip solutions with a wide Flash or ROM (like a mobile phone). different programs. Applications have a
range of embedded uses – phones, faster response time, albeit at the >>
PDAs, set-top boxes, MP3 players and Adjustable frequency expense of a slightly lower throughput.
all sorts of other common gadgets. We set the 2.6 kernel’s interrupt
With this new architecture, Linux frequency to 1,000Hz, which caused a
now supports 24 major processor few complaints from a range of users.
types, and many more sub-processor Now this frequency can be configured
types. Good news for embedded at compile time to three different
devices. For those who like to brag, values, depending on what the
Linux supports more different machine is used for.
processors than any other operating ■ 100Hz This is best for low-power
Interrupt
system ever has. Combine that fact devices. frequency
with the realisation that Linux supports ■ 200Hz Ideal for servers. can now be
more devices out of the box than any ■ 1,000Hz Optimum for desktop tweaked.

WHAT’S COMING SOON?


With luck, the 2.6.14 kernel will have been released by much like the existing UDP protocol – with some Linux now supports this very nice feature with this
the time you read this (it’s expected sometime around important differences. For more details on this protocol, new driver. But kernel programmers being what they
the beginning of October 2005), and will contain these and what it’s going to be used for, see www.icir.org/ are, they’ve added a few new features that are not
nice new features: kohler/dcp/draft-ietf-dccp-spec-11.txt. found in any other operating system. It turns out that
■ relayfs the device that does this detection can be used to
Sometimes the kernel developers need to get a lot of ■ Removal of the PCI IDs database detect what angle the laptop is being held at. So they
data out of the kernel very quickly and with minimal Prior to this kernel release, every kernel contained a list have hooked the device up to the mouse pointer, so that
side-effects. For example, when you’re trying to debug of strings describing all possible PCI devices that existed you can hold the laptop in your hands and tilt it around
the kernel, you don’t want the debugging code to in the world. It did this just to make a few /proc files to push the mouse in different directions.
modify the timing of the code you are trying to debug. look pretty, and it wasted a lot of space. This file has Once the initial fun of this feature wore off, they
Relayfs was written to solve this problem, and a been removed, so the wasted kernel memory can now realised that they should just export the tilt information
number of external kernel projects have been using it be used for something more useful. For those users who to user space so that any program can access it. This
for quite some time in order to help them with their really liked the pretty names, they can still be accessed has spawned a whole range of tiny programs that show
data transfer issues. The Linux Trace Toolkit is one, and through lspci. the laptop rotating in a window in real time according
now that this feature has been added to the main to the way it is being held. Hopefully something useful
kernel tree, LTT has come a little closer to acceptance. ■ ThinkPad hard drive protection system will come of this feature some day.
Most new IBM/Lenovo ThinkPad laptops contain a small
■ ipw2100 and ipw2200 drivers motion detector that can determine if the laptop has ■ Fuse
It seems that almost every other new laptop being slipped off of a table Finally, it is now possible to write a filesystem in Courtesy of International Business Machines Corporation. Unauthorized use not permitted.
produced these days uses the Centrino and is about to come userspace, using whatever language you want (Python
chipset for wireless capability. The main crashing down on anyone?). Fuse is the magic that allows this to happen,
kernel tree can now support these the ground. If the exporting the internal kernel virtual filesystem to user
devices without forcing the user to dig device detects the space for all to play with. A number of user space
through a SourceForge site, download laptop is in filesystems are already written using Fuse, including an
some source files and figure out how to freefall, it SSH filesystem and a tar filesystem. See the main Fuse
build and load a kernel driver just so they quickly shuts development page (http://fuse.sourceforge.net).
can get their new laptop to work properly. down the disk As with all new features provided with kernel
With the acceptance of these two drivers and drive to help releases, you must enable the feature and build it into
a larger wireless network infrastructure, it is prevent any your kernel at compile time in order for it to work
now much easier to add new wireless drivers to nasty data properly. For instructions on how to build, install and
the main kernel tree. loss issues. boot a new kernel, please look at the excellent kernel
build HOWTO at www.digitalhermit.com/linux/Kernel-
■ DCCP network protocol Build-HOWTO.html.
As if Linux didn’t support enough network protocols
already, a new one has been added. This protocol is The IBM ThinkPad parks
so new that the 2.6.14 kernel is the first one to the hard drive head within
actually be used in the real world to test it. DCCP 500 milliseconds when it
stands for Datagram Congestion Control Protocol and is detects sudden motion.

www.linuxformat.co.uk LXF73 DECEMBER 2005 55

LXF73.kernel 55 23/9/05 3:55:53 pm


CRACKING THE KERNEL

Get started here


>>

Are your programming fingers itching to go? Delve into the new kernel and
explore two of its finest features.
OK, so we’ve been covering lots of int inotify_rm_watch(int fd, __u32 ■ IN_MOVED_FROM The file was
interesting theory so far – and you’re mask); moved from location x.
probably waiting to get to the Intended as a replacement for ■ IN_MOVED_TO The file was moved
hands-on ways you can start using Dnotify, Inotify works with something to location y.
new kernel features now. called ‘watches’. A watch is a pair of an ■ IN_CREATE A subfile was created.
Well, here you go: if you’re half- object and a mask that describe an ■ IN_DELETE A subfile was deleted.
way competent in C, you can get to event that the user wants to receive ■ IN_DELETE_SELF Self was deleted.
grips with Inotify straight away, learning notification events of. The object is If the user wants to monitor all
events, a handy IN_ALL_EVENTS
macro is defined, which includes all
“HALFWAY COMPETENT IN C? YOU CAN the above event flags combined.
To create a watch and register it
GET TO GRIPS WITH INOTIFY STRAIGHT with the kernel, a file descriptor must

AWAY TO ADD WATCHES TO FILES.” first be created with a call to the


inotify_init() function, like this:
int fd = inotify_init();
the new kernel functions to add and either a file or a directory (as Then, using this new file descriptor, you
remove watches on files. represented by an open file descriptor) can add a watch to it by calling the
If you’re a bit less intrepid, see the and the mask is a bitmask of events. inotify_add_watch() function:
Manual Driver Binding box (below) to The different types of events that can int wd = inotify_add_watch(fd, path,
learn how you can customise the be monitored are: mask);
driver that gets loaded when you ■ IN_ACCESS The file was accessed. where fd is the handle returned from
insert a USB Flash drive. ■ IN_MODIFY The file was modified. the call to inotify_init(); path is the
■ IN_ATTRIB The metadata was path to the file or directory that you
Into Inotify changed. wish to watch; and mask is the type of
The Inotify feature added three new ■ IN_CLOSE_WRITE The writeable event you want to monitor.
kernel syscalls: file was closed. The inotify_add_watch() function
int inotify_init(void); ■ IN_CLOSE_NOWRITE The returns a handle to a watch descriptor,
int inotify_add_watch(int fd, const unwriteable file was closed. which must be held on to in order to
char *path, __u32 mask); ■ IN_OPEN The file was opened. clean up properly.

MANUAL DRIVER BINDING – USING THE BIND AND UNBIND FEATURE


Here’s a simple example of how to use |-- module -> ../../../../module/ub /sys/bus/usb/devices/1-1:1.0 |-- bInterfaceProtocol
the new bind and unbind feature in the `-- unbind |-- bAlternateSetting |-- bInterfaceSubClass
2.6.13 kernel. You’ll need a USB Flash Notice the bind and unbind files in this |-- bInterfaceClass |-- bNumEndpoints
device, or any other device that is directory. In order to unbind a device |-- bInterfaceNumber |-- bus -> ../../../../../../bus/usb
controlled by the usb-storage kernel from a driver, simply write the bus ID of |-- bInterfaceProtocol |-- driver -> ../../../../../../bus/usb/drivers/
driver. First off, build a kernel (see URL at the device you wish to change to the |-- bInterfaceSubClass usb-storage
the bottom of page 55) and select the unbind file. |-- bNumEndpoints |-- host2
CONFIG_BLK_DEV_UB and CONFIG_ echo -n “1-1:1.0” > /sys/bus/usb/drivers/ |-- bus -> ../../../../../../bus/usb | `-- power
USB_STORAGE drivers (you can build ub/unbind |-- modalias | `-- state
them both as modules, or into the main The device will no longer be bound to `-- power |-- modalias
kernel image). the driver. `-- state `-- power
When you use this new kernel, plug in $ tree /sys/bus/usb/drivers/ub/ Then simply write the bus ID of the `-- state
your USB Flash disc. Since the ub driver /sys/bus/usb/drivers/ub/ device you wish to bind into the bind file In order for a device to bind
is found first on the kernel load path, it |-- bind for that driver: successfully with a driver, the driver
is bound to your device. This can be seen |-- module -> ../../../../module/ub echo -n “1-1:1.0” > /sys/bus/usb/drivers/ must already support that device. This is
by looking at the /sys/bus/usb/drivers/ `-- unbind usb-storage/bind why you can’t just arbitrarily bind any
ub/ directory: To bind this device to a different And check the binding was successful: device to any driver. To help with the
$ tree /sys/bus/usb/drivers/ub/ driver, you first have to check that the $ tree /sys/bus/usb/devices/1-1:1.0 issue of adding new device support to
/sys/bus/usb/drivers/ub/ device is not controlled by another /sys/bus/usb/devices/1-1:1.0 drivers after they are built, the PCI
|-- 1-1:1.0 -> ../../../../devices/pci0000:00/ driver. To check this, look for the driver |-- bAlternateSetting system offers a dynamic_id file in sysfs,
0000:00:1d.7/usb1/1-1/1-1:1.0 symlink in the device directory: |-- bInterfaceClass so that userspace can write in new
|-- bind $ tree /sys/bus/usb/devices/1-1:1.0 |-- bInterfaceNumber device IDs that the driver should bind to.

56 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.kernel 56 23/9/05 3:55:56 pm


CRACKING THE KERNEL

FOUR WAYS TO CONFIGURE YOUR KERNEL

You should be root when compiling the kernel in /usr/src/linux (where it’s Running make config prompts you to choose the setting for each configuration
normally installed) so you have the access rights to change files. Editing the option. This is great if you want the entire kernel just as you want it, but slow if
.config file in /usr/src/linux allows you to enable or disable individual settings by you only want to change a few things.
name. This is how we do things in this feature, because it means you don’t need
to hunt through user interfaces to find options!

Running the make menuconfig program loads a simple text-based GUI where GUI addicts can run the make xconfig program, which loads a Qt-based GUI
you can select the options using your cursor keys. This is usually the best choice, where the options are neatly organised under a tree structure and you can use
particularly for the times you’re working on an old server. your mouse to enable what you want.

To remove a watch that is already __s32 wd; /* watch descriptor */ same cookie value, which allows user
BEHIND THE SCENES
in place, use the inotify_rm_watch() __u32 mask; /* watch mask */ space to co-ordinate the events.
function, thus: __u32 cookie; /* cookie to The file descriptor returned by For more details on the kernel design
int retval = inotify_rm_watch(fd, synchronize two events */ inotify_init() allows select() and decisions that the Inotify developers
wd); __u32 len; /* length (including poll() to be called on it, so a blocking went through in creating this system,
where fd is the original file handle nulls) of name */ read() is not necessary, which would check out the Inotify documentation in
the file Documentation/filesystems/
returned from the call to inotify_init() char name[0]; /* stub for possible tie up a program’s thread.
inotify.txt.
and wd is the watch descriptor name */ When the program that had the
returned from the call to }; original file descriptor returned by
inotify_add_watch(). All of the fields are pretty self- inotify_init() exits, or if that file
Once a watch has been registered explanatory, with the exception of descriptor is closed, all watches that
with the kernel, a simple read() call to cookie. If this field is not set to 0, it were registered with the kernel are
the file descriptor is used to retrieve will tell user space that multiple events destroyed and cleaned up properly.
events based on that watch (and all happened at the same time on the For a very simple example
other watches that have been same object. An example of this is program that shows how to register for
registered for this process). renaming a file. If we were watching a events and read events as they
The structure of the data read directory where a file was renamed happen, see the inotify-utils package
from the kernel is described in the mv foo baz, two events would be that can be found at www.kernel.
following C struct: generated: IN_MOVE_FROM and IN_ org/pub/linux/kernel/people/rml/ >>
struct inotify_event { MOVE_TO. They would both have the inotify/utils.

www.linuxformat.co.uk LXF73 DECEMBER 2005 57

LXF73.kernel 57 23/9/05 3:55:57 pm


CRACKING THE KERNEL

The quest for stability


>>

Frankenstein patches, bugfixes, two trees becoming one... How the kernel
development process has changed for the better in five short years.
Back before the 2.6 kernel was development ones. Each branch had turned into an engineering nightmare
released, it was easy to determine individual releases on it, so 2.4.12 and (just compare the Red Hat Enterprise
which kernel development branch was 2.4.13 would be different releases of Linux 3 and SUSE Linux Enterprise
stable and which one was the the 2.4 branch. Server 8 kernel source trees with the
“The problem we’re having at development tree: the second digit of That has all changed: now there is kernel.org trees on which they’re
present is that I don’t think the the version number told all. Even only one tree, the 2.6 tree. based for an example of this).
kernel quality is as high as it numbers were stable and odd After almost a year of development
should be. We’re getting quite a
few regressions sneaking into
numbers were development, so the Backport bungling of the 2.6 kernel series, the Linux
each release.” 2.0, 2.2, and 2.4 trees were stable and Back during the 2.5 development kernel developers met to talk about
Andrew Morton, OSDL, Aug 2005 the 2.1, 2.3, and 2.5 trees were process (from late 2001 to 2003), what they wanted to do for the next
several major changes were added to development series (2.7).
the development kernel. These It turns out that all of the
changes were so good that users and developers really liked things just as
distributions alike really wanted to use they were, and didn’t want to have the
them, even though the kernel was still same problem that the 2.4 kernel had
at an unstable, developmental stage with the backport mess – which, by
(ie the odd-numbered 2.5). the way, helped stretch the 2.6
The big enterprise distribution development cycle out to over
vendors duly got their engineers to two years.
backport these features to their When they huddled round and
custom 2.4-based kernel versions. looked at how the 2.6 kernel was
Application vendors needed to be able working, they decided to leave it alone
to determine which kernel features and state that this was both the stable
were enabled in these custom kernels.
The problem came when users of
these distros were forced to rely on
their distributions to support these
Frankenstein-style patched kernels, as
the kernel community wanted nothing
to do with them. Over time this
became very hard to maintain, and

NINE RULES FOR STABLE KERNEL DEVELOPMENT


The rules on what is accepted into the -stable releases are The change must be accepted by the relevant
quite simple:
8 subsystem maintainer.

The change must follow the normal rules of how a


1 The change must be obviously correct and tested. 9 change is submitted to the kernel (as documented
in the file Documentation/SubmittingPatches in the
The change must not be bigger than 100 lines,
2 including context.
kernel source tree).

3 The change must fix only one thing. The -stable kernel tree is also run with a public
review cycle, which is started when the
The change must fix a real bug that bothers people (not maintainers decide they have enough changes
4 a potential bug that hasn’t bothered anybody yet). for a new release. All the potential changes
The change must fix a problem that causes a build error, are posted to the Linux kernel mailing list,
5 an oops, a hang, data corruption, a real security issue, and sent to the individual kernel
or some “oh, that’s not good” issue. In short, it must be maintainers responsible for the area that
something critical. the change modifies. At least 48 hours
are allowed to pass, for any
No ‘theoretical race condition’ issues may be fixed, developer to object to any
6 unless an explanation of how the race can be exploited. individual change. Once the time
has expired, and no one objects, a
The change must not contain any trivial fixes in it
7 (spelling changes, whitespace cleanups etc).
new -stable kernel is released.

58 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.kernel 58 23/9/05 3:56:00 pm


CRACKING THE KERNEL

and the development kernel at the To get round this, a ‘-stable’ kernel
same time. release tree was created. This release
BYE-BYE BITKEEPER, GOOD MORNING GIT
Of course, there was a downside: is run by two kernel developers who
During the 2.5 development process, the
not having a development kernel (or package up a small kernel release
kernel developers adopted a source code
not having a stable kernel, depending every other week or so, and adds control tool called BitKeeper. This
on how you looked at it) meant that it nothing but obvious fixes and security program provided a distributed way of
handing changes and kernel trees from
traditional source code control systems
“THE BACKPORT MESS (like CVS and Subversion) and was
designed specifically for the needs of the
STRETCHED THE 2.5 CYCLE kernel developers.
Unfortunately it was a closed source
OUT TO OVER TWO YEARS.” program, but the kernel developers were
able to use it for free. Many electrons
were wasted in arguing if the Linux kernel
was up to the Linux distributors to updates to the latest kernel release. should be developed using a closed
source tool, but in the end it enabled a
better test and stabilise individual These releases are marked by a fourth Linus Torvalds only used to
lot of good things to happen.
kernel releases for their customers. figure in the release number; version publish kernel updates every
Previously, the kernel was developed
numbers now follow the format few weeks, a frustrating system.
by sending individual changes, via email,
Out of date... ‘2.6.x.y’, where y is the -stable kernel to Linus Torvalds, the kernel maintainer. He would apply some of them to his copy
So the kernel developers started to release number. For example, the of the kernel, and every couple of weeks or so would issue a new development
release new kernels every two or 2.6.13.1 release is the first -stable release. This meant that the individual developers had to wait a relatively long time
three months, with a relatively large release of the 2.6.13 kernel branch. to see whether their changes had been accepted what other changes had
happened during this time.
number of changes in each one. This
This worked pretty well for the first ten years of kernel development, but was
worked out for a few months, until Release tweaks really starting to show problems as the kernel grew and grew. When BitKeeper
people realised that if a security That was great, but the gap between began to be used by a number of core kernel developers, two important things
problem or a simple bugfix was main kernel releases seemed to be happened: there were nightly snapshots of the state of Torvalds’ kernel tree; and
needed for a specific kernel release, it growing. It took one month to go from each individual change was sent to a mailing list, including a description of why that
could be a number of months before 2.6.1 to 2.6.2, but we’re now up to change was made.
an updated kernel release happened almost four months between releases. The change was nothing new for most other open source projects that used CVS
(“Welcome to the nineties, kernel team,” was how one group put it), but for the
with these fixes in it. And when that Also, it didn’t seem that anyone was
kernel, it was a radical change. Torvalds no longer reviewed each individual change,
kernel release was done, it also had a actually testing the intermediate but started to rely more heavily on the subsystem maintainers of the different
number of new changes in it, some of ‘release candidate’ kernel versions that portions of the kernel to enforce the proper rules on what should be accepted.
which also needed new bugfixes... were being released between the
major releases. Pulling the rug on BitKeeper
Something had to change. What Eventually, all of the people who complained about BitKeeper being a closed source
program were vindicated in a way when BitMover, the company behind BitKeeper,
happens now is that in the first week
decided to stop the developers using it for free. The kernel developers had to stop
after a kernel release, all the different
everything and look around for a tool that would work properly for them. They
subsystem maintainers submit their didn’t see anything they liked, so Torvalds decided to write his own tool, which he
major changes to be merged. These called Git. Git is a distributed source code control system that works much like
might be new features, bugfixes or BitKeeper did, but is tuned exactly for the Linux kernel development process. It has
rewrites of sections. At this point a real the following attributes:
‘release candidate’ kernel is released, ■ It allows for completely distributed development (no central server like CVS
or Subversion).
and all the developers settle down and
■ It can apply a change quickly.
work on making this release stable.
■ It can handle the large size of the kernel source tree, and the number of changes
Bugs are tracked using the site that happen over time (the kernel development process is constantly increasing the
http://bugzilla.kernel.org, and rate of change as the code base gets larger, which is unlike any large open source
developers are temporarily barred project in the past).
from adding new features. Because it has a
Within a few more weeks the relatively cryptic
command line interface,
kernel is stable enough to be
a number of wrapper
released, and the whole programs have been
cycle starts over again. created to help make
This should provide a using Git easier (such as
short release cycle Cogito). Since the
and provide a better 2.6.12-rc2 kernel
release, the kernel
shakedown of
developers have been
>>
any bugs that
using Git with no
show up. complaints. For more
information on
getting and using Git The removal of BitKeeper and emergence of
yourself, go to Git threatened the unity of Linux kernel
www.kernel.org/git. development. See LXF68 for the full story.

www.linuxformat.co.uk LXF73 DECEMBER 2005 59

LXF73.kernel 59 23/9/05 3:56:06 pm


CRACKING THE KERNEL

Into the future


>>

Kernel developers are taking a stronger line on closed source – but they’re
just as keen that the new development model doesn’t shut out innovation.
In the past, the Linux kernel is proving to be very effective, as no which enables more developers to see
developers have looked the other way Linux company wants to be taken to the code and work on it, getting the
when kernel modules were created court over this issue. benefit of the open source
and the source code was not made Now to the third deterrent. Most development process.
available for them. But that has all complaints about the kernel For a more detailed description of
changed in recent years. There are development process come from why Linux does not have a stable
now three ways that the kernel
developers handle such instances.
First is a flag that is that is enabled “THE CHANGE IS PUSHING
whenever a closed source kernel
module is loaded into it. This lets the DEVELOPERS TO BECOME
kernel community easily identify and
refuse to support all users of such
BETTER ENGINEERS.”
modules, as it is impossible to
determine exactly where the problem people working on drivers outside the in-kernel interface, see the file
might be (in the closed source section, main kernel source tree – closed Documentation/stable_api_
or in the rest of the kernel). source developers, for example, such nonsense.txt at http://lxr.linux.no/
Almost all new kernel functions are as NVIDIA. source/Documentation/stable_api_
explicitly marked by the compiler as These complaints are usually about nonsense.txt.
‘only to be used by GPL code’. This how the internal kernel interfaces are
prevents any closed-source module always changing, unlike other Will 2.7 ever happen?
from using these interfaces, and slowly, operating systems that have a well Back when the kernel developers
over time, will choke off all defined and stable in-kernel interface decided to stick with one kernel tree,
functionality from them. A good for them to use. a number of big features were
example of this is the driver core and The Linux kernel programming mentioned that might lead to a 2.7
sysfs interfaces, which are not interface changes frequently for a tree to fork from the main kernel. Two
available to closed source modules. reason: the kernel developers routinely of those features were four-level page
change how the kernel works tables, and a rewrite of the kernel’s
Letter of the law internally, fixing bugs, security time subsystem. However, the 2.6
As if that weren’t enough to dissuade problems, or extending it in new ways. kernel tree now has four-level page
errant coders, legal action has been To do this in an efficient manner tables (allowing virtual memory usages
initiated by the kernel they do not keep old interfaces, but in the terabytes), and there’s a rewrite
developers where closed remove them or change them, then fix on the cards for the kernel’s time
source modules have up all uses of these interfaces at the subsystem, with code waiting to go
been shipped by Linux same time. This lets the Linux kernel into a future kernel release.
distributions (as it is not stay as small as possible without It turns out that by not having a
legal to redistribute a closed breaking any drivers that are development kernel tree, where
source Linux kernel module, contained within the kernel source developers are free to tinker with
as per the rules of the GPL tree. It also forces developers to move whatever they want, the developers
licence of the kernel.) This their code into the main kernel tree, are forced to be very careful with what
they do. Although there have been
JOIN IN! some major changes to the way that
the kernel works, any improvements
Do you want to help out with kernel development, but don’t http://selenic.com/mailman/listinfo/kernel-mentors. This will
have only come about by steady,
know where to begin? If you have a solid understanding of help developers learn the proper rules of the road when it
incremental change.
the C language and know how to build and install a custom comes to getting their changes accepted into the main kernel
kernel, try looking at the Kernel Janitors project at source tree. This has enabled these very big
http://janitor.kernelnewbies.org. It contains a list of easy, And if you’re keen to do it all on your own, you should start changes to happen within the middle
‘janitor’-type projects that are very helpful to developers who out by reading the Linux kernel coding guidelines at http://lxr. of a ‘stable’ kernel without users
are just starting out. The mailing list for the project will help linux.no/source/Documentation/CodingStyle. Then check out noticing any bad side-effects. The new
you find out proper procedure and format for generating a the directions on how to submit individual changes (http://lxr. model is pushing the kernel
kernel change and sending it off for inclusion. linux.no/source/Documentation/SubmittingPatches) and whole
developers to become better
For developers who just need a gentle nudge in the right new drivers (http://lxr.linux.no/source/Documentation/
engineers, which can only lead to a
direction, the Kernel Mentors project is available at SubmittingDrivers).
faster, more stable operating system. LXF

60 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.kernel 60 23/9/05 3:56:11 pm


INTERVIEW RICHARD HIPP

THE LXF
INTERVIEW

perfectionist Richard Hipp


LXFtrumps
If you’ve heard of the database engine SQLite and
would like to contribute… good luck. Its author
Richard Hipp is very, very picky. He tells us why.

L
Created the SQLite earning SQL and database about sponsorship from AOL,
ase
embeddable datab ones, normalisation are difficult coding standards and life in the
tem po pu lar in ph
sys
gly
PDAs, and increasin Won topics for computer public domain...
in desktop software. students, but how much
the Best Integrator Source award harder is it to learn how to LXF: Let’s start at the beginning:
UK LTD

en
Google/O’Reilly Op his work.
at OSCon 2005 for develop your own database Dr Hipp before SQLite. When did
44
MOVES

management system then release you start getting interested in


AGE eri ca n
Am it to the close inspection of the databases?
NATIONALITY
URTESY: WINNING

UX 12
YEARS USING LIN 7
wider world? Dr Richard Hipp did RH: When I came out of graduate
OGRA MM IN G LANGUAGES 1 just that when he created SQLite school with my fresh PhD in 1992 –
PR l work
S On ly 5 tha t stil
NUMBER OF PC 1 cup
(pronounced Ess-cue-ell-ite), which
TAKE
DAILY COFFEE IN a time
is one of the most successful public LXF: That was in computer science,
at
TOP TRUMPS CO

D 1 pa ir
SANDALS OWNE We’ve
domain software projects around. wasn’t it?
rket’s saturated.
HE SAYS “The ma ady”. We caught up with Richard at RH: Yes, I took a Master’s degree in
source products alre
got excellent open
OSCon and had a poolside chat electrical engineering and computer

62 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.hipp 62 16/9/05 4:59:55 pm


INTERVIEW RICHARD HIPP

ON STANDARDS

“People send me patches and things, and I RH: No, that was a one-time thing. In
fact AOL doesn’t even pay for support,

appreciate the idea, I really do, but I think, though because they did give us that
funding, whenever they call I jump

‘You haven’t really though this through’.” through hoops to help them. But
technically that contract has long since
expired. I’m led to understand that
they are very happy with the product
science. So I came out of graduate so I think I’ll just write up my own still a string. But it was good enough at and continue to use it, though I do not
school and at that time there was this database engine cause that’s always that point for people to notice it. PHP know exactly what they’re using it in.
enormous glut of people applying for a great way to learn how things picked up on it –
jobs as faculty, university. And so work.” And that’s how SQLite started. LXF: So in terms of the file format
there would be an opening for one LXF: 2.8 it was then, wasn’t it? changing it’s obviously quite a bit
position and there would literally be LXF: So that’s how you got into it... RH: Yeah, they got 2.8. Apple first different from version 2.0. Was it
500 applications. And of those about RH: Yes, I did not study database noticed when it when it was at version really necessary to rewrite the
475 were more qualified than me, so theory, I had zero courses in 2.7 or 2.8. A lot of people started btree layer?
I quickly recognised where this was database. When I was at university I using it. RH: Well, no. I just incorporated all the
going and I just decided to go in was browsing the library once and But then AOL came along and lessons learned, is what it came down
business myself doing consulting came across a copy of... the SQL-89 they wanted to use it for some of their to, and I wanted to relax the
work. I developed a good practice Standard I guess it was, and I read products, and they said, “Hey Richard, constraints. In the old version I had a
where I would work with a client for over it and I thought, “Well, that’s we need to support international hard limit of 16MB, and now there is a
years on end... they would have a nice and all, but I don’t see any languages and we need some other practical limit of 264 [MB] or
hard problem and I would develop application to what I’m doing,” but features.” I’d been planning to do something like that. There were a lot of
solutions to problems that really then I came back to it ten years later version 3.0 and fix all the problems lessons learned and I had been
hadn’t been solved before, not your and what I was doing had shifted and that I had, so I told AOL, “I’m gonna accumulating these over the previous
IT kind of jobs, but engineering types it made some sense. do that, it’s just a matter of time – it’s couple of years: “When I redo the
of computation. gonna be about a year, I’ll have btree layer I’m gonna do this
I was working on one of these LXF: Was it always planned to something by June of this year”– this differently.” But I couldn’t just do it
[problems], and you know, businesses throw the first release away? Was was 2004. And they said, “Can we pay incrementally because each one of
that buy services are never a it pretty dire, or something, is that you to expedite your schedule?” So I those changes would have been
monolithic entity, there are always what you’re saying? said, “Sure,” and gave them a number. incompatible and I wanted to preserve
factions within the customer RH: No, it wasn’t, I mean, version 1.0 compatibility; you know, I thought,
organisation, and one of them just used GDB for the storage so it had LXF: And did you hit the deadline? “When I go to 3.0 and make that
insisted that this thing be driven by a multiple files, you had one file for RH: Well, Dan Kennedy worked with clean break I might as well get this all
database. And because of legacy each table and index. And it didn’t me closely on it. Dan used to work for in here at once.” And that was the plan.
constraints it was an Informix have transactions because GDB a company in Brisbane that used
database, running on legacy doesn’t support that. Also there were SQLite, and he had sent me some LXF: It almost seems a shame that
hardware and an HP-UX system. a lot of things I couldn’t do because patches, which were really, really good Apple and PHP picked it up before
Informix ran fine on HP-US, and did GDB is a hash-based thing, it doesn’t – he does really good work – so I got version 3.0.
everything it needed to do, but keep things in sorted order, so I him to help me and together in a RH: Apple started working with it at
sometimes they would power the couldn’t take advantage of indices couple of months we went from 2.8 but it’s three-point-something
system down and bring it back up, using any quality constraints, there nothing to version 3.0. We wrote the that’s in Tiger. They made the change
and the Informix database would not were a lot of permutations there. I btree back-end and rewrote all kinds because they could do it in time. But it
come up correctly. Then the program really needed to go to a btree-based of things and worked around the clock didn’t come out in time for PHP.
that I was writing, together with system. I looked at BerkelyDB, and I for two months pretty much but we But version 3.0 is in the PDO [see
another group, would get error spent a day or two days just reading made the schedule. And that was the PHP tutorial this issue on page >>
messages and couldn’t connect to the documentation, which went on version 3.0. 90] stuff of PHP.
the database. Because I was doing and on. After a couple of days of
the user interface I got the blame reading that stuff I thought, “This is LXF: SQLite 3.0 was very, very
even though it was the Informix really complicated”– you know, the different. The file format changed,
server that didn’t come up! We talked API – “I think I’ll just write my own.” which is probably a result of you
about it and said, “What we really So I pulled Cummings off the shelf writing it from scratch, and AOL
need is an embedded SQL database and read what he had to say about it, obviously provided some funding –
engine that just reads data out of the sat down and designed my own btree RH: AOL permitted me to devote full
file and still handles the SQL.” layer. And that led to version 2.0. time to it, because I didn’t have to do
That project ended and we didn’t You know, I’m still learning while other things to make a living, and it
take action on it in the end, but I’m doing all this, so version 2.0 was... also permitted me to pay Dan to work
during a period when I didn’t have well, I did a lot of things wrong with it with me on it.
any work later on I said, “I’m going to initially, but it eventually got to be
get busy and write that. I’m curious pretty good – by about version 2.7, LXF: Is that help still ongoing
how an SQL database engine works 2.8 it was pretty nice. Everything was from AOL? >>

www.linuxformat.co.uk LXF73 DECEMBER 2005 63

LXF73.hipp 63 16/9/05 5:00:57 pm


INTERVIEW RICHARD HIPP

>> LXF: Tell us about releasing SQLite domain. It just goes on and on about appreciate it, I really do, but I have
into the public domain. how they renounce all future rights to very, very specific ideas of what the
RH: Well, version 1.0 was GPL. And it this and all of that. It’s based on the code should look like, how it should be
had to be because it depended on Creative Commons licence. commented, how it should be
GDB, which was GPL. So we were indented... And it’s more than how it
coming up on version 2.0, and I LXF: Do you get many contributors looks, it’s how it’s structured. A lot of
thought, “What licence should I use? I to the project? people send me patches and things,
could do LGPL, but it’s kind of RH: I went in to the CVS tree two and I appreciate the idea, I really do,
restrictive, or I could do a BSD-style weeks ago and did a study to see how but I think, “You haven’t really thought
licence.” But I looked at that and much code had been contributed by this through, you haven’t simplified the LXF: You’re just a picky
thought, “What’s the point of the BSD whom. I counted lines of code, and code to the extreme, you haven’t programmer, are you?
licence? What does it really give you? 69% of the code came from me. refactored it three or four times...” I like RH: The reason I’m so fussy about the
Why not just put it in the public Thirty per cent came from Dan to make code as simple as possible. code and insist on commenting on it
so well and making it so simple is to
ON RELEASING INTO THE PUBLIC DOMAIN compensate for my own mental deficit
– I have a notoriously bad memory
“Putting the code into the public domain, and if I don’t structure the code very
carefully and make it very easy to
that was a big step. It was sort of like read, I’ll forget what it does in a couple
of weeks!
marrying off your firstborn.” But also, when I was first looking at
databases I was curious about how
databases and database engines work.
domain and be done with it?” Because Kennedy. The other 1% was divided LXF: That’s one of the things that I went reading about things like
with the BSD, anybody can take it and among I think six other contributors, people always talk about with PostgreSQL on the internet, and it
use it for whatever they want, so just the largest of which was half a per SQLite. It’s one of the few open takes six or nine months of study to
give it to them, make it explicit... cent. So it’s really mostly me there. source projects that has very really understand what this does. I
renounce this whole copyright thing good documentation and that is wanted my program to be something
altogether. So that’s what I decided to LXF: Would you say that perhaps actually very well formatted and that somebody could just pick up, who
do. Now, since that time a lot of the public domain licence turns commented. You can actually was just curious about how these
lawyers have come to me and said, people off? jump into the code and understand things work, read through it and say,
“Well, there’s liability, someone could RH: From contributing? I don’t know. I it, which is a real surprise in “Now I understand better how a
come and sue you,” but I’m sceptical of can see how the BSD licence seems today’s world. database engine is supposed to work.”
these arguments. to really hurt OpenBSD. My theory is RH: That is my goal…
that Linux took off when OpenBSD did LXF: Which is I think one of the
LXF: Well, it’s in the public domain! not simply because Linux is GPL and LXF: And does that have anything goals of free software: to be able
RH: Yes, that’s not going to play well people feel free to contribute to it with to do with it being public domain? to learn from other source code.
to a jury in my mind. Someone pulls in the certainty that no one was going to I mean, if your code wasn’t RH: Yes, I try to keep the comments
some public domain source code and abuse their work. commented, there’d be a lot more helpful. If the comment exists as a
incorporates it in a larger application, But I think the real reason that not reliance on you, but by making the huge hack I’m thinking, “Well, why is it
and that larger application fails and many people have contributed to code completely stand by itself – in here? Take it out.”
somebody gets hurt and they’re gonna SQLite is because I’m so incredibly RH: People should not and do not
blame me for that? That’s a real fussy about the code that goes into have to call on me. Yes, that’s true. I LXF: What kind of new features
stretch. Even in an American court the core. And that’s more to do with don’t know that it was a conscious are you working on for SQLite 4.0?
that’s a real stretch. So I’m not real me than anything. People send me choice when I started doing it, but I’m RH: Actually I’m really hoping that I
worried about it. code all the time and I really do aware of that now. never get to 4.0. The only reason I’d go

LXF: So how did you find going


from GPL to public domain? Or
were you the only person really
contributing to the code?
RH: I was the only contributor, so I
could do what I liked. At that point
when I made the transition every
single line of code came from me.

LXF: How big was it at the time?


RH: Maybe 20,000 lines of code.

LXF: So people who submit code


for SQLite now sign something?
RH: I’ve got a form that they have to
fill out, dedicating it to the public

64 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.hipp 64 16/9/05 5:01:21 pm


INTERVIEW RICHARD HIPP

to 4.0 is if we had an incompatible file LXF: Presumably, memory capacity


format change. is going up a lot faster than
battery power.
LXF: So in ten years’ time it will RH: Probably so. But as memory
be 3.9.9.9.6.3... capacity goes up they start putting
RH: Or whatever, yes! Right now I’m [SQLite] into smaller and smaller
making some changes to the query devices. So now it’s no problem to put
optimiser. It’s picky about choosing it in a set-top box, but to go into your
indices; it needs to do a better job of cellphone, wristwatch or smartcard,
making good choices. Traditionally which is what people are doing with it
SQLite has been pretty weak in that now, you’re back to square one again.
area. If you write the query correctly
you’ll do a real good job with it but it LXF: That simplicity comes across
doesn’t spend a lot of time analysing in the way that SQLite handles
the query and trying to find the best stuff. For example, you say, “This is
way to do it. Whereas I hope that the an integer, this is a big integer, this
big commercial client–server enterprise is a string”, and it says, “Yeah,
database systems spend a lot of time whatever.” As far as I’m aware it
trying to optimise these queries. ignores the lot. Is that a feature or
I’m actually getting a bit of funding something you want to change?
from a company and that helps me to RH: I think of it as a feature. I like it
work on things without having to worry very much because I do most of my
about making a living otherwise. development work for clients in
Once I get [the query optimisers] scripting languages, mostly Tcl/Tk, and
going well, I want to get in some it does the same kind of thing.
semblance of referential integrity and
support. That’s just stuff I’m doing, I’m LXF: Just to clarify: it treats language background and it made a RH: I’d love to find a bunch of Dan
not getting paid for it. everything as a string? lot of sense to me just to allow you to Kennedys. I guess I’m just really fussy
RH: Version 2.0 treats everything as a put anything you want into any and I’m looking for the very best talent
LXF: Do you ever see yourself string. Version 3.0 makes the variable, because that’s what you do in that’s out there, and the very best
supporting SQL 92 queries; heck, distinction between integers, floating a scripting language. people are already working on other
99 – let’s go the whole hog! point numbers, strings and blobs things. It would be great if I could
RH: I’m not trying to make a product [binary data objects]. But it allows you LXF: So that ‘feature’ is by design. develop some more people, and get
out of this. I sell services, not products. to put any of those four things in RH: People keep coming to me and some people to contribute. You know,
And the people who are coming to me different rows of the same column. In saying, “When are you going to fix my name appears nowhere in the
for services are using SQLite in a traditional SQL database you declare that?” Well, it’s not broken! I think a lot source code.
embedded devices. Their primary a column to be ‘short int’ and can only of it is just institutional resistance. SQL
concerns are low memory usage and put a short int there. With SQLite you has always been done this other way, LXF: “If you have complaints, just
low power consumption. So I’m really, can declare a column ‘short int’ and and now I’ve sort of extended the email dan.kennedy@...”
really focused on maintaining both of put anything you like in there. design to allow you to do these other RH: Putting the code in the public
these because they’re good customers things and it’s “We’ve never done it domain, that was a big step. It was sort
– they keep coming back to me for LXF: If you can put a string into an that way, this isn’t really SQL”. of like marrying off your firstborn. It
consulting help and I want to make integer field, is it really an integer was really hard to do because I put so
sure they stay happy. A lot of the SQL field? That’s the question. LXF: Where do you see your role in much time into that and I really did
99, 2003 – whatever the latest entity RH: Well, to my mind the whole SQLite being? release it, I intentionally went through
is – would cause [the device] to bloat business of all the strong type in SQL RH: I want to keep doing what I’m and removed my name. It’s more than
up and run slower so I’m really going is a bug in the design of the language. doing right now – just kind of just a legal thing: I really let it go. And
to resist that as much as I can. I contend that it was put there initially maintaining it. SQLite doesn’t take a lot I’m trying to continue to do that, to let
so that implementers could determine of maintenance work because it it go. And that sounds incompatible
LXF: SQLite is really, really fast, in advance how much disk space they doesn’t give a lot of problems. with this pickyness I have in terms of
and it’s also really, really small. If needed for a single row. Because they I’m trying to build up a lot of other who can contribute, but it’s not,
it came down to it, which would were unwilling to go to the extra people to support it so that if I get hit because I’m not trying to protect my
win out? trouble of writing disk access routines by a bus on the way home someone code, I’m trying to protect the public’s
RH: I don’t know. The embedded that could have variable record sizes; else can take it over. Dan Kennedy is code. LXF
customers want both. Fast in the sense it’s much harder to do. So it’s a part of more than capable of doing anything
of low power consumption. It does its the implementation showing through – that needs to be done, he’s sort of my Go to
work quickly and then it finishes and backup at the moment, but it would www.linuxformat.
stops draining the battery. Small, LXF: Outdated, really. be nice if there were a bunch of co.uk/mag/hipp.html
for more of Richard’s
because they’ve got small memories, RH: It’s a database: it’s designed to people that understood the code well
thoughts on XML, MySQL,
both Flash and RAM, and they’re store data, not to tell you how to enough that they’re really comfortable
and whether SQLite has a
accounting for every byte. “Oh Richard, format your data. That’s my view. There just going in and fixing problems. place in enterprise.
can you save us 12 bytes here?” “Sure, are opposing points of view, to put it
why not?” nicely. But I come from a scripting LXF: Is that what your goal is?

www.linuxformat.co.uk LXF73 DECEMBER 2005 65

LXF73.hipp 65 16/9/05 5:01:29 pm


FREE VS OPEN

Free
freedom
as in

Is open source really the same as free software?


Paul Hudson doesn’t think so...

G
NU, which stands for GNU’s The movement for open source Palo Alto, California. software’ on solid pragmatic grounds
Not Unix, is the name for the software, a term that many people The attendees rather than ideological tub-thumping.
complete Unix-compatible interchange unthinkingly with the included Larry Wall (Perl), Brian The winning substance has not
software system I’m writing so phrase free software, can be traced Behlendorf (Apache), Guido van changed, the losing attitude and
that I can give it away free to back to 1997. That’s when Bruce Rossum (Python), Eric Allman symbolism have.” One of the central
everyone who can use it.” Perens and the Debian Project ratified (Sendmail), Paul Vixie (Bind), plus beliefs of the OSI was and still is that
And so begins the GNU Manifesto, the Debian Social Contract, which Linus Torvalds, Eric Raymond, and Tim the term free software is too
written by Richard Stallman to ask for included the Debian Free Software O’Reilly himself – all notable hackers ambiguous to be useful, and they will
help and support at the beginning of
the project. That was 20 years ago,
and although we’re still without the “THE OSI BELIEVES THAT THE TERM ‘FREE
GNU/Hurd OS he embarked on, free
software is more widespread than ever SOFTWARE’ IS TOO AMBIGUOUS TO BE
before. But things are changing.
USEFUL, AND IS IN LONG-TERM DECLINE.”
THE FOUR PILLARS
Guidelines (DFSG). These guidelines and speakers who had released work happily tell you that free software is in
OF FREEDOM detail what is acceptable for use in the under free licences. The result of this long-term decline.
The four things that a licence must Debian distro – software must include meeting, and the others preceding it, The “winning substance” has
grant to be considered free: source code, must not discriminate was the creation of the Open Source indeed changed, because it turns out
■ You must be free to use it freely as against persons or groups, must allow Initiative (OSI), a group that aimed to that the attitude and ideological tub-
you see fit. modification and so on. promote and expand open source thumping are what made our
■ You must be free to read the source development. movement great in the first place.
code and accompanying resources. Freeware Summit 98 Having the terms open source and Without them, open source is just
■ You must be free to be able to The hacker and writer Eric Raymond free software bandied around in the another kind of software development.
change the source code as you want. soon crystallised the essence of the same discussion certainly leads to
■ You must be free to distribute the DFSG into the infamous ‘Cathedral confusion, so you may well wonder Frantic semantics
source code and binaries to others. and Bazaar’ presentation he gave at why the group needed to coin the It is increasingly apparent now that
It should be clear from reading this list the Linux Kongress in May of the term open source at all. Though in its free software and open source are not
that free software is inherently also open same year. Then, in January of 1998, narrowest sense it meant code being the same thing. Not convinced? Well,
source software, because you must be Netscape released the source code to open to view, it was taken on to give first you need to forget the OSI’s FUD
able to read, change and distribute the Netscape Navigator, citing Raymond’s the movement a less ambiguous, that free software is confusing or
source code as you please. However,
presentation as a key driver. more business-friendly face. In the ambiguous, because if you think about
not all open source software is free
software, because you may not have
With all this buzz about free OSI’s own words, “the Open Source it you’ll see that open source is just as
rights to modify or distribute it. software, in April 1998 O’Reilly Media Initiative is a marketing program for bad – as is just about every other
set up a special Freeware Summit in free software. It’s a pitch for ‘free combination of words that try to get

66 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.versus 66 22/9/05 10:46:27 am


FREE VS OPEN

it has a hard time adapting to the new sure, but they also want the overriding point where onlookers doubt whether
ON LICENCES paradigm: open source has really hit freedom to use computers however it really is GPLed.
Although licence propagation is a the big time thanks to the widespread they want to, without companies Another hurdle we’re now just
serious problem, equally we don’t rise of the internet. “laying the smack down” with the long starting to see is that of intellectual
believe that everything can be boiled However, open source has brought arm of the law. property. Here at Linux Format we’ve
down to just two licences: we love the with it a plague of truly biblical Part of this tub-thumping is the struggled with trademarks for some
BSD licence as much as the next geek.
proportions: licence proliferation. belief that one should use free time as we try to ship distros (most
Whereas the Free Software movement software rather than proprietary notably Red Hat and SUSE) on our
our point across. This is why you find aimed to centralise the community software, even if the proprietary coverdiscs, but now the wider world is
things like FLOSS, which stands for around one or two software licences software is better. When Linus migrated having to sit up and take notice
Free/Libre Open Source Software, as (the GPL and the LGPL), the OSI now to BitKeeper, he did so because he because of licence fees for companies
people keep on trying (and failing) to recognises approximately 60 open- thought it the best source code using Linux in their product names. Is
nail down exactly what we mean. The source licences. When something is manager available. But with BitKeeper this the freedom we wanted? In the
Windows source code got leaked over licensed under the GPL, most people being proprietary, when people started open source world, several of the
the web last year, effectively making its will know what freedoms that gives looking at creating a free version of it OSDL’s biggest sponsors are huge
source code open to whoever wants it. them without needing to read the we got this choice quote from Larry proponents of software patents. Are
But download it, read it, modify it or licence file. But what freedoms does McVoy, the founder of BitMover, which those the bedfellows we wanted?
even think about doing any of the the Intel Open Source licence grant produces BitKeeper:
above and you’ll probably wind up in you? How about the Apple Public “If you are trying to copy BK, give The future of freedom
jail. I don’t just want open source code: Source License, or the IBM Public it up. We’ll simply follow in the It should be clear to everyone that
I want the freedom that ought to License, the Sun Public License or the footsteps of every other once we give up freedoms, they are
come with it. In Richard Stallman’s Sun Industry Standards Source company faced with this sort of tricky to claw back. People who are
words, “a person who has grasped the
idea of free speech, not free beer will
not get it wrong again.”
With petty things like naming out
“LICENCE FEES FOR COMPANIES USING
of the way, let’s focus on the actual ‘LINUX’ IN THEIR PRODUCT NAMES:
substantial differences between open
source and free software: the attitude IS THIS THE FREEDOM WE WANTED?”
and the symbolism.
Attitude isn’t an easy thing to discuss, License? Does one company really thing and change the protocol shortsighted enough to think that
but we could put it succinctly by saying need two licences of its own if the every six months. Since you open source is really just a nice way to
that open source is a great way to definition of Open Source is so simple? would be chasing us you can write code need to think about the
develop good software quickly, whereas Fortunately for all of us, HP is never catch up. If you managed future. Should we really let the
free software is a great way to build a taking a strong stand against licence to stay close then we’d put contamination of proprietary code into
long-term, free computing environment. proliferation. Speaking at LinuxWorld digital signatures into the our free ecosphere to satisfy a short-
Linus’s Law, as defined by Eric Raymond, San Francisco this summer, Martin Fink protocol to prevent your clone term need? Should we be forced to
is: “Given enough eyeballs, all bugs are (VP Linux at HP) said: “If you’re out from interoperating with BK.” pay money to call software ‘Linux’?
shallow.” That’s quite true, and happens there and you’re a vendor and you’re Could anyone using BitKeeper ever be Irritating as some people seem to
to be the central tenet of open source: planning to create a new license, stop. free with that attitude? find him, Richard Stallman is at least
let everyone who wants to take part in a Please don’t.” Quite right: we need less Sometimes the use of proprietary reliable: you know he’ll always stand
project do so, and presto chango you’ve of the licensing obfuscation, and more software is a little more cunning. For up for free software, no matter what
got a development team raring to go. of the attitude back. example, many hardware his friends or sponsors might think.
Much to Microsoft’s annoyance, manufacturers now provide custom Perhaps if Ben Franklin lived today,
open source happens to work Creeping corporates drivers for Linux that require binary he might say that people willing to
remarkably well as a development As Chumbawumba will tell you, tub- modules in your kernel. Now, the GPL trade their freedom for temporary
model. But given that Microsoft largely thumping can be a good thing, despite outlaws non-free software linking to functionality deserve neither and will
ignored the internet until it had taken what the OSI might say. In the case of GPL software, so why is this allowed? get none. Which is, surprisingly for
off, it should come as no surprise that free software we can define tub- The free software folks explicitly some, precisely what the FSF has
thumping as the disallow it – but the open source guys been saying for a long time… LXF
FSF’s powerful don’t seem to bee to bothered by it.
ability to keep Eben Moglen of the Free Software HOW WELL-VERSED
topics at the Foundation said in our interview this
forefront of month: “I’m not sure whether the
ARE YOU?
everyone’s kernel is licensed under pure GPL or Do you know the difference between
attention, year in, something else. But when I look at the common licences?
GPL
year out. People historical behaviour of the kernel
LGPL
make so much developers and the product that they BSD
noise about free distribute I have the clear impression IBM Public License
software because that its licence is not GPL and only Apache
they really, really GPL.” So even though the developers Mozilla Public License
care: they want claim that Linux is licensed under the Artistic License

That’s a recorder, not a bong. the source code, GPL, it’s not being enforced – to the

www.linuxformat.co.uk LXF73 DECEMBER 2005 67

LXF73.versus 67 22/9/05 10:47:05 am


INTERVIEW EBEN MOGLEN

THE LXF

INTERVIEW

Super Linux evangelist! Software freedom fighter!


Defender of the GNU and the Open Source Way!
No, it’s not Linux Lass – it’s Eben Moglen…

A
s professor of law and legal history at
Columbia Law School, the general
counsel for the Free Software
Foundation and the founder of the
Software Freedom Law Center, Eben
Moglen is a very busy man indeed. Add
to that his commitment to oversee the creation of v3
of the GNU General Public License, and you’ll
understand why it was that we counted ourselves lucky
to get a tiny timeslice of his schedule in which to talk
about GPL 2, GPL 3 and other licences upon which
the free software movement stands.

68 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.moglen 68 19/9/05 5:54:35 pm


INTERVIEW EBEN MOGLEN

ON THE LINUX COMMUNITY:

“The Ubuntu users group of Soweto, and Nokia, IBM, the


Brazilian minister of culture, the Chinese Communist
Party... What links all these people? Only the GPL.”

LXF: You’re here at LinuxWorld You can’t tell, right? We have people will suddenly begin to BSD licence or the MIT X11 licence.
San Francisco to talk about GPL identified as many as 8,000 understand – we live here together. If you just want to say, “Here, take
version three. What are you organisations around the world that it, do whatever you want”, you can
going to talk about exactly? may also have an opinion about LXF: I guess you already have a write it even more briefly. The fact
Eben Moglen: I want to tell people GPL 3. I think it’s going to be a very rough idea of what you’d like to that GPL has to have a little more
what’s about to happen, because large conversation. And one of the see. I think a lot of people see it stiffness in it and a little more
it’s time to tell people it’s coming, things I think characterises that as being GPL 2 with patents. design means it has to use a few
there’s a schedule and here’s how conversation is that the parties who EM: Ah, well... How about GPL 2 with more words; but we’re not going to
we’re going to start building the will come to that conversation know the globe? How about GPL 2 with a end up with a 15-page licence,
process to make it work... in some abstract way that it’s a big big world of people speaking 85 that’s not going to happen.
diverse community we live in, but languages contributing to GPLed
LXF: So there is a schedule? they’ve no idea how big: they’ve projects? How about GPL 2 with a LXF: Do you forsee any confusion
EM: There will be a schedule, yes – really never all met before. And hovering difficulty of “treacherous surrounding the transition from
mind you, there’s a world out there when the Ubuntu users group of computing”, as Mr Stallman calls it. 2 to 3? Version two of the GPL
that could interfere. Soweto, and the Kazakhstan How about GPL 2 with a load of web does say “any future version”,
Developers Association, and Nokia, servers? I mean, there are a lot of but some projects – notably the
LXF: On the one hand this, on IBM, the Brazilian minister of culture, different areas in which different Linux kernel – have opted out.
the other hand that... the Chinese Communist Party... What people have different concerns. EM: I think there will be minimal
EM: As presently advised I believe links all these people? Only the GPL. Yes, the patent problem is confusion, because there will have
that the Free Software Foundation obviously a very serious problem and been a long public conversation
will release the first discussion draft LXF: So you’re expecting it to be a a lot of people will look to the licence and there will be – I hope – no
of GPL 3 in the first days of 2006; big deal for the community? discussion to fix it. Although they’ve reseller or developer or distributor
I think we will have about a year of EM: It will turn out to be a socially also been reading Mr Stallman for of GPL software who doesn’t know
public discussion and comment; transformative fact that the years telling them nothing will fix the that licence change is going on. I
and we (I hope) will be in a position stakeholders of the GPL are as large patent problem except changing the think your question’s predicate is
to formally promulgate the new and diverse a collection of people as patent system. And to the extent that right: the automatic re-versioning
licence at the beginning of 2007. anywhere on earth, in any enterprise people are hoping the licence clause will take care of the bulk of
or activity they share. We talk all the contains magic, I think it’s important projects. Those projects that were
LXF: Are you expecting lots of time about community, but when you to point out that magic isn’t what we labelled GPL 2 only will have to
feedback? begin to talk about something on did. Good social design is what GPL 2 make decisions about whether to
EM: Yes. We’ve been studying some that scale I think the correct word is did; it didn’t do magic, and GPL 3 switch. And depending on how that
examples of large-scale society. It’s a free software society. won’t do magic either. project is internally governed and
e-deliberation internet [discussions] And to have a society-wide constructed that may be easy or it
on W3 patent process, the next conversation, to make a society-wide LXF: But GPL 2 is also very short may be difficult.
kernel mailing list, the Debian political decision – in the true sense and easy to read... We will work with developers of
process... On the basis of that, and of politics – that’s a unique event. EM: I would certainly expect GPL 3 GPL projects, and in particular
some other extrapolations I’ve I think when it’s all over people are to be not much longer and not any developers of GPL 2-only projects.
done, I think that there may be as going to say: “It’s a better licence, harder to read. That must not We will include them in the
many as 150,000 people who want but in a way the licence was the least happen. This is a licence whose conversation by design, and we will
to express an opinion on GPL 3. of it. It was the coming together and characteristic was that it was help them to make the best
seeing how big and powerful and addressed to developers, laypeople. possible decision about what
LXF: And of those, how many do diverse we are that was the real Individual software developers licence to use. Those are individual
you expect will be flames? experience.” So, I think actually it’s around the world, here is a licence developers and they have freedom
EM: That’s a good question, and possible that the quantity of flaming that you can use. It’s got to stay that to choose, and GPL 2 is a licence >>
that’s up to the people themselves. will go down over time, because way. Of course it’s longer than the they could choose to use. But I

www.linuxformat.co.uk LXF73 DECEMBER 2005 69

LXF73.moglen 69 19/9/05 5:55:00 pm


INTERVIEW EBEN MOGLEN

LXF: Who’s going to do that?


EM: Jimmy Wales is a member of the
Free Software Foundation board, and
he and Richard [Stallman] and I have
been engaged in discussions recently
about what GFDL changes might be
valuable for the Wikipedia kind of
application. So I think that a revision of
GFDL is coming, which I think will
address outstanding concerns – all
outstanding concerns.
I regret that some flaming went on
that made it difficult to make progress
for a while. All I can say is that as
usual I think there’s no need for that. It
may be that some time needed to
pass in order for tempers to cool
before people could see their desire
to get to a common outcome clearly.
But I hope that the GFDL lesson
has perhaps been misinterpreted as a
suggestion that you couldn’t get
agreement, or that apparent
agreement about GPL was more
fragile than it is or something of that
>> think when it is all over that we will be what licence to apply to the kernel, reflect what’s happening now. sort. Without speaking out of school I
able to convince people that there is and they make them well. I must say LXF: Well the other big licence do think that the GFDL isn’t as
nothing that they gain by staying with I’m always impressed by the degree to that the FSF stands for is the Free beautifully elegant and well designed
the old licence, and much to gain from which the kernel developers seem to Documentation licence, which was a licence as the GPL. I suspect that
moving to the new one. be able to thrash things out, and do so determined as being ‘not free I’m not the only person in the world
with good faith and in an efficient way. enough’ by the Debian project. who thinks that. That means that
LXF: So if we take the kernel, or I think that the re-licensing of the EM: Yes. I should say that we have there might be some benefit in the
another project that’s stuck with a kernel (if that’s what they decide to refrained from pointing out too often – long run to a comprehensive redesign
version 2-only licence: if they do) will occur in a pretty smooth and or too publicly – that we tabled some of the GFDL in a way that I don’t think
decide they’re going to re-licence, simple form also. proposals to Debian, quite a long time a comprehensive redesign of the GPL
does it become a matter of ago, which we thought addressed their is necessary in order to make it
contacting every contributor and LXF: It’s been a testament to good concerns fully. function well in the kernel. The GFDL’s
asking their permission? work, surely, if version 2 lasted for I still believe that we will fully a more problematic licence. And yet,
EM: Well, that depends on the terms 15 years. address the concerns of the Debian at the same time, [there’s] a smaller
of contribution agreements or other EM: I agree with that. Not only 15 project with respect to the GFDL as community of people who need to be
arrangements inside the project, the years, but six orders of magnitude part of a general process of updating. consulted. I think we’ve learned a lot
licence doesn’t tell you the answer to difference in market value of goods The GFDL now licenses Wikipedia, and will do a better job in future.
that question.
I would say that the question about
ON GPL 3: LXF: The cover text and
the Linux kernel is a question that invariant section provisions
should be put to the Linux developers:
“How do you choose what licence to
“There is nothing to gain by seemed quite unpopular…
EM: The cover text provisions
use and what’s your governance
process?” And I wouldn’t speak for
staying with the old licence”. of the GFDL are there to make
it possible for Tim O’Reilly and
them. Mr Stallman, were he here, other such publishers to make
would want me to emphasise that they a commercial business out of
have entire freedom to do whatever being moved, four orders of which means that it is being used for a publishing free software manuals
they want – it’s up to them. magnitude difference in the number of form of communication rather under GFDL.
There’s nothing in the FSF that people involved, three orders of different from the technical manuals Those people needed to be
gives them any power to affect that magnitude difference in how many for which it was designed. And as assured that if they published a book
decision at all. I would say, as an projects – yeah, I think it’s a pretty Wikipedia grows to be the largest and in covers of their own branding that
onlooker, that I believe that even the sound testament to its design. most frequently consulted reference nobody could simply put their
Linux kernel (which, it is true, has a Moreover, I think it’s important for library on earth, which it will achieve commercially published book into a
very large and complex internal us to recognise that it will retire ‘with (it’s already more used than the Wall photocopier, bind it in the same cover
process of developers) knows how to the title’. It’s not that GPL 2 will be Street Journal, which tells you and send it out into the world. Tim and
make decisions of this kind with pretty taken out of service because it failed – something), some changes to the others made clear that was what they
good grace. The kernel developers it will never fail. It will just be replaced GFDL for the benefit of wiki-like needed, and the licence was designed
make harder decisions every year than fruitfully before it gets too old to applications are probably a good idea. to accommodate them in that.

70 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.moglen 70 19/9/05 5:55:20 pm


INTERVIEW EBEN MOGLEN

With respect to the invariant and some forms of linkage from people to do that which the FSF also LXF: The rub is whether it’s
sections provision of the GFDL, I note kernel to non-free code are permitted, thought they shouldn’t do. commercial exploitation.
– as maybe others have – that the only which the pure language of GPL might But it is not the sign of a zealot EM: In the long run, perhaps it is safe
invariant section ever used by the FSF not permit. Until the kernel developers loony to say: “I think people shouldn’t for musicians to permit even
was to put the GNU manifesto in the tell me, in writing that I as a lawyer do this, but I’m going to design my commercial appropriation of their
GNU Emacs manual. can read and understand, I don’t know. operating system to make it possible music on pure share-and-share-alike
But perhaps that showed not that But I look at their behaviour and I for them to do it.” Because we need to terms, as long as attribution is given.
that was the purpose for which it was think that they want some people to move by persuasion rather than force. Because maybe it’s true that in that
put there, but rather that Mr be allowed to do some things, and it’s I would contrast that with what’s on system, musicians don’t lose. But if
Stallman’s design expected more use their kernel, so they have a perfect the other side of the story – the they think they do, why not afford
of a feature than it actually got. When right to allow people to do whatever people who have made sharing them a non-commercial use licence?
– whether it’s executable code or a they want. difficult, every way they know how, all Yet in the indie media part of the free
licence – you find you included a the time, as though there were software community there are people
feature that has very little actual use LXF: But wouldn’t it be to something not ethical about sharing. who object even to the non-
in the field and which disturbs the everyone’s benefit if that were Who’s the zealot now? commercial use elements of the
design in other respects, one thing you to be spelled out? Creative Commons licences as being
can do is redesign to remove the EM: It would be, I think, a helpful LXF: What are your views on the too big a compromise with unfreedom.
feature and accomplish the function in contribution to the stability of the Creative Commons licence set? Those people, and yet another
some other way. industry for them to say in a parsable EM: [Laughs] The Creative Commons group of people including Mr Stallman
and readable way what it is that they licence set includes many free from what I read, go further and
LXF: One thing I’m not sure of – is want – if they know. With respect to licences and a couple of unfree object very vehemently to the
it OK to use lines of code that the particulars of what you are asking licences. And I wish it didn’t include sampling licence and the developing
link to the kernel and tie in the about, I can’t give a legal opinion any unfree licences. nations licence and other non-free
licences in the commons, which were
ON CHANGE: LXF: That simple? also devised in the Creative Commons
EM: I think that the basic question community, in order to make an
“We need to move that Creative Commons has to answer
is a powerful, complex question. We
outcome more likely. Namely, a more
freely licensed or even non-freely
by persuasion rather are trying to change the way that
artists and writers and producers of
licensed but sharably licensed culture.
The question of how incremental
than force.” culture all around the world use the
copyright system, to encourage more
as opposed to how fundamental this
should be is a characteristic dispute
remixing and more sharing. And how among reform and revolution
binary kernel module in closed without looking at the facts and fully that change of mind can happen, movements all through history in every
source projects? I wondered if looking at the code and all sorts of and how fast, and how best to induce context, and I see this
that would be illegal, or at least other things. But there are a lot of creators to change their mindset one as a constructive Go to
against the thinking of the GPL. people who want to combine unfree about these questions, is a major disagreement over www.linuxformat.
co.uk/mag/moglen.html
EM: I’m not sure whether the kernel is code with free software operating strategic issue. strategy and long-
to read more of Eben’s
licensed under pure GPL or something systems and APIs. And under I think Creative Commons has term goals. LXF
thoughts on patent reform,
else. But when I look at the historical appropriate circumstances that’s chosen, understandably but not politics and the OSDL
behaviour of the kernel developers permitted and even designed for. necessarily wisely, to bring the law school.
and the product that they distribute I creative community along a
have the clear impression that its LXF: Shouldn’t you be keeping a step at a time; if necessary
licence is not GPL and only GPL. I closer eye on what sort of by accommodating the
think that for two reasons. licensing agreements the kernel community’s concerns
First, because I know that over the developers have in place? at any given moment
years there have been a lot of EM: The Free Software Foundation’s by offering less
different methods for putting shims position was made very clear from the freedom in licences.
[fixes] and binary modules in the outset that the FSF represented Many musicians, for
kernel and the kernel developers have people who believed it was unethical example, would feel it is
chosen not to enforce GPL. And so I to distribute software that users perfectly OK to release
take it that they are tolerating activity couldn’t understand, modify and share. their music under share-
that they might, under the pure face And I think that’s still very clearly the and-share-alike non-
of the licence, have objected to. FSF’s position every single day. commercial-use licensing but
Moreover I notice the GPL-only At the same time (and here people would be wary of releasing under
symbols and the taint mechanism in who tend to regard the FSF as sellouts a pure copyleft licence, because
the kernel, which makes it appear to or loonies somehow should look they think: “If Jaguar puts my
me that there is a technical API for again) even with respect to behaviour music in a commercial
distinguishing between permissible that the FSF made very clear it didn’t and doesn’t pay me I
and non-permissible forms of non- think was ethical, it certainly worked to will suffer.” They
free modules. make it possible. might be right,
The implication that I draw is that The very presence of LGPL from and they might
some non-free modules are permitted the beginning was designed to allow be wrong.

LXF73 DECEMBER 2005 71

LXF73.moglen 71 19/9/05 5:55:31 pm


TUTORIAL Online chat

FIRST STEPS LINUX BEGINNERS SERIES

Online chat How to use Skype,


IRC and Google Talk via Gaim
The launch of Google Talk and eBay’s purchase of Skype have pitched Voice over IP back and instant
messaging back into the headlines. High time for Andy Channelle to introduce you to online chat, then.

In the internet’s infancy, Yahoo, AOL and Microsoft all inventive hackers on various platforms created applications that

LAST launched their own versions of instant messaging (IM)


software. These packages – which were free to
could work with the various protocols. The Jabber project made
an early attempt at providing an open protocol for IM, but while
TIME download – could be used to conduct typed conversations over
the net. As the applications matured, new features were added
this has been a success in some circles, the big players were
still determined to retain control of their networks.
The LXF72 First Steps tutorial
such as the ability to send voice messages, files and emoticons In August Google stepped in with a (sadly) Windows-only IM
showed you how to set up a
– the little smiley (or otherwise) faces used to express emotions. and VoIP client built on Jabber called Google Talk. Fortunately,
printer from a Linux box and
discussed CUPS. If you missed
However, despite rumours of a compromise, these three as it uses Jabber, Linux users are not prevented from chatting
the issue, call 0870 837 companies refused to allow customers of other services to talk with their Google buddies since some of the ‘standard’ Linux IM
4773 or +44 1858 438795 to their customers. Each client used its own protocol, so AOL clients are capable of connecting to Jabber networks.
for overseas orders. Instant Messenger users could talk to other AOL users, but not And this is what we’ll look at first, before we go through a
people chatting on Yahoo Messenger or MSN. Imagine if BT brief Skype tutorial and set up with IRC. By the end you’ll have
refused to let its users phone Telewest customers! Fortunately, a range of options for chatting online from your Linux box.

74 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.tut_begin 74 22/9/05 12:04:55 pm


TUTORIAL Online chat

PART 1 – CONNECTING TO GOOGLE TALK WITH GAIM

server to talk.google.com (Google’s servers run on port 5222).


Hit the Save button to go back to the Accounts window. The QUICK TIP
new account should be added to the list, and you’ll now be able ■ Only Gmail users
to connect by hitting the Online radio button. can access the Google
Talk service. If you don’t
Adding contacts have a Gmail account,
Adding a new contact follows the same process as with most email andy.
other instant messaging accounts. In Gaim’s Buddy List window, channelle@gmail.com for
select Buddies > Add Buddy or hit Ctrl+B to open the Add an invite. This is a first
Buddy dialog. The Screen Name is the first part of your come, first served offer
Being a multi-protocol IM client, Gaim can communicate contact’s Gmail address, while the Alias is the name you want and is restricted to the
over a number of different networks. displayed on your side of the chat. You might, for example, want first 50 responses.
a contact with the Gmail address ‘bob.torvalds’ to be displayed
Gaim is an open source, multi-protocol instant messaging as Uncle Bob. The Group option can be used to keep work and
client. It was one of the big winners in Google’s Summer of leisure contacts apart (you can create new contact groups under
Code competition, which sponsored students’ work on open the Buddies menu), and the Account option should be set to
source projects, so it’s not surprising that if you’re using Gaim the newly created Google Talk account.
you’ll be able to connect to Google Talk with little bother. Once created, you can select a Buddy from the list and, if
From Gaim’s Buddy List window, select Tools > Accounts or they’re online, hit the IM button to open the Chat window. You’re
do Ctrl+A. This will open up the Accounts window, which should ready to begin talking.
display every active account you have. Click on the Add button
to open the New Account dialog box. Ensure that Show More
Options is selected. Choose the Jabber protocol from the drop-
down list, then add the following:
Screen Name: <Gmail user name>
Server: gmail.com
The Gmail username should be entered without the trailing
‘@gmail.com’ element.

>>
Add Google buddies to your Contact book.

GOOGLE TALK ON KOPETE


Kopete is a full-featured alternative to Gaim, coming (you won’t be suprised to read) from the
K-tastic KDE stable. Setting up Kopete involves using the same information in a different way. For
example, the Jabber ID and server, separate in Gaim, should be input into the Jabber ID field in
Kopete’s Basic Setup tab. Under the Connection tab, make sure that Use Protocol Encryption (SSL) is
selected and that the app is set to Override Default Server Information with the talk.google.com
server. Kopete should then connect without difficulty.
In Kopete, new buddies can be added by naming them <username>@talk.google.com.

Although Google doesn’t


list it as supported, it’s
also quite simple to set up
a Google Talk account with
KDE’s Kopete.

These details should translate to other IM clients.

You can put your Gmail password into the password field for
automatic logins, but this isn’t a very secure way of working. It’s
probably safer to have the application request a password on
launch: that way no one can go online and insult people in your
name! Leave the Alias field blank, then choose whether to have
the password stored in Gaim. Choosing the auto-login option will
cause Gaim to connect to Google Talk every time you launch it.
In the lower section of the dialog box, make sure that Use
TLS If Available is selected and that Force Old SSL is
deselected. The port should be set to 5222 and the Connect

www.linuxformat.co.uk LXF73 DECEMBER 2005 75

LXF73.tut_begin 75 22/9/05 12:05:05 pm


TUTORIAL Online chat

PART 2 – VOIP CALLS WITH SKYPE

>> Google Talk is the latest in a line of Google apps that are
only available for Windows. However, the world of free internet
calls is not walled off from Linux users: there are two
applications available to us that will do the job.
The most successful application of its kind, and the most
widely available, is Skype, while a new app called Gizmo –
funded by Linspire’s Michael Robertson – is attempting to
muscle in on the same territory. Both of these are available for
Linux, though the latter is limited to Debian binaries.
The latest version of the Skype software is 1.2.0.11, and is
available free of charge in formats including RPMs, Debs and
static binaries from www.skype.com. Getting it on to your Skype is closer to an IM client than a telephone.
machine should just be a case of downloading the required
package and installing it either through your package manager area. Click the Next button to move on to the invite screen –
or from the command line. one of the ways in which VoIP systems trump their phone
If in doubt, download the static binary with the .tar.gz file network rivals. When you add a contact to your system, a
extension and decompress it. You should now be able to open a message is sent to the person requesting their permission for
file manager, navigate to the directory you unpacked into and you to see when they are logged in and available for calls. You,
double-click on the Skype icon to launch the application. In case in turn, give them permission to see when you’re online. A
you’re not sure how to create desktop links, right-click anywhere contact that is available will then be highlighted in the
on the desktop and select Create New > Link To Application... in application’s Contacts tab. If it’s greyed out, it’s not available.
KDE (in Gnome you would select Create Launcher), and enter There’s a handy Search For Skype Users option (also under
the path to the Skype executable (where you unpacked the the Tools menu), which provides facilities for searching for
.tar.gz file earlier). This is likely to be something like names through the entire Skype username database. Searches
/home/username/skype-1.2.0.11/skype. can be made by username, real name, location and a host of
Alternatively, you can simply open the directory and drag the other details, though you’ll need to hit the Advanced button to
icon labelled skype.desktop on to the desktop. Double-click access these options.
on it to launch the application. Once you have all your contacts added and sorted (you can
create new groups by right-clicking on a contact name and
Do you expect me to talk? selecting Groups > Create New) you can start a call by right-
We’ll assume now that you have a working installation, have
created an account and that your PC is equipped with working
microphone and speakers. It’s important when setting the
microphone and speaker volume (do this using the KMix
application or Gnome’s Volume Control) to ensure the speaker
volume is not too sensitive, as this could cause feedback when it
comes to making a call. It also makes sense to ensure that both
mic and speakers are facing you, and that the mic is close
enough to capture a clear signal from wherever you’re sitting.
There are three ways to use this application: for Skype to
Skype calls (which are free); to call a normal land line through
the SkypeOut service; or as an instant messaging client to chat
to other Skype users. The cheapest way to use the application is
to encourage your friends to download and install the software
too. That way you can add them as contacts and phone them Hmmm. Right name, wrong location!
for free whenever they are online and logged in.
clicking on a name and selecting Call This Contact. By default,
double-clicking on contact name will launch an IM session (see
“IF YOU’RE HOUSE-SITTING FOR below), but you can change this to make a call in the
Preferences section of the Tools > Options dialog box. You can
UNCLE BOB, YOU COULD USE YOUR also use the right-click Service menu to send files to contacts or

SKYPE ACCOUNT FROM HIS PC.” block calls from particular users.
You don’t have to restrict your calls to individuals. Skype
allows users to make conference calls, and these can include
It’s best to think of Skype in terms of an instant messaging both Skype contacts and regular land line users. The quality of
client rather than a phone service, as computer-to-computer conference calls will vary depending on the speed of your
calls are made on the basis of usernames rather than numbers. internet connection.
The great thing about this is that usernames are portable and To start a conference call, select Tools > Create Conference
not tied to a single location. If you were house-sitting for Uncle to launch the appropriate dialog box. You can now select
Bob, for example, you could log into your account on his PC Contacts from the list on the left of the window and click the
and not have to miss any vital calls. Add button – conferences can consist of four contacts plus the
Adding contacts when you know their username is extremely host. Once the list is complete, hit the Start button to begin. As
easy. Do Tools > Add A Contact and type the name into the text people answer their phones (Skype or regular) they will be

76 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.tut_begin 76 22/9/05 12:05:09 pm


TUTORIAL Online chat

added to the conference. Remember that you will be paying for you are also given the option of adding a label, which makes
any landline participants (see below) in the conference. the contact list more legible.
It’s also possible to add a new participant to an ongoing One thing to remember is that phone numbers have to be
conference call by right-clicking on their name and selecting prefixed with the international dialling code. The other thing to
Invite To Conference. The conference host is the only person remember is that calls of this nature have to be paid for – you
who can do this. buy call time through the website’s account screen. Calls to UK
landlines fall into the company’s most popular tariff of just over
Calling land lines a penny a minute – as do calls to most other European
While calling other Skype users is all well and good, not countries, the US, Canada, Australia and China.
everyone has the required hardware or a decent internet Finally, you can also use Skype to send instant messages to
connection. Fortunately, it’s possible to use the Skype other Skype users, in the same way as you do with Gaim or
application to call regular phone numbers. To add a number Kopete. Right-clicking on a contact and selecting Check The
you follow the same procedure, inputting the number where Text will launch a new messaging window where you can input
before you put the Skype username. When putting in a number, text. Hit the Enter key to make it appear on your friend’s screen.

PART 3 – USING IRC

Internet Relay Chat (IRC) is the dowdy underdog of the IM


world. It’s been around since August 1988 and yet hasn’t IRC MANNERS
achieved the user base of any of the three main IM clients, nor
the press attention of Jabber. But don’t let this put you off: one Some IRC channels are very newbie-unfriendly. A people, you’ll find out soon enough.
question that, to an expert, might seem trivial The operators are the people you really don’t
of the chief benefits of IRC is that you don’t need to belong to
may receive a harsh “Read The Friendly Manual” want to annoy: they have the power to kick you
any sort of Yahoo, MSN or Google Talk-like club in order to use
(RTFM) response. out of a channel and ban you from returning.
it. All you need is some client software, an internet connection IRC has a well-evolved and often strongly Habitual IRC users will also complain about users
and a little bit of information. Both of the main Linux IM clients enforced etiquette, and reaction to inexperienced overusing capital letters and text formats such as
– Gaim and Kopete – are perfectly happy with IRC chats. users asking ‘stooped questions’ can sometimes bold, italic and blink (which should never be
Open up the Accounts window in Gaim and, in the Protocol be off-putting. So, before you ask something, try used), and clothing their messages in a rainbow
drop-down, select the IRC entry. Your screen name can be to read up on a subject and use the other of colours. Not everyone, though, is so militant.
anything you choose and can change every time you log in, but avenues available such as Google searches and To gauge the atmosphere of a room, go in and
it can’t contain any spaces. Gaim automatically sets the server LXF forums. Once you’re confident that you’re in monitoring the flow of conversation for a little
to irc.freenode.net and the port to 6667. These are standard the right place, don’t ask if you can ask a while. Always be sure to introduce yourself and
question; just ask. If you’re asking the wrong say “Hi”, though: nobody likes a lurker.
options, but often you may be attempting to contact a group of
people on a different network – IRC networks have sprung up
to cater to different interests and locations. If this is the case, IRC running in Gaim. Type
into the bottom part of
simply change these options. Again, set whether you want the the window and your
system to automatically log you in, and hit the OK button. conversation appears like
On each network is a series of channels (which are often magic in the top!
called chat rooms). Joining one of these channels means you
will be able to chat with other people in the ‘room’, but
remember that these are public and every member of the
channel can see all conversations.
Under Gaim’s Buddies menu is an entry called Join A Chat,
which you can also access by hitting Ctrl+C. This launches a
dialog box. In the drop-down list, select the IRC account
configured earlier (it will be named with the format
username@irc-server), then add the channel name in the
second text box.

Find a channel
Many people come across IRC for the first time in relation to a about an IRC channel dedicated to LXF. So in the channel
particular piece of software or interest – someone on a forum section of the Join A Chat we would just add ‘#linuxformat’ and
may casually type, “If you need more I’m on #linuxformat most hit the OK button to launch the standard IM window ready for
nights”, assuming that this is enough information. In this case, scintillating conversation.
we could deduce from the # prefix that this person is talking If you don’t know a channel name, visit
SearchIRC (http://searchirc.com) to comb through
all the different channels. This tool enables you to
search individual servers or the entire IRC community
NEXT
using names or keywords. Some of the more
popular channels have been reviewed by fellow
MONTH
The best ways to organise the stuff
users, which makes sorting the wheat from the
that’s littered all over your hard
chaff a little easier. disk. We’ll take a look at
So you’ve searched the servers and, frustratingly, search tools, too.
there’s no channel dedicated to 19th Century ergodic
literature. Well, the only option is to start your own! But
Add the channel name plus # prefix to the Channel box. that’s for another time... LXF

www.linuxformat.co.uk LXF73 DECEMBER 2005 77

LXF73.tut_begin 77 22/9/05 12:05:12 pm


TUTORIAL Gimp

ILLUSTRATION & IMAGE EDITING

Gimp Animated fractals


Michael J Hammel just wants to have fun, so he takes a trip with one of Gimp’s creative filters.

When I started work on this month’s column I then be turned into an animation using FFmpeg or
realised that I’ve been talking about using Gimp for mpeg2encode. And that’s exactly what I’m going to do in this
real-world projects for quite a few issues: logos, month’s tutorial.
posters, retouching… But sometimes you just need to have a A brief tour of the Flames filter is all that’s needed to get
little fun at work, and have to be creative just for the sake of started with this project. It’s located in the Filter > Render >
In last month’s tutorial we
learned how to make a being creative. After all, what’s the point of being a graphic Nature menu. Opening the filter, you’ll find a preview window
metallic bordered emblem artist if you can’t be artistic? with the current flame design. A two-tabbed page provides
with a recessed logo. If you So, I got to playing with a few of the artistic plugins in Gimp sliders for adjusting the rendering options and camera position,
missed the issue, call 0870 and stumbled once again upon the Flame filter. This is a plugin and a menu at the bottom lets us set the colour map for the
8374773 or +44 1858 based on open source code from the computer artist and rendering. Any gradient can be used, but if the Custom gradient
438795. programmer Scott Draves. It uses long strings of numbers – setting is used, any changes in the Gradient Editor will take
similar to a genetic code, according to Scott – to generate effect when any other rendering option causes the preview to
random shapes, or flame fractals. The shapes can be coloured be updated.
using standard and custom Gimp gradients and the results from Click on the Edit button to edit the current design. A second
the Flame filter, and other tools based on the same open dialog window opens with an interface very similar to the QBist
source code, can be extremely impressive. Several websites filter (Filters > Render > Pattern > QBist), where three rows of
exhibit galleries of these flames (see Links box on page 81), three previews each are displayed. The central preview is the
many of which have space or fantasy themes. current design. Clicking on any other button makes that preview
the current design and updates all the other previews. Below
The Flames filter the previews you’ll find a slider, which adjusts the speed at
Still, on the surface this filter does nothing more than generate which the previews are rendered. Generally speaking, the faster
random fractal designs. You can set some initial parameters and the render the less complex the design, but the definition of
tweak the size and position of the image, but in the end you complexity with this filter is really a matter of style.
really don’t have as much control with this filter as you do with Below the slider is a randomise button, which will generate a
the IFS Fractal filter (Filters > Render > Nature > IFS Fractal). completely new design based on the variation specified in the
But if you do a little digging you’ll find the Flame filter holds a menu to the button’s right. There are nine variations we can use,
little secret: animation. Scott has expanded on the original and switching from one to the other will usually generate a
source from which Flame originated to produce a few more design completely different from the current design. This means
tools that work with the same type of designs, and the Gimp you can’t make minor modifications to the current design using
Flame filter combines with these other tools to produce a real the Variations menu. It’s mostly trial and error to determine how
creative outlet. As we’ll see, the shapes generated with the to use the previews to generate something you’re happy with.
Flames filter can be used as input to another Draves program As I said previously, you don’t have a huge amount of control
called Flam3. This program produces a series of images based with this filter, but that isn’t really the point of using it. Find a
on an initial version created in the Gimp, and this series can good design – something appropriately bizarre – and save it.

78 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.tut_gimp 78 21/9/05 3:53:08 pm


TUTORIAL Gimp

CREATE A STANDALONE IMAGE


To get a feel for using the Flame filter, I’m going to walk you through a
simple space-themed scene. The majority of this work will be in creating the
space background. The flame itself is so easy it only takes one step.

1 2

Prepare your canvas Add some stars


Type Ctrl+N in the Toolbox to open a new canvas window. Use the default Open the Hurl filter (Filters > Noise > Hurl). Set the Random Seed to 10, the
400x320 size. If this isn’t set in the New Image dialog, just click on the Reset Randomization to 70% and the Repeat to 11. Click the OK button to apply this to
button. Then click on OK to open the canvas. Type ‘X’ in the Toolbox to reset the background layer. Desaturate the image (Layer > Colors > Desaturate), then
the foreground and background colours, then drag the foreground (black) into open the Levels dialog (Layer > Colors > Levels) and adjust the Input levels as
the canvas. shown here.

3 4

Blur the background Make some stars sparkle


Duplicate the background layer (Layer > Duplicate Layer). Click on the original Make several oval selections (hold down the Shift key to add a new oval to
background layer in the Layers dialog to make it the active layer. Open the existing selections). Feather the selections by 10–35 pixels (Select > Feather).
Gaussian Blur filter (Filters > Blur > Gaussian Blur) and set the Blur Radius to Open the Sparkle filter (Filters > Light Effects > Sparkle). Set the sliders to
2.5 for both the Horizontal and Vertical directions, then click on OK to apply the something similar to what is shown here. The Spike Density should be set low – >>
settings to the background layer. Click on the duplicate layer to make it active, that slider determines how many stars get enhanced.
and set that layer’s blend mode to Addition. Finally, merge the two layers
together (Layer > Merge Visible Layers).

www.linuxformat.co.uk LXF73 DECEMBER 2005 79

LXF73.tut_gimp 79 21/9/05 3:53:12 pm


TUTORIAL Gimp

>> 5 6

Design your flame Save the result


Now we’re ready for the flame. Since Flame will overwrite the contents of the Once you’ve chosen a suitable shape and colour map, click on OK to apply the
current layer, you should start by adding a new transparent layer (Layer > New effect to the background layer. If you find you really like the design, use the Save
Layer). Open the filter. You can use the default design or create one of your own. button and save to any directory. The saved designs are what I’ll be using in the
Again, the nine previews in the Edit dialog allow you to change the shape. next part of this project: creating a series of images using Flam3.

QUICK TIPS A FLAM3 ANIMATION


■ It’s easiest to create a
flame in the Gimp filter at
Once you’ve saved at least one design to a file you’re flame in the default GIMP 2.2 user’s directory. The converter
a high resolution to start
ready to generate your flame series. The saved file is first program, Flam3-convert, reads the filter file via standard input
with, then save that
Flame file. This is better converted to an XML file by Flam3-convert, which is then fed to and outputs an XML file called glass.xml. The converted XML
than scaling the results Flam3 to produce a series of images. You’ll need to download file will be used to generate your image series. Unlike many
with the Flam3 tools or and compile the Flam3 software for this part of the project. The Linux command line programs, Flam3 programs get their
with FFmpeg or MPlayer. software is available for Linux from the Flam3 website (see Links options from environment variables. The most obvious way to
■ You may need to adjust box, below right). Unpack the software with set these is on a single command line, such as
the brightness when tar xvzf Flam3-2.6.tar.gz template=vidres.Flam3 repeat=10 Flam3-genome > new.
rendering at higher Change into the Flam3 directory. The software has no Flam3
resolutions with the Gimp prerequisites so compiling it is extremely simple, thus: The environment variables template and repeat are
Flame filter. You’ll cd Flam3-2.6 options for the Flam3-genome program. For a full list of
definitely need to adjust ./configure options, use the -? command line option with any of the
the zoom. make programs mentioned.
■ Also for higher This produces a set of programs: Flam3-render, Flam3-
resolutions, try increasing convert, Flam3-animate and Flam3-genome. Flam3-render can Creating a series
the Sample Density. This be used to generate a single image but we’ve already done that Now that you have the basic background for using the Flam3
slider doesn’t affect the
with Gimp’s Flame filter so there’s no need to concern ourselves tools, the image series can be created. The first step here is to
preview, but will change
with that program. You can optionally install the software too, process the original configuration into a set of control points.
the amount detail in the
image rendered to the with make install. But this requires root access unless you’re This is done using the Flam3-genome program. The genome
Gimp canvas. familiar with setting the installation directory using Autoconf. program mutates the design in a manner, according to Draves,
■ Centre any Flame filter You can just as easily run the programs from the same similar to genetic algorithms. The command format will be
file you save on the directory in which you compiled them. A note of warning before similar to this:
preview using the Camera you dive in to these programs: they aren’t documented for the verbose=1 aspect_ratio=1.6 gs=3.5 ss=2.5 template=article.
options. If you don’t do average user. There are numerous command line options with xml repeat=20 ../Flam3-genome > control.Flam3
this any animation some being undocumented and their use and meaning is not The verbose option is useful to watch that something is
generated from that file always clear. But keeping in mind you’re trying to be creative, actually happening when the command is run, otherwise you
will be shifted off-centre. don’t be afraid to just experiment. At worst, you’ll end up with won’t see anything. The aspect ratio is set for my display, which
■ The easiest way to several JPEG images you don’t like. Just try, try again. is 1280x800. Leaving this option out won’t change the
affect the playback speed With the programs compiled, the next step is to convert the resolution you set in the original Gimp filter (420x300). The gs
is to keep the default saved Flame filter files to Flam3 XML files. This is easily and ss options increase the quality and size of the images that
setting under Flam3 and accomplished with the following command: will be rendered. The amount chosen is arbitrary for this
FFmpeg and use MPlayer
cat ~/.gimp-2.2/flame/fractured-glass |./Flam3-convert > example – I was just shooting for enlarging the images and
or Xine to set the frames
glass.xml improving the quality of the rendering to compensate.
per second setting.
The Flame filter saves its configurations in an ordinary text The only two options you can’t live without here are the
file. In this example the file was saved to a directory called template and repeat options. The template option specifies

80 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.tut_gimp 80 21/9/05 3:53:16 pm


TUTORIAL Gimp

Move over Jean-Michel Jarre: here’s a collection of stills taken from a short movie made by rendering an image from one of 20 control points,
rotating it and morphing it for a number of frames until it becomes the next control point. If you watch the movie closely you’ll see each of these
four control points show up, though only briefly as they get morphed into the next control point. You need to use your imagination if all you’re
doing is looking at still images – go to www.graphics-muse.org/source/lxfi73.avi to see it as it should be.

the XML input file for the Flam3-genome program. This is the option to animate the series we could have added some other
XML file created earlier by Flam3-convert. The repeat option prefix to the filenames, but for this example a four-digit number
specifies how many control points to generate. Each control is sufficient. Generating the movie from a thousand 420x300
point is a variation on the original design. JPEG images doesn’t take long – a few minutes at most on my
The control points define a set of designs in the animation, laptop (Intel Pentium M 1.5G and 512MB memory).
each based on the original design from Gimp’s Flame filter. Playback is simple enough as well:
Rendering one image for each design and putting that into a mplayer -fs -vo x11
movie would produce a very short movie that moved wildly The -fs option puts the playback in full screen mode and
between images. A better solution would be to produce a set of the -vo option just provides a fairly standard video interface that
variations on each design that move smoothly into the next doesn’t require hardware acceleration (which this example
design. This is done by filtering the control points file through doesn’t really need).
Flam3-genome again to generate a sequence of rotations and
transitions. The command format is very similar to the last one:
verbose=1 sequence=control.Flam3 nframes=120 ../Flam3-
genome > seq.Flam3
“KEEPING IN MIND THAT YOU’RE
The new options are sequence, which is the input file to TRYING TO BE CREATIVE, DON’T
use, and nframes, which is the number of frames to generate
for each control point. Each frame is a small rotation of the BE AFRAID TO EXPERIMENT.”
design along with a slow mutation into the next design. The
output from this command will be the input into the animation You can see the movie of my series at my own website (see
program, Flam3-animate: Links box, below), and I hope you go on to produce some
verbose=1 ../Flam3-animate < seq.Flam3 colourful, trippy movies of your own. And what good is all this
When this command is run, prepare yourself: it will generate work with fractals? Well, not much, really. Some of Draves’s
a huge number of images. Each image will be a frame in the work has moved into the video DJ world, where walls of images
movie, but at 30–60 frames per second that isn’t a very long just like these throb to the sounds of modern music marvels.
movie. Changing the nframes option in the second Flam3- But it’s something that only a few artists take to a commercial
genome command will reduce the number of images, as will level – for most of us it’s just a creative outlet, a way to have
changing the number of control points you generated. Again, fun. And before too long, we’re back to replacing teeth and
playing with the tools is the best way to learn them. generating logos. The work must go on, after all. LXF

Generating a movie
Once the huge set of frames is generated you’re ready to
LINKS
NEXT
produce your fractals movie. This is almost a no-brainer with the
use of FFmpeg, the Swiss Army knife of video conversion. The
■ Fractal galleries: www.arcanefractals.com/index.shtml
www.renwebdesign.com/fractals/index2.html
http://occipital.net/main.php
MONTH
I’ll take a look at the best image
simplest command to get from a directory of thousands of
JPEG images to an AVI-formatted movie suitable for playback ■ Flam3 website: http://Flam3.com viewers and content managers for
by MPlayer or Xine is Flam3 Linux source code: http://Flam3.com/Flam3-2.6.tar.gz cataloguing your Gimp
Scott Draves’s personal website: http://draves.org projects..
ffmpeg -i %04d.jpg movie.avi
Sample movie generated for this article:
The 04 in this code means that each JPEG image file is
www.graphics-muse.org/source/lxfi73.avi
prefixed with a four-digit number. If we had used the prefix

www.linuxformat.co.uk LXF73 DECEMBER 2005 81

LXF73.tut_gimp 81 21/9/05 3:53:18 pm


TUTORIAL USB auto-mounting

HARDWARE SETUP

HAL Auto-mounting USB devices


Resisting any reference to “I’m sorry, Dave”, Neil Bothwick instructs HAL to get his iRiver flowing.
It seems that everything has a USB connector these remove a device. This is clearly not the most user-friendly of
days: cameras, music players, key-rings, watches. It approaches, so a number of alternatives were introduced.
won’t be long before we have USB-connected fridges Supermount, subfs and autofs all provide methods for
(we already have internet-enabled microwave ovens after all). automatically mounting a device. You will find more information
Fortunately, USB is one of the few areas where sanity has on them in the Other Mounting Systems box on page 83.
prevailed over manufacturers’ desire for lock-in, and the vast The current favourite method uses the Hardware Abstraction
majority of devices adhere to well-defined standards. This Layer (HAL) and the D-Bus message bus system from
means you can connect most of these devices to a computer freedesktop.org. These two pieces of software provide a
running Linux and have them appear as removable disk drives. means for the OS to notify the desktop when a new piece of
hardware is connected. It is then up to the desktop to handle
Mounting methods mounting this hardware, either through a separate piece of
In the beginning was /etc/fstab. If you wanted to mount a software like Ivman, or the built-in mounting in KDE and
device as a user, you had to first have the root user add an Gnome. It may seem like a lot of complication to use three or
entry for it to the /etc/fstab file then type the relevant mount four pieces of software to handle what appears, at first sight, to
and umount commands whenever you wanted to add or be a fairly trivial task, but it works well.

82 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.tut_usb 82 19/9/05 3:50:18 pm


TUTORIAL USB auto-mounting

To install HAL, repeat this process, replacing dbus-0.23.4


with hal-0.4.8.
These are both services, so make sure you also have them
set to start when you boot. Gentoo users can install HAL and
D-Bus, add the appropriate run scripts and make sure all
programs support HAL by adding hal to the USE flags in /etc/
make.conf and running
emerge --update --ask --verbose --deep --newuse world (or
emerge -uavDN world)
rc-update add hal default

Power to the user


This whole process is supposed to run in user space, without
needing any root privileges. However, mounting devices that are
not listed in /etc/fstab can only be done by root. HAL gets
Use your distro’s services manager to ensure that D-Bus
and HAL are started automatically. Note that some distros around this by running a program called fstab-sync when it
list D-Bus as ‘messagebus’. detects a device. fstab-sync will create a mount point in /media
and add a line to /etc/fstab, so that the mount call may be
There are a couple of prerequisites to using HAL and D-Bus.
You need a recent kernel, at least 2.6.8 but 2.6.10 or later is
ideal. You also need to be using Udev to handle your /dev
directory. Most recent distros already use these, but check your
“ETC/FSTAB IS A CRITICAL SYSTEM
kernel version by typing FILE, SO IT’S A BAD IDEA TO MESS
uname -r
in a terminal. To see if you are using udev, type WITH IT UNNECESSARILY.”
ps ax | grep udevd
and you should see something along the lines of 895 ? S<s issued as the desktop user, and permissions to the device set
0:00 udevd. If you get no output from this command, you are accordingly. It is also able to clean up after itself, removing the
not running Udev and need to check your distro’s website, mount points and /etc/fstab entries, usually when rebooting.
documentation, wiki or forums to find out how to switch over. The main problem with this is that /etc/fstab is a critical
Once you have established that the basic requirements are system file, so it is a bad idea to mess with it unnecessarily.
present, see whether you have D-Bus and HAL installed by Imagine what would happen if your system crashed as fstab-
checking in your distro’s package manager. Once again, the sync was writing to /etc/fstab and the file was unreadable when
latest versions of most popular distros have these installed and it rebooted. There are also security concerns about allowing
enabled by default. If they are not available for your distro, we /etc/fstab to be modified on the fly without user intervention.
have the source code on the coverdisc. The software packages There is an alternative to this in the form of pmount. This
on the disc are the latest versions in the respective stable program allows users to mount devices, subject to certain
distributions. There are later versions available but these are the restrictions. It will only mount devices in /media, and it will only
versions on which this tutorial was based. work with removable devices, although there are ways around
If your distribution does not come with D-Bus and HAL, and this in case your USB hard disk is not recognised as a
they are not available via your package manager, you can install removable device. pmount will create the mount points as it
them from the tarballs on the CD. To install D-Bus, open a needs them. It is also on the coverdisc. This is not the latest >>
terminal and type version, but it is the one most compatible with the version of
su
<give root password> OTHER MOUNTING SYSTEMS
tar xzf /path/to/files/on/cd/dbus-0.23.4.tar.gz
Supermount was originally intended for CD-ROM use. It is a kernel patch that adds a pseudo-
cd dbus-0.23.4
filesystem that detects when a data CD or DVD is inserted into the drive, and mounts it. When the disc
./configure && make && make install is ejected, supermount detects this, closes any open file handles and unmounts it. Although intended
for use with read-only optical discs, it can be used with USB mass storage devices too, although there
are some limitations. It still needs an entry in /etc/fstab, so the device must mount with a consistent
device name – not a problem if you use Udev with suitable rules for persistent device naming.
It also requires the device to be mounted with the sync option. This ensures that any data is written
to the drive immediately and not cached. As soon as the drive access light goes out, it should be safe
to remove it and let supermount unmount it. Without sync, doing this would corrupt the filesystem.
A suitable entry for /etc/fstab is
none /mnt/flash supermount fs=auto,dev=/dev/usb/flash,--,users,sync,noatime,umask=000 0 0
The umask option ensures that the device is readable and writable by all users. This is necessary
because the device is mounted as root. sync is vital, ensuring that data is written to the disk
immediately. As there is no way for the USB port to send a signal that you are about to unplug the
device, supermount can only unmount it after it is unplugged, so it is essential that data is written
without cacheing. This is a far from ideal alternative. Although it works reasonably well, HAL is a far
better option. Supermount does have one potential advantage, in that it works with 2.4 kernels.
Autofs is a kernel option, with associated user space programs, designed for automatically mounting
network devices on demand. It is not really suitable for use with removable devices. subfs or submount
are designed for removable devices, and once again has the advantage of working with 2.4 series
kernels, making it suitable for older systems. As with supermount, submount requires an entry in
Use KDE’s desktop configuration dialog to pick which icons
/etc/fstab, so you need to know that your device will always be given the same name.
are displayed on your desktop.

www.linuxformat.co.uk LXF73 DECEMBER 2005 83

LXF73.tut_usb 83 19/9/05 3:50:48 pm


TUTORIAL USB auto-mounting

few seconds you should see an icon appear on the desktop .


Hold the mouse pointer over this icon to get some
information on the device, which is currently unmounted. Click
on it, and KDE will mount it and open a Konqueror window or
tab (depending on your KDE settings) to show its contents. If
you do not see an icon, right-click on the desktop and select
Configure Desktop. Go into the Behaviour section, select the
Device Icons tab and ensure that Show Device Icons,
Mounted Removable Medium and Unmounted Removable
Medium are all selected.
You can also view devices from the Konqueror sidebar.
Select the Service tab (at the bottom), pick Devices from the list
in the sidebar and you should see a list of connected devices.
The Devices tab just below Bookmarks performed this function
in earlier versions of KDE. For 3.4, you can find this in the
Using the Konqueror side bar to browse any Services tab, under Media. If you have upgraded from a
connected devices and their contents. previous version, you can edit this tab to change the address
from devices:/ to media:/. If there is no Devices tab and you

>> HAL on the disc. Install pmount in the same way as D-Bus and
HAL: untar the archive and run ./configure && make &&
would like a separate tab for your removable media, right-click
on the navigation bar, select Add New > Folder and set the
make install. address to media:/.
You still need to unmount a device before removing it, or
you risk corrupting the data it contains. To do this in KDE, right-
“GNOME CAN BE CONFIGURED click on the device’s icon and select Safely Remove from the
pop-up menu. Once the icon reverts to its unmounted image or
TO AUTOMATICALLY MOUNT THE disappears, it is safe to remove the device.

DEVICE WHEN YOU PLUG IT IN.” Auto-mounting with Gnome


This is just as easy as using HAL with KDE (if not easier). You
Once it’s installed, you need to tell HAL to use pmount need to have installed the Gnome-volume-manager package.
instead of fstab-sync. Go back to your root terminal and type This has probably been handled by your distro, but the source
cd /etc/hal/device.d/ code is on the coverdisc if not. This is not the latest version, but
rm 50-fstab-sync.hal it matches the D-Bus and HAL code.
ln -s $(which pmount-hal) 60-pmount.hal Gnome is more advanced than KDE in this respect, as it
allows you some control over how it handles hotplugged devices.
Using HAL with KDE While KDE simply displays an icon and only mounts it when you
Once you have HAL and D-Bus installed and running, KDE open it, Gnome can be configured to automatically mount the
should require nothing more to make it all work, provided KDE device when you plug it in. Gnome Volume Manager takes
was built with HAL support. If you installed KDE from a binary things a step further, by allowing you to configure actions to
package, this should not be a problem, as these packages are take place automatically when a device is detected.
generally built with all features turned on. If you compiled from You do this by running Gnome-volume-properties. While its
source yourself, you need to have used the --with-hal option main use is to launch an audio or video player when a CD or
when running ./configure, otherwise you may need to build it DVD is inserted, it can also be used with removable devices. For
again. If you are running Gentoo, provided you set the hal USE example, it can launch your favourite photo album software
flag and re-emerged as above, it should just work. when you connect your camera. KDE will apparently have such
Now plug in a USB mass storage device, such as a USB a control in the next major release. For now, Gnome users get
flash disc or a USB media player. Don’t use a camera for now much more configuration choice than KDE users in this
as not all cameras work as removable drives department. Whether Gnome users will welcome having
(see Digital Cameras box, below). After a more options than KDE or be horrified at the
thought is open to debate.
DIGITAL CAMERAS
One factor that makes mounting so many want to download your
Ivman for more control
While KDE and Gnome have built-in support for
different USB devices with the same system photos, but does not let
mounting hot-pluggable devices via HAL, many
possible is that they all work to the same USB you view them until
mass storage standard, handled by the afterwards – considering people prefer to use a lighter window manager
usb-storage kernel module. Unfortunately, as the slow speed of the USB and only add the features they need. Ivman
with all standards, there are exceptions. Many connection to my Canon provides similar features to Gnome’s Volume Manager,
digital cameras do use usb-storage and can be SLR, this is probably not a bad thing, as browsing but in a separate package, independent of any window
mounted as disc drives in exactly the same way over the USB link is painfully slow. Ivman has no manager. It has more features than Gnome’s Volume Manager,
as a flash disc, MP3 player or mobile hard drive. default way of handling this, but can be so KDE and Gnome users may also consider using it.
However, there are others that do not, such as configured with a rule in The latest Ivman source code is on the coverdisc, and
Canon cameras. All is not lost though, as KDE, ~/.ivman/IvmConfigActions.xml like this:
installed in the same way as HAL and D-Bus. In order for Ivman
Gnome and Ivman all have ways of dealing with <ivm:Match name=”hal.camera.libgphoto2.
to work, you must ensure that all three programs are started at
this. KDE still pops up an icon and allows you to support” value=”true”>
boot, in this order: dbus, hald, ivman (the ‘d’ after hal stands for
browse your photos using Konqueror’s camera:/ <ivm:Option name=”exec” value=”digikam”>
kioslave. Gnome pops up a dialog asking if you </ivm:Match> daemon). You should also have pmount installed, otherwise
Ivman will use fstab-sync with the risks that poses.

84 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.tut_usb 84 19/9/05 3:50:49 pm


TUTORIAL USB auto-mounting

Ivman is capable of a lot more than simply auto-mounting


devices, but to do this, you need to have two instances running.
The first instance runs as root at startup, usually from /etc/init.
d, and handles auto-mounting. This is already set up in the
default configuration files in /etc/ivman. The second instance is
run as your normal user, via whatever method your window
manager uses to run programs when it starts up. If in doubt, put
it in ~/.xinitrc. This instance of Ivman reads its configuration
from ~/.ivman. If this directory does not exist the first time you
run Ivman, it will be created and filled with default configuration
files. These defaults will add no extra functionality until you edit
them. By doing so, you can add features such as automatically
running a program when a particular device is connected. For
example, you can have it automatically play a DVD with MPlayer
or Xine by adding
<ivm:Match name=”hal.volume.disc.type” value=”dvd_rom”>
<ivm:Option name=”execdvd” value=”umount $hal.block.
device$ &amp;&amp; mplayer dvd://1 -really-quiet -fs” />
</ivm:Match>
or
<ivm:Match name=”hal.volume.disc.type” value=”dvd_rom”>
Even when not recognised as a removable drive,
<ivm:Option name=”execdvd” value=”umount $hal.block.
HAL and Konqueror can still show the contents of my
device$ &amp;&amp; xine -f -g dvd:$hal.block.device$” /> digital camera.
</ivm:Match>
to ~/.ivman/IvmConfigActions.xml.
This, along with several other ideas, is already in the default
drive as non-removable. The solution is to add the device name
config file created in ~/.ivman, but commented out. Nothing (not the mount point) to /etc/pmount.allow.
runs by default from here. The Custom Rules page of the Ivman When HAL detects a device, it uses the device name when
wiki at http://ivman.sourceforge.net/wiki/Custom_Rules has mounting it, so a USB disc detected as /dev/sda1 would be
several more examples, such as a rule to automatically sync mounted at /media/sda1. If you want more meaningful names,
directories from your home directory to a specific USB flash disc add rules to /etc/udev/rules.d/10-udev.rules to give suitable S
names. HAL uses the actual name, ignoring any symlinks, so a
as soon as that disc is inserted. The possibilities are limited only ■ Should a new device not
by your imagination. rule like show up when you first
BUS=”usb”, KERNEL=”sd?1”, SYSFS{product}=”iRiver H300 connect it, you can check the
A few final points Series”, NAME=”%k”, SYMLINK=”iriver” system log to see how it is
For security reasons, pmount is only intended to mount would still mount it at /dev/sda1, or whatever drive name the identified. With the device
removable devices. If it thinks a device is a hard disk, it will kernel allocated, whereas switching things around to unplugged, type tail -f /var/
log/messages in a root
refuse to mount it. This can be a problem if you have a USB BUS=”usb”, KERNEL=”sd?1”, SYSFS{product}=”iRiver H300
terminal. Then watch the
hard disk that pmount identifies as non-removable. You can test Series”, NAME=”iriver”, SYMLINK=”%k”
kernel messages when you
is this is the cause of a drive not mounting by running pmount means the device is mounted at /media/iriver. This is the Udev
plug it in. It will take a few
from a terminal. If the following code: rule I use for my iRiver MP3/Ogg player. If you want to know seconds for the device to be
pmount /dev/sda1 #(or whatever node the device uses) more about writing udev rules, see the tutorial in LXF66 or visit recognised, then you can see
returns a ‘device is not removable’ error, HAL has identified this www.reactivated.net/udevrules.php. how the kernel sees it and the
If the device’s filesystem (usually MSDOS device node (if any) it is given.
FAT) has been written with a volume name, Depending on your system
this will be displayed as the icon text. If there logger, the path to the log file
is no volume name, the device name will be may be /var/log/everything or
/var/log/current.
used instead. This is another reason to make
sure that each device is given a meaningful ■ IEEE1394 (otherwise
name, especially if you have several USB known as FireWire), devices
also work well with HAL and
devices. You can add or change the volume
the other software covered
name of an existing partition without
here. If you build your own
reformatting the filesystem with Mlabel, part
kernel, ensure that
of the Mtools package (which was created to IEEE1934_SBP2 support is
access MS-DOS disks from Unix without the included. If you are using the
need for mounting them). kernel supplied for your
If you want to rely on HAL detecting and distro, this should already be
mounting a device for you, you should not done. This is the module that
have it listed in /etc/fstab. If it is listed there, handles IEEE1394 hard disks.
pmount will use the mount details given there, You may need to manually
load the sbp2 module, either
but mounting as the current user, instead of
by tying modprobe -v sbp2
deriving the mount point from the device
as root or by adding it to
name. Although this normally means you
/etc/modules.conf (or
Gnome Volume Manager’s preferences, where you choose whether a new should not have the device listed in /etc/modules.autoload for
device is mounted automatically or waits for you to select it. It handles /etc/fstab, it does give you a way to override Gentoo users).
removable media (CDs and DVDs) as well as removable drives. the defaults. LXF

www.linuxformat.co.uk LXF73 DECEMBER 2005 85

LXF73.tut_usb 85 19/9/05 3:50:54 pm


TUTORIAL Gambas

BASIC PROGRAMMING

Gambas Application building


PART 3 Edison was wrong. Forget about perspiration, genius is 100% delegation in Dr Mark Alexander
Bain’s book. So sit back, put your feet up and let a Gambas GUI do all the work for you.
I’ve probably already mentioned this, but it bears

LAST repeating: all good programmers should aim to be as


idle as possible. That’s not to say that you should be
TIME doing nothing – completely the opposite. But it’s your brains
you should be using, not your fingers. We started addressing
We had a look at using
this last month when we looked at modules and classes. We’ll
Gambas to program in a
continue our quest to become the perfect idle programmer by
professional manner – using
variables and reusing code in having a look at what Gambas can do to make us look good
modules and classes. Oh, stop with the minimum of effort.
yawning; we’re doing some The first thing to remember is that there is usually
fun stuff again this month. someone who has already done what you’re trying to do;
If you missed the issue, call especially when you’re dealing with Linux. Let’s say, for instance,
0870 8374773 or +44 1858 that you want to be able to look up the owner of a website. It’s
438795 for overseas orders. a simple task – just go to the command line and type whois
linuxformat.co.uk. You will be given a long list of data
including the domain name, registrant, registrant’s physical
address, date of registration and the IP addresses of Linux
Format’s registered servers.

How can you do this with Gambas?


■ Gambas 1.0.11 If you’ve answered that you’d look for domain databases or start Every Linux command (in this case the command is whois)
(stable) can be turned into a GUI.
searching for NIC handles then stop: you’re not listening to what
■ Gambas 1.9.20
(development) I’m telling you. If, on the other hand, you’ve answered “I’d cheat”,
■ Project code buy yourself a beer – you’ve got the right mentality to be a SHELL “whois “ & txtUrl.Text & “>” & filename WAIT
from the tutorial good programmer. The real question is: “How do you cheat?” txtResult.Text = File.Load(filename)
The answer is to use Gambas’s SHELL statement to get ELSE
Linux to do the hard work for you, then use the result in your txtResult.Text = “”
program. Start off by creating a form that contains a text box, a END IF
text area and a couple of buttons, and don’t forget to name the END
objects sensibly. In this case I’ve called the text box txtUrl, the The code is quite simple: it defines a filename (/tmp/whois.
text area txtResult, and one of the buttons btnWhois. The code tmp) and runs a shell command, taking the input from txtUrl
for the button click is and running whois on it, then outputting the result into a text
PUBLIC SUB btnWhois_Click() file. So if the input were linuxformat.co.uk, the actual
DIM filename AS String command being run would be
filename = “/tmp/whois.tmp” whois linuxformat.co.uk > /tmp/whois.tmp
IF (txtUrl.Text) THEN The contents of the file /tmp/whois.tmp are then put into the

86 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.tut_gambas 86 21/9/05 1:49:21 pm


TUTORIAL Gambas

text area by using the File.Load command. The IF statement


simply ensures that an error cannot occur if the input box TCDUMP
remains blank. This way of writing code ensures that incorrect PRIVILEGES
data cannot be entered – and so prevents crashes.
Normally tcpdump can only
The other way is to handle errors as they occur: be run as root. If you want to
PUBLIC SUB btnWhois_Click() run this application as any
DIM filename AS String other user you’ll need to
filename = “/tmp/whois.tmp” update the sudo file
TRY SHELL “whois “ & txtUrl.Text & “>” & filename WAIT (/etc/sudoers) with the user
IF ERROR THEN details, adding a line like:
txtResult.Text = “” bainm ALL=(ALL)
NOPASSWD: ALL
END IF
txtResult.Text = File.Load(filename)
END
This time the whois command is sent regardless of the input,
and the results are handled according to whether an error
occurs or not. Which way you do it comes down to personal The SHELL command
choice: there are pros and cons to both. The first method enables you to produce
carries the drawback that you need to be sure that you know all a network monitor using
possible error situations, but it does ensure that the wrong tcpdump.
things cannot be entered. The second method guarantees that
all errors will be caught, but needs you to be able to output sudo /usr/sbin/tcpdump > /tmp/bainm_tcpdump.
sensible error messages. Either way, the important thing is that tmp
the program does not crash. fi
The other button is (it’s obvious if you’re thinking along the You might ask why I’m not just running
right lines) a close button – every form needs one. So if you sudo /usr/sbin/tcpdump > /tmp/bainm_tcpdump.tmp
name the button btnClose the code will be: The answer is that this would be run every time the button
PUBLIC SUB btnClose_Click() btnUpdate is pressed. That would mean that you’d end up
ME.Close running multiple versions of tcpdump. The script checks to see if
END tcpdump is already running before it tries submitting it again.
One thing to take notice of is the WAIT option for SHELL. If You may also wonder what the grep -v grep bit is all about.
you use WAIT the program will wait for the command to finish This simply removes the ID of any extra processes that grep
before it continues. If WAIT is not used, the program will starts itself.
continue with the command running in the background. The
background mode can be useful when you want to set a shell Bored with pressing buttons yet?
program running and to leave it running. As always, it’s good to The application works well as it stands – starting tcpdump and
look at a real life (whatever that is) example. then viewing its output – but as a user you have to click a button
Imagine that you need to build a GUI application to monitor continually in order to see the result. We can automate this
network traffic. In particular, you want to read all of the headers
of any packets of data flying about on the network. Hopefully
you have realised that I’m not asking, “How would you do that?”.
Instead I’m asking, “Is there an existing Linux application that
“IF YOU THOUGHT OF CHEATING,
already does what I want?”. In this case, there is: tcpdump. BUY YOURSELF A BEER – YOU’VE
Normally you will set tcpdump running and monitor its
output in a console window. We’ll do that, but use Gambas GOT THE RIGHT MENTALITY.”
instead. As before, you’ll need a form, but this time only add a
text area and three buttons (name them txtResult, btnUpdate process by adding a timer. Select the timer (the icon that looks
and btnClose). like a clock) from the toolbox, and draw it on your form. It
Now we can add the code: doesn’t matter where, because it becomes invisible when you
PUBLIC SUB tcpdump_update() run the form. Remember to name it something useful (eg
DIM command AS String tcpdumpTimer). If you double-click on the new object Gambas
command = will take you to the code window and you should see:
“if [ ! \”$(ps -ef | grep /usr/sbin/tcpdump | grep -v grep)\” ]; PUBLIC SUB tcpdumpTimer_Timer()
then” & END >>
“ sudo /usr/sbin/tcpdump > /tmp/bainm_tcpdump.tmp;” & Edit your code so that it reads:
“ fi”
SHELL command SETTING OBJECT PROPERTIES
txtResult.Text = File.Load(“/tmp/bainm_tcpdump.tmp”)
END Objects can be set in two ways. The first is to use the Gambas
PUBLIC SUB btnUpdate_Click() property screen. The second is to set them from within the
tcpdump_update program. For example, the following code switches on the timer
and sets the time between firings:
END
PUBLIC SUB Form_Open()
In this example the commands to be run on Linux are built up
tcpdumpTimer.Enabled = TRUE
into the command variable, so the script to be run is actually tcpdumpTimer.Delay = 5000
if [ ! “$(ps -ef | grep /usr/sbin/tcpdump | grep -v grep)” ] END
then

www.linuxformat.co.uk LXF73 DECEMBER 2005 87

LXF73.tut_gambas 87 21/9/05 1:49:24 pm


TUTORIAL Gambas

>> THE STARTUP PUBLIC SUB tcpdumpTimer_Timer()


tcpdump_update
For instance, you could design a GUI for top, using the timer to
run top -n1 > /tmp/top.tmp for single iterations, and then read
CLASS END in the result using file.load.
If you run the program now the timer will do nothing – by Having looked at some of the things that Linux can do for us,
If you have multiple forms in
a project you can change default it is turned off. To turn it on, go to its property screen and we can go on to look at the built-in Gambas functionality.
which one opens when you change Enable from False to True. You may also notice that
run the application by going there is a Delay parameter. This is the time in milliseconds The Gambas menu
to the project window, right- between each firing of the timer subroutine. Setting this to So far we’ve used buttons to carry out any work in the forms.
clicking on the form that you 5,000 (five seconds) will give you a lively display without These work well, but do tend to clutter up the screen, and also
want, then selecting Startup overloading your processor. You can even remove the btnUpdate present the problem of maintaining the correct layout when the
Class. Alternatively you can button if you want. form changes size. The answer is to use Gambas menus.
create a module, set it as the
Open up a form in design mode, then right-click on it. Click
startup class and then add
the code:
Cleaning up when you leave on Menu Editor (or you can press Ctrl+E). You can now build the
If you close your application down and then type the following structure of your menu by adding items. As always, remember to
PUBLIC SUB Main()
frmWebBrowser.Show into a console: name them sensibly rather than the default Menu1, Menu2 etc.
END ps -ef|grep tcpdump You create sub-menus by indenting a menu item. When you
Obviously you would you will probably get result something like this: close the editor the new menu will be displayed on the form.
change the name of the form root 1443 1437 0 15:37 ? 00:00:00 /usr/sbin/tcpdump With the menu in place, the next stage is to add some
to the one that you want to This is because our application has set tcpdump running and left functionality. The first thing to add is the form close. Assuming
start with. it in the background. Just to be nice we should really turn if off you’ve created a menu item labelled Close and named it
again when we’re finished. mnuClose, its code will be:
This can be done in the Form_Close subroutine: PUBLIC SUB mnuClose_Click()
PUBLIC SUB Form_Close() ME.Close
DIM command AS String END
DIM filename AS String So we’ve now got a nice, clean, professional-looking form that is
DIM tmp_process_id AS String actually doing some quite complicated tasks (or at least it’s
filename = “/tmp/bainm_tcpdump_process.tmp” managing the processes that are doing the hard work). We’ve
command = also seen how all of those Unix and Linux developers who’ve
“ps -ef | grep /usr/sbin/tcpdump|grep -v grep” & gone before can help us look good. Now we can look further at
“| awk ‘{print $2}’ > “ & filename the ways in which the lovely Gambas developers can help us to
SHELL command WAIT be idle programmers.
tmp_process_id = file.Load(filename)
SHELL “sudo kill -9 “ & tmp_process_id WAIT Gambas components
END Back in LXF71 we saw how useful the Gambas components can
be, and how easy they make it to access a database. Just to
remind you, to use a component you must first enable it by
“WE’VE GOT A NICE CLEAN FORM opening the Project Properties screen (from the project window
click on Project followed by Properties) and going to the
THAT’S ACTUALLY DOING SOME Components tab. This lists all the components available to you.
To see how useful these can be we’ll look at creating our own
QUITE COMPLICATED TASKS.” web browser. Check the gb.qt.kde.html component. When you
go back to the toolbox you’ll find a new tab entitled KDE. If you
Two shell commands are run in the subroutine – the first click on this tab you see the new objects that are available for
identifies the process ID for tcpdump. The second kills it. The any forms.
beauty of this technique is that you can use any Linux command. Create a new form (name it frmWebBrowser) and add a text
box (txtUrl), a button (btnGo) and a web browser object
(webBrowser). You should also add either a Close button to the
form or a Close element to the menu. Once that’s done you can
add the code:
PUBLIC SUB btnGo_Click()
IF (txtUrl.text) THEN
webBrowser.Path = “http://” & txtUrl.Text
END IF
END
If you now run the application then you’ll find that you have a
working (albeit simple) web browser.
We can enhance our basic web browser by making use of
more of the Gambas components. Tick gb.net (the networking
component) and add a text label (txtIp) to the form. When
you’ve done that, modify the code so that it looks something
like this:
PRIVATE dns AS DnsClient
PUBLIC SUB btnGo_Click()
The Gambas Menu Editor IF (txtUrl.text) THEN
helps you create a tidy and webBrowser.Path = “http://” & txtUrl.Text
professional-looking form. END IF

88 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.tut_gambas 88 21/9/05 1:49:26 pm


TUTORIAL Gambas

PRIVATE SUB loadFile()


webBrowser.Path = “file:///” & htmlfile S
END ■ Press F4 to display the
PUBLIC SUB Form_Open() properties screen.
http = NEW HttpClient Press F5 to run the
htmlfile = “/tmp/test.html” application.
END Press F6 to bring up the
Notice that this time the web page is downloaded before the Gambas toolbox.
browser reads it. ■ If you’re not sure what
You’ll need to put a text area (txtHtml) and a button methods are available when
(btnSave) on the Editor tab. Then you can add the code, thus: coding in Gambas,
PUBLIC SUB tbsEditor_Click() right-click on the object and
select Event. This will display
SELECT CASE tbsEditor.Text
a list of all of the
CASE “Viewer”
programmable events.
loadFile
■ Hide text in a textbox by
CASE “Editor”
setting ‘Password’ to True.
txtHtml.Text = File.Load(htmlfile)
END SELECT
END
The Gambas components are accessible through the PUBLIC SUB btnSave_Click()
Project Properties screen. file.Save(htmlfile,txtHtml.text)
END
txtIp.Text=”” We can now modify the Upload tab, adding three text boxes
dns.HostName = txtUrl.text (txtTarget, txtUsername and txtPassword) and a button
dns.GetHostIP (btnUpload). In the code we need to add a global parameter:
txtIp.Text = dns.HostIP PRIVATE ftp AS FtpClient
END and you’ll need to add the following to the form_open
PUBLIC SUB Form_Open() subroutine:
dns = NEW DnsClient ftp = NEW FtpClient
END Last of all, we’ll add the subroutine to upload the file.
When you run the application this time, the IP address of the PUBLIC SUB btnUpload_Click()
website will be displayed as well as the website itself. The great ftp.URL = txtTarget.Text
thing is that you don’t have to understand how the component ftp.User = txtUsername.Text
looks up the information – you just need to know how to use it. ftp.Password = txtPassword.Text
ftp.Put(htmlfile)
A more advanced web browser END
We’ve managed to make a simple web browser, but they’re ten a This is, of course, an extremely simple editor – there’s no syntax
penny anyway. I made it a bit more interesting by adding the IP highlighting or checking. You’ll also find that the application only
address of the web page. Now we can produce a simple HTML uploads a single filename: that’s something for you to think
editor. We’ll do this in a slightly different way from the simple web
browser: instead of just viewing the page, we’ll download it, view
about. This should, however, give you a good idea of what can be
achieved very quickly using the Gambas components. LXF NEXT
and edit the downloaded text, then upload it again when we’re
finished. We will, of course, use the Gambas components to do
MONTH
We’ll be looking at a roundup
all the hard work for us.
of some of the little tips and
Create a new form (I called mine frmHtmlEditor), and either
tricks that separate the great
make it the startup class or modify your module to start it. Don’t from the good.
forget to add a button or menu item to close it. Since there are
going to be three distinct activities we can use a tab strip (call it
tbsEditor) from the toolbar to divide these cleanly. You’ll find that
there is only a single tab (Tab 0) by default; just go to the
properties page to change this (change the count parameter).
Now you can click on each tab to change its text to something
more useful (such as Viewer, Editor and Upload).
The Viewer tab will look very similar to the web browser that
we’ve just looked at, but the code is quite different. Create the
objects txtUrl, btnGo and webBrowser (don’t forget to add the
gb.qt.kde.html component). You will also need to add the
gb.net.curl component to enable the use of HTTP and HTP
functionality. The code for the web browsing part of the form is
PRIVATE http AS HttpClient
PRIVATE htmlfile AS String
PUBLIC SUB btnGo_Click()
http.URL = “http://” & txtUrl.Text
http.Get(htmlfile)
loadFile Buttons, timers, tabs… Anyone can make a GUI application
END in minutes using Gambas.

www.linuxformat.co.uk LXF73 DECEMBER 2005 89

LXF73.tut_gambas 89 21/9/05 1:49:27 pm


TUTORIAL PHP

SCRIPT PROGRAMMING

PHP Data objects in 5.1


The best things come to those who wait. Yes, the PHP update is here. Let Paul Hudson show you around.

A long time ago, in a magazine that’s probably has a cache to avoid multiple lookups of the same virtual path.

LAST collecting dust on your shelf by now, I promised we’d


cover PHP 5.1. The big delay was the Sudoku
So, PHP 5.1 is fast, fast, fast, and you don’t actually need to
rewrite your scripts to take advantage of it – everything gets
TIME competition: we spent a few issues solving problems mysteriousy
similar to the Sudoku challenge that would give you an unfair
faster as soon as you upgrade.
Alongside pure performance you can now also get your mitts
In LXF72 we wrote a
advantage over the crazy people who don’t read this tutorial. As I on some new functions: array_product() calculates the sum of
pathfinding script, with a little
write this we’re approaching the last days of the competition, all array values; array_diff() and array_intersect() now have
help from New York taxis. If
you missed the issue, call
which means you’re probably all finalising your entry about now. key-based equivalents; htmlspecialchars() now has its inverse
0870 8374722 or +44 Anyway, on to the important stuff: this issue I want to look at in the form of htmlspecialchars_decode(); and there’s even a
438794 for overseas orders. PHP 5.1, the new release from the 5.x family. This is the first cool new time_sleep_until() function that sleeps until the
minor release of PHP 5, despite the original 5.0 release coming provided timestamp has been reached. Some other functions
out about 15 months ago. Still, it was worth waiting for: we’ve got have added new parameters, but let’s face it: you want to know
new functions, new performance gains and new extensions, of what PDO is and why you should care about it. Alrighty then…
which arguably the most important is PDO: yet another new
three-letter acronym that stands for PHP data objects. The what, why and how of PDO
Back in LXF48 we looked at how to use the Pear::DB package to
Faster than a speeding PHP 5.0 provide database-agnostic SQL querying in PHP scripts.
A lot of work has gone into making PHP 5.1 more efficient at Pear::DB accomplishes this mighty feat by forcing you to use
even the most basic level. So, while basic compilation and plain SQL, and abstracting the database function calls so you
execution has been optimised, more advanced things such as can move between servers easily. Its weakness is lack of speed:
the switch() statement, variable fetching and magic method Pear::DB itself is written in PHP, and needs to jump through
invocation have also been tuned. scandir() is now ten times various hoops to call the right functions. PDO is designed to take
faster, various array functions have been revisited with an eye to half of Pear::DB – the part that handles many databases
S performance, and realpath() now through combined function calls – and move it into the core of
■ You can use a file as a DSN PHP as a C extension. This is much faster, and still leaves
by specifying file://path/to/ Let’s see how
fast this new PHP Pear::DB as a viable project to handle the SQL abstraction.
your/file. Inside that file you
really is… Confused yet? Bear with me. In PHP 5.0, if you wanted to
need to put the DSN string.
write SQL that would work on any database, using PHP that can
■ Instead of PDO_FETCH_ connect to any database, you needed to use Pear::DB. Pear::DB
LAZY you can use PDO_
handles the part of connecting to multiple databases by
FETCH_ASSOC to mimic
exposing functions like query() and replacing them with mysql_
mysql_fetch_assoc().
connect(), pgsql_connect() and so on depending on your
■ If you prefer to execute
connection. This last part is very slow, so this is the part that
the query and loop over it
PDO takes over. Instead of changing query() for the correct
separately, use the fetch()
method on the object you get
function then calling that instead, PDO calls the function directly.
back from $db->query(). Using PDO isn’t the end for Pear::DB: it still has a valuable life
ahead of it. But for the rest of us who just want a nice way to
■ Pressing Forward four
times in Unreal Tournament
move between the mysql and mysqli extensions, PDO is perfect.
uses your adrenaline to give There’s no point talking about PDO if we’re not going to put it
you extra speed. Mwahaha! into practice, so here goes. Our first script will connect to a local
MySQL server with the username ‘lxf’ and the password

90 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.tut_php 90 21/9/05 7:30:01 pm


TUTORIAL PHP

‘r0xx0r5’, then open the database ‘filch’ and store the connection Database-
for later use. All set? independent
SQL
$db = new PDO(“mysql:dbname=filch;host=127.0.0.1”, “lxf”,
“r0xx0r5”);
If you’re expecting five more lines of code, I’m sorry to
disappoint: that’s all you need to connect and get ready for a Pear
DB
query. If you’re used to calling mysql_connect() and mysql_
select_db(), then you’ll notice it has all been amalgamated into
a Pear::DB-style data source name (DSN). A PDO DSN is made
up of various key=value fields, preceded by the type of database
you want to connect to. In the example above, mysql is the MySQL- Postgres- Oracle- Other DB-
database type, filch is the name of the database to select (the specific specific specific specific
SQL code SQL code SQL code SQL code
dbname key), 127.0.0.1 is the IP address to connect to (host),
lxf is the username and r0xx0r5 is the password.
You need the appropriate PDO driver installed to connect to
a given database type. In the example above we’re using ‘mysql’,
which means we need to have the MySQL driver installed – ie
PDO
compiling PHP using --with-pdo-mysql. The PDO extension is
compiled in by default, which means you only need to select the
drivers you want to add to it. Other drivers include --with-pdo-
pgsql for PostgreSQL, --with-pdo-oci for Oracle, and so on.

Quick queries MySQL Postgres Oracle etc


Of course, that’s such a simple script that it’s not surprising it’s
just one line, so let’s expand it to query the database. For this
we’ve created a very simple table called ut_results, which // eek! We can’t possibly let *that* get committed to the Pear::DB and PDO can
contains the names of players in Unreal Tournament games, plus table... happily live together: one
handles converting your
the winners. With that table, here’s the PHP code you need to $db->rollBack();
SQL, and the other links
query it: ?> multiple back-ends to one
foreach($db->query(“SELECT Winner from ut_results;”) as set of classes and methods.
$row) Catching errors
echo $row[“Winner”], “\n”; The last thing to look at is how to catch errors that get thrown
Yes, it only takes two lines to do. If you’re pining for the days when something doesn’t work as planned. PDO, being a modern
of mysql_query() and mysql_fetch_assoc() loops, then I’m PHP exception, can be made to use other PHP exceptions to
sorry: PDO is just easier to use. The nice thing about the above handle fatal errors, rather than just send back unusual return
code is that it encapsulates the entire query and extraction into values. By default it adopts a mix of things: fatal errors (‘your
just one line. At first sight you might think that it runs password was rejected’) use exceptions, whereas lesser errors
$db->query() multiple times, but it doesn’t – if you’d like to (‘that query didn’t work’) quietly send back false return values. I
confirm this for yourself, go into the MySQL monitor and run the don’t know about you, but I prefer it when extensions act as full
status command to see the query count. exception citizens: I want everything as an exception, darn it!
You can make your querying even easier by activating the Fortunately, PDO lets us tweak its behaviour to force exceptions
aptly named lazy mode. Here, rather than reading each row as for all errors, with the setAttribute() function. Here’s the code:
an array, you can have the whole thing converted into an object <?php
for you using the field names as the variable names. To do this, try {
just pass PDO_FETCH_LAZY as the second parameter to $db = new PDO(“mysql:dbname=filch;host=127.0.0.1”,
$db->query(), like this: “lxf”, “r0xx0r5”);
foreach($db->query(“SELECT Winner from ut_results;”, PDO_ $db->setAttribute( PDO_ATTR_ERRMODE, PDO_
FETCH_LAZY) as $row) ERRMODE_EXCEPTION );
echo $row->Winner, “\n”; try {
If your database supports transactions, these are also $result = $db->query(“SELECT Winner from ut_sresults;”,
available. You’ll need MySQL 4.1, PostgreSQL, Oracle or some PDO_FETCH_LAZY);
other compliant database; without one of these, the transaction foreach($result as $row) {
commands are ignored. To get started, run the echo $row->Winner, “\n”;
beginTransaction() method on your database object, then go }
ahead and run all the queries you want. As long as you don’t } catch (PDOException $ex) {
alter the structure of tables by adding or removing columns echo “Query failed: {$ex->getMessage()}\n”;
(some databases will flush the transaction in this situation) you’ll }
be fine. Once you’re done querying, run either commit() or } catch (PDOException $ex) { NEXT
MONTH
rollBack() depending on whether everything went OK or not. echo “Couldn’t connect: {$ex->getMessage()}\n”;
Here’s an example: }
<?php ?> Rich treasures await you
$db = new PDO(“mysql:dbname=filch;host=127.0.0.1”, “lxf”, Using two try/catch statements we can catch two when you know how to
“r0xx0r5”); different types of exceptions using the same interface with the
$db->beginTransaction(); PDOException class: the outer one catches problems Google API.
$db->query(“INSERT INTO great_bands (Name) VALUES connecting to the database, and the inner one catches
(‘Marillion’); bad SQL queries. Easy as pie. LXF

www.linuxformat.co.uk LXF73 DECEMBER 2005 91

LXF73.tut_php 91 21/9/05 7:30:06 pm


TUTORIAL PHP

SCRIPT PROGRAMMING

PHP Website authentication


Paul Halfpenny explains how to set up authenticated areas of a website with PHP and MySQL.

There are many reasons to create secure areas on a as long as the now-authenticated user is within the protected
THE AUTHOR website that you can keep other people out of. For area. However, if the username and password typed into the
Paul Halfpenny is product instance, you may wish to create an administration dialog box cannot be authenticated, the dialog box will again be
manager at Hostway UK, area where you can update your website or upload new displayed, prompting the user to try again. This cycle will be
where he coordinates R&D documents. This works both as source control and a way to allow repeated until the proper username–password combination is
between the hosting non-technical staff to carry out basic tasks. entered or the user gives up.
company’s international But the most popular reason in the past few years has been A simple PHP script can mimic the HTTP authentication
technology departments. He to create member’s areas – parts of your site that are only challenge–response system by sending the appropriate HTTP
is a keen proponent of open
accessible to visitors who have registered for content or pay a headers that cause the automatic display of the username/
source technologies and a
subscription fee. In this model, the site owner needs to ensure password dialog box. PHP stores the information entered in the
proficient PHP coder.
that the visitors entering the member’s areas are legitimate dialog box in three global variables ($PHP_AUTH_USER,
users, and the best way to achieve this is to provide a username $PHP_AUTH_PW, and $PHP_AUTH_TYPE). Using these
and password for each visitor. But how do you ensure that the variables, you can validate input against a list of login details kept
username and password are correct? in a text file, database, or any other list you have lying about.
Well, there are a couple of ways to do this. You could use Let’s start slowly, by writing a PHP script that simply checks
basic HTTP user authentication, hard-coding a specific for a value (any value) for $PHP_AUTH_USER. If no value exists,
username/password combination into a script. Or you could the script will send a 401 unauthorised message in the header.
authenticate against a database. We will look at both here. This header will cause the username–password dialog box to
appear, and execution of the script will halt. After the user enters
HTTP authentication with PHP some values in the dialog box and presses the OK button, the
First, hard-coding. Basic HTTP authentication uses a challenge– values will be sent and the page will reload. When a value like
response scheme to authenticate users attempting to access a $PHP_AUTH_USER is entered, the first section of the script will
password-protected page. The challenge process begins when be skipped and the header information will not be sent.
the user requests a file from a web server. If the file is in a <?php
protected area, the server responds by sending out a 401 // File Name: auth01.php
(unauthorised user) string in the header of the response. The // Check to see if $PHP_AUTH_USER contains info
browser detects that response, and up pops the username and if (!isset($PHP_AUTH_USER)) {
password dialog box. The user enters their username and // If empty, send header causing dialog box to appear
password in the dialog box, then clicks OK to send the header(‘WWW-Authenticate: Basic realm=”Secret Area “’);
information back to the server for authentication. header(‘HTTP/1.0 401 Unauthorized’);
If the username and password pair is valid, the protected file echo ‘Authorization Required.’;
will be displayed to the user. The validation will carry through for exit;

92 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.tut_authentic 92 20/9/05 6:44:31 pm


TUTORIAL PHP

} else { +-------------+----------+----------+
// If not empty, display values for variables | real_name | username | password |
echo “<P>You have entered this username: $PHP_AUTH_ +-------------+----------+----------+ Authentication with CGI
USER<br>You have entered this password: $PHP_AUTH_ | Joe Smith | joe | ai890d | The $PHP_AUTH_USER,
PW<br>The authorization type is: $PHP_AUTH_TYPE</p>“; +-------------+----------+----------+ $PHP_AUTH_PW, and
} | Jane Smith | jane | 29hj0jk | $PHP_AUTH_TYPE global
?> +-------------+----------+----------+ variables are available only
Now we’re going to validate a username–password pair | Mary Smith | mary | fsSS92 | when PHP is installed as a
against values hard-coded within the script. This technique is +-------------+----------+----------+ module within Apache. If
you’re using the CGI version
useful if there is only one username–password combination that | Bob Smith | bob | 2NNg8ed |
of PHP, you’re limited to
everyone uses (for example, the administrators of a website). +-------------+----------+----------+
.htaccess-based
This script is quite similar to the first example, but the main You’ll need to look at all the records in the database when a
authentication or database-
difference is that if a value has been entered, the script runs an visitor enters a username and password to find a match. To do driven authentication using
if/else statement: If an incorrect value has been entered for the this you can use an SQL statement, similar to this: HTML forms to input the
username or the password, display that dialog box again. But if SELECT * FROM users WHERE username=’$PHP_AUTH_ username and password, and
the username is valid (else), send a message to that effect. USER’ and password=’$PHP_AUTH_PW’ PHP to validate matches.
<?php With this SQL query, we are looking to get a result value that
// File Name: auth02.php we can act on. Counting the number of matched rows will be
// Check to see if $PHP_AUTH_USER contains info enough, since the number will be either zero (no matches) or
if (!isset($PHP_AUTH_USER)) { one (a record in our Users table with a match):
// If empty, send header causing dialog box to appear mysql_connect(“hostname”, “username”, “password”) or die
header(‘WWW-Authenticate: Basic realm=”Secret Area “’); (“Unable to connect to database.”);
header(‘HTTP/1.0 401 Unauthorized’); mysql_select_db(“dev_i2ii_com”) or die (“Unable to select
echo ‘Authorization Required.’; database.”);
exit; $sql = “SELECT * FROM users WHERE username=’$PHP_
} else if (isset($PHP_AUTH_USER)) { AUTH_USER’ and password=’$PHP_AUTH_PW’”;
if (($PHP_AUTH_USER != “user”) || ($PHP_AUTH_PW != $result = mysql_query($sql);
“password”)) { $num = mysql_numrows($result);
header(‘WWW-Authenticate: Basic realm=”Secret Area”’); Finally, you need to put the connection sequence in the
header(‘HTTP/1.0 401 Unauthorized’); context of your authentication script. This will give you a script
echo ‘Authorization Required.’; that works through the code flow in a structured format.
exit; <?php
} else { // File Name: auth04.php
echo “<P>You’re authorized!</p>“; if (!isset($PHP_AUTH_USER)) {
} header(‘WWW-Authenticate: Basic realm=”Secret Area “’);
} header(‘HTTP/1.0 401 Unauthorized’);
?> exit;
Try entering an incorrect username and a correct password, } else if (isset($PHP_AUTH_USER)) {
or a correct username and incorrect password, or an incorrect // If non-empty, check the database for matches
username and an incorrect password. You’ll notice that the mysql_connect(“hostname”, “username”, “password”) or
server will not validate the combinations. Now try using ‘user’ for die (“Unable to connect to database.”);
the username and ‘password’ for the password. This time you mysql_select_db(“dev_i2ii_com”) or die (“Unable to DB.”);
will be authorised. $sql = “SELECT * FROM users WHERE username=’$PHP_
The drawback with this method is that many sites will require AUTH_USER’ and password=’$PHP_AUTH_PW’”;
a unique username and password for each user, to ensure that $result = mysql_query($sql);
the site owner can track the number of visitors gaining access. // Get number of rows in $result. 0 if invalid, 1 if valid.
Of course, with information on the internet so easy to exchange, $num = mysql_numrows($result);
unique user–pass combinations also help to make sure that their if ($num != “0”) {
revenue model does not dry up after the first customer! echo “<P>You’re authorized!</p>”;
exit;
Authenticate against a database } else {
To avoid this you can keep the information in a text file or in a header(‘WWW-Authenticate: Basic realm=”Secret“’);
database, and match those values just as easily as you matched header(‘HTTP/1.0 401 Unauthorized’);
hard-coded values. Either is valid as a method, but with echo ‘Authorization Required.’;
increasing visitors to a site, it does make more sense to use a exit;
database that can handle multiple requests and can be updated }
on the fly. }
Here we’ll be exploring how to match usernames and ?>
passwords to a list residing in a database table. This example We’ve discussed two types of authentication, each as suitable
uses PHP’s functions to connect to a MySQL database, but you’re as the other for protecting secure areas of your website. The
free to substitute any of the built-in database connectivity choice of which to use will be largely dependent on the needs of
functions in order to make this work with any other database your site. This will become apparent when you decide how many
that PHP supports. users will need to be given login credentials. The principle is the
To store your usernames and passwords you will need to same – allow access if the values entered are the same as those
create a table in a database to hold the information. Our table is stored. The only decision you need to make now is who should
called ‘Users’ and looks like this: be allowed access. LXF

www.linuxformat.co.uk LXF73 DECEMBER 2005 93

LXF73.tut_authentic 93 20/9/05 6:44:39 pm


ANSWERS

Answers
If you really are stuck and the HOWTOs yield no good result, why not write in?
Our resident experts will answer even your most complicated problems.

OUR EXPERTS Triple booting

Q
I have a 40GB hard drive
Whatever your question is, we can split into two 20GB
find an expert to answer it. From partitions for Windows
installation and modem woes to XP and Knoppix. I made
network administrations, we will get
a new 10GB partition and installed
the answer for you – just fire off a
letter or email and it'll all be taken Fedora Core 4 from the [LXF70]
care of. coverdisc, wanting a triple boot so
I could choose Windows, Knoppix
or Fedora Core. When I rebooted
Having run a small after installation, only Fedora Core
ISP and produced
and Windows were on the boot
coverdiscs for
Linux Format, menu, not Knoppix. I went into
Neil Bothwick Fedora Core, and Knoppix is still
describes himself there on hda6. I installed Knoppix
as a Linux jack-of-all-trades.
again hoping that it would add
Fedora to the boot menu, but it did
not. Now it only shows Windows XP
Nick Veitch is the or Knoppix. Adding extra distros to your PC’s boot menu is as easy as copying and
editor of the pasting, but you usually have to do it yourself.
magazine, and
Is there a way to add Fedora to
answers your easy the boot menu so I can pick XP,
questions! Or Knoppix, or Fedora Core? My setup mkdir -p /mnt/fedora options for triple (and more) booting
indeed anything to is as follows: mount /dev/hda3 /mnt/fedora with Linux, there is an excellent
do with Grub, Lilo, Netatalk, Vi...
hda1 Windows XP Then select System > More reference at http://home.planet.
hda3 Fedora Core Applications >File Manager – nl/~elst0093/motub/multboot.html.
hda6 Knoppix Superuser Mode from the KDE menu, NB
Hans Huberland From the LXF forums navigate to /boot/grub and load
is Rackspace This is a fairly common grub.conf. Now go to the same Server migrations
Managed Hosting’s
Linux expert and a
real-life system
administrator on
call for your questions.
A situation when installing a
second Linux distro. The
installers are good at
detecting an existing Windows system
and adding the relevant option to the
directory in your Fedora setup and do
the same. Highlight the three lines in
the Fedora file starting with ‘title
Fedora Core’ and copy them to the
Knoppix file. Save and reboot and you
Q
I have had a dedicated
Linux server with a
hosting company for
about six years or so. As
part of their customer-retention
Send your questions for our experts to:
boot menu, but very few will pick up should get your three way choice. strategy they have arranged for me
Linux Format, Future Publishing,
on other Linux installations. If the Fedora installer used LVM to upgrade to a newer server with
30 Monmouth Street, Bath BA1 2BW
or email: lxf.answers@futurenet.co.uk.
The result, as you have already (Linux Volume Manager) when better bandwidth allowance, SLA
Got a sysadmin query? Send it to Hans discovered, is that your previous distro partitioning the disk, you might not be [service level agreement] and so on.
at sysadminqa@rackspace.co.uk. is still installed, but there appears to able to access your Fedora files from The server is used by my very
be no way to boot into it. As a short- within Knoppix, as Knoppix doesn’t small business for email, web
term solution, you can usually use the support LVM. In this case, you need to hosting, a testing server and
installation disc in rescue mode to perform the process from Fedora, so managing DNS for domains that we
boot your installation. Pressing F1 after you’ll need to first reinstall the Fedora own. A few friends and family also
booting from the disc usually shows Core boot loader from the installation use the server for their email and
the options. disc. Start the installer as before and web hosting.
The long-term solution is to add an select the Upgrade An Existing Is there a best-practice way of
entry to your current boot menu for Installation option. Select the Update transferring DNS, websites, home
the hidden distro. This is made easier Bootloader Configuration option to directory files and email (Sendmail)
here because both Knoppix and reinstall the Fedora bootloader. to the new server with minimal
Fedora Core use the Grub bootloader. Now let the update finish, boot into disruption for myself and other
You need to load the Grub Fedora and copy the relevant section users? I cannot afford to pay the
configuration files from the two distros of the Knoppix boot menu to that of hosting company’s staff to do the
into a text editor. First you will need to Fedora core. transfer for me.
mount the other distro’s partition with If you are interested in the various Lee

94 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.answr 94 23/9/05 10:30:44 am


ANSWERS

Server migration, especially

A when changing distribution


and versions (MySQL,
Apache and the like), is
never a straightforward procedure.
However, it is a good opportunity to
Four starters

Q
Regarding booting from
an external USB or
CompactFlash device – I
have four questions:
ALL ABOUT RACKSPACE
LXF Sysadmin
Answers – in
association
with Rackspace
revise your current setup, and just as 1. Is it possible to boot from a USB Managed
when moving house, you will come flash drive if your BIOS doesn’t Hosting
across a lot of stuff that can be thrown support USB booting?
out. Also, this is a perfect opportunity 2. Can a boot CD with Smart Boot
to audit all your configurations and Manager pass off the process to
create and test backup and disaster the USB?
recovery strategies. 3. Is it possible to fit an
On the new server, set up and test uncompressed Knoppix or Kanotix
all the zone files, email configurations, CD to a 2MB CompactFlash or USB? When it comes to managed hosting the outset and will remain on your
Rackspace is unique. We are the only account. All Rackspace employees are
user accounts and websites. You can 4. What parts of the system would
hosting company to guarantee 100% committed to ensuring customer
trick your workstation into believing be better off on the hard drive, eg
network uptime and we will even satisfaction, and they will not rest until
that the sites are on the new IP by swap or logs? pledge to replace faulty hardware (let’s a client problem is resolved.
modifying your hosts file (/etc/hosts From the LXF forums face it, it does happen) within an hour. Since Rackspace was established in
on Linux, c:\windows\system32\ I’ll answer each of your

A
As you would expect from Red Hat’s 1998, it has specialised in managed
drivers\etc\hosts on Windows XP). questions in turn. only Advanced Hosting partner you will hosting – nothing else. We’re not an ISP,
DNS is the first target for migration. 1. Yes, but you will need receive Fanatical SupportTM and instant we don’t sell domain names, and we
Point NS records at the registrar to a boot floppy to do this. For emergency response from fully- won’t offer website design – all we do
the new name servers at least three example, Puppy Linux has a floppy qualified level three technicians, is managed hosting. As a result, we do it
days ahead of the planned switchover. disc image on the website that can be available 24 hours a day, 365 days a very well and 97% of our customers
year. No answering machines, no would happily recommend us.
Reduce the TTL (‘time to live’) on your used to boot it from a USB flash disc.
diversions, no silly on-hold messages. For information on how we can
new records to a reasonable 35 See www.goosee.com/puppy.
All our customer platforms are improve your web hosting, please
minutes so that on IP switchover 2. No. Smart Boot Manager does housed in state-of-the-art, secure data contact us at www.rackspace.co.uk
visitors will clean their cached records not support booting from USB devices. centres and can be fully customised to and ask any questions you have about
of your IPs and pick up the new ones 3. It should be, although you meet any requirement. A dedicated the ultimate managed hosting service.
in no time at all. Set the TTLs back to shouldn’t uncompress the image. USB account manager is allocated to you at See page 99 for Rackspace’s star letter.
a more internet-friendly value, say 24 reading is quite slow, so any
hours, a few days after the migration. reasonably powerful machine would
Depending on your budget and probably uncompress faster than it a USB device, and DSL is a cut-down 4. Anything that involves writing,
how critically reliant your sites are on reads, making the compressed image Knoppix. So you should be able to put especially frequent writing like swap
a database back-end you may have to faster. There are instructions for a full Knoppix on to a 1GB flash disc and log files, should not be placed on
take extra precautions on the way you installing Knoppix on to a 1GB (or by booting DSL, running the flash device. Flash memory has a
move over your databases. larger) flash disc at www.knoppix. sudo dsl-usbinstall to install it to the limited write lifetime, typically between
Finally, tend to your log files and net/forum/viewtopic. USB device and then replacing the 100,000 and 1,000,000 writes (and
web statistics. They’re often forgotten php?p=64999#64999. Alternatively, knoppix/knoppix file with the as little as 10,000 writes for older >>
during migrations. HH Damn Small Linux can be installed on full-sized one from a Knoppix CD. devices). If the system is continually

A QUICK REFERENCE TO: SU


Everyone knows you should never log running su. For example, SUSE 9.3
in to your desktop environment as allows you to run X programs, but
root – it’s not safe. So what should you SUSE 9.2 does not. If this happens to
do when you need to run a command as you, install Sux. It almost certainly comes
root? Some programs, such as the with your distro, but may not be installed
KDE Control Centre, will ask for your root by default. Sux works like Su but also
password when you want to do enables X explicitly.
something that needs root access. At If you only want to run a single
other times, you can use the su command as root, you can pass it to su,
command, which we’ll explain here. for example:
Su does not, as is often thought, stand su -c “kwrite /etc/fstab”
for super user, but for switch user. We The other option you may need to use
can use it to temporarily log in as is ‘-’ on its own. The su command
another user. Unless you give it the name normally gives you root privileges, but
of the new user, it logs you in as root you still have all the settings, such as
after you give it the correct password. path and home directory, of your normal
Now you can do whatever you need to user. In contrast, su - gives you a full root
do, before pressing Ctrl+D to log out and login. The difference may seem subtle,
revert to your normal user. Depending on but it can be important. If you have
how your distro sets things up, you may trouble running a system command with Switching user with the su command (lower window) adds a new entry
not be able to run X programs after su, try su -. in the system log (upper window).

www.linuxformat.co.uk LXF73 DECEMBER 2005 95

LXF73.answr 95 23/9/05 10:30:48 am


ANSWERS

FREQUENTLY ASKED QUESTIONS LIVE CDS


FAQ What is a Live CD? We cannot cover loaded they should run as fast as any
Live CDs without
It is a distro on a single CD (or other distro.
mentioning Knoppix.
DVD) that runs directly from the disc. This is the latest
version, now available FAQ What hardware will
FAQ Aren’t all Linux on DVD with even they run on?
distribution CDs more software. Most Live CD distros are written for
bootable? How are Live CDs x86 hardware, so they usually run on
different? AMD64 boxes too. There are a couple
A typical distro CD boots into an of dedicated AMD64 Live CDs, and
installer, so that you can put the distro Ubuntu does one for PPC. Support for
on your hard disk and run it from specific items of hardware, such as
there. A Live CD distro runs direct graphics chips and modems, is the
from the CD, booting straight into the of this approach is that you can connect both and boot from MEPIS to same as for any other Linux distro.
desktop in most cases. There is effectively change any file on the CD, prepare the new disk and copy over all Where the Live CDs are different is in
nothing to install, just boot and run. not just your home directory. You can your data. the way they automatically detect and
even install new software. configure any hardware they find while
FAQ Can I save my work FAQ And the disadvantages? booting. The Knoppix hardware
using a Live CD? FAQ What are the benefits of There’s the limited write ability, detection system is exceptional.
Not to the CD of course, they are Live CDs? and the need for a second device to
read-only. However, most Live CD You can run them anywhere, on any hold any files you do write. The other FAQ Where can I find these
distros make some provision for saving computer capable of booting from a is that a Live CD distro is slower in Live CDs?
work and settings. The favourite CD. Want to buy a new laptop? Boot it operation than a normal hard disk On our coverdiscs, of course (see
approach is to keep the home from a Knoppix CD to see whether all installation. The equivalent of your Kanotix with LXF69 or MEPIS with
directory on a USB pen drive, so all its hardware is recognised and hard disk is held in a large, LXF65). You can also download ISO
your work and settings go here. configured – an instant Linux compressed file on the CD. Usually images from the following websites:
Alternatives are floppy drives and hard compatibility test. Live CDs are also containing around 2GB of files, it’s ■ Knoppix www.knopper.net/
disk directories. Some Live CDs, such useful for disaster recovery and other packed into less than 700MB. knoppix/index-en.html
as ATmission, use a clever trick to maintenance. If you made a mistake CDs have longer seek times and ■ Ubuntu www.ubuntulinux.org
make it look like you are writing data editing a critical file and your slower read speeds than hard disks, ■ ATmission www.atconsultancy.nl/
back to the CD, when it is actually computer won’t start up, boot a Live and then the data has to be atmission
being written to a special file on a CD and fix the damage. If you want to uncompressed. Expect to see longer A long list of Live CDs is at www.
hard disk or pen drive. The advantage swap your hard disk for a larger model, program loading times, but once linuxlinks.com/Distributions/LiveCD.

>> could
writing to the same area of memory, it
fail in a few months.
that Mandriva needs to have my
DVD in drive hda (my CD drive) and
DVD is mounted at /mnt/cdrom2.
Fortunately, the solution is dead
DVD. Click on the DVD entry, press
Edit and change the URL entry from
Your choices are: to put these on I must then hit Enter. When I put it simple. Put the DVD in the correct removable://mnt/cdrom/media/
the hard drive, which limits portability; in, the disc is immediately ejected – drive and start the Mandriva Control main to removable://mnt/cdrom2/
to write logs to a RAMdisk and copy it not surprising as it is a DVD! If I try Center. Go into the Software media/main, that is, the path to your
back to the flash drive on shutdown, putting the DVD in the DVD drive Management section and select Media DVD drive. Click on Save Changes and
which would limit the writes to one per instead and hit Enter, the disc is Manager. This will show you a list of all should be well. NB
session; or to use the JFFS2 filesystem again ejected. If I then simply try to software sources – possibly only the
from http://sources.redhat.com/ abandon that task I am forced to
jffs2. This is a special filesystem end the session to do so.
designed to address this problem with My /etc/fstab contains
flash devices. If you want a /dev/hda /mnt/cdrom auto umask=0,
ready-made distribution for a flash user,iocharset=iso8859-15,codepage
drive, try Flash Linux from =850,noauto,ro,exec,users 0 0
http://flashlinux.org.uk. NB /dev/hdc /mnt/cdrom2 iso9660
user,iocharset=iso8859-
15,noauto,ro,exec 0 0
Ejected and rejected From the LXF forums

Q
I have very recently This occasionally happens
installed Mandriva 2005
LE from the [LXF67]
coverdisc. The install
went very well for a first time Linux
user. But I have a problem with
A with Mandriva installations.
Despite the installer running
from the DVD drive, it will
sometimes add the path to your CD-
ROM (or CD-RW) drive to its list of
installing some of the additional software sources. In your case, it is
programs. Sometimes I am informed looking at /mnt/cdrom when your If Mandriva forgets where your DVD drive is, it is easy to remind it.

96 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.answr 96 23/9/05 10:30:50 am


ANSWERS

Linux 9.2 installation, on a 40GB Provided the mount command make sure things really are fixed. Now
Desert foxed hard drive. This allows me to gave no errors and df showed the you can press Ctrl+D to continue with

Q
I have to SSH into three completely max-blast Windows partitions, you should have full read the boot process.
Red Hat servers at one when I want to start again without access to them. Write support for If the problem persists, it is likely
desert outpost (I work for affecting my documents or Linux. NTFS is very limited in Linux, so that your disk has a fault. Your first
an oil company). The My problem is that SUSE cannot see Windows partitions are usually action should be to back your data up,
TCP/IP connection to the field either of my Windows directories – mounted read-only. If the mount now – not tomorrow. Then you should
servers is an unreliable internet over when I look under storage devices it command gave an error along the install the Smartmontools package –
satellite link. Very often I find myself shows only the Linux filesystem. lines of ‘wrong fs type, bad option, bad from http://smartmontools.
losing connectivity halfway through I’ve tried Mandriva and Fedora superblock...’, double-check the options sourceforge.net or an Ubuntu or
an operation, and if I leave a session Core 4, but the same thing happens. you typed into /etc/fstab. NB Debian repository, and run
open for more than 15 minutes, the I really want to be able to listen to smartctl /dev/hda
satellite router (to which I have no my music in Linux (and Windows) No boot Ubuntu for a report on your disk’s health. NB

Q
access) rudely drops my connection. without changing my I wonder if you can help.
I know that I can run most windows/documents partition to I am running Ubuntu and Virtually gone

Q
applications in the background but I FAT32. Any ideas? during boot it says the I have just installed
am looking for a solution to Carl Draper following: Fedora Core 4 and have
maintain a persistent connection. Do If you installed SUSE after ‘fsck failed. Please repair one quick question –
you know if there is a budget
solution that I can implement?
Greg
Yes, there is. The Nohup
A Windows, the installer
should have picked up your
Windows directories and
added them to /etc/fstab, so they
manually.
* CONTROL-D will exit from
this shell and continue
system startup.
where have all of the
virtual terminals gone in this
release? Pressing Ctrl+Alt+F1 to F6
just gives blank screens.

A command runs a command


immune to hang ups, with
output to a non-TTY, while
Screen is a full-screen window
manager that multiplexes a physical
would be mounted on boot. If this is
not the case, you need to add them to
/etc/fstab manually.
This has to be done as root, so
open a terminal, type sux - to log in
root@(none)::~#’.
Ctrl+D does indeed continue the
boot process and brings me to the
login screen. Logging in gives the
error message:
Marc McRae

A
This is a known bug. The
fault lies in the file
/usr/X11R6/lib/modules/
libvgahw.a so move this
terminal between several processes as root and give your password. Use ‘Your home dir is listed as: somewhere safe (don’t delete it, just in
(typically interactive shells). whatever editor you prefer to change /home/john, but it does not case) and replace it with the same file
I am a big Screen fanatic. When the file, for example: appear to exist. Do you want from Fedora Core 3. If you do not
invoked as Screen, you can create new sux - to log in with the / (root) dir have FC3 installed, you can get the
windows through a Ctrl+A C with <enter root password> as your home dir. It is unlikely file from http://rapidshare.de/
Ctrl+A “ (note that is double quotes) kwrite /etc/fstab that anything will work unless files/2399145/libvgahw.a.html. This
to list and select active windows. You need to add two lines to the you use a failsafe session’. is advertising-financed web space, so
Ctrl+A D detaches from Screen, to end of this file. This example assumes From the LXF forums you will need to scroll down to the
which you can reattach by invoking your Windows NTFS partitions are Despite what it sounds like, bottom of the page, click
screen with the -r parameter. If your
session drops and you want to
reattach to a screen that hasn’t been
properly detached, invoke as
screen -x. Amazing! HH
the first primary partition on each
drive. Otherwise, change the device
names accordingly.
/dev/hda1
ntfs
/windows/C
ro,users,gid=users,umask=0
A Fsck is not a chain of
clothes shops, nor a strange
Linux curse. It is the
FileSystem Check program, which
performs a similar function to the likes
the Free button then
scroll to the bottom of
the next page for the
actual download link.
Copy the replacement
002,nls=utf8 00 of Scandisk. file to /usr/X11R6/lib/
Fstab in the dark /dev/hdb1 /windows/D The first message means that the modules/ and reboot.

Q
I have an old but ntfs ro,users,gid=users,umask=0 boot process has detected an error on Your virtual terminals
dependable Compaq 002,nls=utf8 00 one of your partitions that needs your should now be back.
Deskpro EN (733MHz, Save the edited file, then create attention. It wants you to do this
488MB of RAM) which the mount points. Mount the partitions before pressing Ctrl+D to continue. Zombie
I’ve set up with a 10GB hard drive
with Windows XP. I also have the
and check that they are mounted.
mkdir -p /windows/{C,D}
By pressing Ctrl+D straight away you
have left it in its faulty condition, so
fears

Q
My Documents directory including mount -a the partition could not be mounted. I have
all my music files, and my SUSE df -h Presumably, this partition is mounted recently
at /home, which explains why been
/home/john cannot be found when it humiliated
fails to mount. by my ISP for spamming.
The error message should have It turned out that a forum
told you which partition was affected, I had set up on my home
SUSE’s for example /dev/hda6. If not, typing box had been hacked and I
installer grep /home /etc/fstab was mass mailing the whole
should have
will tell you which it is. Now type the world. That issue has been
detected your
Windows following code, replacing ‘N’ with the fixed but now I’m losing
NTFS partition partition number: sleep fearing that my server is
and set up fsck -f /dev/hdaN a zombie. Do you recommend
read access. If After some disk activity and various tools or frameworks for quickly
not, you only
have to add a screen messages, Fsck should exit and reliably telling if a machine
couple of lines without an error. To be safe, I prefer to has been broken into? >>
to /etc/fstab. run the command a second time, to Andy

www.linuxformat.co.uk LXF73 DECEMBER 2005 97

LXF73.answr 97 23/9/05 10:30:53 am


ANSWERS

>> While there is no short known clean copy of the password file.

A answer to that, there are


some simple steps that can
be followed to reveal most
common scripted break-ins.
1. Use ls -lai to determine whether
6. Check Apache log files for
tell-tale signs of exploits where utilities
such as Wget were used to download
some form of malware. Check other
system log files for anything suspicious
there are any files in /tmp and – in particular, for log files that have
/var/tmp that shouldn’t be there. In been redirected to /dev/null.
particular, watch out for executables, 7. Finally, Chkrootkit (www.
scripts and text files that are full of chkrootkit.org) checks your server
email addresses. for signs of rootkit presence. HH
2. On RPM-based systems it is
possible to verify whether system SUSE networking

Q
utilities such as Ls, Ps, Netstat and so I just installed SUSE 9.3,
forth have been replaced with ones and am having a couple
that hide the hacker’s activity. On a of networking problems.
Red Hat-based system, the following I’ve got the system all
packages should be verified using running smoothly so far but I’m
rpm -V <packagename>, for the trying to share my internet
following packages: util-linux, connection with two other Browsing Windows shares in KDE is as easy as typing smb:/ in the location
coreutils, net-tools, procps and lsof. computers running XP. I’m also bar. Too much typing for you? you could always set up a bookmark.
3. Check running processes with trying to have my Linux machine
ps -auxf. identify my XP network for mapping former would be your local Ethernet, internet connection. On each
4. Use netstant -tanp to find out drivers and view shared folders and the latter your cable modem, which computer, set the gateway address to
whether there are processes listening so on. I have a problem with my could be Ethernet or USB. the IP address of the local interface
on strange ports, or inexplicable cable modem: now and again my You can set up connection sharing on the SUSE computer.
amounts of outgoing traffic. The -p internet connection does not work from SUSE’s Yast. First you need to Browsing shared folders on your
option shows which program is being after booting up. Can you make sure your internet connection is windows machines is easy if you use
used. Very often this is named in a recommend a good book that working properly on the SUSE the default KDE desktop. Open a file
way to make it look like a legitimate covers issues like this without too machine, then turn on routing by manager window and type smb:/
program (such as httpd). The lsof much technical stuff? going to Network Services > Routing (that’s a single slash) in the location
command can also list listening ports. James Caven in Yast and ticking the Enable IP bar. You’ll see a list of your workgroups
5. Review /etc/passwd to see if You need two network Forwarding button at the bottom. (usually only one) and you can browse
any users have been added to the
system or have had their UID changed.
It’s a good idea to compare to a A interfaces on the computer
– one to the local network
and one to the internet. The
Press Finish and it’s all done.
Now you need to tell the other
computers where to look for their
through here to access the various
shared folders.
If you want to share folders to be
accessed from the Windows
computers you will need to set up
Samba. Go to Internet & Network >
Samba in the KDE Control Centre, click
the Administrator button for root
access and set up any directories or
printers you wish to share. Make sure
your workgroup name, in the Base
Settings tab, is the same as on the
Windows boxes.
Finally, your intermittent cable
modem problem may be a timing
issue. Is this a USB modem? Does it
have an Ethernet option? If the
answer to both is yes, it would be best
to add another Ethernet card to your
computer and connect the modem
that way. If you are stuck with USB, it
is likely that the connection is not
coming up fast enough to be ready
when the computer boots. In this case,
the quick solution is to unplug and
reconnect the modem from your USB
port. This should force it to reconnect
to the ISP.
As for reading material: do you
have a boxed version of SUSE? The
SUSE manuals are some of the best
around, and have the advantage of
Gtk-chtheme and the gtk-qt module for the KDE Control Centre can control the look of GTK apps in KDE. being specific to your distro. NB

98 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.answr 98 23/9/05 10:30:57 am


ANSWERS

WIN A NEUROS DIGITAL AUDIOCOMPUTER


with Rackspace Managed Hosting

WIN!
www.rackspace.co.uk

Every month, the best question NeuroCast automatically scans the


related to systems administration FM radio dial for an available
that a LXF reader sends in wins a frequency and broadcasts using all-
prize. This month you have the digital stereo encoding, just like
chance to win the life-enhancing broadcast towers used by
Neuros MP3 digital audio computer. professional radio stations.
With a Neuros, you can manage The Neuros has many recording
all the music stored on your PC. capabilities that make it a robust tool you can play your
Create play lists. Delete songs. Get for the recording hobbyist. The favourite stations
new files, thanks to the Neuros device includes an on-board with one click,
Synchronisation Manager. No more microphone, perfect for the quick just like on your
getting stuck in front of the PC to memo or recorded lecture. It has car stereo.
make changes – do it all on the line-in recording capabilities and you Tempting, isn’t it?
Neuros, and get on with it. can record to MP3 or WAV, with a You know what to
Then use its NeuroCast feature to choice of seven recording qualities. do: email
broadcast the music on your Neuros Neuros also features a built-in sysadminqa@
device through any FM radio. FM radio with five preset buttons so rackspace.co.uk.

★ STAR QUESTION WINNER!


This issue's lucky winner is Dragan – your new Neuros digital audiocomputer will be with you shortly!

which is not ideal. What do you the way to go. It is likely that a copy also be able to kill, as user ‘apache’,
Sudo security recommend? of Sudo (www.sudo.ws) came any renegade process belonging to

Q
My web developer has Dragan preinstalled with your distribution. user ‘apache’:
been granted access to If you are running Webmin The sudo command allows Cmnd_Alias HTTPD = /etc/rc.d/
FTP and SSH into a
dedicated server that
we are renting. He can upload
pages and manage MySQL
together with an Apache include
A you will be able to create
a user that is restricted to
doing nothing but
stopping and starting Apache. First,
create a new user through
certain users or groups to execute a
number of commands as root or
otherwise specified. The
configuration file /etc/sudoers,
editable through visudo as root,
init.d/httpd
Cmnd_Alias MYSQLD = /etc/
rc.d/init.d/mysqld
Cmnd_Alias
webman
KILL = /bin/kill
ALL = (root)
file for the server’s site-specific Webmin > Webmin Users and select defines who can do what as who. NOPASSWD: HTTPD, MYSQLD
configurations. Apache Webserver. Click on the The configuration itself can be a bit webman ALL = (apache)
Since our company’s security Apache Webserver link to restrict daunting, and time spent reading the NOPASSWD: KILL
policies dictate that we cannot access specifically to whichever man pages is time well spent. Usage:
disclose the root password to a aspects of Apache administration the Here is a simplified configuration $ sudo /etc/rc.d/etc/httpd stop
contractor, we are being called contractor needs. that can be used to allow user $ sudo -u apache kill 9982
by the developer to restart Alternatively, if command line ‘webman’ to execute the Apache and $ sudo /etc/rc.d/etc/mysqld restart
Apache a number of times a day, access is preferred, Sudo becomes MySQL startup files. The user will This should set you straight. HH

http://plasmasturm.org/programs/ Centre module has no preview facility. to see a desktop environment. I


GTK on KDE gtk-chtheme as source code or RPM I’d use Gtk-chtheme to browse newly repeated the procedure using a net

Q
I’ve been using Linux for packages. There’s also a Debian installed themes, or the KDE Control load ISO from the Debian site. Same
a while, but there’s package available from the various Centre when I know which one I want. result. What is going on? What do I
something I’ve been Debian repositories. You may as well install both – some have to do to get a desktop? Why
puzzling over that I’ve An alternative solution is a module distros come with the KDE module didn’t the install create it for me?
never worked out. I use KDE for my for the KDE Control Centre that adds pre-installed – and make up your own From the LXF forums
desktop, but I still use some GTK a panel for GTK Styles And Fonts to mind. NB Debian installs very little by
apps such as Gimp. Is it possible to
apply GTK themes to GTK apps
the Appearance & Themes section.
You can get this from www. Debian desktop
A default: just the basics to
get a core system working,

Q
running under KDE? If so, how? freedesktop.org/Software/gtk-qt. I installed Sarge from a which does not include X.
Mark This module allows you to select a DVD distro. Everything During the second stage of the
Yes, you can use Gtk- theme in the same way that Gtk- seemed to go OK. At the installation, after the reboot, you are

A chtheme to preview and


select GTK themes. The
program is available from
chtheme does, or apply your KDE
theme to GTK applications. I use both
programs, because the KDE Control
end of the install, it asked
me to log in and then dumped me in
a full-screen Bash shell. I expected
asked to choose from software
collections. The first in this list is
Desktop Environment. It looks like this
>>

www.linuxformat.co.uk LXF73 DECEMBER 2005 99

LXF73.answr 99 23/9/05 10:30:59 am


ANSWERS

both unnecessary SSH access and


additional software being installed.
David
The shell using tail -n

A would return the last ‘n’


lines of the log file. This in
turn could be conveniently
piped into tac to reverse the text,
effectively listing the latest entries at
the very top.
tail -n 200 /home/phone/cdr.current
| tac
Webmin, under the Options tab,
makes such commands easily
executable. Here is a possible
configuration option:
Definition = View CDR
Command = /usr/bin/tail -n 200 /
The desktop environment collection has been selected – the web server collection has not. home/phone/cdr.current | /usr/bin/tac
Run in directory = /tmp
>> is pre-selected, because the cursor is seen by others when they just open simple: Run as user = Webmin User
in the selection box to the left of the up the shell script file? host ftp.host.com Command outputs HTML = No
name, but it is not. Package groups Anonymous user myuser Maximum time to wait for command
are only installed when there is a star The safest way to do this pass mypass = 5 seconds
in the box (see screengrab above). You
need to explicitly select the groups
you want by moving the highlight bar
over them and pressing space. If you
simply press Enter at this stage
A requires SSH access to the
server. If this is available,
you can use the scp
command to send the files. The
syntax for this is similar to cp, but it
Then you can download the files
with a single line in your script
ncftpget -f login.def dest/dir path/to/
file1 path/to/file2 ...
where login.def is the file containing
Saving the configuration creates a
View CDR button, which should
provide the functionality. HH LXF

Submission advice
without selecting anything, you will get works over an encrypted SSH link. the login information. Ncftp, the
exactly the system you describe. For example, you would download a interactive FTP client in this package,
All is not lost. There is no need to file with is able to store encrypted passwords in
reinstall. Log in as root and type scp -p user@server:/path/to/my/file its bookmarks file, but this file is not
aptitude to load the package As it stands, this will still ask for a used by the non-interactive Get and
manager. Highlight Tasks and press password, but SSH has a means of Put programs.
Enter, move down to End-User and authenticating users by means of FTP is inherently insecure. Even if
press Enter, then highlight Desktop keyfiles. If you do not already have a your password is not stored anywhere,
Environment and press ‘+’ to select it. keyfile pair, use ssh-keygen to it is still sent in plain text when logging
Press G to see what will be installed generate them. Full details are in the in. If security is important, you should
and G again to begin installation. man page, but ssh-keygen -t dsa will really look for an alternative means of We are happy to answer all sorts of
This will install both the KDE and create a pair with the default settings. transferring the files. Linux-related questions. If we don’t
Gnome desktops – you will be able to This generates two files, a private key know the answer, we’ll find out for
choose which you use when you log in. named id_dsa, to go in ~/.ssh, and a Webministration you! But in order for us to give you the
best service, it helps a lot if you read

Q
There are a few basic configuration public key named id_dsa.pub. The We had a Fedora Core-
the following submission advice.
questions to answer, but the defaults names will be different if you choose based solution set up as
are fine if you are unsure. You will also to create RSA instead of DSA keys. an email, DNS and ● Please be sure to include any relevant
be asked some questions to help Copy the public key to a file named firewall server for an details of your system. “I can't get X to
work” doesn't really mean anything to us if
configure the graphical display. These authorised_keys and put this in office of eight people.
we don’t know things like what version of
are the same as you would have been ~/.ssh on the server. Now SSH will use We manage the server mostly X you are trying to run or what hardware
asked during installation, had you the keys to authenticate and not through Webmin, and we have our you are running on.
selected the desktop option. require a separate password. phone system wired to the server’s ● Be specific about your problem. Things like
Once installation has finished, If SSH is not an option, you will serial port where call activity gets “it doesn't work” or “I get an error” aren’t
which will take several minutes, your have to use an FTP client to transfer written to the log file /home/phone/ all that helpful. In what way does
desktop should load the next time you the files. Some of these have the cdr.current. A Cron job emails the something not work? What were you
expecting to happen? What does the error
boot up. NB option to store passwords in a previous day’s activity daily while
message actually say?
configuration file, which you should we review current telephone activity
Hiding passwords chmod to 600 so that only you and over SSH a number of times a day. ● Please remember that the people who
write this magazine are NOT the authors

Q
I have a simple shell the root user can read it. This is safer cdr.current gets deleted
or developers of Linux, any particular
script that is scheduled than putting the password in a script automatically at the end of each package or distro. Sometimes the people
to download files from a to be used when you run the month. After a week it is already responsible for software have more
remote server by FTP. In programs, because then the password substantially long, and too long to information available on websites etc. Try
reading the documentation!
the shell script I have hard-coded can be read with ps while the program view entirely over SSH.
USERNAME and PASSWORD to is running. For example, Ncftpget and Is it possible to view an arbitrary We will try to answer all questions. If we don't
string variables to access the remote Ncftpput are part of the Ncftp package log file through Webmin to avoid answer yours specifically, you'll probably find
we've answered one just like it. We can't
server. How do I prevent the and accept a login definition file additional software being written or
really reply to all your questions.
USERNAME and PASSWORD being instead of a URL. The file format is installed? We are trying to avoid

100 LXF73 DECEMBER 2005 www.linuxformat.co.uk

LXF73.answr 100 23/9/05 10:31:01 am

You might also like