Company Blogging
I suppose the proper course of action here is to actually jump through the hoops of setting up a company blog, but till that time, there is no reason not to do a post here.
(in the unlikely event that anyone ever reads this...)
So last week was a landmark week. We signed the papers with ADP and we're going to have fully automated legal payroll on March 15th. I've been paying people the old school way: writing checks. Which of course means that I've been late paying off all the various government agencies that insist on pieces of paychecks and they send me letters that I then need to read and deal with and it goes on and on and on.
So, hopefully it will work out well and we will have the cashflow to pay people by the 13th of march.
So this has freed up the mental energy for me to try new projects. Conveniently, Record4, the computer that runs 1/2 of our production stopped being able to process mp3's fast enough to keep up with all the tapes that are being loaded onto it on Thursday. We had been running a bit under capacity for a couple of weeks with some vacation and people being sick and the computer had just not been stressed like it finally was this week and it filled up with uncompressed data and wouldn't accept additional tapes till it had time to process all the audio and ship it off to the next computer.
So, we just happen to have a honking quad core Mac Pro (we call it Dev1) in the office that is sitting around printing postage waiting for special projects to consume it's cpu. I thought this would be a perfect opportunity to write a little code and help out Record4. And into the rabbit hole I went.
So all of the source code that runs our company lives in a single, mostly flat directory:
../cassettes2cds/
if you do an ls (directory listing) of the contents, here is what you see:
[carl@crunch1 cassettes2cds]$ ls
00_incoming_from_recording
01_02Aor02B_post_dir_for_tracking.tcl
01_02Aor02B_post_dir_for_tracking.tcl~
01A_01B_make_rms_graphs.tcl
01AAA_01A_fake_tapes_as_records.tcl
...
[1701 other files and directories removed for clarity]
...
yes~
y.gif
yolog.txt
zeros.dat
zerso2.dat
[carl@crunch1 cassettes2cds]$
Awesome. Further this very directory is NFS mounted by all the other computers in the office so all of the recording computers dump their processed data into this directory (specifically into the 00_incoming_from_recording sub directory) and read the scripts and binaries from this directory.
So, I picked up the version control and automated testing habit at my last job and now I can't touch source code unless it's versioned and there is a test that will pass when I'm done. I can't hardly bring myself to even look into this directory. But a bit of detective work on Record4 revealed to me the program that does the mp3 compression (not hard since it is working all the time) so at least I can start with that.
This program has the mellifluous name process_transfer_raws_to_crunch1_wav_fas
t_4nowait.tcl and it calls lame (the mp3 compression program) and a custom C program that craig wrote. Happily we have subversion installed and (mostly) set up, so a couple hours later I have a happy little directory with the .tcl files and the .c file I need, in theory, to run this program on Dev1 and help poor overburdened Record4 out.
But I need a computer to write it on. I don't want to add any additional work to the production computers in the office so that means my laptop and Dev1. Now I want to draw one of the curtains of decency we saw in the old movies when the leading lady and gentleman would go off upstairs to do what ever it is that they do, cause system administration is not my strong suite and yes it did take me 3 hours to get subversion 1.4 (I should have just installed the 1.3 binaries) and emacs22 with X11 support installed on Dev1 so I could actually use it as a development machine.
At least while I waited for things to compile, I had time to find, install and run the automated self tests for t-unit the tcl unit testing library. Hopefully next week I will actually have a failing test and get to write some code.