KBibTeX: An easy to use and versatile Bibliography Manager for KDE

November 25th, 2007 edited by Alexey Beshenov

Article submitted by Gandalf Lechner. Please help DPOTD by submitting good articles about software you like!

So you work in a scientific environment and wonder how to organize bibliographic data, downloaded articles/preprints and links to online papers in such a way that…

  • …you can easily browse through your collection of articles and search for particular publications
  • …you can automate the process of creating citations and references when typing your own articles in LaTeX
  • …you can include new articles in your collection from online repositories with a few clicks
  • …you keep full control over the stored data by being able to access the BibTeX “source” at any time

Then KBibTeX is the program you are looking for. It uses the BibTeX format to store bibliographic data and provides a nice KDE interface to search through your BibTeX files. Its main window looks like this:


Managing your References

Since you can sort your data by various criteria such as author, title, year or journal, you will usually find the article you are looking for instantly. You then have the choice of either checking the reference data and abstract directly within KBibTeX, or opening the associated URL or pdf file. This provides the basic functionality necessary for using KBibTeX as a frontend to your collection of articles. More advanced features include the possibilities to attach keywords (tags) to articles, or to carry out online searches for a given paper, using Citebase, Google, Google Scholar, PubMed, Scientific Commons or SpringerLink, to name just a few available search methods.


Adding new articles manually…

In KBibTeX, you can add new bibliographic data to your collection in two ways, either manually or automatically by using online article repositories. If you add new papers manually, you have a multitude of possibilities for configuring the input - from basics such as the kind of BibTeX entry (article, book, IEEE, PhDThesis, Unpublished, …) over all the usual BibTeX data (authors, editors, journal, publication date, pages, ISBN, publisher, institution, …) to more advanced information such as keywords, abstracts, digital object identifiers (DOI), associated URLs and PDF files, and entirely user-defined fields.


…or automatically: Integration of online databases

One feature I particularly like about KBibTeX is the growing number of online article databases it supports. In version 0.2, the list includes PubMed, BibSonomy, SPIRES, Zentralblatt MATH, Citebase, DBLP and Amatex, which makes the program useful for people working in many different subjects, such as medicine, physics, mathematics or computer science. In the screenshot below you see how easily a SPIRES search is carried out within KBibTeX, and how the found bibliographic data can be imported into your BibTeX file.


Citation manager and interaction with LyX/Kile

One main field of use for KBibTeX is its ability to greatly assist you with creating citations in LaTeX documents. When typing a document using an editor such as Kile (or LyX), just select the articles you want to cite within KBibTeX and send them to the editor using a drop down menu or a hot key:


In particular, you don’t have to care about tedious BibTeX identifiers any more, since these are effectively administered by KBibTeX.

BibTeX source

What people used to editing their BibTeX files manually will like is that this possibility still exists in KBibTeX - by switching to Source View you can always adjust your BibTeX data manually if you like.


By strictly adhering to the BibTeX format, files edited by KBibTeX are also open for use with any other program understanding BibTeX.

Final comments

For Linux users working frequently with LaTeX and BibTeX, KBibTeX offers many nice features which can greatly simplify otherwise tedious and time consuming tasks. In view of its bibliography manager functions, KBibTeX is right now the best approximation to the great - but unfortunately still non-existing - KPapers. Hopefully it will develop further in this direction in the near future…


Further information about KBibTeX can be found on the website of the developer Thomas Fischer, or at For information on the KBibTeX mailing list, go here.

KBibTeX 0.1.5 is available in Debian ‘Etch’ (stable) and Ubuntu. The fresh version 0.2, which has numerous improvements over 0.1.5, should soon be available as Debian or Ubuntu packages, too. In the meantime, you can of course grab the source code and compile it, which is a quick “configure - make - sudo make install” mission.

Posted in Debian, Ubuntu | 5 Comments »

NTP: be on time, always

November 21st, 2007 edited by Wolfger

Article submitted by Folkert van Heusden. Please help DPOTD by submitting good articles about software you like!

So there you are. You’re an average geek with a nice cluster of Linux systems. All configured to act together in whatever you’re doing with it.

Example 1: Your systems are connected via a fast pipe to the Internet. And since systems on the Internet are cracked on an almost hourly basis, you want your logging on all systems to be correct enabling you to contact the abuse center of the ISP of that script kiddie. For that you want correct timestamps in your logging. You want to know exactly when that cracker started his attacks.

Example 2: Besides being a cluster on the Internet, your cluster also acts as a software-building cluster, all connected via NFS shares and executed using make. For make to do its thing, the time on all nodes of your cluster must be equal or else files will be skipped.

Example 3: You’re a very environment friendly IT expert. You always travel by train to your customers. For this you need to know exactly how late it is so that you can jump on your bicycle and be at the train station just in time for that train.

For all of these examples you could get your watch and try to configure your systems to exactly the same time. That’s a bit of a challenge because typing the time takes time and interpreting the time on your watch (by your brain) takes time as well. Also, when the time is finally set, you’re not there: PCs have notoriously bad CMOS clocks with an enormous drift. That means that in a few days the clock of your system might be way off.

Now, there is a solution for all of these problems. One solution that takes care of it all and even more. The solution is called NTP. NTP stands for Network Time Protocol. An NTP daemon will determine the drift of the clock of your PC and then disciplines it up to the point that you can be sure it won’t be off. Also when connecting multiple systems, the NTP instances on each system can talk to each other (or a central NTP server) so that all of them correct their own time against each other! That solves example 2 and 3, but what about example 1: the problem that you would like to have the time of your PC to be the same as the rest of the Internet? For that, NTP can synchronize itself to time servers on the Internet.

Quite a few ISPs have a system set up in their network connected to a GPS or DCF77 receiver or something similar to which their customers can sync their computers. If your system gets cracked, you know for sure that the timestamps in the logging of your systems is the same as the ones of your ISP and, hopefully, of the ISP of the cracker as well.

If your ISP does not provide time servers (normally you should have between 3 and 6 upstream servers to ensure accurate time), you can let your local NTP daemon synchronize to the NTP pool project as well. The NTP pool project consists of volunteers with a static IP address and an NTP daemon that either synchronizes to steady trustworthy time sources (stratum 1). The NTP daemon included in Debian syncs by default to the NTP pool project.

With all the new Debian (and other Linux distributions) being installed the NTP Pool is under constant pressure to handle more traffic. If you have a static IP address and a stable server, please consider adding your server and help out!

NTP is included in all Debian and Ubuntu releases, and can be enabled or disabled via a checkbox on your Set Date/Time dialog.

Posted in Debian, Ubuntu | 6 Comments »

AMOR: a desktop companion

November 18th, 2007 edited by Wolfger

Article submitted by Christian Haase. We are running out of articles! Please help DPOTD and submit good articles about software you like!

AMOR is a nice toy which is absolutely senseless. It displays a tiny figure on your desktop, running on top of your windows or falling down to the bottom. It is a KDE application, but it should be no problem to use it in Gnome (as I do).

worm on the move

In the package are several figures such as the FreeBSD-Daemon, and Tux (in 2 variations). There are also things like a ghost flown from a castle and some more. Some creatures are only static (the FreeBSD-Daemon, Little Billy, and the classic Tux), but the rest are animated. An list of the available themes is provided here.


If you like to see some tips, AMOR also supplies 2 kinds of speech bubbles for them. The first kind are the KDE-Tips and the second kind are for application related hints. Unfortunately there appear to be no applications making use of this second functionality.

The configuration is very simple. Just catch the creature to open the context-menu and choose to open the configuration-dialog.

Overall, as said by the name too, it is an “Amusing Misuse Of Resources”, but I do like the jumping glyphs while working.

AMOR was written by Martin R. Jones and Gerardo Puga. AMOR is in Debian from oldstable to unstable for the common architectures and in Ubuntu from dapper to hardy for amd64, i386 and powerpc. It depends only on some basic kde-libs (kdelibs4c2a, kdelibs-data, libqt3-mt) which are already installed on many systems. If you want to keep your non-KDE system clean try the “-s”-option of aptitude first and decide for yourself.

Posted in Debian, Ubuntu | 12 Comments »

GPW: generate pronounceable passwords

November 14th, 2007 edited by Tincho

Article submitted by Jared Raddigan. Please help DPOTD by submitting good articles about software you like!

Passwords can be a headache to remember, especially good, long passwords. Well, luckily for us Tom Van Vleck agrees, so he wrote a program to make pronounceable passwords up to 99 characters long.

Where do I primarily use this program? I use this program when trying to come up with WPA2 personal keys. I want the password to be good enough to protect the wireless network, but I don’t want it to be so good that I can never remember or type it in correctly. It’s amazing when you can pronounce something how much easier it is to remember and how much happier your end users are.

You can also use it for your email account, for storing your confidential data and, of course, for your GNU/Linux account! Using gpw is very easy:

$ gpw [number of passwords] [length of passwords]

So to make 5 passwords with the length of 12 characters just do

$ gpw 5 12

I usually run the command a number of times until I find a password that fits my needs the best.

In high security situations passwords are no longer acceptable, but when a password is needed, this is a good way to get a decent password that’s much better than using your dog’s name or the ever elusive “password” password. If you really want to increase security while still using a password, just change the length to something like 20 characters or above and then you can say that you no longer use passwords and switched to pass phrases and impress all your friends.

You will find gpw in both all versions of Debian and Ubuntu

Update: as mentioned in the comments, you can also check out pwgen. It is another password generator that creates somewhat pronunceable passwords, but can also generate them with symbols and numbers, and doens’t use any dictionary.

Posted in Debian, Ubuntu | 6 Comments »

Debfoster: Remove a package and its dependencies

November 11th, 2007 edited by Wolfger

Article submitted by Alex Chekholko. Please help DPOTD by submitting good articles about software you like!

We recently ran a review on Deborphan. Here is a review on a similar tool: Debfoster. Debfoster exists to tell you which packages are installed on your machine merely as dependencies for other packages. It then gives you the option of removing the package and its dependencies. It also remembers your previous responses so that it does not ask you about the same packages each time.

Debfoster is most useful to keep your system very lean. However, with today’s large disks, it is more of an aesthetic utility.

The use of Debfoster is best illustrated by a simple example. See the manpage for more details. This example assumes that you already ran Debfoster and told it to keep all your existing packages, otherwise it will ask you about all of them.

I will look at the dependencies for a package called munin, then install it (and its dependencies), then use Debfoster to remove it.

$ apt-cache show munin
Package: munin
Priority: optional
Section: universe/net
Installed-Size: 996
Maintainer: Ubuntu MOTU Developers
Original-Maintainer: Munin Debian Maintainers
Architecture: all
Version: 1.2.5-1
Depends: perl (>= 5.6.0-16), perl-modules (>= 5.8.0) |
libparse-recdescent-perl, librrds-perl, libhtml-template-perl,
libdigest-md5-perl, libtime-hires-perl, libstorable-perl, rrdtool,
Recommends: munin-node, libdate-manip-perl
Suggests: www-browser, httpd

$ sudo apt-get install munin
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
libhtml-template-perl librrd2 librrds-perl rrdtool
Suggested packages:
libipc-sharedcache-perl httpd
Recommended packages:
munin-node libdate-manip-perl
The following NEW packages will be installed:
libhtml-template-perl librrd2 librrds-perl munin rrdtool
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.

$ sudo debfoster

munin is keeping the following 4 packages installed:
libhtml-template-perl librrd2 librrds-perl rrdtool
Keep munin? [Ynpsiuqx?], [H]elp: N
Keep librrds-perl? [Ynpsiuqx?], [H]elp: N

rrdtool is keeping the following 1 packages installed:
Keep rrdtool? [Ynpsiuqx?], [H]elp: N
Keep libhtml-template-perl? [Ynpsiuqx?], [H]elp: N
Keep librrd2? [Ynpsiuqx?], [H]elp: N
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages will be REMOVED:
libhtml-template-perl* librrd2* librrds-perl* munin* rrdtool*
0 upgraded, 0 newly installed, 5 to remove and 0 not upgraded.

As you can see, Debfoster can help you clean up the packages that were
installed as dependencies. However, this functionality also exists in
aptitude and synaptic. Current versions of Aptitude or Synaptic will auto-remove the packages that were
installed as dependencies, negating the need for Debfoster. See Google: “aptitude vs apt-get” for more info.

Debfoster in all supported versions of Debian and Ubuntu.

Posted in Debian, Ubuntu | 5 Comments »

« Previous Entries