6th June 2007
Last night, I tried starting up Oracle's SQL Developer so that I could add a listing of my hillwalking blog posts to my website's site map with a spot of PHP scripting. However, all that I got was something like that which you see below:

I must confess that this one threw me. The solution, though challenging to find (they often are, even with the abilities of Google) was to use a batch file called sqldeveloper.bat
that you can find in the [installation directory]\sqldeveloper\bin
directory. It does start the thing when all else seems to fail and got me up and running again. I did get that blog post listing added to the site map after all; Having more visibility of the MySQL tables was a definite plus point.
5th June 2007
In an earlier post, I wondered about command line management of Windows processes. Well, I have since located the sort of tools that I was after as part of the Windows Sysinternals toolkit. It began as an independent endeavour and continued as such until Microsoft acquired them in 2006. You can find out more about the process utilities here, and the whole Sysinternals suite can be downloaded in a single package.
5th June 2007
When it comes to writing SAS programs, most use the tools that SAS gives us, be it Enterprise Guide, the Enhanced Editor or the Program Editor. While Enterprise Guide can work with UNIX SAS as the processing engine, it is very much a Windows tool and the Enhanced Editor functionality is provided through Windows-only programming (ActiveX, I seem to recall). However, that means that creature comforts are left behind you if you turn to writing SAS code using UNIX SAS; you have only got the good old-fashioned Program Editor supplied by SAS itself. However, there is a trick that you can use to make life more comfortable: SAS does allow you to submit the contents of your paste buffer (or clipboard) using the command SUBMIT BUFFER=DEFAULT
and this can be assigned to a function key for ease of use (I use the same key to clear the log and output screens at the same time). In the Windows, you may need to explicitly copy the code to do this but, in UNIX, merely highlighting a section of code with an editor like NEdit will do the trick and, given that NEdit is reasonably pleasant tool for code cutting (the ability to define its macros with a spot of scripting is a definite plus point), this makes life more comfortable again.
5th June 2007
Here's a possible bugbear with programming using the SAS Display Manager in UNIX, selecting sections of code and running them. In the installations that I have encountered, the mouse selection is not retained, so the code selection cannot be run. There is a fix for this that is not the most obvious. Going to the Preferences dialogue box (Tools > Options > Preferences... from the menu bar) and selecting the Editing tab brings up the screen below:

Ensuring that "Automatically store selection" is switched off, as shown above, will allow one to select and submit sections of code from a SAS program like what is normal practice with Windows SAS. Though it isn't an obvious solution, it does the trick for me.
4th June 2007
The recent woes at Zooomr (mustn't forget that it is spelt with three O's...), have prompted me to ponder photo galleries. My own is a self-hosted affair, with Perl doing the honours of reading and processing data stored in an XML file. It may seem an unsophisticated system, but it has worked well and, apart from the matter of server administration, I am in full control. Yes, there is a development and maintenance overhead, but I enjoy programming and scripting anyway; I just have to find the time for it. If this is not your idea of fun, then using a service like Flickr, Zooomr or Photobucket is attractive so long as things don't go awry as they have for Zooomr and all the bad publicity and user frustration can't have done Zooomr's future prospects any good at all.
3rd June 2007

For now, I still have my eye on Photoshop CS3, and it was with interest that I noticed that Peachpit Press had published a book, entitled Adobe Photoshop CS3: Up to Speed, exploring the changes made from CS2. The plot thickened when I found that I could download as an e-book.
However, it was then that I discovered a major change made to Adobe Reader for its eighth version: it no longer reads what Adobe titles Digital Editions. For that, you need either the previous version or to download the beta version of Adobe Digital Editions (yes, it does rather appear that they couldn't tie up the final release dates), which appears to be a Flash front end to Reader.
As it happens, I am not so convinced by this development: the thing is in essence coloured black and the mouse pointer disappears a lot of the time. Having menus and navigational screen furniture constantly disappearing and reappearing doesn't do much to enhance the reputations of Adobe's user interface designers. While it wouldn't be too bad if you could customise the colours, you can't; a light grey has to be better than black. Its taking over the whole screen when maximised is another irritation, especially when it covers up your task bar and the Alt+Tab shortcut is needed to leave it without having to hit the minimise button.
Yes, it does do the job, but I still find myself hankering after an Adobe Reader style interface and I have no idea why this has been foisted upon us when the previous approach was a perfectly good one. All in all, I have only to say it seems a premature roll-out of the approach. Now, where's Reader 7 when I need it?
1st June 2007
Here are a few UNIX commands that I have recently encountered that help with process management and are particularly useful when jobs are running in the background. Here they are:
nohup
It's short for no hang up and stops termination of a job when a user logs off. Another result is that all console messages being directed to a file called nohup.out
in the directory current to the job being run, or in the user's home directory, where write access to the current working directory is unavailable.
ps
This returns a list of processes, their ID's and their statuses. By default, this is for your own processes, but you can look beyond this with the myriad of options that can be passed. For instance, the -U switch allows you to look at a job for other users while the -f one shows more information than the standard call and this even includes the commands submitted to start the ongoing processes.
kill
The name says it all, and it's far quicker than the rigmarole that you have to endure with the Windows task manager; I wonder if there is a command line approach to process termination on Windows.
30th May 2007
The filename statement's pipe
option allows you to direct the output of operating system commands into SAS for further processing. Usefully, the Windows dir
command (with its /s switch) and the UNIX and Linux equivalent ls
allow you to get a file listing into SAS. For example, here's how you extract the list of files in your UNIX or Linux home directory into SAS:
filename dirlist pipe 'ls ~';
data dirlist;
length filename $200;
infile dirlist length=reclen;
input buffer $varying200. reclen;
run;
Using the ftp
option on the filename statement allows you to get a list of the files in a directory on a remote server, even one with a different operating system to that used on the client (PC or server), very useful for cases where cross-platform systems are involved. Here's some example code:
filename dirlist ftp ' ' ls user='user' host='host' prompt;
data _null_;
length filename $200;
infile dirlist length=reclen;
input buffer $varying200. reclen;
run;
The PROMPT option will cause SAS to ask you for a password, and the null string is where you would otherwise specify the name of a file.
25th May 2007
Furthering my excursions into things related to Google, I have been giving Google Analytics a whirl for my hillwalking and photo gallery website. Aside from the fact that it is updated once a day, it could have enabled me to eject WordPress plug-ins like Popularity Contest and FireStats getting the chop. As it happens, I also have a Google Analytics plugin installed, but a little editing of the blog template that I have developed would get rid of that too.
That’s enough about WordPress plug-ins; let’s return to Google Analytics. It has all the usual stuff: who’s visiting, from where are they coming, what are they using to see your site, etc. In addition, it captures if they are coming back, how long they are staying on the site and how deep they are going. Bounce rate is another term that features heavily: it is when a user only goes to one page and then leaves. With a blog, this unfortunately seems to come out as a high figure and that is ironic given that the blog was meant to promote the online photo gallery; it has very much taken on a life all of its own. There’s more to the information from Google Analytics, and it’s all useful stuff, of which I plan to make good use to improve how my site works.
24th May 2007
This whole Web 2.0 thing is producing an embarrassment of riches for those wanting to share their thoughts on the web without having to go to the effort of developing their own websites from scratch. A decade ago, Geocities was pioneering the idea of web communities but, without the infrastructure and tools that we enjoy today, it and its kind were ahead of their time.
In these blogging days, life is a lot simpler, which means that temptations exist. Temptations like those caused by garish animated GIF’s in the late nineties, a lame attempt to spice up otherwise dull websites. Returning to the present, it is plug-ins and widgets that could convey the excess.
With WordPress, the plug-ins are more “behind-the-scenes” sorts of affairs, but it is so easy to accumulate several for stopping comment spam and keeping an eye on web traffic, to name just two applications, and so on that you need to be careful that a bag of nails does not result. In fact, I am now considering the rationalisation of what I have got while the number remains in single figures.
WordPress 2.2 adds widgets to the list of temptations; while WordPress.com already has these, the number is small, and you can be sure that that will explode now that self-hosted WordPress blogs get the functionality. The trouble with these widgets is that you need to be adept with CSS so as not to end up with an eyesore akin to those seen a decade ago, though theme authors can help with this. I am not activating widgets on my hillwalking blog because I have many other (better?) things to be doing.
Another thought on widgets: the tag cloud widget previously held in captivity at WordPress.com surely must now find itself in the wild, a worrying prospect given how rubbish they can appear. However, Jakob Nielsen et al. shouldn’t get too concerned, as trends that go too far scar the memory and preclude their return. Just consider those animated GIF’s…