Archive for the ‘Uncategorized’ Category

A phone by any other ‘nym is just as slick

Friday, November 12th, 2010 by Sebastian Holst

(…or, are smartphones also people too?)

One of my favorite words is retronym. A retronym is a new name for an existing (old) thing that becomes necessary because of progress. (what!?) Examples help – the term “acoustic guitar” was only necessary when electric guitars hit the scene. The term black and white TV was not born with the invention of TV – it was born with the invention of color TV.

But we don’t have color phones, we have SMARTphones!

And here is the twist – a smartphone is more than a new class of phone, its also an anthropomorphism (ascribing human attributes to a thing that is not human). Phones can’t really be smart – people are smart (at least in theory).

As I’ve already written in some of my more verbose entries below, smartphones are important because they combine the best of computing, communication, content, and social forces – to become something entirely new.

And as one more piece of supporting evidence that the smartphone hype is real – not only do smartphones promise to disrupt markets, business operations, and social norms … they have given us our very first anthropomorphic retronym – the dumbphone.

I didn’t make this up – see Dumbphone. Its the first of its kind - and i think that’s worth noting.

Can you hear me now?

Track Application Usage Statistics for CodePlex Projects

Tuesday, May 11th, 2010 by Joe Kuemerle

Open source software thrives on feedback and participation. Without a good idea of what users want, projects easily become irrelevant. Knowing how many people are actively using your application, as well as which features they’re using (and which ones they’re not) provides significant feedback that helps to focus development, resulting in an improved application that meets the user’s needs.  With CodePlex’s integration of Runtime Intelligence features, project coordinators now have the ability to inject application analytics features into their releases.

Projects hosted on CodePlex can use either the free version of Dotfuscator (included in Visual Studio 2010) or the commercial edition to inject application analytics features into their binary distributions.  The application analytics automatically tracks how many times is run in the wild and the duration of those runs. This provides a measurement of application popularity beyond counting the number of downloads.  Basic system profile information, such as which operating systems and framework versions the application are run under, is gathered and reported on as well.  Additionally, feature usage within the application can be measured including the number of executions as well as their duration.  Total application runs per day statistics are available on the projects statistics page on CodePlex and detailed usage data is available from a link on the statistics page.

With the understanding that there can be privacy concerns, Runtime Intelligence instrumentation transmits no personally identifiable information.  It is also very easy to surface the built in Opt-In/Opt-Out functionality in the library and give individual application users the choice to participate in the program.

The individual usage data is aggregated and daily application usage is viewable on the projects statistics page as well as links to detailed reports of application and feature usage.

Instrumentation of applications compiled against .NET 2.0 and higher (including Silverlight 2, 3, and 4) is supported by Dotfuscator Community Edition.

Projects that use custom attributes to decorate their injection points are permitted to redistribute the PreEmptive.Attributes.dll library as part of their source code.  The library is only necessary for compilation of the application and references to it are stripped out during the instrumentation process, so it does not need to be included in binary distributions.  A signed downlevel version of the attributes library is available on the CodePlex Runtime Intelligence Integration project page (http://runtimeintelligence.codeplex.com/releases ) that can be used in any project targeting .NET 2.0 or higher.  This library is also allowed to be generally distributed with project source code.

Any project hosted on CodePlex can now take advantage of the deep knowledge into user activity that Runtime Intelligence Services provides by reviewing a sample walkthrough here and implementing this new feature into a future release.

Dotfuscator 4.6.5000 ships, includes VS 2010 RTM support and offline Runtime Intelligence

Monday, April 5th, 2010 by Joe Kuemerle

Today we shipped Dotfuscator, version 4.6.5000.  This release fully supports Visual Studio 2010 and .NET 4.0 RTM versions as well as beta support for the Silverlight 4 RC release.

In addition to supporting the latest and greatest frameworks for both obfuscation and instrumentation, this release also includes a new feature that has a top spot in our customer request list.  Up until now applications instrumented with Runtime Intelligence were unable to react to scenarios where your customers have only occasional network access so some of the application analytics data was not gathered.  By default, any applications instrumented with Dotfuscator 4.6.5000 or higher will store usage data in Isolated Storage when the application cannot send data to the configured Runtime Intelligence endpoint.  When connectivity to the endpoint is restored all the saved usage data is sent to the endpoint for storage and reporting.  In the event that the Runtime Intelligence endpoint is not accessible for an extended period of time, or that the application is used so heavily that the allocated space is filled, the injected code will remove older unsent usage data to make room for newer data.  You also have the option to revert to the previous behavior of dropping usage data when the network is inaccessible by simply changing the setting for the offline behavior as well as writing your own custom network detection code.  Additionally, you can set up your application to react to changes in connectivity either with a default implementation of shutting down the application when connectivity is lost or by having the injected code set the value of a field or property, or invoke a method of your choosing.

We also improved our support of ClickOnce application processing and fixed some bugs.  As always, changes are detailed on our change log .

There are many more changes coming to Dotfuscator, DashO and Runtime Intelligence in the near future.  Keep tuned for more exciting news as it unfurls.

Dotfuscator 4.6.1200 Released

Thursday, February 4th, 2010 by Joe Kuemerle

We just shipped the latest update to Dotfuscator, the 4.6.1200 version.  This is mostly a bugfix release but includes a small enhancement that supports using project properties in the ClickOnce package signing certificate path, allowing for better portability of project files between build environments.

There are a number of updates to fix small issues in packaging support, improve handling of mixed mode assemblies and address some issues with Visual Studio integration.

For a summary of the changes in Dotfuscator 4.6.1200 check out the change log here or subscribe to the change log in your RSS reader here .

This update is available to all customers who are current with their maintenance.  Download it here , give it a try, and let us know what you think.

On Helping Software Succeed

Wednesday, April 15th, 2009 by Gabriel Torok

I will be writing an ongoing series in this blog entitled “On helping software succeed,” in which I will examine pertinent and timely topics relating to the success of software. After all, software is unique, unlike other businesses. It is much more malleable than most physical businesses – there are only so many things you can do with machinery, real estate or other hard assets. But software, like putty, can become whatever it is designed to do. And to complicate matters, most software is dependent on other software:

There are tools for creating, compiling, testing, debugging, and managing software applications.

There are operating systems, external applications and functions required my many software applications to run.

In short, software is a world of multiple unexpected and unanticipated moving parts unto its own. At PreEmptive (link), we produce software for both Java and .NET that helps organizations protect, manage and monitor their software applications. Our unique honor, as the only 3rd party application shipping inside of Microsoft’s Visual Studio development environment, gives us a unique perspective: a true insider’s view into the software development process.

As just one example, we surveyed (link) 300 software application developers at Fortune 1000 and other leading companies and found that just 42% of companies calculate return-on-investment of the applications they develop. In addition, just 7% of respondents say they measure the return against a well-defined set of metrics and success criteria.

Software is unlike other businesses, but it does not mean, that with a little effort, its business impact can’t be measured. For example, before companies commit to spending billions on machinery, real estate or other hard assets, they calculate the expected return on investment. Few companies do this with software. It adds up to a huge expenditure that is rarely measured as a genuine asset or balance sheet line item. As the economy tightens, companies will want to know how to measure the business impact and the return on their investments in applications.

Here are some starting suggestions for creating an effective system for measuring application ROI:

  • Invest in developing meaningful and consistent usage and impact metrics.
  • Tie these metrics to development, support and maintenance investment strategies. Usage and impact metrics must translate into smarter application portfolio management decision-making and development resource utilization.
  • Incorporate application ROI management into broader business performance management practices. Success can only be assured when application asset management is fully integrated into operational and business performance management.

Your thoughts? Comments?