Maybe my last report from a PhUSE event: Beerse Single Day Event 2017

Loading

Last month I talked about the presentation “The Art of Defensive Programming – Coping with Unseen Data” I was doing at the PhUSE Single Day Event (SDE) in Beerse, Belgium. The event was held yesterday on 28 November 2017 at the Janssen EMEA site, where I’d started my SAS contracting activities 25 years earlier. This was the 6th SDE I’d presented at in Belgium, and the 3rd on this site, so I was fairly familiar with the venue and knew many of the attendees too.

As at recent conference events I included a free draw for a copy of my latest book “SAS Programming and Data Visualization Techniques“. The attendance at the SDE was around 80 and not just coming from Belgium, with 21 of those entered the draw, and the winner was Lieke Gijsbers from OCS Consulting in the Netherlands (see me presenting her with my book in the photo).

You are probably now asking why this will be my last report from a PhUSE event? Over the last year or so I have reviewed the benefits I get from presenting at conferences and how much it costs me to attend them. Consultants spend a lot of time doing Cost-Benefit analyses and PhUSE events seemed to be moving lower down the list. The larger companies can easily afford to send multiple delegates, but a small percentage of their staff, to PhUSE events because of economies of scale. Unfortunately, Holland Numerics is not a large company, so we have to send 100% of our staff (me!). By presenting we get a 33% reduction on the full conference fee, but we lose 100% of our income during the conference and SDE days, and the same is true for every other independent consultant attending PhUSE. Next year I was hoping to combine some of my training courses with PhUSE SDE and PhUSE Connect (the new name for the annual conference!) events, but none had come to fruition.

I am extremely happy with the records I have created as a mere SAS programmer (and not a Statistical Programmer!) during my membership of PhUSE:

  1. I have attended 13 consecutive PhUSE annual conferences since the first was held in Heidelberg in 2005.
  2. I have presented at least 1 paper in every PhUSE annual conference I have attended, including several papers I had brought with me “just in case” to fill in for short-notice withdrawals.
  3. I have presented in 18 SDEs since they started in 2008, including 6 in Belgium, 4 in the UK, 3 in Germany, 2 in Switzerland and Denmark, and 1 in the Netherlands.
  4. Since the PhUSE annual conference was held in Basel in 2009, I have held a beer-tasting evening near to the conference. That is a total of 9 beer-tasting evenings! It started because I wanted to taste the local beers, I preferred to drink beer with friends, and it seemed to work out just fine, because I had no complaints, and I added many new beers to my beer-tasting database. In fact I had to stop Yvonne Moores, the 2011 Brighton conference chair, from putting a note in the daily conference news, and it was still over-subscribed using just word-of-mouth! The largest evening attendance was actually 24 in Budapest, when, unable to find a Hungarian beer establishment, I opted instead for the “Belgian Abbey Restaurant”!
  5. Last, but not least, no-one has enjoyed PhUSE events more than me!

I would like to thank PhUSE for allowing me to present my SAS-related papers at their conferences and SDEs, but I will not be renewing my membership of the PhUSE Society as usual in January.

Are you interested in SAS macros or SAS efficiency? I’ve updated both apps in Google Play and Amazon Appstore

Loading

Are you interested in SAS macros or SAS programming efficiency? I’ve updated my Android apps focusing on both these topics in Google Play and Amazon Appstore.

Are you going to the PhUSE Belgium SDE (Single Day Event) in Beerse? I’m presenting there!

Loading

The PhUSE Belgium SDE is being held at Janssen Pharmaceutica near Beerse again on Tuesday 28th November 2017, where I’ll be presenting “The Art of Defensive Programming – Coping with Unseen Data” at 1600hr.

I hoping to be able to run a free prize draw there 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 event to get a chance to win a copy.

I’m looking forward to revisiting the site where I worked on my very first SAS contract in 1992, and maybe tasting some interesting Belgian beers too!

Hope to see you there.

Are you going to SAS Global Forum in Denver? I’m presenting there!

Loading

SAS Global Forum is being held in Denver in 2018 from Sunday 8th to Wednesday 11th April, and I’ve been invited to present “The Art of Defensive Programming: Coping with Unseen Data” there.

I’m also hoping to run another prize draw again for you to win a copy of my latest 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 ODS Graphics stand to get a chance to win a copy.

Note, however, that at SASGF18 you will only be able to read a copy of the book contents at the stand, as during SASGF17 someone took away my well-used sample copy. So, if you still want to browse the sample, then you’ll have to find me among the expected 5,000+ attendees! 🙁

Hope to see you there.

There is a new SAS Training Course list for 2017Q4

Loading

There is now a new Training Course list for 2017Q4, which can be downloaded from here. The courses available in 2016 and early 2017 are still there, but had added a new course to the list:

  • ½ day Defensive SAS Programming training

I’m also developing some new SAS-related courses, based on the SAS course, which you can accelerate to production status by requesting them:

  • ½ day SAS Data Step training
  • ½ day SAS PROC SQL training
  • ½ day SAS macros training

Your interest in any of these courses will result in them being developed as priority tasks!

My blog and forums are open for business in their new premises!

Loading

On 28 March 2017 I completed the migration of my blog and forums to a new server. You will not have to do anything different to access the new server, as it is all managed transparently by my router.

The new environment is protected by an uninterruptible power supply, and has an increase in its available disk space. I’m hoping that the chance of future interruptions has been dramatically reduced.

Alongside the blog are 2 forums where you can ask questions:

(1) The SAS Skills Discussion Forum is included when you register for the Free membership, and is where you can ask questions about SAS skills, but not SAS coding problems.

(2) The SAS Programming Forum, which has a very small subscription cost, is where you can ask SAS coding questions, including those from homework and interviews. This forum also includes a growing SAS course in the form of small topics. There are currently 3 main sections to the SAS course: Data Steps, PROC SQL and macros, but more are being developed.

What happened in Orlando?

Loading

As usual I ran a prize draw this year at SAS Global Forum in Orlando for a copy of my latest book, which was won by Matthew Hoolsema from Carnegie Mellon University from 49 draw entries.

Matthew Hoolsema won a copy of my book in Orlando

The sad part was that my well-thumbed sample copy, which allowed everyone to see what was in the book, was taken during the conference, so I will have to replace it with another brand new copy before my next free draw, instead of using that new copy as a prize. I must admit that I find it extremely annoying when a company can pay $100s to $1,000s for the conference registration, travel and accommodation, but nothing for a $40 book!

The conference’s Kick-Back party was held at Disney Hollywood Studios at the end of the 2nd full day of the conference after the public had left. I’d last visited this park in 1999, when it was called MGM Studios. Some of the “exciting” rides, which I have never enjoyed, were open, and my favourite show from 1999, “Indiana Jones Stunt Spectacular”, was still there, but disappointingly closed for the evening! Fortunately, unlike previous Kick-Back parties, the noise levels were low enough to permit normal conversations, so my voice was still OK the following morning for my presentation. You may remember that in March I said that I was presenting “Making Validation of Graphs Easier: The Benefits of ODS Graphics” at the conference on 5 April 2017. The video recording of my presentation can now be viewed on the SAS web site, along with several of the other presentations, and my paper, slides and sample code can be downloaded from this blog site.

Next year SAS Global Forum will be in Denver, Colorado. I’ve never been there before, so I’m looking for some suitable topics for new presentations. Any suggestions?

Why don’t SAS development teams talk to each other?

Loading

We all know that SAS develops its software in separate teams, but it can be really annoying when it becomes apparent that several associated teams haven’t planned together how a SAS procedure will work.

I’m going to take as an example PROC IMPORT, which is part of Base SAS, but is also included in SAS/ACCESS. When you run the following program all the variables created begin with VAR, i.e. VAR1, VAR2, VAR3, VAR4, VAR5, etc., and this would also be true for DBMS=TAB and DLM:

PROC IMPORT FILE = "test.csv" DBMS = CSV REPLACE;
  GETNAMES = NO;
RUN;

However, using similar PROC IMPORT code for DBMS=EXCEL, in SAS/ACCESS for PC Files, will create variables beginning with F, i.e. F1, F2, F3, F4, F5, etc.:

PROC IMPORT FILE = "test.xls" DBMS = EXCEL REPLACE;
  GETNAMES = NO;
RUN;

More shocking though is using PROC IMPORT code for DBMS=XLS or XLSX in UNIX or Windows, in SAS/ACCESS for PC Files, as this will create variables with no prefix at all, i.e. A, B, C, D, E, etc.:

PROC IMPORT FILE = "test.xls" DBMS = XLS REPLACE;
  GETNAMES = NO;
RUN;

This inconsistency even extends to using GETNAMES = YES too when there are multiple columns with the same label.

If you want to import a CSV file, instead of an Excel file, or indeed import an Excel file in UNIX, then the subsequent processing step will have to be updated to use the new variable names (annoying!). Why can’t the procedure be consistent, or, at least, have a parameter, like PREFIX=, that allows users to choose the prefix?

Back in SAS 6 there were monumental problems caused by each SAS procedure having to manage their own output destinations, and each one doing it in a slightly different way, so ODS (Output Delivery System) was introduced in SAS 7 to make the output interface separate from the procedures. SAS now need to develop standards for parameters and defaults, just like they did for output!

To vote for this to be included in the next SASware Ballot just click here and vote up the idea!

Warning: you may need to use a desktop browser to vote up the idea! 🙁

Do you have any examples of similar inconsistencies in SAS?

My published Training Course list is for companies, the SAS course is for individuals

Loading

I published a list of available training courses for 2017 in January this year, but this course list is actually intended for companies, and not for individuals, as the courses have a fixed price no matter how many people attend them. All the training materials are personalised and supplied in digital form, and so can be duplicated for that client to re-use internally.

Individuals looking for SAS training should subscribe to the SAS course in the SAS Programming Forum instead, which is specifically targeted at individual SAS learners and programmers, and is priced as a low-cost monthly subscription. However, the SAS Programming Forum is not just there for the SAS course, but can be used to get answers to any SAS-related questions you may have too, even if they are from homework or interview questions.

See “Making Graphs Easier to Validate – The Benefits of ODS Graphics” at SAS Global Forum in Orlando

Loading

Are you attending SAS Global Forum in April this year? If you are then you have the opportunity to see me present “Making Graphs Easier to Validate – The Benefits of ODS Graphics” on Wednesday 5 April from 1100-1150hr. I’ll be in the Americas Seminar Room on Dolphin Level 5 at the Walt Disney World Swan and Dolphin Resort in Orlando, Florida. In this presentation I’ll be talking about how to make your graphs easier to validate by using ODS Graphics and a lot of common sense!

However, maybe you are not going to be in Orlando in April, but you and your colleagues would still like to see me present on this topic. What can you do about that? Well it should still be possible, because I’m currently developing a 1/2 day training session which I’m calling “Defensive SAS Programming”. This will include “Making Graphs Easier to Validate – The Benefits of ODS Graphics”, but also “Writing Reusable Macros” and another new topic “The Art of Defensive Programming: How to Cope with Unseen Data”.

You’ll see from the link above that I don’t have to be in the room with you to present, therefore I could present through your company’s video-conferencing system from my own office at home to your conference room wherever you are instead. The “Available” and “Coming Soon” training sessions can all be booked in advance, but the “Coming Soon” training sessions will be developed specifically for you, if you are the first to request them.

Going back to “Making Graphs Easier to Validate – The Benefits of ODS Graphics”, this presentation and paper will be available for download from the Product Shop shortly after it is presented for the first time, but may also be available from the SAS Global Forum site before the conference too!

I’m looking forward to SAS Global Forum, and hope to see you there, or elsewhere in the near future!

There is now a new Training Course list for 2017

Loading

There is now a new Training Course list for 2017, which can be downloaded from here. The courses available in 2016 are still there, but I’m developing some new SAS-related courses, based on the SAS course, which you can accelerate to production status by requesting them:

  • ½ day SAS Data Step training
  • ½ day SAS PROC SQL training
  • ½ day SAS macros training
  • ½ day Defensive SAS Programming training

Your interest in any of these courses will result in them being developed as priority tasks!

Fast – Cheap – Good – Pick any 2!

Loading

Fast - Cheap - GoodI’m sure you’ve seen this sign many times before, but it is a very important statement!

At Holland Numerics we strive to provide good service at all times, so we will never even consider providing fast service cheap, because it will not be good! That said, we can provide good service fast, but it won’t be cheap, and good service cheap, but it won’t be fast.

Sometimes we have to sit back and consider Oscar Wilde’s view (from his play “Lady Windemere’s Fan”) that at his point in time a cynic, but now everyone, knows the price of everything, and the value of nothing! This is particularly relevant for consultancies like Holland Numerics trying to determine appropriate pricing for consulting services.

That is why the SAS Programming Forum is accessed for a small subscription, not because we need it to be an income stream, but because we want to make certain that subscribers really want to access the valuable SAS-related information I have added over several months in that forum. I like to think this is perfectly exemplified by another quote, this time from my all-time favourite novel “Time Enough for Love” by Robert A Heinlein:

“Anything free is worth what you pay for it.”