Modernising Legacy SAS SCL / AF Applications

Before SAS Studio, and even EG (but after display manager), there was a desktop application used exclusively for accessing SAS. It was known as Base SAS, and within it there was an application development facility known as SAS/AF. This enabled point and click...

ERROR: Expected a comment or processing instruction.

Whilst creating a new macro for the Boemska macrocore library (mm_adduser2group) I received in my log: ERROR: Expected a comment or processing instruction. The issue? Malformed XML (of course). I’d forgotten to add the <Metadata> tags. The correct code...
Stackoverflow hits 10,000 SAS questions!

Stackoverflow hits 10,000 SAS questions!

If you have a question about SAS – one that fits the definition of a good question – stackoverflow (SO) is a fantastic place to ask!  There is an active community, that cares about giving the best answers to your programming questions, often within...

Find MIN / MAX of character variables in sql

It is perfectly valid to use min() as a summary function on character values in proc sql, eg as follows: proc sql; create table test as   select min(name) as minval   from sashelp.class; This is not so, however, when using in an inline context: proc sql; create table...
Launching SMC on Mac OS over SSH with X11

Launching SMC on Mac OS over SSH with X11

As an avid developer of SAS Stored Process Web Applications, the Macbook Pro is my development machine of choice.  Since building a macro to programmatically create STPs, I’ve had few reasons to launch a VM to use client tools – but today I actually...