[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

For Carl DiStefano: Palming off fauxny XPL again?



Ah so! the etymology of "phony" . . .

> Robert:
> FAUXCODE is intended mainly to provide a handy way of incorporating
> bits and pieces of XPL code into E-mail discussions such as the
> ones we conduct here. It's not meant primarily for
> transmitting full-blown XPL applications; as you point out,
> there are more efficient ways of doing that. Full-blown or excerpt,
> it's inherent in this text-based environment that code containing
> anything beyond plain-vanilla XPL -- e.g., 3-byte entities other
> than functions -- will have to be annotated by the author to be
> generally understood. . . Still and all, most XPL
> *is* plain vanilla, and FAUXCODE, I think, will take most of the
> drudge work out of talking about it.
> --Carl.

Agreed, and fair enough, Carl. It's great to have something that
throws code, whether accurately or only approximately, into an
ASCII (32-127) mail editor for "bits and pieces" examination,
"discussion", "talking about". We've all (you me everybody) been
doing this, for didactic purposes, in an altogether too ad hoc
way for too long. Standard markup conventions obviously make
sense (I'm a proponent of
REORGaNIZation). My mild reservation is simply to the
"encoding" (recoding, back into XPL), by the recipient, of
something that very possibly has been stripped of crucial
complexity and nuance. Which reconstituted program will not
work! Bottom line is, IMHO a utility that works only some of the
time is not a good utility. Even if only light-duty
(because it isn't flagging you when you cross over into heavy
duty). I'd remove the ASCII==>XPL recoding option.

I think if you run through the logic of this, you pretty much end
up at MIME|XXencode. I mean, it's possible to deconstruct every
2- or 3-byte and low|high ASCII char code and write an XPL util
that marks them up with absolute accuracy in ASCII 32-127. In
fact, as an exercise, I just did it (the hot weather, you know,
renders real work virtually pointless). The only difficult
character 0-255 was 26 EOF, which is hard to write into a S/G in
1-byte form; you can easily parse 26 out of the 3rd position of a
3-byte source char in a freestanding RUN-style PM, but the
Help system went bananas when I tried to load that same source
character into U2; and XyWrite itself kept discarding
26 when I tried to parse it out of the _2nd_ position of a
3-byte char -- curious. (Clearly a recognized hotchar problem;
you'll note that in the extended [Speedo] charset, chars 282 and
538 -- the only ones that contain 26 in the
2nd position -- are explicitly "Reserved".) Solution (good for
both freestanding PM and U2) was to use a source char with 26 in
the 2nd position, strip the 3rd byte off with XS, prepend "255+x"
to bytes 1+2 of the source char (which had the effect of creating
a 4-byte string in memory, with 26 in the 4th position), then
strip off the first 3 bytes with XS
- voila, a 1-byte 26 in a Save/Get.

Here's a sample of the output (meaningless source, but conveys an
idea):

XPLeNCODE v1.0 begin FAUX.TXT
[YD][XD][XP][BN](es 1){<}SX01,{<}VN$NW{>}{>}{<}SX01,"[BN]dnw
="+{<}IS01{>}+"[Q2]"{>}[BN]d nw=1[Q2][TF][DF][BF][DF][BN](ne)
{<}IF{<}VN|03{>}>3{>}{<}PRUnanticipated error: evaluates thi s
character as 4+ bytes{>}{<}EX{>}{<}EI{>};*;[cr|lf]{<}IF{<}I
S20{>}{240}{<}IS02{>}{>}[cr|lf]
....[cr|lf]
....[cr|lf]
[255+69+53][255+69+54][255+69+55][255+69+56][255+69+57][255+6
6+65][255+69+66][255+69+67][255+69+68][255+69+69][255+69+70][
255+70+48][255+70+49][255+70+50][255+70+51][255+70+52][255+70
+53][255+70+54][255+70+55][255+70+56][255+70+57][255+70+65][2
55+70+66][255+70+67][255+70+68][255+70+69][255+70+70][cr|lf]
....[cr|lf]
....[cr|lf]
{<
}SX02,{<}IS07{>}+{<}IS09{>}+{<}IS10{>}+"{3}{4}{5}{6}{7}{8}[cr
|lf]
{11}{12}{13}{14}{15}{16}{17}{18}{19}{20}{21}{22}{23}{24}{25}"
+{<}IS08{>}+"{27}{28}{29}{30}{31} !"+""""+"#$%&'()*+,-./01234
56789:;<=>?@ABCDEFGHIJKLMN[cr|lf]
....[cr|lf

end
XPLeNCODE

You can re-code (decode) it perfecto. For keyboard macro type
stuff, not too bad . . . but legibility/readability drops to near
zero when we get into exotic stuff, i.e.
3-byters. Thus, MIME|XXencode. I'll UL (XXencode!) the PM if
you're curious. Actually -- here it is, appended.

Chow for now.

=======
Robert Holmgren holmgrn@xxxxxxxx
=======

XXencode version 1.51 (MSDOS) begin 644 xplncode.pm
hfYRAEOwB0bhvEoVZP5+oNIt1HoF3TLoUG4JgQ0-aPr6UK3-ANIt1HoF39Z-B
h1EeiFYmjfYlBAYF7futGHHQsF2aj1EdMI2lZHYBDF2IiI2oURX2iA0+UIWt8
h9YVjP4pbQaJi60+p9n6l9nYp1Ed1QaZoOKBVP0-ZHYBDF2JwF4J1HoF360Vo
hO4Zn64Zn65FcNG+eNKtXPqFZ8W-hPqFpP4Id1Ed4Pr6UBmpWOLEUEJB1GIYU
hS4NZQW-VPaEUQ57dPbFdPaQU85Fj64NdP4JwMqxiQqxgNLlkQaZiR4Jm8Eo8
h1EdDQ4JmMLFZQm-pQ4xi64BpQb7ZPbEUNaZgNG-aQaxh64BpQb7ZPbEUzo33
hEp1zEIMUR4wUFIx41EdERLFn657ZQrJgR5AUMLEUFKtY64xa62BpQb7ZPbEU
hFaZgNEo8FKtoNL6UJLBZQW-1RLBoPqpdSa3oOKxi64Zi63BVRaIjFqJo61+l
h1EcB0Z7ZQrJgR0-ZHYBDF2IB0XoxDHoxDG+xDHoxDHoB0atjQapVP0-YOLBk
hP43t60+x623HEoZ761Am9H2mBko8SmAX6roU60+U60+U60+U61oUAGpWSLFZ
h623HEoZ761+hAn3wAH6s9H6pBEo8KpgX6mAfLGAX6mgX6mBR61oUAWoUMKtY
h61AhMbZoNG--IoB7GG-nNL3pNKtXNLAU84NpPaBnT4BcML7nT4BjN4Jn8Eo8
h1Ed9PaxrPW-AOKpdR43oOKxiQko8DHoxDHoUDHoxDHoxDHoxDHoB0Z7ZQqJm
hRaJY63BoQaZiNrAu1EcU64BpQalt647mMKBZQm-ZPaBgPrBdPaQUPbJhMaJm
h1EcU647mMKBfNLFn64JiMqljQqZiNm-PPbJhMaJm8ppiRKpWNL6fPbJhMaJm
h1EcU643iSG+Y64FZNaZiNKEUMbYUMrJnR4xhOLdVR4ZjPW-dPW-HMLNZ9oRZ
hR0+kAEo8Fa3oMKkUHoxB60VDRLFDNYpZPKxmSGYUQ4VZPaxhNKtV65RdR4UU
hP43mNqIUK3-A65BjRL7XNG-aOKlZQko860-HPqlpR4ZjPXcU627mNK3f65Bj
hRL7XNG-dPbFj65BhMKlgNL6UQ4ZZMqJnCm-XPqtXMLFZPa3oNG-mNLBpP5Fn
h1Ed7PWphNKpjQbYUNKtXPqFdPaQUMq3i65FVOqIUR4Ji64xm64pjQaIUQqJX
hPqtYQm-rOLFc64lVQaRZ1EcU64NdP4Jn60VV607LPr7fOKtb9Wsi6W-EIaxB
hI3EUOLAUN4ZnQ4lVSKJY8Eo81Ed1RLBoPqpdSa3oOKxi62NjQapVR+o8DHox
hDHoxDHoxDHoxDG+xDHoxDHoB0ZVtJr7dR4IY6XoWNIt1HoF364tVR4ZqNGEW
hz07tPrJm64BpQrFjPKZuMLFdPqsY6aBVQb7dMKRZ657ZR5JmPW6B0W+UNGtb
h9Uo80HpvCLrwSrFVMboB0jz+q1pPAXIp8n2tAWgmAHNRz3hrK3oB0YsiEWsU
hHaJsR0-ZS43hQ4lZ643kQ4JVQbAUPqsUR4VmNKIUP4ZiNLAg643iN0-XPqtn
hOLBoQm-jNUo8Mq3mQaZVNqIUQaJoRL7i6XoWKn2n8n2kLG9w6ZhXQblgNZp-
hIoB7GGolAm7XML7mOK3bNG-mNLFpQasW1EcB0XpPAHAfAH-Rz3hXQblgNZoB
h1EdIO4IUNKNaNKBo64xa65FcNG-VMaxqNG-XRLBoPqpdSa3oOKxi64Zn65Fj
h657ZQ4lVMqIUKn2n8n2kLG-rOLFc1EcU65FcNG-nR57dPaQUKqBmT4laLG-a
hPqlgPrRZN0-WSG-VPW-ZPaEhPqMhP4ZiNG-mNLFpQasB0Uo8fYN1fko8Faxm
h63JnNG-WSG-GFItJHI73IWtEHHcB0Z7ZPbJhMaJm63VEH2t1HoF39Z-B64Zi
h63--EogUPKxYNEo8F4JaMLJgR0-HMLNZ9oRZR0-GMKtbNHol9H6k1EdDI3F7
hHotnCW-iPqtZ1EeiFYmj1EfzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLz
hAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLz
hAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLz
hAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYIB0bhhTEo8
h1EdvSnJZPaBjN4JxTG-MI2lCEox2FGtEHG-qAGsk60-GGYUU61IjAX2jCHIB
h0U8iH27-fngeCko8Cmcv62JiR4Jm63JnNL6UErJnR4xhOLdVR4ZjPW-dPW-H
hMLNZ9oRZR0+kAEo8fZBKA12g1Ec7DLgtTTlvR43WTEo81EcxKn2n8n2kLTlP
hMr7wP4NR1Eo8fXpvAHQoTTlvD5oB0ewxSn2rBLrwSntx1EfzkGsxKn6pBGgl
hCHAfB1NRz3hrD3oB0jz-9npPAXIp8n2tAmgoBprwKrQyLEo8zw0NDJgmBHIf
hAHYm8n2pAprwKrQNLEo8zw0PDJgmBHIfAHYm8n2pBJrwKrR1LEo8zw0hDJgm
hBHIfAHYm8n2rAprwKrQhLEo8zw0iDJgmBHIfAHYm8n2rB3rwKrQiLEo8zw0k
hDJgmBHIfAHYm8n2rBZrwKrQkLEo8zw0lDJgmBHIfAHYm8n2rBprwKrQlLEo8
hzw0mDJgmBHIfAHYm8n2rC3rwKrQmLEo8zw0nDJgmBHIfAHYm8n2rCJrwKrQn
hLEo8zw0oDJgmBHIfAHYm8n2sA3rwKrQoLEo8zw0pDJgmBHIfAHYm8n2sAJrw
hKrQpLEo8zw0qDJgmBHIfAHYm8n2sAZrwKrQqLEo8zw0rDJgmBHIfAHYm8n2s
hAprwKrQrLEo8zw0sDJgmBHIfAHYm8n2sB3rwKrQsLEo8zw0tDJgmBHIfAHYm
h8n2sBJrwKrQtLEo8zw1-DJgmBHIfAHYm8n2tAprwKrR-LEo8zw1ADJgmBHIf
hAHYm8n6kB3rwKrRALEo8zw1CDJgmBHIfAHYm8n6kBZrwKrRCLEo8zw1DDJgm
hBHIfAHYm8n6kBprwKrRDLEo8zw1HDJgmBHIfAHYm8n6lAJrwKrRHLEo8zw1L
hDJgmBHIfAHYm8n6lBJrwKrRLLEo8zw1MDJgmBHIfAHYm8n6lBZrwKrRMLEo8
hfngeCko8fZBKA16g1EfzUKDzUKLzUKTzUKbzUKjzUKrzUKzzUL5zULDzUObz
hULLzULTzULbzULjzULrzULzzUM5zUMDzUMLzUTrzUTzzUU5zUUDzUULzUUTz
hUUbzUUjzUUrzUUzzUV5zUVDzUVLzUVTzUVbzUVjzUVrzUVzzUW5zUWDzUWLz
hUWTzUWbzUWjzUWrzUWzzUPDzUPLzUPTzUPbzUPjzUPrzUPzzUQ5zUQDzUQLz
hUQTzUQbzUQjzUQrzUQzzUR5zURDzURLzURTzURbzURjzURrzURzzUS5zUSDz
hUSLzUSTzUSbzUSjzUSrzUSzzUT5zUTDzUTLzUTTzUTbzUhTzUZrzUZzzU+5z
hU+DzU+LzU+TzU+bzU+jzU+rzU+zzU-5zU-DzU-LzU-TzU-bzU-jzU-rzU-zz
hU05zU0DzU0LzU0TzU0bzU0jzU0rzU0zzU15zU1DzU1LzU1TzU1bzU1jzU1rz
hU1zzU25zU2DzU2LzU2TzUb5zU2bzUfzzUd5zU2jzUdDzUjTzUgLzUFzzUGjz
hU2rzU2zzUhbzU35zUiLzUejzUMjzUMrzUMzzUN5zUNDzUNLzUNTzUNbzUNjz
hUNrzUezzU3DzU3LzUhrzU3TzU3bzU3jzU3rzU3zzUOTzU45zU4DzU4LzU4Tz
hUdLzU4bzUYbzUdTzU4jzUXjzU4zzUYjzUibzUHzzU55zUMTzU5DzUErzU5Lz
hUI5zUYTzUiDzUJzzUJbzUJjzUNzzU5TzUMbzU5bzUgzzUZLzU5jzUajzUIzz
hUHjzUaTzUJ5zUabzUbDzUebzUj5zU4rzU5rzUYDzUXDzUJrzUdbzUgbzUijz
hUTjzU5zzUO5zUczzUa5zUfrzUYLzUeDzUiTzUfjzUG5zUH5zUGDzUHDzUHLz
hUOjzUYrzUHTzU65zU6DzU6LzU6TzU6bzU6jzU6rzU6zzU75zUf5zUK5zU7Dz
hUazzUbTzUIDzUerzUGrzUZDzU7LzU7TzUXTzUjLzUfDzUbjzU7bzUGLzUOLz
hU7rzU7jzUGzzUZ5zUODzU7zzU85zU8DzU8LzUgDzU8TzUIjzUITzUdrzU8bz
hU8jzUGTzU8rzU8zzU95zU9DzU9LzU9TzU9bzUbrzUbzzUc5zUcDzUcLzUcTz
hUcbzUcjzUXbzUgTzU9jzU9rzU9zzUA5zUADzUALzUATzUAbzUAjzUArzUh5z
hUAzzUB5zUBDzUYzzUBLzUbbzUBTzUBbzUhjzUBjzUBrzUfTzUEzzUF5zUFDz
hUFLzUFTzUFbzUFjzUhLzUhDzUdjzUXzzUBzzUaLzUeLzUC5zUCDzUCLzUaDz
hUCTzUCbzUILzUFrzUXrzUCjzUfbzUCrzUCzzUIrzUarzUZbzUe5zUdzzUJTz
hUD5zUY5zUDDzUJDzUg5zUDLzUcrzUGbzUJLzUDTzUZjzUbLzUDbzUhzzUjDz
hUHbzUgjzUXLzUDjzUDrzUOzzUirzUDzzUE5zUEDzUETzUELzUIbzUEbzUEjz
hUgrzUeTzUP5zUizzUOrzUi5zUX5zUHrzUZTzUfKjCmcv1EfzUHrzUEjzUOrz
hU5rzUCCiIpMkAmnzUTqjfZBKA1EgUOyiK3AkAmkkB0kkBGkgA1OjCmcv68tH
hJX+p916pBOwv68tHJX+q916pAuwB0etHJX+n9Du-+8yiK3AkAmkkB0kkBmkg
hA1WjCmcv68tHJX+r916pB8wv68tHJX+s910j1EeiIpMkAmnzUE4jfZVHA1Ag
hA1EgA1Ig91+tfngeCm0iIpMkCGkkAOwB0etHJX+n9Dy-+eyiK3AkAmkkB0kk
hBGkgAH0jCmcv68tHJX2k91+mfko8fZBKA1AgzVc-futMIn+n91+t912l90kl
hAeyiIpUkAmmiGJAkBOwf6c+W8ut7In2lfuyiIpMlAGkPK8yiK3AkAmklAGkg
hAH6gAHCjCmcv68tHJX2n916qfko8fZBMA1AgfYZHA1Wj8ut7In+tfmiiGJAl
hA8wf6UA2-EM50+Y80kkB1UwE2F6H3-IK3lUN6WiiGJAlAuwf6VgQ5FsT602W
h8m6W6W6f6WAY7GMb80Ye8mkh9WwkAH6nB1IqBnUtCXgwDHszE230EoF3FYR6
hGId9H2pCHp-FIZBIJJNLK3ZOKplRLZxUMK7XN4JaNqVdOahgPKtjQ53mQrFp
hRbRsSLdvT5pyTs0-UcC2VMO5W6a8WsmBXcyEYN8HZ7KKZtWNadiQbNuTc84W
hcuGZdeSceOeff8qifv0lgfCohPOri9auivmxjfz+kQ91lAL4lwX7mgjAnQvD
hoB5GoxHJphTMqRfPrBrSry1VsiDYtSPbuCbeuynhvizkwT9nxDLqxzXtyjjw
h6WiiGJAkBewffYZHA1SjfutHJX2l9-hMfutHJX2m960jfZBKAHEgfngeCko8
hCmcv1EeiH270fzy+Ozy+Mzy+OutHJX+ofzy-0ut7FetKHbkkB8wwAOyiIpMk
hB0kB0VhMDOyiIpMkBGnwfutHJX+q9+o8futEIZRjQahdPaQi9WujfYZ4fZNC
hT1+lfnsmfutAEYCjfZVHA12gA1Eg91+r91+sfutMIn+s91+p91+r90klAuyi
hK3AlAmkkBWkkC0kgA1ajfZBMA12g6Uo86WiiGJAkCOyjfZBKA1YgfutAEYGj
hfYZ4fYZHAHGjw8t7In+rfuyiIpMlA0mjfZVHAHEgA1QgA1Yg912kfutHK12o
h98t7In+tfmiiGJAkC8wffYZHAH0jfut5H2GjfYJ7fut7FetKHbkkAOwyAeyi
hFol1fut3GOyiFIajfZBKA1Ag4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUP
hK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM
h4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUP
hK-hM4pWjfZBKA1EgfutAEYKjfYZ4fZNCT12ofnsqAGMc6UoWvet7In2ofnkk
h6G6B6iuiGJAlB8wyBX2V6Uo86iuiGJAlB8wwA02W1EcWvet7In2ofnsqAGaj
hfZVHAHEgA1Ag91+p91+qfutHK1+o98t7In+ofmiiGJAkBOwf6Uo86eyiIpUl
hB0miGJAkBeyjfYRAFOyiFIajfZBMA1IgfZNC72N7fuyiIpUkB0kW1EdMI2lZ
hHYBDF2IURX2iA+o8MaJbOKsU6WiiGJAkBOwf6Uo86WiiGJAkB8wffYZHAHGj
h8m6B0aJiN+o8K3-ANIt1HoF31EcWfzy+HOt5J1+ofutEIYFjPaKjfYJMfut3
hGOyiGIOiJYtwA1GjD18jfYZ4fYZHA1GjDW6T6WOiGJAkB8ww6c+WfutHK12o
h98t7In2ofmiiGJAkB8yjfYRAEeyiFIajfZBMAHIgfYZHA1Gjvet7In+nfuyi
hIpUlB0miGJAlB8wf6bgW8ut7In2pfmgWTG8jfYRAEeyiFIajfYZ4fZNCT1+o
hfnknfutHK12o98t7In2ofmgWKn2n8n2kLG8jfYRAEeyiFIajfYZ4fZNCT1+o
hfnsnfutEIZJiMKtoOKBdQ43oNKEUNL7mPr6u60-ZRa3gRK3oNLAUR4VdQm-X
hO43mMKBoNL6UMLAUB0gUMbZoNG-XPqFZfut3K8yiFIajCmcv1EeiGIOiGJAk
hAezkfYZHA1GjfutHK1+o92-1HZMcfYZHA1Gj8OyiIpUlB0miGJAlB8wf6ZgW
h8ut7In+ofmgWLG8jfYRAEeyiFIajfZBMAHIgfYZHA1Kj8m8+6WiiGJAkB8yj
hfZVHAHIgAH2g912q912rfutMIn2q912m91+p90klC8yiIpUlC0miGJAlC8zi
hfYZHA1Cjfut7Fet7In2sfnkkfutHJX2s916pBOyiFIajCmcv612rDK7tR4Il
h6+o8fZBMAHIgfYZHA1Kj8m8+6WiiGJAlBuyjfZVHAHIgAH2g912q912tfutM
hIn2q912m91+p90kmA8yiIpUmA0miGJAmA8zifYZHA1Cjfut7Fet7In6kfnkk
hfutHJX6k916pBOyiFIajfZBMAHYgfYZHAHajvet7In+nfuyiGIOiGJAlCOww
hA8yiIpMlCGkmBHKjfYJ7fngeCm+lCHpWSLFZAWkUAHUxMbZoNHAB0etHK12o
h98t7In2ofmgWKm6ffYZHAHWj8m6f6WiiGJAmA8wf6WgW8ut7In2tfmgWLG8j
hfYRAEew01EcB0VMK3VMK3VMK3VMK3VMK3VMK3VMK3VMK3VMK3VMK3VMK3VMK
K3VMK3VMK3VMK3VMK3VMK3VMB0Uo84U++
+ end
5602 bytes encoded into 1 file(s)