Thoggen: A GTK+ based simple DVD ripper

October 31st, 2007 edited by Tincho

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

Thoggen is a GTK+ based DVD ripper with very simple user interface. The name is based on the fact that it outputs the video to Theora/Ogg format.

Thoggen uses GStreamer 0.10 for video encoding. Although currently it supports only Theora/Vorbis/Ogg output, more formats can be expected in the future.

The good:

  • Very simple user interface.
  • Supports cropping, setting resolution of output, choosing output quality or size. You can also add title and comment meta data to the output file.
  • Outputs to Theora/Vorbis/Ogg which truly Frees your video.
  • Can be used with DVD as well as with a directory containing DVD files.

The bad:

  • Currently it only supports single audio track.
  • There is no support for subtitles. The workaround is to rip subtitles manually with help of programs like subtitleripper. According to an informal conversation on IRC, support for multiple audio tracks as well as subtitles is in development.

The ugly:

  • Theora encoding is usually slower than other video formats.


Following are the screenshots of an example ripping workflow.

Title selection dialog
title selection

Encoding options
encoding options

Encoding window
encoding window

The package is available in Debian since Etch and in Ubuntu since Dapper. The upstream development is a bit slow but many features are planned for future releases.

Posted in Debian, Ubuntu | 1 Comment »

cowsay: a configurable talking and thinking cow

October 28th, 2007 edited by Alexey Beshenov

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

Cowsay is a useless but very fun text filter written in Perl. If you send some text into cowsay, you get an ASCII cow saying your text. For example, cowsay Hello, World! prints

< Hello, World! >
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

To get a thinking cow, run cowthink:

$ cowthink Hello, World!
( Hello, World! )
        o   ^__^
         o  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Program word-wraps long messages unless the -n switch is used. The -W specifies where the message should be wrapped (default is wrapping at or before the 40th column). Everything left over after command-line switches is treated as the cow’s message. Another way is to send text to cowsay’s standard input. Pipe boring or annoying things to speaking / thinking cow and have fun:

$ uptime | cowthink -d
(  19:16:39 up 4 days, 22:50, 1 user, )
( load average: 2.21, 1.74, 1.42      )
        o   ^__^
         o  (xx)\_______
            (__)\       )\/\
             U  ||----w |
                ||     ||

-d is a switch for a dead cow. Other fun switches for cow are

  • -b Borg mode
  • -g greedy mode
  • -p paranoia mode
  • -s stoned mode
  • -t tired mode
  • -w wired mode
  • -y youthful mode

The -e selects the appearance of the cow’s eyes (default is -e oo). The tongue is configurable through -T (default is no tongue).

You can also use other ASCII characters. Cowsay comes with a large set of “cowfiles” (actually, a pieces of Perl code) in /usr/share/cowsay/cows. Invoke cowsay with the -l switch to list them:

apt, beavis.zen, bong, bud-frogs, bunny, cheese, cower, daemon, default, dragon, dragon-and-cow, elephant, elephant-in-snake, eyes, flaming-sheep, ghostbusters, head-in, hellokitty, kiss, kitty, koala, kosh, luke-koala, mech-and-cow, meow, milk, moofasa, moose, mutilated, ren, satanic, sheep, skeleton, small, sodomized, sodomized-sheep, stegosaurus, stimpy, supermilker, surgery, telebears, three-eyes, turkey, turtle, tux, udder, vader, vader-koala, www.

The -f option specifies a particular cowfile (note that -bdgpstwy modes may not work with some characters as well as -T and -e switches):

$ cowsay -f moose Hi!
< Hi! >
   \   \_\_    _/_/
    \      \__/
           (__)\       )\/\
               ||----w |
               ||     ||

Cowsay is written by Tony Monroe. The current stable branch is 3.xx, but Cowsay 4 is also available for testing from the official webpage. Cowsay packages can be found in Debian from Oldstable to Unstable and Experimental, and in Ubuntu Dapper, Edgy, Feisty, Gutsy. Of course, the program depends on Perl.

Posted in Debian, Ubuntu | 8 Comments »

Kivio: Powerful, easy to use Linux flowcharting

October 24th, 2007 edited by Wolfger

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

So often we hear that Linux is lacking in key applications, but if there is one area in which there is a strong replacement for a key Windows application, it is flowcharting.

Kivio is part of the KDE Office Suite that offers basic flowcharting abilities, but with a twist. Objects are scriptable, and a back end plug-in system offers the ability to make objects do just about anything. The scriptable stencils use Python and there is also support for Dia stencils.

Despite the fact Kivio is a KDE-based application, it runs perfectly in the Gnome environment, although if you haven’t any other KDE applications installed, there are quite a few libraries and other essential KDE elements which have to be added to your system. Installation is completely straight forward and on first startup (Diag. 1), you are presented with the option of starting with an empty document or with the basic flowcharting stencil loaded.

Diag 1

Besides the basic flowchart stencils, there are collections of Dia shapes, geographic collections including maps and flags, hardware collections as well as entity relationship and UML collections. The desktop itself is a powerful working environment (Diag. 2), with palettes providing for an easy overview of your diagram as well as the management of layers, objects, geometry and protection. Alignment is easily managed with both manual and automatic guides. There is an extensive range of arrowheads available for connectors. Another powerful feature of the program is the ability to export pages in a large variety of formats, including PNG Image (.png), JPEG Image (.jpg), BMP Image (.bmp), Encapsulated Postscript Image (.eps), Portable Bitmap (.pbm), PCX Image (.pcx), Portable Pixmap Image (.ppm), SGI Image (RGB) (.rgb), X PixMap Image (.xpm), JPEG 2000 Image (.jp2), Krita Document (.kra), Adobe Illustrator Document (.ai), TIFF Image (.tiff), ILM EXR Image (.exr), Karbon14 Document (.karbon), GIMP Native Image Format (.xcf), Scalable Vector Graphics (.svg) and Windows® MetaFile (.wmf).

Diag 2

A freestanding text tool allows for easy documentation of diagrams. Kivio is very straight forward to use and you can quickly produce serviceable diagrams with very little effort. All the basic tools are intuitive to use and for power users there is an awful lot of sophistication below the hood.

Kivio is available for Debian Sarge, Etch, Lenny and Sid and for Ubuntu Feisty and Gutsy.
There is further information on Kivio at
You can find an excellent handbook by Ben Lamb at and a PDF version at
Current maintainer is Peter Simonsonn and the program is distributed under GPL version 2.

Posted in Debian, Ubuntu | 2 Comments »

deborphan: find packages you don’t want

October 21st, 2007 edited by paulgear

Article submitted by James Cameron. Please help DPOTD by submitting good articles about software you like!

If you’ve been reading debaday for a while, chances are you now have a heap of packages installed that you’ve tried out, some of which you want to keep installed, and some of which you have forgotten.

Those forgotten packages can cost you. They might contain setuid binaries or running daemons that could compromise your security. Future upgrades take longer, and there will be more to download. Your backups have grown. You are doing backups, right? That’s what duplicity was for.

If you’ve been using aptitude to install packages, then the autoclean command will remove a few things you don’t want.

An example using deborphan on a Debian Etch system:

# deborphan

In this example, deborphan discovered two fairly small packages that were superfluous, and so they can be removed. Since deborphan gives you only package names in this mode, they can be used in a command:

# aptitude purge `deborphan`

Or if you are in the habit of working at a level below aptitude:

# dpkg --purge `deborphan`

Recursive Deborphan

What you remove may reveal something else as newly orphaned. You
might even want to do this recursively:

while [ -n "`deborphan`" ]; do
    aptitude purge `deborphan`

You might call that a deborphan-recursive script.

Not Just Libraries

Deborphan gives you a list of packages installed on your system that no other package depends on. By default this will only show library packages. But it can also be told to give you a list of all such packages using the -a flag … consider this compound command:

# dpkg-query -W --showformat='${Installed-Size} ${Package}\n' \
`deborphan -a | awk '{print $2}'` | sort -rn

You might name this deborphan-by-size. What it does is give you a sorted list of packages that nothing depends on, in descending order by package size. Work down from the top, choosing what you do not want installed. But remember that every time you remove a package, the list might change because the removed package might have dependencies that are now orphaned.

What’s the worst that could happen? You might remove some package that you will have to reinstall and reconfigure. You have backups. [If you have installed any applications without using the Debian packaging system, it's a different story. You will have to manually make sure that the packages deborphan removes are not required for them to operate. Ed.]

Or how about a small system where you have removed as much as possible so that you have the most space available for your own stuff? Deborphan can be used step by step to challenge you to remove packages you don’t really need. Eventually dpkg, apt-get, or aptitude will warn you about removing a package it considers essential. That’s where you stop, unless you really want some trouble.

Sometimes library packages are installed just to satisfy some dependency of a package in development. Developers will find deborphan’s decisions cause them to reinstall packages they need for software development … an answer to that is to either create a metapackage that refers to the packages you need, or to do your package building in a pbuilder.

Deborphan is available in Debian and Ubuntu since before time began.

Posted in Debian, Ubuntu | 16 Comments »

GNU wget: Get all the web content you like on your local machine

October 17th, 2007 edited by Patrick Murena

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

Wget is so flexible you’ve probably been using it for years without knowing it, many scripts use it because it is a boilerplate method of grabbing files, it will even automatically retry under certain circumstances…

Probably the best compliment I can pay to it, is that script writers can use it and then forget about it.

It’s one of those great tools that makes *nix so great, its simple, it does what it says on the tin, and like many other pieces of unix “glue”, it’s robust.

Another cool thing about wget is that it’s non-interactive, which means you can start a new download, disconnect from your current session and find your downloads the next time you connect again.

How to use it

The most simple way to invoke wget is by typing wget URL/fileName

$ wget

If you typed in this command you now have a file called index.html in the directory you where in while typing. This file contains the contribute page of the Debian package of the day blog. Read It, DPOTD needs you ;)

Get a directory hierarchy

To get the full content of a directory and his subdirectories you will need to specify wget that it should download your URL recursively. To do this you will need to add the -r option:

$ wget -r

This command will generate a local mirror of the debaday blog. Note that wget respects the robots.txt file by default, if it exists. This means it will not download directories and files excluded by the robots.txt file.

Multiple URLs

Wget supports multiple URLs. You can either specify them in a file (one URL per line) or specify them in the command line (space separated).

$ wget url1 url2 ... urlN

or specify the URL container with the -i option

$ wget -i filePathAndName
Other options

Wget has a lot more options, you can for instance use:

  • -l for how deep the recursive download should go, the default depth is 5.
  • -c is invaluable as it allows you to continue an interrupted download
  • -O let’s you specify a target output file (-O fileName)

There are plenty other options in wget, the best way to know them is to read it’s rich man page. For those vista refugees amongst you try typing the following into a terminal ;)

$ man wget


As wget is part of the GNU project we assume it’s part of most Linux distribution. Never the less, official Debian and Ubuntu package are available:

  • Debian: stable, old stable, testing and unstable
  • Ubuntu: dapper, edgy, feisty and gutsy.

Community & developers

GNU wget is currently being maintained by Micah Cowan. The original author of GNU Wget is Hrvoje Nikšić.


Posted in Debian, Ubuntu | 6 Comments »

« Previous Entries