Grepping "The Game" (a.k.a. Solving Wordle); Nmap for the Forgetful🐘 (a.k.a. nmapAutomator); Aliases
Grepping "The Game" (a.k.a. Solving Wordle)
Since the launch, Wordle, or as I call it "The Game", has consumed grey mater cycles of large sections of the English-speaking/reading populace. You all know the premise:guess a word in six or fewer steps with hints as to how accurate your letter posits were.
I suspect most humans try to solve the daily puzzle with just their built-in gray matter. However, just like in the crossword puzzle solving world, a subset of creative folks have crafted bespoke tools to help solve Wordles. Some use "AI"; others apply brute force or use entry optimization.
One of the more interesting approaches I've seen recently involved using regular expressions(regex) and
grep to narrow down possible words from the official Wordle word list (which has changed a bit since the NYTimes absconded with the app).
The linked article is short, but I excerpt a bit of the technique a here (especially because I'm linking to another Wordle post by the same author at the end of the section).
For use of the starting word "
the idea is to ultimately craft a regular expression that gets to the a set of choices for the final solution.
$ egrep l
I figured the second letter had to be a vowel. Although
LLAMAis a legitimate word, I refused to believe Wordle would be so evil as to have two repeated letters. And even if it were, the A had already been eliminated. So that set the second slot:
$ egrep l[iouy]
The third slot couldn’t be a T or any of the eliminated letters:
$ egrep l[iouy][^aert]
Now I was faced with the T being in either the fourth or fifth position. Instead of trying to come up with a complicated pattern that handled both cases, I decided to use two simple patterns: one with the T in the fourth spot and one with it in the fifth. With the T in fourth spot the full command was
$ egrep l[iouy][^taer]t[^aers] scrabble5.txt linty lofty lusty
where you’ll notice that I didn’t allow S in the last spot. This is because, despite what I said about the prevalence of plurals in Scrabble words, a month of playing Wordle has led me to believe that plurals aren’t used. They’re allowed in guesses, of course, but I’ve never seen a plural solution.
I doubt that Wordle would use
LUSTYare pretty good words. So I’d already disproved my hypothesis about
LIGHT. Continuing on with the pattern that had T in the final position,
$ egrep l[iouy][^taer][^aer]t scrabble5.txt licht licit light limit
LICHTis beyond the pale, and I had my doubts about Wordle using
LIMITis a perfectly good word. So that’s three or four words other than
LIGHTthat could have been the solution. I just wasn’t thinking straight when I convinced myself that my first guess had locked in
I suspect the results are even better when using the official word list vs. a list of legit five-letter Scrabble words.
The author also has another neat way to solve these puzzles.
I wonder if this is another example of when to possibly use a regex vs. machine learning.
Nmap for the Forgetful 🐘 (a.k.a. nmapAutomator)
#NotAFan of the "… for Dummies" series of books, mostly due to the titles. While it's fairly likely that those who consume said tomes realize the "dummies" part is just self-deprecation (which is something that isn't all that emotionally great for us), the truth is that we look for certain book idioms that fill a knowledge gap.
The same is true for tools that help us wield powerful frameworks such as Nmap. We'll let Nmap's
manual page define itself:
Nmap (“Network Mapper”) is an open source tool for network exploration and security auditing. It was designed to rapidly scan large networks, although it works fine against single hosts. Nmap uses raw IP packets in novel ways to determine what hosts are available on the network, what services (application name and version) those hosts are offering, what operating systems (and OS versions) they are running, what type of packet filters/firewalls are in use, and dozens of other characteristics. While Nmap is commonly used for security audits, many systems and network administrators find it useful for routine tasks such as network inventory, managing service upgrade schedules, and monitoring host or service uptime.
Nmap is a powerful tool with scads of command-line options, over 600 scripts, and nearly 140 libraries. Needless to say, it can be a bit, er, daunting, even to the experience wielder. Thus, enters
Mark Zenman does a great job introducing nmapAutomator over on the scip AG blog, so I won't steal his thunder, just give you an overview of they key points that are covered.
Simpler commands, and more verbose help than regular nmap
Nice, human-readable output during operation
Limited default scans, although easy to change
Recommendations are based on a static list
nmapAutomator has very few dependencies
If you're new to Nmap or would just like to simply use of it on occasion, definitely give Mark's overview a read.
Since I had two "also known as"" entries in today's installment, I thought closing with a look at the use of aliases (a.k.a courtesy name, code name, pseudonym/pen name, stage name, nickname, secret identity, handle) might be a fun, non-techincal diversion.
One of my all-time favorite novel series is "The Expanse", which is written under the pseudonym, "James, S. A. Corey", and the two authors behind that pen name are hardly the first to ever publish under a different name, or human to take on an alternate name in different contexts. I mean, even I answer to the phonic incantation of "hrbrmstr" as much as I do my real first name.
Charles Dickens used "Boz" as a pseudonym for a bit
C. S. Lewis is a pseudonym for "Clive Hamilton and N. W. Clerk"
Theodor Seuss Geisel is our (generally) beloved "Dr. Seuss"; and
Mark Twain was Samuel Clemens IRL
Norma Jeane Mortenson is the infamous "Marilyn Monroe"
"Michael Caine" is an alias for IRL "Maurice Joseph Micklewhite" (which is all kinds of an awesme IRL name IMO)
Nicolas Kim Coppola is known to us as "Nicolas Cage" (which I hoped his recent movie used somewhere)
Sting's original nom de plume was "Gordon Sumner"
Edward Teach pirated the (fairly boring) name "Blackbeard", and
The Sundance Kid sure sounds cooler than "Harry Alonzo Longabaugh"
I did not know that many fictional characters most of us are familiar with are, in fact, aliases as well:
"Cap’n Crunch" is "Horatio Magellan Crunch"
"Cookie Monster" was originally "Sid"
"Shaggy", from Scooby-Doo is really "Norville Rogers"
The "Wizard of Oz" is Oscar Zoroaster Phadrig Isaac Norman Henkle Emmannuel Ambroise Diggs (which I don't believe was expanded upon in the films.)
There are tons more examples via Your Dictionary, as well as a solid Wikipedia article on pseudonyms; plus a 2011 book on why — especially authors — use these misdirections.
What are some of your favorite aliases from stage, screen, books, fiction, or social media?
If you do answer that question or interact in the comments, the only rule is kindness. ☮
I help my wife when she gets stuck on W. I have the old list as the search space, use her rejects and inclusions to narrow, then any good or off positions to narrow, usually to a handful of candidates all with good old grep. /s/ Silence Dogood, AKA B. Franklin