SCOUG-Programming Mailing List Archives
Return to [ 23 |
March |
2003 ]
>> Next Message >>
Content Type: text/plain
Content-Transfer-Encoding: 7bit
Thus we have "improved" C as well as our own productivity.
We did it while maintaining full compatibility with existing C
source code and methods. Anyone who wants can continue
with his less efficient and productive methods. The rest of us
who want to work smarter instead of harder will finish early
enough to have time to observe the struggles of "old time
professionals".
Now no one seemed to have caught my boo-boo. In reading
the source contained in hpcalc.c I noticed that it contains an
ordered list of procedures starting with "main" and then
continuing with ClientWinProc, SubclassFrame, HexOctWinProc,
GetIniFileName, GetFullPathToExe and ConvertExeToIni. In
short it doesn't use "internal" procedures. Thus the only
restriction we have to relax, i.e. eliminate, is the need to order
them. We will do that by shifting from one-pass to multi-pass
mode.
Now if I haven't made any more boo-boo's (and I certainly
welcome hearing about any others you may have discovered),
we can continue with our C improvements. Perhaps among
the first of them we should consider adding the support for
aggregate operands, e.g. 'a = b + c;', where a, b, and c are
numeric arrays. This was introduced with APL in 1962 and
again with PL/I in 1964. Why it didn't make C in 1972 remains
something of a mystery, but, of course, a number of things
didn't make C in 1972.
We hark back to the issue of productivity which in
programming correlates to writing, thinking about writing, and
the all-too-often need when such thinking leads to rewriting.
We want to minimize what we have to write while maximizing
what the software writes. Even if we hold the output
constant, lowering what we have to input increases our
productivity.
Aggregate operands represent another example of shifting
clerical activity from people to software. It also represents a
change we can introduce without affecting backward
compatibility.
************************************************
I've attached a recent article from Technology Review sent to
me by a member of the Norwalk IBM PC Club on "Writing
Software Right". I converted it from Word to html format.
You should be able to read it with your browser(s).
Also Carla has expressed willingness to overhaul the PSIG
pages on the SCOUG website. What we want there and how
we want it organized we will discuss at the April meeting.
*************************************************
Among them LISP, APL, and PL/I contain all the major features
and advantages of third generation HLLs. The only exception
which comes to mind arises from the PERFORM statement of
COBOL which offers an out-of-line, subroutine call to a
sequence of one or more paragraphs. As a paragraph can be
as little as a single statement (sentence in COBOL) this allows
sharable reuse from the statement level on up to the COBOL
equivalent of a procedure.
Unlike the folks at Sun, Microsoft, IBM, and elsewhere we in
the open source community do not have money to throw at a
problem. What we lack in funds we need to make up in
intelligence. You see money allows you to attack in brute
force. Intelligence requires a more surgical approach.
We know that we have to reduce the amount of source code
writing. We know from from the evolution of programming
languages from generation to generation that this has
occurred through the general process of aggregation (not
aggravation). We first aggregated instructions first
through the use of macros and then extending that into the
expressions supported in HLLs. We then aggregated operands
in APL and PL/I.
Now we might not recognize that reuse represents a form of
aggregation, the essence of combining the many into one.
Shared reuse aggregates many sharing the use of one.
Replicated reuse aggregates many sharing the source of one.
In either case there is only one copy of the source to create
and maintain. In either case we refer to the aggregate in use
by name.
The other mistake we will not make that apparently Sun,
Microsoft, IBM, and others insist on making is ignoring the
aggregation possible with fourth generation languages, i.e.
logic programming. You see the general accepted belief is
that logic programming failed. Having done so they are
justified in falling back into third generation and locked into
providing enhancements at that level. In doing so they ignore
the fact that the most used and successful programming
language today, SQL, is fourth generation. We know that
anything they can do with third we can do better with fourth.
At some point along the way we have to demonstrate that. I
propose that we use as our starting source the recently
released 3.x level of the GCC compiler. We make the changes
to it to support making it multi-pass, allowing multiple
"external", i.e. "main", procedures, and aggregate operands.
To do that we have to understand it in some detail. It's
somewhat more complicated than HPCalc. However, if we
want to individually enjoy the independence that open source
offers we have to eliminated any dependence on others to
enhance our tools. In short we must become the master of
our tools set.
We have two tools, the editor and the compiler, to master.
After mastering them we will merge them into one. Merging
them into one means coming up with a single user interface, a
GUI, that will allow us to treat dozens of separate utility
functions as an integrate whole.
Content Type: text/html
Content-Transfer-Encoding: base64
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMi8vRU4iPg0KPEhUTUw+
DQo8SEVBRD4NCgk8VElUTEU+IDwvVElUTEU+DQoJPE1FVEEgTkFNRT0iR0VORVJBVE9SIiBDT05U
RU5UPSJTdGFyT2ZmaWNlLzUuMSAoT1MvMikiPg0KCTxNRVRBIE5BTUU9IkFVVEhPUiIgQ09OVEVO
VD0iSmltICBKYW4yMDAyIj4NCgk8TUVUQSBOQU1FPSJDUkVBVEVEIiBDT05URU5UPSIyMDAzMDMy
MjsyNTIwMDAwIj4NCgk8TUVUQSBOQU1FPSJDSEFOR0VEQlkiIENPTlRFTlQ9IkppbSAgSmFuMjAw
MiI+DQoJPE1FVEEgTkFNRT0iQ0hBTkdFRCIgQ09OVEVOVD0iMjAwMzAzMjI7MzU2MDAwMCI+DQoJ
PFNUWUxFPg0KCTwhLS0NCgkJQHBhZ2UgeyBzaXplOiA4LjVpbiAxMWluOyBtYXJnaW4tcmlnaHQ6
IDEuMjVpbjsgbWFyZ2luLXRvcDogMWluOyBtYXJnaW4tYm90dG9tOiAxaW4gfQ0KCS0tPg0KCTwv
U1RZTEU+DQo8L0hFQUQ+DQo8Qk9EWT4NCjxQIFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4iPjxC
Uj4NCjwvUD4NCjxQIFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4iPiANCjwvUD4NCjxQIFNUWUxF
PSJtYXJnaW4tYm90dG9tOiAwaW4iPldyaXRpbmcgU29mdHdhcmUgUmlnaHQ8L1A+DQo8UCBTVFlM
RT0ibWFyZ2luLWJvdHRvbTogMGluIj5Db21wYW5pZXMgaW52ZXN0IGluIHByb2dyYW1zIHRoYXQN
CmJhbmlzaCBidWdzLjwvUD4NCjxQIFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4iPjxCUj4NCjwv
UD4NCjxQIFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4iPjxCUj4NCjwvUD4NCjxQIFNUWUxFPSJt
YXJnaW4tYm90dG9tOiAwaW4iPiANCjwvUD4NCjxQIFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4i
PklsbHVzdHJhdGlvbiBieSBKYW1lcyBZYW5nLiANCjwvUD4NCjxQIFNUWUxFPSJtYXJnaW4tYm90
dG9tOiAwaW4iPjxCUj4NCjwvUD4NCjxQIFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4iPkJ5IFdh
ZGUgUm91c2g8L1A+DQo8UCBTVFlMRT0ibWFyZ2luLWJvdHRvbTogMGluIj5Jbm5vdmF0aW9uPC9Q
Pg0KPFAgU1RZTEU9Im1hcmdpbi1ib3R0b206IDBpbiI+QXByaWwgMjAwMzwvUD4NCjxQIFNUWUxF
PSJtYXJnaW4tYm90dG9tOiAwaW4iPjxCUj4NCjwvUD4NCjxQIFNUWUxFPSJtYXJnaW4tYm90dG9t
OiAwaW4iPk11Y2ggb2YgdG9kYXkncyBzb2Z0d2FyZSBpcyBidWlsdCBhbmQNCnVwZGF0ZWQgaW4g
YSBzbGFwZGFzaCBwcm9jZXNzLiBQcm9ncmFtbWVycyBnaXZlIGxpZmUgdG8gY29vbCBuZXcNCmZl
YXR1cmVzIGluIHF1aWNrLWFuZC1kaXJ0eSBjb2RlLCB0aHJvdyB0aGUgY29kZSBhdCBhIGNvbXB1
dGVyIHRvIHNlZQ0Kd2hldGhlciB0aGUgcHJvZ3JhbSBydW5zLCBhbmQgZXhjaXNlIHRoZSB3b3Jz
dCBidWdzLCBvbmUgYnkgb25lLA0KdW50aWwgdGhlIHByb2dyYW0gd29ya3Mgd2VsbCBlbm91Z2gg
dG8gcmVsZWFzZS4gDQo8L1A+DQo8UCBTVFlMRT0ibWFyZ2luLWJvdHRvbTogMGluIj48QlI+DQo8
L1A+DQo8UCBTVFlMRT0ibWFyZ2luLWJvdHRvbTogMGluIj48QlI+DQo8L1A+DQo8UCBTVFlMRT0i
bWFyZ2luLWJvdHRvbTogMGluIj5OYXR1cmFsbHksIG1hbnkgZXJyb3JzIGV2YWRlIHRoaXMga2lu
ZA0Kb2YgdGVzdGluZywgYW5kIHRob3NlIHRoYXQgcmVtYWluIGNhbiBjcmVhdGUgYm90aCBtaW5v
ciBhbm5veWFuY2VzDQphbmQgc3VjaCBtYWpvciBpbmNvbnZlbmllbmNlcyBhcyBsYXRlIEphbnVh
cnkncyB3b3JsZHdpZGUgSW50ZXJuZXQNCnNsb3dkb3duLCB0aGUgd29yayBvZiBhIHNlbGYtcmVw
bGljYXRpbmcgJmxhcXVvO3dvcm0mcmFxdW87IGNhbGxlZA0KU2xhbW1lciB0aGF0IGV4cGxvaXRl
ZCBhIHByb2dyYW1taW5nIGZsYXcgaW4gTWljcm9zb2Z0J3MgU1FMIFNlcnZlcg0Kc29mdHdhcmUu
IA0KPC9QPg0KPFAgU1RZTEU9Im1hcmdpbi1ib3R0b206IDBpbiI+VGhhdCBsYWlzc2V6LWZhaXJl
IGRlc2lnbiBwaGlsb3NvcGh5IGlzDQpjb21pbmcgdW5kZXIgZmlyZS4gU3VuIE1pY3Jvc3lzdGVt
cywgTWljcm9zb2Z0LCBhbmQgSUJNIGFyZSBhbGwNCnBsb3R0aW5nIHdheXMgdG8gcmV2b2x1dGlv
bml6ZSB0aGUgcHJhY3RpY2Ugb2Ygc29mdHdhcmUgZW5naW5lZXJpbmcuDQpBbHRob3VnaCB0aGVp
ciBzdHJhdGVnaWVzIGRpZmZlciwgdGhlIGVmZm9ydHMgYXJlIGFsbCBnZWFyZWQgdG93YXJkDQpz
YXZpbmcgdGltZSwgcmVkdWNpbmcgZGV2ZWxvcG1lbnQgY29zdHMsIHNwYXJpbmcgcHJvZ3JhbW1l
cnMgdGhlIG1vcmUNCm1pbmQtbnVtYmluZyBhc3BlY3RzIG9mIHNvZnR3YXJlIGRlYnVnZ2luZywg
YW5kLW1vc3QgaW1wb3J0YW50IGZvcg0KY29uc3VtZXJzIGFuZCBidXNpbmVzcyB1c2Vycy1wcm9k
dWNpbmcgc29mdHdhcmUgdGhhdCB3b3JrcyB3ZWxsIHRoZQ0KZmlyc3QgdGltZSBpdCdzIHJlbGVh
c2VkLjwvUD4NCjxQIFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4iPjxCUj4NCjwvUD4NCjxQIFNU
WUxFPSJtYXJnaW4tYm90dG9tOiAwaW4iPiZsYXF1bztPdXIgY2hhbGxlbmdlIGlzIHRvIGdldCBv
dXINCnNvZnR3YXJlIHRvIHRoZSBwb2ludCB0aGF0IHBlb3BsZSBleHBlY3QgaXQgdG8gd29yayBp
bnN0ZWFkIG9mDQpleHBlY3RpbmcgaXQgdG8gZmFpbCwmcmFxdW87IHNheXMgSmltIExhcnVzLCBs
ZWFkZXIgb2YgYSBzb2Z0d2FyZQ0KcXVhbGl0eSBwcm9qZWN0IGF0IE1pY3Jvc29mdCBSZXNlYXJj
aCBpbiBSZWRtb25kLCBXQS48L1A+DQo8UCBTVFlMRT0ibWFyZ2luLWJvdHRvbTogMGluIj48QlI+
DQo8L1A+DQo8UCBTVFlMRT0ibWFyZ2luLWJvdHRvbTogMGluIj5PbmUgb2YgdGhlIG1vc3QgcmFk
aWNhbCBhdHRlbXB0cyBhdA0KaW1wcm92aW5nIHNvZnR3YXJlIGlzIHVuZGVyIHdheSBhdCBTdW4g
TWljcm9zeXN0ZW1zIExhYm9yYXRvcmllcyBpbg0KU2FudGEgQ2xhcmEsIENBLiBDb2RlLW5hbWVk
IEphY2twb3QsIHRoZSBwcm9qZWN0IGFpbXMgdG8gb3ZlcmhhdWwgdGhlDQpzb2Z0d2FyZS13cml0
aW5nIHRvb2xzIHRoYXQgaGF2ZSBiZWVuIGNyZWF0ZWQgYnkgU3VuIGFuZCBtYW55IG90aGVyDQpz
b2Z0d2FyZSBjb21wYW5pZXMgb3ZlciB0aGUgcGFzdCAyMCB5ZWFycy4gTW9zdCBvZiB0aGVzZSBk
ZXNrdG9wDQpwcm9ncmFtcyBjb21wcmlzZSBhbiBlZGl0b3IgdG8gd3JpdGUgYW5kIG1hbmlwdWxh
dGUgY29tcHV0ZXIgY29kZTsgYQ0KZGVidWdnZXIgdG8gc2VhcmNoIGZvciB0aGUgbW9zdCBjb21t
b24gdHlwZXMgb2YgcHJvZ3JhbW1pbmcgZXJyb3JzOw0KYW5kIGEgY29tcGlsZXIgdG8gdHJhbnNs
YXRlIHByb2dyYW1tZXJzJyBjb21wdXRlciBjb2RlIGludG8gdGhlIG9uZXMNCmFuZCB6ZXJvZXMg
dGhhdCBtYWNoaW5lcyBjYW4gYWN0IHVwb24uIFRoZSBwcm9ibGVtIGlzIHRoYXQgYWx0aG91Z2gN
CnRoZXNlIHRvb2xzIGFyZSBnb29kIGF0IGZpbmRpbmcgc3VjaCBlcnJvcnMgYXMgbWlzcGxhY2Vk
IHB1bmN0dWF0aW9uLA0KdGhleSBjYW4ndCBzZWUgbGFyZ2VyIHN0cnVjdHVyYWwgcHJvYmxlbXMg
dGhhdCBtYWtlIGNvZGUgaW5lZmZpY2llbnQsDQpzYXlzIE1pY2hhZWwgVmFuIERlIFZhbnRlciwg
d2hvIHJ1bnMgdGhlIEphY2twb3QgZ3JvdXAgYXQgU3VuDQpMYWJvcmF0b3JpZXMuPC9QPg0KPFAg
U1RZTEU9Im1hcmdpbi1ib3R0b206IDBpbiI+PEJSPg0KPC9QPg0KPFAgU1RZTEU9Im1hcmdpbi1i
b3R0b206IDBpbiI+VGhlIHNvbHV0aW9uOiBzb2Z0d2FyZSB0aGF0IHRoaW5rcw0KYWJvdXQgb3Ro
ZXIgc29mdHdhcmUuIFZhbiBEZSBWYW50ZXIncyB0ZWFtIGlzIGJ1aWxkaW5nIGFuICZsYXF1bzth
bmFseXNpcw0KZW5naW5lJnJhcXVvOyB0aGF0IHJlYWRzIGEgcHJvZ3JhbW1lcidzIGNvZGUgYW5k
IGNvbnN0cnVjdHMgYW4NCmludGVybmFsIGFic3RyYWN0IG1vZGVsIG9mIHRoZSBzb2Z0d2FyZS4g
VGhlIGdyb3VwIGNvbnRlbmRzIHRoYXQgc3VjaA0KbW9kZWxzIHdpbGwgZ2l2ZSBwcm9ncmFtbWVy
cyBzdWJzdGFudGl2ZSByZWFsLXRpbWUgZmVlZGJhY2sgYXMgdGhleQ0Kd29yay48L1A+DQo8UCBT
VFlMRT0ibWFyZ2luLWJvdHRvbTogMGluIj48QlI+DQo8L1A+DQo8UCBTVFlMRT0ibWFyZ2luLWJv
dHRvbTogMGluIj5Gb3IgZXhhbXBsZSwgdGhlIEphY2twb3QgdGVhbSB3YW50cyB0bw0KcHJvdmlk
ZSBwcm9ncmFtbWVycyB3aXRoIGEga2luZCBvZiBtZXRlciB0aGF0IGNvbnRpbnVhbGx5IGdhdWdl
cyBhDQpwcm9ncmFtJ3MgY29tcGxleGl0eS1hIHN0ZXAgYmV5b25kIHRoZSBwcmltaXRpdmUgbWVh
c3VyZXMsIHN1Y2ggYXMNCnRoZSBudW1iZXIgb2YgbGluZXMgaW4gYSBwcm9ncmFtLCBwcm92aWRl
ZCBieSB0b2RheSdzIGRldmVsb3BtZW50DQp0b29scy4gVGhlIGFuYWx5c2lzIGVuZ2luZSB3b3Vs
ZCBkZXRlY3Qgd2hldGhlciBjb21wbGV4aXR5IHdhcw0KZ2V0dGluZyBvdXQgb2YgaGFuZC1jcmVh
dGluZyBsb3RzIG9mIGhpZGluZyBwbGFjZXMgZm9yIGJ1Z3MtYW5kIHdvdWxkDQpnaXZlIHByb2dy
YW1tZXJzICZsYXF1bzthbiBlYXJseSB3YXJuaW5nLCZyYXF1bzsgc2F5cyBWYW4gRGUgVmFudGVy
LjwvUD4NCjxQIFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4iPjxCUj4NCjwvUD4NCjxQIFNUWUxF
PSJtYXJnaW4tYm90dG9tOiAwaW4iPkhlbHBpbmcgcHJvZ3JhbW1lcnMgdmlzdWFsaXplIHRoZWly
DQpjb2RlIGlzIGFub3RoZXIgd2F5IHRvIGJhdHRsZSBjb21wbGV4aXR5LCBoZSBzYXlzLiBJdCdz
IGVhc3kgZm9yDQpzb2Z0d2FyZSB3cml0ZXJzIHRvIG5lc3QgaW5zdHJ1Y3Rpb25zIHN1Y2ggYXMg
JmxhcXVvO2lmIHgsIHRoZW4geSwNCmVsc2UgeiZyYXF1bzsgd2l0aGluIG90aGVyIHNpbWlsYXIg
Y2xhdXNlcy1hZCBpbmZpbml0dW0uIEJ1dCAmbGFxdW87dGhlcmUNCmlzIGEgbG90IG9mIHBzeWNo
b2xvZ2ljYWwgd29yayBzaG93aW5nIHRoYXQgaWYgdGhleSBhcmUgbmVzdGVkIHRvbw0KZGVlcCwg
cGVvcGxlIHdvbid0IGdldCBpdCBhbnltb3JlLCZyYXF1bzsgVmFuIERlIFZhbnRlciBzYXlzLiBU
aGUNCnZpc3VhbCB0b29scyBoaXMgdGVhbSBpcyBkZXZlbG9waW5nIHdvdWxkIGRyYXcgb24gdGhl
IGFuYWx5c2lzIGVuZ2luZQ0KdG8gdHJhbnNmb3JtIG5lc3RlZCBzdHJ1Y3R1cmVzIGludG8gZWFz
eS10by11bmRlcnN0YW5kIHRhYmxlcywgbWFwcywNCmFuZCBoaWdobGlnaHRlZCB0ZXh0LjwvUD4N
CjxQIFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4iPjxCUj4NCjwvUD4NCjxQIFNUWUxFPSJtYXJn
aW4tYm90dG9tOiAwaW4iPjxCUj4NCjwvUD4NCjxQIFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4i
PkluIGFkZGl0aW9uLCB0aGUgSmFja3BvdCByZXNlYXJjaGVycw0KYXJlIGRlc2lnbmluZyBhIGRl
YnVnZ2VyIHRoYXQgZG9lc24ndCBzaW1wbHkgZmluZCBlcnJvcnMgaW4NCnByb2dyYW1taW5nIHN5
bnRheC1hIG1pc3Npbmcgc2VtaWNvbG9uIGluIGEgbGluZSBvZiBKYXZhIGNvZGUsIGZvcg0KZXhh
bXBsZS1idXQgYWxzbyBpZGVudGlmaWVzIGdlbmVyYWwgaW5zdGFuY2VzIG9mIGdvb2Qgb3IgYmFk
DQpwcm9ncmFtbWluZy4gJmxhcXVvO1Blb3BsZSB0ZW5kIHRvIHdyaXRlIGNvZGUgaW4gcHJlZGlj
dGFibGUgd2F5czoNCnRoZSBhbmFsb2d5IGluIG5hdHVyYWwgbGFuZ3VhZ2UgaXMgaWRpb20sJnJh
cXVvOyBWYW4gRGUgVmFudGVyDQpleHBsYWlucy4gJmxhcXVvO1dlIHdhbnQgc29tZXRoaW5nIHRo
YXQgd2lsbCBtb25pdG9yIGZvciBiYWQgaWRpb21zLiZyYXF1bzsNCldpZGVzcHJlYWQgaW1wbGVt
ZW50YXRpb24gb2YgSmFja3BvdCBhdCBTdW4gaXMgJmxhcXVvO3NldmVyYWwgeWVhcnMNCm91dCwm
cmFxdW87IGhlIHNheXMsIGJ1dCB0aGUgcmVzZWFyY2hlcnMgcGxhbiB0byB0ZXN0IGl0IHNvb24g
d2l0aA0KU3VuIHByb2dyYW1tZXJzLjwvUD4NCjxQIFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4i
PjxCUj4NCjwvUD4NCjxQIFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4iPjxCUj4NCjwvUD4NCjxQ
IFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4iPldoaWxlIFN1biBpcyBqdXN0IGJlZ2lubmluZyB0
byBleHBsb3JlDQphZHZhbmNlZCBzb2Z0d2FyZS1kZXZlbG9wbWVudCB0b29scywgcHJvZ3JhbW1l
cnMgYXQgTWljcm9zb2Z0IGhhdmUNCmFscmVhZHkgY29tZSB0byBkZXBlbmQgb24gdGhlbS4gVG8g
Z2V0IGEgaGFuZGxlIG9uIGJ1Z3MgaW4gaXRzDQpXaW5kb3dzIDIwMDAgb3BlcmF0aW5nIHN5c3Rl
bSwgTWljcm9zb2Z0IHBhaWQgbW9yZSB0aGFuICQ2MCBtaWxsaW9uDQppbiAxOTk5IHRvIGFjcXVp
cmUgSW50cmluc2EsIG1ha2VyIG9mIGEgYnVnLWZpbmRpbmcgdG9vbCBjYWxsZWQNClByZWZpeC4g
VGhlIHByb2dyYW0sIHdoaWNoIHNpZnRzIHRocm91Z2ggaHVnZSBzd2F0aHMgb2YgY29kZQ0Kc2Vh
cmNoaW5nIGZvciBwYXR0ZXJucyB0aGF0IG1hdGNoIGEgZGVmaW5lZCBsaXN0IG9mIGNvbW1vbiBz
ZW1hbnRpYw0KZXJyb3JzLCBoZWxwZWQgZmluZCB0aG91c2FuZHMgb2YgbWlzdGFrZXMgaW4gV2lu
ZG93cyBhbmQgb3RoZXINCk1pY3Jvc29mdCBwcm9kdWN0cy4gQnV0IFByZWZpeCBpcyBzbG93IGFu
ZCBwcm9jZXNzb3ItaW50ZW5zaXZlLA0KcmVxdWlyaW5nIGRheXMgb2Ygc2VydmVyIHRpbWUgdG8g
YW5hbHl6ZSBhbGwgb2YgV2luZG93cy4gQW5kIGJlY2F1c2UNCnRoZSBidWdzIG9uIGl0cyBibGFj
a2xpc3QgYXJlICZsYXF1bztoYXJkLXdpcmVkLCZyYXF1bzsgdGhlIHByb2dyYW0NCmhhcyB0byBi
ZSByZXdyaXR0ZW4gYmVmb3JlIGl0IGNhbiBmaW5kIG5ldyB0eXBlcyBvZiBlcnJvcnMsIHNheXMN
Ck1pY3Jvc29mdCdzIExhcnVzLiANCjwvUD4NCjxQIFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4i
PjxCUj4NCjwvUD4NCjxQIFNUWUxFPSJtYXJnaW4tYm90dG9tOiAwaW4iPjxCUj4NCjwvUD4NCjwv
Qk9EWT4NCjwvSFRNTD4=
>> Next Message >>
Return to [ 23 |
March |
2003 ]
The Southern California OS/2 User Group
P.O. Box 26904
Santa Ana, CA 92799-6904, USA
Copyright 2001 the Southern California OS/2 User Group. ALL RIGHTS
RESERVED.
SCOUG, Warp Expo West, and Warpfest are trademarks of the Southern California OS/2 User Group.
OS/2, Workplace Shell, and IBM are registered trademarks of International
Business Machines Corporation.
All other trademarks remain the property of their respective owners.
|