(c) M Web Magazine

Joking About

Love is...

staying awake all night with a sick child, or staying awake all night with a healthy adult.

mwasted.gif (7712 bytes)

What If People Bought Cars Like They Buy Computers?

General Motors doesn`t have a "help line" for people who don`t know how to drive, because people don`t buy cars like they buy computers --but imagine if they did...

HELPLINE: "General Motors Helpline, how can I help you?"
CUSTOMER: "I got in my car and closed the door, and nothing happened!"
HELPLINE: "Did you put the key in the ignition and turn it?"
CUSTOMER: "What`s an ignition?"
HELPLINE: "It`s a starter motor that draws current from your battery and turns over the engine."
CUSTOMER: "Ignition? Motor? Battery? Engine? How come I have to know all of these technical terms just to use my car?"


HELPLINE: "General Motors Helpline, how can I help you?"
CUSTOMER: "My car ran fine for a week, and now it won`t go anywhere!"
HELPLINE: "Is the gas tank empty?"
CUSTOMER: "Huh? How do I know?"
HELPLINE: "There`s a little gauge on the front panel, with a needle, and markings from `E` to `F`.Where is the needle pointing?"
CUSTOMER: "I see an `E` but no `F`."
HELPLINE: "You see the `E` and just to the right is the `F`.
CUSTOMER: "No, just to the right of the first `E` is a `V`.
HELPLINE: "A `V`?!?"
CUSTOMER: "Yeah, there`s a `C`, an `H`, the first `E`, then a `V`, followed by `R`, `O`, `L` ..."
HELPLINE: "No, no, no sir! That`s the front of the car. When you sit behind the steering wheel, that`s the panel I`m talking about."
CUSTOMER: "That steering wheel thingy-- Is that the round thing that honks the horn?"
HELPLINE: "Yes, among other things."
CUSTOMER: "The needle`s pointing to `E`. What does that mean?"
HELPLINE: "It means that you have to visit a gasoline vendor and purchase some more gasoline. You can install it yourself, or pay the vendor to install it for you."
CUSTOMER: "What? I paid $12,000 for this car! Now you tell me that I have to keep buying more components? I want a car that comes with everything built in!"


HELPLINE: "General Motors Helpline, how can I help you?"
CUSTOMER: "Your cars suck!"
HELPLINE: "What`s wrong?"
CUSTOMER: "It crashed, that`s what went wrong!"
HELPLINE: "What were you doing?"
CUSTOMER: "I wanted to go faster, so I pushed the accelerator pedal all the way to the floor. It worked for a while, and then it crashed -- and now it won`t even start up!"
HELPLINE: "I`m sorry, sir, but it`s your responsibility if you misuse the product."
CUSTOMER: "Misuse it? I was just following this damned manual of yours. It said to make the car go to put the transmission in `D` and press the accelerator pedal. That`s exactly what I did -- now the damn thing`s crashed."
HELPLINE: "Did you read the entire operator`s manual before operating the car sir?"
CUSTOMER: "What? Of course I did! I told you I did EVERYTHING the manual said and it didn`t work!"
HELPLINE: "Didn`t you attempt to slow down so you wouldn`t crash?"
CUSTOMER: "How do you do THAT?"
HELPLINE: "You said you read the entire manual, sir. It`s on page 14. The pedal next to the accelerator."
CUSTOMER: "Well, I don`t have all day to sit around and read this manual you know."
HELPLINE: "Of course not. What do you expect us to do about it?"
CUSTOMER: "I want you to send me one of the latest versions that goes fast and won`t crash anymore!"


HELPLINE: "General Motors Helpline, how can I help you?"
CUSTOMER: "Hi! I just bought my first car, and I chose your car because it has automatic transmission, cruise control, power steering, power brakes, and power door locks."
HELPLINE: "Thanks for buying our car. How can I help you?"
CUSTOMER: "How do I work it?"
HELPLINE: "Do you know how to drive?"
CUSTOMER: "Do I know how to what?"
HELPLINE: "Do you know how to DRIVE?"
CUSTOMER: "I`m not a technical person! I just want to go places in my car!"


Evolution of a Programmer

Junior High/High School

10 PRINT "HELLO WORLD"
20 END

First year in College

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

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[);
   printf("\n");
}

Seasoned professional

#include <iostream.h>
#include <string.h>

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);
}

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,uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
]

module CHelloLib
{

    // some code related header files
    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),aggregatable
    ]

    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);

    // Initialize the OLE 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);
        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"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);
}

Cybercheeze Logo The two jokes listed above are some from the fantastic collection found sited at Cybercheeze. Drop over to this site and subscribe to Joke of the Day sent via e-mail.

Special thanks to Regan Sterner, Jokemaster.

 

Fill in the Survey

E&OE

Tell a Friend!

1