CowControl

You can find information about distributed.net and their projects at their website.

Download (55 KB) v1.28 – 12 feb 2003
Screenshot

CowControl was born due to my constant searching through my network and log files to monitor my cows. I decided it would be a lot handier to have a program from which I could manage all my log files at once. So I dedicated my weekend to making such a program.
The idea is that you need file level access to your log file. A windows or samba share will do perfectly. If you have access to this share all you have to do is add the log file and name the cow. Once you’ve added your cow the program will try to show the most recent keyrate, the cows status and the number of packets in buff-in and buff-out. You can click on the refresch button or hit the F5 key to update the data for all cows. If you just want to update 1 Cows data you can right-click on the cow and select ‘update’. CowControl also offers you an auto update feature. You can set this feature using the program preferences.

CowControl is a Visual C++ MFC application using a Single Document Interface. The interface and it’s functions are pretty straightforward. The most important functions can be found both in the toolbar and the menu, while the graph function can also be activated by double clicking on a list item. I leaned on the existing Distributed.net’s Log Visualizer (logvis.exe) created by Jeff “Bovine” Lawson, (c) Distributed.net. I made no alterations to the executable nor do I obligate you to use it. You can find log visualizer at the distributed.net website.

CowControl v1.28
– Fixed buffer-in/buffer-out sorting
– Fixed problems with empty log file
– Increased performance time-out times overal (5 hours for RC5 and 24 hours for OGR)

CowControl v1.27
– Fixed missing stats values.

CowControl v1.26
– Fixed bug with buffer in/out values

CowControl v1.25
– Updated log file update function to support RC5-72
– Updated log file update function to support new log entry format (old logs should still work)
– Minor graphic tweaks (changed performance warning color to hellish blue)
– Removed cow cursor
– Removed no cows available entry with an empty list
– Reformatted code and small cleanups

CowControl v1.24
– Removed thread sleep time since it doesn’t seem to help prevent network time-out’s anyway :(
– Changed cow status colors. Performance warning is now light purple and I changed the shade of green
on active cows.
– Added support for the new log file format. CowControl can now support both the new and old style format
at the same time.

CowControl v1.23
– Added seperate idle times for RC5 (3 hours) and OGR (12 hours).

CowControl v1.22
– Standarized internal searching criteria
– Updated sorting algorithm to allow for OGR rates
– Added OGR support

CowControl v1.21
– Upped the precision on the sorting algorithm
– Rename dialog now shows existing name
– Fixed startup sorting state
– Optimized code
CowControl v1.20
– Fixed a small shutdown detection bug
– Fixed update routines to compensate for excesive amounts of spaces.
– Finally got around to fixing sorting algorithm.
– Placed an update progress bar in the status bar (not that you can see it all too often, but still)
– Added multithreaded Cow checking and removed annoying error messages.
Every cow is updated in a separate proces thread. I have installed a time-out to ensure
that it doesn’t take more then 20 seconds to update 1 cow. If the cow has passed the time-out
value, it’s status will read “Timed out!”. The result of all this is that my App should
hardly ever hang due to outside influence. If you wait 20 secs it will simply kill it’s
threads and continue.
The reason I removed the error dialogs is because you can look at a cow’s status to see
what went wrong and this will enable cow control to keep running without user intervention.
– Property dialog now extracts the Work Unit count in stead of the packet count.
– You can now rename a cow at your own leisure (or pleasure)
– Added new document (serialisation) format.
NOTE: Old style is automatically converted without notice! The new document format also stores
data like the e-mail adres and client version, which will minimize the chance that this
info is ‘NA’ed for the property screen. If you restart the dnetc client’s and then update
CC’s data and retrieve the properties, you should have all the neccesary data.

NOTE: Once a file has been SAVED with CC v1.20 (or above) then it will become unreadable
for older versions!

CowControl v1.15
– Added context menu to taskbar icon
– Slight graphic alterations
– CowControl got it’s own icon
– CowControl can now minimizes to the systemtray.
Double click on it’s icon to make it visible again.
– You can retrieve a cows properties (through context menu, main menu or by pressing ALT+Enter).
Mind you that this requires more extensive access to the log file
and certain information may not be available from the log file if
it has a small file size limit and has been running for quite some time.
– Finally implemented a sanity check on the log file!
When the log hasn’t been updated in 3 hours the cow icon will turn yellow
and the status will say “Performance warning!”.
– Fixed another status bug
– Altered buffer IN/OUT value lookup routine
– Removed a number of unused routines and resource items
– Made new disabled toolbar images
– Proper enabling and disabling of interface items
CowControl v1.14
– Added two-way sort and according image
– Disable cows to prevent update of unavailable logfiles
– Cowhead also indicates status
white = unknown
green = active
red = inactive
blue = recently connected (and such)
grayed = disabled
– Column headers show which is the sort column
– Added column sorting

CowControl v1.13
– Check for shutting down and restarting of client
– Background mask for toolbar buttons [ It’s now W2K proof :-) ]

CowControl v1.12
– Changed cow cursor
– Ability to choose a custom log file viewer
– Removed line feeds and carriage returns from logfile buffer
– Changed logvis starting function (uses a real win32 function)
– Fixed annoying difference in (gray) button background color
– Rewrote entire status routine
– Altered exception routine for log file read
– Fixed still visible toolbar buttons when no cow selected
– Initial next update (timer) value
– Open the log file to view it through context menu
– Added extra statusbar pane for last update time

CowControl v1.11:
– New toolbar (Hot ReBar)
– Small graphic alterations
– Fixed disabled buttons still working (made them hidden)

CowContol v1.1:
– Changed cow cursor
– Fixed status bug for remote files
– Added context menu for individual cow commands
– Toolbar buttons are now disabled if no cow is selected
– Window state is saved on exit and restored on start

CowContol v1.0 features:
– Use configuration files to oversee your “herd-o-cows”(tm?)
– Status indicates what your cows are doing
– Set a timer to automatically update stats
– Able to store preferences
– Can automatically open a default document
– Easy interface (I hope)
– Column sizes are stored and restored
– HotBar and Cow cursor!
– Instant access to the Log Visualizer (available at http://www.distributed.net)

Leave a Reply