Posts Tagged ‘end user monitoring’

Runtime Intelligence Portal 2.0 now live for commercial users

Friday, July 22nd, 2011 by Brandon Siegel

The next version of PreEmptive’s Runtime Intelligence portal was rolled out for commercial Runtime Intelligence users Friday afternoon. The underlying infrastructure has been rebuilt from the ground up to provide better performance, reliability, and security. More details of what’s new in Runtime Intelligence Portal 2.0 are available in the original announcement blog entry.

As always, we deeply value your feedback. You can directly reach the Runtime Intelligence portal dev team by leaving a comment on this blog entry, posting a message on the Commercial RI Portal forum, or tweeting us @PreEmptive.

Introducing Runtime Intelligence Portal 2.0

Tuesday, May 3rd, 2011 by Brandon Siegel

After many months of polishing, the next version of PreEmptive’s Runtime Intelligence portal was rolled out for Runtime Intelligence for Windows Phone 7 users late Sunday night. In the coming weeks, the new portal infrastructure will be released for our commercial Runtime Intelligence customers as well. The underlying infrastructure has been rebuilt from the ground up to provide better performance, reliability, and security. On the surface however, the functionality and look & feel of the portal remain mostly the same. Notable changes include:

  • Portal performance is improved. Additionally, load times should not be affected by factors such as the range of data being examined.
  • The metrics surfaced on each dashboard are more useful, consistent, and intuitive.
  • Some calculations were made more accurate (for example, average session duration is now calculated across only completed sessions).
  • Better and more compatible dashboard widgets.
  • SSL encryption is now mandatory for sensitive operations such as login, and optionally available across the entire site (just use https:// instead of http://).
  • Expanded browser compatibility.
  • Many visual and usability improvements to refine the user experience.

We’ve spent a lot of time refining the portal, and we think that we’ve come up with something that works well, looks good, and addresses many of the concerns that we’ve heard from the community. Of course, we know that this is a continuous process and there’s still plenty to do. To that end, we welcome your feedback. Love it? Hate it? Something not quite right? Comment on this blog entry, post a message on our forum, or tweet us @PreEmptive. Anything you write will go directly to those of us on the Runtime Intelligence portal development team, and if your suggestion is a good one you can look forward to seeing it implemented in a future portal update.

Obtaining opt-in consent: The responsible way to collect application analytics

Wednesday, December 15th, 2010 by Brandon Siegel

Runtime Intelligence is a powerful tool that is able to illustrate in great depth how your applications are actually being used. But of course, with great power comes great responsibility. While individual developers are free to collect analytics data in any way and in accordance with any privacy policy they wish, allowing your users to opt-in to collecting usage information is not only standard in the industry, it’s also the right thing to do for your users. With Runtime Intelligence, we’ve make this important functionality easy to implement via the OptInSource properties of the SetupAttribute. Simply specify the name and owner of the property, method, field, or method argument that will contain the user’s opt-in setting at runtime, and the instrumented Runtime Intelligence code will retrieve the opt-in setting before any attempt to send analytics data.

If the user has opted-out, no data will be collected or sent in nearly all cases. The exception to this rule is that if you have chosen to use Tamper Detection and Notification, and you have configured it to send Runtime Intelligence messages when tampering is detected, these messages will always be sent regardless of the user’s opt-in choice. Additionally, the Exception Reporting feature contains a mechanism that allows the user to specify an explicit opt-in for an individual exception report, which will override the Runtime Intelligence opt-in setting for that message only. The default exception reporting dialog that Dotfuscator can inject makes use of this mechanism, and the specifics of how to provide this explicit opt-in are detailed in the manual so that developers rolling their own solution using Exception Reporting can do the same.

As a quick example, let’s say I wanted to persist the user’s opt-in setting using Isolated Storage. For simplicity’s sake, I am using the IsolatedStorageSettings class available in Silverlight and Windows Phone 7, but applications that target other frameworks can perform the same operations in a slightly more verbose way. Your business requirements would of course drive the value of RIOPTIN_DEFAULT; for this example I have chosen to opt-in the user by default.

public static class UserPrefs {
    public static bool RIOPTIN_DEFAULT = true;

    public static bool RIOptIn {
        get {
            bool optIn;
            if (IsolatedStorageSettings.ApplicationSettings.TryGetValue("rioptin", out optIn)) {
                return optIn;
            } 

            return RIOPTIN_DEFAULT;
        }
        set {
            IsolatedStorageSettings.ApplicationSettings["rioptin"] = value;
            IsolatedStorageSettings.ApplicationSettings.Save();
        }
    }
}

Now all I need to do is set the following properties on my SetupAttribute (either in code, or via Dotfuscator’s Instrumentation tab), and my users will be able to rest easy, knowing that they have control over whether and how their activity data is shared.

[Setup(
    ...,
    OptInSourceElement = SourceElements.Property,
    OptInSourceName = "RIOptIn",
    OptInSourceOwner = "UserPrefs",
    ...
    )]

You can see a complete example by checking out the awesome open-source OneBusAway app at http://onebusawaywp7.codeplex.com. The Runtime Intelligence opt-in preference is wired up via data binding to a toggle in the app’s settings scene, and is persisted in the same way as my sample above (property backed by isolated storage). They’ve included their Dotfuscator config file in source control, so you can take a look at a real-world example if need be. The OneBusAway project is also a great example of our exciting partnership with CodePlex that provides free, integrated Runtime Intelligence analytics to all the projects they host, so definitely check it out!

Dotfuscator 4.9 Beta with Exception Tracking and Windows Phone 7 Support

Thursday, September 30th, 2010 by Michael Letterle

PreEmptive Solutions is proud to announce the availability of Dotfuscator 4.9.1000 Beta. This beta is a preview of a full release coming in the near term. One of the exciting features we are introducing is Exception Tracking.  Utilizing our Runtime Intelligence platform, you can track unhandled, caught, and thrown exceptions at both the assembly and method levels.  You can then report on and view those exceptions on our Runtime Intelligence portal.

Exception tracking is injected post build time, based on custom attributes or configuration settings in the same way as our current Runtime Intelligence offerings, making the process very streamlined.  We also include a default dialog to allow end users to opt-in and enter their contact information and comments.  You control which exceptions get reported, where to capture the exceptions for reporting, and how to respond. You can even choose to send messages to your own endpoint (perhaps using our Open Source RI Endpoint Starter Kit?). You are in complete control.

Also available in this release is official support for Windows Phone 7 (both XNA and Silverlight applications). You will be able to both obfuscate AND instrument your WP7 app and have the Runtime Intelligence data appear in the RI Portal alongside your other apps.

For other details about the Beta see the change log here. If you would like to have access to the Beta, please contact your Account Manager or Support.

How do I love thee? Let me count the ways.

Thursday, August 20th, 2009 by Sebastian Holst

“How do I love thee? Let me count the ways. I love thee to the depth and breadth and height” - Sonnet 43, Elizabeth Barrett Browning

So “what’s love got to do with it?” (Private Dancer, Tina Turner) Hint: if people live for love, then businesses live for money

On July 14th, Microsoft announced Azure pricing and a “grace period” through PDC 2009. A primary rationale here is to enable development organizations to optimize deployment and monetization models to maximize Azure commercial opportunities.

So, whether you are a romantic (like Ms Browning above) or perhaps more hardened like Tina Turner’s Private Dancer (or Stanley Kubrick a la Full Metal Jacket), one thing is for sure - Microsoft wants Azure to “love you long time.” How deep, wide, high or long is the question.

Check out a this article in SD Times - PreEmptive’s Dotfuscator instruments Azure applications By David Worthington – where Dave Worthington makes many of the very same points.

Of course, we announced Runtime Intelligence Service (RIS) Azure support to help developers answer these very questions. While perhaps not as soaring as a sonnet – Runtime Intelligence allows for any .NET component deployed into Azure to be injected (post-build) with session, feature and method level monitoring. The runtime intelligence is streamed out of Azure for analysis. Other than writing a custom solution, this is perhaps the only means to measure adoption, usage patterns and performance inside Azure in near real-time.

Now, my posts are all intended to help you (blog followers) find more ways to make more money (we want to spread the love). So, you will note that I very specifically said the RIS helps to answer these questions. What the Azure development community really needs is an ROI calculator that will combine real usage data (from both legacy and piloted Azure applications) with Microsoft pricing and the offset IT expenses to come up with an Azure ROI calculator. I know there are lots of calculators being written – but how many of them can incorporate actual usage data before and after deployment to the cloud? That’s not our business – but could it be yours?

If yes, let me know and I will make sure you have what you need to call our RI Service via our RESTful API – making your calculator uniquely able to reliably predict cloud ROI.

As always, i have a more philosophical take on this issue on my personal blog at http://apps-are-people-too.blogspot.com/2009/08/how-do-i-love-thee-let-me-count-ways.html