Unpredictable Feature Coolness

From time to time, folks will ask us to spend a few days helping them to the best integration and get their staff up to speed on how to get the best results they can.   A few weeks ago we were on-site  doing just this, helping integrate Gibraltar into a large multi-tier application.   We set them up with version 2.1.1, the current production version.  Normally we’re all running the latest internal build but it’s safety first with customers.

There’s one feature we all really missed - we’ve added the ability to have Gibraltar minimize to the system tray and automatically run from the system tray in our latest builds.  We added this feature originally to address a shortcoming:  With the new API for session analysis it’s really desirable to be able to leave a copy of Analyst running somewhere to make sure sessions are being pulled from Hub and processed in a timely manner.  This allows you to generate your own alerts, update external databases, whatever - things you’d want to have running all the time.  We’re going to be integrating this into a Windows Service soon, but meanwhile it’s only available in Analyst.

What?  Another System Tray App?

We added this option with a health amount of reluctance.  Frankly, I usually hate applications that presume I want to run them on startup and minimize to the system tray.  Most of these apps are the things I actively hunt down and kill when I’m suspicious of my machine’s performance.  But, it was the most expedient way to solve a problem we knew would be there with Add Ins.

To our surprise, we’ve found that combining:

Run on Startup + System Tray + Hub

really changes the experience with Gibraltar.  Now, when I log in it will start pulling sessions quietly in the background.  When something interesting happens, I get a toast popup.  I don’t have to remember to start Gibraltar when I log in, and when I get an alert that a customer has an issue I don’t have to wait (even seconds) for the data to sync down.

We were split on even shipping this feature - if we could get the Windows Service done in time, it might never have made it in.  But, based on our experience of missing it quickly when it wasn’t there we’re now committed to making it a full feature.

A Non-Evil Background Experience

We want this to be another feature that “just works” so you simply enjoy the experience.  Along the way:

  • Same Application: Analyst is analyst - it’s the same executable whether run at startup, picked from the menu, or because you opened a package.
  • Minimized footprint: We made sure that it stays as small as we could in RAM.  The main form doesn’t load until you open them up, it unloads completely when you close it, and we made sure we aggressively free memory when processing session data.
  • Adaptive priorities: We even lower the priority of our background processing when exclusively in the system tray to recognize that you have more important things for your computer to do.

Even if you never develop or use a custom add in, you’ll like this feature - particularly if you use Gibraltar Hub.  We took this opportunity to make our notifications more intelligent as well:

  • Accumulate when hidden: If you have the console locked or otherwise can’t see the alerts we save up the data and display one cumulative alert when you get back.
  • Track what you’ve seen: If you’re working along and want to ignore alerts as they show up that’s fine.  You can hover over the system tray icon and find out the running tally of what’s come in since you last opened up Analyst.
  • Better numbers: It’s a finesse point, but we’ve re-written the alert messages to be more useful to convey what type of data has come in.  For example, if you get 50 new sessions and 3 have errors, it’ll say exactly that instead of saying “50 new sessions, some with errors”.

Non-linear Results

What I love most about this feature is that it makes a real difference to the enjoyment of using Gibraltar in real world scenarios - when you are trying to support an application in production with sessions coming in at unpredictable times while the rest of your job demands your attention.

Sometimes features are like that - a small adjustment in two areas creates a cumulative value you just couldn’t see coming.  It’s also something you won’t get if you solely focus on functional specs and end-user feedback.  You have to be willing to experiment and try a few edge things out without being committed to them.  Some will be a bust, but every once in a while you’ll open a door to a new room of capability you would have totally missed otherwise.

It wasn’t obvious to us during development because we rarely get a chance to run Analyst for very long outside of some testing we do.  After all, we’re constantly starting & stopping it to check this feature or that.  It’s one of the reasons we love to do contract integration work - we get to see what does and doesn’t work for real customers in a more direct way than we get from customer feedback.

Related Posts

PostSharp Diagnostics Now Supports Loupe in the Box

The latest update to PostSharp Diagnostics adds Loupe support, enabling extensive high-performance logging to be added to any .NET application with virtually no code changes. PostSharp even has a great free option for developers that complements Loupe Desktop! Read more

Loupe Agent for .NET Core Now Available

The first release of the Loupe Agent for .NET Core is also our first open source version of the Loupe Agent. This is the first step in our plan to open source the entire Loupe Agent to make it easier for anyone to extend and take advantage of what Loupe... Read more

We've Moved Loupe Service to App.OnLoupe.Com

Loupe Service now has a shorter, direct site name that's faster, anywhere in the world. Just to go App.OnLoupe.Com, the new CDN-accelerated endpoint for the Loupe Service. Your existing Agents and Loupe Desktops are unaffected by this change, but access to the web UI will be redirected to the new... Read more

Rock solid centralized .NET logging

Unlimited applications, unlimited errors, scalable from solo startup to enterprise.