NodeShark Features
Formatted display of log records

If you've ever used "vi" to view an AllStar log file, you'll know that each record is made up of a comma-separated list of fields starting with a 14-digit date/time field. It's a very efficient and structured approach to storing log information but it's not easy for us humans to read. Fortunately, that nice structure is perfect for software to read and then reformat into a much easier form for human eyes. Nodeshark formats and displays log records in adjustable-width columns and translates the record fields into more human friendly terms.

Flexible display-filtering of logs

Allstar's logging feature stores a great deal of detailed operational information, much of which you may not be interested in at any given time. To allow you to just display the kinds of records you're interested in, NodeShark uses display filters. NodeShark provides a number of pre-configured filters (e.g. All links, AllStar-only links, Echolink-only links, etc) but also provides a simple facility to create your own custom filters.

Point-and-click playback of AllStar node transmission recordings

AllStar's transmission recordings are kept in the same directory as the log files. The transmission recordings use the WAV container format and are named using a 14-digit date/time (YYYYMMDDhhmmss.WAV). Finding a desired transmission recording (or range of recordings) is tedious using tools like "ls" and "grep". NodeShark makes this very easy. Simply select a displayed log record or a range of displayed log records and NodeShark will quickly generate a playlist of all of the transmission recordings that correspond to that selected range of log records. Now just hit the "Play" button on the integrated QSO Player to listen to the transmissions. Or click on any of the recordings on the generated playlist to skip to that particular recording. You can pause, resume, skip forward to the next recording or skip back to the previous recording. The integrated QSO Player also features a slider to change the volume during playback.

Full and incremental backups of your AllStar node logs and transmission recordings

NodeShark operates on a local copy of your node's log file and transmission recording archive. This provides fast, consistent performance when filtering through the logs and playing back transmissions. It also ensures that you have a backup of your logs and transmissions should the node's disc drive ever fail. In addition, some AllStar nodes use small flash memory-based filesystems that discourage their operators from enabling the "archivedir" feature. With NodeShark, these operators can enable the archiving feature and use the backup (or "Sync") feature to regularly retrieve the latest archived files and then delete them from the node's filesystem.

When you install NodeShark and perform the first "Sync", it can take quite sometime to complete depending on how long your node has had the feature enabled and the network thoughput between your Windows system and the node. Subsequent "Sync"s are very fast though since NodeShark only backs up files on the node that are newer than those in the local NodeShark archive.

NodeShark also provides a Command Monitor window that allows you to view the progress of the backup and an optional "verbose" setting that allows you to see more detailed information in the Command Monitor for connection debugging.

Remote execution of user-defined commands

This feature, which is new with version 0.95, allows the user to easily select and remotely execute commands on the AllStar system. These command scripts are created by the user with the new custom command editor. The custom command editor window allows the user to view, create, name, edit and delete command scripts. These can be any non-interactive shell scripts which are valid for the AllStar CentOS 5 based system. Some example use cases would be scripts which stop Asterisk, restart Asterisk or run Asterisk CLI commands to retrieve node status, etc (e.g. asterisk -rx "rpt stats 2541").

Customizable NodeShark window colors, sizes, and screen positions

Everybody has different tastes in colors, so NodeShark provides several different pre-installed color themes to choose from. If none of those is to your liking, you can create a custom color scheme. You can also move and resize many of the NodeShark windows to your liking and then do a File->Save Preferences so that the next time you fire up NodeShark, it will be sized, placed, and colored the way you like it.

Very simple, light-touch installation that doesn't touch your Windows registry

Although this initial release of NodeShark is for Windows only, I wrote it using a cross-platform development tool that can generate binaries for Windows, Linux, and Mac. There is only a single binary file and a folder that contains three DLL files. I wasn't interested in writing a Windows installer since 1) it wouldn't be portable across platforms, 2) I wasn't interested in mucking with peoples Windows registry and 3) there are so few files a formal installer isn't necessary. This way it's also very easy to uninstall..just delete the binary and the NodeShark folder with the three DLLs.

Very responsive Windows native binary executeable

I developed NodeShark using Real Studio 2010. Real Studio has been around since 2003 and was initially known as Real Basic. It started as a cross-platform answer to Microsoft's Visual Basic and has grown over the years into a top-notch Integrated Development Environment for creating GUI applications that are event-driven, object-oriented and cross-platform. It produces efficient, x86 native binaries that perform exceedingly well. I briefly considered using an interpreter-based language like Java or Python but decided that the end application would likely not be fast or responsive enough.