© "Infernet 1996"

Divulgazione a cura de

La Pancera in Movimento A.C.L.A.B. 

(Anonima Cazzeggio, Lazzi, Affini & Basta)

The Evolution of a Programmer
( many ways to create your "HELLO WORLD " program)

 Styles:  

High School/Jr.High 
First year in College
Senior year in College 
Master Programmer 
Apprentice Hacker
Experienced Hacker
Seasoned Hacker 
Guru Hacker
New Manager 
Middle Manager
Senior Manager
Chief Executive

        High School/Jr.High  

10 PRINT "HELLO WORLD"
20 END 

  back  

First year in College  

program Hello(input, output)
begin
writeln('Hello World')
end.

   back  

 Senior year in College  

(defun hello
(print
(cons 'Hello (list 'World))))
New professional (include) <stdio.h>
void main(void)
{char *message[] = {"Hello ", "World"}; int i;
for(i = 0; i <2; ++i)
printf("%s", message[i]);
printf("\n");}
Seasoned professional class string
{private:
int size;
char *ptr;
public:
string() : size(0), ptr(new char('\0')) {}
string(const string &s) : size(s.size)
{ptr = new char[size + 1];
strcpy(ptr, s.ptr);}
~string()
{delete [] ptr;}
friend ostream &operator <<(ostream &, const string &);
string &operator=(const char *);};
ostream &operator<<(ostream &stream, const string &s)
{return(stream << s.ptr);}
string &string::operator=(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 = "Hello World";
cout << str << endl;
return(0);}

  back  

 Master Programmer  

[uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820) ]
library LHello
{// 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 THello
{interface IHello;
interface IPersistFile;};};
[exe,importheader(windows.h);
importheader(ole2.h);
importheader(except.hxx);
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), table]
coclass CHello
{cotype THello;};};
include "ipfix.hxx"
extern HANDLE hEvent;
class CHello : public CHelloBase
{public: IPFIX(CLSID_CHello);
CHello(IUnknown *pUnk);
~CHello();
HRESULT __stdcall PrintSz(LPWSTR pwszString);
private: static int cObjRef;};
include windows.h
include ole2.h
include stdio.h
include stdlib.h
include "thlo.h"
include "pshlo.h"
include "shlo.hxx"
include "mycls.hxx"
int CHello::cObjRef = 0;
CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{cObjRef++;
return;}
HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
{printf("%ws\n", pwszString);
return(ResultFromScode(S_OK));}
CHello::~CHello(void)
{// when the object count goes to zero, stop the server
cObjRef--;
if( cObjRef == 0 )
PulseEvent(hEvent);
return;}
include windows.h
include ole2.h
include "pshlo.h"
include "shlo.hxx"
include "mycls.hxx"
HANDLE hEvent;
int _cdecl main(int argc,char * argv[])
{ULONG ulRef;
DWORD dwRegistration;
CHelloCF *pCF = new CHelloCF();
hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); // ize the
libraries
CoInitializeEx(NULL, COINIT_MULTITHREADED);
CoRegisterClassObject(CLSID_CHello, 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 = pCF-Release();
// Tell OLE we are going away.
CoUninitialize();
return(0); }
extern CLSID CLSID_CHello;
extern UUID LIBID_CHelloLib;
CLSID CLSID_CHello = { /*
2573F891-CFEE-101A-9A9F-00AA00342820 */
0x2573F891,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }};
UUID LIBID_CHelloLib = { /*
2573F890-CFEE-101A-9A9F-00AA00342820 */
0x2573F890,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }};
include windows.h
include ole2.h
include stdlib.h
include string.h
include stdio.h
include "pshlo.h"
include "shlo.hxx"
include "clsid.h"
int _cdecl main(int argc,char * argv[])
{HRESULT hRslt;
IHello *pHello;
ULONG ulCnt;
IMoniker * pmk;
WCHAR wcsT[_MAX_PATH];
WCHAR wcsPath[2 * _MAX_PATH];
// get object path
wcsPath[0] = '\0';
wcsT[0] = '\0';
if( argc 1) {
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1); wcsPath);}
else {
fprintf(stderr, "Object path must be specified\n"); return(1);
}
// get print string
f(argc 2)
mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
else
wcscpy(wcsT, L"Hello World");
printf("Linking to object %ws\n", wcsPath);
printf("Text String %ws\n", wcsT);
// Initialize the OLE libraries
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);
if(SUCCEEDED(hRslt)) {
hRslt = CreateFileMoniker(wcsPath, &pmk);
if(SUCCEEDED(hRslt))
hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);
if(SUCCEEDED(hRslt)) {
// print a string out
pHello-PrintSz(wcsT);
Sleep(2000);
ulCnt = pHello-Release();
}
else
printf("Failure to connect, status: %lx", hRslt);
// Tell OLE we are going away.
CoUninitialize();
}
return(0);
}

  back  

 Apprentice Hacker  

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

  back

  Experienced Hacker  

include stdio.h
define S "Hello, World\n"
main(){exit(printf(S) == strlen(S) ? 0 : 1);}

  back  

Seasoned Hacker  

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

  back

  Guru Hacker  

% cat
Hello, world.
^D 

  back  

 New Manager  

10 PRINT "HELLO WORLD"
20 END 

  back

  Middle Manager  

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

  back  

 Senior Manager  

% zmail jim
I need a "Hello, world." program by this afternoon. 

  back

  Chief Executive  

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

  back