Archive for ISV

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)
Feb
19

Gibraltar 2.1.1 Released

Posted by: Kendall | Comments (1)

kick it on DotNetKicks.com

We’ve published Gibraltar 2.1.1, you can download it right away.  There are a number of great enhancements in this release.  We’ve already covered a few of them before:

Based on feedback on the beta release we’ve added some additional capabilities:

  • Send Session Now: If you subscribe to the Message Alert event you can send the current session immediately to the Hub or Email based on the current configuration by setting one property.  Check out the code sample to see how.
  • Easy email notifications: You can leverage the same email configuration the Agent is configured with to send messages within your application for any reason.
  • Anonymous Data Collection: Session data can be anonymized during collection so no personally-identifying information is sent to you.  Just set one option and you’re good to go.
  • Detailed .NET Memory Counters: You can now enable detailed memory performance counters that monitor the .NET CLR’s garbage collector and memory monitoring.  Very useful for monitoring for memory leaks in production applications.
  • PostSharp Enhancements: We’ve made argument tracking more sophisticated so you can do more without compromising the performance of your application.

We also fixed a number of defects (23) that mostly apply to edge cases, but no defect is minor when it affects you.  In particular, our CEIP identified a error on first time startup in several cultures that prompted users to restart Analyst.  Ouch.  Fortunately we were able to figure it out and fix it.  We addressed Thread Ids too.

Hub Subscriptions Live Too

On February 15 the Gibraltar Hub Service is fully live.  You can get a free 30 day trial and then if you like what you see you can subscribe for terms from 1 month to one year at a scale that works for you – from a single laptop up to your whole large team.   There’s no long term commitment, and you can even easily migrate from the Hub Service to your own private hub down the road if you want to.

This Release Made Possible By People Like You

We say it all the time, but this release in particular was driven entirely by end-user requests.  We’re working on the next major release of Gibraltar but we stepped back and wanted to address requests from our customers and a few prospects as well.  When you read the list of everything we’ve done, other than a few defects we found internally and through the CEIP this is based on what our customers felt was most important.  Are we missing something you need?  Let us know:  we’ve proven we listen again and again and again.

You can read a thorough list of the new features, defect fixes, and changes at What’s New in Gibraltar 2.1.1.
kick it on DotNetKicks.com

Categories : .NET, Development, ISV
Comments (1)
Aug
25

Learning Camtasia Screencasting

Posted by: Jay | Comments (2)

I love being part of a startup, except when I don’t.  One thing I love – and occasionally hate – is wearing 47 hats. Unlike big corporate life where there are specialists for everything, in a startup, it’s just you and your team. There’s an amazing range of tasks that you simply must do for yourself. You live by your wits and versatility.

In a heady rush of uninformed confidence, I set off last week to take my nascent screencasting skills to a new level.

I just created my second screencast and I learned a ton in the process though it felt, at times, like having my head pounded with bricks.

My adventure started with me searching around to learn that Camtasia is the tool of choice for creating screencasts.  Plus, I found some great tips for using it to create YouTube HD screencasts.   I was very relieved, for instance, not to have to figure out for myself that H.264 is a really good codec but that it’s only compatible with MOV and not MP4.  I think, hey this won’t be too hard. And with my wife and two boys away at the beach, I decided to make the most of my bachelor weekend by ratcheting up my ambitions and taking this opportunity to also play with the awesome Adobe CS4 Production Premium suite.

Before delving into the details of my many trials and tribulations, let me tell you how everything turned out.

The Oracle Speaks

After three days of nearly round-the-clock work – and a number of kitten-startling screams at my computer using language I was happy my two boys weren’t around to hear – I posted it to YouTube and requested feedback on the Business of Software (BoS) discussion group.  A few hours later, I was shocked to discover that Ian Ozsvald has posted a comment linking to a critique of my screencast.  I recognized his name immediately as the guru behind thescreencastinghandbook.com which I subscribed to last week.  Uh, oh!

Fortunately, Ian generally liked my newbie effort – even applauding some controversial choices I wavered over like including my never-been-mistaken-for-Brad-Pitt face on the opening and close.

However, Ian had a few suggestions for me in a section of his critique entitled “The Bad”.  Well, he is absolutely right on every point.  But there is a funny behind-the-scenes story as to why…

  • when webcam is displayed, the video and audio aren’t quite in sync
  • there are some unwanted volume fluctuations in the audio track
  • there are a couple quick cuts that make the conclusion look and sound chopped up.

Growing Pains

I learned a lot on this project, but man, what a PITA! For example, I learned that Adobe SoundBooth is great for applying EQ and equalizing volume, but the 48K mono wav files I produced aren’t supported by Camtasia. Although they play fine in Windows, when I imported them into Camtasia the waveform showed a flatline and, sure enough, nothing but silence when I tried to play them.

So, back to SoundBooth to convert them to 44.1K – only to learn that it doesn’t have the batch processing capabilities of Adobe’s earlier Audition product – hence conversion requires a tedious series of 33 one-at-a time Save As operations.

Ian accurately noted that my video and audio weren’t quite aligned. I only wanted PIP video for the beginning and end of the screencast and just audio in the middle. I also wanted to use Soundbooth to EQ and equalize all the audio (I’m also a musician and my business partner use to be an AV engineer so we’re picky about sound).

I tried recording audio in Soundbooth and it sounded great so I decided to use it for ALL my audio recording, thus restricting the use of my cheesy Logitech WebCam to only recording video. I used Premiere Pro to align the two together. This turned out to be an extremely painful, time-consuming process. And, despite hours of painstaking tweaking, I never could get everything quite in sync. Never again.

Talking Heads Stop Making Sense

Recording the video was also painful. I couldn’t memorize my entire intro/wrap-up scripts. So instead, I shot them a line at a time and used Premiere Pro to splice the clips together because I wanted to use Camtasia’s sweet fade in/out on the PIP. Unfortunately, when I concatenated multiple clips in Camtasia, to form one larger sequence, the clips kept fading in/out at each of the seams.

So, I finally get my audio and video clips together and pull everything in Camtasia. I put the PIP clips on the PIP tracks and the audio-only clips on the Audio 1 track. But, now, for reasons I don’t grasp, the audio levels for the PIP video clips are much softer than the audio-only clips.  WTF! I theorize I lost some gain in the conversion from WAV audio to WMV video. This might be because Premiere Pro can import 44.1K mono WAV files, but it won’t export audio in that format when creating WMV video files. The closest I could come was 48K stereo audio (funny that Camtasia doesn’t mind 48K stereo WMV but won’t play 48K mono WAV).

Next, I tried to use Camtasia to equalize the volume to no avail – it won’t equalize across the PIP Audio and Audio 2 tracks. I end up pulling the audio-only clips onto the PIP Audio track. Camtasia only allows this after I agree to permanently unlink PIP Audio from PIP Video — thus creating new opportunities for video and audio to get out of sync.

Eventually, everything seems to be more-or-less fixed.  Not perfect, but pretty good.  After granting my computer an hour of quiet-time rendering and encoding my four minute video, I’m finally ready to upload to YouTube.  As a final check, I watch the video one more time. It’s 3 AM and, OMG, everything starts perfectly, but about a minute in the audio totally drops out. WHAT!? I go back to Camtasia and, sure enough, see the same thing – but only when I play the video from the beginning . If I click in the timeline and start at other points in the video, the audio is there.  An hour later, after poking various rocks with an assortment of sticks, I notice some weird little soundwave artifacts on a couple audio clips that must have gotten introduced somewhere in the cascade of tools. I trim them off and finally get the audio to play from start to finish.

One Last Edit

I watch it again and feel like it’s finally good-to-go except – ugh! — when I see the whole thing in context, I feel like the conclusion looses steam right at the end because of  stutter in my delivery. At this point, reshooting that clip is absolutely out of the question. I have exactly zero confidence I’ll be able to match the audio levels, the light in the video will be wrong (it’s the wee hours of the night now vs mid afternoon when I originally recorded. And, most significantly, at this point there is no f@%*ing way I’m going to risk hosing everything up messing with those audio video tracks again. Still, this is the punchline of the whole video and it’s falling flat right at the finish line.…

So, yeah, I go back to Premiere Pro and splice away telling myself that it’s the lesser evil and maybe even is kinda hip — so many youtube videos use fast-cut video splicing… yeah. This isn’t a defect, it’s cool.  And besides, with a little luck I can get to bed before my neighbor’s rooster starts mocking me.

So, I make the changes, set Camtasia to rendering/encoding again and catch some shut eye.  In the light of day, after confirming that my audio still plays end-to-end, I decide not to tempt fate any further with additional tweaks and upload to YouTube, warts and all.

It’s a Wrap

Well, that’s my tale of woe. This is only my second screencast and I (obviously) still have a lot to learn from Ian and his Screencast handbook — especially about using tools optimally in a workflow that is efficient, yet resilient enough to accomodate change during the creative process.

I also think there are some interesting parallels between my experiences in miniature creating this screencast and the challenges I’ve faced on teams building large software projects (platform selection, change management, agile vs waterfall, etc).  But, that’s a topic for another day.

Categories : ISV
Comments (2)

Here’s an interesting data point when you consider the challenge that Google has ahead of them for broad US adoption of their (at the moment vaporware) upcoming Chrome OS.

We keep piles of statistics of traffic over at www.GibraltarSoftware.com. After all, as the site for our flagship product it’s really important for us to understand who’s visiting the site, how they get there, where they go, and if we are meeting our goals.  While getting ready for the next release of Gibraltar we published some site updates today and wanted to know how much time to put into browser compatibility.  So, we poured through the data from the last six months on the site and found a few surprises.

To get some context, consider who are likely candidates to visit the site:

If you exclude the press release, everything else is in places where readers are .NET oriented: Either looking for answers to .NET problems on Stack Overflow, on MSDN looking at the Visual Studio gallery, or on a .NET specific forum. Business of Software could go either way, but we’re known for being .NET oriented on that forum.

Likewise, our product isn’t something every developer is going out and looking for: it’s not a defect tracker or a profiler or a source code control system. We’re targeting folks that are trying to take their applications to the next level and recognize the value of putting a little time in now to save time at the right moment later.

From this, we’d assume that the typical visitor is:

  • Involved on a daily basis with Microsoft .NET.
  • Technically progressive.
  • Substantial user of the Internet

From this, what would you think the distribution of browsers would be for our site?

Show me the Data

We pulled the data from our site for the last 6 weeks which excludes any traffic generated by any employee or contractor for eSymmetrix or Gibraltar Software. We’ve excluded all spiders and things that had usage patterns that looked like crawlers of any kind. Here’s the result:

Percentage of visits by browser family for six week period

Percentage of visits by browser family for six week period

Some of the stats her make a lot of sense: You’d bet given our heavy Microsoft .NET orientation for the site that IE would be the number one browser. Likewise, since there’s no way to run our product on a Mac you’d expect very low Safari use.

What really surprised us is the poor showing of Chrome. It barely beat out the combination of Opera, Safari, and Netscape: browsers that you wouldn’t expect to see much of on our site.

When we look at the specific versions at play there’s more:

Percentage of Visits by Browser Version

Percentage of Visits by Browser Version

Now there seems to be something for the Mozilla foundation to cheer about here: Even in an MS-centric crowd Firefox came out on top. But wait… It’s very interesting that there’s really just one version of Firefox in play, the latest. This seems most likely because of the lengths that Firefox goes to make you update to the latest version. It’s a good example both of the power of defaults and the power of not being Microsoft: You can by default make users do things that are in your best interest.

Chrome dispenses with version declaration all together, and why shouldn’t they: They don’t even tell you that they’re updating and patching your software as you go. Again, the power of not being Microsoft.

Now, did you notice the really sad thing? The piece that has us really depressed? There it is – IE 6. Frankly, we don’t want to support it. The lack of PNG transparency support, poor image resizing and CSS oddities really ups our workload whenever we update our site. Now, I’m not bashing IE 6: Remember it shipped in 2001. Do you know how Good Firefox was in 2001? Yeah, not good. But Microsoft is Microsoft so they can’t make you update something, and here in this crowd of progressive technical folks IE 6 is our second most popular browser, equal to the share of IE 7 and 8 put together.

All Dressed Up…

We love Chrome. It’s our default browser, and I think it makes Firefox look positively old school in comparison. If we go back in time, we can see that the Chrome percentage came from the Firefox camp, not the IE camp. But, if Google can’t get technically sophisticated, current folks to give their browser a spin then how are they going to fare trying to convince my parents that they should use an OS that can’t run Microsoft Office?

Frankly, I’d rather see Google finally convince folks to ditch IE 6 and use something modern instead of blowing time trying to create their own fork of Linux.  Alternately, Microsoft IE 8 will do just fine: It’s not my choice, but we’ve yet to have to make a change to our site to make that browser work which isn’t something we can say for any of the others.   There’s just no excuse for having IE 6 on your machine any more, even a server. Every time you run Windows Update, it’s begging you to install a modern browser. Let it. Really, it’s much better.

Categories : ISV
Comments (1)