You are here Blog
Sunday, February 05, 2012
Author: Robert Thomas Created: 7/21/2010 9:47 PM
This is the blog of Bob Thomas, our President & CEO. The blog contains various thoughts from business to technology.

I'm proud to announce the launch of our Early Adopter's Program (EAP) for Capriccio Fuzion.

Capriccio Fuzion is an innovative and cost-effective solution which tackles common business problems faced on a daily basis by companies of all sizes.  Fuzion brings together functional areas such as Human Resources, Timekeeping, Customer Relationship Management, Project Management and Strategic Planning into one integrated system.  Fuzion's ease-of-use and highly customizable interface allows you to increase communication, productivity and focus to bring your organization to new heights.

We'll be running the EAP, which offers a 40% discount, for a limited time beginning today.  If you would like a personalized tour of the software or information about the EAP, please Click Here to fill out our Web Contact form.

Construction on our new offices is finally nearing an end.  We will be hosting the Open House on Thursday, September 25th from 1200-1900.  We are hoping this time-frame will provide scheduling flexibility to as many guests as possible.  If guests wish to attend during the 1200-1400 time-frame, lunch will be provided.

Invitations will be going out soon.  Save the date!

We are preparing to launch our largest software undertaking to date (still top secret) and I have been focusing on performance tuning for the last week or so in preparation for the public release.  Our new application has a huge list of features and benefits, but if the application is slow we fail.  I downloaded and installed AutomatedQA's QATime demo and have been using it to gather results on our software's performance.

Our new software runs either locally on a corporate LAN or remotely over the Internet using SSL security.  When the application is on the LAN, database calls are very quick and not usually a performance problem.  However, over the Internet these calls become very expensive and take considerably more time to complete.  The goal of my performance profiling was to reduce the number of database calls and optimize the traffic.

When you run our Beta application over the Internet, the slowest screen is the Charge Number screen.  The screen was typically taking about 1 second * the # of charge numbers you had active for your account.  If you had 25 active, it would take 25 seconds to load the screen.  Also, when you had an administrator role and access to all and need to look at everyone's, it then becomes like 110 seconds.  NOT ACCEPTABLE!
So I ran the AutomatedQA Profiler tool on the current production version and gathered my base data.  I made a round of changes, gathered a second set of data and then made a final round of changes and gathered the last set of data.  My clicks were as follows.  Click the ChargeNumber nav button, clear the active filter, and select the All Charge Numbers filter dropdown.  Here are some numbers.

Performance Enhacements

 

Method Base Run #1 Run #2
Total Call  57.68 sec 4.17 sec 3.25 sec
Total Queries 153 32 28

 

Without QATime, I would only be guessing my code changes were actually having a positive effect on our users.  With QATime, I can back up our claims with solid data!

You can click this link to view the product page for QATime.  www.automatedqa.com/products/aqtime/index.asp

More information on the new software product will be released soon.  Stay tuned!

Recently I worked on a project where there was a requirement to query an Oracle Internet Directory (OID) server with a user's certificate subject to verifiy if the user existed in the OID directory and return the username to be used as the credential.  This seemed at first like it would be a simple task using the System.DirectoryServices namespace.  Knowing that Oracle OID was LDAP v3 compliant, I developed a prototype on my local machine that queried an Active Directory domain controller.  Everything worked out nicely.  I then moved the code to my development server and pointed to the Oracle LDAP server.  I kept getting an invalid username/password error.  This was interesting because the LDAP server allowed anonymous browsing and did not need credentials.  I scoured the Internet for answers and found many forum posts of people asking how to do this scenario, but no answers.  I wanted to blog about this in case someone else finds themselves in my situation.  The answer turned out to be pretty simple.  The System.DirectoryServices.Protocols namespace had all the classes I needed to talk to a non-AD generic LDAP server.  Here is a snippet of my final code.

string server = "SERVER";
string dn = "DN";
string searchAttribute = "SA";
string usernameAttribute = "UA";

LdapConnection lcon = new LdapConnection(server);
lcon.AuthType = AuthType.Anonymous;
string[] att = new string[1];
att[0] = usernameAttribute;
string filter = "(" + searchAttribute +"=" + criteria.Cert + ")";
SearchRequest sr = new SearchRequest(dn, filter, SearchScope.Subtree,att);
SearchResponse res = (SearchResponse)lcon.SendRequest(sr);
if (res.Entries != null  && res.Entries.Count > 0)
{
DirectoryAttribute da = res.Entries[0].Attributes[usernameAttribute];
this._name = da.GetValues(typeof(string)).GetValue(0).ToString();
if (_name != string.Empty && _name != "")
{
  _isAuthenticated = true;
}
else
{
  _isAuthenticated = false;
}
}
else
{
_isAuthenticated = false;
}

We are finally moved into the new office and getting settled in quickly.  There are a few construction items to be completed, but overall we are very happy with the results.  Our phone numbers and mailing address remain unchanged.  Invitations to the open house will be forthcoming.

Minimize
Blog Search
Minimize
 
Copyright 2008 by Capriccio Software, Inc. Privacy StatementTerms Of Use Xhtml 1.0 CSS 2.0