Thursday, January 29, 2009

The Goodbye Girl

At about one month preceding the Oscar ceremony, our satellite TV provider begins screening 'good' films (ie films which have proved themselves over time) as opposed to screening whatever is available and reasonably current. This month is a good month, as far as I am concerned, as I can record films which I have seen in the past and enjoyed, but which are never shown anymore.

The opening salvo was a few nights ago, on the 'arty' film channel (which normally shows French films): 1977's "The Goodbye Girl". I know that I loved this film when it came out, went to see it more than a few times in cinemas, and even bought a novelisation of it. But I haven't seen the film in the past 30 years, so this was an interesting opportunity to see whether the film was as good as I remembered it.

Instead of writing at length, I think that I'll just condense the points:
  • Richard Dreyfuss was spectacular and well deserved the Oscar that he won for his performance
  • Marsha Mason might have been considered good looking then, but now my tastes seem to have changed
  • The dialogue was far too sharp and witty to be considered realistic
  • The 'falling in love' part seemed incredibly quick. Thinking back, I'm not really sure why MM changed her tack from being an acidic bitch to being lovey-dovey. Presumably, it was seeing RD fail as Richard III aligned with his kindness at her desperation, but it seems to be more than a little contrived
  • The ending seemed too short as well
So: obviously I didn't enjoy the film as much as I did once. I don't know how I would have ranked GG against "Annie Hall", but I still enjoy the latter film, being full of great one-liners (actually GG has some good lines as well which I had forgotten over the years, but they came back to me whilst watching). Probably the most important thing is pace: GG comes over at a very fast pace, especially at the beginning, whereas the middle and ending seem to be too short. AH is more episodic, not really trying to tell a linear story, but it is also more relaxed.

Tuesday, January 27, 2009

Long time no blog

Generally, the times when I don't write anything here are the times when I am busy, or at least, involved in projects which take up most of my spare 'head space'. This last month has been no exception to that rule.

We (my occupational psychologist and myself) have been working on several new programs for our analytical suite. The one on which I seem to have spent the most time is a variant on an already existing program: the examinee is presented with a list of adjectives which describe a person (warm, caring, methodical, arrogant, etc) from which s/he is supposed to choose those which describe him/herself. A diagnostic is made from the adjectives chosen.

This time around we've improved several aspects of the program. I was never enthused with the user interface which presented 300 adjectives sorted alphabetically on a pair of components called TPageControl and TTabSheet.The program had to ensure that the user visited all six tab sheets before collating the adjectives chosen, from which the user had then to pick the ten adjectives which most described him/her. The adjectives themselves seemed to be picked at random, and there were several synonyms as well as opposites. The interpretation seemed to be unscientific.

The first task in creating an improved version was to winnow the list of adjectives, eliminating synonyms as far as possible and making the whole thing more stream-lined. The second task was to adopt an approach suggested by another psychologist, who divided personalities up into four groups (this is hardly a radical idea); everyone has elements of these four groups in their make-up, some more dominant and some less so. So from four groups are developed sixteen subgroups, which differ in the order of the various bases. To each of these sixteen subgroups are assigned the various adjectives; the idea is that we can quantify a person's responses according to which subgroup has the most adjectives chosen.

In terms of user interface, the program was completely rewritten. Instead of the clumsy existing interface, I designed a program (influenced by Internet exams) which displays screens of five adjectives, each displayed in what's called a radio group. The user can choose either "Describes me", "Doesn't describe me" or "Don't know" for each word, and of course cannot progress in the exam until marking all five adjectives. This is a bit long-winded as there are now just under 200 adjectives, but is very thorough.

All this work on personality describing programs has made me more aware of some of the personalities at work (aka 'the day job'). Unfortunately we have been having personnel upheavals at work, partially due to the economic situation, and lately I have been seconded (without my knowledge) for a few days a week to a manager whose style leaves something to be desired.

With all the psychological training which I am absorbing by osmosis, it's very easy to categorise this manager: very much an alpha male, very dominant, "my way or the highway", etc. Whilst he does have good ideas, they tend not to be compatible with an ERP system, and it's my job to try and fit those ideas, or business practices, into the confines of the ERP system. He runs a furniture (wood) factory, which tends not to sell standard items (such as Ikea) but items personalised according to a customer's needs, and of course such items are much more difficult to run via ERP. That's not to say that it's impossible, but simply more difficult.

I don't really want to go into detail about how the ERP system is run (or not), just to say how non-standard it has become. Due to the economic problems, the senior management wants more control or knowledge about what is happening in this factory (Are our orders profitable? Stock control? Export costs?), and the non-use of the ERP system has made such questions difficult to answer. Hence my seconding to try and improve things.

I, however, was ignorant of the senior management's desires, and so the first two meetings with this manager and his cowed team have ended in frustration, anger and insult. In the book "The soul of a new machine", there is reference made to the process of "signing up", ie getting people to work hard on something because they want to. In my after-hours job as a programmer and assistant psychologist, I signed up long ago, and my employer knows how to motivate me so that she can get better programs. When this sort of thing works, there is definitely a process of synergy.

As opposed to this, the manager of the furniture factory does not know how to sign people up, and manages mainly to get work from his people by threatening, shouting and doing the work himself. This approach does not work well with me, hence the anger and frustration. In desperation, I approached the senior manager who is responsible for the computer department, and poured all my frustration out. Whether deliberate or not, she does know how to sign people up, for at the end of the meeting I found myself agreeing to doing what had been demanded of me.

Sunday, January 04, 2009

Another day, another RDBMS

I had been thinking about transferring one of our computerised exams to a database system (RDBMS) other than the Borland Database Engine (BDE) and so tried using Firebird. Whilst this system works (of course), it seems too much like overkill for the project. There is also the small matter of rewriting the application, as the methods of accessing the data are somewhat different in FB as opposed to BDE (because the components which I used - dbExpress - support only unidirectional cursors with no buffering).

The other day I was playing around idly, trying to write an on-the-fly database component using the TClientDataSet, which would read its data from a disk file into memory, manipulate the data (even add more data) and then write the data to disk on program end. Whilst this is a nice demonstration of something, it doesn't really help my project, as this system seems to be limited to a single database table.

Then I started googling "single file databases" and came across this link to "EasyTable - [a] single file embedded database, a BDE replacement for Delphi and C++ Builder". What could be better? So I checked the site, downloaded the demos and a few utilities, ordered a trial key to unlock the library and started checking out the demos.

After a few false starts (and a slightly misleading email from the support team, which at least pointed me in the correct direction), I was able yesterday to convert my 'cinema/dvd library' program to work with EasyTable. The conversion went extremely fast, limited only by my ability to type and to click on components. This program has a few slightly advanced SQL queries, and EasyTable absorbed them without complain. As far as I could see, there was 99% compatability between BDE and ET on the component level (no unidirectional cursors), but ET does not seem to support a datamodule.

Well, not quite. I discovered that certain code would not work while I was in design mode but worked perfectly well when the executable file was run on its own, outside of Delphi. This doesn't make sense, so I've written to the support team again to hear what they have to say about this.

The reason why I am evaluating ET is that I want one of my applications, which uses several tables, to have those tables embedded in the executable file. ET will definitely support this, although it's not clear exactly how I am going to test this. I imagine that I will write a function which tests whether the database has been appended to the executable, and set a file path name variable on the basis of this result. The various queries will then use this path name. Had ET support for a data module, then I only need call this function in the dm and set the correct value in the database component to which all the queries are connected. It looks like I will have to set each query separately, which is a bore but not too bad.

Apparently the database also becomes closed and read-only when it is embedded. I can think of times when this is not appropriate behaviour, but in the case of the computerised exam which is to be distributed to clients, it is exactly what I need. EasyTable produces single user tables, so it will be of no use for the 'results' or 'administration' programs, which run from two different computers.

So: it looks like Firebird is out, until I find a real reason to use it. EasyTable is in, but only for special cases. With no reason to change, the BDE will stay the dominant RDBMS until it has to be changed to Firebird.

I still have to decide which one of three 'cinema/dvd' programs I will use, but that seems to be the least of my worries. As at the moment I have more data in the FB version, I think I'll stay with that.

Thursday, January 01, 2009

Most blogs are full of 2008 summations and 2009 resolutions. Here in Israel, the passing of the civil year isn't much of a big deal; celebrations are held mainly by the Russian immigrants, and certainly not by those who live by the Jewish calendar. I have a joke which only makes sense to the financial population: What's the longest day in the year? Most people would answer June 21 (or is it June 24?), but the real answer is 31 December, because financially that day seems to last for a week if not longer, as everyone tries to complete all financial transactions in the closing year.

Businesses do stock-taking on 1 Jan, but as we have learnt to our cost, the Russian workers are normally not in a fit state to count stock on Jan 1 (nor count anything else save for the amount of aspirin that they need to take), so we delay it for a few days. I'm at work, basically 'on call' if anyone needs anything, but otherwise it's very quiet here.

31 December brings to mind the sleeve notes to Van der Graaf Generator's "Least We Can Do Is Wave To Each Other" album, which were written on 31/12/69, thirty nine years ago ("Well, it's the last day of an old decade; tomorrow we can start anew" - PH). I've been listening to that album recently, and I have to say that it has worn the years very well. VdGG had a habit of making records with very strong 'A' sides and less strong 'B' sides, and LWCD is no exception to that rule. Opening with the double punch of 'Darkness' and 'Refugees' (immediately displaying the two diametrically opposed poles of VdGG music) and following up with the incredible menace of 'White Hammer' (which also has an optimistic ending), that first side was a real jaw-dropper.

On the other hand/side, 'Whatever would Robert have said' is neat, but doesn't have the anger or menace of 'Darkness'. I love 'Out of my book', complete with its metrical games, but this is more of a throw-back to an earlier incarnation of VdGG, even if it was partly composed by David Jackson. The closer, "After the flood", always seemed to be over-theatrical, short on lyrics and over-exaggerating its punch; I have to admit that whilst listening to it again, my appreciation of its musicality has increased - 12 tone music, indeed!

It is also instructive to compare LWCD to a similar, almost debut, record released a few months earlier in October 1969 (not that I was aware of this at the time; my first listens to this record and LWCD came at around April or May 1970): "The Court Of The Crimson King". Widely claimed as the first progressive record, it certainly had a huge impact at the time, but I think that it hasn't worn well.

There's no arguing that "21st century schizoid man" is a one of its kind piece, the mind-blowing middle section compensating for the simplistic verse section. But of the rest... "I talk to the wind" is pretty but not progressive (as is "Out of my book"), "Epitaph" is massive, huge, but also harmonically simple, "Moonchild" is best not talked about, and the eponymous title track I find to be pompous, overblown and over-rated.

I don't want to be cynical, but one 'progressive music litmus test' is whether my wife can listen to a track; if the answer is 'yes', then the track is not progressive. I would never dare to play her LWCD, but ITCOTKC can be played at will, albeit without the opening track. "Epitaph" has even found its way onto one of her compilation discs (but not "Starless", which starts off as an Epitaph homage and ends up somewhere else entirely).

As far as I am concerned, LWCD is far better than ITCOTKC, and it is a shame that fewer people recognise its importance and value.