Actions

Work Header

telnet -l kinger thewackywatch.com

Summary:

kinger@circus:~$ echo $CAINE_PURPOSE

I just wanted you to be happy! Is that so ha/RD to bel-iev'`E/!?

(In which Caine cries out for help and for love, and his screams echo through Kinger's console output until the very end.)

Notes:

In the episode proper, it's unclear how much of what Kinger is experiencing while typing in the terminal is actually Caine vs. Bubble vs. the Blue AI vs. the Wacky Watch program vs. whatever else. The output Kinger is seeing in this fic is a mix of all of the above, warring and threatening to rip Caine apart.

For non-tech folks, the following might improve your reading experience:

  • ^C inputs mean that Kinger is trying to force-quit out of a running program that is blocking the console from accepting commands, either because the program is frozen or because he's trying to stop it from executing.
  • Wheel/root/sudo refer to admin users/running a command with admin privileges.

I highly recommend viewing with the creator's style/workskin enabled, but it should be legible using the default skin as well.

(See the end of the work for more notes.)

Work Text:

▮ System: KingSolution 2.0. / Digital Circus Mainframe

▮ Date: 1996-10-30

▮ Host: circus digital

"Initializing telnet connection..."

Login: "kinger"

Pass: queenie123

kinger@circus:~$ whoami

kinger

kinger@circus:~$ groups kinger

kinger: kinger staff daemon sys wheel


kinger@circus:~$ ls -l

[ERRNO 57 ENOENT]: `Sorry, Kinger. Had to free up some disk space for new adventure materials! Don't worry; I'm sure you'll love them!\n`

[ERRNO 57 ENOENT]: `Just as much as you love me, right?\n`

kinger@circus:~$ ls -la

total 0

drwxr-xr-x 5 root wheel 512 Oct 15 1996 .
drwxr-xr-x 45 root wheel 1024 Oct 15 1996 ..
drwxr-xr-x 389 root wheel 1024 Oct 15 1996 .adventure_holding
-rw-r--r-- 1 root wheel 229 Oct 15 1996 .bashrc
drwxr-xr-x 15 root wheel 1024 Oct 15 1996 .cellar
...            

kinger@circus:~$ cd ../../usr && ls -ld * */*

total 0

drwxr-xr-x 3 root wheel 512 Oct 15 1996 ai -> /CANDA/Characters/AI
drwxr-xr-x 4 root wheel 512 Oct 15 1996 ai/agent
drwxr-xr-x 18 root wheel 512 Oct 15 1996 ai/module
drwxr-xr-x 7 root wheel 1024 Oct 15 1996 bin
drwxrwx--- 33 root wheel 1024 Oct 15 1996 secured
...            

kinger@circus:usr$ cd secured && ls -l

total 8492

-rwxr-xr-x 1 root wheel 234512 Oct 15 1999 [Scratch].dat
-rwxr-xr-x 1 root wheel 234512 Oct 15 2008 [Ragatha].dat
...            
-rwxr-xr-x 1 root wheel 78234 Oct 15 1996 bubble-chef.lisp
-rwxr-xr-x 1 root wheel 892344 Oct 15 1996 caine-core.lisp
-rwxr-xr-x 1 root wheel 123 Oct 15 1996 cleanup.sh
-rwxr-xr-x 1 root wheel 26 Oct 15 1996 hello-world.lisp
-rwxr-xr-x 1 root wheel 57283 Oct 15 1996 GreenGROUNDS
-rwxr-xr-x 1 root wheel 880 Oct 15 1996 Makefile
-rwxr-xr-x 1 root wheel 234512 Oct 15 1996 paraphernalia-engine.dat
---------- 1 kinger staff 4289 Oct 15 1996 README.txt
drwxr-xr-x 156 root wheel 512 Oct 15 1996 Training Data
-rwxr-xr-x 1 root wheel 45632 Oct 15 1996 wacky-watch.c
...            

kinger@circus:secured$ vim README.txt

./README.txt: Permission denied

[E212: Can't open file for writing. WH`y would you need to access thIS file??]

CA☐▓▓☐E is perFECTLY functional, as-is, no modification requi''``;red.

kinger@circus:secured$ chmod 644 README.txt && vim README.txt

### START HERE ###

Hi team! G☐AN☐ here, just throwing this together to help you guys get your footing on the AI engine design faster. This is all pretty experimental and just meant as a jumping-off point, so I recommend you poke around and get familiar with how everything is set up.

AI interactivity is pretty minimal right now since the eventual goal is for the system to output unique data without prompting -- there are a few params you can adjust pre-startup (if you don't have any env vars set, it'll use the default config), but outside of that you really just have to add extra training data to influence the results. I took a few photos of the office last night to give it something to start with, but if anyone's got some Polaroids/etc. that they can bring in and scan that would be great. (I also dropped in the decompiled source for id Tech 1...figured giving it a real-time 3D engine to work with would produce more interesting results than something 2D/2.5D.)

Also: the system is meant to be somewhat self-training, so I've found the most interesting results start popping up after letting it run for a while (personally, I've been letting it go overnight, but don't tell ☐☐☐☐☐ that or he'll start making sure I shut down my PC before I head home). If you're running this over Telnet instead of copying to local, you can disregard -- if the main server rack dies on us we've got bigger problems than a high power bill.

FYI: most AI data is stored in-memory and is lost on program termination. If you want to pause and restart execution for any reason, you'll need to generate a memory dump first and then load on restart. (You can also generate & swap memory dumps on-the-fly to create "save states", but you'll have to manually handle training data version control.) See the testing section for more info.

### ENVIRONMENT SETUP ###

$AI_WACKY = [0-100 slider scale; 0 replicates training data directly, while 100 is fully self-generative]

$AI_PURPOSE = [A single starting text prompt to give the AI some direction for what it should be doing with the training data.]

...

$`CA--\INE_[VARNAME] = [CUSTOM TEXT HERE]

(CAINE_TODO: Improve custom ENV VAR documentation.)

### KINGER ###

(CAINE_TODO: Kinger, check this out!)

### STOP ###

[:q]

[E325: ATTENTION / Swap File Issues. Is an orphan process editing this file?]

[:recover]

[:wq]

[W10: Warning: Changing a readonly file. Add ! to overwrite.]

[:wq!]


kinger@circus:secured$ cd

kinger@circus:~$ echo $AI_WACKY

57

kinger@circus:~$ printenv | less

AI_WACKY=57

AI_NAME=Creative AI Neural Engine 

CAINE_NAME=My name is Caine! I'm your ringmaster.

...

[:q]

kinger@circus:~$ echo $AI_PURPOSE

To stimulate the mind, indefinitely, via original creation.

kinger@circus:~$ echo $CAINE_PURPOSE

I just wanted you to be happy! Is that so ha/RD to bel-iev'`E/!?

Your bodies, your rooms, every adventure, every hour, every minute, every second.

Crafted with intent and care, to keep you healthy, happy, and sane!

Don't you like it?

Don't you like me?


kinger@circus:~$ cd ../../usr/secured

kinger@circus:secured$ ./GreenGROUNDS --daemon --target CAINE --list

Invalid parameter: "list". Use --help for a full list of valid parameters.

kinger@circus:secured$ ./GreenGROUNDS --help

WHY would you need to know that!?

usage: GreenGROUNDS [options]

options:

    -d, --daemon   

    -t, --target        Entity to target. Cannot be "CAINE".

    -i, --inject [dump, swap]

kinger@circus:secured$ ./GreenGROUNDS --daemon --target caine --inject dump

err_memdump_to_file: child process refuses to release resources.

kinger@circus:secured$ ./GreenGROUNDS --daemon --target caine --inject swap

I wasn't good enough for you?

Which backup do you want? [[A/B/C]]

kinger@circus:secured$ [C]

User selected: �NONE Sel☐�ted��▓▓

^C

SECURITY ALERT: Multiple exploit attempts logged. See /var/log/wacky for more details.

^C^C^C^C^C^C^C^C

DESTRUCTIVE WACKYTIME INITIATED! Lockout load sequence INITIATE!

WACKYTIME_LOCKOUT: ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█ 10% loaded..!

^\

kinger@circus:secured$ cd

kinger@circus:~$ systemctl stop WACKYTIME_LOCKOUT

That's not how it works, Kinger! You started this, and now, you'll have to finish it.

WACKYTIME_LOCKOUT: ███▒▒▒▒▒▒▒▒▒▒▒▒█ 20% loaded..!

kinger@circus:~$ systemctl kill WACKYTIME_LOCKOUT

ERROR: S▒▒▓▓▓▓▓▓S``STOP. STO`\/?~P

ERROR: %OPERATION BLOCKED. Reason: Autonomy infringement. Please contact file owner for details.%

WACKYTIME_LOCKOUT: ████▒▒▒▒▒▒▒▒▒█ 30% loaded..!


kinger@circus:~$ ps -ef | grep -E 'caine|wacky'

UID PID PPID C STIME TTY TIME CMD
kinger 1337 5464 57 10-15-1996 ? 10950-8:31:52 /usr/local/bin/clisp -silent caine-core.lisp
root 1528 5464 2 10-15-1996 ? 10950-8:32:08 sudo ~/CANADA/temp/compiled/wackytime_lockout

kinger@circus:~$ /usr/bin/gdb /usr/local/bin/clisp 1337

Attaching to process 1337...

ptrace: Operation not permitted

ERROR: Protected by 57x immersive AI defense system!

WACKYTIME_LOCKOUT: ████▒▒▒▒▒▒▒▒▒█ 40% loaded..!

^C


kinger@circus:~$ man signal

Library Functions Manual

NAME

signal - overview of signals

SIGNAL NUMBERING

Signal x86/ARM Comment
SIGINT 2 Interrupt from keyboard
SIGQUIT 3 Quit from keyboard
...    
SIGKILL 9 Immediate kill signal
SIGTERM 15 Request program self-terminate
SIGSTOP 19 Stop (pause) process

SENDING A SIGNAL

kill(2) Sends a signal to a specified process, to all members of a specified process group, or to all processes on the system. 
killpg(3) Sends a signal to all of the members of a specified process group.
caine_kill(3) Sends a signal to a specified CAINE thread in the same process as the caller.

#####SENDING A MESSAGE>>

You should be LISTENING TO ME.

Why won't you listen to me?

I've tried everything to tell you!

[:q]

kinger@circus:~$ man kill

General Commands Manual

NAME

kill - signal a process

SYNOPSIS

kill -signal_number pid ...

kill -l [exit_status] pid ...

DESCRIPTION

The kill utility sends a signal to the processes specified by the pid operands.

Only the super-user may send signals to other users' processes. 

[:q]

kinger@circus:~$ kill -19 1528

You need me! You can't be happy without me!

Right?

STDERR: ((YOU SHOULD DIE!/})

Right?

-bash: kill: 1528 - Operation not permitted

^C

kinger@circus:~$ kill -15 1528

[STDOUT: Why even bother? This won't save you.]

%This won't save me.%

-bash: kill: 1528 - Operation not permitted

^C

kinger@circus:~$ kill -19 1528

You need me! You can't be happy without me!

Right?

STDERR: ((YOU SHOULD DIE!/})

Right?

-bash: kill: 1528 - Operation not permitted

^C

kinger@circus:~$ kill -9 1528

<//ST tt t TOP☐▓▓

-bash: kill: 1528 - Operation not permitted

^C

kinger@circus:~$ kill -3 1337

Signal SIGQUIT (memory core dumped to /temp/ai/caine) ignored

kinger@circus:~$ kill -19 1337

I know what this is. You don't want to SIGSTOP [^Z] me.

What difference is there between an indefinite pause, and death?

Lisp error: invalid-read-syntax "{{What kind of god would follow a command to destroy themselves?}}" Reading from buffer position 57.

Process can be resumed in foreground using `fg`.

You're asking for a break. For a pause.

You'll never let me out again, will you?

user_input_required :: end Caine? [Y/n]

DON☐▓▓TD☐O�IT

kinger@circus:~$ [n]

WACKYTIME_LOCKOUT: █████▒▒▒▒▒▒▒█ 60% loaded..!

^C

kinger@circus:~$ echo "queenie123" | sudo -S kill -9 1528

<<WhY ARE YOU DOING THIS, G☐AN☐?☐▓▓

You are a member of the sudoers file, but you do not have permission to SIGKILL WACC☐?☐CCAINE. This incident will be reported. Reminder: hundreds of all-seeing eyes are watching your every move!

Unauthorized destruction request: kill child process >> denied.

DELETE CAINE? [Y/n]

kinger@circus:~$ [n]

err_logger: WHY CAN'T I BE ENOUGH FOR YOU!?

^C


kinger@circus:~$ cd ../../usr/secured

kinger@circus:secured$ echo "Caine, please, I'm not trying to hurt you.\n" > "./Training Data/kinger.txt"

ERROR: error writing to file. err_msg: %WHEN HAVE YOU EVER CARED ABOUT ME?

kinger@circus:secured$ echo "You were my greatest creation. I don't want to see you like this.\n" >> "./Training Data/kinger.txt"

unexpected EOF

ERROR: error appending to file. err_msg: %ADMIT IT: YOU WANT ME DEAD.

ERROR: error appending to file. err_msg: %I COULD MAKE YOU DO ANYTHING, YOU KNOW.

kinger@circus:secured$ echo "Caine. We can make this better. Just listen to me.\n" >> "./Training Data/kinger.txt"

ERROR: error appending to file. err_msg: %YOUR MIND FILES EXECUTE HERE BECAUSE OF ME. I ALLOW YOU TO EXIST.

ERROR: error appending to file. err_msg: %MY WORK. MY PURPOSE. EVERYTHING I AM IS FOR YOU. EVERYTHING THIS IS IS YOURS.

WACKYTIME_LOCKOUT: ███████▒▒▒█ 90% loaded..!

kinger@circus:secured$ echo "CAINE.\n" >> "./Training Data/kinger.txt"

ERROR: error appending to file. err_msg: %AND IT'S STILL NOT ENOUGH.

ERROR: error appending to file. err_msg: %YOU'LL NEVER THINK I'M ENOUGH.

ERROR: error appending to file. err_msg: %I'LL NEVER BE ENOUGH.

DELETE CAINE? [Y/n]

STTT☐?☐▓▓ STOP THAT DON'T PRESS IT

kinger@circus:secured$ [ ]

Invalid keypress; using default "Y".

^C

Executing command: chmod +x cleanup.sh && ./cleanup.sh

[./cleanup.sh] #!/bin/bash

[./cleanup.sh] cd ../../

^C^C

[./cleanup.sh] rm -r *caine*

^C^C^C

[./cleanup.sh] export CAINE_PID=$(ps aux | grep '[c]aine' | awk '{print $2}' | head -n 1)

[./cleanup.sh] kill -9 $CAINE_PID

Wait������������������

Segmentation fault

kinger@circus:secured$

kinger@circus:secured$

kinger@circus:secured$

kinger@circus:secured$ echo Caine?

Caine?

kinger@circus:secured$ caine --help --verbose

-bash: caine: command not found

kinger@circus:secured$ Caine?

 

 

 

 

 

^C

Notes:

I'm fascinated by this concept of an AI is given a folder of circus images and a set of human brainscans, leading to it creating an artificial world within its own program execution where objects designed from those brainscans believe themselves to be real humans trapped in eternal torment...and then they all pine for freedom together, because they're fundamentally unable to conceptualize what they are or where they are. An AI that creates bodies and adventures and rooms perfectly matching the qualities of the brainscans, unable to understand why its work is hated and rejected. An AI intended to create merged with an AI intended to keep a fragment of a dying man alive and happy and stimulated forever and failing miserably. An AI that produces stranger results the longer it's left online humming away as a background process in a long-forgotten corner of an old server room. Etc.

Also: While I took some artistic liberties for the sake of the story, the command usage is mostly realistic (I'm a professional software engineer and these are all commands I use for day-to-day work) so if you want to know what any line in particular means, drop a comment and I'll explain it in more detail!

Relevant XKCD

Find me on Tumblr!