Showing posts with label SO. Show all posts
Showing posts with label SO. Show all posts

Saturday, September 22, 2018

A framework for the successful implementation of enhancements

Almost a year ago, I suggested a framework for the successful implementation of enhancements in ERP systems. This was discarded from the research proposal which I submitted at the end of 2017, but has now made its triumphant return into my intermediate submission, which is basically my doctoral thesis without the actual 'in the field' research.

I was discussing the framework with the OP a few weeks ago when the thorny subject of validation arose. Had I continued working on my original thesis topic, validation would have been subsumed into showing that there was support (or lack of) for my hypotheses. But the current thesis topic is not hypothesis based, instead suggesting a framework. In this context, validity of the framework means that developing enhancements by means of the framework will lead to successful implementations, whereas enhancements not developed by means of the framework are liable to fail.

I've been looking for supporting literature but not finding anything - although I'm sure that there must be. One good paper is called "The conundrum of verification and validation of social science-based models"; after having read this, I was able to write "Whereas 'validation' in systems engineering means that a system has been accurately built according to its specifications, in the social sciences it generally means that measurements are measuring what they are supposed to be measuring (Hahn, 2013). In the exact sciences, validation means that a theory accurately predicts values which have yet to be determined experimentally".

After spending several hours looking for papers yesterday, I found it difficult to sleep, leading me to awake in the middle of the night and sit naked in the lounge, typing notes into the computer. I am considering using the following sentence as the thesis epigram: Inquissima haec bellorum condicio est: prospera omnes sibi indicant, aduersa uni imputantur, which, when translated into English approximates to "This is an unfair thing about war: victory is claimed by all, failure to one alone". This is the antecedent to the more well-known phrase, "Success has many fathers but failure is an orphan". In the light of day, this seems less appropriate.

The subject of failure was very much on my mind yesterday; by placing more weight on investigating planned enhancements which failed, it becomes clearer what needs to be done in order to succeed. I wrote a new section in my thesis called 'Validating the framework', in which I analysed a failed enhancement in my company according to the framework, pointing out which stages were missed. I alluded to this enhancement in my second post from a year ago of the framework.

[SO: 4837; 5, 28, 44
MPP: 1263; 1, 6, 7]

Tuesday, April 24, 2018

New mp3 player

Despite what I wrote here two months ago, the Sansa mp3 player continually began playing from the first song. A new problem appeared: an error message about there not being enough free memory. I found a way to get around this problem, but it became extremely annoying every time I turned on the player to get past this message then click a few hundred times to get to new songs.

I discovered a similar player on Ebay which costs all of $1(!), so I ordered three. I also ordered a new memory card with a capacity of 32GB. The players arrived a few days ago and the memory card today. I copied all the songs from my current memory card to the computer, and from the computer to the new memory card. Fortunately, the computer recognises the mp3 player and memory card as an external disk, so I won't have to extract the card any more.

The player is extremely basic and made from thin plastic, but it does its work. It seems that it came fully charged, but I connected it to the computer to charge, just to be sure. I gave the player a short tryout - the sound is very good, although the headphone socket is a bit dodgy (sometimes I hear stereo, sometimes mono and sometimes phased stereo). After listening to a few songs, I turned the player off; I turned it on again, and it began playing from the same song (good). 

In common with the last pair of headphones (not the noise cancelling ones), playback begins from the beginning of the song. Normally this isn't much of a problem, but I have downloaded a few complete albums from YouTube which means that one has to listen for forty minutes or skip the track in order to hear something else. This won't be a problem with a three hour train journey, but it's annoying while walking the dog. I have received a 'presidential pardon' and so don't have to travel to Karmiel tomorrow; this would have been a good test of the new player.

[SO: 4742; 5, 24, 44
MPP: 1243; 1, 6, 7]

Monday, April 02, 2018

DBA update

I received a letter from my supervisor about ten days ago which although encouraging about my work, pointed out that there is not enough of it. He suggested that the introduction be between 15-20 pages long, the literature review 60 pages, the literature synthesis about 10 pages and the methodology (including pilot study and findings) be between 25-30 pages long.

The introduction is currently sixteen pages long, so that's ok. The literature synthesis has to be reorganised, but I think that it eventually will be about 10 pages long. The methodology section doesn't bother me at the moment, although it will be hard to reach the suggested length. The real problem is with the literature review, which was about 15 pages long in the version which my supervisor had. I find it ironic that he is suggesting expanding this chapter, as the first version of the literature review for my first thesis was a staggering 91 pages - clearly too long! I was advised to slim it down to about 20 pages. There is no way that my current literature review will reach 60 pages - maybe this was a typo.

As it is the Passover holiday now, I have several days in which I can work on my thesis. In the days prior to the holiday, I spent some time looking for papers which I can include; yesterday and today I spent several hours writing up those papers. As a result, the literature review is now a shade over 20 pages long. Possibly I can make it longer, but I can't find anything more which was written about the subjects which the thesis is based upon, and I feel that including papers just for the sake of padding out the chapter is diluting of what I am trying to achieve.

Tomorrow I am going to work on the literature synthesis. At the moment, this is several pages long, but written without structure; I would add a paragraph whenever something occurred to me. Thinking about this today whilst walking the dog, I have decided to impose upon this chapter the same structure as the literature review (shown below): this will make it easier to understand and is also likely to make me think about new material.

Subjects in the literature review:
  1. Flexibility of SMEs
  2. Misfits
  3. Enhancements
  4. User resistance
  5. Engineering and Organisational Change Management
  6. Benefits
  7. Inter-departmental cooperation
I used to save copies of my thesis and papers on the FTP server at work, which made it easy to transfer them between my various computers, but this seems to have disappeared again, taking all the files with it. So for the past few weeks, I've been using Google Drive as a transfer mechanism and also as a backup. At first it seemed that I could only access it from home, but later I discovered that I can access it without problem if I am already logged into my Gmail account.

[SO: 4747; 5, 23, 44
MPP: 1175; 1, 6, 7]

Saturday, February 10, 2018

Yoni Rechter and the Philharmonic

I went to concerts held in what was the Mann Auditorium (and is now the Charles Bronfman Auditorium) several times in the 1980s. I remember concerts by Randy Newman, Leonard Cohen and Don McLean, as well as one by Matti Caspi. There may have been more, but if so, they have been washed away from my memory by time. I saw most Israeli acts at the concert hall at nearby kibbutz Kfar Menahem, but again, I haven't been there for years.

By chance, I happened to hear on the radio a few weeks ago that Yoni Rechter is playing two concerts at the Charles Bronfman Auditorium along with an orchestra. I wasn't too sure that I heard correctly (I wasn't exactly listening to the radio, but I heard it) so I checked on the maestro's facebook page, and sure enough, two concerts were listed, on the 7th and 8th of February. After a small amount of dithering, I booked seats (which are very expensive, as far as I am concerned: 350NIS each, which these days is equivalent to nearly $100 each); I haven't got tickets but rather a QR code on my telephone which I hope can be bartered for seats. I suppose that the price can be explained by the orchestra and also the few special guests who will be appearing: all of these people have to be paid for their time, both in rehearsal and in performance.


We left home early for the concert (which is to start at 8pm) so that we could collect tickets and have something to eat at a nearby cafe. The box office is well organised, having about eight queues, each for two or three letters of the alphabet. I approached the 'N' queue, stated my name and waited for the tickets. The box office girl couldn't find them, so I repeated my name. Again, she searched but to no avail. After a few minutes of hopeless searching, a supervisor came over. I showed him the receipt on my telephone, but still no tickets. After some searching with a computer, the supervisor told me that my tickets had been for the previous night's concert (Wednesday)! Too say that I was taken aback would be an understatement. I wasn't bothered so much about the loss of the money as to the fact that I would miss the concert. Fortunately, the supervisor was able to find a pair of tickets for the Thursday concert, at a 20% discount (and paid over three months), seating us almost at the same place as we would have sat the night before. The evening was saved!


After a small pre-concert meal in a nearby cafe (which actually took reservations), we made our way into the concert hall. This time, there was a merchandise table but I didn't have to buy anything (as I already own most of the products displayed). Our seats were towards the back of the second floor, but this hall is very well designed such that we had a good view of the stage, and of course we could hear well. Two large screens had been erected on either side of the stage which showed close-ups fed from at least one camera. I think that I spotted one camera but I couldn't figure out where the others were.
The picture on the left gives an idea of what the stage was like (the screens can be seen on both sides). This picture was taken before the concert started, so there are only a few musicians warming up.

The concert opened with what might be termed an orchestral overture, which wove several tunes into one. The sound of a full orchestra is amazing: I think that I have never been to an orchestral concert in my life. The tune of 'Atur mizhech' (a song which several years ago was voted the best Israeli song of all time) emerged from the overture which is when Yoni took the stage. He played the tune whilst the orchestra played the accompaniment: this was breath-taking. This was the only non-vocal piece of the evening, which is possibly a shame.

Then the songs started: the first few were slightly obscure pieces from the repertoire, but as the show progressed, more and more familiar songs were played. The guest vocalists helped but didn't necessarily make a huge contribution. To be honest, I found the orchestrations to be conservative: they added but not as much as they could have done. As we say in Hebrew, the enemy of the very good is the excellent; here, Rechter and Ilan Mochiach (the conductor and arranger) played safe in order to achieve the very good.

Whilst looking for some background material, I came across this interesting interview with Yoni about progressive rock. The interviewer had picked up - as had I - what sounded like influences from progressive rock on a sequence of songs from Yoni's 2004 disc, "Another story". It seems that he does not listen very much to this genre, although he singles out Gentle Giant as an example.

Yoni also mentions that Danny Sanderson - the brain behind the first Kaveret album - also had progressive tendencies, which could be heard on "Despite everything" on their debut album and "Crowded in the ear", the title of their third album but only released on a collection from 2014. It was very interesting to read a little about the process of arranging material for Kaveret.

It would have been intriguing to hear that 'progressive' sequence of songs from "Another story" played with the orchestra: this would have been more challenging and more successful. But it seems that the organisers were conservative with the selection of tunes and resisted the opportunity to stretch out. One of the encores - "She's here again" - was played without orchestra, which is ironic as the original recording from 1979 features strings!

I wonder whether the performances were recorded, as it would be a shame not to enjoy them again and save them for posterity.

[SO: 4692; 5, 22, 44
MPP: 1165; 1, 6, 7] 

Edit: Someone posted a clip filmed (with a smartphone, so don't expect high quality) at this concert. Each singer sings in a different language: Russian, English, Polish, and of course Hebrew. I can't identify in which language Yoni is singing. Here's another song from those concerts.

Monday, January 22, 2018

Braised beef

I don't normally cook beef, for several reasons: I don't like the taste or texture, it costs much more than chicken, and I've only rarely cooked beef to the satisfaction of my wife. On Friday night, however, things changed.


I get some of my recipes from this site, which is in Hebrew and sometimes in French; the recipe which I followed is here. I asked my wife to buy 1.5kg beef which we call 'number 8'; I don't know what it's called in English, but one can see from the accompanying diagram that it comes from the upper part of the cow's front legs. This is the cut which I use sometimes for cholent; as I wrote there, this cut is ideal for stews as it contains a large amount of collagen which is broken down to gelatin during the cooking process.


On Thursday night, I placed the two large pieces of meat into a pot, covered them with water and added two quartered onions. I then cooked the meat on the gas for an hour and a half; afterwards, I stored the meat and the liquid separately in the fridge.

On Friday afternoon, I prepared an evil mixture of soy sauce, salt, pepper, parsley, paprika, soup powder and garlic; the recipe says to mix these ingredients together, then press them into the flesh of the cooked meat. I put them directly into the same container which held the beef, but I should have mixed them first in a separate bowl before pouring the mixture onto the beef and massaging it. I sliced sufficient raw potatoes to cover the cooking pan, then placed the beef and the marinade on top of the potatoes, as well as the original cooking liquid (plus onions). Finally, I covered the pan with aluminium foil. Cooking time was one hour at 200°C and a further two hours at 175°C.

All the carnivores of the family were very appreciative of the dish. I think that I got a lump of unmixed soup powder on my plate, as the meat was too heavily spiced for my liking. I received approval to cook this dish again in the future, but to reduce the quantity of the marinade. The dish is maybe twice as expensive as chicken dishes, so maybe I'll cook it once every six or eight weeks (my daughter, son-in-law and grand-daughter eat with us on alternate weeks).



I'm adding  a new tag to these posts: SO will mean that the post includes my 'scores' from Stack Overflow and Music Practice and Performance.

[SO: 4662;  5, 22, 44
MPP: 1105; 1, 6, 7]

Friday, January 05, 2018

Business rules in Priority which do not apply to specific users/2

In my previous post on this subject, I wrote at the end The only problem with this is that the above uses one of the business rule's three conditions, and there may not be a condition to spare. A simple solution to this problem occurred to me today.

Let's say that a rule has all three possible conditions defined, and that one of them is "branchname = 400" (I have several rules like this). All I need do is leave the "branchname = ', part and define the expression
(SQL.USER IN (1, 205) ? 'A' : '400')
This condition kills two birds with one stone: if the user number is 205 (me), then the expression will return 'A' which means that the condition and thus the rule will fail. For a regular user, the value 400 will be returned; if this value matches that of 'branchname', then the rule will execute (preventing the user from doing something), but if the branchname is not 400, then the rule will fail. Which is exactly what happens now.

At the moment, I can't see how I can use this technique if the condition is something like 'order type <= 007', but I'm sure that at least one condition out of the three per rule will be testing equality. One only has to choose the most suitable condition for this technique.

[Edit from 07/01/18]
One rule which I needed to change had a condition 'and order.branchname not equal to 200'. I was stumped at first how to change this condition so that it doesn't affect me, but after a few minutes cogitation, I found this solution:
(SQL.USER IN (1, 205) ? :$$.BRANCHNAME : '200')
Or in English, if the current user is either 1 or 205, return the value of 'order.branchname', else return 200. For me, the condition then becomes 'and order.branchname not equal to order.branchname', so of course the condition fails and the rule does not apply to me.

[SO: 4632; 5, 22, 44
MPP: 1065; 1, 6, 7]

Monday, December 25, 2017

Sheet music

No, that's not a reference to 10cc's second (and probably best) album, but rather referring to two PDFs which dropped into my mailbox yesterday evening. I wrote a few days ago that I spoke with Yoni Rechter after his show on Thursday night, and that he offered to send me the sheet music to one of the songs on his new album 'Svivenu' ('around us'). I sent him (or his facebook page) my details on Friday, and yesterday the music arrived! True, it didn't come from Yoni himself, but from someone in his production company.

One file contains music for the vocals whereas the other is for piano.  Looking at them makes me wonder whether Yoni (or a copyist) prepares such files for all his songs, for those playing with him.

I've chosen to display a part of the piano score which is probably the most interesting: the song starts in A minor, 5/8 time. In bar 26, there is a modulation to A major; bar 28 is in 6/8 but bar 29 is back in 5/8. Again, bar 33 is in 6/8 but bar 34 is in 5/8. The song returns to A minor at bar 44 (not shown). As it happens, I have yet to hear the song and follow it with the score, but I'm sure that will happen soon.

When we came home on Friday, I looked at the previous Yoni album, a live recording from 2011. To my surprise, almost all of those who appeared with him on Thursday also appeared on the 2011 recording; the only differences are the backing singers. The set list hasn't changed that much from 2011, either. I haven't looked at the musicians on the most recent album, but again, I would not be too surprised to see there some familiar names.

[SO: 4622; 5, 22, 43
MPP: 1027; 1, 6, 7]

Saturday, June 17, 2017

Business rules with functions (2)

I wrote a few months ago about an undocumented way to write complex business rules in Priority. Whilst I was copy editing my thesis again this morning, finding a few errors, I had a minor epiphany when reading the section about form triggers. I have always believed that it is not possible to write a business rule which compares two fields in the form (e.g. display an error message when the production date of a customer order is greater than the date that the customer wants to receive the order) and so have always handled such cases with a trigger.

This morning it occurred to me that it is possible to write a business rule which will compare two fields. In my previous blog, I showed an example which can be read as "Display an error message if the value in the 'towarhsname' field differs from the expression (:$.TOWARHSNAME IN ('23', '999') ? :$.TOWARHSNAME : '!!!'). Ignoring the technical aspects of this, I was using the same variable name in the expression as in the rule part. This doesn't have to be so! It would be very easy to write a rule which states "Display an error message if the value in the 'promised customer date' is less than", with the expression being the screen name for the field containing the production date (:$.TEC_DUEDATE). 

From a meta-programming view, this is another case of being blinkered: originally I was concentrating on how to define a rule which checked two non-contiguous values of one field, that I never considered the possibility of defining a rule which compares two fields.

[SO: 4502; 5, 21, 43
MPP: 812; 1, 4, 6
ELL: 964; 0, 2, 7]

Tuesday, March 28, 2017

Priority tip: creating business rules with functions

Priority comes equipped with something called a 'business rule generator'; this allows a user to define actions to be taken dependent on certain conditions, without having to program a trigger. For example, in the 'Customer Shipments' screen, I defined a rule
If 'Billable?' is equal to N 
and 'To ConsignmtWarehs' is blank
then Display error message
"Not able to close shipment form when 'billable' is not set"

(this is a rough translation of the Hebrew text). One is able to set up to three different conditions (in the rule above, the first condition is that field 'Billable?' is equal to N), which is sufficient for most cases. Unfortunately, every now and then, one would like to write a rule which is dependent on four conditions, or one condition is complex (e.g. display an error message when the agent number is not '031' or '046', where the numbers are not contiguous).

I'm not sure that I have a solution yet for four conditions, but I have discovered (by means of the Israeli Priority Users Forum) a technique for complex conditions. Existing functionality enables one to define an expression to be used in a condition, but as usual, this functionality is only partly documented.


One presses the button marked in yellow to display an 'enter expression form'.


Pressing any of the buttons on this form brings up data connected with dates - for example, the documentation shows how to use an expression to display an error message when the supply date of an order is less than five days from today.

In order to display an error when the consignment warehouse is not one of the values '23' or '999', one has to do the following: the rule has to read 'Display an error message when the value of consignment warehouse differs from', with the following expression

(:$.TOWARHSNAME IN ('23', '999') ? :$.TOWARHSNAME : '!!!')
Translated into English, this means: if the value of 'consignment warehouse' is either '23' or '999' then return the value of 'consignment warehouse', else return the value '!!!'. If the value of the warehouse were '12', then this expression would return '!!!' which is different from the value of the warehouse ('12') and so an error message would be displayed. This is an example of the convoluted logic with which us Priority developers have to struggle every day. Most importantly, the 'screen name' of the variable (:$.TOWARHSNAME) must be used and not its title ('Consignment warehouse').

Having documented this, I now need to find a real life example. There are certain advantages to using this technique over using a trigger, as well as some disadvantages. These are listed below in the order of thinking of them.

Advantages:
  1. Theoretically, 'anyone' can do this, not only developers, although I'd like to see them try!
  2. No need to 'build the form'
  3. The rule can be defined for specific users in specific companies 
Disadvantages:
  1. No ability to add comments
  2. Difficult to see the rule (a trigger can be viewed in a code editor)
  3. Not easily copied
[SO: 4442; 5,21,43
MPP: 802; 1,4,6
ELL: 926; 0,2,7]

Saturday, December 10, 2016

Kindle disaster

I've noticed that the battery has been running down fast on my Kindle. I remembered that I had similar problems a few years ago which I documented here, so I decided to use the same technique. First I set up the Kindle to accept a password, then I rebooted and entered the 'secret' password, 'resetmykindle'. The Kindle rebooted.

I didn't bother creating a backup for I assumed that the previous backup still existed, and there was no mention of restoring the backup onto the Kindle. I was surprised to see that there were no books on the Kindle after rebooting,  but not too concerned as I could restore that backup ... except that I could find no backup!!!

400+ books gone!

After several hours searching, downloading and converting, I've managed to restore most of what I had previously. I couldn't remember the names of some books so those obviously can't be restored, but I have found other interesting books. 

Moral of the story: backup the Kindle onto the mobile computer, and possibly to Mega. There is a problem with the latter option, as Mega does not store multiple copies of identical files and there is the possibility that someone else has stored one or more of the books which I have in mobi format. Maybe I'll create a giant zip file and store that.

It would seem that books which I have purchased from Amazon have yet to be downloaded, despite having the wireless connection set correctly. I'm more interested in the battery functionality. I also have to restore all the collections, which is going to take some time. Fortunately (or not), over the next few days, I'm going to have several hours in which I will have nothing to do (and no means to do anything), so fixing the Kindle will be a good way to use this time.

[SO: 4352; 5, 21, 42
MPP: 772; 1, 4, 6]

Tuesday, September 06, 2016

Central sleep apnea

I have written here several times about the fact that I suffer from sleep apnea and use a CPAP machine to alleviate this. But I have ignored the fact that there are two different types of sleep apnea: obstructive (OSA) and central (CSA). The former is more common; in this form, soft tissues in the back of the throat and elsewhere collapse during the night and block the airway, thus causing an apnea; the pressurised air coming from the machine prevents this collapse. In the latter case, the brain does not send sufficient signals to the body to breathe.

I assumed that I suffer from OSA despite the fact that the data from the CPAP machine clearly shows the opposite. Maybe I convinced myself that I had misread the data stored on the memory chip. Since April, I have suffered about 20 apnea/hour; this suddenly jumped to 35 apnea/hour a few weeks ago! Coincidentally (or not), this jump occurred on the same day that I started taking a certain medicine for pains in my left knee/leg. I needed to take this medicine only for a week, after which the rate dropped down to about 20 apnea/hour. Increasing the pressure in the machine to 8 cmH2O did not have any effect.

In a visit to my family doctor, following up the 'knee' medicine, I said that the pains had almost completely cleared up; I also mentioned the huge increase in apneic events. She immediately ordered a pulmonary exam, assuming that I am suffering from OSA. We agreed that the machine should be checked.

Today, I had an appointment in the sleep clinic in Jerusalem (which is much less grand than the name might suggest). The technician (not doctor) checked the machine then extracted the data into a much fancier program than mine. He told me that I have CSA and that it would be better to decrease the pressure in the machine (now reduced to 5.5 cmH2O). I am to see what the readings are like in the next fortnight, then try two weeks at 4.5 cmH2O then two weeks at 6.5 cmH2O in order to find the best setting.

Obviously I will return to my doctor with the intention of both updating her and cancelling the pulmonary exam. There aren't many options for dealing with CSA (apart from CPAP) so I don't want to speculate here. What is slightly annoying is that no sleep doctor is at yet involved. It might be that an appointment will be necessary in another month or two.

Edit: I notice that when I bought this CPAP machine three years ago, I was told that I have CSA, but somehow managed to forget this.

[SO: 4262; 5,21,42
MPP: 742; 1,3,6]

Thursday, June 16, 2016

Today's reading matter (2)

I read Randall Bolten's latest blog entry, "Did you spell '273' correctly?" with interest. The issues mentioned in his blog are not the sort of thing which affect me, even though the other day I found a long-standing spelling mistake in my thesis (I also found one on this blog, where I had used a homonym for the word I wanted). I'm writing the thesis with Word, which has a spell checker, so most mistakes should be caught. Unfortunately, Word uses American spelling whereas I use British spelling; supposedly I have 'told' Word to use British spellings but it consistently ignores me. So all the time I get squiggly red lines under words such as 'organisation' and similar.

I continued trying to find suitable material which will help me phrase the data analysis portion of the submission. This section - less than a page long - is proving to be a field of thorns for me and seems to be causing my supervisor - who is a statistician - a great deal of frustration. I have been dreaming about this section for the last few days, which shows how deeply it is affecting me; I still cannot find suitable language.

Something which may help is a paper from Trinity Washington University which gives a sample of a quantitative research proposal.  There doesn't seem to be much material about statistics there but there are a few pages on creating a model of the theoretical framework, which looks like this:


Note independent variable one (IV 1): ECONMOIC DEVELOPMENT. Oops - someone didn't check their spelling!

I will try and create a similar model for my research, which makes me wonder whether what I have termed 'company variables' are not independent variables but rather moderating variables. It could easily be argued that a user might have certain values for some of the independent variables, but these are moderated by the company variables. On the other hand, examples of moderating variables in the Trinity example are 'time in residence' and 'political affiliation'; translated to my research, 'time in residence' could be 'age' or 'years of experience with ERP'. I think that I will ask my supervisor about this - maybe I will get a useful answer.

According to 'Ask Yahoo' (definitely an accredited source of information), the best answer says that:
In general experiment design, you might typically think of a moderating variable as an independent variable, as it is often something the experimenter will manipulate. Its more useful to think of it in terms of causal relationships between the variables, and think of independent variables as those which you think will have a *direct* effect. A moderator variable specifies *when* a predicting variable will have an effect. Say I want to look at the effect of caffeine on memory for example, and I predict that increased caffeine consumption will improve memory performance. In my design, I have a caffeine vs no caffeine condition and male vs female as my independent variables, and memory test performance as my dependent variable. My results show that there is an interaction between sex and caffeine, with males doing better after consuming it, but it making no difference for females. We would call sex a moderating variable in this instance; whilst it doesn't predict memory performance itself, it determines when my predictor (caffeine) will have an effect (only when it is males). Moderation effects are generally demonstrated by significant interaction effects in your analysis.

On that basis, 'gender' and 'age' are definitely moderating variables in my research.

[SO: 4187; 4,20,40
MPP: 647; 1, 3, 6]

Saturday, April 30, 2016

Writing lyrics (2)

I followed my own advice from the last blog and wrote lyrics for the 'song with a completed arrangement' the other night. I knew that some of the lines weren't right, but I thought it best to complete the song with what might be dummy lines then replace them later. This evening I had a second session on writing the lyrics and replaced about 40%! Here they are (no hints as to what was and what is new)....


Out of the comfort zone

Stranded and all alone
I’m facing a vague unknown
A task without scope
A path without hope
I’m out of my comfort zone

Once I could fly in my dreams
Now sleep often turns to screams
I’m tired but can’t rest
I’ve lost all my zest
Far out of my comfort zone

People demand that I serve their every whim
Several times a day
Invent the impossible, foresee the unforeseen
Whilst keeping my demons at bay

I’m tasked with the strange, the bizarre
I’m hitched to a shooting star
That insists on solutions that I must provide
Requires concentration when problems collide
Removes me from my comfort zone 

[SO: 4152; 4, 20, 38
ELL: 843; 0, 1, 7
MPT: 627; 1, 3, 6]

Saturday, March 19, 2016

Purchasing sound equipment

Over the past few months, I've slowly been acquiring gear for my electric guitar and amplifier. None of this equipment costs very much (the effects pedal was the most expensive, at about 150 NIS), which is fine for a stay-at-home hobbyist musician.

First off is a soi disant professional condenser microphone, which I bought from e-bay. This looks very good, but it's actually quite small. I doubt that it really can be professional as it only costs 11 australian dollars, but it's probably just as good - if not better - than any of my other microphones. I haven't had a chance to test it yet: since receiving it, I've barely been able to speak, let alone sing. I am hopeful that this will be a good purchase. The stand is a neat idea.

My amplifier - whilst coming with effects - only has one input. Let's say that I want to play with someone else or use the above microphone - to do this, I need to expand the number of inputs.

Enter the mixer. I used to have something like this when I was living in London, but that was really a cheap and nasty box. The Nady mixer is very solidly built, and comes with four controllable inputs, as well as echo (the two knobs on the right of the unit control the depth (dry/wet) and the delay time (0 - 250ms). This mixer looks impressive, but I was disappointed when I tried it out. Most of the top end (treble) was removed, leaving a very dull sound, and it was very easy to let the echo get out of control. There seemed to be a negative synergy between the mixer's echo and any effects which I might have used on the amplifier. As a result, I have decided not to use the mixer's echo (or at least, to be very sparing with it). The problem - which I realised only after receiving the unit - is that the echo applies to all the inputs, meaning that if two guitars and a microphone are plugged in, using echo will result in a sonic mess. An even better solution would be to have an extra knob for each channel, by which one could select how much echo each channel receives, but this would require extra circuitry, which would increase the price. So how can I obtain echo on one channel but not on another?

One possible solution  is an effects pedal (which would be used before plugging into the mixer): after looking around at DX, I came across the Mooer Pogo effects box. Despite the somewhat unpromising name, this box contains a large amount of functionality in a small space. 

Pros: This effects box is really two boxes in one: first, it's a guitar pedal with several options: chorus/phaser/tremolo/flanger, echo/reverb, gain, drive (clean/overdrive/distortion/crunch/fuzz/metal) and tone controls. Secondly, it's a drum box, with 40 predefined rhythms, whose tempo and volume can be selected. So this is a great little box for someone playing on their own - they can dial in a drummer and play to their heart's content. The box also comes with an AC adapter, which enables one to use the effects without batteries (2 AAAs). The instructions come in Chinese and English, and are written correctly (sometimes products come from China with mangled English which doesn't always make sense).

Cons: the AC adapter comes with a plug which might be unsuitable, thus requiring an adapter of its own. For some reason, although the drum speed can be controlled, it can't be specified in bpm. To quote the instructions, "The range of the displaying tempo value is 20-90, indicate (sic) the real tempo 60-270 bpm. Each rhythm has its own default tempo value". Would it have been too hard to have allowed real bpm values? 

All these devices means that I need some more guitar cables, so I took  the opportunity of ordering two with the pogo. This morning, I connected the guitar to the pogo, and the pogo to the amplifier (without effects). I should have plugged the pogo into the mixer and the mixer into the amplifier, thus I could have seen whether the tone control of the pogo overcomes the mixer's removal of tone. I had great fun with this unit: I forgot that I could play lead guitar! I think that it was the 'fuzz' setting which gave a good sustain, which is so necessary for lead. This unit obviates the need for the effects on the amplifier.

[SO: 4122; 4, 20, 38
MPP: 617; 1, 3, 6
ELL: 694; 0, 1, 6]

Monday, December 07, 2015

Training the dog

We have had Cora the dog for three weeks and a day. At first, she was almost frozen until she began to get accustomed to her new surroundings. She seems like a good dog, but there are some aspects to her behaviour which need to be improved - like barking and snarling at people (and dogs) outside of the home and also inside. We had been told by the kennels that she was well behaved, but that observation didn't appear to be accurate. As a result, we were given the phone number of a dog trainer. The kennels said that they would pay for the training (although that promise has yet to be fulfilled) - and I thought that we might have to pay the kennels for the dog. 

So far we have had two training sessions. The most important point is to show the dog who is in charge: the humans, not the dog. As we have never had such problems with our previous dogs (or we had forgotten), we have to be taught this as well. The first thing to change was the lead - we have a 3m flexi-lead which was very good for Mocha but unsuitable (for the time being) for Cora, as it allows her to wander around whilst being nominally connected to me. The kennels had given us a fixed 1.5m cloth lead when we took the dog home, and this is exactly what we need.

Yesterday we continued with our lessons. The first thing was to add a second collar - this one is 75% cloth and 25% chain; this is very important as a short tug on the lead connected to the collar simulates a nip on the throat by the dog's mother. The trainer taught Cora a sign for 'sit!', along with the vocalisation. When she didn't sit, he gave a short tug and the sign again; this time she sat. Of course, whilst training, he gave her treats to help reinforce the lesson. This went on for several minutes, then it was my turn. Although at first she wasn't too co-operative (obviously I'm not authoritative enough), she soon got the message.

This morning, when we went out for our walk, I tried the 'sit!' manoeuvre, which went surprisingly well. I didn't even use the hand sign; I just gave a short tug on the lead and Cora sat. For a change, she also relieved herself while we were out - toilet training has been a problem. I noticed that both last night and this morning, she was much more compliant, so the lessons are having an effect! I seat her when people come close and this helps.

One problem which we will have to sort is the reaction between Cora and Gutz, my daughter's dog. They came over on Saturday night for a while; this time, there was less barking but both dogs were kept on their respective leads and didn't interact physically. We are going to have the dubious pleasure of Gutz's company for a few days at the end of January, so I sincerely hope that they will begin to tolerate each other's company. 

There are no problems with our cat, whom Cora meets on the stairs every day. The cat (whose name is Brazil, but we rarely call her by name) had become accustomed to greeting Mocha and rubbing up and down against her. She was at a loss when Mocha died, and when Cora arrived, she tried to continue where she left off. Cora tolerates - or ignores - Brazil, which at least means that we don't have fights on the stairs. But we haven't got to the stage of physical contact yet (well, it's only be a few weeks) and the cat seems disappointed.

[SO: 4032; 3, 17, 38
MPP: 632; 1,  3, 6]

Sunday, November 08, 2015

Conceptual change

The last few weeks – if not months – have been very frustrating, in terms of my doctoral research. I have spent a great deal of time during this period locating companies which use Priority, then locating a suitable contact person within that company, then sending my introductory package. Sometimes those companies have answered with refusal, but more often they have 'answered' with silence. It has been coming clear to me that unless something drastic is done, the entire doctoral project is in danger of not being consummated.

Let's backtrack to module 2 of IBR3: methodology. The text discusses two alternative methodologies, quantitative and qualitative. These methodologies lie at opposing ends of a continuum, so a research project could be 100% quantitative, 90% quantitative and 10% qualitative, etc. A quantitative project basically asks the question "How much?"; it is carried out by means of a fixed questionnaire, is hypothesis based, and those hypotheses are tested by means of statistical analyses of the results obtained from the questionnaires. Such a project also requires a large number (100+) of observations, where the sample is supposed to be representative of the total population. Anyone who knows the methodology of my research project will recognize that I chose the quantitative route.

On the other hand, a qualitative project basically asks the question "Why?"; it is carried out by interviews (which may be fully structured, semi-structured or freestyle) on a small sample which does not have to be representative of the entire population. Its conclusions are considered to be binding with regard to that sample only and not to the general population, although they may be indicative. I could have concluded the final sentence in the first paragraph by writing "It has been coming clear to me that the only way to succeed with my doctoral project is to change to a qualitative methodology".

A few days ago, I emailed all the contact people of companies who have agreed to participate in the research, asking how many responses could be expected from each company. This was in an attempt to see whether the sample size would be sufficient to support the quantitative approach. So far, I have received only one response to that letter: someone wrote to tell me that their company does not use spreadsheets along with Priority. My initial, from the hip, response was to ask (rhetorically) why they signed the participation agreement if they don't use Excel; as it happens, another company with which I was in contact also claims that they don't use Excel, which is why they didn't sign the agreement, assuming that they would be of little use to me.

Yesterday evening, the pieces began to fall in place. I would like to have written that my conclusion was reached after analysing the entire doctoral project and rethinking, but that wouldn't be true. It was more a case of suddenly realising that not only would the qualitative approach be better, the fact that this company does not use Excel could be turned to my advantage.

I still intend that they complete the questionnaire, as the collateral information which can be obtained is very useful. But more importantly, I intend to interview about five users in an attempt to discover how they manage to use Priority without Excel. Obviously, this is possible – in fact, desired behaviour – but it's very difficult to achieve in practice. I would like to say that even I do not use Excel, but that's not strictly true. Hopefully, I will be able to 'extract the secret' from these interviews, then compare them to similar interviews in other companies which do use Excel. I can also attempt to corroborate the findings from the one company with the other company which does not use Excel and which did not sign the agreement.

Fortunately, this company is located about twenty minutes away, so it would be quite convenient for me to spend a few afternoons there. The company which did not sign is located in Afula, which is a two hour drive away and very awkwardly situated.

I have decided that as from today, I am ceasing my attempts to find more companies and sign them up. On the other hand, I am not going to ignore those that have already signed: I will send them the questionnaires, and some of the data will be useful. Thus my project will be partially qualitative and partially quantitative. I am going to run these ideas past my mentor and I imagine that he will be supportive.

Then I will have to rewrite parts of my intermediate submission. The methodology section will have to be expanded as well as the 'conclusions' section of the pilot study, but apart from that, I don't see – at the moment – any parts which will have to be excluded. One might say that adding the qualitative aspect is greatly improving the quality of the project.

As is my nature, I have to examine the above and find where I went wrong. I can see that from almost day one, I have been fixated on the quantitative approach, and have never considered any alternative. This assumes that I knew from the very beginning why people use spreadsheets; I thought that I knew because I work with such people. The idea that people can and do work without spreadsheets never occurred to me, because I had never seen it in practice.

Rereading the material in IBR3 yesterday evening, I saw a hint which I had ignored. One of the differences between the approaches is that qualitative methodology is often used as an exploratory technique, when researchers are not sure of causes. I have often stated that my research is apparently the first of its kind; had I been more experienced (read, less blinkered) or had read IBR3 in a more open frame of mind, then I would have known that the qualitative approach would have been better suited to this research. My mentor had tried to nudge me in this direction at times, but I was convinced that my approach was better.

Well, I was wrong. Maybe it's just as well that insufficient companies signed up.

Another hint may have unconsciously come from a discussion which I had on Friday morning with the Occupational Psychologist. We were discussing the extremely low marks which one examinee achieved from our flagship questionnaire. Obviously, statistically, someone has to have low marks (in the same way that someone has to be last on the bus), but the fact that he had similar marks across the board was suspicious. When I examined the raw data from his exam, I saw that only slightly less than half the questions had been answered. Once this would have meant that his raw data would not even have been accepted into the database, but a recent change in the raw data file format now allows this.
I was somewhat incredulous to see this so I asked whether anyone had noticed that the examinee had not completed the exam. "Yes", replied the OP. "We have here the observations made by the person administering the exam, and … yes, it was noted that the examinee did not complete the exam. Not only that, the psychologist who reviewed the data also noted this fact". I should point out that the OP was extremely worried that we were basing recommendations solely on the computerised data, so she was greatly relieved to see that all along the chain, the incompleteness had been noted and in fact commented upon as a sign of the examinee's psychology.

Only after writing the bulk of today's blog did I become aware of the relevance of this incident, which can be translated in the following manner: I see only the quantitative aspects of the OP's work and am barely aware of the qualitative aspects. In this case, the quantitative data was sorely lacking (read: useless), but the qualitative data proved exceedingly useful. In other words, due to my psychological composition, I am strongly attracted to the quantitative side and tend to ignore the qualitative. This has to change!!

Now I am wondering whether the fact that I have been reading John Le Carre's "Honourable Schoolboy" might have some bearing. George Smiley remarks on Karla's lack of moderation (or his fanaticism) and foresees that this will lead to his downfall. Once again, my fanaticism was the belief that the qualitative approach was the methodology required, but fortunately have managed to avoid the downfall.


Obligatory irrelevant musical observation: a few days ago, the listening material on my mp3 player was the groundbreaking "The Yes Album" from 1971. I devoted quite an amount of thought as to why this album was so good but as to why it pales in comparison to VdGG. I won't go into that now, but I am reminded that the ultimate track on that album is called 'Perceptual change'. Maybe that phrase was hanging around in my brain, for I have undergone a perceptual – or more accurate, conceptual – change in the past few days.

[SO: 4012; 3, 17, 38]

Sunday, August 09, 2015

Faster reports in Priority

Caveat: there is little reason to read this post if you don't use Priority!

As I may have written before, my company merged two Priority databases a few months ago. One result of this is that certain reports now work very slowly: this is because they have to create a temporary table containing parts. Once this table contained about 35,000 rows but now it contains around 900,000 rows! This means that counter-intuitively, reports will work faster if they are not passed a list of parts.

To be more accurate, the time that a report requires to operate can be divided into three:
  1. Obtaining parameters
  2. SQL statements on those parameters
  3. Displaying the results
It's stage one which can take a large amount of time. Today I discovered a method of  shortening this time, which I am going to describe here.

If there is a parameter requesting a range of part numbers, it seems that Priority first creates a temporary file, then it copies all the existing parts into that file so that the user may choose parts, then gets the user's input and then creates a second temporary file with the chosen parts (this step generally takes place in stage two as described above, under the programmer's control). Thus if there are 900K parts in the database and the user chooses all of them, 1.8M parts will be copied!

Obviously, there should be a way of allowing the user to choose parts (which means that the first copy will have to take place), but if the user wants the report to work on all the parts, or the parts can be distinguished by means other than their part number, then it's better not to ask the user to choose parts at all.

The way I achieved this was as follows. I wrote a multi-stage procedure in Priority:
  1. Obtain values for other tables (e.g. warehouses) along with an option asking whether the user wishes to choose parts
  2. If the option is not 'Y', then jump to stage 4
  3. Obtain values for the parts table
  4. Process the data
  5. Output the data
At the beginning of stage 4, I entered the following lines:
GOTO 10 WHERE :$.OPT <> 'Y'; LINK PART TO :$.PRT; ERRMSG 1 WHERE :RETVAL <= 0; LABEL 10;
The action resulting from above is that the processing stage will use either the chosen list of parts (the "linked table", in Priority speak) or all the parts; the number of parts is not particularly important to SQL, which is a set orientated language. The hack is the amount of time saved by not building (twice) the temporary list of parts.

For my reference, this tip is used in procedure GLOB_PART_MONTHS.

[SO: 3947; 3, 16, 37]

Saturday, June 13, 2015

Incorporating guitar into recordings

Several months ago, I thought that it would be a good idea if I could incorporate some guitar playing into my recordings. All I would need for this would be some way of interfacing the guitar to the computer - and there is a simple solution. The device pictured on the left costs about $10 and is easily obtainable. Unfortunately, I couldn't get it to work with my main computer, which is  a throwback to previous days, still running XP (I don't want to start updating software which might not have suitable versions for Windows 8).

Last weekend, it occurred to me that maybe the device would work with my new laptop computer: I plugged my guitar into the device and plugged the device's USB connector into the computer. I began running Audacity, the freeware music editor, and hey presto! The guitar was being recorded into a sound file. I then began developing ideas for incorporating some guitar work into a recording.

At the same time, I was developing an arrangement for an old song of mine, converting the original 4/4 rhythm into 5/4. Once I had the backbone of the arrangement ready, I started adding more instrumental parts, but this time taking care to leave room for where the guitar was going to play an introduction, a solo and a coda.

Yesterday, I sat down with the computer, guitar and interface device in order to record the guitar parts. Audacity allows one to record multiple tracks which can either be mixed down to one or to be exported as individual files; I preferred the latter option. The introduction took a few takes to get right, then I recorded a simple rhythm guitar part for most of the song. A few more solo parts were required, which again were recorded several times each until I was satisfied.

After transferring the files from the laptop to my main computer, I was able to plug them into the song. There is a small problem with latency: the parts as recorded lag slightly behind the main music track, but this was easy to fix. Having multiple guitar tracks was a good idea as I was able to apply different processing to each track: the opening was overdriven, the rhythm part was recorded in stereo and had flanging applied to one side, the middle had multiple echo and the coda had a different type of flanging. Once I was satisfied with the effects and the timing, I mixed the guitar parts down to one track.

This morning I recorded vocals: in places this was hard as the words don't fit the new rhythm too well. One punch in was required for the first verse and the entire final verse was rerecorded. Again, once everything was satisfactory, I mixed the vocal tracks to one track then ran the file through pitch correcting software.

Finally I mixed the music track from Reason, the guitar track and the vocals together. The result is quite good - although whether it justifies the effort is debatable.

[SO: 3927; 3,16,37]

Saturday, June 06, 2015

Vinyl log 12 - 30 May

DayMonthYearArtistTitle
30May197510ccThe original soundtrack

I had probably read about the impending release of this record in the music papers; after the success of 10cc's previous release, "Sheet music", I would have been impatient to hear their latest recordings. I had also read about how a record company had bought their contract for 1 million GBP, which at the time seemed like a huge amount of money.

The first time that I heard anything from this album was when I was riding on a bus and I heard a young girl singing what turned out to be the chorus from "Life is a minestrone". The fact that I was on a bus was unusual enough; I think that I was returning from a stay at my parents.

Anyway: the album. A fantastic one-two punch of an opening, with "Une nuit a Paris" and "I'm not in love". Unfortunately, the rest of the album wasn't so good; the above mentioned "Life is a minestrone" is remnant lyrically of their previous "The Wall Street Shuffle", and is still good for a laugh. "Second sitting at the last supper" is a piece of furious rock; intriguingly all four members have a writing credit. This has always struck me as a strange theme for 10cc as 7.5cc are Jewish.

Personal recollections: my girlfriend, G, could not get enough of "I'm not in love"; we used to listen to this on repeat all the time. I used to entertain thoughts of returning from the university to find her in my room, playing this song (like all fantasies, it never came true).

Forty years on, I find the opening "Paris" track to be incredibly strong, which shows how advanced it must have been then. But there is too much filler, and I wonder whether Phonogram, the record company, recouped their advance.

[SO: 3919; 3,16,37]

Monday, April 27, 2015

Easy walking

My power walks for the past few days have been cut short by pains in my right leg; maybe I was simply out of condition after not walking for a few days. The pains came before the problems with the phone battery so I can't even use that for an excuse.

But maybe those days were training me, getting me back into condition. Today I walked 5.17 km with nary a hint of pain. Using my new technique with the mobile phone, the battery capacity was reduced from 100% to 92% - negligible.

I'm fairly happy.

[SO: 3889; 3, 16, 37]