HowToUseWalnutVersion4.2Releaseas[Indigo]Documentation>WalnutDoc.tioga,.pressCamefrom[Indigo]Manual>WalnutDoc.tioga,.pressByWillie-SueHaugelandLasteditedByWillie-SueHaugelandonJune8,19834:03pmJimDonahueonJune2,19831:17pmAbstractWalnutisacomputermailsysteminterfacethatrunsinCedar.Itprovidesfacilitiestosendandretrievemail(usingtheGrapevinemailtransportsystem),andtodisplayandclassifypreviouslyretrievedmessages.Walnutisunderactivedevelopment.ThisdocumentdescribeshowtoobtainanduseWalnut4.2,thelatestversionofWalnutreleasedwithCedar4.2.HowtoUseWalnut:Contents0.Introduction1.Databasestructure2.Userinterface3.Thelog4.Becomingauser5.Copingwithreleasesandcrashes6.Userprofileoptions7.Shortfallsandwishes[Ifyouarereadingthisdocumenton-line,tryusingtheTiogaLevelsandLinesmenus(ifyoucan)toinitiallybrowsethetopfewlevelsofitsstructurebeforereadingitstraightthrough.]XEROXXeroxCorporationPaloAltoResearchCenter3333CoyoteHillRoadPaloAlto,California94304DRAFTForInternalXeroxUseOnlyDRAFTp ^{~vq YWr TosT-1r R LsR*0r QAsQA r O sO "5$]()-Q0Mn "A%)r JsJT ]#(.1586<\=C H ?%t!(+27:AD B^ MCn20%,(Q,t < Su 9F: 5:B 2: /Z: , : (: %n: " : #v  E//p#)+0$37w<?DG * |Rz!$'+70*2S4A\Fu Y h(? %b().p1$59< CO X< %* +1 9<AGg V b32%+y.1 9z<>_?E T  I R^ #%4&).%0Y3>8:0?@B P |(b"(.E0 7= D)G O(d(#\(,1_4 <<>Y@CE Mh z %y'=(+TVm$AHOWTOUSEWALNUT31.DatabaseStructureWeshalldescribeauser'smodelofWalnut'sdatabase.ThismodelsuppressesmanydetailswhoseunderstandingwouldberequiredinwritinganewapplicationonWalnut'sdatabase,butareirrelevantforaccessingthedatabasethroughWalnut'suserinterface.Walnut'sdatabasecontainstwoentitytypes:messageandmessageset.AmessageentitycorrespondstoamessageretrievedfromtheGrapevinemailtransportsystem.Likealldatabaseentitiesithasaname,consistingofthesender'sRNameconcatenatedwithauniquemessageIDprovidedbyGrapevine.Amessagealsohasseveralimmutableproperties:itssender,itssubject,andsoon.ItsunreadpropertyisaBOOLwhosevalueisTRUEwhenthemessageisfirststoredinthedatabase,andissettoFALSEwhenthemessageisfirstdisplayed.Amessageentityisalsoamemberofoneormoremessagesets.Amessagesetentityisnamedbyatextstringcontainingnoembeddedblanks.Therearetwodistinguishedmessagesets:ActiveandDeleted.Anewly-retrievedmessageismadeamemberofActive.AmessagethatisremovedfromallothermessagesetsisaddedtoDeleted.UsingtheActiveandDeletedmessagesetsinthiswayensuresthateachmessagebelongstoatleastonemessageset.WALNUT4.2x"g'y#&g'$g'%x'g'y(g'x*gg'y+g'sHDg't ^ x [<z!$"(/)2F6 =@AEa Y 52 %F&|)v 028z>yACf XA )p C% ( Uts $z( U)#Ux-GU-Uz/U1U58x6U Se !"(r.c14;o>DR T!$%z%RR&Rx(rR)QR /1f39 >4 FtPlPO{%' 0B2%7:=BN zNTNx}NsNz hN Nx$bN%YN(+* -z/5N/Nx3N4N9; yMADKv< I|9p"<#&(a+1J46P;=ACGG+ "@),.25~8\ @FtzF.xF.F.zF.F.xF.=F.(j-/239?:?AwFDI{y!&&)9*.06:=@ADbB'v$'*005:68;>RC%y'=(+<TVm$gHOWTOUSEWALNUT42.UserInterfaceWalnutimplementsfourviewertypes:theWalnutcontrolviewer,themessagesetdisplayviewer,themessagedisplayviewer,andthemessagecompositionviewer.WhenWalnutisrunningthereisoneWalnutcontrolviewer,andanynumberofinstancesoftheotherviewertypes.TheiconicformoftheWalnutcontrolviewerisamailbox.AnythingthatcanbedonewithWalnutcanbedonebystartingfromthecontrolviewer(sometimesbycreatingotherviewers).Walnut'suserinterfaceattemptstobeconsistentwithconventionsusedelsewhereinCedar.ClickingLEFTonabuttonrepresentingaWalnutentity(amessageoramessageset)"selects"theentity(makesitanimpliedparametertootheroperations);clickingMIDDLEonsuchabuttonopenstheentity(displaysmoreinformationsomehow).ThisisanalogoustothebehavioroficonsinCedar.Unlessotherwisespecified,hereafter"click"means"clickwiththeLEFTmousebutton".2.1MessagesetsThemessagesetsinaWalnutdatabasearerepresentedbybuttonsintheWalnutcontrolviewer.TheActiveandDeletedmessagesetbuttonsalwaysappearfirst;othermessagesetbuttonsappearinalphabeticalorder.Theremaybeseveralrowsofthesebuttons.Tocreateanewmessageset(containingnomessages)typeitsnameintotheMsgSet:fieldofthecontrolviewer,thenclickCreate.Amessagesetbuttonwiththisnamewillappear.Similarly,todeleteanexistingmessageset,typeitsnameandclickDelete.Walnutrequestsconfirmationifthemessagesetcontainsanymessages.Ifyoudeleteamessagesetcontainingmessages,themessagesaredeletedfromtheset(asifclickingeachmessagewithCTRL-LEFTasdescribedbelow)beforethesetisdestroyed.Tofindouthowmanymessagesarecurrentlyinamessageset,typethenameofthesetandclickSizeOf.Tocreateamessagesetdisplayviewer,clickMIDDLEonthecorrespondingmessagesetbuttonofthecontrolviewer.Theiconicformofamessagesetdisplayerisastackofenvelopes.Themessagesetdisplayercontainsaone-linebuttonforeachmessageintheset.EachmessagebuttonlooksmuchlikealineinthetopwindowofLaurel:itshowsthedateofthemessage,thenameofthesender(orTo:fieldifthesenderisthecurrentuser),andthemessagesubject.Atmostoneofthemessagebuttonsinasetisselected(shownwithagreybackground).Toselectamessage,clickLEFTonit;toselectanddisplayamessage,clickMIDDLEonit.Todeleteamessagefromthemessageset,clickCTRL-LEFTonit;itsbuttonwilldisappear.(Notethatifthismessagebelongedtonoothermessageset,itisaddedtotheDeletedset,andhenceisstillaccessible.)Amessagesetdisplayeralsocontainsseveralcommandbuttonsthatoperateontheselectedmessage.Categorieslists(intheWalnutcontrolwindow)themessagesetsinwhichtheselectedmessageappears(amessagecansimultaneouslybeinseveralmessagesets).MoveToaddsthemessagefromthemessagesettoallofthemessagesetsselectedinthecontrolwindow,afterfirstdeletingitfromthemessageset.Displaydisplaystheselectedmessage.Deletedeletesthemessagefromthemessageset;ifitthusbecomesamemberofnoothermessagesets,thenitismovedtotheDeletedmessageset.AddToaddsthemessagestotheselectedsetswithoutfirstdoingthedeletion.Finally,theActivemessagesetincludesaNewMailbuttonthatreadsnewmailandaddsthemessagesreadtothismessageset.FortheMoveTo,Delete,andAddTobuttons,LEFT-clickingsimplyperformstheoperationdescribedabove,whileRIGHT-orMIDDLE-clickingperformstheoperationanddisplaysthenextmessageintheset.WALNUT4.2x"g'y#&g'$g'%x'g'y(g'x*gg'y+g'sHDg't ^ x [ -G $'Z,Z1"58j=@ D Y HK %g -&2_6s;Z<AE{F XWT"$*z,8.2@6;"=BErG/ V"!%'J**,.2M5y:u=?BD U  Se !'/* R[< @!# ), 4j7=?TDr Px P P$U "&(h-/06$8>p@D O? 8 9 %dr*oO?+^O?x/O?/O?14'5G9=?C M   q 'b)+p1!26b8 K(R f#8',03r5~K6&Kx8K9K<u G )x D~%( /168:@D Bs B BxjBBs7B4BxBB&!Y&e*/|26<>8CDG A/  $#&(,. >$ %'.Y1u3[7&: s=>xB/>B>EkG/ = Fbs= = x= != %(,i/z258f= CE ;e |*!$s( ;e);ex,;e-;e28 @NAD7 9 "YC#%*, 39A'CpFSs 4x 2L/B$r'2L(2Lx,c2L-2L._0 9>AEhG 0 !&[(w.T/04\6 .*PI"$).0m39/:=v@D7 ,ap! "(+).0!4169;X=CmE * }$"$u&+/2L4:?AEG )4 Ax;M!&)*- 68<]=|C!rFQ)4F)4x '  QX"r%n'&\'x*'*',7.0461;?AF %r % %x%B%H ! '+-/17<>@D $> a #GU!%') !'ku>#G'.25:Cs  xC(s!%+.$36c84D7-~a (*,Y06Bs ?xh? ?/!#(+.,.03<8;a@BgDTg!#&g(.s xos xC *| #8(+,v-06\7<>@D7E7s"E#Cx'(- s %xv%% &((-046 7s77x/7Y7fb$s%7&7x+7,F7/2}58;>YAtC: @s  x si g x C s  x# $W r( )m x+~ + 05K;=TCd m>r m mx] mR mr m mxB m7 m"E(*p03A8o:=CDG%y'=(+ *TVm$nHOWTOUSEWALNUT52.2MessagesAsdescribedabove,amessagecanbedisplayedbyclickingMIDDLEonamessagebuttonofamessagesetdisplayer.Thiscreatesamessagedisplayviewer,whoseiconicformisanenvelope(clickingSHIFT-MIDDLEonamessagebuttoncausesthecreatedviewertofilltheentirecolumn).Themessagewithinsuchaviewerisnoteditable.Thisviewerisassociatedwiththemessagesetthatcreatedit,soclickingMIDDLEonanothermessageofthesamemessagesetshowsthisnewmessageinthesamemessagedisplayer.Thisisdesignedtoavoidaproliferationofmessagedisplayers.Ofcourse,therearetimeswhenyoureallywanttocreateviewersonseveraldifferentmessagesinoneset.Clickingamessagedisplayer'sFreezebutton(whichthendisappears)permanentlybindsthemessagetothemessagedisplayer.Ifallmessagedisplayersforagivenmessagesetarefrozen,thenMIDDLEclickinginthemessagesetcreatesanewdisplayer.Afrozenmessagedisplayercannotbeunfrozen,butcanbedestroyed.Amessagedisplayerhasseveralotherbuttons.TheCategoriesbuttonisthesameasthatonmessagesetdisplayers.AnswerandForwardcreateaWalnutSendviewerinitializedeitherwithaproperheadingforananswertothemessageoracopyofthemessageforforwarding.ThePrintbuttonusestheTSettertoprintthemessage--itwillcomplain(intheWalnutcontrolwindow)iftheTSetterisnotloaded.AndtheremainingSplit,PlacesandLevelsbuttonsarefromTioga.2.3SendingmailTocreateamessagecompositionviewerclicktheNewFormmenuitemintheWalnutcontrolviewer,orusetheAnswerorForwardbuttonsonamessagedisplayviewer.Iniconicformthisvieweristhebackofanenvelope,withthetitle"WalnutSend...6/02/83".ThemessagecompositionviewerisaTiogaviewerfortypinginthemessageheaderfieldsandmessagebody.NewForm,PrevMsg,andGetFormmenuitemsareguardedwhiletheSenderisdirty.Whenacommandrequiresconfirmation,appropriatebuttonsappearintheviewermenuarea;thecontrolwindowisusedformessages.ClickingtheClearbuttonofamessagecompositionviewercausesitsmessagetexttobereplacedbyastandardmessageform.PrevMsgrestoresthecontentsofthelastsuccessfullysentmessage.GetFormloadsintotheviewerthefilewhosenameiscurrentlyselected(ifnofileextensionisgivenandnofileisfoundwiththeselectedname,theextension".form"isused);italsosetstheinputfocusatthefirstplaceholder.ConfirmandDenybuttonsappearforconfirmationiftheexistingmessagetexthasbeenedited.StoreMsgstoresthecontentsoftheviewerintheselectedfile;thisgivesawaytosavepartiallycomposedmessages.TheSplit,PlacesandLevelsmenuitemsaretheusualTiogaoperations;ifamessagecompositionviewerissplit,thenNewForm,PrevMsgandGetFormoperationsonasplitviewerwillcauseallbuttheonebuggedtobedestroyed(themessagecompositionviewerbecomes"unsplit").ThiswillalsohappenifAnswerorForwardreuseasplitmessagecompositionviewer.ClickingtheSendbuttoninitiatesthesendingprocess.Ifthemessageisaddressedtoapublicdistributionlistortomorethantwentyindividuals,itprobablyshouldcontainaReply-To:field.Ifitdoesnot,amessageisprintedinthecontrolwindowandbuttonslabeledSelf,All,andCancelappear.Thesebuttonsmean"Reply-To:sender","noReply-To:field",and"Reply-To:senderbutdon'tsend",respectively.Iferrorsoccurinsending,amessageisprintedinthecontrolwindow.Ifthetransmissionissuccessful,themessageissavedandanewformappears;RIGHT-clickingSendcausesthemessagecompositionviewertobecomeiconicaftersyntaxcheckinghasbeendone.WhileaSendisinprogress,theviewerisnoteditable.AnAbortSendbuttonisvisibleduringpartofthesendingprocess,shouldyoudecidenottosendthemessage.ThelastsuccessfullysentmessagecantorestoredbyclickingPrevMsg.ClickingtheDestroybuttonasksforconfirmationifthereisanunsentmessageintheviewer.ItisWALNUT4.2x"g'y#&g'$g'%x'g'y(g'x*gg'y+g'sHDg'u _, )x [=!#)+gr0a[1P[x4[5[67=AvCD" Z5 ] *#.(4-E169;=Dr X x0XXW$&+m/146:AD VC9?!w$)* 14C6<>NA.F G U?rU?U?xxU?3U?h^!B#&,5.<2347<>p@D! S ^$ "= *C,1 8;?CzE Q "%)/57U: =WBD7 PI sPIPIx(PIPI#A * 37&9?AD7 N b #b$(.+0x27r;!N<Nx?N@NE,G  L!S "$d(.49h;B DG KS Hl!o%@+vs.H/~Hx6%H6H:BDG G1p sPG1BG1xG1nG1s!G1"~G1x'G1(DG1+-/2F5: AEHe E\. $%p'((F+-:/47 >sAEBExEEEE C ZDp!<"$&,/1x6m;*@BED B; X $>sB; B;x!B;s"B;#B;x'B;(?B;s*QB;+#B;x.B;/B;3669u > )ix ; $'s*?;+<;x0;1;479(;l@;D 9 7s99x99s99x9c9"$%+?/5N7&;1>ALEG/ 8N " '^ /&175 >C:DE 6Y h"&)t.s3=64:6x9Z6s:?6;&6x?6@6sCq6D6x 4 ^#$(- .)4}9 B/ 3Xiv#.%*A/l046Q 08s00x0k0( -% -i16*8=@HBD  /5 ( ns/5/5x$/5$/5)h,136Q9 @Cs -x"--7 ,"&*,Q2G79;>DVE + ,A!v%'.%3M48:V=+?B=E *?   s*?*?x*?&*?s!4*?"1*?x$*?%*?).m0 8:#<~AF ( Us((x/((!X&(h*/03 8,;=@BDF &O $u>m1"y&/(*.2 9;3}A>EG !& o=@%!& .3k9) @CF s7*x?sGx !$*< 1 Msxh"%7*s0q24:;B.DEU \ bz4" )+W145:;BFH9  re %{*-a2Ys7$8 x9s:v;ix<<s?@xDEV    #R&,03 :?=AEK f &>"#)(*/R03I7=?XA  q 9#"]#&*'r0c1-x34Ns9}:ex=l>AD7   #(-0737;s<=x@A%B$C p YDsUpHpx$p%p)?*/368J:?E  ZB"^%d( /28@:<BPDys !xz! !sz x x  N!6#m +,0l138(=z?"A|FH#%y'=(+ TVm$mHOWTOUSEWALNUT6abadideatodestroyamessagecompositionviewerwhilemessagetransmissionisinprogress.2.4RetrievingmailWalnutpollsthemailserversatregularintervals.Ifthereisnewmailforthelogged-inuser,theWalnutcontrolviewerdisplaysamessagelikeYouhavenewmailat27-Sep-8214:28:45PDTClickingtheNewMailbuttonineitherthecontrolviewerortheActivemessagesetviewerretrievesallthenewmail.Youcan"buttonahead"duringmessageretrieval.ThenewmessagesappearasbuttonsatthebottomoftheActivemessagesetviewer,witha"?"intheleftmostcolumnofeachnewmessagebuttontoshowthatthemessageisunread.Ifthecontrolwindowisiconicandthereisnewmail,theflagontheiconisraised;forconvenience,thereisaNewMailbuttonintheActiveMsgSetdisplayer,whichwillretrievethewaitingmail.2.5GlobaloperationsTheWalnutcontrolviewerhasafewmorebuttonsthatwillnowbedescribed.ClickingCommitcommitsallchangesthatyouhavemadetoWalnut'sdatabase.TheonlyotheroperationsthatautomaticallycommitdatabasechangesareDestroyandCloseAll.IfyouperformaWalnutoperationthatupdatesthedatabaseandthenbootorrollbackwithoutdoingaCommit,theeffectsofthatoperationareinthelogandwillbeperformedonthedatabaseandthencommittedwhenyounextrunWalnut.TheCloseAllbuttonfurnishesaquickwayofendingasessionwithWalnut.CloseAlldestroysallmessagedisplayers,andclosesallmessagesetdisplayers.ThenitexecutesaCommitandclosestheWalnutcontrolviewer.TheArchiveoperationprovidesawaytocopyasetofmessagesintoafilethatcanlaterbereadbyeitherWalnutorLaurel.TypeafilenameintotheOnFile:fieldandclickArchive.Allmessagesinthecurrentlyselectedmessagesetsarecopiedtothenamedfile(ifthefilenamehasnoextension,".ArchiveLog"isassumed).Clickingthe(guarded)ExpungebuttonexpungestheWalnutdatabase:allmessagesintheDeletedsetdisappearwithoutatrace.(LaurelpurgesdeletedmessageseverytimeyouQuitorchangemailfiles.)WithouttheExpungeoperation,Walnut'sdatabasewouldgrowwithoutbound.TheExpungeoperationmayfailifyourdiskisnearlyfull;thisisamotivationforregularExpunges.Section4containsmoreinformationonthistopic.Finally,clickingtheDestroybuttoncausesWalnuttocommitandthenclosetheWalnutdatabase.Thisisagoodthingtodobeforebootingorrollingback;itreducesthepossibilityofmanglingthedatabase.Walnutregistersseveralinfrequently-usedcommandswiththeCedarExecutive.Allofthecommandnamescontaintheprefix"Walnut",sotypingWalnut*?totheExecutiveenumeratesthem.TheWalnutcommandcreatesaWalnutcontrolviewerifyoushouldhappentoDestroyyours.TheWalnutExpungecommandhasthesameeffectasclickingExpunge,butcanbeusedwhenthecontrolviewerdoesnotexist.TheWalnutOldMailReadercommandisdescribedinSection3,andtheWalnutScavengecommandisdescribedinSection4.WalnutNewMailsimulatesclickingtheNewMailbutton.WALNUT4.2x"g'y#&g'$g'%x'g'y(g'x*gg'y+g'sHDg'x _/  uIs %)-2 :=CG/ V$N#s TcZ\"l(\x Q"s~Q{QxkQ2Q $k&+v/138>=?D  P=  I!U&8*0^ 6:= C+G Nz 5%',x/03C47]<ACjF LV7#%t+,/$39(:>AE"F KG m&: ?" *.Y/s1 KG2 KGx7 KG7KG;=Ks?KG@KGDCx I !.9# u FL ) x BM D!|$+',/2g5y7x >sD"BEBx AR!%'-5 8A;? F ? hq"Ks$?%?x*?*?s,?-?x2 ?3?57=?>rCe > l "2#).1s2>3>x7>8>:?@Ce <\ ? MW "%*-p07q;&=@C 9s99xO99 $'):-.36s<~9={9xBE9C 9G 86h E!1E$' .2K39ds:86;86x@C86@86CG/ 6 4} H!j$9%)(*I,^.367:3<?|BDG 2i s)M#&s)2i**2ix.%2i.2i1O4s752i8(2ix<2i=f2i?EG/ 0"WQ %'*/e2'4Z79=@C /s / / xR// , ys,,x ,!,%V+X-28:@bB Db * /F!%s*60369^<~>1BE )MQc #))-M05:=Ce ' o!"#%1 ,!.i3':c?N@E % v| #s7#4#x#n##'Z,G-258C ! + \/[%&+r/W058} ?$AG/ 1 |8&,/2)6% =?L@C.  "D8!s% ' x, , -06C =}AsD E x d=L#$',027<s>d@,d x YE`s#$ix)1*,/=1:48C:?mCG s x !.'D)/{1y68;s><? x nMqs n!n x*n+qn06s8_n9]nx>Pn?n%y'=(+ CTVm$aHOWTOUSEWALNUT73.ThelogWalnutkeepsarecordofallretrievedmessagesandalldatabaseupdatesforasingleuserinaWalnutlogfile.Thisisatextfilewithaverysimpleformat(anextensionofthe.mailformatusedbyLaurelandHardy);loadyourWalnutlogintoaTiogaviewertoseethis.(SinceyourWalnutlogbealargefile,youmaywishtousetheOpenHugecommandtoloaditintoaTiogaviewer.)TheimportantpointisthatthetruthaboutyourWalnutmailresidesinaWalnutlogfile;theCypressdatabasethatWalnutusesforqueryprocessingcanalwaysbereconstructedbyreplayingaWalnutlogfile.TheWalnutlogmechanismisveryrobust,whichmakesWalnut'smailstoragequitereliableevenifWalnut(orsomeotherpartofCedar)crashes.WalnutlocatesthelogfileforaparticularuserbyconsultingtheWalnut.WalnutLogFileentryoftheuserprofile.Ifthereisnosuchentry,thenameWalnut.DBLogisassumed.Atpresent,thelogfilemustresideontheCedarworkstation'slocaldisk.ThismeansthattouseWalnutonapublicDorado,youmustcopythelogtotheDoradofromafileserver,thenstartWalnut(WalnutcommandtotheExecutive).AttheendofapublicDoradosessionyoumuststopWalnut(Destroybutton),thencopythelogtoafileserver.Soon,WalnutwillbecapableofaccessingaWalnutlogstoredonanAlpinefileserver,justasitcanaccessCypressdatabasestoday.AWalnutloggrowswitheachretrievedmessageanddatabaseupdateuntilanExpungecommandisgiventotheExecutive.ThiscommandwritesanewWalnutlogthatonlycontainsinformationaboutthemessagesthathavenotbeendeleted,andupdatesthedatabasetobeconsistentwiththis.(Notethatthisrequiresdiskspacefortwocopiesofthelog.)BecausethecostofafullExpungeisproportionaltothesizeofyourWalnutlog(whichcangrowtobequitelarge,ifyouarea"packrat"),thereisa"shortcut"ExpungethatonlydeletesmessagesfromthepointinthelogofthepreviousExpunge;itisenabledbysettingtheWalnut.EnableTailRewriteuserprofileoption.Whenenabled,LEFT-clickingExpungecausestheshort-cutexpungetobeperformed,whileRIGHT-clickingperformsthefullexpunge.Notethatwiththetail-rewriteexpungeanyquiteoldmessagesthatyoudelete(whichappearbeforetheexpungecut-offpoint)willnotberemovedfromthelogordatabase;thus,onceinawhileyouwillstillneedtodoafullexpunge.JimMorris'sadviceconcerningfilesonthelocaldiskisto"keepyourbagspacked".AprudentindividualwillapplythisphilosophytohisWalnutlog.Includethisfileinapersonal.dffile(suchastheonethatcontainsyouruserprofile),andmakeitahabittoSModeliteveryfewdays.WALNUT4.2x"g'y#&g'$g'%x'g'y(g'x*gg'y+g'sHDg't ^ 3x [x%+.o06P;=?QCgFHez Y"x\YDY{E"e#&+/28#9s A=F O)|f7!$&s+ L@ !4 '*, 3Q5D+G J D5qm#&4s)J+7J x3J4J5;j=^BDG% IU Y`l "9%)Y,x035H7<>?D, G D.i" %&)\-14L9Rs9G;Gx>G?GEdG/ F %),r/27s8OF9LFx=F>FCF= D_ C4Ue!G#%*,{2Z3{8]:>@BG% BQ% @3;%yo%*-3/7; s<@3=@3xC.@3C@3 > T ,C#'(+0258>& E < A|"%*,2426 ? G 9 F" %y'") ,0J14W67;?SBD<E` 7 Wa"&(V+-/236;ACDc 6G *#&+p05;r:6G;6Gx=6G>6GsC\6GDC6Gx 4DM ) 'dr+84,4x.4/#44X:S<?zF 2 ? "&R(/2493=BG/ 1Ql $(*a,.n4~7;<=ADHF / I' -%pD a#e%'+U.Y/159 Top>WalnuttotheExecutive;thiswillalsoretrieveWalnutSend,Cypress,andAlpineUserImpls.TheselatterfileswillbeloadedbyWalnut(AlpineUserImplsonlyifneeded).EdityourpersonalprofiletocontainalloftheentriesspecifiedinWalnutDefault.profile(publicinWalnut.df).Theonlyprofileentrythatmostuserswillwanttoexperimentwithis"InitialActiveRight:TRUE";makingitFALSEcausestheActivemessagesetdisplayertocreateitselfintheleftviewercolumn,likeallothermessagesetdisplayers.TostartWalnut,typeWalnuttotheExecutive.Thiswillspendalongtimeloading,butfinallyaWalnutcontrolviewerwillappear.YoucanincludeWalnutinacheckpoint.Besurenottoclickcheckpointuntilthemessage"Walnut4.2"appearsintheWalnutcontrolviewertypescript.MessageandMessagesetdisplayersgetupdatedaftereachrollback;ifadisplayedmessageormessagesethassincebeendeleted,theviewerwillbedestroyed.ToreadaLaurelorHardymailfile,orafilecreatedbyWalnut'sArchiveoperation,firstrunWalnutasjustdescribed.ThentypeWalnutOldMailReader{optionalmessagesetname}totheExecutive.Ifyoufailtospecifyamessagesetname,themessageswillbeplacedinActive.Ifthespecifiedmessagesetdoesnotexist,itwillbecreated.4.2UsingAlpineforWalnutdatabasestorageTheAlpineserver"Luther.alpine"canbeusedtostoreWalnutdatabases.UsingAlpineimprovesWalnutperformancesomewhat,especiallyforoperationsthatwritetotheWalnutdatabase.ItfreesupspaceonthelocaldiskthatisotherwiseoccupiedbytheWalnutdatabase.ItalsoreducesthecostofusingWalnutonapublicmachine(youmoveonlythelogtothenewmachine,nottheloganddatabase.)ThedrawbackofusingAlpineisthatonoccasionitmayabortWalnut'stransaction;Walnutwillrecoverfromthisgracefully,butitmaytakesometimetoreplayyouruncommittedactionsstoredinthelog.Transactionabortsareinfrequent,soonbalancetheAlpineserverisanimprovementoverthelocaldisk.ContactKarenKollingtoobtainanAlpineaccount.UsingAlpinechangestheprocedureforWalnutinstallationonlyslightly.Edityourpersonalprofiletocontaintheentries:Walnut.WalnutSegmentFile:"[Luther.alpine]Walnut.segment"Walnut.WalnutLogFile:"YourName.WalnutDBLog"Withyourprofileinthisstate,youmustrunAlpineUserImplsbeforeinvokingtheWalnutcommand.OnewayofensuringthisistoincludetheitemsRunAlpineUserImpls;RunAndCallWalnutinyourCommandsFrom:profileentry.ItisoktotakeacheckpointafterrunningAlpineUserImplsandWalnut.WALNUT4.2x"g'y#&g'$g'%x'g'y(g'x*gg'y+g'sHDg't ^ nu [ )x XWLo!#s Uqx Sa  q" +03R>CF Q %(+) O>|#%x'4). 35|C*G M H"&),S/1m 8;=;y Kx K KyKKxKjKH#(*02E689;"=q?D* JH &~ G's ERx B  !; #,&R+.2X38k=AD. @\$e} &2(1+-|/2B 9,C >  $9 +u139Q;x AD5 =  L^%',.1Z48r=@FDG ;f 8O=1!$&(/*/17=? CF 7C% ,s 4x044!$'L+17'9C 2M  ]-"#)6+b/17:<ABH  0 K_|!"$&(u -V )m!,x */" $&)+/ 3 ;?C (`  #&$ ,/3*47?<-BD(G} & 8l#")+-2{9:=wBDG % ~Q?Rt!%(*-(.139<>G@C# #j , "(:),|05 =3BD ! h x! $')-1D 9>tBDpF  Rg  d"\'N).23p5R =@CFI tHI< ,$ 5a#D%*k 1q4 ~q#o%s , [x / !$'j161;>B 9 (!$s & #Tx BHso Bl B x B B!,%t&(/*+./ 69>  %y'=(+ OTVm$ HOWTOUSEWALNUT9TherearetwowaystocreateaWalnutdatabaseonAlpine.Thefirstistofollowtheprocedureabove,inwhichcaseWalnutwillnoticetheabsenceofadatabaseandcreateonebyscavengingfromthelog.ThesecondistocopythedatabasefromthelocaldisktotheAlpineserver,usingtheprocedurecall_AlpineCmds.Copy[to:"[Luther.alpine]Walnut.segment",from:"Walnut.segment"]YoumustrunAlpineUserImplsbeforeattemptingtocallthisprocedure.FormoreinformationonAlpineoperationsconsult[Indigo]Documentation>AlpineDoc.*.WALNUT4.2x"g'y#&g'$g'%x'g'y(g'x*gg'y+g'sHDg'x _/7t<Y %+V-w3 58:w<@@C  ]Y9:7#%*,-3z6D:Y=?% F( [ <K"$(*T-0i24W8="@C  Z9s WE"Y-E Vx Sp! c$ +-A/2j 9i1#& .36<AoD X< uJ!h$(- 0366E UPP "# *,24'9';?@EG Ta #(*1<3:<<CH# R]&  $a& -t0249>A9BD.F P Q 0C"'*-e3J5ns9P;'P xEXPEPG/ O u!0 )+-c27z9k%y'=(+TVm$NHOWTOUSEWALNUT116.UserprofileoptionsBelowisacompletelistofallofthecurrentWalnutuserprofileoptions(copiedfromUserProfile.doc):Walnut.ReplyToSelf:BOOL_FALSE;ifTRUE,causeswalnuttoautomaticallysupplyaReply-To:field,ifappropriate.Walnut.DestroyAfterSend:BOOL_FALSE;ifTRUE,causessendertobedestroyedafterasuccessfuldelivery,ifSendwasclickedwithRIGHTWalnut.InitialActiveRight:BOOL_TRUE;truesaystobringuptheactivemessagesetontherightcolumn,falseonleft.Walnut.InitialActiveOpen:BOOL_FALSE;truesaysopenamessagesetvieweronActive.Walnut.InitialActiveIconic:BOOL_FALSE;iftrueandInitialActiveOpen=TRUE,thentheActivemessagesetviewerisopenedasanicon.Walnut.MsgSetButtonBorders:BOOL_FALSE;ifTRUE,putsbordersaroundtheMsgSetbuttonsinthecontrolwindow.Walnut.EnableTailRewrite:BOOL_FALSE;ifTRUE,performs"tailrewrite"onExpunge.Walnut.WalnutSegmentFile:TOKEN_"Walnut.Segment";valueisthenameofthefiletobeusedforthewalnutdatabase.Walnut.WalnutLogFile:TOKEN_"Walnut.DBLog";Nameoflogfile.WALNUT4.2x!g'y"g'#g'%#x'"g'y(Ag'x*g'y+dg'sG~g't ^ x [bUu9 z"%1(-h26Y;Q@F( Yu X>{X>yX>X>{X>y7X>X>{!X>zVyeVVzVmV &*=+r15/6 u S'{QS'yOS'S'{S'y!qS'"*S'{%S'zQuyeQuQuzQumQusB%,(_) /56d9{>y>>{">y$(>$>{'>z=e- e"',k.0]4u 9{9y9w9{ S9y!9"9{%~9z8e-"#u 4{4y4<4{" 4#4z2P8 "%'*1.1u /{/y/o/{>/ /z-x%y'=(+TVm$tHOWTOUSEWALNUT127.ShortfallsandWishesWhatfollowsisalistingofknowndeficienciesandcontemplatedextensionstoWalnut.Nobodyguaranteesthateverythinglistedbelowwillbeimplemented.Butthelistdoesindicatesomedirectionsforfuturework,andmayprovidecontextforyourownWalnutwishes.SendbothbugreportsandwishestoWalnutSupport^.7.1MessagesetsItwouldbenicetoallowselectionofmorethanonemessageinamessageset(perhapsevenspanningmessagesets).Whenamessagesetdisplayeriscreated,itshoulddisplaythenewestmessagesfirst(perhapsbypaintingfromthebottomoftheviewertowardsthetop),sincethesearemostlikelytobeaccessed.7.2RetrievingmailItseemsdesirabletomakemailretrievalacontinuousbackgroundactivity.ThiswouldtendtoinsulateusersfromtheresponsetimeofGrapevine.Oncemailretrievalisimplementedinthebackground,anaturalnextstepistoprovidesomemeansforauserproceduretoclassifyincomingmailaccordingtoitssignificance,fileitinsetsotherthanActive,lettheuserknowthestatusofhisnewmail("Youhaveimportantnewmail").TheprocedurethatstoresnewmailinthedatabaseshouldunderstandtheIn-Reply-Torelationship.Eventually,usersshouldbeabletowritequeriesorothercommandsthatexploitthisrelationship.7.3SendingmailItshouldbepossibletoforwardoranswermultiplemessages.Thisseemstorequiretheabilitytoselectmultiplemessages.Feedbackfrommailparseerrorscanbeimproved.Whendisplayingamessagecontainingaparseerrororbadarecipient,thepointoferrorinthemessageheadershouldbehighlighted.Whensendingasequenceofmessageswiththemessagecompositionviewer,youtendtoclickSend,waitforthefeedback"sending...",thenmaketheviewericonic(toreclaimthescreenarea)andfinallyclickNewFormtocreateanewviewer.Itwouldbesmoothertoreusethesamemessagecompositionviewer,butwithoutwaitingforthemessagetobesent(sincethiscantakequiteawhile).Sinceitisquiteunusualtohavetwomessagesintransit(ascontrastedwithtwomessagesbeingcomposed)atthesametime,thiscanbeachievedbypassingresponsibilityforthemessagefromthemessagecompositionviewertotheWalnutcontrolviewerwhenmessageparsingiscomplete,andclearingthecompositionviewerforreuse.Anyerrorsintransmissionwouldbereportedinthecontrolviewerratherthanthecompositionviewer.7.4GlobaloperationsWalnutneedsawaytomakequeries.(Thisiswhatdatabasesareallabout!)Forstarters,we'dliketohavesomethinganalogoustoLaurel'sSearchMailprogramforperformingtextpatternmatchinginthemessagesofamessageset.TheWalnutExpungeoperationcurrentlyrequiresmoreresources(suchasdiskspace)thanWalnutrequirestoperformotheroperationsonthesamedatabase.Thisisunfortunate,sinceitmeansthatausercangetstuckinasituationwherehemusthand-edithisWalnut.DBLoginordertorecover.WALNUT4.2x!g'y"g'#g'%#x'"g'y(Ag'x*g'y+dg'sG~g't ^ Szx []&W*" *B- 5 :D3 Y  \ "$& /257E:z?CD XX Mg$'*t-28%;?&B F VFu Sb )x P]#%)p,/5@7&8>@kFI Nl  K4!y&(5,14*8>AG JJO"\'})-$046s9=?=A-u F ) x CKrj>!X&(0 /^ 7=@@DG BF!" ?AP "N#&E ./<369; <AEK = T yR:$m'./1 9@ u 4 )ix 1|, "'E,36: DE + ^"  l  $6%(C-2"68 )7[$('4). 6;-=@BE ' )a*"&)-k1p38}:?BEK % 5#6$(*1 26q8EG/  e|$e ,/ 1h6:CF  W#{ *0{2 :<AG  K' a m2 Z&6+/58:f=SAD Ly+ #%x)/24Q <>?A-EHe G qN&!#'1-gs/ G0 G x9a G9 G;>@r%y'=(+ TVm$r LAUREL TIMESROMAN TIMESROMAN TIMESROMANLOGO HELVETICA TIMESROMAN TIMESROMANY HELVETICA HELVETICA HELVETICA HELVETICAOaz |( |3 = KFH^KP Zj/] [n\WalnutDoc.tioga 8-Jun-83 16:03:56