I did get a satisfactory explanation of the strategy, tactics, and raison
d'etre of rugby when I was in New Zealand: 'There's a position for everybody
in town, and we all work up a thirst.'  But this doesn't seem to stretch far
enough to cover either cricket or Nisus macros, which I still find
impenetrable. 'Lagaan' helped with cricket; Kino helps with macros--but I
don't think I'm going to master either one at this stage. Keep up the good
work, Kino!

-- Ferren
------------------------------------------------------------
(Dr) Ferren MacIntyre   1 Chemin des Echarts
Campagne sur Aude     11260 France
42.91500N, 2.20900E    +33 (0)468 748870
-------------------------------------------------------------
OSX 10.6.5  MacBook Pro 5,1
2.4 GHz Intel Core-2 Duo, 4 GB



On Tue, Dec 28, 2010 at 06:00, NISUS automatic digest system <
[log in to unmask]> wrote:

> There are 7 messages totalling 502 lines in this issue.
>
> Topics of the day:
>
>  1. OT: Christmas Greetings (3)
>  2. OT:  cricket (was: Christmas Greetings)
>  3. a macro essay: calculate non-contiguious selected digits (2)
>  4. Two or Three things I Know about NWP Macro Language
>
> ----------------------------------------------------------------------
>
> Date:    Mon, 27 Dec 2010 07:53:41 +0000
> From:    Chris <[log in to unmask]>
> Subject: Re: OT: Christmas Greetings
>
> Listening to the news here in the UK this morning I suspect the pressure
> is getting to Ponting.  Haranguing both umpires is not the done thing.
>
> That said I wouldn't want him to be suspended since he should be another
> cheap wicket for us to bag....  :-)
>
> >On the other hand, when there is a changing of the guard ...  ;-)
>
> I agree.  I'm old enough to know you never, ever, write off the Aussies....
>
> Chris
>
> On 27/12/10 Geoffrey Heard wrote:
>
> >>Bit late to this, but Christmas greetings to all and best wishes for a
> >>prosperous and healthy New Year.
> >>
> >>And, commiserations to Geoff on the Aussie's performance in the current
> >>test match :)
> >
> >I have to admit, Chris, that I *LOVE* what's happening! Ponting et al
> >told us all, when they were winning, that they didn't have to pay
> >attention to what we all thought -- they would play how they liked,
> >select who they liked, say what they liked, and be as nasty and
> >arrogant as they liked. The fawning media supported them.
> >
> >I suspect lots of Australians are as happy as I am to see them
> >getting their comeuppance.
> >
> >On the other hand, when there is a changing of the guard ...  ;-)
> >
> >Cheers, geoff
>
> ------------------------------
>
> Date:    Mon, 27 Dec 2010 19:02:25 +1100
> From:    Geoffrey Heard <[log in to unmask]>
> Subject: Re: OT:  cricket (was: Christmas Greetings)
>
> Hiya Chris
>
> >Listening to the news here in the UK this morning I suspect the pressure
> >is getting to Ponting.  Haranguing both umpires is not the done thing.
>
> And in the cirumstances, amazing. The Prior goes on to bat through to
> stumps! Great stuff.
>
> >That said I wouldn't want him to be suspended since he should be another
> >cheap wicket for us to bag....  :-)
>
> True, true. But it is such a bizarre game, you never know what is
> going to happen.
>
> Still, with 4.5 times the Australia score, 5 wickets still in hand,
> Trott batting like a beauty, to say nothing of Prior, abd 3 days to
> play, England should feel a certsin smount of confidence.  :D
>
> Cheers, geoff
>
> ------------------------------
>
> Date:    Mon, 27 Dec 2010 17:47:01 +0900
> From:    Nobumi Iyanaga <[log in to unmask]>
> Subject: Re: a macro essay: calculate non-contiguious selected digits
>
> Hello Kino,
>
> Thank you very much for your reply.
>
> On Dec 27, 2010, at 2:28 AM, Kino wrote:
>
> >
> >> foreach $num in $selectedTexts
> >>      $theNum = Cast to Int $num
> >>      if $theNum == 0
> >>              if $num != '0'
> >>                      exit "$num is not a digit"
> >>              end
> >>      end
> >>      $theExpression &= $num & $theOperator
> >> end
> >
> > Yeah, NWP macro does not have a proper command for that kind of
> > verification. That is a bit annoying, but, in a certain sense, it
> > is those shortcomings which make us more familiar with the macro
> > language. Doing trials and errors to write a viable alternative,
> > surely we learn something.
>
> Yes, I completely agree with you. On the other hand, I think that one
> thing which still lacks in Nisus macro language is the possibility of
> using sub-routine. When this will be possible, I think/hope that
> writing macros will be much simpler (but before that, we -- I --
> should master the current macro language, which is not easy at all...!).
>
> >> $theLength = $theExpression.length
> >> $theLength = $theLength - 1
> >> $theRange = Range.new (0, $theLength)
> >
> > You can condense these three lines into:
> >
> > $theRange = Range.new (0, $theExpression.length - 1)
>
> Ah, I would have not been able to find this by myself. Very
> intelligent and helpful!
>
> >
> >> $theExpression = $theExpression.substringInRange ($theRange)
> >
> > For such a purpose, I think you can use join command
> > advantageously, like in the macro below.
>
> This is also very useful. It seems there are many interesting and
> useful commands in the macro language, but it is difficult to
> understand and use them when one is not familiar with it. Exercise
> and experience...!
>
> > ### another version ####
> ...
>
> This version is much simpler and cleverer. Thank you very much. I
> will keep it in my macro file.
>
> I will reply to your other posting, and please wait some time...
>
> Best regard,
>
> Nobumi Iyanaga
> Tokyo,
> Japan
>
> ------------------------------
>
> Date:    Mon, 27 Dec 2010 07:18:49 -0400
> From:    THDW <[log in to unmask]>
> Subject: Re: OT: Christmas Greetings
>
> --Apple-Mail-568--538566938
> Content-Transfer-Encoding: quoted-printable
> Content-Type: text/plain;
>        charset=windows-1252
>
>
> On 25 Dec 2010, at 19:04, Geoffrey Heard wrote:
>
> > It was the last Feudal family dispute -- the sovereigns of all the =
> principal nations when the war started were cousins. Of course, =
> underlying that was the treasure generated by power over less developed =
> lands that could be sucked dry.
>
> This should clinch you the Us and Them Chair of modern history at Mel =
> Gibson University.=20
>
> You are overlooking the role of jingoism among the masses. Italy went to =
> war in 1915 largely as the result of popular demand, not least from (the =
> until then socialist) Benito Mussolini.
>
> T
>
>
> seen in the Economist:
>
>
> > In the spring of 1854, as the Crimean fighting began in earnest, an =
> Anglican cleric declared that Russian Orthodoxy was as =93impure, =
> demoralising, and intolerant as popery itself=94. What could be more =
> natural, then, than to team up with Islam and popery to cleanse that =
> terrible impurity? A French newspaper, meanwhile, gave warning that the =
> Russians represented a special menace to all Catholics because =93they =
> hope to convert us to their heresy=94.
>
>
>
>
>
> THDW
> [log in to unmask]
>
>
>
>
> --Apple-Mail-568--538566938
> Content-Transfer-Encoding: quoted-printable
> Content-Type: text/html;
>        charset=windows-1252
>
> <html><head></head><body style=3D"word-wrap: break-word; =
> -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
> "><br><div><div>On 25 Dec 2010, at 19:04, Geoffrey Heard wrote:</div><br =
> class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><span =
> class=3D"Apple-style-span" style=3D"border-collapse: separate; =
> font-family: 'Lucida Grande'; font-style: normal; font-variant: normal; =
> font-weight: normal; letter-spacing: normal; line-height: normal; =
> orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; =
> widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; =
> -webkit-border-vertical-spacing: 0px; =
> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
> auto; -webkit-text-stroke-width: 0px; font-size: medium; ">It was the =
> last Feudal family dispute -- the sovereigns of all the principal =
> nations when the war started were cousins. Of course, underlying that =
> was the treasure generated by power over less developed lands that could =
> be sucked dry.</span></blockquote><br></div><div>This should clinch you =
> the Us and Them Chair of modern history at Mel Gibson =
> University.&nbsp;</div><div><br></div><div>You are overlooking the role =
> of jingoism among the masses. Italy went to war in 1915 largely as the =
> result of popular demand, not least from (the until then socialist) =
> Benito =
> Mussolini.</div><div><br></div><div>T</div><div><br></div><div><br></div><=
> div>seen in the =
> Economist:</div><div><br></div><div><br></div><div><blockquote =
> type=3D"cite"><span class=3D"Apple-style-span" style=3D"font-family: =
> Verdana, Arial, sans-serif; font-size: 13px; color: rgb(51, 51, 51); =
> line-height: 20px; ">In the spring of 1854, as the Crimean fighting =
> began in earnest, an Anglican cleric declared that Russian Orthodoxy was =
> as =93impure, demoralising, and intolerant as popery itself=94. What =
> could be more natural, then, than to team up with Islam and popery to =
> cleanse that terrible impurity? A French newspaper, meanwhile, gave =
> warning that the Russians represented a special menace to all Catholics =
> because =93they hope to convert us to their =
> heresy=94.</span></blockquote></div><div><br></div><div><br></div><div><br=
> ></div><br><div>
> <span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
> color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-size: 16px; =
> font-style: normal; font-variant: normal; font-weight: normal; =
> letter-spacing: normal; line-height: normal; orphans: 2; text-align: =
> auto; text-indent: 0px; text-transform: none; white-space: normal; =
> widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; =
> -webkit-border-vertical-spacing: 0px; =
> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
> auto; -webkit-text-stroke-width: 0; "><div>THDW</div><div><a =
> href=3D"mailto:[log in to unmask]">[log in to unmask]
> =
> m</a></div><div><br class=3D"webkit-block-placeholder"></div></span><br =
> class=3D"Apple-interchange-newline">
> </div>
> <br></body></html>=
>
> --Apple-Mail-568--538566938--
>
> ------------------------------
>
> Date:    Tue, 28 Dec 2010 03:18:19 +0900
> From:    Kino <[log in to unmask]>
> Subject: Re: a macro essay: calculate non-contiguious selected digits
>
> Hello Nobumi,
>
> On Dec 27, 2010, at 5:47 PM, Nobumi Iyanaga wrote:
>
> > On the other hand, I think that one thing which still lacks in Nisus =
> macro language is the possibility of using sub-routine. When this will =
> be possible, I think/hope that writing macros will be much simpler
>
> I agree with you. Due to the lack of sub-routine, sometimes I have to =
> write a verrrrrry long loop repeating several code blocks again and =
> again in it. That is annoying.
>
> > (but before that, we -- I -- should master the current macro language, =
> which is not easy at all...!).
>
>
> I remember the impression of something very stern I felt when I looked =
> at NWP 1.1's Macro Reference for the first time. But believe me, it is =
> far easier to master than it looks. For example, the naming scheme of =
> commands is so consistent that you can know the syntax of a command from =
> its name in most of the cases. Of course, I was in an uncommon =
> situation. To test all new commands, I wrote a large number of small =
> macros in a short period. So, if you do something similar (not for the =
> current enlarged command set but for the basic one flagged as v1.1), I =
> bet you will feel very comfortable with the NWP macro. It would take =
> several days but worth trying, I think. Now I find the current NWP macro =
> the easiest and the smartest of all the macro/scripting languages I have =
> ever tried. NW Classic macro was simpler in some aspects but, with it, =
> you were often forced to invent something acrobatic and tricky.
>
> The same applies to the regular expression. If there is something I know =
> and you don't, that is just because I tested all special characters and =
> syntactic elements, including Unicode properties, e.g. \p{Hebrew}, when =
> they adopted the new regex library in NWP 1.0.1.
>
> BTW, according to my testings of years ago, the atomic group -- =
> (?>subexp) -- is not especially efficient in NWP although it is =
> supported properly. That does not mean that its implementation in NWP or =
> in oniguruma (regex library) is bad. On the contrary, the regex library =
> -- the one implemented in NWP at leaset -- seems to be very well =
> optimized that you don't need using it in order to improve the =
> performance. I'm not 100 % sure but that is my impression.
>
> >> You can condense these three lines into:
> >>=20
> >> $theRange =3D Range.new (0, $theExpression.length - 1)
> >=20
> > Ah, I would have not been able to find this by myself.
>
> Neither did I. Until I saw something similar in a macro written by =
> Martin, I did not imagine such a construction to be possible.
>
>
> Kino
>
> ------------------------------
>
> Date:    Tue, 28 Dec 2010 03:34:56 +0900
> From:    Kino <[log in to unmask]>
> Subject: Two or Three things I Know about NWP Macro Language
>
> Below are the essentials of what I came to know by exchanging messages =
> with Martin at Nisus Soft and of some undocumented things I verified by =
> myself.
>
>
> - You can repeat the same commands several times without fearing a =
> performance hit. I was told that NWP caches them. For example, recently =
> I wrote such a routine in a macro.
> =
> <http://www2.odn.ne.jp/alt-quinon/files/NWPro/link/MakeLinkIndex_nwm.zip>
>
> foreach $sel in $sels
>        $attr =3D $sel.text.attributesAtIndex $sel.location
>        if $pages{$attr.link} =3D=3D undefined
>                $pages{$attr.link} =3D Array.new
>        end
>        $page =3D $sel.text.pageNumberAtIndex $sel.location
>        if $pages{$attr.link}.indexOfValue($page) =3D=3D -1
>                $pages{$attr.link}.appendValue $page
>        end
>        $page =3D $sel.text.pageNumberAtIndex($sel.bound - 1)
>        if $pages{$attr.link}.indexOfValue($page) =3D=3D -1
>                $pages{$attr.link}.appendValue $page
>        end
> end
>
> Looking odd? In such a case, usually you would use a variable storing =
> $attr.link ($linkText in the code below). But there is no significant =
> difference in performance (I did benchmark tests) between the code above =
> and a common way of coding like this:
>
> foreach $sel in $sels
>        $attr =3D $sel.text.attributesAtIndex $sel.location
>        $linkText =3D $attr.link
>        if $pages{$linkText} =3D=3D undefined
>                $pages{$linkText} =3D Array.new
>        end
>        $page =3D $sel.text.pageNumberAtIndex $sel.location
>        if $pages{$linkText}.indexOfValue($page) =3D=3D -1
>                $pages{$linkText}.appendValue $page
>        end
>        $page =3D $sel.text.pageNumberAtIndex($sel.bound - 1)
>        if $pages{$linkText}.indexOfValue($page) =3D=3D -1
>                $pages{$linkText}.appendValue $page
>        end
> end
>
>
> - "$textObject.find" is much faster than "Find" command because the =
> former does not create selections actually. There is a huge difference =
> when processing a very large number of occurrences.
>
>
>
> - Something similar applies to "Push Target Selection ... Pop Target =
> Selection" command. For example,
>
>        $doc =3D Document.active
>        $sels =3D $doc.text.findAll '(?<=3D\t)\S+(?=3D\t)', 'E'
>        Push Target Selection $sels
>                Set Font Name 'Times'
>        Pop Target Selection
>
> is much and much faster than
>
>        Find All '(?<=3D\t)\S+(?=3D\t)', 'E'
>        Set Font Name 'Times'
>
> when there will be a large number of selections.
>
>
> - When inserting a large number of footnotes, it is not recommendable to =
> process from the document end to the document start. Then, NWP would be =
> forced to update note numbers of all the already inserted footnotes each =
> time you insert a new one.
>
> Then, one inconvenience in processing from the document start is the =
> necessity to update TextSelection objects when a new footnote has been =
> inserted. For that, you can use a routine in a macro
>        =
> <
> http://www2.odn.ne.jp/alt-quinon/files/NWPro/footendnotes/ConvertHTMLNote=
> s_nwm.zip>
> written for converting notes in e-texts such as
>        <http://socserv.mcmaster.ca/~econ/ugcm/3ll3/hume/treatise1.html>
>
> In that macro, you will find...
>
> $offset =3D 0
>
> # $ref is a TextSelection object corresponding, for example, with "(47)" =
> in the html file
> foreach $ref in $noteRef
>        # Extract the subtext of the first value of $noteText (array)
>        $note =3D $noteText.dequeue.subtext
>        # replace "47. " of "47. Sect. 4." with $defNoteText
>        $note.findAndReplace $noteNum, $defNoteText, 'E-i'
>        # Store the current $text.length in $previousTextLength
>        $previousTextLength =3D $text.length
>        # Modify the location of $ref so that it fits the current state =
> of $text
>        $ref.location -=3D $offset
>        # Delete "(47)".
>        $text.deleteInRange $ref.range
>        # Insert a footnote with note text ($note)
>        Note.insertFootnoteInTextAtIndex $text, $ref.location, $note
>        # Increase $offset by (PreviousTextLength - CurrentTextLength)
>        $offset +=3D $previousTextLength - $text.length
> end
>
> The code above is based on the one given by Martin when I complaint =
> about the performance of an oldest version of my macro, namely =
> <
> http://www2.odn.ne.jp/alt-quinon/files/NWPro/footendnotes/Body2Note_nwm.z=
> ip>.
>
>
> - And... probably you would already know but there is a long-standing =
> bug in the interpretation of back slash enclosed by single quotes. The =
> find expression in
>
>        Find '\\footnote{[^}]+}', 'E'
>
> will be interpreted as '\f' (page break) followed by 'ootnote{[^}]+}'. =
> To work it around, you have to put three (or four?) back slashes. That's =
> ugly. So I always use a hexadecimal notation \x{5C}.
>
>
> Kino
>
> ------------------------------
>
> Date:    Tue, 28 Dec 2010 12:53:52 +1100
> From:    Geoffrey Heard <[log in to unmask]>
> Subject: Re: OT: Christmas Greetings
>
> >On 25 Dec 2010, at 19:04, Geoffrey Heard wrote:
> >
> >>It was the last Feudal family dispute -- the sovereigns of all the
> >>principal nations when the war started were cousins. Of course,
> >>underlying that was the treasure generated by power over less
> >>developed lands that could be sucked dry.
> >>
> >
> >This should clinch you the Us and Them Chair of modern history at
> >Mel Gibson University.
> >
> >You are overlooking the role of jingoism among the masses. Italy
> >went to war in 1915 largely as the result of popular demand, not
> >least from (the until then socialist) Benito Mussolini.
> >
> >T
> >
> >seen in the Economist:
> >
> >
> >>In the spring of 1854, as the Crimean fighting began in earnest, an
> >>Anglican cleric declared that Russian Orthodoxy was as "impure,
> >>demoralising, and intolerant as popery itself". What could be more
> >>natural, then, than to team up with Islam and popery to cleanse
> >>that terrible impurity? A French newspaper, meanwhile, gave warning
> >>that the Russians represented a special menace to all Catholics
> >>because "they hope to convert us to their heresy".
>
> Lovely stuff, T, but my explanation was shorter!  :D
>
> Not forgetting that the C of E clergy were catspaws (and often
> younger brothers of) the aristocracy.
>
> And let's not forget that other Crimean war in 1919 -- Australian
> troops, sick of the bloodshed, climbed on to ships expecting to go
> home ... but found themselves in the Crimea fighting for the White
> Russians. Gawd.
>
> Cheers, geoff
>
> ------------------------------
>
> End of NISUS Digest - 26 Dec 2010 to 27 Dec 2010 (#2010-3)
> **********************************************************
>