The other day I listened to Episode 2 - Nick Hodges, a "podcast" from Delphi.org by Jim McKeeth. One of the event sponsors was Gurock Software who donated a copy of their product Smart Inspect 3, a tracing and debugging application, "... going to one lucky listener". Well, sort of, bit of a trick to pick a lucky listener of a podcast, wouldn't you think? Guess it's one of those "honour bar" sort of things. Well, "I listened to the Episode 2 - Nick Hodges podcast" [there, I'm in] which, I happened to have really enjoyed - it was great. If you haven't listened in yet, it's highly recommended.
I decided, while I was listening to Jim and Nick, to wander over to the Gurock site and have a look at SmartInspect 3, just to see what this product was all about. This wasn't the first time I'd heard of the product, but it was the first time I'd actually gone to the site with "having anything more than a cursory look" in mind -so- the advertising part of both the event and the product web site worked, at least with me. OK, the give-a-way didn't hurt either ... there, I admitted it. The more I read about however, the more intrigued I became, so I decided to download it and have a real good look.
The plan here is to have a look at it from a newbie/hobbyist perspective, that pretty much being the theme of this blog. Of note, I'm currently using Delphi 2007 Pro.
Don't know about you, but it's usual for me to go to the site, read the pitch and then hit the pricing page before I decide if any further reading is worth while, budgetary restraints considered. This time, I decided the pricing page would wait until last.
The pitch from the web site:
SmartInspect
... is an advanced logging tool for debugging and monitoring .NET, Java and Delphi applications. It helps you identify bugs, find solutions to user-reported issues and gives you a precise picture of how your software performs in different environments. Whether you need logging in the development phase, on production systems or at customer sites, SmartInspect is the perfect choice.
Going by what I saw on the web tutorial I won't even come close to exercising the limits or even all of the features of this product. This is one sweet piece of kit ...
- the download and installation went smoothly. I was offered a full set of options to put the product, it's start menus and short-cuts exactly where I wanted them - brilliant!
- the fact that you can run it right away, with only having seen the web tutorial, is a testament to it's ease of use.
- the included PDF manual was an easy read, covered the product well and included a getting started tutorial. FWIW, the PDF file is the same as the help file [which works excellently] with the API reference sections removed.
- it comes with it's own set of well developed code templates.
- the IDE plug-in for Delphi ... a thing of beauty!
- you can "Log" virtually anything ... the list is huge and varied.
- you can "Watch" any numeric value in your program.
- there is "Filtering", various "Log Level" settings and custom "Configuration Files".
- ... the list of things you can do and ways you can configure this program to log/debug your programs is immense.
- there's a redistributable console which can be shipped together with your software applications to end-users. This makes it possible to offer a way for your customers to inspect log files and to monitor your applications.
- it comes with a configuration tool to help you to create and edit a SmartInspect configuration file.
This product is a newbies [programmers at any skill level for that matter] dream. Applied correctly, there should be no reason to code another ShowMessage() or set another break/watch point again. If you need to know what's going on in your program, simply have a look at what SmartInspect has been recording for you. It's right there and ready to run in the Delphi IDE or in the Notification area depending on the "Options" you've set up. Got a problem in the field ... have a look at the log file. Heck, if I'm reading this correctly [and you've set it up to do so] you can open the console and monitor the program remotely, on a LAN/WAN -or- at least have the file sent to you by email. If you've set it up properly, it'll tell you everything you need to know about what's going on in your program.
Just considering the time spent coding, cancelling, and then deleting code for the multitude of ShowMessage(); dialogues that get written [and you will write them], setting/checking break/watch points and stepping line by line through code looking for specific values, this product will save you tons of frustration and time. I'm just scratching the surface ... based on what I'm able to do with it at this point, what more do you need. This program could be used for troubleshooting existing code or just to figure out what other peoples code is doing - I know I plan on using it for just that.
Nothing you will read here or anywhere else can do this piece of software justice - you have to take it for a test drive and see what you can make it do. If you haven't downloaded a 30 day trial yet, what could you possibly be waiting for? The more I play with this program the more I wonder how could you possibly manage without it -and- I haven't played with much more than the basics. If you're in a hurry, an experienced developer will have this program installed and have mastered the basics in about 30 minutes or less ... certainly less than an hour.
A single user license is $299US [€199] a fair chunk of change for my category of developer. When you think of what it does for you, and how well it does it, even a budget minded hobbyist needs to work this one in there somewhere ... hey, [sigh ... Foot.Shoot(Self);] there's a chance you could Win a Free Copy -but- I wouldn't bother with that if I was you :)
Although I'm nowhere near where I'd need to be to make suggested improvements to the program itself, I do have a few comments on the documentation:
- Put section 2.2 What's New at the end of the manual - I can get to the meat ~8 pages earlier.
- Put section 2.6 General Business and Licensing Conditions at the end of the manual [see above].
- A Watches Demo/Tutorial would be great addition - although reading the manual makes it all pretty simple.
Test drive it yourself.
FYI: The other podcast sponsor was Scooter Software and their product Beyond Compare - I visited that site and had a look at their product too. So should you.
Gotta go, only 27 days left on my trial.
Thanks for stopping by ...
Dave
Most people are aware of X-Face, a black-and-white 48x48 image, compressed into readable text and sent along with the headers of an e-mail message or a Usenet post. The utility I've been using for this is
Oh, before I forget ... if you're still a bit saving purist, in this day of age - go figure, please ... go away! You're only going to get angry and frustrated here. I'll be promoting adding up to 750 bytes to every NG post that gets sent/downloaded. Most people over-quote more than that ... sheesh.
There is a seemingly not so well known equivalent of X-Face, referred to simply as Face, that you can add instead. The advantage of Face is that you can add a splash of colour to the image and be a little more creative - although some would argue that perfecting an X-Face, having only black and white to work with, takes a bit more talent. You be the judge, me ... I'm a bit ambivalent toward the entire argument. I've shown the latest "Face" I'm using to the right. It's supposed to bring my trade, Marine Engineering to mind ... it does for me.
I'm only going to cover one News Reader here, but having tried quite a few of them, AFAIK there is only one ...
Now you're going to need to fire up XanaNews and decide where you're going to use your Face images. They can be added to an Account, a Group or simply to any specific message by adding to the Additional Header Data. Right-click on the Account or Newsgroup you want in the tree-view and select either Account or Newsgroup Properties from the drop-down menu. In the dialogue that comes up select Posted Message Headers in the tree. You will see an Extra Headers text-box [which, as it turns out can't be edited] there and a Modify button. Click the Modify button and on an new line [if required] in the Advanced Headers dialogue type in "Face:" [without the quotes] followed by the "compressed readable text" you copied to the clip-board from the PNG-To-Face utility. If you just want to apply the Face: to a single message, click on the Advanced button in the message dialogue and add the new Face: information on a new line in the Advanced Header dialogue.