The first beta of Gibraltar 2.2 is now available to download.  The big picture items in this release are:

  • New add-in integration API: You can do some fun stuff with this, like exporting data to your own data warehouse or integrating with your favorite defect tracker.  We’ve provided some samples to get you started and make sure it’s easy.
  • System tray and run at login integration: Particularly if you’re using Gibraltar Hub this is a killer feature that you have to experience.  It makes integrating Gibraltar into your personal workflow much more fluid.
  • View errors without opening sessions: You can preview the errors in a session without having to open it up to decide if it’s worth drilling into.  This saves a lot of time when reviewing large numbers of sessions.
  • Add metric groups to charts in one step: You can add any number of metrics to a chart at once just by dragging the folder they contain onto the chart.  It’ll sort out the compatibility for you in one step.  If you’ve been using metrics, particularly using our aspects for PostSharp, this feature will save you a lot of time.

A hidden feature for existing Gibraltar users is that we’ve dramatically reduced the memory used for packaging and sending sessions via email or writing them to files.  Basically, we’ve optimized the case where a session isn’t fragmented to never buffer the data in memory resulting in a small and predictable memory footprint even for very large sessions.

Safe for production use

The reason this is considered a Beta release is because of the new Add-In integration API.  This affects Analyst only.  Otherwise it has passed all of our production tests and is safe to deploy and use broadly.  We are likely to make changes to the Add-In API based on your feedback and our own experience for the final release.

We will provide our normal full support for this release at least through shipping the final release of 2.2.

Path to final release

We expect to wrap up the beta of 2.2 and ship the production version in the next 6-8 weeks depending on your feedback.  We want to make sure there are several add-ins available on initial release and get in some other exiting capabilities we can’t talk about just yet before we close the books on Gibraltar 2 and move on to our next major release.

This is a great chance to influence the design of a major feature of Gibraltar – play around with creating add-ins and let us know what you think.  What are we missing? What type of add-ins do you want to see (perhaps there’s someone else that wants the same thing)?  Drop us a line and let us know.

Trial users

We’d encourage you to try out this new release as well, particularly if you think you’ll get more out of the new features we’ve added. All you need to do is register for an account (free and fully automated) and you can get it.   Your existing 14 day anonymous trial or 30 day trial key will continue just fine with this beta release.

Categories : .NET, Development
Comments (2)

We spend a lot of time worrying about the usability of Gibraltar.  Our goal is to have our brand known for creating intuitive, attractive products even though we develop exclusively for a platform that (often unjustly) is maligned on the same points.

From Where We Are

One part we agonized over at length (and did a number of mockups, prototypes, revisions, experiments…) was how to handle creating on-demand extra views of session data.  In the current release of Analyst there are five types of views, three of which you can create multiple independent copies of.  To solve this, we created a “blank” tab for each type that could be created dynamically to make it clear what the different potential views were and create new copies.

There are some awkward issues with this:

  • Poor experience curve: The three targets for creating the distinctly different new views don’t quickly pop out of the noise of the page.  Once you’ve crossed through the initial phase of discovery you can’t really get quicker (develop muscle memory) at selecting the right item, particularly since they move to the right as you create new documents.
  • No room to grow: Three distinct items is the upper bound of credibility for this approach.  Otherwise, it’d just take up too much room and you’d miss the left items, they would just blend in.
  • Limited discovery: For a range of technical reasons you couldn’t get much of a hint to why you should pick a specific option.  You pretty much have two words and a 16 pixel image.

Adding the ability to create session views pushed us over the edge – now users can create an unbounded number of unique views that need to plug right into this user interface.  There’s no way that’s going to fly with this approach.

On to Something Better

So, we needed a two step approach to give us a lot more UI surface to work with when picking the specific view a user wants:

Now there’s just one target to click to create a new view, and while it does still move to the right, it’s always the right-most target so it’s easy to pick out of the view.  The biggest problem is discovery, and we’re worried about that:  Will someone who opens the session view the first time realize just how much great stuff is available through new views?  We’ll have to find out.

Once you select New View we have a second problem:  How to pick the view you want.  Here’s the first approach we beta tested:

There are some good things going for this selection:

  • Big targets: Each button is very large and visually distinct and suggestive of the type of view you’re creating.
  • Good experience curve: Their positions are fixed, and the dialog shows in the center of the session viewer so you can be reaching for what you want before the dialog even shows because you know where it’s going to be.
  • Good discovery: At this level we have the room to show a very large tooltip as you hover over an item to tell you about what it is and why you’d want it (not shown in the picture).
  • Extensible: We can easily add more items without breaking the paradigm:  We could add more buttons up to about 9 before it would significantly break down (but you’ll see below we went a different way)

Still, for some users it still felt awkward:  Some of our experienced users still had to pause each time, stare at the dialog, and then select.  This led to another round of prototypes and an improved version:

In this version, we’ve done two things:

  1. Text and Graphics: To accommodate the fact that some people scan graphically and some scan for content we added a text label that’s always visible even without a tooltip.  The tooltip is still there to add expository but many people won’t start hovering over the icon until they think it’s the right one.
  2. More air to look more interactive: By increasing the padding around the graphics the visual effects of mouseover and focus make the display feel more friendly and interactive.  It encourages hovering over an item before you’re sure it’s valid.

You can see the effect of the extra air when the mouse is hovering over a button:

Now With Your Extensions

Finally, if you go ahead and add some add ins that create their own custom views this dialog automatically extends to give you those choices.  In this case it’s clear which are the intrinsic views and which are extension views.  We’ve also set aside space for the extension views to describe themselves.  Developers hate empty visible boxes so we hope creating clear space in the dialog will encourage them to create good descriptions.

We’re running the risk that this approach is too optimized around an assumption that there will be a lot of add-ins, but it still provides good discoverability without making it more complicated to create add-ins.  Plus, it only unfolds the additional complexity of managing these extra views if there are any around that need it.

Soon it’ll be Your Turn

We’re going to release a beta of Gibraltar 2.2 imminently.  We’re considering it a beta because of the new add-in API which we want to get a broader set of feedback on before we’re committed to its design.  The rest of the product has to pass all of our normal tests, so there’s going to be plenty of reason to upgrade to this version.

We’d love to hear your feedback on what you think of the changes we’ve made, the new API, and how we can continue to make the product easier to discover and more effective to grow with you.  We expect Gibraltar to be a tool that works on many levels to reward beginners and experts alike.  Hold us to it!

Categories : Development, ISV
Comments (3)

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.

Categories : Development
Comments (1)

One last update to Gibraltar 2

We’ve done several functional releases this year and we’re going to do one more minor one before we close the books on 2.x.  This last update is going to include some memory usage optimizations, reliability tweeks, and the first version of the Gibraltar Add In API.

Memory and Reliability Optimization

There are a few scenarios we use more memory than we should in the Agent.  These scenarios all revolve around sending larger sessions via email or writing them to a package file (Hub users are not affected because it exchanges data completely differently).  We’re changing how these operations are performed to emphasize using constant memory (and less memory) instead of being optimized for the fastest performance.  For smaller sessions the performance optimizations don’t matter, and for larger sessions it’s preferable to ensure we can not interfere with the running application vs. getting it done in the smallest time possible.  This trade-off is done by not explicitly buffering data in RAM but instead using self-deleting temp files for interim storage.  If your computer has enough RAM the OS will cache these anyway and if you don’t you’ll be thankful we aren’t using what little you have.

AddIn API

We’ve been working on this as part of the 3.0 plan but think there’s enough there to release it early.  This is the first time you’ll be able to extend the Gibraltar Analyst itself using your own code.  Our primary goal was to provide a safety valve – a way you can handle analysis and integration scenarios we’re not handling yet.  If you want to integrate with your own customer service or defect tracking system, create your own visualizations or whatever this will provide a way to get it done.

You’ll be able to extend Analyst in two ways:

  1. Analyze every session: Whenever a session is added to the user repository Analyst checks through it to record error statistics.  You can extend this pipeline to add on your own inspection, looking at the entire log or just the errors.  This is done automatically in the background.
  2. Custom session commands: You can add commands to the context menus wherever sessions are being managed to get specific sessions on request.  You can chose whether you want to provide your own user interface or be run in the background.   Register your command and it will automatically show up on session folders, in grids, and other places where sessions are being managed.

What can you do with this?  Well, a few ideas are:

  • Forward details about errors to an external customer service or defect tracking system: With an Analysis add in you can check each session for errors and create an email or do whatever you need to open a new ticket.  You’ll have access to everything in the session file.
  • Export data into a data warehouse: If you have your own external system for tracking overall metrics or whatever your analysis add in can write data to a file, upload it to a database or whatever you need.
  • Create your own visualization: Since you know exactly how you’re recording data (log messages and metrics) you might want to create your own special graphical treatment that leverages that knowledge to provide quick insight.

Share and Share Alike

A best practice is to ship an extension API with several great examples that show best practices.  Well, we didn’t want to hold it back long enough to get them done so we’re going to be looking to our community for great examples to share.  If you create an extension that others might be interested in, let us know – we’re going to set up a place to share extensions with the community.

We’re interested in hearing from the community on how you want to be able to extend Gibraltar – Analyst, Agent, and Hub – so we can incorporate those ideas into 3.0 and beyond.

And then on to 3.0

We have a queue of items we’re already working on that are too big to fit into a dot release of the product.  For example, we haven’t changed the data format of Gibraltar since the early betas.  There are some issues that we simply can’t fix without adjusting the format which will create a situation where older Analyst won’t be able to read the newer data.  We aren’t willing to do that on a dot release.

We also are going to break new ground in 3.0 on the CEIP front with an all-new application management view of the session information.  When we get closer to our first beta we’ll release more on that and other enhancements.

New features for all our friends

Every Gibraltar customer will get a free upgrade to Gibraltar 3.0 when it ships.  This is the power of our software maintenance in action – every license includes a year of it to make sure you get the most out of your investment.  We don’t have a specific date in mind for shipping 3.0 but expect it to be late Q2/early Q3.

Categories : Development
Comments (3)