Toilix 3.6

Posted: 16th November 2006 by mash in it-comment, Unterhaltung
Tags: , , , , ,

————————————————————
This document describes a solution to some problems encountered
running a single user toilet in a multi user company.
There always have been some complaints, that some users leave
toilet in an undefined state and/or not applying the appropriate
commands in order to leave toilet in a proper condition.

To make things worse, somehow the public-key to the toilet (here at our
company) got lost, which led to concurring user access and nasty
situations due to annoyed users.

Subsequently we asked our documentation department to write a
short note on how this topic could be solved.
Here’s what they’ve come up with.
————————————————————

          Brief Introduction to
Standard Housing Integrated Toilets
(SHIT)

I. Booting
==========

The DOOR-Boot-Loader is not a Windows application and
can therefore not be operated with the mouse.

Before Booting you have to initialize boot options using
the KNOCK-Command with parmeter ‘fist’.

The KNOCK-Command has a default Timeout of 3 seconds that
can be arbitrarily changed to a higher value.

The Bootloader is initialized correctly when returning a
result value of NULL.

BootLoadOk = [ -z KNOCK ]

If the Bootloader does not result to NULL it is unsafe to
run any OPEN-Commands on DOOR. In this case you have to
wait until DOOR broadcasts an exit-Status.

As a next step the Bootloader-function OPEN may be applied
to DOOR in order to access your SHIT, followed by one or
more calls to STEP_IN.

DOOR.OPEN returns a boolean result.

if [ DOOR.OPEN ]
{
repeat
STEP_IN
until @Target
}

The System-Variable @Target is set automagically each time
STEP_IN is called.

Though the above code snippet might work perfectly, it is
generally recommended (and estimated a good programming-style)
to immediately apply DOOR.Close after your first call to
STEP_IN:

iCount=0
if [ DOOR.OPEN]
{
repeat
STEP_IN
if iCount == 0
{
DOOR.Close
# DOOR.lock -f /var/local/key
iCount++
}
until @Target
}

The DOOR.lock command is currently commented out because of the missing key-file
mentioned above.

II. WORKING with SHIT
=====================

To fully understand the items discussed in the section below you should
have some basic knowledge of the WLAN capabilities of this SHIT.

Usually your SHIT is connected to a WIDE AREA NETWORK of sewage using
the FLUSH (Feed Local Urban Sewage by Hydro-Pressure) protocol.

The FLUSH-protocol itself consists of some Pipes implemented in the
Hardware Abstraction Layer called WLAN (Waterbased Layer of Assimilation
Network)

The toilix shell is a pure hardware implementation with two
binary user-interfaces:

+ SEAT (Serial Evacuation & Abortion Tool)
+ FLUSH-Button

The complete process could be run in just three Commands,
but unfortunately some processes require initialization and
cleaning up TMP-files and the like so it is always a good
idea to stick to some extended rules:

III The Init process
===================
In order to fully initialize SHIT and thus being able to access
all functions you might need, apply the following commands first:

+ check your TCP-stack

+ IP-prerequisites

a) TCP
TCP (or Toilet Cleaning Paper) is organized in a local SPOOL variable
that actually represents a structure similar to some backup tape.
In contrary to regular backup media TCP is not Re-Writable, so it is
always a good idea to check available free space before initializing
SHIT.

Usually there is a ready-to-use TCP-Spool-File available in
/var/local/spool/tcp.cups
called “currently used paper spool” (CUPS).
[Note: don’t mess up this CUPS-device with your printing system]

You can check this file using:

[ -f /var/local/spool/tcp.cups ]

followed by a check on available space for the upcoming operations:

[ sizeof($operation) -gt /var/local/spool/tcp.cups ]

If this check fails or if the size of this CUPS is not sufficient
for the operations you are about to commence, you may want to check
the fallback-devices located in
/dev/cups

If you have to use the fallback-device you should mount it first

mount -t fsTCP /dev/cups /var/local/spool/ user, exec ,write-only

(Remember, TCP is not rewritable)

If the mount command fails, it will return an exit-status != 0

In this case you should also exit the SHIT Process and contact your
network admin in order to reinstall fresh TCP-DEVICES.

b) IP – Intermediate Process
Matter of factly the SEAT is a very ancient hardware system without
any routing capabilities implemented whatsoever. Therefore you have
to prepare manually the deMasquerading. This is also called STRIP
– Standardized Textile Removement Intermediate Process. It is an intermediate
Process (or IP for short) because it will be undone later, after
TCP has been applied.

In order to remove any textiles one could use a regular umount but
in this case we just suspend the coverage using an IP stack.
/usr/local/bin/masquerade.sh -u STRIP >/tmp/strip.$$
The -u Parameter in the command above tells masquerading to suspend completion
of STRIP and enable undo.
Note: Though SHIT is a single user interface your OS isn’t. In order to prevent
confusing anything, the temporary file for STRIP gets the current process-ID as
an extension.

IV Core Dump
=============
That’s where the action takes place.

Well, you don’t have to worry on this. Once you’ve got a grip on the basics
it’s pretty easy.

Sure you’ve already heard of core dumps and how complicated it is and that it’s
really annoying trying to read a core dump especially when it’s in HEX-Code.

But actually you don’t have to read it at all.

All you have to do is apply TCP if the Core Dump’s exit status is >0 and
use the FLUSH-interface properly.

CAUTION: There is a certain amount of interconnectedness in the fabric of time, the universe and everything that might interfere with any given instance of a
Core Dump. To put it in a nutshell: Depending on your favourite Chinese Food
(or mexican, italian …) you had yesterday, the core dump may not be compatible
with the FLUSH-interface.

Explanation:
Calling the FLUSH-interface forces the default canvas of SEAT to redraw. Usually
this results in a blank white canvas of the SEAT. However sometimes the canvas fails to redraw properly and has to be redrawn manually using BRUSH which is included in toolset.h of the SHIT-Library (see “man BRUSH” for a further discussion of usage).

V. Finalization
=================
Actually you could exit from the whole process right now, without losing any data.
Nevertheless it is recommended to do some housekeeping if you don’t want to
corrupt the system.

1.) Restore IP-Stack
You might remember that we have an suspended IP still running (or rather hanging between your knees and ankle), so it is always a good idea to restore masquerading.
/usr/local/bin/masquerade.sh -r STRIP /strip.$$

clean up
rm -f /tmp/strip.$$

2.) Anti-Virus Option
As mentioned above SHIT is always connected to Urban Networks via PIPEs, which makes it generally possible for intruders to access your system.
Your toilix-distribution usually runs within an encapsulateed box, but nevertheless there is a certain amount of danger when exiting to your OS. Make sure you don’t allow any unwanted visitors to infect your system:

#!/bin/wash
run water

VI) Exit
==========
At that point you might rather leave this SHIT as quickly as possible, but you should adhere to the following:

In order to exit you may use STEP_OUT which is more or less the opposite of
STEP_IN (as tac is the opposite of cat).

If you have closed the DOOR – as recommended in section I – do not forget
to call DOOR.open before exiting, otherwise the process can not be finished and
you’ll find yourself trapped.

And last but not least – remember:
If it comes to SHIT even a Linux User has to open windows.

One for the girls:
Remember, never flush a tampoon!


-m*sh-

  1. Deleted says:

    Warte…ich kringel mich gerade vor Lachen…so jetzt gehts wieder! DAS kann nur von einem Informatiker kommen. Herrlich, wenn auch stellenweise etwas langatmig, aber ich bin ja auch kein Informatiker 😉

    *stubbs*

    • sha-mash says:

      Dann ist es erstaunlich, dass Du es verstehst. Aber ich freu mich jetzt auch dass es hier ueberhaupt jemand checkt – oder wenigstens witzig findet.
      -m*sh-

      • Deleted says:

        Na, zu irgendwas müssen die drei Jahre Informatikunterricht in der Schule gut gewesen sein;)
        Nicht, dass das jemand bei sich auf die Toilette hängt…*schmunzel*

        • sha-mash says:

          Na, auf die Idee kam ich in meiner ehem. Fa. Da war tatsaechlich der Schluessel fuers Klo weg und ich schrieb diese Anleitung aus gegebenem Anlass.
          [Ooops jetzt hab’ ich verraten, dass es aus der Konserve war…]

          -m*sh-