Desperate times call for desperate measures, and in the midst of the Great Recession there’s quite a lot of desperation going on. Hourly bill rates that once made lawyers blush have come crashing down to the point of “wow, my gardener charged more than that.” And while the whole idea of “being selective with projects” is still around, the bar for what’s accepted has dropped to any and all projects. It ain’t pretty out there, especially for folks on the front lines like Matt.

“Four years ago,” Matt writes, “my company swore that we’d never talk to Initrode Global again. It wasn’t just their massive VB6 application that they refused to even consider upgrading, it was more that they insisted on fixed-bid estimates and constantly low-balled our numbers. Oh, and halfway through a project, they’d insist that we throw in an out-of-scope feature for free, since they were a paying customer and all.”

Matt continues, “now guess who we just landed a new contract with. Yeah."

”I hadn’t touched VB6 in years and told myself, it really wasn’t that bad. And when I opened up the codebase once again, I realized something else: VB6 itself wasn’t that bad… but Initrode Global’s codebase sure was.

When he fired up the application, only to have it crash due to a stack overflow, he them remembered the "trick" about the logging subroutine. And all the fun with how it, and all the other code, was written.

'This Subroutine is used to add entries to the system log file
Public Sub LogEntry(strFunction As String, strMsg As String)
    
Dim strLogFileName As String
Dim strPathAndFileName As String
    
'Set up error handling
    On Error GoTo ErrorHandler
    
'Check that System Logging is enabled
    If Form1.chkLogEnabled.Value = 1 Then
        
'Create the file name for the current day
        strLogFileName = "Logs\" & CStr(Year(Now)) & CStr(Month(Now)) & CStr(Day(Now)) & "_Log.txt"
        
'Create the full path name
        strPathAndFileName = SYSTEM_FOLDER & strLogFileName
        
'If the Log File exists then
        If FileExists(strPathAndFileName) Then
            
'Append to the end of the file - open for append
            Open strPathAndFileName For Append As #1
        Else
            
'Otherwise open a new file and add the new message - Open for output
            Open strPathAndFileName For Output As #1
        
'End if system log file exists
        End If
        
'Write the new line to the system log file
        Print #1, Format(Date, "mm/dd/yyyy") & "  " & Format(Time, "hh:mm:ss") & "  " & strFunction & "  " & strMsg
        
'Close the system log file
        Close #1
    
'End if system logging is enabled
    End If
    
'Exit subroutine
    GoTo EndSub

'Error Handling Section
ErrorHandler:

'Get Windows Error Description
    strError = Err.Description

'Write the System Log
    Call LogEntry("LogEntry: ", strError)

'Resume
    Resume Next
    
EndSub:
End Sub

Matt continued, “And yes, the comments always started on first column, no matter what level the code is indented to. Makes it really tough to keep track of where you are working.”