SmartInspect Link Buttons

April 30th, 2008 by Dennis Gurock

SmartInspect Link ButtonsIf you are a user of our .NET logging tool SmartInspect, why not show your customers, your partners and press representatives that you care deeply about your software’s quality, performance and security? Show them that you invest time and resources and use software tools like SmartInspect to ensure a great experience for your users.

We created a few link buttons so you can show your website visitors that you use SmartInspect to test and verify your software. Feel free to use these images on your website, in your online help and in other materials. You can download the link buttons from My Gurock.com, our customer portal.

(Unofficial) Python SmartInspect library

April 28th, 2008 by Dennis Gurock

python-logoMichael Elsdörfer, one of our customers, ported the SmartInspect Delphi library to Python. Although some parts of the library are (still?) missing, like the file protocol, it’s already quite complete and you can log via TCP/IP to the Console, use all kinds of log methods and even use advanced features like sessions. Michael writes in his posting:

Back when I was still writing a lot of Win32 apps in Delphi, one of my favorite tools was SmartInspect, a very nice logging tool that also ships with Java and .NET libraries. Unfortunately, I never got to use it that much, since shortly after I bought it I started to drift more and more into web development.

So, three days ago, I had the sudden impulse to take a break from my regular projects and write a Python client library. Just for fun, mostly, but I can see some opportunities in the future where it might come in handy. I wasn’t expecting that it would take three days either, but some of the final bugs in the end took some time to iron out.

From what we can see, Michael did a really good job of porting even small details of the library to python. I’m sure the library is quite useful when developing (and debugging) Python web applications remotely. Keep up the good work Michael!

SmartInspect Early Access Program

April 24th, 2008 by Tobias Gurock

SmartInspect EAP

Every now and then we get questions about beta versions or technology previews of upcoming SmartInspect releases. So far, we have been hesitant to release beta versions. But in order to become a bit more transparent in what we are working on for SmartInspect, we decided to start a SmartInspect Early Access Program (EAP). In this EAP, we will provide interested customers with technology previews and beta versions of SmartInspect. We plan to release new EAP versions on a frequent basis.

To download EAP versions of SmartInspect, you need to have a customer account on our My Gurock.com customer portal and an active SmartInpect support plan. After logging in to My Gurock.com, you should notice a new menu item called “EAP” with the latest EAP releases. Note that EAP versions might include incomplete or buggy features and/or might not work as expected. They haven’t gone through the entire QA cycle yet and are only provided for testing purposes. These versions are not intended to be used on production systems and are therefore not fully supported.

What’s new in this EAP version?

The first version of the EAP is a preview version of the upcoming SmartInspect 3.0 major release. Please note that this EAP release is not a feature-complete preview version of SmartInspect 3.0. It contains most major features of the upcoming major version but lacks several smaller features which will be added over the next few weeks. We will post more about the 3.0 version soon. Here is a short list of new major features that are already available in the first EAP release:

  • New named pipe protocol: The new named pipe protocol is the new default protocol instead of TCP/IP and provides a great performance increase for local live logging. Also, since it’s very fast to test if a pipe is available, automatically reconnecting is really useful for production systems now. This means that you can start the Console when your application is already running and you will immediately receive live logging packets.
  • Improved SmartInspect sessions: It is now possible to specify log levels on a per-session basis. Sessions can now also be configured via SmartInspect configuration files. This is really great for production systems like ASP.NET applications, as you can now enable or disable logging for specific users directly via config files.
  • Support for log file encryption: SmartInspect now supports log file encryption. You can specify an encryption key for log files in the SmartInspect libraries and the logging data is automatically encrypted with AES. This feature can be useful if you log sensitive information that has to be protected.
  • Asynchronous logging: You can now specify for each logging connection if you want to log asynchronously. The libraries will create a (configurable) buffer and process logging data in a separate thread. This feature is very useful for high-performance production systems or for logging via TCP/IP with regular reconnects.
  • Configuration timer: The new configuration timer allows you to automatically reload SmartInspect configuration files when the config has changed. This allows applications to pick up logging configuration changes without the need to be restarted.
  • Sorting of packets: An often requested feature is the ability to merge log files based on the timestamps of the log packets. The SmartInspect Console now supports this with its new Sort feature.
  • Improved Console navigation: We also added new navigation features to the Console like Go to Time, Synchronize and back-/forward actions.

There are other new features that are not mentioned in the list above. Please refer to the What’s New section of the online help for a complete list of new things.

Installing EAP and official versions side-by-side

It is generally possible to install EAP and official releases on the same machine, but please be aware of the following issues:

  • You should install EAP releases into a directory different from your official SmartInspect installation. Doing otherwise overrides your existing installation.
  • Do not activate the IDE library integration in the EAP setup if you plan to further use the official versions of the libraries. Doing otherwise can override your existing integration.
  • After installing an EAP release, double-clicking log files in the Windows Explorer opens them with the new EAP versions of the Console (same for config files and the Configuration Builder).

To avoid the possibility of interfering with an existing installation altogether, it is highly recommended to install EAP releases on virtual machines only. Please note that you can reuse your existing SmartInspect 2.x license key for this EAP version.

Will SmartInspect 3.0 be free for existing customers?

If you have an active support plan when SmartInspect 3.0 is released, you can download and use the new SmartInspect version without paying any upgrade fees. And because every SmartInspect license already includes one free support plan year, you will get the 3.0 for free if you purchased SmartInspect recently (or if you plan to purchase new licenses now). If your support plan expired, you can renew your support plan by logging in to My Gurock.com.

Providing feedback

If you are experiencing problems with this (or a future) EAP version or if you have suggestions or feature requests, please post them it in the related forum or email us. We would really love to hear your feedback!

SmartInspect Executive Summary

April 1st, 2008 by Dennis Gurock

imageWe created and published a SmartInspect Executive Summary document as a help and guide for new customers and decision makers. The Executive Summary document explains SmartInspect (and logging) from a non-technical standpoint and lists SmartInspect’s benefits, key facts and its licensing structure. This document is the perfect guide for decision makers who want to learn more about SmartInspect in a short period of time (it’s only 3 pages).

Quite a few of our contacts from new prospective customers are assigned with the task to evaluate different logging tools and to recommend a solution to the person who will make the final decision. We wanted to help these people by providing them with a document that they can use to inform decision makers about SmartInspect.

This document is also a great tool for developers who want to use SmartInspect and who have to convince their bosses that SmartInspect is the right tool.

If you think that any important information is missing from the document, I would love to hear from you (either leave a comment or email me).

» SmartInspect Executive Summary (PDF)

SmartInspect TCP/IP Performance Improved

March 18th, 2008 by Dennis Gurock

We just released SmartInspect 2.3.4. You can download the new version from My Gurock.com. It’s a minor release with just two changes: we optimized the TCP/IP server in the SmartInspect Console even further and fixed a bug that could block client applications for a few hundred milliseconds once in a while.

The SmartInspect TCP/IP code in the Console is actually quite complicated. It’s not just a simple TCP/IP server that receives logging packets and displays the data in the Console. To differentiate ourselves from competing products, we invested a lot of time in the past to make sure that the SmartInspect Console is blazingly fast and makes use of smart queues, dispatcher threads and techniques to reduce GUI updates.

I wrote the original code, but after Tobias refactored the logic over the past few weeks, he was able to optimize the TCP/IP server to make it three times as fast as before without reducing the overall responsiveness of the Console. Our tests haven’t shown any problems, but if there’s anything that’s not working optimally for you, we would love to hear from you.

EKON Spring SmartInspect Session

February 25th, 2008 by Dennis Gurock

This is just a quick reminder for those of you who attend EKON Spring this week. Daniel Wischnewski will be holding a SmartInspect session on Wednesday titled Logging with SmartInspect. If you are interested in getting started with SmartInspect, you shouldn’t miss this one.

MicroISV Sites that Sell on Bits du Jour

February 25th, 2008 by Dennis Gurock

Thanks to Olaf for reminding me about this one. Bob Walsh’s recently released ebook MicroISV Sites that Sell is featured on Bits du Jour today. This means that you can get Bob’s ebook about unique selling propositions for just $10 for the rest of the day. If you are into selling software or services and want to improve your website, this is your chance:

MicroISV Sites that Sell (just $10 today!)

SmartInspect for Delphi 5 (yes, Delphi 5!)

February 6th, 2008 by Tobias Gurock

From time to time we get questions about using SmartInspect in combination with Delphi 5. There seem to be surprisingly many people who still use this particular version of Delphi. Delphi 5 was a nice release back then and it seems like a lot of people simply don’t feel the need to upgrade to a newer version or still use it for legacy applications.

Although we don’t officially support Delphi 5 with SmartInspect 2.x, we had a version of the SmartInspect Delphi library for SmartInspect 1.4 which runs fine with Delphi 5. This library doesn’t support some of the newer features of SmartInspect 2.x like Unicode (this is actually the main reason we don’t support Delphi 5 with SmartInspect 2.x because Delphi 5 lacks a lot of Unicode related functions), the Watches Graph, the backlog protocol feature and others. The good news is that the current Console version is fully backwards-compatible and can work with the data from older SmartInspect libraries. You thus still benefit from some of the new features like the marker functionality or the improved filtering and navigation capabilities even when using the old library.

So, if you need a logging solution for your Delphi 5 application, send us an email and we are happy to help you evaluate SmartInspect with Delphi 5.

SmartInspect Price Changes

February 3rd, 2008 by Dennis Gurock

We have been taking a small hit on every SmartInspect USD sale in the past 10 or so months due to the weak USD. Because the exchange rate reached a level that we cannot ignore anymore, we will adjust our USD prices to match the Euro prices. Here are the new USD prices (our Euro prices will stay the same):

License Current Price New Price
SmartInspect Single User $299 $339
SmartInspect 5 User Pack $1,049 $1,199
SmartInspect 10 User Pack $1,999 $2,199
SmartInspect 25 User Pack $4,499 $4,999
SmartInspect 100 User Pack $14,999 $16,999
Additional support year per user $59 $69

The price changes will go live on February 18th (two weeks from now). If you are planning to order SmartInspect in the coming weeks, this would be a good chance to save some dollars before the new prices come into effect.

Active Objects and Futures: A Concurrency Abstraction Implemented for C# and .NET

January 30th, 2008 by Tobias Gurock

(Note: Although this is primary a C#/.NET thing, this is also posted on DelphiFeeds.com as I think this might be interesting for Delphi developers as well. Maybe this or a similar abstraction is even something to consider for the DPL?)

I did the final presentation for my CS Bachelor thesis at the University of Paderborn today. I thought I would share the thesis here, maybe some of you find it an interesting read. In one sentence, it’s about simplifying concurrent programming with several (new) higher-level abstractions. Here’s the summary:

Although being touted as the next big thing for years now, concurrent programming is still very difficult and error-prone even in modern programming languages and environments. Concurrent and in particular multithreaded programming still requires deep knowledge of low-level techniques like threading or locks and experience with deadlocks, race conditions and other subtle and hard to find concurrency problems. High-level concurrency abstractions and patterns can simplify concurrent programming but are only starting to become available in modern mainstream programming languages.

One of these high-level abstractions is the so called Active Object pattern. The Active Object pattern works, as the name implies, on the object level and not on an object hierarchy like most other design patterns. With an active object, method invocation is decoupled from the actual method execution, i.e. invoked methods of these objects are executed asynchronously and do not block the caller. There are several variants of this pattern known, but all have in common that the concurrency functionality is achieved by running methods in a thread or process context different from that of the caller. Possible results of active methods are encapsulated in so called future objects which can be seen as placeholders or contracts for the real results.

I will post the related code (the active objects runtime library as well as the related code generator/compiler) later this week or maybe early next week. So without further ado, Active Objects and Futures: A Concurrency Abstraction Implemented for C# and .NET.