Statistical Method for Estimating Software Projects

As the Vice President for Research and Development at Emerald Software Group, a large part of my job comprises managing software projects from conception to completion. As a programmer in a management position, I’ve discovered a few things. First, I am very good at estimating how many human hours of programming time it [...]

Categories: Agile Programming | Computer Humor | Computers | CSharp | Dot Net | Emerald Software Group | Humor | Onboarding | Patrick Caldwells Blog | PHP | Programming | Project Management | Service Oriented Architecture | SOA | SQL Server | Technology | Web Development | Web Services | Windows Programming
Recursively Searching for Classes of Specified Type from an Assembly or Type

Sometimes I find myself implementing a plugin architecture and I need to find a list of classes in an assembly that qualify as plugins for a given project.   I wrote the following class to help me do this: public static class TypeFinder {     public static List<Type> GetTypesFromAssembly(Assembly assembly, params Type[] assignableTypes)     {         List<Type> types = new List<Type>();           if (assembly != null)             foreach [...]

Categories: Agile Programming | Computer Humor | Computers | CSharp | Dot Net | Emerald Software Group | Humor | Onboarding | Patrick Caldwells Blog | PHP | Programming | Project Management | Service Oriented Architecture | SOA | SQL Server | Technology | Web Development | Web Services | Windows Programming
Unpivot Table Sproc (3 lines)

CREATE PROCEDURE [TOPS].[UnpivotTable] ( @tableName AS VARCHAR(512), @whereClause AS VARCHAR(2000) = NULL, @commonColumns AS VARCHAR(2000) = NULL ) AS -- ========================================================== -- Author: Patrick Caldwell -- Create date: 2007/12/19 -- Description: this procedure unpivots data in a table -- [...]

Categories: Agile Programming | Computer Humor | Computers | CSharp | Dot Net | Emerald Software Group | Humor | Onboarding | Patrick Caldwells Blog | PHP | Programming | Project Management | Service Oriented Architecture | SOA | SQL Server | Technology | Web Development | Web Services | Windows Programming
HR-XML Integration in Human Resources Software

Most of the programming and architecture work I do is in the human resources space. I write software for paperless onboarding and acculturation, personell change management, background checks and verification services, new employee requisitioning, and the like. As you can imagine, I spend a great deal of time and effort integrating with human [...]

Categories: Agile Programming | Computer Humor | Computers | CSharp | Dot Net | Emerald Software Group | Humor | Onboarding | Patrick Caldwells Blog | PHP | Programming | Project Management | Service Oriented Architecture | SOA | SQL Server | Technology | Web Development | Web Services | Windows Programming
A Table Valued Function to Split Strings

– the function CREATE FUNCTION SplitString (       @TargetString NVARCHAR(MAX),       @Delimeter NVARCHAR(MAX) )   – the part repository RETURNS @Parts TABLE (       PartId INT IDENTITY(1, 1),       Part VARCHAR(MAX) ) AS BEGIN         – just some variables to keep track of things       DECLARE             @CurrentIndex INT,             @DelimeterIndex INT,             @PartLength INT;         – initialize the loop       SELECT             @CurrentIndex = 0,             @DelimeterIndex =CHARINDEX(@Delimeter, @TargetString, 0),             @PartLength = @DelimeterIndex - @CurrentIndex;         – [...]

Categories: Agile Programming | Computer Humor | Computers | CSharp | Dot Net | Emerald Software Group | Humor | Onboarding | Patrick Caldwells Blog | PHP | Programming | Project Management | Service Oriented Architecture | SOA | SQL Server | Technology | Web Development | Web Services | Windows Programming
Providing both Authentication and Anonymity

I was reading a little tgdaily today and I found an article about a new iPhone app that may be showing up in the app store in the near future. The new application is called Trapster and it’s a “social-networking speed trap warning website.” I know what you’re asking. Well, I don’t actually know [...]

Categories: Agile Programming | Computer Humor | Computers | CSharp | Dot Net | Emerald Software Group | Humor | Onboarding | Patrick Caldwells Blog | PHP | Programming | Project Management | Service Oriented Architecture | SOA | SQL Server | Technology | Web Development | Web Services | Windows Programming
Health Care, Elections, and Media — Oh My!

I was trying to learn more about the McCain health care plan today and I ran across this article.   Now, I’m not a professional writer like Paul Krugman by any stretch of the imagination, but I did stay in a Holiday Inn last night, and I have had several articles published in peer-reviewed professional and [...]

Categories: Agile Programming | Computer Humor | Computers | CSharp | Dot Net | Emerald Software Group | Humor | Onboarding | Patrick Caldwells Blog | PHP | Programming | Project Management | Service Oriented Architecture | SOA | SQL Server | Technology | Web Development | Web Services | Windows Programming
Writing Anonymous Methods with Lambda Expressions

I like using Lambda expressions for anonymous methods. I don’t really have a good reason for it, but I like it, so here’s the difference. Let’s say you have a class exposing the following delegate: public delegate bool CheckExpirationDelegate(); public CheckExpirationDelegate CheckExpiration; The normal anonymous delegate would look like this: di.CheckExpiration += delegate() { return true; }; But, [...]

Categories: Agile Programming | Computer Humor | Computers | CSharp | Dot Net | Emerald Software Group | Humor | Onboarding | Patrick Caldwells Blog | PHP | Programming | Project Management | Service Oriented Architecture | SOA | SQL Server | Technology | Web Development | Web Services | Windows Programming