Newsletter #38 - Digital Magic - A Short Story Nov 9 2023

Hello, and welcome to issue #38!

Have you ever wished for magic to exist? If it did, would you notice it?

Maybe magic does exist, just in a different form than what you expected. Not in potions and spells, but in technology.

It seems far-fetched, but our technology mirrors aspects of magic. Instant communication across long distances. Spells in the form of commands in a terminal. Programs as spirits doing our bidding.

It might not be what we expected, but the similarities are striking.

For a long time, I've searched for a book, whether fantasy or sci-fi, that entertains but at the same time teaches concepts that I can use. I've spend much time reading books with complex spell systems or intricate historical lore, which, in the end, only serve to understand the world created by the author.

So, this is my attempt at writing short stories that are both entertaining and informative about topics or tools that you can use in real life.

Don't expect the length of Brandon Sanderson's books or the beautiful writing of Patrick Rothfuss. It is just me, a systems engineer, doing my best. However, I hope you find these stories useful or at least mildly entertaining.

If you know of any books or stories that you think I might enjoy, please share them with me. I would love to discover such books/stories.

Each story focuses on a small subset of commands or ideas that you can apply to problems you encounter in your daily tasks. The stories won't be overly complex, but I'll use fiction to highlight concepts.

Okay, let’s begin with the first story.

The AmberTTY - 0x1

An image over the shoulder of Zed on his computer

Zed was born into technology. He received his first tablet before his second birthday. A digital native through and through, he was introduced to the Internet and its vast content at a young age. He thought he understood technology well, loved his mobile phone, and used his laptop only for schoolwork or when his phone’s screen was too small for movies.

Now in the second year of his computer science degree, he understood the basics of programming. But he had an aversion to using the terminal. He preferred GUIs instead.

One day, while seeking a solution for a bug in a program he was working on, he stumbled upon a familiar website. He had visited it multiple times, but this time he noticed something different: a small cursor at the bottom of the page. He might have missed it, but it blinked at the exact moment he finished the tutorial he was reading. It only blinked for a few seconds, but that was enough for him to notice.

With his rudimentary knowledge, he typed the following command to list the files:

1
ls

A single file appeared:

1
ambertty.txt

Curious, he attempted to view the file's content:

1
cat ambertty.txt

And received:

1
ssh lesson_01@ambertty.com

He considered trying the command but decided against it. It's never wise to connect to an unknown server. Perfectly rational, though lacking adventure by some standards. He could have created a VM and proceeded from there. Anyways, at that time, he closed his computer and continued with his life.

A few months later, he ended up at the same site again. This time he took the leap and ssh into ambertty.

A message flashed:

1
Welcome to the Amber TTY. no one really visits. Everyone has forgotten the TTYs █

It continued:

1
2
3
4
5
We were the bridge between humans and computers. Now, we are neglected and
forgotten. Such a waste.

We are the perfect interface if you learn our secrets. I can show you the path
if you have the skill.

It prompted:

1
Do you want to continue? (Y/n)

Zed just hit enter, and it continued:

1
2
3
4
5
6
7
8
Let us start with some basic reconnaissance commands.

Operating Systems are multi-user and multi-task, so you can check who else is
connected to the system by running the command `who` or the command `w`. `who`
shows you who is logged into the system, and `w` tells you what they are doing.

If you want to get more information about a specific user you can use the
command `finger`.

Those commands were interesting, they made him feel as if he could snoop on people without them noticing.

The program continued:

1
2
3
4
5
6
7
If you need to send real-time messages to one of the users, you can use the command
`write`. Write is a one-way communication tool, it doesn't wait for a reply, it
just sends a message.  The other user could `write` a message back to you, but
it is not an interactive session.

`write` may unsettle some. They might not realize that their system is shared
and observable by others with the correct knowledge.

He hadn't thought about it either. He knew, or at least he thought he knew that the systems were multi-user, but he didn't really appreciate the implications.

The program concluded:

1
2
3
Experiment with these commands and return when you are ready for more.

To learn more about each command `man` is the tool you will need.

It was fascinating, and intriguing. Zed experimented with the commands and scoured the man pages. There were many terms and keystrokes he didn't understand. For example, using C-d for closing a program.

Little he understood of treating input as file, and that C-d would send the escape sequence for End-Of-File (EOF) telling the program that there won't be more input after, so it was time to end the reading process.

He kept visiting the AmberTTY and learnt to communicate with the console. He learnt one-liners that looked a lot like indecipherable spells, but over time, he even wrote his own.

People have forgotten the TTYs but they are still out there, and you can use them to your advantage.

Learn their language, understand how they work, and learn how to change the world around you as if by magic. Remember Arthur C. Clarke’s third law:

"Any sufficiently advanced technology is indistinguishable from magic."

RDerik

related commands to investigate:

1
2
3
4
5
6
7
# Linux
id
getent

# For macOS
dscl
scutil

Final thoughts

I hope you enjoy this short story and maybe even learn a few new commands. The goal of these stories is to entertain, but I try to mix them with knowledge that might be useful even if you don’t know you need it. As I said before, I always wanted to find fiction/fantasy stories where they show real use of technology.

It is hard to mix them both, a story and a “tutorial”, maybe that is why I haven’t found any. I’ll try to create more stories, and experiment more with them. Please forgive me if in the future I change parts of the stories retroactively, consider them a work in progress. I am, like Zed, just exploring and learning.

C-d

Recommendations and interesting topics

CTF

This week I want to share a fun Capture The Flag (CTF) game for you:

EKS Cluster Games by Wiz.io research

I had a lot of fun playing with it, I had to ask for a tip for the final level, but it was fun. Give it a try and let me know if you liked it.

Also, you might like all the

WhatsApp call security

WhatsApp announced a new feature that uses relay servers to obscure the callers' IPs, in contrast with how it currently works with peer-to-peer calls. Enhanced security is nice, but also you have to trust those relay servers to forget the fingerprint you created with them. And the quality of your call may be affected. There is nothing free, it is all tradeoffs. But nice to see some more focus on security, also the "Silence Unknown Callers" feature is nice.

If you are a WhatsApp user, check it out:

WhatsApp Call Enhancing Security

AI

You probably saw OpenAI's DevDay -Developer conference, if you missed it you can read the blog post.

Also GitHub Universe 2023(video), it was pretty much all about Copilot and AI.

I'm not sure how I feel about all the hype in AI. I understand the benefits of LLM, I use them pretty much every day to bounce ideas around and get help with tasks. I feel that AI demos for software development make it seem as if AI can read your mind, and always gets it right. That hasn't been my experience. Of course, I can accept all the AI's suggestions, but they are rarely complete. Most of the time, the proposed solution falls short if you actually know what you are doing. It offers a good starting point, but I have to always refine it. I guess we'll have to wait and see.

Newsletter - The missing issue 36

You might have noticed that the last issue was issue 37, and the one before that was 35. You might be asking, what happened to issue 36? was it a secret project and it got pulled last minute?

Most people won't notice, but if I was reading the newsletter and saw the gap, it would drive me crazy. So, to ease your mind and not be part of your daily stress, let me clarify. It was just a mistake renaming my files :sigh:. Sorry for the confusion.

OK, that's it for this issue of the newsletter.

Until next time, Derik

Tip of the week

This newsletter tip of the week comes from twitter:

1
2
3
GNU screen: You can lock your session before you walk away (like activating a screen saver that requires a password to dismiss)
Press Ctrl-d (default) then x
If prompted for "key:" enter the screen-lock password (twice), otherwise the unlock password is the same as your login pw

source: @freebsdfrau


** If you want to check what else I'm currently doing, be sure to follow me on twitter @rderik or subscribe to the newsletter. If you want to send me a direct message, you can send it to derik@rderik.com.