Recent posts

Are you going to PhUSE in Edinburgh? I’m presenting there!

Loading

PhUSE is being held in the Edinburgh International Conference Centre (EICC) in Edinburgh this year from Sunday 8th to Wednesday 11th October 2017, and I’ll be presenting “Making Graphs Easier to Validate – The Benefits of ODS Graphics” in the Data Visualization stream on the Monday afternoon at 1500hr.

PhUSE is now a global conference for the pharmaceutical software community, and there will be 600+ attendees in the following streams:
– Analytics & Statistics
– Application Development
– Coding Tips & Tricks
– Data Standards & Governance
– Data Handling
– Data Visualisation
– Industry Starters
– Management
– Professional Development & Training
– Posters
– Regulatory
– Real-world Evidence
– Software Demonstrations
– Standards Implementation
– Trends & Technology
– Hands-on Workshops
– University Day

CK Clinical will be running a competition (I think it will be Connect4), and one of the prizes will be a copy of my recent book “SAS Programming and Data Visualization Techniques: A Power User’s Guide”. Visit Stand 37 in the Exhibitors Area to get a chance to win a copy.

I’m also planning my annual beer-tasting evening on the Tuesday during the conference at a local venue. Unfortunately attendance will be limited to the first 20 attendees to confirm interest with me at the conference itself, so talk to me early if you’d like to attend!

Hope to see you there.

I still don’t believe it, but I won a SAS Award!

Loading

SAS Lifetime Achievement Award
This is a copy of the slide from SAS Forum UK 2017. My thanks go to SAS UK for their permission to reproduce it.

My university degrees were in Chemistry, but when I tried to find my first job there were none in Chemistry, so, as I’d developed an interest in computing, I decided to move into Information Technology instead. I have never really considered my jobs to be work, even to the present day, but more like a paid hobby.

I first encountered SAS software (version 79.5) in 1981 while working as a mainframe systems programmer at the University of London Computer Centre. Not long after that I was the SAS Representative at Prudential Assurance in London installing SAS on their mainframes, and making myself known to SAS UK by asking their Technical Support question after question about a wide range of SAS features.

In September 1992, 25 years ago, I went freelance, formed my own SAS software consultancy, Holland Numerics Limited, and started work on the first of two SAS contracts in Belgium. Since then I have also worked with, and provided training for, SAS-using companies in the UK, Netherlands, Germany, France, Switzerland, Spain and the USA. As a permanent employee I was never allowed to attend conferences, so I’ve made the most of my freelance status to attend at least one conference every year since 1993, and have presented SAS-related papers at many international conferences since 1995 too. My first paper was presented at SeUGI in Stockholm.

I discovered social media in 2005 when I registered on LinkedIn, but my social media activities really took off in 2008 when I joined Squidoo, and then Twitter, to advertise my first SAS-related book, “Saving Time and Money Using SAS” published by SAS Press. Since then I’ve become active on a number of sites answering SAS-related questions and advertising more of my books. The web sites have included LinkedIn Groups, SASProfessionals.Net, sasCommunity.org, Google+ Communities, SAS Customer Support Communities, BeBee, and now WordPress on this site.

Charles Senabulya presenting me with the award. My thanks go to SAS UK for their permission to reproduce it.

So why do I still not believe that I’ve won a SAS award? I was sent an email the previous week asking if I wanted to attend the Awards Dinner at SAS Forum UK, as I’d been nominated for an award, but not that I’d actually won one, or even which award it was. Everyone from SAS UK I’d met from when I arrived at the conference in Birmingham had been very welcoming, but that certainly wasn’t unusual. Even the description of me before my name was finally revealed referred to me presenting on Analytics at conferences didn’t seem to fit either (until someone later explained to me that SAS staff generally include graphics in Analytics!). Even stepping onto the stage to receive my award felt like I was part of an elaborate hoax, but the warmth of Laurie Miles and Charles Senabulya soon removed that thought from my mind, and I felt extremely honoured to be there and receiving the SAS Lifetime Achievement Award from friends I admired.

Back at my seat I sent a message to my wife Angela to tell her about it. She replied: “Does that mean you can retire as they don’t expect you to do anything else”. Remember at the top of this post I called my job a paid hobby. Some people retire so they’ll have more time to spend on their hobbies, but I’m not sure it is possible to retire from a hobby!!

 

 

The SAS Forum UK 2017 Book Draw Winner was … Peter Lowes

Loading

Peter Lowes receiving his book prize at SAS Forum UK 2017
Peter Lowes receiving his book prize at SAS Forum UK 2017

Congratulations to Peter Lowes from BusinessData Partners, who won a copy of my latest book, “SAS Programming and Data Visualization Techniques”. Thank you also to all the SAS Forum UK 2017 attendees who entered the book prize draw, but didn’t win this time. I hope you will try again at another conference where I’ll be holding a book prize draw in the future.

Are you going to SAS Forum UK 2017 in Birmingham? I’m presenting there!

Loading

SAS Forum UK 2017 is being held in the Vox Conference Centre near the Birmingham NEC again this year from Tuesday 26th to Wednesday 27th September 2017, and I’ll be presenting “Making Graphs Easier to Validate – The Benefits of ODS Graphics” at 1130hr in the Tech Tips stream on the Tuesday.

It will not a very big conference (although last year there were 650 attendees spread over the 2 days), as not everyone attends both days, but it will lean heavily towards techie topics again. Those looking to take certification exams will be able to do so during Tuesday, Tuesday also includes streams for “Expert services for: Learning & Academia”, “Expert services for: Consulting & Premium Support”, “Tech Tips” and “Super Demos”, and the Wednesday will include streams for “Customer Stories”, “SAS Presents”, “Technical Insights” and more “Super Demos”. See the SAS Forum UK 2017 web site for more details.

I will be running a prize draw again for you to win a copy of my recent book “SAS Programming and Data Visualization Techniques: A Power User’s Guide”. Just drop in a business card or fill out a blank card at the stand to get a chance to win a copy.

Hope to see you there.

Would you like to see a brand new issue 56 of VIEWS News soon?

Loading

The Winter 2011 issue of VIEWS News was the last issue published back in January 2012, but would you like me to publish a brand new issue 56 soon?

Currently there are only 10 subscribers to VIEWS UK, and I would really like to see more. If you would like me to publish a brand new issue 56, then I would need to have at least 100 subscribers before I start work on it. There is no point in me starting work on the new issue unless there are enough expected readers of the new publication.

Please follow the instructions in my recent blog post if you would like to subscribe to VIEWS UK.

Rejoining VIEWS UK (or just joining for the first time)?

Loading

Recently I reported that the VIEWS web site had been closed down, but that the newsletter archive was still available on sasCommunity.org. I have now been able to store the original VIEWS News PDF files on my blog site, which can be accessed via a new VIEWS UK forum. This forum is available on request to all registered blog members, and those with access will be notified of any new content.

Some of the new content will include previously unpublished indexes I used to help me write the Formats, Options & Functions articles in the newsletters, which allowed me to see in a single view which features had already been described and when. I will also be including an authors list soon. All features that could help you find information that is difficult to find using standard searches. I may even try to publish some new issues of VIEWS News soon too!

You might be thinking that, as I had emailed VIEWS members in the past, I could use that email list to include them automatically again. However, this new VIEWS environment has been built on an existing blog site, and, although theoretically I could register all the previous VIEWS members using their email addresses, I don’t know all of their real names and would, therefore, have to guess their new user names, so I don’t think forcing anyone to register on my blog site is at all appropriate. This is the reason I’m asking everyone interested to register themselves instead.

SO, whether you have been a VIEWS member in the past, or not, here is how you can join the new VIEWS UK forum:

  1. If you are not already registered on my blog site, then join via the registration page.
  2. Once you have registered, then email views-uk@hollandnumerics.org.uk, or use the site’s Contact Us link, to say you would like to join the VIEWS UK forum.
  3. I will manually update your blog profile to give you the required configuration and reply to your registered email address as soon as you have access to the new forum. You will then see VIEWS UK in the forum list when you next log into the blog site.

The VIEWS web site has closed down forever!

Loading

Many of you may be asking what is “VIEWS”?

Back in 1998 a group of enthusiastic SAS programmers founded VIEWS – the International SAS Programmer Community, and Andy Radcliffe became the first editor of VIEWS News. The free newsletter delivered hints, tips, news, and features on technologies and techniques to VIEWS members. Articles were written by a balanced mixture of users and consultants – with occasional contributions from SAS staff too. The short, punchy style of VIEWS News made it easy and convenient to read for the busy members of VIEWS. I took over the Editor’s role in 2002, and published it up to the most recent issue in 2011 Q4. Every back-issue of the newsletter can still be downloaded from here, because the newsletter continues to be hosted on sasCommunity.org.

Actually the newsletter has not really died yet, but is in suspended animation until I have time to publish a new issue, but the VIEWS web site and email addresses have now expired, so I have created a new contact email address for VIEWS at views-uk@hollandnumerics.org.uk, which will accept membership requests and newsletter content, just in case. More details can be found in this post: Rejoining VIEWS UK (or just joining for the first time)?.

Looking for a SAS job or wanting to promote your SAS recruitment agency?

Loading

I’ve recently opened up new opportunities for two groups of registered members:

  • Recruiters wanting to promote their agencies.
  • SAS programmers looking for their next SAS job.

All of the forums in [Holland Numerics: Blog and Forums] now allow messages to be sent by registered members directly and privately to anyone posting a topic in a forum. This means that, if you post a new topic in the SAS Skills Discussion Forum (which is accessible to all registered members) describing your recruitment agency, or your own SAS programming skills, other registered members will be able to send you messages. The facility also removes the necessity to reveal your phone number or email address to anyone you don’t need to, as the messages will be collected on the blog site, and you will be notified by email of new messages there, and any forum topic will display a list of your own messages at the bottom of the web page.

However, please think carefully about what you include in your topic, as your agency profile, or your SAS job prospects, could be positively or negatively affected by what you write!

Note that there may also be a delay in the topic appearing if you are writing your first topic in the forum, as I will have to approve it. This is intended to protect you from spam postings. But as soon as it is visible to all registered members, then a [Send a Message] link will be seen in the topic under your name.

New app updates available in Google Play and Amazon Appstore

Loading

Android 8.0 is coming very soon, so I have started preparing my apps for this new platform, while still maintaining the same functionality for Android versions back to 2.3.3 (Gingerbread). However, I will not be further updating my Chrome apps, as the Chrome Web Store has stopped accepting new apps, and is likely to stop hosting existing apps soon too.

The first paid-for app to be updated for Android 8.0, including 6 more questions, is:

and the 2 free apps, including samples from the other apps:

Update to more of my Android apps will follow shortly.

This is quick reminder that I still have the following apps available in Google Play:

  • Data Steps: Do This in SAS?
  • SQL: Do This in SAS?
  • Graphs: Do This in SAS?
  • Platforms: Do This in SAS?
  • EG: Do This in SAS?
  • Macros: Do This in SAS?
  • Efficiency: Do This in SAS?
  • Studio: Do This in SAS?

These apps are also available for Android users in the Amazon Appstore:

  • Data Steps: How Do You Do This in SAS?
  • SQL: How Do You Do This in SAS?
  • Graphs: How Do You Do This in SAS?
  • Platforms: How Do You Do This in SAS?
  • EG: How Do You Do This in SAS?
  • Macros: How Do You Do This in SAS?
  • Efficiency: How Do You Do This in SAS?
  • Studio: How Do You Do This in SAS?

There are also free apps, which you can find by searching in each app store:

  • How Do You Do This in SAS? (Google Play and Amazon Appstore)
  • Consulting: Do This in SAS? (Google Play)
  • Consulting: How Do You Do This in SAS? (Amazon Appstore)

All these apps are updated frequently, and the paid-for apps are priced at less than US$3 based on the number of questions that are answered, and within the apps you can ask new questions that can be added in future updates. It doesn’t matter which platform you use, as the same content is present in the corresponding Google Play and Amazon Appstore apps.

Non-SAS Debugging That Uses My Preferred SAS Debugging Techniques

Loading

The morale of this story is that, once you have proved all the likely reasons for the failure are incorrect, the only remaining reason, however improbable, is the cause!

Note that, as you are reading this post, the problem described below has definitely been resolved!

Over the last few weeks I have been trying to configure my new Linux server to include RAID1 (mirrored) drives, but, while it should only have caused brief service outages for reboots, some of the down times have been rather too long. I have now decided to implement regular copies of the drives instead.

The most recent outage was somewhat baffling, as my attempt to include the RAID1 drives had failed again, but I’d followed my well-practised back out procedure. Unfortunately the server hardware appeared to be up and running, I could access both servers on the device using local IP addresses, but only one, the Apache server and not the WordPress server, using the hollandnumerics.org.uk web address.

A systematic approach to resolving the problem would be needed:

  1. Check the server monitors to make sure the software was running:
    • Both servers were running.
      • The problem was not a failure to start the server software on reboot.
  2. Open the web pages for each server using their local IP addresses:
    • The web pages for both servers opened.
      • Both servers were up and accepting connections.
  3. Open the web pages for each server using their web addresses:
    • The Apache server pages opened, but the WordPress server pages timed out.
      • Maybe a problem with the WordPress port?
  4. Check the WordPress server access log for my attempts to open web pages:
    • Only local addresses were recorded as connecting to WordPress.
      • Maybe a problem with the WordPress port in the router?
  5. Check the event log on the router:
    • All connections to the WordPress port are being blocked.
      • Maybe a fault in the Port Forwarding configuration in the router?
  6. Check the Port Forwarding configuration in the router:
    • All expected entries present.
      • Maybe a fault has developed in the supplied entry used with the WordPress port?
  7. Replace the supplied WordPress entry with a user-modified copy of the working Apache entry, and then open web pages for the WordPress server using their web addresses:
    • The web pages for the WordPress server opened successfully.
      • Problem resolved!

The key actions used to resolve this problem have much in common with those actions listed in my post “How Do You Successfully Debug Your Program?“:

  • Work through the problem testing systematically:
    • Make changes one at a time to be certain you know which one fixes the problem, and also allows you to back out the update if it doesn’t.
    • Test after each change.
    • Review the results from every test.
  • Consider the likely and the unlikely causes of the problem.
  • Most importantly: Read the logs!

Premium SAS Support for Commercial Clients

Loading

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?

Loading

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.