🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: comp.sys.next.programmer
3 messages
3 total messages Started by nevin Wed, 18 Nov 1992 21:18
Re: Coding Rules/Suggestions (RTF)
#1816
Author: nevin
Date: Wed, 18 Nov 1992 21:18
544 lines
31554 bytes
Well, I'm glad you at least received some of what you where after  .  
Why email vs. a post? I figured (perhaps incorrectly) that this  
subject was, well, fairly subjective and tends to be religeous in  
nature. That is, people tend to strongly hold opinions about how to  
layout software. This is especially true when you collect a tallented  
group of people who all have succeeded in past ventures and wish to  
instill their experience into the group. I've seen people (myself  
included) go to irrational lengths to support their positions. So, I  
felt I'd respond to your challenge without insighting a jahad.

[...]
It'll port easily to every NeXTSTEP supported platform and that's all  
I care about.  Other programmers may not be as lucky, though, and may  
not have that luxury.

Sigh... Most of us in the "Real World" (tm) don't have that luxury.  
In fact, most business cases for making money cannot count on NeXT  
(WP, Lotus, Boss, Adobe, etc), or the business plans are extremely  
optimistic without much hard data (AppSoft), or are destined to  
remain small players (Metrosoft, Stone Design). If NeXT can get their  
act together for the cross-platform support many of us will be ready  
and willing to ride the bow-wave. So far, NeXT lags in that area .  
Hence, we look at markets like Windoze (tm).

[...]

I'm against Hungarian notation.  I'm also not inclined to make any  
rules governing instance variable names, but class names are covered  
(see comment above).

BTW: complete Hungarian covers variable, function, method, class, and  
file names. In short, everything that you'd never want to see  
Hungarian on :-).

[...]

Also notice the clarification at the end of the paragraph regarding  
localized NIB's (I had one person email me in disagreement, arguing  
that they wanted localized NIB names instead).
 
The one window-per-nib is considered proper NeXT IB ettiquete. It  
also was originally related to early performance considerations (i.e.  
wanting to lazy-load as much as possible). An anti-example of this  
(If I remember correctly) is WordPerfect, which loads slowly because  
multiple windows/panels in a single nib (in which the archived  
objects will be getting a read: and awake call). I might add that  
there has been discussion about nib loading and 3.0 which might tend  
to reverse NeXT's original position (most of the 3.0 slow-down is  
related to nib/disk/memory stuff). Although the stance has not  
changed, hopefully this demonstrates that the convention rose from an  
underlying intent: perforformance, which can change how things get  
implemented.

I think that's also my position on standards: a standard for the sake  
of a standard is nearly akin to dogma. A standard in and of itself is  
there to serve a purpose or set of purposes. These purposes will  
likely vary depending on the environment one finds themselves in, and  
so the standards will be of increased service if they can adapt to  
aims of the present application (broad meaning).

I perceive that you're attempting to implement a set of rules  
(standards) that serve your best utility. IMHO, find out what goals  
you're trying to achieve, prioritize them, and then see how they  
codify into a rule-set. My experience is that you'll end up with a  
different set of standards :-).

I presume you mean: "some panels/windows in some NIB's don't have  
titles".  My question would then be: why doesn't the panel/window  
have a title?  What would it hurt to put a title in?  Note that the  
rule I gave does give you some discretion in the choice of the title:

Often times nibs are used to collection images (as in parts of WM),  
or controls (common for custom windows), or insets to other panels  
(i.e. customizing NeXT's print panel, NeXT's use of subpanels in the  
Color picker). These titles never get displayed and often are  
multi-purpose.

[...]
re: never touching attributes/instance vars...

It depends on how "purist" or theoretical vs. practical you want to  
get. Within the same module/class it may be acceptable to refer to  
the instance variable vs. the method, especially where speed is  
concerned.

If it's within the same instance of a class (i.e., the same "module"?  
what do you mean by a "module", anyway?), the instance variables of a  
given instance of a class are accessible to all methods of that  
instance anyway, regardless of the variables' classification (public,  
protected, or private) so in this case there would be no advantage to  
declaring any of them public.


But, if you are talking about different instances of the same class  
what relevance does the fact that they are of the same class have?  I  
guess if it executes faster, then we should all just go back to  
having global variables for everything (ala Windoze)?

A module in ObjC is any *.m file. Strictly speaking I'll mean to  
interpret the above as using an instance variable within the confines  
of the original class category and within a single file. So, I'm not  
advocating directly using an instance variable in a subclass or  
category, only within the bounds of it's class implementation, and  
then only for reasons of speed. Otherwise you risk skirting the  
benefits of OOP.

[...]

I've been finding that the third checking you mention (invarients) is  
especially important with Distributed Objects.  These types of  
objects seem to either need state-machine logic inside of them, or  
else provide some sort of mutex-locking methods.  And in any case, to  
implement such mechanisms, the object must "remember" who sent each  
message so "state" information is quite common.

Distributed Objects is probably a good place to apply the invarient  
checking.

..

	protocols are cool, but not supported outside NeXT :-(


 So? :-) 

Actually, we use categories, but it's yet another thing that makes  
life hell porting things to other platforms :-(



Thank-you for your response.  Should we start sharing our discussion  
with the net?

If you'd like, perhaps you can post a summary.

regards,

Kevin

--
Nevin Pratt, Digital Technology, Int'l    Orem, Ut
NeXTmail preferred, but ONLY at my REAL email address:  
nevin@dtint.dtint.com



-- NewsGrazer, a NeXTstep(tm) news reader, posting --
M>UQR=&8P7&%N<VE[7&9O;G1T8FQ<9C!<9G-W:7-S($AE;'9E=&EC83M<9C)<
M9FYI;"!4:6UE<RU2;VUA;CM<9C%<9FUO9&5R;B!#;W5R:65R.WT*7&UA<F=L
M,3(P"EQM87)G<C$R,`I[7&-O;&]R=&)L.UQR960P7&=R965N,%QB;'5E,#M]
M"EQP87)D7'1X-3(P7'1X,3`V,%QT>#$V,#!<='@R,3(P7'1X,C8V,%QT>#,R
M,#!<='@S-S(P7'1X-#(V,%QT>#0X,#!<='@U,S(P7&8P7&(P7&DP7'5L;F]N
M95QF<S(T7&9C,%QC9C`@5V5L;"P@22=M(&=L860@>6]U(&%T(&QE87-T(')E
M8V5I=F5D('-O;64@;V8@=VAA="!Y;W4@=VAE<F4@869T97(@"GM[7$Y'1W)A
M<&AI8S8V('-M:6QI92YE<',*,3`V-C(@32DR)3`T4E4A.29=0CDR5%(K0V!`
M,34A,S%"5%(K0V`J*3(U-#HW,4PY,TA`(D(T13!7*44X-S%//$-(0`I-,2<I
M03U02$4I-"U2.38E5#HV74XQ)B54.3-(0#56-40H)$E5.T)@0"TR8%(L,TA5
M+B-(42TB8%$N,T11"DTB0C1%,49=4BY"(4<[)C5..T!(12DT,4\X5S5-.399
M5#%&74X])RQ:*")!03TF-4XY(D0J*3(U,#@V/44*33Q32$`L(F!1(D(T13!&
M754[1C%).T8](CM70%HH(R19+B)@5"U38$`L0RA7*",P6"TP2$4I-#5..20M
M3PI-.S9513M',5,B0$A%*30I13E614XQ)EU#/39513M',%HH(EU5/%<H3SLF
M14(K5%E%/B<Q,STF-5`K5R%2"DTZ-EE4-"8E0SI6)4<Y,EE0/%!(12@U(3,K
M-"5$.U8I12LS*$XL8$A%*34Q23TF444N0B$P/$9%3CTF14X*33E2(3`X-BU+
M.#8]12)"-$4Q-EE$,%9=33LV-4X])RPJ*34Y13Q'+4D[5EA:*",H3BQ@2$4P
M5EU0/C<I20I-.59!5"Y"8%$N,T!8*R(A+CDU030K(B$I.T8L3B)`2$\W55TN
M-B8Q13E'3%$H)D5..28U6"@G/4@Y-RE%"DT^5R%//"(A4#M78$`\)EU0/S=-
M1#DV.5TZ-CE%.R<M13\V*4D[1C!`.28U1B)"73\W5%DX.$8Q13E'3%$*32@F
M14XY)C58*"<]2#DW*44^5R%//"(A4#M78$`\)EU0/S=-0CHV640H)C%%.4=5
M23E&-4P\5C5=.$9%3@I-.2(A1#DV."HK5353.3<I+SA&244X5S%3*",D4"@F
M)5(\1B59*"5=/S-%040Y-C@J*U8Q13E&14XY-S53"DTY-RE/.$9)13A7,5LB
M0$5%/B8M2"@F,54\(F!1*"8E1#DB(40]-V!`-3<M13Q$74(Z1C5#/2<L0#LF
M-4X*33E7,4@H)CU4/E!(*2(V)5(\1B59*"8Q53PB8%`H)353.3<I+SA&244X
M5S%3*"<A53TF14X])C52/48E3`I-(D!$*2M5-5,Y-RDO.$9)13A7,5,H)C58
M.%9`0#DF-48B0$5=/E<A3SPG54DY1C5,/%8T0#4W+44\1%U""DTZ1C5#/2<L
M0#DW04,Z(F!3*")442@G*4\[)E!`/"<U5")'53\W5%DX.$8Q13E`2$\]-EE$
M.38Y23M&-54*33Q6-5([5BE*.38M5#Y5-5,Y-RDO.$9)13A7,5,H)C58.%9`
M0#M'-4P[(B%0/3<Q73=572XV)BE$.38X*@I-*U8U6#DV+54\5C52.U8I2CDV
M+50^5353.3<I+SA&244X5S%3*"8U6#A60$`Y5C54*"8U6#DV+5TW55TN"DTV
M)BE$.38X*BM573\S14$R.38M5#0F)50Z)TQ4*",H0#Q&74P[(B%-.U<Y13TF
M7$`L,B%).T8Q13XB8%`*32@G*4PZ-EE%/29<*BPB(44^)BU(*"<I3#HV644]
M)EQ`.T8U1R@C8$`\1E%).T8U5#M2(4,[)EU3.3<A00I-/29!73=572XV)BE$
M.38X*BM573\S14$P/$9=0SDW+5,T1C5#/20E4CE7+5LB0$11*"9%3CDF-5@H
M)S%9"DT\)C1`*U8E4CQ&)5D])T50.3(A13PW3"HB,$5%/B8M2"@C8$`M(F!2
M*"9%3CDF-5@H)E%%.T8]5#HB8%$*32@G+54X1TPJ(C!$*3DG-5`H(RQ`.#8Q
M1"@C)$`Y-T%#.B=,42@F14XY)C58*"8U6#A60$`Y5C54*"8U6`I-.%9!73E&
M75(B0$0I(C,T0"PR(5([5E%,*",T0#HV640Y-T!`.3=!13A02"DB-U5&.U<H
M0#PF75`H)R%/"DT\8$@I/S=-13XF-4,_-D5&.3914SDP25TW55TN-B8I1#DV
M."HK5RE%.%<Q1CHV44P^5CU3.#<Y12@F644*33U7(4$])D!`/E5=/S-%03(Y
M-BU4-"8E5#HB(48Z-E%,/S(A/S=463@T)RE/.%8U4SQ5*44X5S$A/$8]4PI-
M*"8]4CDW+50[5RE%/S5=/S-%04(Y)C5&(D)=4CDV+50X5E%)/"=-3CDW/5`X
M-S%(*"=-/S=463@T1C5#"DT])2%!/29!72@E73\S14$P/$9=0SDW+5,T1C5#
M/20E4CE7+$`X5E%)/"(A3CDW/5`X-S%(/S5=/S-%04(*33DF-48B0EU2.38M
M5#Q7,5([5DU%/E!(*3E7+4$]1C1`.T8U5SPF)50Z(B%$/3=@0#TG15`Y,F!/
M.#<I4@I-.#=%5#XW(44H)C51/E8Q53PB(4PY-EE'/29`0"U"(44\-U5;.48E
M3#Q6-5TZ-CE%.R<M13Y02"DB-TU'"DT\5B56.3(A/S=463@T1C5#/24A03TF
M0$`[1S5,.R(A0SM664,X-S!`/%<Q4CM6344H)CU2.3<M5#M7*44*33\P2"DB
M-C%5/"(A3#DV64<])D!`.#<I4C@W1$`X5SE8*"8M3SPG1$`Y)S50*",H0"TB
M8$TL,B%2.U913`I-*"<A53TB(3\W5%DX-"<I3SA6-5,\52E%.%<Q(3Q&/5,B
M0$5=/E=-/S=463@T1C5#/24A03TF0$`\5S%2"DT[5DU%/S(A/S=463@T)RE/
M.%8U4SQ5*44X5S$A/$8]4S\V148Y-E%3.3(A1SQ&-5,])EU2.3!)73=572X*
M338F*40Y-C@J*U=!63Q604\]5TPJ(C-@0"PR8%,H)D5..28U6"@F444[1CU4
M.B)@42@G+54X1TPJ(C!%0PI-/3<I4CDV650\)EU).T<P0"TB(4D[1C%%/B)@
M4R@F14XY)C58*",D0#E6-50Z-EE4.3<I5C@V4$`\5D%/"DT]4$@I(C,L0#HV
M640Y-T!`+%(A23M&,44^(F!2*"9553LB8%$H)B5$.2(A1SDW,$`X-C%$*"8U
M6#A60"H*32(P1%,H)D5..28U6"(S+$`Z-EE$.3=`0"Q"(4T]-E!`.58U5"@F
M)40Y(B%%/B8M2"@F54\]1C54.U(A4`I-.U=@*B(W548[5RA`/"9=4"@G(4\\
M8$E=-U5=+C8F*40Y-C@J*U=!4SHF75<^4$@I+")@42@C+$`Z-EE$"DTY-T!`
M.R8U3CE7,4@H(R1`/%<U0CY02"DB-BU5/$<I13M',5`[5D5./2)@5"@F14XY
M)C58*",L0#HV640*33DW0$`L,B%'.3<Q23M',44\1SE!.R(A4SHF75<B0$0I
M.3=!0SHB8%,H)D5..28U6"@C+$`Z-EE$.3=`0`I-.58U5"@F)40Y(B%%/B8M
M2"@F54\]1C54.U(A4#M78"HB-U5&.U<H0#PF75`H)R%//&!)73=572XV)BE$
M"DTY-C@J*U=%4SHF75<^4$@I+")@42@C+$`Z-EE$.3=`0#LF-4XY5S%(*",D
M0#Q7-4(^4$@I(C8M53Q'*44*33M',5`[5D5./2)@5"@F14XY)C58*",L0#HV
M640Y-T!`+#(A1SDW,4D[1S%%/$<Y03LB(5,Z)EU7(D!$*0I-+%(A23M&,44^
M(F!3*"9%3CDF-5@H)CU%/2(A03DF,$`[-EU6.3<Q3R@G(4\\8$@I/S8Y3SQ"
M(5`[5V!`"DT\)EU0(D=5/S=463@X1C%%.4!(3S@W*4,])TU!/$8M5#M2(5`[
M5V!`/"9=4"@G(4\\(B%0.U<A73=572X*338F*40Y-C@J*U<M13TF*4([5T%;
M/"9=4"@G(4\\(B%0.U=@0#PF75`_-5T_,T5!0CDF-48B0EU5.%8E0PI-.B8U
M6S\U73\S14%".28U1B)"754X5B5#.B8U4STF)50]-RU;.S8E4CI28%`H(V!`
M+")@4"@C(5TW55TN"DTV)BE$.38X*BM7+44])S5#.#8M2#DW(4$\1B5-/%=-
M0SLF-4$\1S%/.S8E4CI753\W5%DX.$8Q13E`2$\*33TV)5`\)C5..2=-4SXW
M+50Y-E5$.C8M5"@F*44Y5D5.*"8M5CXB(44^)C5#*"8U3CDG53\W5%DX.$8Q
M10I-.4!(3STV-4\Y1D5,.R=-1SQ6)58Y,B%..3<]4#@W,4@H)S5!/"<A13M&
M,$`Y-EU&.C913"@F/5(Y-RU4"DT[5RE%/S5=/S-%04(Y)C5&(D)=53E&14P[
M)TU'/%8E5CDR(4XY-SU0.#<Q2"@G-4$\)R%%.T8P0#E&14P*33LB(4<\1C53
M/29=4CDW53\W5%DX.$8Q13E`2$\]-RU4/$9=2SDW3"HB-CU3.#<Y12@F644]
M5R%!/29`0`I-.2<U4"@F444[1CU4.B)@5B@F-5$B0$5;.3=!0SHB(54X-R%0
M.3991"@F+4\[1BU!/2=56STV)5`\)C5."DTY)U5).48U3#Q6-"HB-RU4/$9=
M2SDR(4<\1C53/29=4CDP25TW55TN-B8I1#DV."HK55T_,T5!53Q7,5(*33M6
M344\)B54.B1503TG*4D^(B%$/3=@0#U6044\1C1`/E<A3SPB(5`[5R%=/E95
M03TG*4D^(B%$.38Y70I-.C8Y13LG+44B0EU5/%<Q4CM6344\)B54.B=,*B(V
M644]5R%!/29`0#DG-5`H)E%%.T8]5#HB8%8H)C51"DT^4$@I(C8U6#A60$`]
M-B50/"8U3CDB(3\W5%DX/3<M5#Q&74LY-R%!/29!+3@W,5(Z-T!`.%<U4CQ&
M-4X*33TF54$])RE)/B(A13XF+4@H)BU/.T8M03U@2"DB-RU4/$9=2SDW(4$]
M)D!`/%8U5#LV)50\1D58(D!%70I-/E<U03PG(44[1C!`/%<Q4CM6344\)B54
M.B=523E&-4P\5C0J/S(A/S=463@X1C%%.4!(3STW(4$])D%;"DTB0$4[.3=!
M0SHB(5LK5S5#.#8M2#DR(4,]1T%=.C8X0#PF)50Z)BE".U=`0"M7+44])BE"
M.U=`0#A7.5@*32)`1$`^4EU-.U<Y13TF7$`X5SE8/S=,3SLF14XY-S%/*"8M
M5CXG55LK5BU5/$<Y13TF7$`X5SE8/S=,3PI-.%913SQ6-5`X-S%(*"8M5CXG
M55`X-S%(.49=4C@V44PW-BU6/F!)72@E73\S14%".28U1B)"75,Y-S%3"DT]
M)RE/.E8U03DF254\5S%;/"9=4#\U73\S14%".28U1B)"74,]-RE2.3995#Q7
M,5([5DU%.#8Q2CTW+50*33Y6.4$[)RU%/S5=/S-%04(Y)C5&(D)=4SDV444X
M5S%&.U995#Y6-5@X5D!`.49%3CDF.4\[1S!`.3=!0PI-.F!)1#TW8$`])T50
M.3)@3S@W*5(X-T54/C<A12@F-5$H)TU-.#9-13E&74X])U5;/%8M03LF-48[
M5EE4"DT_-D5&.3914SDR(5,Y-S%&.U995#\U73\S14%".28U1B)"73\S14$C
M.U950CHV644P-RE2.#=%4SY02"D*33A6754[1S%4.U9503Q&3$`Y)S50*",H
M0#@V,40H)D5..28U6"@F,54\(B%,.3991STF0$`L4F!-+#(A4@I-.U913"@G
M3"HB,$12*"9%3CDF-5@H)E%%.T8]5#HB(5,]-BA`.2<U4"@C,$`L,B%2.U91
M3"@C)$`Z-EE$"DTY-T!`.3=!0SHB8%0H(E11*"<I3SLF4$`\)S54.C995#DW
M*58X-E!`.3=!0SI@2"D_-RE%/"8U03TB(5`*33M78$`\)EU0*"<A3SQ@25TW
M55TN-B8I1#DV."HK5RU%/28M33XV34,[5E%//$=,*B(S)$XL(B%%/B8M2`I-
M*"<M53A"(40]-V!`.2<U4"@C.$`K,R1`/$9=3#M@2"D\5S5"*"8Q53PB8%`H
M)E%4/E<A3SPB8%`_-D5&"DTH(S1`+#(A4CM644PB0$14*")442@G*4\[)E!`
M/%<U0B@F,54\(F!0*"915#Y7(4\\(F!0/S9%1B@C+$`*32PR(5([5E%,(D!%
M13XF+4@H)RU5.$(A1#TW8$`L(B%,/2=-4#M78$`L)U5).4(A4SDW,5(Y5BE#
M.U913PI-/$!)73=572XV)BE$.38X*BM6+54\1RE%.T<Q0SLW14LX5EU,.U<I
M6SA7-5(\1C5./2<I1SA&+4\[)EU2"DTH(RU;+#)84"@F-5@X5D!`/%<U0B@C
M+$`L,B%2.U913#\W*44\)C5!/2)@4#\U73\S14%".28U1B)"748*33LG-5,Z
M)CU2.#<A2#HV+5,^5U5$.38X*BM7+44])SU).T8Q3SU7,5D\)C5;/"9=4"@G
M(4\\)U5$.38X*@I-*U8M53Q'*44[1S%7.C991#M7/50^-R%%/E<A3SPB8%`_
M-C%%.4!(3SQ6-50X-E%0.B8E6SPF75`_-C%%"DTY0$A/.%<U4CQ&-4X])B5,
M/"9!03Y3)$XL)U5$.38X*BM604DY)C5#/3<I4SM7*5L_-C%%.4!(3SM6*5,*
M33A7-5(Y-BU5/$<M3SQ'35TY)C5&(D)=4CDW.44X-E%#/3<I4SM7*5L_-C%%
M.4!(3SQ6-50X5S52/%9=4@I-/E,P0#Y7(4\\)U52.3<A13@W,5TX1D5..2(A
M1#DV."HK5RU(.U<]0STW*5,[5RE;/S8Q13E`2$\S1C58"DT])2U4.3<A)3M&
M+4\Y)D5..5(A5SHF-5(Y,B%..U<Q6R)"72XY-T%4-%<Q13PD-4XX5EU$.C99
M1R@E+50*33@V640X-RE$,3990SM6,4D[1CQ`+$,T5B@F)5(\1B59*"8M3SPG
M1$`Y)C5&(D-@0#93)%(N,ETA.5<I00I-/48T3S`V)4,]-S%%*U0E0SHW*4,]
M-E5&.R8U6"M4)50Z-E%$.3)=(3DF144\1C53.C<L3S`W*4D[1CQ/"DTP5BU%
M.29%3#LF)$\Q-CU2.#<Y12)"724X-BU5/28T3S$V+4D\1BU5.S8Y3#DW0$\Q
M-C%).3<I13Q615,*32M414<\1B56.3)=*3@V+54])C1/,C8M23Q&+54[-CE,
M.3=`3S(V,4DY-RE%/%9%4R)"724])D!/,T<Q20I-.R8Q12M474<\1B56.3)=
M+S@V+54])C1/,U8M23Q&+54[-CE,.3=`3S-7,4D[)C%%*U1=1#HV-5(Y-RU)
M"DT\4ETU.5<I03U&-$\U-B5#/3<Q12)"734X5D52.%<U33E&444^(ETU.29%
M13Q&-5,Z-RQ/-C8E0STW,44*32M5,4@[5RE.*U9552M6554[)S%)/"9162M6
M,4D]1D5$.3)=0SM7(5D\1D5'.B<P*BPS/%8K5RE%.59%4PI-/28U4CDV,$`L
M,T!1*U8I4CM6344[1BE!/$)@42XS8$\[)EU'.C8M03LF64\](F!1+C,H3SM6
M644\5S50"DTY-RE).U<H0"Q#8%$K5S%7.U<M53PF-5(Z-EU2(D,H4"TB750Z
M)RE%.3<M53PF-5(Z-EU2*",H4"XR75`*33LG-5,[-D5./3<L3SM6644\-S5!
M/$<Q13Q"74\[1C5(.#911BM7,4@\1C5%/#<U03Q',44\1RQ/.#8]4@I-.#<Y
M12)"74$X-BU5/28T3S@V+4D\1BU5.S8Y3#DW0$\X-S%).R8Q12M6)40Z-C52
M.3<M23Q274$\1D5."DTY4EU#.%8U1#HV44PX,EU%.5<I03U&-$\Y-B5#/3<Q
M12)"744X5D52.%<U33E&444^(EU%.29%13Q&-5,*33HW+$\Z-CU2.#<Y12@C
M*%(M0EU).#8M53TF-$`L0RA8*U9%0SHW*4,]-E5&.R8U6"M6140Z-C52.3<M
M20I-/%)=13TF0"HK5EE4.C911#DR8%(L4SA/.U8]4C@W.44K5EU!.%<U5#DR
M74\X5D52.%<U33E&444^(EU/"DT])D5,.28T3SM6,4DY-RE%/%9%4R@C*%0L
M0EU5.5<I03U&-$\]-B5#/3<Q12)"754X5D52.%<U33E&444*33XB8%(M(SA/
M/38Q23DW*44\5D53*U=%03A7-50Y,F!2+3,H3STF04\\1EA//C8Q23DW*44\
M5D53-S!)6PI-.2<U4"@G,5D\)C1`*U9903LV-50^-R%%*"8U42)"(5LS1C58
M/24M5#DW(24[1BU/.29%3CE28%(H)D5."DTY)C58*",H0#HV640Y-T!`/"<U
M5"@G(4\\(F!1*"8E1#DG55LY-T%#.B(A4#M7(5TZ-CE%.R<M12)'548*33M7
M*4$[)E!`/"9=4")"72XY-T%4-%<Q13PD-4XX5EU$.C991R@D644^)S$S/28U
M4#$V64,[5C%).T8\0`I-/$8U03DF74X[)T1`.28U1B@B8$`B0ET_,T5!1CQ7
M,5(H(R12+B(A4STG*4D[1CQ`.2<U4"@C8$`J)5TN"DTV(D1`/"<U5#HV650Y
M-RE6.#900#DF-48H(F!`(D)<2BI&.4D[1C%&.U995"@B748Z-EE$.49=3CTB
M(4P*33M6)40H)C%%.4!(3SE&14XY)CE/.T<Q6R)"8$4H)"E%.%8E53Q6-$`]
M5C1`.%8E3B@F644]1C52*"9110I-/2(A+CDW050T5S%%/"0U3CA6740Z-EE'
M*"8]13TB(4D[1S%/(D)@12@E+4@X-RE%.20Y3SM',20Z-RE%"DTX5S%//$=$
M3"@G/44H)BU!.T993STB(5(Y-C5..%9=1#DR(4$H)CE/.T<P0#TF7$`S1C58
M/24M5#DW(24*33M&+4\Y)D5..5!(0"DR(4DY0B%7.3(A03Q&-$`Z-EA`/%9!
M03Q&-40H)E5/.28T3B@B(3,[4B%).4(A0PI-/3<I4CDV650\5D%!/$8U1"@F
M15,H)S%2/38T3")"8$4H)SU%*"8M03LF4$`])D%%*"993SQ&54$[(B%&"DTZ
M-EE$.49=3CTB(4$[1C!`/$8U5#TW*4XH)S%(.#<P*B@B74,]-RE2.3995#Q6
M04$\1C5$*"<]2#DW*44*32@G35`[5V!`.%<U4CQ&-4X])RU(.#<I13DG5$`^
M5CE!.R<M13\R(4DY1C5,/%8T*B@G3$HJ1CE).T8Q1@I-.U995"@G5"HH)TU$
M/3=@0#=463@Y1RU4/$)@4R@C)%(M,B%'.3<Q23M',44\1SE!.R(A0SU'+$`[
M)C5."DTY5S%(*",L0#@V,40H)5TN-B8Y4STG*$`L(F!3*")442@G*4\[)E`J
M*"(A1SDW,4D[1S%%/$<Y03LB(4,*33U&6$`Y-T%#.B(A)CM6650Q)D52.38M
M5#M7*5DH(RA`.C991#DW0$`Z5EE//5980")"8$`^5R%//"(A)@I-.U995#$F
M15(Y-BU4.U<I62@F-5@X5D!`.58U5#\P2$`H)TQ**D8Y23M&,48[5EE4*"8Q
M53PB8$\Q-EE#"DT[5C%).T8\0#E6-50H)2U4.#991#@W*40Q-EE#.U8Q23M&
M/$`Y-R0J*")@0#Y0140]-V!`.R8U3CE7,4@*32@F,4DX5S!`.3=!0SI@2"D^
M4R1`.C991#DW0$`K5#DI,2(A3CDR(5LL0B%).T8Q13XB8%,H(R1`/$9=3`I-
M.R(A4#TW,5T^5R%//"(A4#M7(5TZ-CE%.R<M13\V.4\\1B5,.V!(*2@F,54\
M(F!/,3990SM6,4D[1CQ`"DTS1C58/24M5#DW(24[1BU/.29%3CE2(5`]-S!`
M.28U1CHV644Y1EU./6!(*3\W344^)BU(*"<A3SPG5$`*33HV.44[)RU%(D)@
M0"@G54DY1C5,/%8T*B@G54DY1C5,/%8T*C\V*4D[1C!`.28U1B)'55L\)EU0
M/S9%1@I-.3914SDP2$\W5%DX-"<I3SA4)5(\1B59*",T0#@W*5(X-T1`-U5=
M+C8F,44Y0$A/-U19.#!604$[1EE%"DT[)RQ`+"(A/S=463@Y)C5&(D)=/S-%
M030[5S%!.R0I63TF-5,H(V!`-U5=+C8F,44Y0$A/-U19.#$F72D*33LV)4<Y
M-%U0/E!(*2PR(4D[1C%%/B=-1#TW(5T^4R5=.C8Y13LG+44H(ET_,T5!(SHF
M)4X[1C5,/%(A10I-/B8M2"@G+50[5RE%(D!%/S-%02,Z)B5..T8U3#Q28%(H
M)B5$.2)@4B@G*4\[)E!`-U19.#0G*4\X5"52"DT\1B59*"-@0#=463@P5D%!
M.T9913LG+$`Y5C54.C995#DW*58X-E!`.#<M5#M7*44H)R%//&!(*2TR(4D*
M33M&,44^(F!4*"9%3CDF-5@H)E55.R)@4B@F14XY)C58/E,D0#Q7-4(H(T!`
M.C8Q23U"8%$H)B5$.2(A30I-/39173Y6554[(F!1*"<M53A"8%@H)D5$.C<X
M0"PR(4$Y)C%=.C8Y13LG+44B0$14*"9%3CDF-5@H)E55"DT[(F!/-U19.#4F
M750X-E$B/C<Q13Q2(44^)BU(*"<M5#M7*44H)R%//"(A13XF+4@H)R%//&!(
M*3E7+4$*33U&-$`[-B54/$9%6"@F14X]1C52/29503TG*4D^(B%#.U990S@W
M,$`L(EA5*"<M13TF/5(X-T1`+")@4`I-*",P0"Q"(5([5E%,*"<I13A7,48Z
M-E%,*"8]4CDW+50[5RE%(D!%6R(S8$`L,B$_,T5!(SHF)4X[1C5,"DT\4F!1
M*"<M53A'3"HB,$0I-U19.#0G*4\X5"52/$8E62@F-5@X5D!`.58U5"@F-5@Y
M-BPJ(C!$*3LF-4X*33E7,4@H)5TN-B4Q3STF)4PP1T54.3<L0#DW04,Z(B%3
M/38H0"M572XV)3%//28E3#!'150Y-RQ`.3=!0PI-.B(A4STF75(Y-U5&.U<H
M*B(P13\S14$T.U<Q03LD*5D])C53*"-@0#LF-5LY-T%)/2=523E`2"D_-E%/
M"DT[5V!`*U5=+C8E(5([5BTA/$<I03XR8%4H)B52/$8E62@F,44Y0$E=-U5=
M+C8F*40Y-C@J*U8M3SLF75(*33HV54$Y5C5;-U19.#$F72D[-B5'.31=4#\U
M73\S14%".28U1B)"74$[)R%(.#9%33@V/44^4R1`.#8Q1`I-*"5=+C8D,4\R
M-E5!.58U+SPG540Y-C@J*3(U)3M&,20[5BU5.S8U3CU@2"HY5RU!/48T*B@B
M73\W5%DX"DTX1B53.39503TG*4D^(B%-.#<Q4CHW0$`X5S52/$8U3CTF54$]
M)RE)/B(A1#DV."HY5RE%/%<Q3SQ&-"H*32DR-24[1C$P/$9=3#M6/"HI,C4B
M.38]23M%+44])S50(D)=3SU&)4PH)TPJ*")@0"@G,5(X-EE3.R8E5`I-.3(A
M4SA6)4PY,B%..3<]4#@W,4@H(V!.+3)@4"M#-$`L(EA5*"-@0"Q3.%`H)B52
M.%!)72@F,44Y0F!/"DT[)D5..3(A6R)"8$`H(B%-.U<Y13TF7$`\1E%).T8U
M5#M2(5,])RE/.E8T*C\R(40Y-CA`*U<M13TG-5`*32@G3"HH(F!`*"<M13TF
M44D[1C57.C8Q5#HB(5,Y-S%,.C9913A6)5`H)RU%/29123M&-4H[5D5.*"8]
M4PI-.#<Y12)'5$`Y)C5&*")=03Q'*4\]4B%;(D)@0"@B(4XY-SU0.#<Q2"@F
M54\]1C54.U(A1#TW8$`\1EU4"DTX-S%%*")442Q28%8H)RE,.C9913TF7$`M
M(F!-+4(A4CLF14XY-S%/*")45"@B5%8H)RE,.C9913TF7$`*33A644\\5C50
M.#<Q2"@F/5,X-SE%*"-@0#Q6-50[)D5..39)3SHV6$`\5S%2.U9-12@F/5(Y
M-RU4.U<I10I-*"8Y23LF4$`[1C5'*"<I3STF)50Y,$E=*"8Q13E`2$4I-#5.
M.24M13TG-5`B0V!`+")@5RXS*$`L,V!0"DTN(B%2.38M5#A644D\8$A1+C,L
M0"TC.%,H(RQ9*",H5RM#-$`\1C5#/28M3#HW8"HL,T13*",P5BQ28%,*32XR
M8%(M4EA5*"<I13A7,4,[)D50(D-@0"PB8%(H)RU%/2<U4")#+%DK0RA8+3,\
M4"U"8%(M4V!.+4,D50I-+%,T5B@G,5(X-EE3.R8E5#DP2%`K0SQ1+2,H6"U"
M8%`K0SA1+3,L6"TR(5,X5B5,.3!(4"@G+44])CU2"DTX-T0J+#(A4SDW,4$[
M)R%(.#!)1SQ6)58Y,$E..3<]4#@W,4@B1RU9/%<Q13LV,4DX5S`J.$8U1SHV
M6"H*32Q#*%4H(RQ2+2)@4BU#8$`L4RQ7*"<M13TF*4([5T`J+$,H52@C+%,M
M4B%-.U<Y13TF7"HL,F!0*"<I3`I-.C9913TF7"HL,F!0*"<I3#HV644])EPJ
M+#)@32PR(5([)D5..3<Q3R)#)$`L(B%2.R9%3CDW,4\B0V!`"DTK,R1`/$91
M23M&-50[4$A1*")442@G*4PZ-EE%/29<*BPR8$TL,B%2.R9%3CDW,4\B0R1`
M*S,D0#Q&44D*33M&-50[4$A0*")442@G*4PZ-EE%/29<*BPR8%`H)RE,.C99
M13TF7"HL(F!-+#(A4CLF14XY-S%/(D-@0`I-*S,D0#Q&44D[1C54.U!(42@C
M8$`\1E%).T8U5#M02%`H(E11*"<I3#HV644])EPJ+#)@4"@G*4PZ-EE%"DT]
M)EPJ+")@32PR(5([)D5..3<Q3R)#)$`L(B%2.R9%3CDW,4\B0V!`*S,D0#Q&
M44D[1C54.U!(42@C8$`*33Q&44D[1C54.U!(42@C8$`\1E%).T8U5#M02%`H
M(E11*"<I3#HV644])EPJ+#)@4"@G*4PZ-EE%/29<*@I-+#)@4"@G*4PZ-EE%
M/29<*BPR8%`H)RE,.C9913TF7"HL,F!0*"<I3#HV644])EPJ+#)@32PR(5([
M)D5."DTY-S%/(D,D0"PB(5([)D5..3<Q3R)#)$`L(B%2.R9%3CDW,4\B0R1`
M+"(A4CLF14XY-S%/(D,D0"PB(5(*33LF14XY-S%/(D,D0"PB(5([)D5..3<Q
M3R)#)$`L(B%2.R9%3CDW,4\B0V!`+#(A4CLF14XY-S%/(D,D0`I-+"(A4CLF
M14XY-S%/(D-@0"PR(5([)D5..3<Q3R)#)$`L(B%2.R9%3CDW,4\B0V!`+#(A
M4CLF14XY-S%/"DTB0V!`+#(A4CLF14XY-S%/(D,D0"PB(5([)D5..3<Q3R)#
M8$`L,B%2.R9%3CDW,4\B0R1`+#(A4CLF14X*33DW,4\B0V!`+#(A4CLF14XY
M-S%/(D,D0"PB(5([)D5..3<Q3R)#8$`L,B%2.R9%3CDW,4\B0R1`+#(A4@I-
M.R9%3CDW,4\B0R1`+#(A4CLF14XY-S%/(D,D0"PR(5([)D5..3<Q3R)#)$`L
M(B%2.R9%3CDW,4\B0V!`"DTL,B%2.R9%3CDW,4\B0R1`+"(A4CLF14XY-S%/
M(D,D0"PB(5([)D5..3<Q3R)&-4XY8$E3/2<I3SI6-"H*33E7*44\5S%//$8T
M*CE7*44\5S%//$8T*BPB8%`H(V!.+3(A4SDW,54\8$E'/%8E5CDP2%`K0RQ3
M+%,L4PI-+%(A4SDW,4<\1B59(D,D0#Q6-50X-E%0.B8D*BTR8%<H(RA0+4)@
M5"U30$`[5SE!.R(A1CHV44PB1CU2"DTY-RU4.U<I12)#8$`\5C54.5<I03XP
M2%$H)RU%/28E3#PF04$B0S1`+5)@4BPC.$`M(SQ8*"9=5C@V4$`*33LV)50\
M1D58*"8Q13E&)54[)S%-.#<Q4CHW0$`\5C54.S8E5#Q&15@H)RU4/$9=2SDP
M24<\1C53/29=4@I-.3!(4"@C8$`L(EA5*"<M13TG-5`B1CU3.#<Y12)#8$XL
M4RQ3+%,L4RQ2(5,Y-S%'/$8E62)#)$`\5C54"DTX-E%0.B8D*BTR8%<H(RA1
M+2)@5"U3/$`[5SE!.R(A1CHV44PB1CU2.3<M5#M7*44B0V!`/%8U5#E7*4$*
M33XP2%$H)RU%/28E3#PF04$B0S1`+5)@4BPS,$`M(SQ7*"9=5C@V4$`[-B54
M/$9%6"@F,44Y1B55.R<Q30I-.#<Q4CHW0$`\5C54.S8E5#Q&15@H)RU4/$9=
M2SDP24<\1C53/29=4CDP2%`H)RU%/28]4C@W1"HL(EA3"DTL4RQ3+%,L0#Q6
M-50Y5RE!/C!)1SQ6)58Y,$A0*"-@0"U31%(H(R10+"-`0#Q&-4,])BU,.C=@
M*C93)$`*22PB8%`H(E11*"-@0"PS8%`N)51`.%9=3CA6)50B1CU2.3<M5#M7
M*44B0C1%-2<I03HV444\0$@J"F`*?0JL?5QP87)D7'1X-3(P7'1X,3`V,%QT
M>#$V,#!<='@R,3(P7'1X,C8V,%QT>#,R,#!<='@S-S(P7'1X-#(V,%QT>#0X
M,#!<='@U,S(P7&8P7&(P7&DP7'5L;F]N95QF<S(T7&9C,%QC9C`@+B!7:'D@
M96UA:6P@=G,N(&$@<&]S=#\@22!F:6=U<F5D("AP97)H87!S(&EN8V]R<F5C
M=&QY*2!T:&%T('1H:7,@<W5B:F5C="!W87,L('=E;&PL(&9A:7)L>2!S=6)J
M96-T:79E(&%N9"!T96YD<R!T;R!B92!R96QI9V5O=7,@:6X@;F%T=7)E+B!4
M:&%T(&ES+"!P96]P;&4@=&5N9"!T;R!S=')O;F=L>2!H;VQD(&]P:6YI;VYS
M(&%B;W5T(&AO=R!T;R!L87EO=70@<V]F='=A<F4N(%1H:7,@:7,@97-P96-I
M86QL>2!T<G5E('=H96X@>6]U(&-O;&QE8W0@82!T86QL96YT960@9W)O=7`@
M;V8@<&5O<&QE('=H;R!A;&P@:&%V92!S=6-C965D960@:6X@<&%S="!V96YT
M=7)E<R!A;F0@=VES:"!T;R!I;G-T:6QL('1H96ER(&5X<&5R:65N8V4@:6YT
M;R!T:&4@9W)O=7`N($DG=F4@<V5E;B!P96]P;&4@*&UY<V5L9B!I;F-L=61E
M9"D@9V\@=&\@:7)R871I;VYA;"!L96YG=&AS('1O('-U<'!O<G0@=&AE:7(@
M<&]S:71I;VYS+B!3;RP@22!F96QT($DG9"!R97-P;VYD('1O('EO=7(@8VAA
M;&QE;F=E('=I=&AO=70@:6YS:6=H=&EN9R!A(&IA:&%D+EP*7`I;+BXN75P*
M"EQP87)D7'1X,3$R,%QT>#$V.#!<='@R,C0P7'1X,C@P,%QT>#,S-C!<='@S
M.3(P7'1X-#0X,%QT>#4P-#!<='@U-C`P7'1X-C$R,%QF,EQF<S(X7&QI,S8P
M7&9C,5QC9C$@270G;&P@<&]R="!E87-I;'D@=&\@979E<GD@3F585%-415`@
M<W5P<&]R=&5D('!L871F;W)MT&%N9"!T:&%T)W,@86QL($D@8V%R92!A8F]U
M="X@($]T:&5R('!R;V=R86UM97)S(&UA>2!N;W0@8F4@87,@;'5C:WDL('1H
M;W5G:"P@86YD(&UA>2!N;W0@:&%V92!T:&%T(&QU>'5R>2Y<"@I<<&%R9%QT
M>#4R,%QT>#$P-C!<='@Q-C`P7'1X,C$R,%QT>#(V-C!<='@S,C`P7'1X,S<R
M,%QT>#0R-C!<='@T.#`P7'1X-3,R,%QF,%QF<S(T7&9C,%QC9C`@7`I3:6=H
M+BXN($UO<W0@;V8@=7,@:6X@=&AE(")296%L(%=O<FQD(B`H=&TI(&1O;B=T
M(&AA=F4@=&AA="!L=7AU<GDN($EN(&9A8W0L(&UO<W0@8G5S:6YE<W,@8V%S
M97,@9F]R(&UA:VEN9R!M;VYE>2!C86YN;W0@8V]U;G0@;VX@3F585"`H5U`L
M($QO='5S+"!";W-S+"!!9&]B92P@971C*2P@;W(@=&AE(&)U<VEN97-S('!L
M86YS(&%R92!E>'1R96UE;'D@;W!T:6UI<W1I8R!W:71H;W5T(&UU8V@@:&%R
M9"!D871A("A!<'!3;V9T*2P@;W(@87)E(&1E<W1I;F5D('1O(')E;6%I;B!S
M;6%L;"!P;&%Y97)S("A-971R;W-O9G0L(%-T;VYE($1E<VEG;BDN($EF($YE
M6%0@8V%N(&=E="!T:&5I<B!A8W0@=&]G971H97(@9F]R('1H92!C<F]S<RUP
M;&%T9F]R;2!S=7!P;W)T(&UA;GD@;V8@=7,@=VEL;"!B92!R96%D>2!A;F0@
M=VEL;&EN9R!T;R!R:61E('1H92!B;W<M=V%V92X@4V\@9F%R+"!.95A4(&QA
M9W,@:6X@=&AA="!A<F5A("X@2&5N8V4L('=E(&QO;VL@870@;6%R:V5T<R!L
M:6ME(%=I;F1O>F4@*'1M*2Y<"EP*"EQF8S%<8V8Q(%LN+BY=7`H*7&9C,%QC
M9C`@7`H*7&(@22=M(&%G86EN<W0@2'5N9V%R:6%N(&YO=&%T:6]N+B`@22=M
M(&%L<V\@;F]T(&EN8VQI;F5D('1O(&UA:V4@86YY(')U;&5S(&=O=F5R;FEN
M9R!I;G-T86YC92!V87)I86)L92!N86UE<RP@8G5T(&-L87-S(&YA;65S(&%R
M92!C;W9E<F5D("AS964@8V]M;65N="!A8F]V92DN7`H*7&(P(%P*0E17.B!C
M;VUP;&5T92!(=6YG87)I86X@8V]V97)S('9A<FEA8FQE+"!F=6YC=&EO;BP@
M;65T:&]D+"!C;&%S<RP@86YD(&9I;&4@;F%M97,N($EN('-H;W)T+"!E=F5R
M>71H:6YG('1H870@>6]U)V0@;F5V97(@=V%N="!T;R!S964@2'5N9V%R:6%N
M(&]N(#HM*2Y<"EP*"EQF8S%<8V8Q(%LN+BY=7`H*7&)<9F,P7&-F,"!<"D%L
M<V\@;F]T:6-E('1H92!C;&%R:69I8V%T:6]N(&%T('1H92!E;F0@;V8@=&AE
M('!A<F%G<F%P:"!R96=A<F1I;F<@;&]C86QI>F5D($Y)0B=S("A)(&AA9"!O
M;F4@<&5R<V]N(&5M86EL(&UE(&EN(&1I<V%G<F5E;65N="P@87)G=6EN9R!T
M:&%T('1H97D@=V%N=&5D(&QO8V%L:7IE9"!.24(@;F%M97,@:6YS=&5A9"DN
M7`H@7`H*7&(P(%1H92!O;F4@=VEN9&]W+7!E<BUN:6(@:7,@8V]N<VED97)E
M9"!P<F]P97(@3F585"!)0B!E='1I<75E=&4N($ET(&%L<V\@=V%S(&]R:6=I
M;F%L;'D@<F5L871E9"!T;R!E87)L>2!P97)F;W)M86YC92!C;VYS:61E<F%T
M:6]N<R`H:2YE+B!W86YT:6YG('1O(&QA>GDM;&]A9"!A<R!M=6-H(&%S('!O
M<W-I8FQE*2X@06X@86YT:2UE>&%M<&QE(&]F('1H:7,@*$EF($D@<F5M96UB
M97(@8V]R<F5C=&QY*2!I<R!7;W)D4&5R9F5C="P@=VAI8V@@;&]A9',@<VQO
M=VQY(&)E8V%U<V4@;75L=&EP;&4@=VEN9&]W<R]P86YE;',@:6X@82!S:6YG
M;&4@;FEB("AI;B!W:&EC:"!T:&4@87)C:&EV960@;V)J96-T<R!W:6QL(&)E
M(&=E='1I;F<@82!R96%D.B!A;F0@87=A:V4@8V%L;"DN($D@;6EG:'0@861D
M('1H870@=&AE<F4@:&%S(&)E96X@9&ES8W5S<VEO;B!A8F]U="!N:6(@;&]A
M9&EN9R!A;F0@,RXP('=H:6-H(&UI9VAT('1E;F0@=&\@<F5V97)S92!.95A4
M)W,@;W)I9VEN86P@<&]S:71I;VX@*&UO<W0@;V8@=&AE(#,N,"!S;&]W+61O
M=VX@:7,@<F5L871E9"!T;R!N:6(O9&ES:R]M96UO<GD@<W1U9F8I+B!!;'1H
M;W5G:"!T:&4@<W1A;F-E(&AA<R!N;W0@8VAA;F=E9"P@:&]P969U;&QY('1H
M:7,@9&5M;VYS=')A=&5S('1H870@=&AE(&-O;G9E;G1I;VX@<F]S92!F<F]M
M(&%N('5N9&5R;'EI;F<@:6YT96YT.B!P97)F;W)F;W)M86YC92P@=VAI8V@@
M8V%N(&-H86YG92!H;W<@=&AI;F=S(&=E="!I;7!L96UE;G1E9"Y<"EP*22!T
M:&EN:R!T:&%T)W,@86QS;R!M>2!P;W-I=&EO;B!O;B!S=&%N9&%R9',Z(&$@
M<W1A;F1A<F0@9F]R('1H92!S86ME(&]F(&$@<W1A;F1A<F0@:7,@;F5A<FQY
M(&%K:6X@=&\@9&]G;6$N($$@<W1A;F1A<F0@:6X@86YD(&]F(&ET<V5L9B!I
M<R!T:&5R92!T;R!S97)V92!A('!U<G!O<V4@;W(@<V5T(&]F('!U<G!O<V5S
M+B!4:&5S92!P=7)P;W-E<R!W:6QL(&QI:V5L>2!V87)Y(&1E<&5N9&EN9R!O
M;B!T:&4@96YV:7)O;FUE;G0@;VYE(&9I;F1S('1H96US96QV97,@:6XL(&%N
M9"!S;R!T:&4@<W1A;F1A<F1S('=I;&P@8F4@;V8@:6YC<F5A<V5D('-E<G9I
M8V4@:68@=&AE>2!C86X@861A<'0@=&\@86EM<R!O9B!T:&4@<')E<V5N="!A
M<'!L:6-A=&EO;B`H8G)O860@;65A;FEN9RDN7`I<"DD@<&5R8V5I=F4@=&AA
M="!Y;W4G<F4@871T96UP=&EN9R!T;R!I;7!L96UE;G0@82!S970@;V8@<G5L
M97,@*'-T86YD87)D<RD@=&AA="!S97)V92!Y;W5R(&)E<W0@=71I;&ET>2X@
M24U(3RP@9FEN9"!O=70@=VAA="!G;V%L<R!Y;W4G<F4@=')Y:6YG('1O(&%C
M:&EE=F4L('!R:6]R:71I>F4@=&AE;2P@86YD('1H96X@<V5E(&AO=R!T:&5Y
M(&-O9&EF>2!I;G1O(&$@<G5L92US970N($UY(&5X<&5R:65N8V4@:7,@=&AA
M="!Y;W4G;&P@96YD('5P('=I=&@@82!D:69F97)E;G0@<V5T(&]F('-T86YD
M87)D<R`Z+2DN7`H*7&(@7`I)('!R97-U;64@>6]U(&UE86XZ(")S;VUE('!A
M;F5L<R]W:6YD;W=S(&EN('-O;64@3DE")W,@9&]N)W0@:&%V92!T:71L97,B
M+B`@37D@<75E<W1I;VX@=V]U;&0@=&AE;B!B93H@=VAY(&1O97-N)W0@=&AE
M('!A;F5L+W=I;F1O=R!H879E(&$@=&ET;&4_("!7:&%T('=O=6QD(&ET(&AU
M<G0@=&\@<'5T(&$@=&ET;&4@:6X_("!.;W1E('1H870@=&AE(')U;&4@22!G
M879E(&1O97,@9VEV92!Y;W4@<V]M92!D:7-C<F5T:6]N(&EN('1H92!C:&]I
M8V4@;V8@=&AE('1I=&QE.EP*7`H*7&(P($]F=&5N('1I;65S(&YI8G,@87)E
M('5S960@=&\@8V]L;&5C=&EO;B!I;6%G97,@*&%S(&EN('!A<G1S(&]F(%=-
M*2P@;W(@8V]N=')O;',@*&-O;6UO;B!F;W(@8W5S=&]M('=I;F1O=W,I+"!O
M<B!I;G-E=',@=&\@;W1H97(@<&%N96QS("AI+F4N(&-U<W1O;6EZ:6YG($YE
M6%0G<R!P<FEN="!P86YE;"P@3F585"=S('5S92!O9B!S=6)P86YE;',@:6X@
M=&AE($-O;&]R('!I8VME<BDN(%1H97-E('1I=&QE<R!N979E<B!G970@9&ES
M<&QA>65D(&%N9"!O9G1E;B!A<F4@;75L=&DM<'5R<&]S92Y<"@I<8B!<"@I<
M8C`@6RXN+EU<"G)E.B!N979E<B!T;W5C:&EN9R!A='1R:6)U=&5S+VEN<W1A
M;F-E('9A<G,N+BY<"EP*270@9&5P96YD<R!O;B!H;W<@(G!U<FES="(@;W(@
M=&AE;W)E=&EC86P@=G,N('!R86-T:6-A;"!Y;W4@=V%N="!T;R!G970N(%=I
M=&AI;B!T:&4@<V%M92!M;V1U;&4O8VQA<W,@:70@;6%Y(&)E(&%C8V5P=&%B
M;&4@=&\@<F5F97(@=&\@=&AE(&EN<W1A;F-E('9A<FEA8FQE('9S+B!T:&4@
M;65T:&]D+"!E<W!E8VEA;&QY('=H97)E('-P965D(&ES(&-O;F-E<FYE9"Y<
M"EP*"EQB($EF(&ET)W,@=VET:&EN('1H92!S86UE(&EN<W1A;F-E(&]F(&$@
M8VQA<W,@*&DN92XL('1H92!S86UE(")M;V1U;&4B/]!W:&%T(&1O('EO=2!M
M96%N(&)Y(&$@(FUO9'5L92(L(&%N>7=A>3\I+"!T:&4@:6YS=&%N8V4@=F%R
M:6%B;&5S(&]F(&$@9VEV96X@:6YS=&%N8V4@;V8@82!C;&%S<R!A<F4@86-C
M97-S:6)L92!T;R!A;&P@;65T:&]D<R!O9B!T:&%T(&EN<W1A;F-E(&%N>7=A
M>2P@<F5G87)D;&5S<R!O9B!T:&4@=F%R:6%B;&5S)R!C;&%S<VEF:6-A=&EO
M;B`H<'5B;&EC+"!P<F]T96-T960L(&]R('!R:79A=&4IT'-O(&EN('1H:7,@
M8V%S92!T:&5R92!W;W5L9"!B92!N;R!A9'9A;G1A9V4@=&\@9&5C;&%R:6YG
M(&%N>2!O9B!T:&5M('!U8FQI8RY<"EP*7`I"=70L(&EF('EO=2!A<F4@=&%L
M:VEN9R!A8F]U="!D:69F97)E;G0@:6YS=&%N8V5S(&]F('1H92!S86UE(&-L
M87-ST'=H870@<F5L979A;F-E(&1O97,@=&AE(&9A8W0@=&AA="!T:&5Y(&%R
M92!O9B!T:&4@<V%M92!C;&%S<R!H879E/R`@22!G=65S<R!I9B!I="!E>&5C
M=71E<R!F87-T97(L('1H96X@=V4@<VAO=6QD(&%L;"!J=7-T(&=O(&)A8VL@
M=&\@:&%V:6YG(&=L;V)A;"!V87)I86)L97,@9F]R(&5V97)Y=&AI;F<@*&%L
M82!7:6YD;WIE*3]<"EP*"EQB,"!!(&UO9'5L92!I;B!/8FI#(&ES(&%N>2`J
M+FT@9FEL92X@4W1R:6-T;'D@<W!E86MI;F<@22=L;"!M96%N('1O(&EN=&5R
M<')E="!T:&4@86)O=F4@87,@=7-I;F<@86X@:6YS=&%N8V4@=F%R:6%B;&4@
M=VET:&EN('1H92!C;VYF:6YE<R!O9B!T:&4@;W)I9VEN86P@8VQA<W,@8V%T
M96=O<GD@86YD('=I=&AI;B!A('-I;F=L92!F:6QE+B!3;RP@22=M(&YO="!A
M9'9O8V%T:6YG(&1I<F5C=&QY('5S:6YG(&%N(&EN<W1A;F-E('9A<FEA8FQE
M(&EN(&$@<W5B8VQA<W,@;W(@8V%T96=O<GDL(&]N;'D@=VET:&EN('1H92!B
M;W5N9',@;V8@:70G<R!C;&%S<R!I;7!L96UE;G1A=&EO;BP@86YD('1H96X@
M;VYL>2!F;W(@<F5A<V]N<R!O9B!S<&5E9"X@3W1H97)W:7-E('EO=2!R:7-K
M('-K:7)T:6YG('1H92!B96YE9FET<R!O9B!/3U`N7`I<"ELN+BY=7`H*7&(@
M7`I))W9E(&)E96X@9FEN9&EN9R!T:&%T('1H92!T:&ER9"!C:&5C:VEN9R!Y
M;W4@;65N=&EO;B`H:6YV87)I96YT<RD@:7,@97-P96-I86QL>2!I;7!O<G1A
M;G0@=VET:"!$:7-T<FEB=71E9"!/8FIE8W1S+B`@5&AE<V4@='EP97,@;V8@
M;V)J96-T<R!S965M('1O(&5I=&AE<B!N965D('-T871E+6UA8VAI;F4@;&]G
M:6,@:6YS:61E(&]F('1H96TL(&]R(&5L<V4@<')O=FED92!S;VUE('-O<G0@
M;V8@;75T97@M;&]C:VEN9R!M971H;V1S+B`@06YD(&EN(&%N>2!C87-E+"!T
M;R!I;7!L96UE;G0@<W5C:"!M96-H86YI<VUS+"!T:&4@;V)J96-T(&UU<W0@
M(G)E;65M8F5R(B!W:&\@<V5N="!E86-H(&UE<W-A9V70<V\@(G-T871E(B!I
M;F9O<FUA=&EO;B!I<R!Q=6ET92!C;VUM;VXN7`H*7&(P(%P*1&ES=')I8G5T
M960@3V)J96-T<R!I<R!P<F]B86)L>2!A(&=O;V0@<&QA8V4@=&\@87!P;'D@
M=&AE(&EN=F%R:65N="!C:&5C:VEN9RY<"@I<8B!<"@I<8C`@+BXN7`I<"@EP
M<F]T;V-O;',@87)E(&-O;VPL(&)U="!N;W0@<W5P<&]R=&5D(&]U='-I9&4@
M3F585"`Z+2A<"EP*7`H*7&(@(%-O/R`Z+2D@7`H*7&(P(%P*06-T=6%L;'DL
M('=E('5S92!C871E9V]R:65S+"!B=70@:70G<R!Y970@86YO=&AE<B!T:&EN
M9R!T:&%T(&UA:V5S(&QI9F4@:&5L;"!P;W)T:6YG('1H:6YG<R!T;R!O=&AE
M<B!P;&%T9F]R;7,@.BTH7`I<"EP*"EQF,2!<"@I<8B!4:&%N:RUY;W4@9F]R
M('EO=7(@<F5S<&]N<V4N("!3:&]U;&0@=V4@<W1A<G0@<VAA<FEN9R!O=7(@
M9&ES8W5S<VEO;B!W:71H('1H92!N970_7`I<"@I<9C!<8C!<9F,Q7&-F,2!)
M9B!Y;W4G9"!L:6ME+"!P97)H87!S('EO=2!C86X@<&]S="!A('-U;6UA<GDN
M7`I<"G)E9V%R9',L7`I<"DME=FEN"EQP87)D7'1X,3$U,EQT>#(S,#1<='@S
M-#4V7'1X-#8P.%QT>#4W-C!<='@V.3$R7'1X.#`V-%QT>#DR,39<='@Q,#,V
M.%QT>#$Q-3(P7&8Q7&9C,%QC9C`@7`I<"BTM7`I.979I;B!0<F%T="P@1&EG
M:71A;"!496-H;F]L;V=Y+"!);G0G;"`@("!/<F5M+"!5=%P*3F585&UA:6P@
M<')E9F5R<F5D+"!B=70@3TY,62!A="!M>2!214%,(&5M86EL(&%D9')E<W,Z
=(&YE=FEN0&1T:6YT+F1T:6YT+F-O;5P*7`H*?0I,
`
-- 
---
root	                               root@dtint.dtint.com
Digital Technology Int.                (801)226-2984	
500 W. 1200 South, Orem UT, 84057      FAX (801) 226-8438
Re: Coding Rules (NOT rtf)
#1818
Author: nevin
Date: Thu, 19 Nov 1992 00:08
57 lines
3547 bytes
>> It'll port easily to every NeXTSTEP supported platform and that's all I care
>> about.  Other programmers may not be as lucky, though, and may not have that
>> luxury.

> Sigh... Most of us in the "Real World" (tm) don't have that luxury. In fact,
> most business cases for making money cannot count on NeXT (WP, Lotus, Boss,
> Adobe, etc), or the business plans are extremely optimistic without much hard
> data (AppSoft), or are destined to remain small players (Metrosoft, Stone
> Design). If NeXT can get their act together for the cross-platform support
> many of us will be ready and willing to ride the bow-wave. So far, NeXT lags
> in that area . Hence, we look at markets like Windoze (tm).

I'm not so sure that the assursion that others "are destined to remain small  
players (Metrosoft, Stone Design)" will prove to be accurate.  These companies  
that have committed whole heart and soul to the NeXT way of developing won't be  
as wrapped-up in cross-platform compatability issues (I'll bet that's why  
Virtuoso was so late).  If NeXTSTEP really takes off, these "small player"  
companies will be the ones that are ahead.
 
> The one window-per-nib is considered proper NeXT IB ettiquete. It also was
> originally related to early performance considerations (i.e. wanting to
> lazy-load as much as possible). An anti-example of this (If I remember
> correctly) is WordPerfect, which loads slowly because multiple windows/panels
> in a single nib (in which the archived objects will be getting a read: and
> awake call). I might add that there has been discussion about nib loading and
> 3.0 which might tend to reverse NeXT's original position (most of the 3.0
> slow-down is related to nib/disk/memory stuff).

I've heard a slightly different story about the 3.0 slowdown, from an ex-
NeXT employee.  It was caused (according to him) by a generalization of
things like "malloc(512)" to "malloc(sizeof(somesuch) * 4)" in order to better  
support new platforms (ala 486).

>> I presume you mean: "some panels/windows in some NIB's don't have titles".
>> My question would then be: why doesn't the panel/window have a title?
>> What would it hurt to put a title in?  Note that the rule I gave does
>> give you some discretion in the choice of the title:

> Often times nibs are used to collection images (as in parts of WM), or
> controls (common for custom windows), or insets to other panels (i.e.
> customizing NeXT's print panel, NeXT's use of subpanels in the Color picker).
> These titles never get displayed and often are multi-purpose.

Then the rule wouldn't apply.  The language of the rule was written such that  
it only applies to NIB's with windows or panels.  Or at least, that was my  
intent, and has been clarified in my latest version of the rules.

--
Nevin Pratt, Digital Technology, Int'l    Orem, Ut
NeXTmail preferred, but ONLY at my REAL email address: nevin@dtint.dtint.com

-- 
---
root	                               root@dtint.dtint.com
Digital Technology Int.                (801)226-2984	
500 W. 1200 South, Orem UT, 84057      FAX (801) 226-8438
Re: Coding Rules (NOT rtf)
#1837
Author: Doug DeJulio
Date: Thu, 19 Nov 1992 21:09
16 lines
1202 bytes
In article <1992Nov19.000858.26075@dtint.uucp> nevin@dtint.dtint.com writes:
>> 3.0 which might tend to reverse NeXT's original position (most of the 3.0
>> slow-down is related to nib/disk/memory stuff).
>
> I've heard a slightly different story about the 3.0 slowdown, from an
> ex-NeXT employee.  It was caused (according to him) by a
> generalization of things like "malloc(512)" to
> "malloc(sizeof(somesuch) * 4)" in order to better support new
> platforms (ala 486).

That sort of construct is evaluated at compile-time, not at
execute-time.  So it would explain a slow-down in compiles, but not in
general performance.
-- 
Doug DeJulio
ddj+@cmu.edu
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads