Black and White Inc logo

Bastard DIY Excuse Board

This is a bit of fun, mostly for the amusement of programmers. But before you go any further, read the article about the Bastard D.I.Y Excuse Board. While you're about it, read the other Bastard Operator From Hell articles, or buy the books.

Now, paste this Visual Basic code into Access, Word, Excel or Visual Basic.

Public Function BOFHerrorMsg() As Boolean
'// Taken from the Bastard Operator from Hell web page
'   http://www.brtnet.org/bofh/ExcuseBoard.html
'   Bastard D.I.Y. Excuse Table (c) Copyright 2001, Simon Travaglia
'   http://bofh.ntk.net/Bastard.html
'   Code written by Donn Edwards (c) 2005 Black and White Inc
'
Dim varFirst As Variant, varSecond As Variant, varThird As Variant
Dim varHeading As Variant, i As Integer, n As Integer, lngError As Long
Randomize
Do
    
'// First Word
    varFirst = Array("Temporary"
, "Intermittant", "Partial", "Redundant", "Total", _
        "Multiplexed
", "Inherent", "Duplicated", "Dual-Homed", "Synchronous", _
        "Bidirectional
", "Serial", "Asynchronous", "Multiple", "Replicated", _
        "Non-Replicated
", "Unregistered", "Non-Specific", "Generic", "Migrated", _
        "Localised
", "Resignalled", "Dereferenced", "Nullified", "Aborted", _
        "Serious
", "Minor", "Major", "Extraneous", "Illegal", "Insufficient", _
        "Viral
", "Unsupported", "Outmoded", "Legacy", "Permanent", "Invalid", _
        "Deprecated
", "Virtual", "Unreportable", "Undetermined", "Undiagnosable", _
        "Unfiltered
", "Static", "Dynamic", "Delayed", "Immediate", "Nonfatal", _
        "Fatal
", "Non-Valid", "Unvalidated", "Non-Static", "Unreplicatable", _
        "Non-Serious
")
    i =
UBound(varFirst) + 1
    n =
CInt(Rnd() * i) Mod i
    varFirst = varFirst(n)
    
'// Second Word
    varSecond = Array(
"Array", "Systems", "Hardware", "Software", "Firmware", _
        "Backplane
", "Logic-Subsystem", "Integrity", "Subsystem", "Memory", _
        "Comms
", "Integrity", "Checksum", "Protocol", "Parity", "Bus", "Timing", _
        "Synchronisation
", "Topology", "Transmission", "Reception", "Stack", _
        "Framing
", "Code", "Programming", "Peripheral", "Environmental", _
        "Loading
", "Operation", "Parameter", "Syntax", "Initialisation", _
        "Execution
", "Resource", "Encryption", "Decryption", "File", _
        "Precondition
", "Authentication", "Paging", "Swapfile", "Service", _
        "Gateway
", "Request", "Proxy", "Media", "Registry", "Configuration", _
        "Metadata
", "Streaming", "Retrieval", "Installation", "Library", "Handler")
    i =
UBound(varSecond) + 1
    n =
CInt(Rnd() * i) Mod i
    varSecond = varSecond(n)
    
'// Third word
    varThird =
Array("Interruption", "Destabilisation", "Destruction", _
        "Desynchronisation
", "Failure", "Dereferencing", "Overflow", "Underflow", _
        "NMI
", "Interrupt", "Corruption", "Anomoly", "Seizure", "Override", _
        "Reclock
", "Rejection", "Invalidation", "Halt", "Exhaustion", "Infection", _
        "Incompatibility
", "Timeout", "Expiry", "Unavailability", "Bug", _
        "Condition
", "Crash", "Dump", "Crashdump", "Stackdump", "Problem", _
        "Lockout
")
    i =
UBound(varThird) + 1
    n =
CInt(Rnd() * i) Mod i
    varThird = varThird(n)
    
'// Heading
    varHeading = Array(
"Error", "Problem", "Warning", "Signal", "Flag")
    i =
UBound(varHeading) + 1
    n =
CInt(Rnd() * i) Mod i
    varHeading = varHeading(n)
    
Select Case n
        
Case 0: lngError = vbCritical ' Error
        
Case 1: lngError = vbExclamation ' Problem
        
Case 2: lngError = vbExclamation ' Warning
        
Case 3: lngError = vbQuestion ' Signal
    
Case Else
        lngError =
0
    
End Select
Loop Until MsgBox(varFirst & " " & varSecond & " " & varThird & " " & varHeading, _
    lngError + vbOKCancel, varHeading) = vbOK
End Function

Execute the code to get the random error messages. They are often pretty convincing. Put this (harmless) code in an application at your own peril.

If you have the Visual Basic 6 Runtime installed, you can run this simple DownloadBOFH.EXE file (32k) to see how the messages look. If you click "Cancel" you'll get another error message.

Please note: This program is not to be sold, and will remain freeware in the future. You can't make it available for download anywhere else either. All downloads should be made from this page only. You may not list this software elsewhere without written permission.


Thanks to the Programmer's Notepad for the basic HTML formatting of this code.

-:| [home] | [free stuff] | [blog] |:-

All information copyright © 2005 Black and White Inc. All rights reserved. First Published 4th March 2005. Last Updated: 14/03/2005 21:12