Software that makes placemats

Organise events to meet up and drink Port.
Post Reply
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

A competent programmer recently looked at the placemat software, and made a suggestion.

Many of the parameters are arrays, which must be of the same length. E.g.:

Code: Select all

/Circlearrays [
	[ (Sandeman) (1970) ]
	[ (Graham) (1970) ]
	[ (Graham) (1963) ]
	[ (Sandeman) (1977) ]
	[ (Graham) (1977) ]
	[ (Graham) (1985) (Single) ]
	[ (Sandeman) (1985) ]
	[ (Graham) (1985) (Magnum) ]
] def

/Titles [
	(S70)
	(G70)
	(G63)
	(S77)
	(G77)
	(G85)
	(S85)
	(G85)
] def

/Belowtitles [
	()
	()
	()
	()
	()
	(Single)
	()
	(Magnum)
] def
The competent programmer observed, rightly, that this doesn’t really fit PostScript’s Programmiersprachegeist. It is also awkward: most of the Belowtitles should be a default (); instead the user is forced to include multiple copies of the desired default.

So he suggested that there be a single array of dictionaries, with defaults outside:

Code: Select all

/Belowtitle () def
/GlassesData [
	<< /Title (S70)   /Circlearray [ (Sandeman) (1970) ] >>
	<< /Title (G70)   /Circlearray [ (Graham) (1970) ] >>
	<< /Title (G63)   /Circlearray [ (Graham) (1963) ] >>
	<< /Title (S77)   /Circlearray [ (Sandeman) (1977) ] >>
	<< /Title (G77)   /Circlearray [ (Graham) (1977) ] >>
	<< /Title (G85)   /Belowtitle (Single)   /Circlearray [ (Graham) (1985) (Single) ] >>
	<< /Title (S85)   /Circlearray [ (Sandeman) (1985) ] >>
	<< /Title (G85)   /Belowtitle (Magnum)   /Circlearray [ (Graham) (1985) (Magnum) ] >>
] def
Upon reflection, in a purist IT sense he is completely correct. But I am concerned that non-programmers, who might already be struggling to use the software, would find this even less intuitive.

Comments?
User avatar
RAYC
Taylor Quinta de Vargellas 1987
Posts: 2060
Joined: 23:50 Tue 04 May 2010
Location: London

Re: Software that makes placemats

Post by RAYC »

jdaw1 wrote:A competent programmer recently...suggested that there be a single array of dictionaries, with defaults outside:

Code: Select all

/Belowtitle () def
/GlassesData [
<< /Title (S70) /Circlearray [ (Sandeman) (1970) ] >>
<< /Title (G70) /Circlearray [ (Graham) (1970) ] >>
<< /Title (G63) /Circlearray [ (Graham) (1963) ] >>
<< /Title (S77) /Circlearray [ (Sandeman) (1977) ] >>
<< /Title (G77) /Circlearray [ (Graham) (1977) ] >>
<< /Title (G85) /Belowtitle (Single) /Circlearray [ (Graham) (1985) (Single) ] >>
<< /Title (S85) /Circlearray [ (Sandeman) (1985) ] >>
<< /Title (G85) /Belowtitle (Magnum) /Circlearray [ (Graham) (1985) (Magnum) ] >>
] def
Upon reflection, in a purist IT sense he is completely. But I am concerned that non-programmers, who might already be struggling to use the software, would find this even less intuitive.

Comments?
As a non-programmer, I do quite like the look of this, though the original multi-array presentation is perfectly clear.

However, I would suggest including the /Belowtitle parameter in each line of the array, even if it is on most occasions left as a default (). To me, this would make it easier for amateur user to see how to adapt the code as required, though i appreciate that as a programmer it might be regarded as redundant.
Rob C.
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

Definitions would be needed for Circlearray, Title, Abovetitle, Belowtitle, Overtitle, and FillText. Most will be empty, so using a default would substantially lessen clutter in the parameters.
User avatar
RAYC
Taylor Quinta de Vargellas 1987
Posts: 2060
Joined: 23:50 Tue 04 May 2010
Location: London

Re: Software that makes placemats

Post by RAYC »

jdaw1 wrote:Definitions would be needed for Circlearray, Title, Abovetitle, Belowtitle, Overtitle, and FillText. Most will be empty, so using a default would substantially lessen clutter in the parameters.
I don't exactly follow what you mean, but my suggestion is that each line of the array would be set out along the lines of the following:

<< /Title (S70) /Above () /Below () / Over () /Fill () /Circlearray [ (Sandeman) (1970) ] >>

This is then an easy template for a user to adapt as required (though in most instances "/Above" and "/Below" etc. will be left as default ()). I'm sure this is inelegant from a programming perspective if a definition can be used, but it is easier (in my opinion) for a non-programmer to use and understand how to introduce the different parameters into the placemat.
Rob C.
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

I accept your point about the template, but, in a typical placemat, almost all of this would be empty. So the GlassesData would be mostly clutter: it becomes harder to read, to see what will happen, and thereby to find errors.

Maybe the conclusion is to leave it as-is, with separate arrays of strings.
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

RAYC wrote:I don't exactly follow what you mean
Concise

Code: Select all

/Abovetitle () def
/Belowtitle () def
/Overtitle () def
/FillText () def
/GlassesData [
	<< /Title (S70)   /Circlearray [ (Sandeman) (1970) ] >>
	<< /Title (G70)   /Circlearray [ (Graham) (1970) ] >>
	<< /Title (G63)   /Circlearray [ (Graham) (1963) ] >>
	<< /Title (S77)   /Circlearray [ (Sandeman) (1977) ] >>
	<< /Title (G77)   /Circlearray [ (Graham) (1977) ] >>
	<< /Title (G85)   /Belowtitle (Single)   /Circlearray [ (Graham) (1985) (Single) ] >>
	<< /Title (S85)   /Circlearray [ (Sandeman) (1985) ] >>
	<< /Title (G85)   /Belowtitle (Magnum)   /Circlearray [ (Graham) (1985) (Magnum) ] >>
] def
Verbose

Code: Select all

/GlassesData [
	<< /Title (S70)   /Belowtitle ()   /Circlearray [ (Sandeman) (1970) ]   /Abovetitle ()   /Overtitle ()   /FillText () >>
	<< /Title (G70)   /Belowtitle ()   /Circlearray [ (Graham) (1970) ]   /Abovetitle ()   /Overtitle ()   /FillText () >>
	<< /Title (G63)   /Belowtitle ()   /Circlearray [ (Graham) (1963) ]   /Abovetitle ()   /Overtitle ()   /FillText () >>
	<< /Title (S77)   /Belowtitle ()   /Circlearray [ (Sandeman) (1977) ]   /Abovetitle ()   /Overtitle ()   /FillText () >>
	<< /Title (G77)   /Belowtitle ()   /Circlearray [ (Graham) (1977) ]   /Abovetitle ()   /Overtitle ()   /FillText () >>
	<< /Title (G85)   /Belowtitle (Single)   /Circlearray [ (Graham) (1985) (Single) ]   /Abovetitle ()   /Overtitle ()   /FillText () >>
	<< /Title (S85)   /Belowtitle ()   /Circlearray [ (Sandeman) (1985) ]   /Abovetitle ()   /Overtitle ()   /FillText () >>
	<< /Title (G85)   /Belowtitle (Magnum)   /Circlearray [ (Graham) (1985) (Magnum) ]   /Abovetitle ()   /Overtitle ()   /FillText () >>
] def
One copy of ‟/Abovetitle ()”, or many?
User avatar
RAYC
Taylor Quinta de Vargellas 1987
Posts: 2060
Joined: 23:50 Tue 04 May 2010
Location: London

Re: Software that makes placemats

Post by RAYC »

jdaw1 wrote:Concise

Code: Select all

/Abovetitle () def
/Belowtitle () def
/Overtitle () def
/FillText () def
/GlassesData [
	<< /Title (S70)   /Circlearray [ (Sandeman) (1970) ] >>
	<< /Title (G70)   /Circlearray [ (Graham) (1970) ] >>
	<< /Title (G63)   /Circlearray [ (Graham) (1963) ] >>
	<< /Title (S77)   /Circlearray [ (Sandeman) (1977) ] >>
	<< /Title (G77)   /Circlearray [ (Graham) (1977) ] >>
	<< /Title (G85)   /Belowtitle (Single)   /Circlearray [ (Graham) (1985) (Single) ] >>
	<< /Title (S85)   /Circlearray [ (Sandeman) (1985) ] >>
	<< /Title (G85)   /Belowtitle (Magnum)   /Circlearray [ (Graham) (1985) (Magnum) ] >>
] def
No doubt.

But let's say, for arguments sake, i am tasting two bottles of G70 (one magnum bottled by Hedges and Butler and one single bottled by BBR) and a half of Dow 1963 (Oporto-bottled) and want to reflect this in the placemats.

As a non-programmer, I don't know what to do with your template. But with mine, I simply fill it out like a form:

Code: Select all

<< /Title (G70) /Above (Hedges & Butler) /Below (Magnum) / Over () /Fill (G70) /Circlearray [ (Graham) (1970) (Magnum) ] >>
<< /Title (G70) /Above (Berry Brothers) /Below (Single) / Over () /Fill (G70) /Circlearray [ (Graham) (1970) (Single) ] >>
<< /Title (D63) /Above (Oporto) /Below (Half) / Over () /Fill (D63) /Circlearray [ (Dow) (1963) (Half) ] >>
Rob C.
User avatar
RAYC
Taylor Quinta de Vargellas 1987
Posts: 2060
Joined: 23:50 Tue 04 May 2010
Location: London

Re: Software that makes placemats

Post by RAYC »

jdaw1 wrote:I accept your point about the template, but, in a typical placemat, almost all of this would be empty. So the GlassesData would be mostly clutter: it becomes harder to read, to see what will happen, and thereby to find errors.

Maybe the conclusion is to leave it as-is, with separate arrays of strings.
Understood - it has worked very well to date and these are niche functions, so no need to change.
Last edited by RAYC on 16:29 Thu 04 Aug 2011, edited 1 time in total.
Rob C.
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

RAYC wrote:But let's say, for arguments sake, i am tasting two bottles of G70 (one magnum bottled by Hedges and Butler and one single bottled by BBR) and a half of Dow 1963 (Oporto-bottled) and want to reflect this in the placemats.

As a non-programmer, I don't know what to do with your template.
The following would work:

Code: Select all

/Abovetitle () def
/Belowtitle () def
/Overtitle () def
/FillText () def
/GlassesData [
	<< /Title (G70)  /Belowtitle (Magnum)   /Overtitle (Hedges & Butler)   /Circlearray [ (Graham) (1970) (Magnum) (H&B) ]>>
	<< /Title (G70)   /Overtitle (Berry Bros & Rudd)   /Circlearray [ (Graham) (1970) (Single) (BBR) ] >>
	<< /Title (D63)   /Belowtitle (Half)   /Circlearray [ (Dow) (1963) (Half) ] >>
] def
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

[url=http://www.conandalton.net/]The competent programmer[/url], after reading the above, by email wrote:As you said, things might have been different for the code if you had started that way but it's tricky to change now. The same is true for your users. Only a few will be able to judge the merits of one approach over the other; everyone else will prefer what they're used to.
A more recent email makes a good observation:
In a subsequent email he wrote:RAYC has a point, that in a typical user interface, you'd likely show all the fields and ask the user to leave fields blank to get the default values. Whereas in code you want to kill clutter and hide stuff that doesn't need to be visible. In the placemat code, the parameters lines are playing two roles - one as plain old code, another as user interface.

So I guess the ultimate answer hinges on which of those two roles is more important for the lines in question.
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

[url=http://www.fortheloveofport.com/ftlopforum/viewtopic.php?p=70203#p70203]On :ftlop:[/url] Eric Menchen wrote:I like the concise version, as long as there is a comment line above telling me all the options. Disclaimer: I write code for a living.
Glenn E.
Graham’s 1977
Posts: 4163
Joined: 22:27 Wed 09 Jul 2008
Location: Seattle, WA, USA

Re: Software that makes placemats

Post by Glenn E. »

jdaw1 wrote:
[url=http://www.fortheloveofport.com/ftlopforum/viewtopic.php?p=70203#p70203]On :ftlop:[/url] Eric Menchen wrote:I like the concise version, as long as there is a comment line above telling me all the options. Disclaimer: I write code for a living.
+1, emphasis mine

Disclaimer: I no longer write code for a living, but I used to.

When programming, leave function to the code and user interface to the comments.
Glenn Elliott
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

If this change is done, all options would be plainly visible, but not necessarily in a comment line. Does that suffice?
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

In the thread entitled [url=http://www.theportforum.com/viewtopic.php?p=44162#p44162]Port from the Nineteen Nineties, Mon 08 August 2011[/url], jdaw1 wrote:
[url=http://www.theportforum.com/viewtopic.php?p=43927#p43927]Here[/url] jdaw1 wrote:
  • And, slightly kludged, a ‘What is it?’ page. Comment encouraged.
[url=http://www.theportforum.com/viewtopic.php?p=43952#43952]Here[/url] AHB wrote:A way to record guesses for posterity. I'm happy to try this out on 8th August.
[url=http://www.theportforum.com/viewtopic.php?p=43953#43953]Here[/url] jdaw1 wrote:Please scan and upload the sheet it’s OK, you will all be rubbish, as would I if I were there and comment on the technology.
[url=http://www.theportforum.com/viewtopic.php?p=44122#p44122]Here[/url] RAYC wrote:Should the "total" field in the guess recorder be a column corresponding to the wines (as currently drafted) or a row at the bottom to correspond to the drinkers? (or perhaps both, giving two totals - best guesser, most guessed)
[url=http://www.theportforum.com/viewtopic.php?p=44124#44124]Here[/url] jdaw1 wrote:Updated draft of the placemats.
  • Kludged improvement to ‟What is it?” sheet. Comment on this would be welcomed.
What is written in the rectangles is the names of wines, abbreviated. So totalling these will be more arduous than totalling numerical scores (3 for first place; 2 for second; 1 third). Further design work probably needed.
Comment encouraged.
RAYC wrote:- Guesses are an interesting record of people's impressions of the port (see comment re: Roeda above)

- A slight concern from some that the process of gathering votes after every round got in the way of relaxed conversation. Though i would imagine that this would be less of an issue at a smaller tasting with fewer bottles.

- We are all terrible - top score was 6 points out of a possible 28 (1 point for vintage, 1 for shipper). Across all 8 people, there was only one correct guess at shipper. Scores for correct identification of vintage were no doubt flattered by the fact that we only had a choice of 10 years (or 9, discounting 1993)!

- The sheet worked well, and totalling points was not an arduous task. I had slight difficulty when drunk with recording votes in the correct columns...though this is not a criticism of the sheet itself!

- Inclusion of an extra row or two for extra ports would be good.
Earlier, in the [url=http://www.theportforum.com/viewtopic.php?p=44124#p44124]planning thread for that tasting[/url], jdaw1 wrote:Note to self: there could be array parameters VoteRecorderRowTotalTitles and VoteRecorderColTotalTitles. The numbers of total rows and columns would be the length of these arrays, titled with their contents. Of course, the arrays themselves could depend on VoteRecorderSheetNum, so compelling a row in the ‘What is it?’ page but not in the ‘WOTN’ page. But that forces users doing an obvious thing to write code, which isn’t nice. Maybe these could be double-depth arrays, the outer array being of the same length as GlassesClusteredOnVoteRecorders. More complicated, but spares the ordinary user from code.

Later note to self: it’s complicated because there is too much flexibility only one total column or row is needed, so no need for the extra arrays depths that allow multiple. Instead have a non-array single piece of text, VoteRecorderTotalRowTitle and VoteRecorderTotalColTitle, both probably being (Total). Then have two arrays of booleans, of the same length as GlassesClusteredOnVoteRecorders, called VoteRecorderShowTotalRow and VoteRecorderShowTotalCol. That better captures what I actually want to do, with less needless excess.
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

Thank you for the comment. Code will be altered, hopefully not at lot, such that this can be a non-kludge.
RAYC wrote:- The sheet worked well, and totalling points was not an arduous task. I had slight difficulty when drunk with recording votes in the correct columns...though this is not a criticism of the sheet itself!
It wasn’t meant that way, but it is a criticism. A good user interface, which applies as much to paper as to electronic media, can be used by a drunk. Please ponder how it could be bettered. For instance, would it have helped if every fourth vertical line were thicker? Would it be worth repeating the names at the bottom of the page?
RAYC wrote:- Inclusion of an extra row or two for extra ports would be good.
That’s mildly inconvenient to do with GlassesClusteredOnVoteRecorders, but an extra integer parameter can be added.
User avatar
RAYC
Taylor Quinta de Vargellas 1987
Posts: 2060
Joined: 23:50 Tue 04 May 2010
Location: London

Re: Software that makes placemats

Post by RAYC »

In addition to the Ryman labels, I can confirm that WH Smith's Large Self Adhesive Labels also work. Indeed, any labels expressed to be "L7165" should work - it appears to be a market standard template (at least in the UK). This may be old news to some - i have not trawled the whole thread.

I would add that 260gsm business cards are also available - if possible to programme, this strikes me as a much better alternative to scissors and glue. I would be happy to acquire and post a batch for testing.
Rob C.
Glenn E.
Graham’s 1977
Posts: 4163
Joined: 22:27 Wed 09 Jul 2008
Location: Seattle, WA, USA

Re: Software that makes placemats

Post by Glenn E. »

jdaw1 wrote:If this change is done, all options would be plainly visible, but not necessarily in a comment line. Does that suffice?
To me, no. As has already been pointed out, in this case the software is the user interface.

If no comment exists the natural assumption is that the code is self-explanatory. Most of this code is in fact self-explanatory, which gives the comments greater weight. If a comment is needed it must be important.

If a comment exists the natural assumption, therefore, is that it explains everything that you need to know. If the comment is read and then something not explained in the comment is discovered in the code, one wonders which is incorrect.
Glenn Elliott
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

Glenn E. wrote:
jdaw1 wrote:If this change is done, all options would be plainly visible, but not necessarily in a comment line. Does that suffice?
To me, no.
Noted. Thank you.
User avatar
DRT
Fonseca 1966
Posts: 15779
Joined: 23:51 Wed 20 Jun 2007
Location: Chesterfield, UK
Contact:

Re: Software that makes placemats

Post by DRT »

I have read all of the above with interest, but note that most of the comment comes from people who fundamentally understand how to write/read code. RAYC and I seem to be the only "users" who really are "users".

I have debated the prospect of having a proper user interface on this application many times with its creator. I have so far met with resistance. I think this conversation lends weight to my side of that debate in that I think it would be extremely useful, and would increase the number of people who could use the software, if it had a form/wizard on the front end that allowed non-code-savy users to set the parameters. There would be no need to include all of the infrequently used parameters as those could be accessed by an expert user who can edit the code. But it would be good to be able to launch a form, type in the names of a few ports and people and then hit a print button.
"The first duty of Port is to be red"
Ernest H. Cockburn
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

Writing a good wizard would be a lot of work. Writing a bad wizard would be pointless.

I am happy to co-operate with any who volunteer to write a wizard.
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

Vote-recorder total rows, etc: done.
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

To aid navigation, a document outline has been added (mark ! /OUT pdfmark). There are no parameters it should be automatically visible when opening a placemat of more than nine pages. E.g., 15 December 2011, The Unknown Shipper at the Bell and 11 October 2011, {Dow, Fonseca, Graham, Taylor} × {1963, 1966, 1970, 1977}.
User avatar
DRT
Fonseca 1966
Posts: 15779
Joined: 23:51 Wed 20 Jun 2007
Location: Chesterfield, UK
Contact:

Re: Software that makes placemats

Post by DRT »

I like the document outline but have just noticed the external links section, which is a splendid addition.
"The first duty of Port is to be red"
Ernest H. Cockburn
User avatar
jdaw1
Cockburn 1851
Posts: 23568
Joined: 15:03 Thu 21 Jun 2007
Location: London
Contact:

Re: Software that makes placemats

Post by jdaw1 »

Hitherto, when placemats have been printed, they have been deemed finished the online edition being frozen at the printed version.

But with the new ExternalLinks feature, there are placemat parameters that don’t affect what prints. There would be advantages in adding to the placemats a link to the review thread, as that thread has, front and prominent, all the links one could want.

Do users object to post-printing changes to the uploaded placemats, provided that the new version would print the same as the printed version?

Please vote one of:
  • ‘Purist’ (the printed version is the final version);
  • ‘Near-Purist’ (later uploads must be of something that would print the same to paper);
  • Other (detail).
My preference is Near-Purist, but I might be persuaded by interesting argument.
User avatar
DRT
Fonseca 1966
Posts: 15779
Joined: 23:51 Wed 20 Jun 2007
Location: Chesterfield, UK
Contact:

Re: Software that makes placemats

Post by DRT »

I vote Near-Purist, but do wonder what sort of geek would find it necessary to print a set of placemats for a tasting that had already happened.
"The first duty of Port is to be red"
Ernest H. Cockburn
Post Reply