Wednesday, August 27, 2008

SmartInspect 3 ... Test Drive

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

Tuesday, August 19, 2008

A "Random Thought" Not To Be Missed!

I seldom pass up a chance to read the Random Thoughts posts by Nick Hodges whenever they happen to pop up on Delphi Feeds.

Random Thoughts on Passing Scene No. 77 was a beauty! In there is an innocuous looking link to an eWeek article "Nice article on Delphi 2009 and C++Builder 2009 in eWeek" ... don't pass up on following through to the article. It's an article [according to Michael Swindell in the article] that up to, possibly more than, 2M people would find exciting - OK, maybe not all of them :)

"Embarcadero Technologies plans to release the next generation of its CodeGear—formerly Borland—rapid application development tools for Windows, Delphi 2009 and C++Builder 2009, on Aug. 25."

Read the whole article there is a lot of interesting stuff in there. Typically the big question is left until last ...

"Delphi 2009 and C++Builder 2009 will be available on Aug. 25 with North American pricing beginning at $399 per license for Professional editions, $1,299 for Enterprise editions and $2,299 for Architect editions."

It's what we've all been waiting for ... looking at the price list, even I may upgrade :)

Thanks for stopping by,
Dave

Thursday, August 14, 2008

Add a bit of Face to XanaNews

C'mon take a little break from all that Tiburon chatter and [possibly] learn something totally irrelevant, unquestionably frivolous and undeniably trivial.

My XFaceMost 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 WinFace. You could also use the Online X-Face Converter or simply select the X-Face you want to use at A bunch of X-Faces.
There's the one I've been using off to the right there.

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

Marine EngineeringThere 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.

Elmer FuddI'm only going to cover one News Reader here, but having tried quite a few of them, AFAIK there is only one ... XanaNews by Delphi guru Colin Wilson - visit Colin's Delphi Site for a lot more in excellent Delphi Utilities, Components and Applications. While Colin is on sabbatical from XN development we've been fortunate to have Leonel Togniolli [another Delphi guru] keep us up to speed with continuous releases from his site - Unofficial XanaNews NewsReader. So if you do decide to upgrade to XN that'd be the place to go. If you use another News Reader, for some odd reason, you'll have to figure how to get the Face you'll use into that program on your own.

ER Telegraph What were we talking about ... oh yea, how to create a Face for your NG posts. That's pretty easy actually although there are a few rules you need to abide by. For the tool we're going to use, it must be in PNG format. In addition, the image cannot be greater in dimension than 48x48 and not greater in size than 725 bytes. There's all you'll need to know on The Face Header site - a must read. I use IrfanView personally, to meet these requirements but there's several other programs that can do the same. Of note, you're going to need to reduce the colour palette depth down to at least 16 in my experience -but- see what you can get away with.

toothbrush Once you've acquired your 725 byte [or less] 48x48 PNG image download the PNG-To-Face utility [notice the Pascal code - all the best tools and utilities use it], extract it to the folder of choice and run it. Browse to the folder holding your file and select it ... PNG-To-Face will do the rest. If your image meets the criterion you will be presented with what looks like a lot of hieroglyphics in the right hand pane - that's your image "compressed into readable text". Copy it to the clipboard.

Ship Wheel 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.

Face:iVBORw0KGgo [... clipped a bunch ...] RU5ErkJggg==

Nothing to it, it's the telling that takes the time :)

Thanks for stopping by ...
Dave