Premium SAS Support for Commercial Clients

Free membership gives you access to the SAS Skills Discussion Forum for non-programming questions about SAS. Programming and Recruiter memberships, which require monthly low-cost subscriptions, give you access to the same forum and to the SAS Programming Forum, where you can ask SAS programming questions. However, all questions and answers are visible to all members with access to each forum, which may not be quite what you are looking for.

To fulfill any need for confidential correspondence you may have seen a recent addition to the blog menu. The Premium SAS help desk service, called [sas.answers @ Holland Numerics] (which has actually been around since 2002), is different. It does not require even Free membership of the blog, but it does require a separate subscription payable using PayPal. What makes this service special is that it provides an in-house web-based interface for you to ask questions, which automatically generates an SMS message and an email to Holland Numerics, with a copy of the email sent back to you too. There is also a service level agreement to provide an answer to every question within 48 hours, and that answer will be privately sent directly back to the sending subscriber! Please note that, if a monthly subscription is not necessary, then a single question can be asked instead for a reduced fee.

Full details of the [sas.answers @ Holland Numerics] help desk service can be found here.

How Do You Successfully Debug Your Program?

For a long while now I have been reading discussions on a range of social media platforms where programmers have been asking for help with programs that don’t behave as expected. Many of these programmers have certificates relating to the relevant programming languages, yet appear to have never been taught how to debug a program. To me the ability to resolve issues in a program is the most vital skill a programmer of every programming languages has to possess, otherwise they simply cannot call themselves a “programmer” in that language. Without this skill I would only call them a “code writer”.

So is this ability to resolve issues in a program a difficult skill to learn? I would say no, because it just involves the following a set of simple instructions, with a little observation and logic. Note that these instructions are not at all specific to SAS programming, or indeed to any other programming language:

  1. Talk through the logic of the program with a colleague. Quite often you can spot potential problems yourself while trying to explain the logic to another programmer.
  2. Run the program, and then check the log for error and warning messages, as there should be none!
  3. Look for unexpected empty intermediate data sets in the log.
  4. Test your code with small data subsets first, so that you can follow the processing path of individual data records. These subsets ought to be special sample records which will exercise as much of the logic within the program as possible.
  5. Print out intermediate data sets, especially if these are not kept at the end of the program.
  6. Print out intermediate data values at different places in the data steps to show the effect of different sections of the code.
  7. Fix any issues in the program and then start again from step #2 until no more problems are found.
  8. Remove, or at least comment out, any additional debugging code used.

However, at this point I must emphasize that not all programming problems can be resolved using these steps, but these steps should be tried first before asking for help.

So how should help be requested? By following steps 1-6 above you will have already collected a lot of information that could be vital for another programmer to resolve your problem, so don’t ignore any of it, remembering that any particular bit of information may be the most important bit required to solve your problem. Therefore, most, if not all, of the following information should be included in every request for assistance:

  • A description of the expected output from your program.
  • The reason you chose to write the program in this way.
  • All of the program code, because what you think is the cause of any problems may not be the only cause.
  • All of the sample data records, or the real data records if they are causing problems and can be posted.
  • The warning and error messages from the log (at the very least!).

Comments can be made by registered members in a copy of this post in the SAS Skills Discussion Forum.

Have You Forgotten Your Password?

The registration page on my blog site encourages new members to create at least a “Medium” strength password. This is good for the security of their personal information, but not so good if they follow the general security advice by not writing that password on a sticky note and attaching it to their computer screen or tablet. Unfortunately, no-one has a perfect memory, and the Password Reset functionality in WordPress is dependent on a number of different factors too, including the site’s email setup, the email address used by the site, the rules of the email server used by the site, and the rules used by the member’s email server. Actually it is quite astonishing that it works at all, which is why I’d like to make you all aware of a more reliable method, at least as a last resort, in case you ever forget your password:

  1. Go to my blog site at http://blog.hollandnumerics.org.uk and click on the [Password Reset] link in the menu (under [Member Login]).
  2. Type in the email address you used when you registered on my blog site, or the most recently email address you’ve registered since joining, and click the [RESET PASSWORD] button.
  3. You should receive an email containing a link to the password reset page within a few minutes, and using that link should allow you to change your password to something you can remember.
  4. If you don’t receive an email within a few minutes, or the link in the email doesn’t seem to work, then you can contact the site administrator (that’s me!) by using the [Contact us] link, remembering to include the same email address you used on the site.
  5. I will send you back a freshly generated and fiendishly strong password by email with instructions to use it immediately to log in.
  6. Once you have logged in use the [Edit Profile] link in the menu (under [Member Login]) to update your password to something you can remember.

Note that I can check whether it really is you trying to update your password, and it will only be sent back to your registered email address. Note also that I’m based in the UK, so don’t expect a lightning fast response when it is 3am GMT. In return I will try to send you your new password at a reasonable time of the day for you too.

Please note that if you just want to change your password, but can still log in, starting at step #6 will work just fine for you!