Tremel Computer
Dieter Tremel
Rebenring 16
84032 Altdorf
Tel.: 0871 / 9357080
Fax: 0871 / 9357081
Email: info(at)tremel-computer.de
Kompetenz in Informationstechnologie
 
   
Programmierer Witze

Helpdesk im Mittelalter

Rollen in der IT

Rollen in der IT

The Scrollwheel

...development of programming skills (:-))

High School/Jr.High

10 PRINT "Merry Christmas"
20 END

First year in College

program Christmas (input, output)
begin
writeln('Merry Christmas')
end.

Senior year in College

(defun Christmas
(print
(cons 'Merry (list 'Christmas))))

New professional

#include 
void main(void)
{
char *message[] = {"Merry ",
"Christmas"}; int i;

for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");
}

Seasoned professional

#include 
#include 

class string
{
private:
int size;
char *ptr;

public:
string() : size(0), ptr(new char('\0')) {}

string(const string &s) : size(s.size) { ptr =3D new char[size + 1];
strcpy(ptr, s.ptr);
}

~string()
{
delete [] ptr;
}

friend ostream &operator <<(ostream &, const string &); string
&operator=3D(const char *);
};

ostream &operator<<(ostream &stream, const string &s) { return(stream <<
s.ptr);
}

string &string::operator=3D(const char *chrs) { if (this != &chrs)
{
delete [] ptr;
size = strlen(chrs);
ptr = new char[size + 1];
strcpy(ptr, chrs);
}
return(*this);
}

int main()
{
string str;

str =3D "Merry Christmas";
cout << str << endl;

return(0);
}

Master Programmer

[
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820) ] library LMerry
{
// bring in the master library
importlib("actimp.tlb");
importlib("actexp.tlb");

// bring in my interfaces
#include "pshlo.idl"

[
uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820) ] cotype TMerry
{
interface IMerry;
interface IPersistFile;
};
};

[
exe,
uuid(2573F890-CFEE-101A-9A9F-00AA00342820) ] module CMerryLib
{

// some code related header files
importheader();
importheader();
importheader();
importheader("pshlo.h");
importheader("shlo.hxx");
importheader("mycls.hxx");

// needed typelibs
importlib("actimp.tlb");
importlib("actexp.tlb");
importlib("thlo.tlb");

[
uuid(2573F891-CFEE-101A-9A9F-00AA00342820), aggregatable ]
coclass CMerry
{
cotype TMerry;
};
};


#include "ipfix.hxx"

extern HANDLE hEvent;

class CMerry : public CMerryBase
{
public:
IPFIX(CLSID_CMerry);

CMerry(IUnknown *pUnk);
~CMerry();

HRESULT  __stdcall PrintSz(LPWSTR pwszString);

private:
static int cObjRef;
};


#include 
#include 
#include 
#include 
#include "thlo.h"
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"

int CMerry::cObjRef =3D 0;

CMerry::CMerry(IUnknown *pUnk) : CMerryBase(pUnk) { cObjRef++;
return;
}

HRESULT  __stdcall  CMerry::PrintSz(LPWSTR pwszString) { printf("%ws\n",
pwszString);
return(ResultFromScode(S_OK));
}


CMerry::~CMerry(void)
{

// when the object count goes to zero, stop the server cObjRef--; if(
cObjRef =3D=3D 0 )
PulseEvent(hEvent);

return;
}

#include 
#include 
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"

HANDLE hEvent;

int _cdecl main(
int argc,
char * argv[]
) {
ULONG ulRef;
DWORD dwRegistration;
CMerryCF *pCF =3D new CMerryCF();

hEvent =3D CreateEvent(NULL, FALSE, FALSE, NULL);

// Initialize the OLE libraries  CoInitializeEx(NULL,
COINIT_MULTITHREADED);

CoRegisterClassObject(CLSID_CMerry, pCF, CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE, &dwRegistration);

// wait on an event to stop
WaitForSingleObject(hEvent, INFINITE);

// revoke and release the class object
CoRevokeClassObject(dwRegistration);
ulRef =3D pCF->Release();

// Tell OLE we are going away.
CoUninitialize();

return(0); }

extern CLSID CLSID_CMerry;
extern UUID LIBID_CMerryLib;

CLSID CLSID_CMerry =3D { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
0x2573F891,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 } };

UUID LIBID_CMerryLib =3D { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
0x2573F890,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 } };

#include 
#include 
#include 
#include 
#include 
#include "pshlo.h"
#include "shlo.hxx"
#include "clsid.h"

int _cdecl main(
int argc,
char * argv[]
) {
HRESULT  hRslt;
IMerry        *pMerry;
ULONG  ulCnt;
IMoniker * pmk;
WCHAR  wcsT[_MAX_PATH];
WCHAR  wcsPath[2 * _MAX_PATH];

// get object path
wcsPath[0] =3D '\0';
wcsT[0] =3D '\0';
if( argc > 1) {
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1); wcsupr(wcsPath); }
else {
fprintf(stderr, "Object path must be specified\n"); return(1); }

// get print string
if(argc > 2)
mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1); else
wcscpy(wcsT, L"Merry Christmas");

printf("Linking to object %ws\n", wcsPath); printf("Text String %ws\n",
wcsT);

// Initialize the OLE libraries
hRslt =3D CoInitializeEx(NULL, COINIT_MULTITHREADED);

if(SUCCEEDED(hRslt)) {


hRslt =3D CreateFileMoniker(wcsPath, &pmk); if(SUCCEEDED(hRslt)) hRslt
=3D
BindMoniker(pmk, 0, IID_IMerry, (void **)&pMerry);

if(SUCCEEDED(hRslt)) {

// print a string out
pMerry->PrintSz(wcsT);

Sleep(2000);
ulCnt =3D pMerry->Release();
}
else
printf("Failure to connect, status: %lx", hRslt);

// Tell OLE we are going away.
CoUninitialize();
}

return(0);
}

Apprentice Hacker

#!/usr/local/bin/perl
$msg=3D"Merry Christmas.\n";
if ($#ARGV >=3D 0) {
while(defined($arg=3Dshift(@ARGV))) { $outfilename =3D $arg;
open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n"; print
(FILE
$msg);
close(FILE) || die "Can't close $arg: $!\n"; }
} else {
print ($msg);
}
1;

Experienced Hacker

#include 
#define S "Merry Christmas\n"
main(){exit(printf(S) == strlen(S) ? 0 : 1);}

Seasoned Hacker

% cc -o a.out ~/src/misc/hw/hw.c
% a.out

Guru Hacker

% cat
Merry Christmas.
^D

New Manager

10 PRINT "Merry Christmas"
20 END

Middle Manager

mail -s "Merry Christmas." bob@b12
Bob, could you please write me a program that prints "Merry Christmas."?
I
need it by tomorrow.
^D

Senior Manager

% zmail jim
I need a "Merry Christmas." program by this afternoon.

Chief Executive

% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout

(Note: Chief Executive immediately calls for a team meeting to work this high priority problem).

Nach oben

Montag in der EDV

Mo, 08:05

Die Woche fängt gut an. Anruf aus der Werbeabteilung, sie können eine Datei nicht finden. Habe Ihnen die Verwendung des Suchprogramms "FDISK" empfohlen.

Hoffe, sie sind eine Weile beschäftigt.

 

08:25

Die Lohnbuchhaltung beschwert sich, ihre Netzwerkverbindung funktioniert nicht. Habe zugesagt, mich sofort darum zu kümmern. Anschließend meine Kaffeemaschine ausgestöpselt und ihren Server wieder angeschlossen. Warum hört mir keiner zu, wenn ich sage, ich habe hier zu wenig Steckdosen?

Lohnbuchhaltung bedankt sich für die prompte Erledigung. Wieder ein paar glückliche User!

 

08:45

Die Lagerfuzzis wollen wissen, wie sie die Schriftarten in ihrem Textverarbeitungsprogramm verändern können. Frage sie, welcher Chipsatz auf der Hauptplatine eingebaut ist. Sie wollen wieder anrufen, wenn sie es herausgefunden haben.

 

09:20

Anruf aus einer Zweigstelle: Sie können keine Anlagen in Lotus Notes öffnen.
Verbinde sie mit der Pförtnerkammer im Erdgeschoss.

 

09:35

Die Werbeabteilung berichtet, ihr PC fährt nicht mehr hoch und zeigt "ERROR IN DRIVE 0" an. Sage ihnen, das Betriebssystem ist schuld und gebe ihnen die Nummer der Microsoft-Hotline.

 

09:40

Die Lageristen behaupten, sie hätten herausgefunden, das die Schriftarten mit dem Chipsatz nichts zu tun haben. Sage Ihnen, ich hätte gesagt "Bitsatz" und nicht "Chipsatz". Sie wollen weiter suchen. Wie kommen diese Leute zu ihrem Führerschein?

 

10:05

Der Ausbildungsleiter ruft an, er braucht einen Zugangscode für einen neuen Lehrling. Sage ihm, er muss einen Antrag stellen mit Formblatt 7A96GFTR4567LPHT. Sagt, er hat noch nie etwas von so einem Formblatt gehört.

Verweise ihn an den Pförtner im Erdgeschoss.

 

10:20

Die Burschen aus dem Lager geben keine Ruhe. Sie sind sehr unfreundlich und behaupten, ich würde sie verarschen. Sie hätten nun selbst herausgefunden, wie man die Schriftarten verändert. Sie wollen sich beim Personalchef über mich beschweren. Ich schalte das Telefon des Personalchefs auf "besetzt".

Anschließend logge ich mich auf ihren Server ein und erteile ihnen eine Lektion.

 

10:30

Meine Freundin ruft an. Ihre Eltern kommen am Wochenende zu Besuch und sie hat ein umfangreiches Betreuungsprogramm vorbereitet. Hört nicht auf zu reden. Verbinde sie mit dem Pförtner im Erdgeschoss.

 

10:40

Schon wieder das Lager. Sie berichten sehr kleinlaut, dass alle ihre Dateien leer sind. Sage ihnen, das kommt davon, wenn man schlauer sein will als der Administrator. Zeige mich versöhnlich und verspreche, mich in das Problem zu vertiefen. Warte 15 Minuten, um dann über ihren Server die Schriftfarbe wieder von "weiß" auf "schwarz" zurückzustellen. Sie bedanken sich überschwänglich und versichern mir, die angedrohte Beschwerde wäre nur ein Scherz gewesen. Ab heute fressen sie mir aus der Hand!

 

10:45

Der Pförtner kommt vorbei und erzählt, er erhalte merkwürdige Anrufe. Er will unbedingt etwas über Computer lernen. Sage ihm, wir fangen sofort mit der Ausbildung an. Gebe ihm als erste Lektion die Aufgabe, den Monitor genau zu beobachten. Gehe zum Mittagessen.

 

14:30

Komme vom Mittagessen zurück. Der Pförtner berichtet, der Personalchef sei hier gewesen und habe etwas von einem Telefonproblem gefaselt. Schalte das Besetztzeichen von seiner Leitung. Was würden diese Leute ohne mich tun?

 

14:35

Stöpsle das Service Telefon wieder ein. Es klingelt sofort. Cornelia (muss neu sein) vom Versand ruft an. Sagt, sie brauche dringend eine neue ID, weil sie die alte vergessen hat. Sage ihr, ID wird vom Zufallsgenerator erzeugt, wenn ich ihre Haarfarbe, Alter, Maße und Familienstand eingebe. Die Daten hören sich aufregend an. Sage ihr, die ID wird erst am Abend fertig sein, aber wegen der Dringlichkeit werde ich sie Ihr direkt zu ihrer Wohnung bringen.

 

14:40

Blättere ein wenig im Terminkalender des Personalchefs. Lösche den Eintrag "MORGEN HOCHZEITSTAG!!!" am Mittwoch und den Eintrag "HOCHZEITSTAG! AUF DEM HEIMWEG BLUMEN KAUFEN!!!" am Donnerstag. Frage mich, ob er am Freitag immer noch so zufrieden aussieht.

 

14:45

Pförtner sagt, der Monitor erscheine ihm etwas zu dunkel. Schalte den Monitor ein und starte den Bildschirmschoner. Pförtner macht sich eifrig Notizen. Wenn doch die gesamte Belegschaft so leicht zufrieden zu stellen wäre!

 

14:55

Spiele einige Dateien aus dem Ordner "Behobene Fehler" wieder auf den Hauptserver zurück um sicherzustellen, dass meiner Ablösung für die Spätschicht nicht langweilig wird.

 

15:00

Endlich Feierabend! Hole mir vom Server der Personalabteilung die Adresse von Cornelia und packe die Flasche Schampus aus dem Kühlschrank der VIP-Lounge ein. Notiere noch hastig ihre neue ID (123456)und mache mich auf den Weg. Nach so einem harten Tag braucht der Mensch ein wenig Entspannung!

 
Letzte Änderung
11.05.2015