Get started with Roland, a random selection tool

Get started with Roland, a random selection tool for the command line

Get help making hard choices with Roland, the seventh in our series on open source tools that will make you more productive in 2019.

A die with rainbow color background
Image credits : 
Peaches&Cream on Flickr, CC BY 2.0

Subscribe now

Get the highlights in your inbox every week.

There seems to be a mad rush at the beginning of every year to find ways to be more productive. New Year's resolutions, the itch to start the year off right, and of course, an "out with the old, in with the new" attitude all contribute to this. And the usual round of recommendations is heavily biased towards closed source and proprietary software. It doesn't have to be that way.

Here's the seventh of my picks for 19 new (or new-to-you) open source tools to help you be more productive in 2019.


By the time the workday has ended, often the only thing I want to think about is hitting the couch and playing the video game of the week. But even though my professional obligations stop at the end of the workday, I still have to manage my household. Laundry, pet care, making sure my teenager has what he needs, and most important: deciding what to make for dinner.

Like many people, I often suffer from decision fatigue, and I make less-than-healthy choices for dinner based on speed, ease of preparation, and (quite frankly) whatever causes me the least stress.

Roland makes planning my meals much easier. Roland is a Perl application designed for tabletop role-playing games. It picks randomly from a list of items, such as monsters and hirelings. In essence, Roland does the same thing at the command line that a game master does when rolling physical dice to look up things in a table from the Game Master's Big Book of Bad Things to Do to Players.

With minor modifications, Roland can do so much more. For example, just by adding a table, I can enable Roland to help me choose what to cook for dinner.

The first step is installing Roland and all its dependencies.

git clone
cpan install Getopt::Long::Descriptive Moose \
   namespace::autoclean List:AllUtils Games::Dice \
   Sort::ByExample Data::Bucketeer Text::Autoformat \
cd oland

Next, I create a YAML document named dinner and enter all our meal options.

type: list
: 1
- "frozen pizza"
 - "chipotle black beans"
 - "huevos rancheros"
 - "nachos"
 - "pork roast"
 - "15 bean soup"
 - "roast chicken"
 - "pot roast"
 - "grilled cheese sandwiches"

Running the command bin/roland dinner will read the file and pick one of the options.

I like to plan for the week ahead so I can shop for all my ingredients in advance. The pick command determines how many items from the list to chose, and right now, the pick option is set to 1. If I want to plan a full week's dinner menu, I can just change pick: 1 to pick: 7 and it will give me a week's worth of dinners. You can also use the -m command line option to manually enter the choices.

You can also do fun things with Roland, like adding a file named 8ball with some classic phrases.

You can create all kinds of files to help with common decisions that seem so stressful after a long day of work. And even if you don't use it for that, you can still use it to decide which devious trap to set up for tonight's game.

What to read next

Person standing in front of a giant computer screen with numbers, data

Keep key information in view with WTF, the sixth in our series on open source tools that will make you more productive in 2019.


About the author

Kevin Sonney - Kevin Sonney is a technology professional, media producer, and podcaster. A Linux Sysadmin and Open Source advocate, Kevin has over 25 years in the IT industry, with over 15 years in Open Source. He currently works as an SRE at elastic. Kevin hosts the weekly Productivity Alchemy Podcast. He and his wife, author and illustrator Ursula Vernon, co-host the weekly podcast...