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 BOFH.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