Site Map - skip to main content - dyslexic font - mobile - text - print

Hacker Public Radio

Your ideas, projects, opinions - podcasted.

New episodes Monday through Friday.

The passing of FiftyOneFifty

It is with deep sadness we announce that another of our hosts and friends Donald Grier, known to us as FiftyOneFifty, has passed away.

FiftyOneFifty's frat brother Randy Hall has written an lovely piece. The team at Linuxlugcast are preparing our own tribute if you want to contribute an audio file you can email Honkeymagoo or join the show.

Our thoughts go out to his friends and family at this difficult time.

In-Depth Series

Apt Spelunking

"Apt spelunking" is a silly term I made up for the act of searching through your package manager, App Store, Code Repo, etc with vague terms, and trying out random applications therein.
A public series started by Windigo.

Apt Spelunking 4: Planet of the Apts - Windigo | 2017-09-27

It's another exciting episode of Apt Spelunking! The fourth installation, which covers the following packages:

dunst - Lightweight notification daemon

Dunst is a lightweight, customizeable desktop notification daemon. Similar to Ubuntu's notify-osd, it displays passive notifications with very minimal resources. It has customizeable keystrokes, and its colors can be configured as well.

i3 - Lightweight tiling window manager

i3 is my window manager of choice; tiling, extremely customizeable, and absurdly light. With fantastic support for multiple monitors, and vim keybindings, it eventually finds its way onto every machine I use.

uqm - Ur-Quan Masters

Derived from Star Control II, Ur-Quan Masters is a fantastic retro game about spaceships and aliens. Earth has been seized, and is isolated from the rest of the galaxy. Luckily, you happen to have yourself a ship built with ancient mystic technology and whatnot.

Fun, funny, and dangerously addictive; make sure to stay away from this game if you have things to do.

Apt Spelunking 3: nodm, cmus, and parecord - Windigo | 2016-09-09

Hello, this is Windigo, and Welcome to the another episode of apt spelunking! If you missed the first episode, then you probably missed the second episode as well. I assure you, they were fantastic; no need to go back and check.

This series (and yes, it’s official now) is about finding uncommon packages that are buried in the Debian repos. It could very well be about finding packages in other repos, but no Arch, Fedora, Ubuntu or OpenSUSE users are smart or handsome enough to contribute an episode.

In no particular order, here are a few more packages I’ve discovered.


nodm is a very small, very specific utility that is used to start an X session automatically.

On Debian, you configure nodm with the configuration file located at /etc/defaults/nodm. You can specify whether or not nodm is enabled, which user to run as, and what x session to run.

While hugely insecure, nodm is a great way to avoid the hassle of a full display manager like gdm or lightdm. It’s extremely lightweight, which is perfect for my Mini 9, and kicks things right into my custom i3 session.


cmus is a very comprehensive, console-based music player. cmus stands for “C* music player“.

I received cmus as a recommendation from chalkahlom (Gavin) while looking for a media player suitable for the Mini 9. It is a very light application (1.5M uncompressed), which suited my needs well.

The interface of cmus is slightly strange, and may take some getting used to. It is broken up into seven “views”, which can be accessed using the number keys. The views are “Library”, “Sorted Library”, “Playlist”, “Play Queue”, “Browser”, “Filters”, and “Settings”.

To be honest, I still haven’t given cmus a fair shake. It seems like an excellent music player, but I’m still unable to break away from the familiarity of audacious. I’m once again reaffirming my commitment to trying cmus out; it seems like a really good player, if given the time of day.


Pulseaudio comes with a selection of very handy command-line utilities that can be used to play and record audio in various formats. The one I’d like to discuss is “parecord”.

Ordinarily, I do all of my podcast recording with the arecord utility, which talks directly to ALSA. Last time I tried this, it very badly broke audacity when I tried to import the audio. I sounded like a chipmunk, and then audacity crashed.

parecord is a nice alternative to arecord, because it also does encoding on the fly. There may be an ALSA equivalent that also encodes your audio as you’re recording, but I don’t know about it. At best, you’d have to pipe the output of arecord to avconv or a similar utility.

Using parecord, I can specify the file format using the --file-format flag, and record directly to FLAC, which is what HPR prefers. Other formats are available, but I think FLAC is a good balance of quality and compression.

If you prefer the raw recording style of arecord, there is a utility called parec which will record raw audio data, but it’s a bit outside of the scope of this podcast. Also, I don’t really know much about it.

I hope someone can find some use in the applications I’ve mentioned here. If you have some other packages that you find indispensable and/or useful, I’d love to hear about them in your very own episode.

Apt Spelunking 2: tvtime, phatch, and xstarfish - Windigo | 2015-11-23

Welcome to the another episode of apt spelunking! If you missed the first episode, I should explain. Apt spelunking is the act of aimlessly searching through your distribution's software repositories, and picking out the gems that you find. I call it apt spelunking because I use Debian, which uses the apt packaging format.

Let's jump into the first package: tvtime.


The package tvtime is a simple one, but it does what it does very well. tvtime interfaces with a TV tuner - specialized hardware that allows your computer to process analog television signals, via coaxial or RCA video cables. If you have this hardware, usually an expansion card or USB peripheral, tvtime allows you to use your computer as an analog television.

tvtime binds to the card of your choosing, allows you to switch between NTSC and PAL modes (NTSC is what I use, that being the American standard), and shows you a wonderfully grainy video. It has filters that can help smooth out the image a bit, but it's still an analog video.

tvtime is video only, so you need to use something else to handle the audio of whatever you are hooking up. Often this is done by the hardware tv tuner somehow; my PCI card tuner has a 3.5mm jack that offloads any sound received over the coaxial wire, and I patch that into my sound card. RCA cables have separate wires for audio, and I plug those into my sound card via a converter cable.

I have used tvtime to hook up videogame consoles, VCRs, and older computers like the TRS-80. It's helped me to defeat Eternal Darkness, an old GameCube game that is still worth a look, and it's allowed me to digitize old VHS tapes we have lying around. More on that in another episode.

It is a fantastic alternative to keeping an older analog TV around. If you have older equipment that needs to dump analog video somewhere, tvtime and a hardware tuner makes for a great setup.


This absurdly spelled program is incredibly good at what it does. Phatch, some sort of unholy combination of "photo" and "batch", is a GUI interface for assembling chains of actions to manipulate image files.

I use this program for web development to save time when creating static photo galleries or other types of images with similar constraints.

To use phatch, you assemble a set of operations (phatch refers to these as "actions") in an ordered "action list". I'll use my gallery thumbnail action list as an example.

There are only two actions in my thumbnail action list: "fit", and "save". Each action has a set of predefined parameters and options that let you tweak what happens to your files. The "fit" action resizes an image without goofing up the aspect ratio. You give it a box to fit the image in, and it fits it fully into that box and cuts off any extra edges. The most important parameters for this action are canvas width, and canvas height - which tells phatch how big the box is. The save action has parameters that let you set which image format to use, which folder to save to, and even what to name the file. For my thumbnails, I have it use the original filename, and append a "_t".

Once you have your action list together, you can tell phatch to run on an entire directory and include or exclude different file types.

There is much, much more to phatch than just resizing images. Sounds like another episode idea… anyhow, moving on!


I left xstarfish until the end, because it's so much fun and so very, very weird. xstarfish generates a random, tileable background that can be dumped to a file, or assigned directly to the X display of your choice.

It uses some sort of magic randomsauce to pick a color palette, some patterns, and some other distortions to that you get a brand-new, unique background every time you run it.

It can also be started in daemon mode, with a timer, to automatically change your wallpaper periodically.

There are at least two problems with this.

First of all, let's start with the practical. You can set the size of the image xstarfish generates, by either using the -g flag and manually setting the geometry with a pixel width and/or height, or you can use the -s flag and set a general size like "small", "large", or "full". If you use "full", xstarfish automatically generates a full wallpaper for your display.

Since xstarfish generates randomness (which is often CPU intensive) and uses that to generate random filters (which can be hard on your CPU) and can be set to do it periodically (which, depending on frequency, could keep your CPU busy), this utility can be a resource hog. I have two monitors, each running 1280x1024 resolution, and when I set it to generate a new background every 10 seconds... well, it didn't. It just maxed out one of my CPU cores, and spit out a background every once and a while. Cutting it down to only generate a single monitor-sized image every 60 seconds made things much more reasonable.

The second, more pertinent issue with xstarfish is that it randomly picks colors and patterns. It is exceptionally random about it. Imagine for a moment that you needed to paint a room, and you wanted to pick random colors and patterns for a room in your house. You would begin by blindfolding a friend and pushing them into the paint isle at your nearest hardware store. Whatever three buckets of paint they bump into first, well, that's your color palette. What do you mean you don't like orange, sea foam and gunmetal grey?

Then, you take those paint cans and proceed to tie one to your ceiling fan, one to your eight-year-old child and swing the third around your head at a 35 degree angle. Fairly quickly, you'll have your own xstarfish-inspired decor.

With all of the potentially awful things that can happen, I really do like xstarfish. It's not something I keep running all the time, and a lot of the options remind me of early 90s Encino Man fashion and school photo backdrops with lasers. But sometimes the patterns are actually quite pleasing, and if I keep the tile size small, it reminds me of 90s web design.

That concludes the second installment of apt spelunking. Please don't let me take all the glory; take a tour through your package manager, whatever distro you use, and tell us about some cool stuff you find!

Apt Spelunking: surf, lightyears, and fbterm - Windigo | 2015-07-15

"Apt spelunking" is a silly term I made up for the act of searching through the Debian package repositories with vague terms, and trying out random applications therein.

Today, we will be covering three packages: surf, lightyears, fbterm


Surf is a lightweight, graphical browser. It uses the webkit rendering engine, and is a GTK-based application (not that you can tell). It is extremely spartan. Part of the suckless project, surf takes the Unix philosophy to it's extreme.

Essentially, you only get a single browser window. No tabs, bookmarks, or other interface to speak of. Any navigation is accomplished through links on the page, or some very rudimentary keyboard shortcuts. Ctrl+H goes forward in history, and Ctrl+L goes backwards. If you want to visit a URL, you can either send it as a command-line argument, or use Ctrl+G to bring up a drun-like text input. It is perfect for lightweight system configurations, surf does the bear minimum to qualify as a web browser.

If you're looking for zen simplicity, or want an easy way to embed a web app in its own window without a lot of overhead, surf is an excellent option.


20,000 light years into space bills itself as a "single player real-time strategy game with steampunk sci-fi". In it, you are given a square of alien landscape, dotted with steam vents, and a small settlement at the center. This settlement runs on the steam so abundant on this alien world, and it's your job to keep the steam flowing.

The game consists of building steam nodes, which capture steam from the vents, and connecting them back to your settlement. Of course, you can't simply build a straight pipe back to your settlement; the length of the pipe is taken into account, and the longer the pipe, the harder it is to get steam to travel through it. You can get around this by daisy chaining nodes together in a web, and providing multiple routes back to your settlement. Running a steam-powered base on this alien planet isn't without its share of dangers, however! There are aliens, inclement weather, and seismic instability that can all damage your network of steam pipes and nodes. If your steam pressure falls below a certain threshold, you lose.

This game has an eerie similarity to network engineering, and I've always enjoyed it a lot. It can get very frustrating, though, and the difficulty levels are steep steps. If you're interested in strategy games, I'd highly recommend giving this one a try.


Another in the lightweight category, fbterm is a terminal emulator that's designed to be run with a framebuffer. A framebuffer is a low-level method for displaying text and/or graphics on a monitor, and is often used to run GUI applications without the overhead of an X server.

You can use fbterm to get an antialiased terminal, with freetype font support. That means you can use bitmap and vector fonts, just like most full-featured terminal emulators, without the extra weight of running an X session and window manager.

If you like window managers, you could also use fbterm as a replacement for one of your consoles, using a program called "rungetty". Here's the instructions: I don't mind having fbterm as a backup terminal, in case I need to debug an X session or my window manager has locked up. Having an option that is more graphically pleasing than a bare getty TTY can be a lifesaver.