Tag Archives: word

anagram and multi: Are you game?

I’ve got a second word tool today — in fact, two tools from the same package. I discovered both of them purely by chance, while picking through an apparently unrelated list of software. Here’s anagram and multi.


These two wunderkinder are hiding inside the yawl package (don’t ask how I got there; I don’t remember), which is advertised more as a word list than anything. The makefile in that package will allow you to build both anagram and multi, and on my Arch system neither needed any coaxing.

As you might imagine — and as you can see above — anagram splits apart words or letter sequences to find legitimate smaller words within. Which makes anagram a lot like an, which you might remember from a very long time ago. Of course, “legitimate” leaves some room for interpretation; dict couldn’t find anything under “xu,” but it’s listed there. 😕

multi, on the other hand, finds combinations of legitimate words that use all the letters in the sequence or word you provide. In other words, you’ll use all the letters to make several words at once. As a warning, multi has the potential to really bog down your system, if you give it a long word and ask for a lot of combinations, for example.

Both have an interactive mode or can take targets at the command line, for brevity of use. They also don’t require that you use the bundled word.list, but they will look for it at /usr/share/dict, and halt the interactive mode if they don’t find it. If you’d rather use another word list, you’ll have to stick with the command flag style. Or play dirty pool and rename your dictionary to /usr/share/dict/word.list. 😈

As best I can tell, neither anagram nor multi — nor yawl, for that matter — is in Debian or Arch. So I give you something new today.

I’m tempted not to tag these two as games, since there’s little about them that is amusing or entertaining. On the other hand, if you’re a scribble player or if you enjoy working with pen-and-paper anagrams, there’s a definite niche for these two programs. Games or not, take them as they are. 😉

icdiff: Visibility by default

I have just enough time this morning to scratch out a brief note about icdiff. We went through a lot of diff variants over the summer, and for every one of those there was probably a colorizing tool that could pick up the visual slack.

That might be the strongest point for icdiff: that fact that you get most of the best features of conventional tools like diff proper, plus a healthy degree of control available in tertiary colorizing tools.

2015-01-15-6m47421-icdiff-01 2015-01-15-6m47421-icdiff-02

I have two screenshots there because it might be important to you to know that, by default, icdiff is going to abbreviate its output to show changed areas and their context. This took me a minute to figure out, since my original file had 52 lines or so, but icdiff kept showing a much shorter output.

The --whole-file flag is what controls that, and there are quite a few other options worth mention. icdiff has a built-in head feature that constrains the input to the first x lines of each file, which may be useful as opposed to piping both files through head before handing them to icdiff.

Another point that might interest you is the --highlight flag, which colorizes the background field instead of the character shape itself. The author suggests it’s ugly but fast; it caught my attention because it was much easier to spot single-character changes with this.

icdiff is in AUR, but I didn’t find it in Debian. Users of either distro (or others) should be able to get it working from its git repo though, so feel free to try it out.

icdiff is a decent tool with some good features and might be more accessible to casual users — like myself — as opposed to the classic diff or simpler attempts to colorize it. It’s rare that I need a diff tool but I can see where this one would come in handy.

wdiff, cwdiff and dwdiff: Since I mentioned it. …

I just mentioned colordiff, but left out one thing it can do: colorize the output of wdiff. And what is wdiff, you say?


That should give you an idea. wdiff works in the same way as diff, but at a word-by-word level. If you look closely in the upper half of that image, the differences in lines of text are offset with brackets and curly braces.

That may be enough for you, but you have to admit that the second half, where the output was piped through colordiff, is much easier to scan. The man page says you should add -n to wdiff before sending it through colordiff, but as you can see there, it worked fine in that example.

wdiff works well with colordiff, but you might prefer cwdiff, as opposed to piping things through one another.


cwdiff does much of what wdiff + colordiff offers, and simplifies the process quite a bit. There are a few added options too, including one to subtract the color from the output — meaning you get pretty much what wdiff had originally.

By default, cwdiff’s output is simplified somewhat from what wdiff creates, or what wdiff produces through colordiff. It’s not necessarily better, but it is a tiny bit … different. 🙄

dwdiff is the last on the list that I feel obligated to mention at this point. By now, you’ll probably feel like dwdiff doesn’t really do anything that wdiff, colordiff, cwdiff or even just diff could handle.


dwdiff also plucks out differences between words of files, and has a -c flag to inject color into the output. The distinguishing point between dwdiff and the others, as I see it, is its ability to set specific delimiters while searching.

I couldn’t think of a good case example for that, and I searched around in hopes of finding something to test it. Nothing handy appeared though, and most examples for dwdiff seemed to generate the same output as wdiff alone or cwdiff might get you.

So the final questions become academic: First, do you want colorized output (say yes! say yes!); and second, do you need control over specific delimiters when comparing files?

If you answer yes to the first, cwdiff might be the best tool, although you can get the same results from wdiff alone if you have colordiff available. If you answer yes to the second, you’ll most likely want dwdiff regardless of your preference for color.

And if neither of those questions is important … well, then you can probably get through the day with just the original diff tool. No shame in that. 😉

Microsoft Word 5.5 and WordPerfect 5.1: Say what?!

And WordStar, if I could have found it.

2014-01-25-lv-r1fz6-msw55 2014-01-25-lv-r1fz6-wp51

I know, it’s outrageous, but I have to mention it. And since it’s the M section, I might as well push through Microsoft Word and its contemporary, WordPerfect 5.1.

Yes, The Evil One will let you have version 5.5 of its ancient Word application gratis, right here. And yes, in DosBox (and probably other emulators), it works great.

WordPerfect, or WordStar, well … you might have to search around to find them.

I know these are real stretches to suggest they are “lightweight or minimalist software for Linux,” but I’m willing to loosen the definition.

And it might also be important to note that from a historical point of view, programs like this still carry some influence into the software of today.

I don’t suggest you fall back on a copy of DosBox and Microsoft Word just to edit your .bashrc file, but I have made stranger leaps in the name of science.

And hey, if that’s what works for you, I can find no fault.

P.S.: Don’t forget there are ways to convert Word formats … and more ways and more ways. …

enpi: Making the jump to the graphical

I was a little more than surprised the other day when I started digging around on the old blog, and realized I had never really shown enpi in action.

I see why though. Apparently, five and a half years ago, I was absorbed with WordGrinder and didn’t see much potential in enpi.


enpi does the job of translating simple text codes into specific commands for LaTeX.

As such, it really doesn’t stand as a word processor on its own … rather, it’s more a filter or a converter from simplified text to what LaTeX understands.

Which explains my lack of practical use five and a half years ago: I was looking for something to behave like Word 5.5, not just a conversion script.

I will give enpi credit though. As you can see above, it does an impressive job.

But all the actual word processing is going to require an outside application, i.e., the text editor of your choice. So technically speaking, it’s true: enpi isn’t a word processor.

enpi has some other limitations. As far as I could tell, you’re limited to two (three?) fonts and three point sizes. There are subscripts, superscripts and a lot of font effects though.

Some characters jam up enpi, and as a result you can get error messages in the conversion process and garbage characters in the final PDF. Curly quotes, for one, give enpi a headache.

On the other hand, I don’t know of too many applications — scripts or otherwise — that can give you such lovely output with a minimum of effort like this. And not force you to learn an entire new application, commands, etc.

So for enpi, I say huzzah. 😉

P.S., pay close attention to the packages you’ll need to run enpi. And also note that enpi can work alongside joe, if you want a more word-processor-like experience. 😉

an: You’re a cheat, admit it

Cheater. You’re a cheat. Admit it. If you’re digging around looking for an anagram solver, you’re probably a cheat.

And wouldn’t you know it, those Linux hackers have come up with one, and tried to hide it with a clever name: an.


Inconceivable. Give it a word, it runs through all its possible variations, and lists them for you on screen.

You can set it to look for certain patterns, phrases within words, minimum lengths, even test words for their combination in a phrase.

It makes games like Scrabble or Lexulous or maybe even Boggle just too easy. And the fact that it runs in Linux … well, that just shows the character of the people who use Linux.

And you? If you’re looking at this page, you’re probably a cheat too. Shame on you, you hacker. 👿

wordgrinder: Same as it ever was

I must admit a little disappointment (dare I say sadness?) when I run across an application that I enjoyed using a long time ago, but has fallen … out of favor with its developers.

wordgrinder is one of those, and while I won’t go into much detail (because I went into extreme detail a few years ago), I had to check and see if it had made any progress in that time.


Unfortunately no. Don’t get me wrong: It still works, and it’s apparently still in the repos for Debian (the AUR version won’t build for me, but I can handle that).

It’s just in the same state it was half a decade ago, with no apparent updates or improvements. Sigh. 😦

So what, you say? So what if it’s out of development, because (insert favorite text editor here) does all that, and can fold and color-sync my code and compile from within the editor?

Well … because (insert favorite text editor here) is just that — a text editor. wordgrinder is designed as a writing tool, and as someone who doesn’t code, fold or compile (much), it’s a good tool for writing.

wordgrinder is a word processor, for processing words. Text editors are for editing text. Those two things are not always the same.

Regardless, it was worth mentioning again. In its present, “final” state it is very usable, but lacks a few finishing features. If you want to get better acquainted with it, check out the sassy how-to some dork wrote five years ago. … 😕