What about a book on WordPress development?
Here's something that I would really appreciate: a book on code cutting for WordPress customisation and extensions. Having the Codex is all very fine, but having a dead tree compendium that you can peruse at your leisure is a definite bonus. If there was a way to get the Codex on PDF and print it all off for easier reading, that would be progress. Though I believe that a publisher did plan to bring to the market something like what I want, the author and publisher parted company, a pity. It would be great to see something like Apress' Pro Drupal Development for WordPress. What about it, Automattic folks?
On Blogrolling.com
I was ambling around the web and came across a website that, while it appeared to be a blog, isn't one in the vein of that to which we are accustomed. It does, however, have a blogroll and that is where Blogrolling.com comes into this piece. Blogrolls are very much a feature of the blogging (WordPress calls them that anyway) world and act as a repository of useful links relevant to the subject of the blog. I also use them as a bookmarking station for myself and a way to return the favour when someone links to my blog. For a blogroll, you generally need a database sitting behind in the background, or you end up creating a list of links in (X)HTML.
Blogrolling.com offers another option: placing your links at an external website and including them on your webpages, using a piece of code to pull in the information. RSS, JavaScript and PHP are among the methods on offer from Blogrolling.com; I used PHP when I gave the service a whirl on one of my offline blogs and that really does give you a lot of customising power over and above using CSS. That's not to say that there aren't customisation functions on offer from Blogrolling.com, I found a few of these distinctly useful: ordering of links in a blogroll is just one. When it comes to categorising your links, you don't get the category option, but you do get to create as many blogrolls as you want, so there is a workaround; moving links from one blogroll to another is mouse intensive but straightforward. Also, because you are reading each blogroll in turn, you can order the categories as you want them. With WordPress' category approach, ordering categories involves widgets and plugins or getting your hands dirty with some code cutting. All in all, Blogrolling.com seems to offer an intriguing and useful service.
Checking up on SAS system option settings
The usual way to check up on your SAS system option settings is to do one of the following:
- Through the menus: Tools>Options>System...
- Entering
optionsat the command line PROC OPTIONS
There is another way, and that is to look at the relevant dictionary table, SASHELP.VOPTION (you can also call it DICTIONARY.OPTIONS in SQL). That has the added advantage that you check the values programmatically and extract them into macro variables, a useful functionality when you need to change and reset values. Yes, options resetting can be done with a bare OPTIONS statement (OPTIONS;) but there are times when it's like using a sledgehammer to crack a nut. Code using the dictionary table allows a much finer level of control and does not reset all the options to their defaults like the OPTIONS statement. Setting all options back to their default values is clearly not desirable where specific options need to be retained; I remember line and page size settings changing because of this, so the dictionary table approach has a lot going for it.
A throwback to the past: an appearance of MACROGEN
Recently, I was reviewing a log of a program being run by SAS 9.1.3 on a Solaris system and spotted lines like the following:
MACROGEN(MACRO1): OPTIONS NOMPRINT NOMPRINTNEST
NOTE: PROCEDURE DISPLAY used (Total process time):
real time 0.73 seconds
cpu time 0.50 seconds
MPRINT(MACRO1): SOURCE SOURCE2 NOTES;
The appearance of the word MACROGEN made me wonder if there was another system option that I had missed. A quick search of the SAS website threw up a support note that shed some light on the situation. Apparently, MACROGEN is the SAS v5 forbear of today's MPRINT, MLOGIC, and SYMBOLGEN options and would seem to be obsolete in these days. Having started programming SAS in the days of version 6, I had missed out on MACROGEN and so used its replacements instead, hence my never coming across the option. Quite what it's doing showing up in a SAS 9 log is another story: and there I was thinking that SAS 9 was the result of a full rewrite... Now, I am not so sure, but at least I know what MACROGEN is if someone ever takes the time to ask me.
Terminology for larger and larger disk drive data volumes
When I started into the world of computing at university, 200-300 MB hard drives were the norm for PC's. My own first PC had what was then thought a sizeable 1.6 GB disk, only for things to increase in size since then. Now, I have access to several hundred gigabytes of storage at home, while we are now seeing 1TB offerings for the PC market.
Terabyte storage has been the preserve of the server market, but given the disk sizes that are available now, even larger units are needed to describe the sizes of data volumes, ones that I haven't seen before. So here goes:
|
Unit |
Number of bytes |
Number of bytes |
Number of bytes |
|
petabyte |
1024 TB |
2**50 |
10**15 |
|
exabyte |
1024 PB |
2**60 |
10**18 |
|
zettabyte |
1024 EB |
2**70 |
10**21 |
|
yottabyte |
1024 ZB |
2**80 |
10**24 |
* Binary measurements are used by operating systems like Windows and Linux, while decimal ones are used by hard drive manufacturers
While I know that the above strays into the realms of esoterica, the way that things have been going may mean that we are talking about petabytes before very long. As it so happens, HP recently mentioned zettabytes when talking about its range of UNIX servers and I needed to go looking up what it meant...
Porting SAS files to other platforms and versions
SAS uses its transport file format to port files between operating and, where the need arises, different software versions. As with many things, there is more than one method to create these transport files: PROC CPORT/CIMPORT and PROC COPY with the XPORT engine. The former method is for within version transfer of SAS files between different operating systems (UNIX to Windows, for instance) and the latter is for cross-version transfer (SAS9 to SAS 8, for example). SAS Institute has a page devoted to this subject which may share more details.