Euer schlechtester Code

Smalltalk
Chimerer
Beiträge: 514
Registriert: 28.01.2002 16:10:44

Euer schlechtester Code

Beitrag von Chimerer » 21.09.2003 16:14:48

Hi,

ich habe mal vor einiger Zeit für eine Mathe-GFS eine Funktion geschrieben, die eine Parameterdartellung einer Ebene in eine Koordinatenform umwandelt. Dabei ist wohl so ziemlich der unverständlichste/verrückteste/schlechteste Code, den ich jemals programmiert habe, herausgekommen. :D

Jetzt wollte ich mal wissen was ihr so verbrochen habt oder hattet ihr schon von Anfang an einen guten Programmierstil? ;)

Hier der Code

Code: Alles auswählen

function make_koor(&$vector1, &$vector2, &$vector3)
{

	$para = make_para($vector1, $vector2, $vector3);

	$matrix1 = array("r" => $para[3], "s" => $para[6], "x1" => 1, "x2" => 0, "x3" => 0, q => -$para[0]);
	$matrix2 = array("r" => $para[4], "s" => $para[7], "x1" => 0, "x2" => 1, "x3" => 0, q => -$para[1]);
	$matrix3 = array("r" => $para[5], "s" => $para[8], "x1" => 0, "x2" => 0, "x3" => 1, q => -$para[2]);

	$bmatrix1 = $matrix1;
	$bmatrix2 = $matrix2;
	$bmatrix3 = $matrix3;

	array_walk($bmatrix1, 'prod', $matrix2[r]);
	array_walk($bmatrix2, 'prod', (-1)*$matrix1[r]);

	$bmatrix2 = array("r" => $bmatrix1[r]+$bmatrix2[r], "s" => $bmatrix2[s] + $bmatrix1[s], "x1" => $bmatrix2[x1] + $bmatrix1[x1], "x2" => $bmatrix2[x2] +
	$bmatrix1[x2], "x3" => $bmatrix2[x3] + $bmatrix1[x3], "q" => $bmatrix2[q] + $bmatrix1[q]);

	$bmatrix1 = $matrix1;
	$bmatrix3 = $matrix3;

	array_walk($bmatrix1, 'prod', $matrix3[r]);
	array_walk($bmatrix3, 'prod', (-1)*$matrix1[r]);

	$bmatrix3 = array("r" => $bmatrix1[r]+$bmatrix3[r], "s" => $bmatrix3[s] + $bmatrix1[s], "x1" => $bmatrix3[x1] + $bmatrix1[x1], "x2" => $bmatrix3[x2] +
	$bmatrix1[x2], "x3" => $bmatrix3[x3] + $bmatrix1[x3], "q" => $bmatrix3[q] + $bmatrix1[q]);

	$_bmatrix2 = $bmatrix2;

	array_walk($bmatrix2, 'prod', $bmatrix3[s]);
	array_walk($bmatrix3, 'prod', (-1)*$_bmatrix2[s]);

	$bmatrix3 = array("r" => $bmatrix2[r]+$bmatrix3[r], "s" => $bmatrix3[s] + $bmatrix2[s], "x1" => $bmatrix3[x1] + $bmatrix2[x1], "x2" => $bmatrix3[x2] +
	$bmatrix2[x2], "x3" => $bmatrix3[x3] + $bmatrix2[x3], "q" => $bmatrix3[q] + $bmatrix2[q]);

	array_walk($bmatrix3, 'prod', -1);

	return($bmatrix3);

}
PS: Falls es ein größeres Stück Code ist solltet ihr ihn vielleicht auf einen falls vorhanden (bei mir leider nicht :( ) Webserver auslagern, damit die Datenbank nicht unnötig anschwillt.

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von BeS » 21.09.2003 16:22:37

Hallo,
der schlechteste code entstand wohl in einer Informatik Übung im 1.Semester.
Wir durften da ein Ada95-Paket schreiben das beliebig große Zahlen verarbeiten kann (+, -, *, /). Diese Aufgabe hat sich durch das halbe Semester gezogen, immer neue Erweiterungen. Erst auf der Basis von unbounded_strings, dann als listen,...

Das Programm ist richtig schlimm geworden und hat auch nur teilweise funktioniert...
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

tylerD
Beiträge: 4068
Registriert: 10.07.2002 17:34:13
Wohnort: Halle/Saale
Kontaktdaten:

Beitrag von tylerD » 21.09.2003 16:25:00

Ich finds immer krausig wenn man in C oder C++, zig mal hin und her Casten muß. Mußte mal in der Uni mit ner Api arbeiten, in der man jeden Übergabeparameter in einen void-Pointer casten mußte und immer einen void-Pointer zurückbekamm. Leider hab ich keinen Code mehr da, aber glaubt mir, sowas will man sowieso nicht sehen.
Und herrlich Fehlerträchtig find ich das auch immer. Sowas kann nur buggen :lol:

cu

Benutzeravatar
Natas12
Beiträge: 1751
Registriert: 12.04.2002 20:59:12

Beitrag von Natas12 » 21.09.2003 16:51:24

bin kein programmierer, hab aber mal mit qbasic das eine oder andere lustige textadventure programmiert. man konnte spielstände laden und speichern, aber die abfrage der textkommandos war beschissen...

für jeden raum gab es eine nummer, die in der variable i gespeichert wurde. "sachen" wurden in i$(1 - 100) gespeichert und per save-funktion in eine textdatei gespeichert (und mittels einer schleife wieder eingelesen). es gab eine zentrale routine, die sich um die raumnummer und um die raumbeschreibung und kommandoabfrage kümmerte. hauptsächlich bestand diese routine aus einer gigantischen abfolge von if-then-else - befehlen (blöder gings nicht... :? ), also:

Code: Alles auswählen

if i = 0 then sub raum
(oder so ähnlich)

in sub raum stand einfach nur:

Code: Alles auswählen

if i = 1 then print "Du bist in bla, bla....
dynamische veränderungen wurden über zusätzliche variablen erlefigt, also:

Code: Alles auswählen

if i = 1 and a = 0 then print "Du bist in... Die Tür nach Norden ist nun offen."
richtig mies war aber dann die befehlsabfrage:

Code: Alles auswählen

input "Was nun?",a$
if a$ = BEDINGUNG and i = 0 and a = 2 and n = 3 then XYZ
...
...
if a$ = BEDINGUNG and i = 0 and i$(5) = "ein rostiges Schwert" and n = 4 then XYZ
...
(etwa tausend auswertungen)
...wobei BEDINGUNG eben die länge von a$ links und rechts vom leerzeichen bestimmte und mit kommandos verglich - deswegen konnte man "untersuche rostiges schwert" durch "unte schwert" ersetzen.

dadurch habe ich es geschafft, ein qbasic-textadvenure (mit grafiken) zu programmieren, welches (in stücke aufgeteilt) eine ganze diskette füllte (diese primitiv-version verschlang unglaublich viel speicher - qbasic konnte nur etwa 200k - grosse progs verwalten). es funktionierte aber recht gut - sogar andere leute waren in der lage, es bis zum ende durchzuspielen. und es hatte keine fehler... :D

ich hab sogar mal eine grafische oberfläche mit fenstern und knöpfen programmiert (etwas cleverer als das ding da oben), was aber saulangsam war (das ding sah aus wie GEOS auf dem C64). und ich depp hab nichts mehr davon.... (hab all meine alten disketten weggeworfen...) *schnüff*


aber ich denke, damit habe ich den preis für den miesesten code verdient, oder? ich hatte auch keine einzige kommentarzeile im programm... 8)
"In den reichen Ländern hat die Freiheit gesiegt - mit all den schrecklichen Folgen, die das für die anderen mit sich bringt und noch bringen wird. Die Demokratie ist auf andere Epochen verschoben." (L. Canfora)

Benutzeravatar
blackm
Moderator und Co-Admin
Beiträge: 5921
Registriert: 02.06.2002 15:03:17
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von blackm » 21.09.2003 16:52:18

Mein schlimster Code? Eigentlich alles was ich in php schreibe ;-)
Schöne Grüße

Martin

Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden

Benutzeravatar
abi
Beiträge: 2218
Registriert: 20.12.2001 19:42:56
Wohnort: München
Kontaktdaten:

Beitrag von abi » 21.09.2003 17:01:29

hm, ich denke mal meine ersten PHP Sites von vor 2 Jahren waren schlimm. Keine Templates, keine Arrays, keine Funktionen.. aber solang es funktioniert hat war's mir recht ;-)

Benutzeravatar
godsmacker
Beiträge: 902
Registriert: 16.03.2003 21:50:26
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von godsmacker » 21.09.2003 17:02:45

Bei mir sind das wohl die Programme, die ich so für meinen Grafiktaschenrechner schreibe..
Der kennt beispielsweise kein case oder elseif weshalb man das sowas herausbekommt:

Code: Alles auswählen

IF (BEDINGUNG)
THEN (MACHWAS)
ELSE IF (BEDINGUNG)
     THEN (MACHWAS)
          ELSE IF (BEDINGUNG)
          THEN (MACHWAS)
          ELSE IF (BEDINGUNG)
               THEN (MACHWAS)
               ELSE IF (BEDINGUNG
                    .....
                    ENDIF
               ENDIF
          ENDIF
     ENDIF
ENDIF
Wenn man das nicht so gemacht hat, dann wurde die ohnehin sehr lahme Sache noch viel langsamer, weil dann auf jeden Fall alle Abfragen durchlaufen werden müssten..
Ich hab mit dieser, etwas an Basic angelehnten Sprache, und der Matrix- und Grafikfunktionalität des Taschenrechners immerhin schon ein kleines Schachspiel zustande bekommen. War ganz schick und funktionierte auch super. Nur konnte es leider die regeln nicht überprüfen..

Grüße
Florian

Benutzeravatar
jogix
Beiträge: 776
Registriert: 05.10.2002 20:08:16
Wohnort: Lampertheim
Kontaktdaten:

Beitrag von jogix » 21.09.2003 20:01:04

Mein schlimmster Code stammt wohl eindeutig aus Pascal-Zeiten. Da das aber immerhin schon 10 Jahre her ist, habe ich wahrscheinlich nix mehr davon -- müßte höchstens mal bei meinen Eltern stöbern gehn, ob ich noch was finde.

Tjaja, Superhirn (MasterMind), grafisches Memory-Spiel, Bildschirmschoner und so'n Kram habe ich damals gehackt. Nix, was irgendwie Sinn machen könnte :roll:
cheers,
Jochen
___________________________________________________
Testing can prove the presence of bugs, but not their absence. -- Dijkstra

Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Beitrag von weedy » 22.09.2003 00:10:54

Ich kann mich noch ziemlich genau daran erinnern, es muss
vor 12 Jahren gewesen sein, da habe ich in Basic auf einem
KC85/4 (Der kam nach der Wende 200.-DM, vorher 4000.-OM)
ein Programm geschrieben, ich weiß gar nicht mehr, was das
genau machte, jedenfalls hatte ich es immer mir goto's erweitert
und irgendwann wollte ich noch eine Erweiterung hinzutun, und
plötzlich war die Grenze des Vorstellbaren vorläufig erreicht.
Ich habe einfach nicht mehr durchgesehen.

weedy.

Benutzeravatar
Dookie
Beiträge: 1104
Registriert: 17.02.2002 20:38:19
Wohnort: Salzburg
Kontaktdaten:

Beitrag von Dookie » 22.09.2003 01:14:38

Hallo,

erst vor kurzem im Pythonforum:

Code: Alles auswählen

from operator import mul
fak_lambda = lambda n: reduce(mul, xrange(2,n),n)
print fak_lambda(7)
war aber nur ein Beispiel, um einen weiteren Weg zu zeigen, die Fakultät einer Zahl zu berechnen.
Ansonsten früher, auf dem C64 mit Basic und Assembler, das waren schon oft wilde Codeorgien. Besser wurde es dann auf dem Amiga, mit 68k Assembler und Modula2.


Gruß

Dookie

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 22.09.2003 08:51:01

Hier wohl mein schlimmster Code.
Das ganze soll ein ein paar hundert Files auf einen ftp-Server uploaden.
Leider geht ab und zu die connection nicht.
Hier wird jetzt maximal 10 mal versucht, und dann aufgegeben ;)
Nicht sehr sauber, aber es läuft :P >> produktiv

Code: Alles auswählen

    Public Function uploadFiles(ByVal list As ArrayList, ByVal dateiArt As String) As Boolean

        Dim strFile As String
        Dim strDir As String
        Dim brokenList As New ArrayList()

        If dateiArt = "img" Then
            strDir = m_imgDir
        Else
            strDir = m_txtDir
        End If

        Try

            Dim ftp As New FTP.clsFTP(m_ftpAddress, strDir, m_ftpUser, m_ftpPassword, 21)

            ftp.Login()
            For Each strFile In list
                Try
                    ftp.UploadFile(strFile)
                Catch ex As System.Net.Sockets.SocketException

                    brokenList.Add(strFile)
                    ftp.Login()

                Catch exio As System.IO.IOException
                    brokenList.Add(strFile)
                    ftp.Login()

                End Try
            Next
            ftp.CloseConnection()

            If brokenList.Count > 0 Then
                If m_count < 10 Then
                    uploadFiles(brokenList, dateiArt)
                End If
            End If

        Catch eException As Exception
            Dim eMsg As New ExceptionMessage()
            eMsg.MyMessage("Methode uploadFiles")
            eMsg.eMessage(eException)
        End Try

    End Function

Benutzeravatar
jogix
Beiträge: 776
Registriert: 05.10.2002 20:08:16
Wohnort: Lampertheim
Kontaktdaten:

Beitrag von jogix » 22.09.2003 09:39:56

iiiiii, was ist das? Sieht nach Microsoft Visual Basic aus? Ich dachte, das wäre mittlerweile verboten worden ;) :D
cheers,
Jochen
___________________________________________________
Testing can prove the presence of bugs, but not their absence. -- Dijkstra

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 22.09.2003 09:51:05

vb.net :)
Aba ich muss sagen mir persönlich gefällt diese Syntax besser als z.B. die von Java. Ich muss hier weniger Klammern schreiben.

gruss
manuel

Benutzeravatar
Beowulf666
Beiträge: 1476
Registriert: 06.10.2002 14:03:08
Wohnort: Lübeck
Kontaktdaten:

Beitrag von Beowulf666 » 22.09.2003 09:58:35

Mein persönlich schlimmster Code existiert auch nicht mehr, das war mal ne quasi-graphische Oberfläche in Prolog.
Die Sprache war für sowas einfach nicht gemacht, aber der Lehrer aus dem Info-LK wollte das so...
Leider (?) existiert der Code aber wahrscheinlich nicht mehr.
Jetzt auf SID mit Kernel 2.6.16.1 + XOrg + XFCE4.2.3: Noch mehr POWER!!!!
Next Step: Binford 8000 Super Debian ;-)

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 22.09.2003 23:41:18

Eine Lösung für eine Programmieraufgabe im Programmierpraktikum. Sprache war Java, Thema war ObjektOrientierung (Gähn...). Die Aufgabe war so entsetzlich einfach, und Objekte waren völlig unnötig, also habe ich das ganze vollständig mit "static" Funktionen und Variablen gelöst: Alles ist global (selbst Funktionsparameter werden über globale Variablen übergeben) aber es funktionierte einwandfrei ;-)

Volle Punktzahl ;-)

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Daniel Seuffert
Beiträge: 19
Registriert: 11.08.2003 02:12:58
Wohnort: CH-9444 Diepoldsau, Schweiz
Kontaktdaten:

Beitrag von Daniel Seuffert » 23.09.2003 00:00:41

Mein persönlicher Horror:

Sub Emailversand()
Dim i, Ol, Item, SafeItem, MAPI, Folder, Expl, btn As Object
Set Ol = CreateObject("Outlook.Application"): Set MAPI = Ol.GetNamespace("MAPI")
Set Folder = MAPI.GetDefaultFolder(olFolderOutbox): Set Item = Ol.CreateItem(olMailItem)
For Each Item In Folder.Items
Item.BodyFormat = olFormatPlain
Item.Save
Item.Send
Next
Set Expl = Folder.GetExplorer: Expl.Activate: Expl.WindowState = 0:
Set btn = Ol.ActiveExplorer.CommandBars.FindControl(1, 5488): btn.Execute:
Set Ol = Nothing: Set MAPI = Nothing: Set Folder = Nothing: Set Item = Nothing: Set btn = Nothing: Set Expl = Nothing
End Sub

Wie bringe ich Outlook (ohne Exchange und CDO 1.21) dazu, mit Redemption eine Email mit bodyformat plaintext zu verschicken, die per VBA zur Laufzeit generiert wurde und ohne Benutzung von ExtendedMAPI. Kids, don't try this @home!!! :evil: :evil:

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 23.09.2003 02:58:29

Wolltest Du einen Virus programmieren :?: :twisted: ;-) (generierte Mails automatisch mit möglichst wenig Mitteln versenden?)

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Daniel Seuffert
Beiträge: 19
Registriert: 11.08.2003 02:12:58
Wohnort: CH-9444 Diepoldsau, Schweiz
Kontaktdaten:

Beitrag von Daniel Seuffert » 23.09.2003 04:38:50

Ne, Patrick, hierzu empfehle ich: http://bofhcam.org/co-larters/word-macro/ :wink:

Falls ich das machen wollte, dann würde ich weniger Zeilen brauchen und es wesentlich eleganter lösen, erwartet aber bitte nicht, daß ich dies hier poste. :wink: :wink:

Problem ist, daß Emails, welche über VBA (Automation von z.B. Outlook über Word) automatisch body in HMTL erstellt werden durch einen bug in Outlook, den Microsoft seit 2001 nicht gefixt hat, obwohl ein MS Outlook MVP den bug reported hat (soviel zu Support bei MS-Produkten), in der MSKB findest Du es hier:

http://support.microsoft.com/default.as ... us;Q222248

Ich zitiere: "Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article." Und aus die Maus, Problem für MS erledigt. Selbstverständlich verschicken wir als Firma alle mails ausschließlich in plaintext, daher war dieser Umstand nicht tragbar. Da ich diesen Schweinepriestern nicht auch noch das Geld für eine Exchange-Lizenz in den Rachen werfen wollte und nicht noch mehr Ärger gebrauchen kann, verfiel ich auf diese etwas derbe Methode. Das kann ich aber wirklich niemand anraten, dem seine geistige Gesundheit etwas bedeutet. Jetzt weißt Du auch (teilweise), warum ich von MS die Nase gestrichen voll habe. :evil: :evil:

Grüße, Daniel

Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

Beitrag von lisan » 23.09.2003 07:08:02

Das krasseste was mir besher passiert ist, ist folgendes:

Ich programmiere hier anner uni seid jahren an simulationsprogrammen mehrstufiger kommunikationsnetze. Diese Arbeit basierte auf dem code vieler Studis vor mir. Einer hat zum debuggen macros eingefuehert z.B.:

Code: Alles auswählen

OBSERVE3 ("INCCrossbarManager(%s)::Request: 
  Input %d needs output %d\n", 
  itsName, 
  anInputIndex, 
  anOutputIndex)
Ohne semikolon !!!

wobei dieses macro wie folgt definiert ist

Code: Alles auswählen

#ifdef OBSERVE_CONSTRUCTION
#define OBSERVE_C3(string,arg1,arg2,arg3)  fprintf(OBSERVE_FP,string,arg1,arg2,arg3);fflush(OBSERVE_FP);
#else
#define OBSERVE_C3(string,arg1,arg2,arg3)
Man beachte das semikolon am ende der zeile bei OBSERVE_CONSTRUCTION=1 und das fehlende bei OBSERVE_CONSTRUCTION=0

Irgendein schlingel hat code wie folgt generiert

Code: Alles auswählen

if (some) 
  ....
else
  OBSERVE_C3("bla", blupp, huhu, hallo)
  if (some) {
    ...
  }
Wenn nun OBSERVE_CONSTRUCTION nicht aktiv ist, also kein debug, dann verschwindet die zeile OBSERVE_C3("bla", blupp, huhu, hallo) durch den preprocessor aus dem code und der code nach der zeile landet im else fall wo er sicher nicht hingehoert.

Ergo, es gab ein memleak, das irgendwie nicht zu finden war und alle leakchecker versagten.

tylerD
Beiträge: 4068
Registriert: 10.07.2002 17:34:13
Wohnort: Halle/Saale
Kontaktdaten:

Beitrag von tylerD » 23.09.2003 09:25:23

Ah ich hab noch ein schönes Beispiel

Code: Alles auswählen

if((m_parent->m_selectArray.GetAt(m_parent->m_getSelection.GetAt(i)+1))->GetAt(0).Left(1) == _T("r"))
cu

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 23.09.2003 09:58:44

Dafür hast Du volle Punktzahl bekommen? Da wundert mich ja gar nichts mehr, wenn ich mir manchen Code so ansehe..
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

Beitrag von lisan » 23.09.2003 12:22:26

Wieso, was is daran nich ok :) sieht doch huebsch aus.

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 23.09.2003 18:15:51

Uuups, da hatte ich wohl die 2. Seite übersehen. Ich bezog mich auf pdreker's Beitrag bezüglich Java an der Uni.
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

tylerD
Beiträge: 4068
Registriert: 10.07.2002 17:34:13
Wohnort: Halle/Saale
Kontaktdaten:

Beitrag von tylerD » 23.09.2003 22:41:47

Bert hat geschrieben:Uuups, da hatte ich wohl die 2. Seite übersehen. Ich bezog mich auf pdreker's Beitrag bezüglich Java an der Uni.
Ach Bert, dafür gibts doch die nette Zitat-Funktion im Board :lol: :lol:

cu

Roarin
Beiträge: 462
Registriert: 04.01.2002 18:27:23
Wohnort: Burgfarrnbach (Fürth/Nürnberg)
Kontaktdaten:

Beitrag von Roarin » 23.09.2003 22:59:18

hehe,

jaja in der Ausbildung hatten wir unsere eigene kleine "Projektwerkstatt". Die Ausbilder hatten sowieso keinen Plan von der Programmierung also alles selbst beigebracht.

Da kamen dann schon so sachen wie:
"Hej was macht eigentlich die Funktion da?"
-"Du keine Ahnung die hab ich gestern geschrieben. Aber ohne die funktionierts net, also lass die einfach drinn"

oder

"Man irgendwie steig ich da nimmer durch was ich vor zwei Stunden gemacht habe."
"egal ich schreibs einfach nochmal neu"


Naja so viel Kaffee hab ich seither wie wieder gesoffen und meine Arbeitsumgebung ist auch um einiges Hygenischer geworden. (wir hatten mal ne wurst, die wir erst weggeschmissen haben als der Pelz flächendeckend war bzw. Kaffeetassen werden mit Kaffee ausgespült!)

Gruß

Gruß
Die USA sind direkt von der Barbarei in die Dekadenz übergegangen, ohne den Umweg über die Zivilisation zu nehmen.
-Joachim Fernau

roarin@amessage.de

Antworten