Click here to monitor SSC

Jason Crease

Jason Crease

Metrics – A little knowledge can be a dangerous thing (or ‘Why you’re not clever enough to interpret metrics data’)


At RedGate Software, I work on a .NET obfuscator  called SmartAssembly.  Various features of it use a database to store various things (exception reports, name-mappings, etc.) The user is given the option of using either a SQL-Server database (which requires them to have Microsoft SQL Server), or a Microsoft Access MDB file (which requires nothing). […]

3 May 2012 3:23 pm by
Jason Crease

SmartAssembly Error Reporting: with the bug-finding power of more than 20 testers


At Red Gate, we use the SmartAssembly automated-error reporting system in the applications we sell.  When an error or exception occurs ‘in-the-wild’, it is reported back to Red Gate HQ, along with details about the error (stack trace, deployment environment, local variables, and more). Using the ‘SmartAssembly Sync for JIRA’ system, these errors are then […]

8 September 2011 2:22 pm by
Jason Crease

New spreadsheet accompanying SmartAssembly 6.0 provides statistics for prioritizing bug fixes


One problem developers face is how to prioritize the many voices providing input into software bugs. If there is something wrong with a function that is the darling of a particular user, he or she tends to want action – now! The developer’s dilemma is how to ascertain that the problem is major or minor, […]

18 March 2011 12:06 pm by
Jason Crease

Breaking through the class sealing


Do you understand ‘sealing’ in C#?  Somewhat?  Anyway, here’s the lowdown. I’ve done this article from a C# perspective, but I’ve occasionally referenced .NET when appropriate. What is sealing a class? By sealing a class in C#, you ensure that you ensure that no class can be derived from that class.  You do this by […]

26 April 2010 8:58 am by
Jason Crease

How big is a string in .NET?


How big is a string in .NET? Typically the size of an object is 8 bytes for the object header plus the sum of the fields.  Consider this simple object:     class ThreeFields    {        double d;        object o;        int i;    } The size of a ThreeFields object is 8 bytes (for header) + 8 bytes […]

16 January 2009 10:32 am by
Jason Crease

Scrum: Keeping Kosher doesn’t make you Jewish

1 comment

Our development team has started using Scrum.  We’re only 4 weeks in, so it would be premature to make a judgement on whether it’s working for us.  I’ve investigated how it’s practised elsewhere, and there seems to be a worrying trend…   Let’s say I want to become a Christian.  I could go to church […]

8 December 2008 10:10 am by
Jason Crease

Nullable Structs – An interesting ‘Gotcha’


One of the interesting new features in C# 2.0 was nullable valuetypes.  Using these, you can set valuetypes to a value, or null.  Their usage is entirely straightforward.  For instance, to use a nullable int simply declare a variable of type int?, and then set it to a value or null.   Behind the scenes, […]

26 November 2008 11:11 am by
Jason Crease

Testing the speed of ANTS Profiler 4


Profiling and debugging code inevitably adds overhead, and I know that it can be really frustrating. The overhead can either be small, e.g. the Visual Studio debugger, or massive, as with most performance profilers. A developer may invest in a performance profiler to optimize an algorithm that takes 10 minutes to run, and finds that […]

16 September 2008 8:55 am by
Jason Crease

A Quick .NET Puzzle


Just a quick .NET puzzle.  Does this application ever throw that ApplicationException?  If so, why? using System;using System.Threading;class Program{    static long Num = 0;    static void Main(string[] args)    {        Thread t1 = new Thread(ModifyNum);        t1.Start();        while (true)        {            long k = Num;            if (k != -1 && k != 0) throw new ApplicationException(                “k is not -1 or 0.  It is ” + k.ToString());        }    }    static void ModifyNum()    {        while (true)        {            if (Num == […]

17 July 2008 12:17 pm by
Jason Crease

ANTS Performance Profiler 4 = Sexy Software!?


I sit next to this guy called Stephen Chambers. He is the Usability Engineer working on our next version of our code profiler, ANTS Performance Profiler 4. He is completely revising the UI of ANTS Profiler, and spends most of his time phoning developers asking what they would like to see in the next version, […]

3 June 2008 5:46 pm by
Older posts