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