More L337 Translations
Thu, 04/19/2018 – 09:20
Dave continues with his shell-script L33t translator.
In my last
article, I talked about the inside jargon of hackers and computer geeks
known as “Leet Speak” or just “Leet”. Of course, that’s a shortened version
of the word Elite, and it’s best written as L33T or perhaps L337 to be
ultimately kewl. But hey, I don’t judge.
Last time I looked at a series of simple letter substitutions that allow
convert a sentence like “I am a master hacker with great
skills” into something like this:
I AM A M@ST3R H@XR WITH GR3@T SKILLZ
It turns out that I missed some nuances of Leet and didn’t realize that
most often the letter “a” is actually turned into a “4”, not
an “@”, although as with just about everything about the jargon,
it’s somewhat random.
In fact, every single letter of the alphabet can be randomly tweaked and
changed, sometimes from a single letter to a sequence of two or three
symbols. For example, another variation on “a” is “/-” (for
what are hopefully visually obvious reasons).
Continuing in that vein, “B” can become “|3”, “C” can become “[“,
“I” can become “1”, and one of my favorites, “M” can
change into “V”. That’s a lot of work, but since one of the
goals is to have a language no one else understands, I get it.
There are additional substitutions: a word can have its trailing “S”
replaced by a “Z”, a trailing “ED” can become
“‘D” or just “D”, and another interesting one is that words
containing “and”, “anned” or “ant” can have that
sequence replaced by an ampersand (&).
Let’s add all these L337 filters and see how the script is shaping up.
But First, Some Randomness
Since many of these transformations are going to have a random element,
let’s go ahead and produce a random number between 1–10 to figure
out whether to do one or another action. That’s easily done with the
doit=$(( $RANDOM % 10 )) # random virtual coin flip
Now let’s say that there’s a 50% chance that a -ed suffix is going
to change to “‘D” and a 50% chance that it’s just going to become
“D”, which is coded like this:
if [ $doit -ge 5 ] ; then word="$(echo $word | sed "s/ed$/d/")" else word="$(echo $word | sed "s/ed$/'d/")" fi
Let’s add the additional transformations, but not do them every time.
Let’s give them a 70–90% chance of occurring, based on the transform
itself. Here are a few examples:
if [ $doit -ge 3 ] ; then word="$(echo $word | sed "s/cks/x/g;s/cke/x/g")" fi if [ $doit -ge 4 ] ; then word="$(echo $word | sed "s/and/&/g;s/anned/&/g; s/ant/&/g")" fi
And so, here’s the second translation, a bit more sophisticated:
$ l33t.sh "banned? whatever. elite hacker, not scriptie." B&? WH4T3V3R. 3LIT3 H4XR, N0T SCRIPTI3.
Note that it hasn’t realized that “elite” should become L337 or
L33T, but since it is supposed to be rather random, let’s just leave this
script as is. Kk? Kewl.
If you want to expand it, an interesting programming problem is to break
each word down into individual letters, then randomly change lowercase to
or vice versa, so you get those great ransom-note-style WeiRD LeTtEr
Next time, I plan to move on, however, and look at the great command-line
tool youtube-dl, exploring how to use it to download videos and even
just the audio tracks as MP3 files.
News briefs for April 19, 2018.
Help Canonical test the GNOME desktop memory leak fixes in
Ubuntu 18.04 LTS (Bionic Beaver) by downloading and installing the
current daily ISO for your hardware from here: http://cdimage.ubuntu.com/daily-live/current/bionic-desktop-amd64.iso.
Then download the patched version of gjs, install, reboot, and then
just use your desktop normally. If performance seems impacted by the new
packages, re-install from the ISO again, but don’t install the new packages
and see if things are better. See the Ubuntu
Community page for more detailed instructions.
Thousands of Android apps downloaded from the Google Play store may be tracking kids’ data illegally, according
to a new study.
NBC News reports: “Researchers at the University of California’s International Computer
Science Institute analyzed 5,855 of the most downloaded kids apps,
concluding that most of them are ‘are potentially in violation’ of the
Children’s Online Privacy Protection Act 1998, or COPPA, a federal law
making it illegal to collect personally identifiable data on children under
MySQL 8.0 has been released. This new version “includes significant performance,
security and developer productivity improvements enabling the next
generation of web, mobile, embedded and Cloud applications.” MySQL 8.0
features include MySQL document store, transactional data dictionary, SQL
roles, default to utf8mb4 and more. See the white
paper for all the details.
this morning that
KDE Applications 18.04.0 are now available. New features include
improvements to panels in the Dolphin file manager; Wayland support for
KDE’s JuK music player; improvements to Gwenview, KDE’s image viewer and
organizer; and more.
Collabora Productivity, “the driving force behind putting LibreOffice in
the cloud”, announced
a new release of its enterprise-ready cloud document suite—Collabora
Online 3.2. The new release includes implemented chart creation, data
validation in Calc, context menu spell-checking and more.
Red Hat Enterprise Linux: Updated heketi packages that fix several bugs are now available for
Container-Native Storage 3.9 and Container Ready Storage.
After months of development effort, Kubernetes is now fully supported in the stable release of the Docker Enterprise Edition.
Let’s talk about some of the internals of git and how it stores and tracks objects within the
If you’re unaware of what the
.git directory is, it’s simply a space that git uses to store your repositories data, the directory is created when you run
git init. Information such as binary objects and plain text files for commits and commit data, remote server information and information about branch locations are stored within.