From zander at rkinc.com Sun Feb 1 09:14:13 1998 From: zander at rkinc.com (Aleksey Sudakov) Date: Thu Nov 3 14:40:53 2005 Subject: New PB functionality Message-ID: <9802011714.AA00254@rkinc.com> Hi, Did anybody notice very interesting directory /NextDeveloper/Makefiles/Resources on Rhapsody? Does anybody have any idea whenever PB on OpenStep 4.2 or PB that comes with WebObjects 3.5.x support this thing? Regards, Aleksey From stefan.huy at stud.uni-hannover.de Sun Feb 1 12:57:57 1998 From: stefan.huy at stud.uni-hannover.de (Stefan Huy) Date: Thu Nov 3 14:40:53 2005 Subject: Yellowbox for Win Look Message-ID: Hi there! Could someone tell me how the YellowBox for Windows or OpenStep Enterprise actually draws the interface? Does it use native controls (buttons etc.) and menus or does it simply use the Window manager for the frames and draws the actual content itself using DPS for generating buttons and controls that only look like real windows interface elements? cu -Stefan __Stefan Huy___________________________________________________________ ____ ______ mailto:huy@stud.uni-hannover.de ________ http://www.stud.uni-hannover.de/~huy _______________________________________________________________________ From allan at ali.bc.ca Mon Feb 2 10:02:43 1998 From: allan at ali.bc.ca (Allan Noordvyk) Date: Thu Nov 3 14:40:53 2005 Subject: Yellowbox for Win Look In-Reply-To: References: Message-ID: <98Feb2.015357pst.24195@gateway.ali.bc.ca> Stefan Huy wrote: > Could someone tell me how the YellowBox for Windows or OpenStep Enterprise > actually draws the interface? Does it use native controls (buttons etc.) > and menus or does it simply use the Window manager for the frames and > draws the actual content itself using DPS for generating buttons and > controls that only look like real windows interface elements? The latter. All drawing inside the windows is done by the shared Display PostScript Window Server process. -- Allan Noordvyk, Software Artisan e-mail: allan@ali.bc.ca ALI Technologies Voice: 604.821.6317 Richmond, Canada Fax: 604.279.5468 * NeXT and MIME mail welcome * "A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable." --- Les Lamport From Halliday at asu.edu Sun Feb 1 10:48:26 1998 From: Halliday at asu.edu (David W. Halliday) Date: Thu Nov 3 14:40:53 2005 Subject: Why am I no longer receiving Rhapsody-Dev? Message-ID: <34D4C372.1B396B4E@ASU.Edu> Why am I no longer receiving Rhapsody-Dev? I have not received a message on this list since Jan 1, 1998. David W. Halliday Halliday@ASU.Edu Director of Software Development Physics Modeling Research Group Arizona State University -------------- next part -------------- A non-text attachment was scrubbed... Name: vcard.vcf Type: text/x-vcard Size: 515 bytes Desc: Card for David W. Halliday Url : /mailman/archive/macosx-dev/attachments/19980201/7c02f12f/vcard.vcf From anders at milkweed.com Mon Feb 2 14:40:50 1998 From: anders at milkweed.com (Anders Pytte) Date: Thu Nov 3 14:40:53 2005 Subject: known bugs on RDR1? Message-ID: Friends, Anyone know if the list of known bugs for RDR1/PPC has been updated since the CD was released? Where would it be available? I'm specifically interested in bugs in ProjectBuilder. I would like to review such a list before I go to the trouble of documenting the problems I am having, for submission to Apple. Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com ---------------------------------------------------------------- This message was created and sent using the Cyberdog Mail System ---------------------------------------------------------------- From talsalis20 at calvanet.calvacom.fr Mon Feb 2 21:08:26 1998 From: talsalis20 at calvanet.calvacom.fr (Lionel COSTA) Date: Thu Nov 3 14:40:53 2005 Subject: CORBA and Rhapsody Message-ID: <199802030512.GAA26900@ns.calvacom.fr> Just a few words about Rhapsody and CORBA: For some months Apple has been recruiting IONA's ORBIX experts in order to integrate Common Object Services and other CORBA services into the yellow box framework. In fact they want us to use the PDO services as PDO will dynamicaly be able to link to CORBA sources, using the wonderful "automorphing" proxy classes/Obj. C runtime as the base for SII/DII (static & dynamic invocation interface) helped with a system-wide "trader service". PS: The trader service is a functionality query system that return dynamicaly the avaible services/classes for any of your "desire". From sschaper at inlink.com Mon Feb 2 22:31:39 1998 From: sschaper at inlink.com (Steve Schaper) Date: Thu Nov 3 14:40:53 2005 Subject: The CLI debate (Was: Some mis-information here) Message-ID: >Date: Tue, 3 Feb 1998 00:29:44 -0600 >To: pat@qhp.queensu.ca >From: Steve Schaper >Subject: Re: The CLI debate (Was: Some mis-information here) >Cc: >Bcc: >X-Attachments: > >Heh. I'd just like to get bash into Rhapsody off my Mac drive. But, no >ethernet modem. >No apparent way to copy to the UFS partition. Just the "bad file >descriptor" error. > >ARGHGHGGH. > >BTW, I would like to know if it is kosher for those of us who have signed >the NDA to talk to each other about Rhapsody on this list, or if that >would be a violation of the NDA. I _did_ get the list info from Apple's site. >But still, I'd like to know. > >Is there an official word from Apple on this? > >--Steve > ========================== sschaper@usa.net www.inlink.com/~sschaper/ ========================== From sschaper at inlink.com Mon Feb 2 22:50:38 1998 From: sschaper at inlink.com (Steve Schaper) Date: Thu Nov 3 14:40:53 2005 Subject: The CLI debate (Was: Some mis-information here) In-Reply-To: References: Message-ID: > >re: problems with transferring bash. Hmmm ... you might want to refer this >to the list as a whole. I've got a direct connection to the net so I hadn't >run into that problem (and so didn't have to try to solve it either). There >must be some way of getting around this ... > >Cheers, >Patrick Thanks, Patrick, I meant to, but it didn't work that way at first. And of course, more than just bash, the new X server, a number of tools, updates to the TIFFany and other demos (the version on the CD having expired). Lots of things that I am limited to downloading via MacOS and not even BlueBox for the time being, but can't get into Rhapsody. I'm sure Apple had its' reasons, but it is a bit of a pain. LinuxDisks shows the UFS partitions, but won't open them like it did on MkLinux and Linux-PPC. I've even thought of trying to jury-rig my old Atari ST as an intermediary, running FreeBSD, but I really don't think that is remotely possible to wire up. ========================== sschaper@usa.net www.inlink.com/~sschaper/ ========================== From gtupar at ctp.com Mon Feb 2 22:53:26 1998 From: gtupar at ctp.com (Georg Tuparev) Date: Thu Nov 3 14:40:53 2005 Subject: gstep-make In-Reply-To: References: Message-ID: <9802030653.AA00644@haring.ctp.com> You wrote: > Remember me? Long time since I've poped up. Yep! You are the #1 in the gnustep-discussion list. You should be an old fellow ;-) --- ------- /\/\ Georg Tuparev / /_ \ Cambridge Technology Partners \ / / Apollo House, Apollolaan 15 \/\/ 1077 AB Amsterdam, The Netherlands Tel: +31(20)575-0492 Fax: +31(20)575-0500 WWW: http://www.ctp.com Mob: +31-655-798196 From samkass at samkass.com Mon Feb 2 23:08:01 1998 From: samkass at samkass.com (Sam Kass) Date: Thu Nov 3 14:40:53 2005 Subject: The CLI debate (Was: Some mis-information here) References: Message-ID: <34D6C251.C2D909CB@samkass.com> I posted my solution to this a couple of times on the 'lyris' Rhapsody talk list, but I'll go over the basics here. The gist is to use the "tar" disk file format. I recommend using it with a Zip disk, but any disk with completely disposable contents should work, from floppy to fixed. (Note, I'm repeating this here from memory, so there may be some minor errors in the exact steps, but you should get the gist.) 1. Get a [Zip] disk that you don't need the data to. 2. Boot into Rhapsody and bring up a terminal with root access. 3. use the "/sbin/disk" command to format and initialize the disk. (Note: this can take a long time with a Zip disk.) 4. Boot into MacOS. Get the program "suntar". If using Zip, disable the Iomega extension and reboot (again into MacOS.) 5. Load suntar. Insert Zip if necessary (nothing should happen). open the device by SCSI ID, starting at block 320. Enable "Write". Copy a tarfile or whatever onto the disk. Close the device. Eject the Zip if necessary. 6. Reboot into Rhapsody. Bring up a terminal with root access. If using a Zip, run the "disk" command on /dev/sd4a (replacing "4" with the proper number for the Zip drive.) Insert the Zip disk. Quit "disk" (the disk program in this case was used to surpress a warning that Rhapsody otherwise gives you.) Use the "tar" program to copy the files off the Zip disk. "tar -xvf /dev/sd4a" or somesuch. --Sam Steve Schaper wrote: > Thanks, Patrick, I meant to, but it didn't work that way at first. And of > course, more than just bash, the new X server, a number of tools, updates > to the TIFFany and other demos (the version on the CD having expired). > Lots of things that I am limited to downloading via MacOS and not even > BlueBox for the time being, but can't get into Rhapsody. I'm sure Apple had > its' reasons, but it is a bit of a pain. LinuxDisks shows the UFS > partitions, but won't open them like it did on MkLinux and Linux-PPC. > > I've even thought of trying to jury-rig my old Atari ST as an intermediary, > running FreeBSD, but I really don't think that is remotely possible to wire > up. > > ========================== > sschaper@usa.net > www.inlink.com/~sschaper/ > ========================== From stefan.huy at stud.uni-hannover.de Tue Feb 3 06:01:12 1998 From: stefan.huy at stud.uni-hannover.de (Stefan Huy) Date: Thu Nov 3 14:40:53 2005 Subject: The CLI debate (Was: Some mis-information here) Message-ID: <199802031300.OAA00531@studserv.stud.uni-hannover.de> I don't know the beginning of this thread, but as far as I understand, it is still about transfering data onto an non-networked Rhapsody-Computer. For me those HFS-Tools, mentioned on this list, work quite fine. Of course you need an PPC with BlueBox intstalled (more convenient) to use it. I can access my HFS-Drives from the CLI without greater problems. There were some occurences though, when the Type/Creator combination resulteted in strange behaviour (e.g. adding .txt to the file name). At least I am now able to plunder some FTP servers at university, put the data on Jaz or ZIP in any format the MacOS supports, copy it back onto my local HD and read the stuff from Rhapsody. Same with CD-Roms. If I didn't get the topic, forget this silly posting. cu -Stefan __Stefan Huy___________________________________________________________ ____ ______ mailto:huy@stud.uni-hannover.de ________ http://www.stud.uni-hannover.de/~huy ______________________________________________________________________ From Barry.Leslie at snap.de Tue Feb 3 05:14:25 1998 From: Barry.Leslie at snap.de (Barry Leslie) Date: Thu Nov 3 14:40:53 2005 Subject: yellow box EOFAadaptor Message-ID: <34D7182C.1447@PrimeBase.com> I have an Intel EOFAdaptor for Rapsody. I want to build one for the intel yellow box. Can I do this on Rhapsody by just setting the build attributes to "Yellow Box for Windows" in the project builder's project inspector? I did this but it seemed to have no effect on my build, it just used the Rhapsody settings. I am trying to avoid having to setup a special environment on NT Yellow Box Just for this one build. I am relatively new to the Proiject builder and am not sure how to get it to target builds. Barry From anders at milkweed.com Tue Feb 3 10:09:52 1998 From: anders at milkweed.com (Anders Pytte) Date: Thu Nov 3 14:40:53 2005 Subject: Do I need Scope? Message-ID: Friends, I hope someone will help me and tell me honestly if I have bad breath. I am rather isolated from the NextStep community and may have put my foot in my mouth. I tried to start a correspondence on rhapsody-dev about problems I am having with YellowBox development (bugs?) and wonder if I am treading over the line of the NDA. Can someone familiar with both the NDA and the list tell me what we are allowed to talk about on this list? Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com ---------------------------------------------------------------- This message was created and sent using the Cyberdog Mail System ---------------------------------------------------------------- From anders at milkweed.com Tue Feb 3 10:24:52 1998 From: anders at milkweed.com (Anders Pytte) Date: Thu Nov 3 14:40:53 2005 Subject: NSCell,representedObject? Message-ID: Friends, The NSCell message setRepresentedObject seems to have no effect, that is, representedObject does not subsequently return the object passed to it. Are we expected to implement setRepresentedObject in our derived classes? Also, anyone know whether NSCell/init calls initTextCell or initImageCell? I am deriving a subclass of NSNullCellType and would rather just call init than one of the "designated" initializers. My guess is that it calls initImageCell with a NULL parameter. I suppose I could confirm that with a little work and the debugger. Btw, how do ObjC fellows like to represent an object/message combination (that is, the equivalent to saying NSCell::representedObject in c++)? Thanks, Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com ---------------------------------------------------------------- This message was created and sent using the Cyberdog Mail System ---------------------------------------------------------------- From ricardo at ccsi.canon.com Tue Feb 3 10:46:22 1998 From: ricardo at ccsi.canon.com (Ricardo Parada) Date: Thu Nov 3 14:40:53 2005 Subject: Launching the browser Message-ID: <199802031847.KAA05971@ccsi.canon.com> Hi - Is there an OpenStep method for launching the default browser on a URL? For example, something like this: [NSWorkspaceManager openURL:@"http://www.apple.com/"]; Thanks, ricardo From rcfa at cubiculum.com Tue Feb 3 10:55:29 1998 From: rcfa at cubiculum.com (Ronald C.F. Antony) Date: Thu Nov 3 14:40:53 2005 Subject: subclassing... Message-ID: <9802031855.AA05775@cubiculum.com> Hi, I read some interesting document on the latest developer seeding CD. Without getting into the details, there are certain C++ frameworks that will be part of Rhapsody, that are now part of MacOS. The problem is, them being C++ allows wrappers, but seems to prevent subclassing. Also it seems that the object model might not be really compatible, since these frameworks weren't designed with the OS "design pattern" in mind. Does anyone have an idea as to what Apple's general policy will be in that respect? Will they create compatible ObjC frameworks or will we start having mongrel software APIs? How about unified binary storage. Up till now, most things could be done with object dumps. It seems logical, that many of these MacOS technologies have other storage strategies. So will we start seeing a endless line of new fileformats? This mail is a bit of a ramble, but I wonder what strategies people foresee in their development process to deal with this. Or do most just consider it too early to worry about this and/or don't care about chimera code? Ronald From willi at aaa-plus.com Tue Feb 3 11:23:16 1998 From: willi at aaa-plus.com (Wilhelm Pitzeier) Date: Thu Nov 3 14:40:53 2005 Subject: Launching the browser In-Reply-To: <199802031847.KAA05971@ccsi.canon.com> References: <199802031847.KAA05971@ccsi.canon.com> Message-ID: <199802031923.UAA20244@nikolo.aaa-plus.com> On Tue, 3 Feb 1998 at 10:54:32, Ricardo Parada wrote: > Is there an OpenStep method for launching the default browser on a URL? > For example, something like this: > [NSWorkspaceManager openURL:@"http://www.apple.com/"]; Nothing browser independent as far as I know. But you could something like the following code: NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; [pasteboard declareTypes: [NSArray arrayWithObject: NSStringPboardType] owner: nil]; [pasteboard setString: @"http://www.aaa-plus.com" forType: NSStringPboardType]; NSPerformService(@"OmniWeb/Open URL", pasteboard); Regards, Willi --- *********************************************************** * Wilhelm Pitzeier mailto:willi@aaa-plus.com * * AAA+ Software http://www.aaa-plus.com * * Rotenturmstrasse 22 voice: (+43 1) 5336665/32 * * A-1010 Vienna, Austria fax: (+43 1) 5336890 * * Makers of "Joy" --- the cross-platform development tool * *********************************************************** From sanguish at digifix.com Tue Feb 3 12:49:36 1998 From: sanguish at digifix.com (Scott Anguish) Date: Thu Nov 3 14:40:53 2005 Subject: Launching the browser In-Reply-To: <199802031847.KAA05971@ccsi.canon.com> References: <199802031847.KAA05971@ccsi.canon.com> Message-ID: <199802032049.PAA28963@digifix.com> There are some issues with this... fortunately, its easy to work around.. The key is to make sure that open actually happens in the new event loop. Otherwise you get pasteboard errors after the first successful attempt - openUrl:(NSString *) urlString { [self performSelector: @selector(performOpenUrl:) withObject: [sender title] afterDelay: 0.0]; return self; } - performOpenUrl:(NSString *)urlName; { NSPasteboard *pboard; NSArray *urlPboardTypes; NSString *serviceName; pboard = [NSPasteboard pasteboardWithName:@"URLServicePasteboard"]; urlPboardTypes = [NSArray arrayWithObjects:NSStringPboardType, nil]; [pboard declareTypes:urlPboardTypes owner:nil]; [pboard setString:urlName forType:NSStringPboardType]; if((serviceName = [[NSUserDefaults standardUserDefaults] stringForKey:@"URLService"]) == nil) serviceName = @"OmniWeb/Open URL"; NSPerformService(serviceName, pboard); return self; } From ricardo at ccsi.canon.com Tue Feb 3 13:04:27 1998 From: ricardo at ccsi.canon.com (Ricardo Parada) Date: Thu Nov 3 14:40:53 2005 Subject: Launching the browser References: <199802032049.PAA28963@digifix.com> Message-ID: <199802032105.NAA07487@ccsi.canon.com> A non-text attachment was scrubbed... Name: not available Type: application/x-nextmail Size: 1997 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980203/465b533f/attachment.bin From steve at inquisit.com Tue Feb 3 13:29:50 1998 From: steve at inquisit.com (Steve Dekorte) Date: Thu Nov 3 14:40:53 2005 Subject: Launching the browser In-Reply-To: <199802032105.NAA07487@ccsi.canon.com> References: <199802032105.NAA07487@ccsi.canon.com> Message-ID: <199802032128.NAA27423@gw1.farcast.com> >How about a solution for Windows (even if it does not use the OpenStep API)? Now that OmniWeb is on MS Windows, this would work there as well. :-) Steve Dekorte From hussain at cafestyle.com Tue Feb 3 13:58:03 1998 From: hussain at cafestyle.com (G. Hussain Chinoy) Date: Thu Nov 3 14:40:53 2005 Subject: problems installing RDR Yellow Box for NT Message-ID: <34D792EB.1E1E14CA@cafestyle.com> Hi, My installation of the RDR Yellow Box on my NT4.0 system hangs at "Running Preprocessing". I have to kill the process from the task manager to get back to normal. Nothing installs. Has anyone had similar problems or can tell me what I might do to install it? Thanks, H -- G. Hussain Chinoy Webmonster (raar!) ___ /\__\ vox 314.361.1321 \/__/ net hussain@chinoy.com, hussain@pobox.com, NEXTSTEP, hussain@cafestyle.com baby web http://www.pobox.com/~hussain/ From rcfa at cubiculum.com Tue Feb 3 16:16:36 1998 From: rcfa at cubiculum.com (Ronald C.F. Antony) Date: Thu Nov 3 14:40:53 2005 Subject: Launching the browser In-Reply-To: <199802031923.UAA20244@nikolo.aaa-plus.com> References: <199802031923.UAA20244@nikolo.aaa-plus.com> Message-ID: <9802040016.AA13404@kannix.cubiculum.com> you wrote: > On Tue, 3 Feb 1998 at 10:54:32, Ricardo Parada wrote: > > Is there an OpenStep method for launching the default browser on a URL? > > For example, something like this: > > [NSWorkspaceManager openURL:@" Opening requested URL...

One moment please...

This page should soon be replaced by the one you selected. If this does not work for you, please click here: yourULRGoesHere.


This is, of course, the way PB opens WOApps when you hit the launch button. As long as the browser claims to open .html files, this will work, regardless of the browser involved. Greetings, Ronald ============================================================================== "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." G.B. Shaw | rcfa@cubiculum.com | NeXT-mail welcome -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 2010 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980203/9a5fb2a9/attachment.bin From cake at cwr.uwa.edu.au Tue Feb 3 17:30:52 1998 From: cake at cwr.uwa.edu.au (David Cake) Date: Thu Nov 3 14:40:53 2005 Subject: Launching the browser In-Reply-To: <199802031847.KAA05971@ccsi.canon.com> Message-ID: >Hi - > >Is there an OpenStep method for launching the default browser on a URL? > Not really, but there probably will be a Yellow Box method. One of the differences between OpenStep and Yellow Box is that Yellow Box has QuickTime. QuickTime will include Internet Config (as MacOS does now). So you should be able to rely on calling getting the default browser from Internet Config. Cheers David David Cake Certified Apple Engineer Centre for Water Research University of Western Australia From brianw at sounds.WA.COM Tue Feb 3 17:19:35 1998 From: brianw at sounds.WA.COM (Brian Willoughby) Date: Thu Nov 3 14:40:53 2005 Subject: Launching the browser In-Reply-To: <9802040016.AA13404@kannix.cubiculum.com> References: <9802040016.AA13404@kannix.cubiculum.com> Message-ID: <199802040120.RAA02121@sounds.WA.COM> Robert has a good idea (aw, he beat me to the punch) for opening an URL without using the OmniWeb specific code suggested earlier. I would only add one thing: make sure that you use the AppKit temporary file naming facilities instead of "/tmp/openURL.html" to safeguard against file name collisions with other applications and other users. With a multi-user, multi-tasking system, its easy for one app to overwrite a tmp file before the first one has used the contents. I haven't checked lately whether the temporary file name services allow for a specification of the extension (e.g. .html), but I'll leave that as an exercise for the reader... | This is, of course, the way PB opens WOApps when you hit the | launch button. As long as the browser claims to open .html files, | this will work, regardless of the browser involved. The technique should work, but you at least want to avoid stomping on the filename created by WOApp. Brian Willoughby NEXTSTEP, OpenStep, Rhapsody Software Design Sound Consulting Apple Enterprise Alliance Partner NeXTmail welcome Macintosh Associate Apple is the registered trademark of Apple Computer, Inc. and Apple Records From marke at apple.com Tue Feb 3 17:52:51 1998 From: marke at apple.com (Mark Eaton) Date: Thu Nov 3 14:40:53 2005 Subject: Launching the browser Message-ID: <199802040153.RAA16874@scv4.apple.com> On 2/3/98 5:33 PM, cake@cwr.uwa.edu.au (David Cake) said: > Not really, but there probably will be a Yellow Box method. One of >the differences between OpenStep and Yellow Box is that Yellow Box has >QuickTime. QuickTime will include Internet Config (as MacOS does now). So >you should be able to rely on calling getting the default browser from >Internet Config. > Umm, I don't think so. Internet Config is not part of QuickTime (e.g. it isn't shipped with QT3 for Windows.) It would be cool if Peter decided on his own to port it... -mark ______________________________________________________________________ Mark Eaton QuickTime Engineering marke@apple.com Apple Computer From david at onestep.co.uk Wed Feb 4 01:32:41 1998 From: david at onestep.co.uk (David Andrew Knight) Date: Thu Nov 3 14:40:53 2005 Subject: Do I need Scope? (What does the NDA mean) In-Reply-To: References: Message-ID: <199802040935.JAA29169@onestep.co.uk> Hi, You wrote: > I tried to start a correspondence on rhapsody-dev about problems I am > having with YellowBox development (bugs?) and wonder if I am treading over > the line of the NDA. > > Can someone familiar with both the NDA and the list tell me what we are > allowed to talk about on this list? My interpretation is that we are not allowed to talk about anything that is a direct result of our experiance with anything related to the materials that are covered by NDA. Thus Ken Bereskin posted to rhapsody-dev the following on 20 Oct 1997; "We are aware of the concerns that have been raised given the NDA nature of the Rhapsody Developer Release and what this does or doesn't mean regarding active discussion of the platfrom and distribution of software built on the release. We want active and vibrant discussion and we'll come up with some basic guidelines for the Rhapsody Developer Community this week. We'll update the FAQ and post to lists like this. Best regards, Ken Ken Bereskin Sr, Manager, Rhapsody Team Apple Developer Relations" I followed up on Nov 11,1997 to which he replied "We are very close to supplying a clarification. Working with lawyers always takes more time than we think." and nothing has been heard by me since. Ken can you shed some light on this matter. --- Regards David Knight OneStep Solutions Plc From jacrawle at bulldog.unca.edu Wed Feb 4 10:02:48 1998 From: jacrawle at bulldog.unca.edu (Joseph Andrew Crawley) Date: Thu Nov 3 14:40:53 2005 Subject: how to access a network In-Reply-To: <199802040935.JAA29169@onestep.co.uk> Message-ID: What class can be used to access info, such as an FTP site? From duke at tipitina.demon.co.uk Wed Feb 4 11:45:12 1998 From: duke at tipitina.demon.co.uk (Richard Dale) Date: Thu Nov 3 14:40:53 2005 Subject: Java in IB Message-ID: <34D8C547.226C@tipitina.demon.co.uk> In the FloatingPalette example Java/Yellow box project, the nib files contain a file called 'classes.nib'. They contain the mapping between IB outlets and the Java code. Anyone know how these files get created and how you specify what is an outlet or action method? { IBClasses = ( {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, { ACTIONS = {newWindow = id; }; CLASS = MainController; LANGUAGE = Java; OUTLETS = {paletteWindow = id; }; SUPERCLASS = java.lang.Object; } ); IBVersion = 1; } -- Richard Dale From sanguish at digifix.com Wed Feb 4 13:34:23 1998 From: sanguish at digifix.com (Scott Anguish) Date: Thu Nov 3 14:40:53 2005 Subject: how to access a network In-Reply-To: References: Message-ID: <199802042134.QAA06421@digifix.com> Joseph Andrew Crawley wrote: > What class can be used to access info, such as an FTP site? There is not currently any included Frameworks that give you direct access to these higher level protocols. Damn shame. HOWEVER, you can certainly write stuff that handles it using sockets and NSFileHandles and such. OR, you can grap OmniNetworking.framework and play with it. It gives a very nice streams access to internet sockets. I've been using it to write a framework for accessing NNTP servers, and it is _almost trivial_ to do so. The fact that they are giving that away is fantastic. Now if only Apple would include it, and classes built on it with Rhapsody. From anders at milkweed.com Wed Feb 4 15:07:40 1998 From: anders at milkweed.com (Anders Pytte) Date: Thu Nov 3 14:40:53 2005 Subject: how to use Formatters palette Message-ID: Friends, I can not find a Formatters palette in InterfaceBuilder. Do I need to set the Formatters for a Cell programatically? Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com ---------------------------------------------------------------- This message was created and sent using the Cyberdog Mail System ---------------------------------------------------------------- From duke at tipitina.demon.co.uk Wed Feb 4 17:20:25 1998 From: duke at tipitina.demon.co.uk (Richard Dale) Date: Thu Nov 3 14:40:53 2005 Subject: Java and IB Message-ID: <34D913DB.6C30@tipitina.demon.co.uk> Thanks for the replies. I was really asking about Java and IB, I don't have any problem with outlets and action methods in Objective-C, but when I briefly played with the Java TextEditor project and attempted to add an instance variable to a Java class, the 'parse' command (it was called something different) only seemed to understand Objective-C headers. Art says that he has heard of a problem with IB parsing Java files, so this seems to be my problem - IB didn't prompt me for Java classes only Objective-C headers. The Java TextEditor creates outlets with Java set.. methods. The FloatingPalette example creates outlets with instance variables. So somewhere somebody must tell IB which is which. -- Richard Dale Art Isbell wrote: > > > In the FloatingPalette example Java/Yellow box project, the nib > files > > contain a file called 'classes.nib'. They contain the mapping between > IB outlets and the Java code. Anyone know how these files get created > and how you specify what is an outlet or action method? > InterfaceBuilder creates classes.nib when a nib is saved. classes.nib > should never be edited manually. > > classes.nib includes info about custom classes whose implementation > code hasn't been loaded into InterfaceBuilder as a palette. > > Outlets and Actions are specified in IB's Classes inspector. Outlets > are object instance variables (i.e., those to which objects can be > assigned). Actions are methods that take a single argument, the object > that sent the message (i.e., the UI object). Outlets and Actions > *must* agree with actual class definitions, so it's best to create > classes in IB by dragging an Objective-C interface file (header) icon > from ProjectBuilder and dropping it on the Classes inspector rather > than creating the class within the Class inspector itself which can be > done also. I have heard a complaint that InterfaceBuilder doesn't > parse Java interface files (that's probably not the correct name for > the Java file that declares instance variables and methods, but > doesn't define their implementations) correctly, but maybe that was > not a valid complaint. > Art Isbell NeXT/MIME: arti@lavaDOTnet Trego Systems Voice/Fax: +1 808 394 0511 (for whom I don't speak) Voice Mail: +1 808 394 0495 NT managed care solutions US Mail: Honolulu, HI 96825-2638 From anders at milkweed.com Wed Feb 4 18:50:13 1998 From: anders at milkweed.com (Anders Pytte) Date: Thu Nov 3 14:40:53 2005 Subject: multiple NSZones? Message-ID: Friends, I noticed that the Draw project example allocates storage for each document in a separate NSZone. Can anyone brief me as to compelling advantages of this technique? Does it really make any difference? Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com ---------------------------------------------------------------- This message was created and sent using the Cyberdog Mail System ---------------------------------------------------------------- From rcfa at cubiculum.com Wed Feb 4 19:01:35 1998 From: rcfa at cubiculum.com (Ronald C.F. Antony) Date: Thu Nov 3 14:40:53 2005 Subject: multiple NSZones? In-Reply-To: References: Message-ID: <9802050301.AA16921@kannix.cubiculum.com> > I noticed that the Draw project example allocates storage for each document > in a separate NSZone. Can anyone brief me as to compelling advantages of > this technique? Does it really make any difference? It allows the OS' VM system to allocate memory in a more efficient way, allows for improved chaching and paging strategies. e.g. if you switch focus from one doc to another, the OS can figure that now it's time to page out the zone of the old document and page in the zone for the new one. This can improve performance, since pages can be prefetched before they actually fault. Also, when freeing memory, memory can be freed in chunks. If you close the document, the whole zone will be freed (if you don't have any memory leaks), which probably frees several pages. If memory is allocated all from the same default zone, then chances are that every page will still have something from another document on it, and hence can't be recycled, causing ever more VM to be used. Even if some of these optimizations might not yet be exploited by the OS, it is wise to write your code in such a way that once the OS were updated, it can automatically take advantage of such optimizations. Ronald ============================================================================== "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." G.B. Shaw | rcfa@cubiculum.com | NeXT-mail welcome From theisen at akaMail.com Thu Feb 5 02:00:57 1998 From: theisen at akaMail.com (Dirk Theisen) Date: Thu Nov 3 14:40:53 2005 Subject: how to access a network In-Reply-To: Message-ID: <1d3z53i.a7ekouv70fpcM@rhrz-isdn3-p54.rhrz.uni-bonn.de> Hello Joseph! > What class can be used to access info, such as an FTP site? java.net.* :-) There are several packages on the net that provide even wrapers for the highest level protocols. Dirk -- No RISC - No fun http://titan.cs.uni-bonn.de/~theisen/ From willi at aaa-plus.com Thu Feb 5 05:24:52 1998 From: willi at aaa-plus.com (Wilhelm Pitzeier) Date: Thu Nov 3 14:40:53 2005 Subject: how to use Formatters palette In-Reply-To: References: Message-ID: <199802051324.OAA23330@nikolo.aaa-plus.com> On Wed, 4 Feb 1998 at 15:04:00, "Anders Pytte" wrote: > I can not find a Formatters palette in InterfaceBuilder. There is an NSNumberFormatter and an NSDateFormatter on the DataViews.palette. Just drop it on on any NSTextField. (Anybody knows how to remove it?) > Do I need to set the Formatters for a Cell programatically? No, you don't. Regards. Willi --- *********************************************************** * Wilhelm Pitzeier mailto:willi@aaa-plus.com * * AAA+ Software http://www.aaa-plus.com * * Rotenturmstrasse 22 voice: (+43 1) 5336665/32 * * A-1010 Vienna, Austria fax: (+43 1) 5336890 * * Makers of "Joy" --- the cross-platform development tool * *********************************************************** From jesse at metamediasys.com Thu Feb 5 08:12:02 1998 From: jesse at metamediasys.com (Jesse Sng) Date: Thu Nov 3 14:40:53 2005 Subject: how to access a network In-Reply-To: <199802042134.QAA06421@digifix.com> Message-ID: Scott Anguish wrote : >There is not currently any included Frameworks that give you direct access >to these higher level protocols. Damn shame. > >HOWEVER, you can certainly write stuff that handles it using sockets and >NSFileHandles and such. > >OR, you can grap OmniNetworking.framework and play with it. It gives a very >nice streams access to internet sockets. > >I've been using it to write a framework for accessing NNTP servers, and it >is _almost trivial_ to do so. > >The fact that they are giving that away is fantastic. Now if only Apple >would include it, and classes built on it with Rhapsody. I have one more suggestion to add to the above solutions. You can use the networking classes that are already available in Java. Since the Java classes are available in both Yellow Box for Windows and also Rhapsody (Intel/PowerPC), it makes sense that you could possibly use Objective C for most of your stuff and then go over to Java for those little bits. Performance doesn't really suffer as most of the networking I/O is handled by native TCP/IP sockets code which is called by the byte code. In addition, you have the advantage of being able to reuse lots of existing classes and other additions that are freely available on various Java web sites and in all those countless Java books. Just mix and match, after all your Java classes appear to your Objective C code as first class objects anyway. Jesse Sng From stefan.huy at stud.uni-hannover.de Thu Feb 5 08:25:21 1998 From: stefan.huy at stud.uni-hannover.de (Stefan Huy) Date: Thu Nov 3 14:40:53 2005 Subject: how to use Formatters palette Message-ID: <199802051524.QAA01601@studserv.stud.uni-hannover.de> >> I can not find a Formatters palette in InterfaceBuilder. >There is an NSNumberFormatter and an NSDateFormatter on the >DataViews.palette. Just drop it on on any NSTextField. >(Anybody knows how to remove it?) To remove the formatter: Select the NSTextField, press CMD-E to have its instance entry highlited in the project window, popup the sub-entries, choose the NS(x)Formatter and hit backspace. cu -Stefan __Stefan Huy___________________________________________________________ ____ ______ mailto:huy@stud.uni-hannover.de ________ http://www.stud.uni-hannover.de/~huy ______________________________________________________________________ From sebestyen_g at accentcomm.com Thu Feb 5 06:48:27 1998 From: sebestyen_g at accentcomm.com (Gabriel Sebestyen) Date: Thu Nov 3 14:40:53 2005 Subject: Around the NSRunLoop ... Message-ID: <34D9D13B.83F0B597@accentcomm.com> Hi, I'm getting confused about NSRunLoop so I decided you to ask some questions. I have a normal (currentRunLoop) run loop and use it as usual: while () { [_myRunLoop runMode:NSModalPanelRunLoopMode beforeDate:[NSDate distantFuture]]; //... and check my desired signals } Well it seems good. But when I add an NSTimer with scheduledTimer ... method it blocks the run loop until it becomes fired. - How can I make it parallelized, I mean timer works with run loop (important!) but that returns again and again unblocked? - What if I want to use NSConnections? Simply adding connection mode? - The default modes are valids or can I create new ones? Is this make sense? - What is the general way to make a general run loop which handles all I want? - Where can I find docs & samples about it (NSRunLoop tips&tricks/practices for experts? :-) )? Thanks, Gabriel Sebestyen -------------- next part -------------- A non-text attachment was scrubbed... Name: vcard.vcf Type: text/x-vcard Size: 435 bytes Desc: Card for Gábor Sebestyén Url : /mailman/archive/macosx-dev/attachments/19980205/1167099b/vcard.vcf From allan at ALI.BC.CA Thu Feb 5 09:34:14 1998 From: allan at ALI.BC.CA (Allan Noordvyk) Date: Thu Nov 3 14:40:53 2005 Subject: multiple NSZones? In-Reply-To: <9802050301.AA16921@kannix.cubiculum.com> References: <9802050301.AA16921@kannix.cubiculum.com> Message-ID: <98Feb5.012441pst.24194@gateway.ali.bc.ca> Ronald Antony wrote: [Excellent explanation of NSZone's snipped]. > Even if some of these optimizations might not yet be exploited > by the OS, it is wise to write your code in such a way that once > the OS were updated, it can automatically take advantage of such > optimizations. Those of you planning to deploy on NT should be aware that zones are currently a Mach-only thing. There is only a single NSZone on NT and thus you will get none of the benefits pointed out by Mr. Antony on that platform. Which is what I think he is getting at in the quoted paragraph. Thus, on NT you can't give your zones distinct names for debugging and profiling purposes. The function is still there, it is just a no-op. Folks should still do as Mr. Anthony recommends (ie. keeping the NSZone code). It is useful when debugging and tuning performance on Mach. Furthermore, NT may have a similar concept added at a future date, or the Apple programmers may figure out an efficient way to fake it on top of NT. Just don't be alarmed if all of your zones appear to have no names when your code is running on NT. Or that your app appears to be much more stingy when releasing memory. -- Allan Noordvyk, Software Artisan e-mail: allan@ali.bc.ca ALI Technologies Voice: 604.821.6317 Richmond, Canada Fax: 604.279.5468 * NeXT and MIME mail welcome * "A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable." --- Les Lamport From sschaper at inlink.com Thu Feb 5 09:33:57 1998 From: sschaper at inlink.com (Stephen Schaper) Date: Thu Nov 3 14:40:53 2005 Subject: Say it ain't so! In-Reply-To: Message-ID: I remembered something that we might all find encouraging. When Apple bought Next a little over a year ago, a number of my co-workers, who are either Windows bigots or Unix gurus told me that they were actually interested in buying a Mac and trying it out. OpenStep has that good of a reputation. The IS people who know and love UNIX and hate NT are definitely potential customers, if they can get it past pointy-haired management types. ========================================== Unsolicited advertising proofreading fee: $100/instance sschaper@inlink.com www.inlink.com/~sschaper/ ========================================== From jhendry at cmg.fcnbd.com Thu Feb 5 09:48:11 1998 From: jhendry at cmg.fcnbd.com (Jonathan Hendry) Date: Thu Nov 3 14:40:53 2005 Subject: Say it ain't so... Message-ID: <199802051748.LAA00416@isdnjhendry.cmg.fcnbd.com> Folks, This 'Say it ain't so' thread isn't appropriate for rhapsody-dev. Let's keep it on rhapsody-talk, before Omni breaks out a can of whoop-ass for us. Thanks, - Jon From timc at apple.com Thu Feb 5 11:28:26 1998 From: timc at apple.com (Tim Carroll) Date: Thu Nov 3 14:40:53 2005 Subject: Around the NSRunLoop ... Message-ID: <199802051928.LAA20028@scv2.apple.com> On 2/5/98 9:07 AM, space aliens observed that Gabriel Sebestyen said: >I'm getting confused about NSRunLoop so I decided you to ask some >questions. I have a normal (currentRunLoop) run loop and use it as >usual: > >while () >{ > [_myRunLoop runMode:NSModalPanelRunLoopMode beforeDate:[NSDate >distantFuture]]; > //... and check my desired signals >} > >Well it seems good. But when I add an NSTimer with scheduledTimer ... >method it blocks the run loop until it becomes fired. Not sure about some of your other questions, but I can talk a little bit about the event handling system, since I snooped through that code recently when helping a couple of other developers. When the system checks for events, it basically does the following: 1) Fire off all timers whose firing times have already past. 2) Calculate the next time a timer will fire, or a source of events will expire. 3) Check all sources of events and return one if there is an event pending. 4) If there are no pending events, it blocks on all of its sources until an event comes in or the time calculated in #2 fires. So the runloop's thread is only going to get time when an event comes in, or your timer fires. If you want to perform continuous processing while the runloop is blocked, you should use a separate thread to do your continous processing. Distributed Objects can be used to synchronize the two threads, since DO calls come through the usual event mechanism. Check out the SimpleThreads and TrivalThreads samples for some guidelines as to how to implement this. For those MacOS programmers out there, here's a couple of additional notes. NSTimers are *not* Time Manager Tasks. They don't interrupt the usual state of execution, so they can't be used for code that needs very precise timing (like firing off sounds, or guaranteeing you see an event every 60th of a second). The event loop handling for a Yellow App is much like the cooperative multitasking environment on the MacOS. Any event handling or timer can spend as much time as it wants executing code. If it spends 3 seconds doing calculations, that's three seconds that no other events or timers are being processed in that runLoop, much like an Application that takes a lot of processing time without calling WaitNextEvent. Using another thread to do your processing guarantees that you'll always be getting some time to do processing, even when other events are being serviced. Tim From arti at lava.net Thu Feb 5 12:58:54 1998 From: arti at lava.net (Art Isbell) Date: Thu Nov 3 14:40:53 2005 Subject: Around the NSRunLoop ... References: <199802051928.LAA20028@scv2.apple.com> Message-ID: <9802052058.AA00932@lava.net> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1400 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980205/0b60fa6c/attachment.bin From Barry.Leslie at snap.de Fri Feb 6 08:00:58 1998 From: Barry.Leslie at snap.de (Barry Leslie) Date: Thu Nov 3 14:40:54 2005 Subject: Yellow Box and EOF Adaptors. References: <199801302252.RAA10485@digifix.com> Message-ID: <34DB33B9.3D17@PrimeBase.com> OK. I have a Yellow Box EOF Adaptor for our database, now how do I get the EOFModeler to load it. Running it in the debugger I can see that the modeler is loading the dll or at least it has found it. But then I get a error message saying that it was unable to load the bundle for the adaptor. The adaptor works fine on Rhapsody. I noticed that the dll for the Yellow Box version has to be in the NextLibrary/Examples directory. Is there anything else that it is expecting to find there? Also, does anybody know how to adjust the monitor resolution in OpenStep or Rhapsody. These huge icons are real pieces of art but they do clutter up the place when you are working on a 15" monitor. Barry From shawn at wolfram.com Fri Feb 6 13:14:32 1998 From: shawn at wolfram.com (Shawn C. Sheridan) Date: Thu Nov 3 14:40:54 2005 Subject: subscribe Message-ID: subscribe end How does one subscribe to this group? --Shawn C. Sheridan From sgalle at texas.net Fri Feb 6 17:44:18 1998 From: sgalle at texas.net (Sean Galle) Date: Thu Nov 3 14:40:54 2005 Subject: Can't reinstall Rhapsody? In-Reply-To: <98Feb2.015357pst.24195@gateway.ali.bc.ca> Message-ID: I recently formatted my two HD and reinstalled everything. I am reinstalling Rhapsody on my 2gig internal drive at SCSI ID 0. I boot up from the CD and hold the caps lock key and it restarts, then starts to load the kernel. Then it get to the point where it's saying it can't load root at ID sd2. But it should be loading it from the CD. Anyway, it is obvious the nvram thinks root should be at ID2. ID 2 is my MacOS HD. Can someone please tell me how to fix this? I am sure there is something in the Boot Variable program that needs to be changed but I can't get it figured out. *-------------------------------------------------------------* | Rhapsody...Think Different Apple Developer #52807130 | *-------------------------------------------------------------* From anders at milkweed.com Sat Feb 7 15:54:44 1998 From: anders at milkweed.com (Anders Pytte) Date: Thu Nov 3 14:40:54 2005 Subject: does stringBy... retain? Message-ID: Friends, Do methods that return an NSString object, such as stringByAppendingPathExtension, retain the returned object, or do I need to do that? If not already retained by the method, when would the returned object be released? The reason I am confused is that I have seen methods like stringByAppendingPathExtension used in local context without a call to release or autorelease. Many thanks, Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com ---------------------------------------------------------------- This message was created and sent using the Cyberdog Mail System ---------------------------------------------------------------- From type_o- at columbus.rr.com Sat Feb 7 17:44:05 1998 From: type_o- at columbus.rr.com (Bill Schwanitz) Date: Thu Nov 3 14:40:54 2005 Subject: Obtaining Rhapsody Message-ID: <34DD0DE4.10980E8A@columbus.rr.com> Is there anyone out here with Rhapsody for the I386 platform? I am Vice President of Explorer Post 369 (http://post369.columbus.oh.us) and I am in search of Rhapsody. Our post has 6 NeXt stations and I want to see the differences between Rhapsody and NeXt. I am hoping to do a comparison between NeXt-step OS and Rhapsody. If anyone can help me out, I have a cable modem as does 2 other people in our post, our server sits on an OC3 at Ohio State University which may be used, but I would need to get permission first! Email me at type_o-@columbus.rr.com and please visit our web page. Bill Schwanitz From rcfa at cubiculum.com Sat Feb 7 17:59:58 1998 From: rcfa at cubiculum.com (Ronald C.F. Antony) Date: Thu Nov 3 14:40:54 2005 Subject: does stringBy... retain? In-Reply-To: References: Message-ID: <9802080200.AA26074@kannix.cubiculum.com> > Do methods that return an NSString object, such as > stringByAppendingPathExtension, retain the returned object, or do I need to > do that? If not already retained by the method, when would the returned > object be released? > > The reason I am confused is that I have seen methods like > stringByAppendingPathExtension used in local context without a call to > release or autorelease. It keeps confusing people, so Apple should make the docs a bit more explicit. However, the object ownership policy states clearly: you only have to (auto)release what you - allocated (call to alloc) - copied (copy* methods) - retained (sending a retain to an object) All other methods that return objects are supposed to return objects that you need not release, since you don't own them (unless you retain them first). All the convenience object creation methods do neither carry an alloc* nor an copy* nor a retain* in their names, hence the objects they return are supposed to be autoreleased. If they are not, and the method does not explicitly document that fact, then you have found a bug. The reason for this is, that such convenience methods are usually called within local processing, and doing all the retain/release stuff would render the code illegible, and also, it would get increasingly complicated to know which methods count as "creation methods" and hence retain the objects, and which count as "modification methods" and do not. Remember: copy, alloc, retain, that's it. Greetings, Ronald ============================================================================== "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." G.B. Shaw | rcfa@cubiculum.com | NeXT-mail welcome From sebestyen_g at accentcomm.com Sun Feb 8 03:38:59 1998 From: sebestyen_g at accentcomm.com (Gabriel Sebestyen) Date: Thu Nov 3 14:40:54 2005 Subject: Proxy object after NSConnection closed Message-ID: <34DD9953.ACB479C6@accentcomm.com> Hi, What's happening when I send a message to a proxy object after the NSConnection instance closed? Exception? Nothing? Earthquake ...? Gabriel Sebestyen -------------- next part -------------- A non-text attachment was scrubbed... Name: vcard.vcf Type: text/x-vcard Size: 435 bytes Desc: Card for Gábor Sebestyén Url : /mailman/archive/macosx-dev/attachments/19980208/4760c616/vcard.vcf From anders at milkweed.com Sun Feb 8 11:20:16 1998 From: anders at milkweed.com (Anders Pytte) Date: Thu Nov 3 14:40:54 2005 Subject: null method convention? Message-ID: Friends, What is the convention in ObjC for declaring an empty method that MUST be overridden by a subclass (or an exception will be called)? Do I need to define the method and explicitly raise or can I simply declare the method and not define it? The base class is not entirely abstract; only certain methods need to be overridden. Does ObjC have a language concept of abstract class? Many thanks, Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com ---------------------------------------------------------------- This message was created and sent using the Cyberdog Mail System ---------------------------------------------------------------- From sebestyen_g at accentcomm.com Sun Feb 8 10:24:31 1998 From: sebestyen_g at accentcomm.com (Gabriel Sebestyen) Date: Thu Nov 3 14:40:54 2005 Subject: Proxy object after NSConnection closed References: <34DD9953.ACB479C6@accentcomm.com> Message-ID: <34DDF85F.88F80E32@accentcomm.com> Well, I solved my problem, the answer is an exception named NSObjectInaccessableException. For new to this topic (like me) I attached my example src. Best regards, Gabriel Sebestyen -------------- next part -------------- A non-text attachment was scrubbed... Name: ProxyEx.zip Type: application/x-zip-compressed Size: 19770 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980208/3ca0ee21/ProxyEx.bin -------------- next part -------------- A non-text attachment was scrubbed... Name: vcard.vcf Type: text/x-vcard Size: 435 bytes Desc: Card for Gábor Sebestyén Url : /mailman/archive/macosx-dev/attachments/19980208/3ca0ee21/vcard.vcf From sanguish at digifix.com Sun Feb 8 22:59:47 1998 From: sanguish at digifix.com (Scott Anguish) Date: Thu Nov 3 14:40:54 2005 Subject: Rhapsody MiniExamples Message-ID: <199802090659.BAA20940@digifix.com> I've added another MiniExample to the Stepwise Rhapsody MiniExamples that I've been putting together. Someone on Usenet had asked about the best way to sort a table according to the order of the columns in the table (so you could re-order by dragging column to the left). I've written a small sample the illustrates this, and put it on Stepwise at http://www.stepwise.com/Resources/Rhapsody_MiniExamples I'll be adding more as I get the chance (and ideas).. Anyone interested in contributing? Anyone interested in extending this one so thatyou can control the ascending/decending order of each column by a button the headerView (like on many Windowz programs)? From rcfa at cubiculum.com Sun Feb 8 23:30:11 1998 From: rcfa at cubiculum.com (Ronald C.F. Antony) Date: Thu Nov 3 14:40:54 2005 Subject: null method convention? In-Reply-To: References: Message-ID: <9802090730.AA29831@kannix.cubiculum.com> > What is the convention in ObjC for declaring an empty method that MUST be > overridden by a subclass (or an exception will be called)? Do I need to > define the method and explicitly raise or can I simply declare the method > and not define it? I'm not sure about this. If you declare a method, you will have to implement it, even if it's an empty implementation. In that case however, the subclass will inherit it, and you can't enforce an override. > The base class is not entirely abstract; only certain methods need to be > overridden. Does ObjC have a language concept of abstract class? Not exactly, but you can use protocols in some cases to do similar things. You could try to define a protocol that all subclasses have to adopt. Do NOT adopt it in the abstract class, since otherwise your as far as in the example above. However, you can check in the designated initializer, if self conforms to a protocol (since it then will be of a subclass class) and you can raise if that subclass instance does not adopt the protocol. Of course, this is only working at runtime. As far as compile time enforcement of method implementation, I'm clueless right now. Ronald ============================================================================== "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." G.B. Shaw | rcfa@cubiculum.com | NeXT-mail welcome From peter at ains.at Mon Feb 9 05:08:14 1998 From: peter at ains.at (Peter Burgstaller) Date: Thu Nov 3 14:40:54 2005 Subject: Driver Disk Message-ID: Hi all, I just received the RDR for PC compatibles .. it says that it supports EIDE CDROM drives .. now I need to install from that CDROM drive but I didn't get a disk with drivers for EIDE. I also cannot look at the CD since it wouldnt' mount anywhere (tried Solaris, Mac, PC). Can anybody make me a driver disk with the drivers for IDE HDs and EIDE CDROMs? - Any answer would be most appreciated! - Cheers, Peter /----------------------------------------------\ | Dipl.-Ing. Peter Burgstaller | | Technical Assistant and System Administrator | | @ all information network & services gmbh | | email: peter@ains.at | \----------------------------------------------/ From paulrs at lgs-systems.com Mon Feb 9 05:06:46 1998 From: paulrs at lgs-systems.com (Paul R. Summermatter) Date: Thu Nov 3 14:40:54 2005 Subject: null method convention? In-Reply-To: References: Message-ID: <9802091306.AA23052@cube> You wrote: > Friends, > > What is the convention in ObjC for declaring an empty method that > MUST be overridden by a subclass (or an exception will be called)? > Do I need to define the method and explicitly raise or can I simply > declare the method and not define it? > Anders, Please someone correct me if I am wrong, but the convention I have seen emerging, EODataSource is an example, is that methods which must be overriden by a subclass are implemented in the superclass but raise an exception when called on the super. Regards, Paul --- Paul Summermatter LGS Systems, Inc. Medical Computing Division 182 Lake Street Hamburg, NY 14075-4826 (716) 646-1164 paulrs@lgs-systems.com (NeXT or MIME Mail Welcome) From stark at easynet.fr Mon Feb 9 07:36:20 1998 From: stark at easynet.fr (stark@easynet.fr) Date: Thu Nov 3 14:40:54 2005 Subject: null method convention? References: Message-ID: <9802091536.AA00784@easynet.fr> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 4880 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980209/3b906d93/attachment.bin From allan at ALI.BC.CA Mon Feb 9 08:56:03 1998 From: allan at ALI.BC.CA (Allan Noordvyk) Date: Thu Nov 3 14:40:54 2005 Subject: null method convention? In-Reply-To: <9802090730.AA29831@kannix.cubiculum.com> References: <9802090730.AA29831@kannix.cubiculum.com> Message-ID: <98Feb9.004613pst.24197@gateway.ali.bc.ca> Ronald Anthony wrote: > I'm not sure about this. If you declare a method, you will have to implement > it, even if it's an empty implementation. In that case however, the > subclass will inherit it, and you can't enforce an override. The way around this problem is to throw the exception yourself. This is actually preferable since you can state the exact nature of the problem. eg. - (void)somePrimitiveOperation { [NSException raise:@"Improper Subclass" format:@"The subclass %@ has has not overridden the somePrimitiveOperation method.", [[self class] description]]; } -- Allan Noordvyk, Software Artisan e-mail: allan@ali.bc.ca ALI Technologies Voice: 604.821.6317 Richmond, Canada Fax: 604.279.5468 * NeXT and MIME mail welcome * "A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable." --- Les Lamport From jacrawle at bulldog.unca.edu Mon Feb 9 09:59:22 1998 From: jacrawle at bulldog.unca.edu (Joseph Andrew Crawley) Date: Thu Nov 3 14:40:54 2005 Subject: sockets In-Reply-To: <199802090659.BAA20940@digifix.com> Message-ID: Where can I find reference for using sockets with rhapsody? I checked the Mach reference book from Apple but it was no help. From Dan_Grillo at 280.com Mon Feb 9 10:01:30 1998 From: Dan_Grillo at 280.com (Dan Grillo) Date: Thu Nov 3 14:40:54 2005 Subject: sockets Message-ID: <199802091806.KAA19221@280.com> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 388 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980209/61c208ed/attachment.bin From waqar at bjr.com Mon Feb 9 10:11:21 1998 From: waqar at bjr.com (Waqar Malik) Date: Thu Nov 3 14:40:54 2005 Subject: sockets In-Reply-To: from "Joseph Andrew Crawley" at Feb 9, 98 10:04:21 am Message-ID: <199802091811.KAA05704@xavier.bjr.com> [Joseph Andrew Crawley wrote:] [ [ Where can I find reference for using sockets with rhapsody? I checked the [ Mach reference book from Apple but it was no help. [ Internetworking with TCP/IP Volume III (BSD Socket Version). ISBN 0-13-260969-x w. From rcfa at cubiculum.com Mon Feb 9 11:09:57 1998 From: rcfa at cubiculum.com (Ronald C.F. Antony) Date: Thu Nov 3 14:40:54 2005 Subject: null method convention? In-Reply-To: <98Feb9.004613pst.24197@gateway.ali.bc.ca> References: <9802090730.AA29831@kannix.cubiculum.com> <98Feb9.004613pst.24197@gateway.ali.bc.ca> Message-ID: <9802091910.AA01521@kannix.cubiculum.com> you wrote: > Ronald Anthony wrote: > > I'm not sure about this. If you declare a method, you will have to > > implement it, even if it's an empty implementation. In that case however, > > the subclass will inherit it, and you can't enforce an override. > > The way around this problem is to throw the exception yourself. > This is actually preferable since you can state the exact nature > of the problem. eg. > > > - (void)somePrimitiveOperation > { > [NSException raise:@"Improper Subclass" > format:@"The subclass %@ has has not overridden the > somePrimitiveOperation method.", > [[self class] description]]; > } Well, that's what - (void) doesNotRecognizeSelector:(SEL)aSelector does with simpler code. However, the problem with this is twofold, which is why I didn't suggest it: a) you may be able to get away with undetected subclass incompleteness, just because during debugging a particular method never gets called, and hence the exception is not trown. b) although the method is declared in the parent, you are not allowed to call super's implementation in the child class' implementation of the method. This is counter established standards and needs special documentation, etc. My version does about the same, except it enforces the checking at a single place, the protocol can be extended w/o code changes to the parent class, while in the above approach, for each new method a new empty exception raising version has to be cooked up. Neither of these do compile-time checking. Come to think of it, maybe it's possible (I didn't try this) to declare the protocol in the parent, ignore the compiler warnings when compiling e.g. the framework with the parent class, and then have the subclasses inherit the protocol, and then the compiler should realize incomplete implementations and spew out errors at compile time. I just don't know what it will do with the parent class, which will continue to have an incomplete implementation of a protocol it adopts. Greetings, Ronald ============================================================================== "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." G.B. Shaw | rcfa@cubiculum.com | NeXT-mail welcome From jacrawle at bulldog.unca.edu Mon Feb 9 12:15:21 1998 From: jacrawle at bulldog.unca.edu (Joseph Andrew Crawley) Date: Thu Nov 3 14:40:54 2005 Subject: sockets In-Reply-To: <199802091811.KAA05704@xavier.bjr.com> Message-ID: On Mon, 9 Feb 1998, Waqar Malik wrote: > [Joseph Andrew Crawley wrote:] > [ > [ Where can I find reference for using sockets with rhapsody? I checked the > [ Mach reference book from Apple but it was no help. > [ > Internetworking with TCP/IP Volume III (BSD Socket Version). > > ISBN 0-13-260969-x > > w. > Anything free? Like online documentation. thanks Joseph From dylan at anim.dreamworks.com Mon Feb 9 12:17:26 1998 From: dylan at anim.dreamworks.com (Dylan Kohler) Date: Thu Nov 3 14:40:54 2005 Subject: Booting Rhapsody on second disk Message-ID: <34DF6456.4DAE901D@anim.dreamworks.com> I have been running Rhapsody RDR/Intel on a Compaq Presario 4850. I've since wanted to test my apps under Yellow Box for Win95. Unfortunately, due to the tyrannical "QuickRestore" disk included with the Compaq, which reformats the entire primary IDE drive before installing, the only way it appears I've figured I can reinstall Windows 95 alongside Rhapsody is to either: a. Put Rhapsody on a second disk. In this case, how do I boot from the second disk? The Presario's BIOS doesn't seem to have a way of doing this that I could find. b. Non-destructively repartition the first disk. In other words, after Windows 95 is QuickRestore'd, carve out a second partition on the first disk and have RDR/Intel try to load to that second partition. Is there a freeware utility to do such non-destructive repartitions? I hesitate to plunk down more money for such a risky hack. Thanks for any help you can offer. ----------------------------------------------- Dylan Kohler DreamWorks Feature Animation dkohler@dreamworks.com (MIME, ASCII) From jacrawle at bulldog.unca.edu Mon Feb 9 12:18:13 1998 From: jacrawle at bulldog.unca.edu (Joseph Andrew Crawley) Date: Thu Nov 3 14:40:54 2005 Subject: NSFileManger In-Reply-To: <199802091806.KAA19221@280.com> Message-ID: Is there a quicker way to read disk contents thsn with the FileManager? Such as a desk top file. thanks Joseph From allan at ALI.BC.CA Mon Feb 9 12:31:36 1998 From: allan at ALI.BC.CA (Allan Noordvyk) Date: Thu Nov 3 14:40:54 2005 Subject: null method convention? In-Reply-To: <9802091910.AA01521@kannix.cubiculum.com> References: <9802091910.AA01521@kannix.cubiculum.com> Message-ID: <98Feb9.042150pst.24193@gateway.ali.bc.ca> > Well, that's what > - (void) doesNotRecognizeSelector:(SEL)aSelector > does with simpler code. > ... while in the above approach, for each new method a new empty exception > raising version has to be cooked up. Yes, but I have found that I get tired of explaining to green programmers why they are getting the generic error. Instead they get a message that says explicitly that this method must be overridden in their new subclass. The later suggestion someone made about making a nice macro for this would make it less tedious. Generally though, I have a very small number of primitive methods in my abstract classes, with all of the other methods simply calling the primitive ones. > Neither of these do compile-time checking. Yup. But no matter which compile-time approach you attempt you will get compiler warnings somewhere that are incorrect. > Come to think of it, maybe it's possible (I didn't try this) to declare the > protocol in the parent, ignore the compiler warnings when compiling e.g. > the framework with the parent class, and then have the subclasses inherit > the protocol, and then the compiler should realize incomplete implementations > and spew out errors at compile time. I am afraid that this won't work because the compiler will assume that the superclass has implemented the methods that it has advertised itself as supporting, and thus not require the subclass to implement any. Thus at run-time although conformsToProtocol: will return YES, you will still get an error when you try to call one of the methods. This will even be the case if you suppress the compiler warnings by adding the protocol support via a category on the abstract class for which no actual implementation is provided. -- Allan From soward at uky.edu Mon Feb 9 12:32:34 1998 From: soward at uky.edu (John Soward) Date: Thu Nov 3 14:40:54 2005 Subject: NSFileManger In-Reply-To: Message-ID: <199802092036.PAA00310@neworder.cc.uky.edu> At 12:23 PM 2/9/98 -0800, Joseph Andrew Crawley wrote: >Is there a quicker way to read disk contents thsn with the FileManager? >Such as a desk top file. Not really. You could use stat() on Rhapsody, it won't be as portable as NSFileManager ( for use with YB for example), but is lighter weight...NSFileManager seems pretty quick, but consumes a lot of VM... -- John Soward@uky.edu http://neworder.cc.uky.edu/ Sr. Systems Programmer University of Kentucky 'The Midnight Sun Will Burn You Up'...-the Cure From holger at object-factory.com Mon Feb 9 12:36:09 1998 From: holger at object-factory.com (Holger Hoffstaette) Date: Thu Nov 3 14:40:54 2005 Subject: sockets In-Reply-To: References: Message-ID: <199802092036.VAA13583@fafnir.object-factory.com> Joseph Andrew Crawley wrote: > On Mon, 9 Feb 1998, Waqar Malik wrote: > > > [Joseph Andrew Crawley wrote:] > > [ > > [ Where can I find reference for using sockets with rhapsody? I checked > > the [ Mach reference book from Apple but it was no help. > > [ > > Internetworking with TCP/IP Volume III (BSD Socket Version). > > > > ISBN 0-13-260969-x > > > > w. > > > Anything free? Like online documentation. > thanks Joseph Sure: http://kipper.york.ac.uk/~vic/sock-faq/ have fun Holger -- Holger Hoffstaette - holger"at"object-factory.com Object Factory GmbH - http://www.object-factory.com/ From rcfa at cubiculum.com Mon Feb 9 12:50:52 1998 From: rcfa at cubiculum.com (Ronald C.F. Antony) Date: Thu Nov 3 14:40:54 2005 Subject: sockets In-Reply-To: References: Message-ID: <9802092051.AA01781@kannix.cubiculum.com> > Anything free? Like online documentation. As for all UNIX specific stuff, there are the man pages. man -k socket lists the following: accept (2) - accept a connection on a socket bind (2) - bind a name to a socket bindresvport (3N) - bind a socket to a privileged IP port connect (2) - initiate a connection on a socket getsockname (2) - get socket name getsockopt, setsockopt (2) - get and set options on sockets listen (2) - listen for connections on a socket recv, recvfrom, recvmsg (2) - receive a message from a socket send, sendto, sendmsg (2) - send a message from a socket socket (2) - create an endpoint for communication socketpair (2) - create a pair of connected sockets Of course, this is REFERENCE documentation, not an introduction on how to use these... Ronald ============================================================================== "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." G.B. Shaw | rcfa@cubiculum.com | NeXT-mail welcome From rcfa at cubiculum.com Mon Feb 9 12:54:23 1998 From: rcfa at cubiculum.com (Ronald C.F. Antony) Date: Thu Nov 3 14:40:54 2005 Subject: null method convention? In-Reply-To: <98Feb9.042150pst.24193@gateway.ali.bc.ca> References: <98Feb9.042150pst.24193@gateway.ali.bc.ca> Message-ID: <9802092054.AA01796@kannix.cubiculum.com> you wrote: > > Well, that's what > > - (void) doesNotRecognizeSelector:(SEL)aSelector > > does with simpler code. > > ... while in the above approach, for each new method a new empty exception > > raising version has to be cooked up. > > Yes, but I have found that I get tired of explaining to green programmers > why they are getting the generic error. Instead they get a message > that says explicitly that this method must be overridden in their new > subclass. I thought that a "does not conform to protocol" type exception is actually quite explicit... :-) Ronald ============================================================================== "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." G.B. Shaw | rcfa@cubiculum.com | NeXT-mail welcome From Dan_Grillo at 280.com Mon Feb 9 12:53:12 1998 From: Dan_Grillo at 280.com (Dan Grillo) Date: Thu Nov 3 14:40:54 2005 Subject: sockets Message-ID: <199802092058.MAA21456@280.com> > [Joseph Andrew Crawley wrote:] > [ > [ Where can I find reference for using sockets with rhapsody? I checked the > [ Mach reference book from Apple but it was no help. > [ > Internetworking with TCP/IP Volume III (BSD Socket Version). > > ISBN 0-13-260969-x > On Mon, 9 Feb 1998, Waqar Malik wrote: > Anything free? Like online documentation. I suggest you start with a TCP (vs. UDP or raw IP) program for your first socket experience. Everything you need is online for tcp programming: If you're writing a client: man getprotobyname man getservbyname man gethostbyname man socket man setsockopt man bind man connect Add man listen and man accept if you are writing a tcp server. --Dan -- Dan Grillo dan_grillo@280.com 415 575-4020 fax 415 703-7220 From eric at alum.mit.edu Mon Feb 9 13:21:12 1998 From: eric at alum.mit.edu (Eric Hermanson) Date: Thu Nov 3 14:40:54 2005 Subject: sockets References: <9802092051.AA01781@kannix.cubiculum.com> Message-ID: <34DF7348.53267D64@alum.mit.edu> Ronald C.F. Antony wrote: > > Anything free? Like online documentation. > > As for all UNIX specific stuff, there are the man pages. > man -k socket OmniGroup has an excellent public domain framework called OmniNetworking which you can download. It has a bunch of socket, hostname, and other networking code all wrapped in an Obj-C framework. They give you the source code too. See http://www.omnigroup.com under the Developer Resources link. Eric From sanguish at digifix.com Mon Feb 9 13:53:18 1998 From: sanguish at digifix.com (Scott Anguish) Date: Thu Nov 3 14:40:54 2005 Subject: sockets In-Reply-To: References: Message-ID: <199802092153.QAA03896@digifix.com> Joseph Andrew Crawley wrote: > Where can I find reference for using sockets with rhapsody? I checked the > Mach reference book from Apple but it was no help. If you're looking at writing stuff like NNTP or HTTP or stuff like that, have a look at the OmniNetworking Framework. Its available, with source, and _greatly_ simplifies things. In two nights I managed to learn enough of it to write a basic NNTP framework for news. From machead at the-link.net Mon Feb 9 12:50:50 1998 From: machead at the-link.net (Jim Trikakis) Date: Thu Nov 3 14:40:54 2005 Subject: Video Crad Message-ID: <199802100250.UAA22218@shell.the-link.net> I have a PowerTower Pro 225 that I have DR1 running on. I manage to get it to install by taking the primary drive out, put it in a 7500 and doing the install. Once installed on the 7500 I put back into the PPT and presto, it runs. The only thing I find out-of-sync is at start-up the initialization screen is moved to the right and has white horizontal lines running across the screen. Once the desktop appears everything goes back to normal. Screen draws are a slow, sort of like a PPT before you install the IMS Twin Turbo drivers. To the best of my knowledge Rhapsody doesn't support the IMS 128bit/8meg card. Has any of you experience the same conditions? I am thinking of getting a IMS 4MEG card just to see if anything changes. Apple used the 4 MEG card in their 9600/200 and 233 which according to Apple Rhapsody supports. Any comments on this idea? Thanks. Jim Trikakis From kelleysoft at pressenter.com Mon Feb 9 19:34:31 1998 From: kelleysoft at pressenter.com (Greg Betzel) Date: Thu Nov 3 14:40:54 2005 Subject: NSImage & cursor flicker Message-ID: Are there any tricks/techniques for reducing cursor flicker when compositing a NSImage to a on-screen buffered window? I'm using the NSImage for refreshing while dragging things around in a visible window (actually inside a NSScrollView subview), and thus have to composite the image very often. While the image compositing & window flushing processes themselves are quick enough, they end up causing a lot of cursor flicker. It's basically harmless, but still annoying. :) Thanks in advance. Greg Betzel Kelley Software From prak at usl.edu Mon Feb 9 21:58:42 1998 From: prak at usl.edu (Brian Wotring) Date: Thu Nov 3 14:40:54 2005 Subject: gcc In-Reply-To: <199802100225.TAA16147@smtp01.primenet.com> Message-ID: <3.0.5.32.19980209235842.0080a420@pop.usl.edu> At 06:33 PM 2/9/98 -0800, Geoff Coffey wrote: >I just installed Rhapsody today and for starters I just want to compile >and test some simple (text only) C++ programs using g++. I gather from >the documentation that a g++ script which runs gcc is included, but I >don't find it. I found the source for gcc, but not the binary. when I >type "gcc" of "g++" at the command prompt, it says there's no such >command. I can run cc, but it doesn't find any of the g++ header's (like >iostream.h). Can somebody steer me in the right direction? try this: ftp://ftp.peak.org/pub/openstep/mach/apps/devtools/gcc.2.7.2.3.2.I.b.tar.gz I had success with this build of gcc on OS 4.2. I'm not sure if it will work on Rhapsody though. Also, it is possible to use cc for what you are trying to do. Instead of iostream.h, though, the header file is named something different. Sadly, I cannot remember the name of the header file but it is likely that somebody on this list knows. Finding or building a successful gcc, however, would be best. When compiling small C++ programs with cc I frequently encountered linker warnings though the programs seemed to behave normally. | Brian Wotring | prak@usl.edu ( NeXT Mail welcome ) | http://tact.dyn.ml.org From Philippe.Robert at nice.ch Mon Feb 9 23:21:05 1998 From: Philippe.Robert at nice.ch (Philippe C.D. Robert) Date: Thu Nov 3 14:40:54 2005 Subject: Message Framework Message-ID: <9802100833.AA00300@nice.ch> Hello, has anybody managed to get the message framework to work?! If yes, how...;-) regards, Phil --- Philippe C.D. Robert, CS-student @ Uni Bern (Switzerland) OPENSTEP/Rhapsody Programmer Email:Philippe.Robert@nice.ch (NeXTMail & MIME accepted) Homepage:http://www.nice.ch/~phip From dbk at opentext.com Tue Feb 10 08:30:12 1998 From: dbk at opentext.com (Dan Keith) Date: Thu Nov 3 14:40:54 2005 Subject: PThreads on top of either C-threads or Mach threads? Message-ID: Hi, I was wondering whether anyone knows of a free PThreads implementation that runs on top of Mach or C-Threads, ideally on Rhapsody. Thanks for any pointers, bud ! Dan "Bud" Keith dbk@mcs.com ! "You never can tell what goes on down below. This pool might be bigger than you or I know." - Dr. Seuss From anita at tenon.com Tue Feb 10 09:32:43 1998 From: anita at tenon.com (Anita Holmgren) Date: Thu Nov 3 14:40:54 2005 Subject: PThreads on top of either C-threads or Mach threads? In-Reply-To: Message-ID: At 8:26 AM -0800 2/10/98, Dan Keith wrote: >I was wondering whether anyone knows of a free PThreads implementation >that runs on top of Mach or C-Threads, ideally on Rhapsody. > Tenon supports PThreads on top of Mach. This is part of Power MachTen, our Mach/BSD UNIX on MacOS. The pthreads libraries can even be licensed for inclusion into MacOS applications. -Anita Tenon Intersystems 805-963-6983 1123 Chapala Street anita@tenon.com Santa Barbara, CA 93101 http://www.tenon.com From lavoie at cst.ca Tue Feb 10 09:40:59 1998 From: lavoie at cst.ca (Martin-Gilles Lavoie) Date: Thu Nov 3 14:40:54 2005 Subject: CLI access from yellow box Message-ID: Greetings. I'm preparing to quickly compile a set of UNIX deamon programs onto Rhapsody, but would like to add a UI to control them. Anybody can point me out how to call CLI commands from the yellow box? If someone has seen CAPer onto NeXTSTEP/OpenStep, this is pretty much how I want to deal with those CLI executables. MGL From smart at ensuing.com Tue Feb 10 10:08:31 1998 From: smart at ensuing.com (Karl Kraft) Date: Thu Nov 3 14:40:54 2005 Subject: CLI access from yellow box Message-ID: <6bq52v$aa7@satva.ensuing.com> In article , Martin-Gilles Lavoie wrote: > >Greetings. > >I'm preparing to quickly compile a set of UNIX deamon programs onto >Rhapsody, but would like to add a UI to control them. > >Anybody can point me out how to call CLI commands from the yellow box? If >someone has seen CAPer onto NeXTSTEP/OpenStep, this is pretty much how I >want to deal with those CLI executables. > >MGL > > Look at the documentation for NSTask, which is portable between YB on Rhapsody , and YB on Windows. If you want a quick Rhapsody only solution, there is also the system() function. -- --K2 karl@ensuing.com (Karl Kraft) OpenStep/Rhapsody Developer: cogitamus alius. From Dan_Grillo at 280.com Tue Feb 10 11:04:48 1998 From: Dan_Grillo at 280.com (Dan Grillo) Date: Thu Nov 3 14:40:54 2005 Subject: CLI access from yellow box Message-ID: <199802101910.LAA05840@280.com> In article , Martin-Gilles Lavoie wrote: > >Greetings. > >I'm preparing to quickly compile a set of UNIX deamon programs onto >Rhapsody, but would like to add a UI to control them. > >Anybody can point me out how to call CLI commands from the yellow box? If >someone has seen CAPer onto NeXTSTEP/OpenStep, this is pretty much how I >want to deal with those CLI executables. Karl Kraft writes: > > Look at the documentation for NSTask, which is portable between YB on > Rhapsody , and YB on Windows. If you want a quick Rhapsody only solution, > there is also the system() function. Another quicky is popen() and stdio. --Dan -- Dan Grillo dan_grillo@280.com 415 575-4020 fax 415 703-7220 From epeyton at cmg.FCNBD.COM Tue Feb 10 12:06:00 1998 From: epeyton at cmg.FCNBD.COM (Eric Peyton) Date: Thu Nov 3 14:40:54 2005 Subject: Doom II on Rhapsody Message-ID: <199802102006.OAA00884@spawn.cmg.FCNBD.COM> All, I have completed an beta 0.1 (maybe should be called Alpha) port of Doom II to Rhapsody. I need testers. The current version is compiled PPC but does not run on PPC. I do not own a PPC machine and will need a few patient PPC owners who can download the versions as I update them and let me know if they run. The version I have available right now is Intel only - but does seem to work. Here are the specs 1) Supports network play - through the standard Doom II command line parameters. This has barely been tested but it does work. 2) Supports a modified keyboard mapping - just like the original Nextstep port of this thing. Space to fire, z to run, x to open, ", ." to strafe. 3) Does not support sound 4) Uses Interceptor for the display layer - in a window only right now, but soon I hope to have full screen mode working (probably in DR2) 5) No README. I have left the help panel that Omni created in the nib and that should be enough. When this thing goes public it'll have the Doom Faq, a Rhapsody README, etc. etc. 6) I have run through the entire Shareware level (Doom1.wad). I am currently in the process of moving and my version of Doom II is locked inside a box, someplace near the bottom I believe, so I haven't had the ability to test it vs. a Commercial wad, however I don't think there should be a problem. Anyone want to look at this for me? A few Intel users and a few PPC users please. I'll let you know how to get the app when I have a completed list. Eric Peyton epeyton@epicware.com In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move. - Douglas Adams From lhoward at apple.com Tue Feb 10 12:08:14 1998 From: lhoward at apple.com (Luke Howard) Date: Thu Nov 3 14:40:54 2005 Subject: PThreads on top of either C-threads or Mach threads? Message-ID: <9802102008.AA05566@awk.apple.com> You wrote: >I was wondering whether anyone knows of a free PThreads implementation that runs >on top of Mach or C-Threads, ideally on Rhapsody. Depends how much of Pthreads you want. There's a simple implementation at: http://www.critical-angle.com/ldapworld/patch/machthreads.patch.txt Pthreads is a superset of Cthreads, so it may not do all you need (for example, sending signals to threads). I recall someone had ported Pthreads to NEXTSTEP, but I don't remember who. -- Luke -- Luke Howard - lhoward@apple.com - +1 (408) 974-7562 Apple Computer, Inc. - Rhapsody Core Operating Systems Group 2 Infinite Loop, Mail Stop 302-4K, Cupertino, CA 95014 From hhoff at ragnarok.en.uunet.de Tue Feb 10 12:54:08 1998 From: hhoff at ragnarok.en.uunet.de (Holger Hoffstaette) Date: Thu Nov 3 14:40:54 2005 Subject: PThreads on top of either C-threads or Mach threads? In-Reply-To: <9802102008.AA05566@awk.apple.com> References: <9802102008.AA05566@awk.apple.com> Message-ID: <199802102054.VAA13705@ragnarok.en.uunet.de> Luke Howard wrote: >Pthreads is a superset of Cthreads, so it may not do all you need (for >example, sending signals to threads). I recall someone had ported >Pthreads to NEXTSTEP, but I don't remember who. That was Herve Avril of Hutchinson Software. See his home page: http://www.hasc.com/~herve Unfortunately, the link seems to be dead (I have the source here, in case anybody is interested). It would be *very* good if the Rhapsody OS team would pick this up and run with it, because the availability of a solid pthreads implementation would *most* definitely speed up a lot of ports from other platforms (just like SYS.V IPC, sigh). cthreads are somehow not popular enough..however, I'm not sure whether it would make sense to start such a library before CR1 is on the road. Holger From Dan_Grillo at 280.com Tue Feb 10 13:12:21 1998 From: Dan_Grillo at 280.com (Dan Grillo) Date: Thu Nov 3 14:40:54 2005 Subject: PThreads on top of either C-threads or Mach threads? Message-ID: <199802102117.NAA07662@280.com> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1192 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980210/328ab9fa/attachment.bin From ericet at CAM.ORG Tue Feb 10 17:09:20 1998 From: ericet at CAM.ORG (Eric Tremblay) Date: Thu Nov 3 14:40:54 2005 Subject: Rhapsody MiniExamples Message-ID: <199802110109.UAA00265@cam.org> >I'll be adding more as I get the chance (and ideas).. >Anyone interested in contributing? Well, you could place my Localization Example on your site. It's in three languages. Answers most questions as far as localization goes. It's presently on the PEAK site, I can also mail it to you if you need it. --- Eric "E.T." Tremblay E-Mail: ericet@cam.org (NeXTMail - MIME - ASCII) OpenStep and Rhapsody Software Design, Apple Enterprise Alliance Partner Homepage: http://www.cam.org/~ericet From ericet at CAM.ORG Mon Feb 9 17:59:11 1998 From: ericet at CAM.ORG (Eric Tremblay) Date: Thu Nov 3 14:40:54 2005 Subject: Rhapsody MiniExamples In-Reply-To: <199802090659.BAA20940@digifix.com> References: <199802090659.BAA20940@digifix.com> Message-ID: <199802100159.UAA00626@cam.org> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 515 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980209/e4d08bc0/attachment.bin From creactiv at ats.it Wed Feb 11 07:24:54 1998 From: creactiv at ats.it (CreActive snc) Date: Thu Nov 3 14:40:54 2005 Subject: [NSImage imageNamed: ] In-Reply-To: <34BFAFD0.1AFC912E@lorax.com> Message-ID: Hello, all, the class method [NSImage imageNamed: ] seems to return a non-autoreleased object, and different calls to this method returns different (newly allocated) objects. This do not respect allocation policy (objects returned from Yellow APIs are generally autoreleased except for alloc, copy and top-level objects loaded from nib file). Is it bug or a feature? I'd expect to receive every time the same object. Thanks, Maurizio. CreActive snc Via Calamandrei 129 52100 Arezzo Italy Tel +39-575-352440 Fax +39-575-352440 creactiv@ats.it From epeyton at cmg.FCNBD.COM Wed Feb 11 09:00:08 1998 From: epeyton at cmg.FCNBD.COM (Eric Peyton) Date: Thu Nov 3 14:40:54 2005 Subject: Keyboard input Message-ID: <199802111700.LAA06937@spawn.cmg.FCNBD.COM> All, Having problems with the keyboard input on PPC. Does - keyCode: on NSEvent return the same value between a PPC machine and a Intel machine? Anyone have any idea? Eric Eric Peyton epeyton@cmg.fcnbd.com x2-7635 Business Systems Analyst, Derivative Products Systems, Capital Market Systems First Chicago NBD Corporation, One First National Plaza, Chicago IL 60670-0036 In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move. - Douglas Adams From epeyton at cmg.FCNBD.COM Wed Feb 11 09:04:41 1998 From: epeyton at cmg.FCNBD.COM (Eric Peyton) Date: Thu Nov 3 14:40:54 2005 Subject: Nevermind... Message-ID: <199802111704.LAA06952@spawn.cmg.FCNBD.COM> RTFM I didn't read far enough. It says it is right in the docs. My fault. Please ignore my last message. Eric Eric Peyton epeyton@cmg.fcnbd.com x2-7635 Business Systems Analyst, Derivative Products Systems, Capital Market Systems First Chicago NBD Corporation, One First National Plaza, Chicago IL 60670-0036 In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move. - Douglas Adams From gtupar at ctp.com Wed Feb 11 09:06:43 1998 From: gtupar at ctp.com (Georg Tuparev) Date: Thu Nov 3 14:40:54 2005 Subject: DO & firewall Message-ID: <9802111706.AA03244@haring.ctp.com> Hey folks! Did anyone there tried to run a DO connection through a firewall? Thanks -- georg -- --- ------- /\/\ Georg Tuparev / /_ \ Cambridge Technology Partners \ / / Apollo House, Apollolaan 15 \/\/ 1077 AB Amsterdam, The Netherlands Tel: +31(20)575-0492 Fax: +31(20)575-0500 WWW: http://www.ctp.com Mob: +31-655-798196 Hiroshima 45, Tschernobyl 86, Windows 95, Office 97 From epeyton at cmg.FCNBD.COM Wed Feb 11 10:18:46 1998 From: epeyton at cmg.FCNBD.COM (Eric Peyton) Date: Thu Nov 3 14:40:54 2005 Subject: Doom II on Rhapsody In-Reply-To: <199802111712.JAA27638@scv1.apple.com> References: <199802111712.JAA27638@scv1.apple.com> Message-ID: <199802111818.MAA07579@spawn.cmg.FCNBD.COM> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 961 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980211/7c9c62f7/attachment.bin From ddavidso at apple.com Wed Feb 11 11:26:37 1998 From: ddavidso at apple.com (Douglas Davidson) Date: Thu Nov 3 14:40:54 2005 Subject: Doom II on Rhapsody Message-ID: <199802111926.LAA11220@scv3.apple.com> The values returned from charactersIngnoringModifiers aren't comparable using strcmp or isEqual: - for example left arrow returns \Uf702 as it's character. ) Well I don't know a way to compare that value with a known value of some sort. These values are of type unichar. Look at NSEvent.h, near the end, for the unichar values returned for various special keys. Here is a sample code excerpt: NSString *characters = [theEvent charactersIgnoringModifiers]; if ([characters length] == 1) { unichar theChar = [characters characterAtIndex:0]; if (theChar == NSLeftArrowFunctionKey) { doSomething(); } } Doug Davidson Software Quality -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 712 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980211/e0062a5b/attachment.bin From ddavidso at apple.com Wed Feb 11 11:47:27 1998 From: ddavidso at apple.com (Douglas Davidson) Date: Thu Nov 3 14:40:54 2005 Subject: Doom II on Rhapsody Message-ID: <199802111947.LAA27582@scv4.apple.com> Let me try this again. Eric Peyton wrote: >The values returned from charactersIngnoringModifiers aren't comparable >using strcmp or isEqual: - for example left arrow returns \Uf702 as its >character. Well I don't know a way to compare that value with a known >value of some sort. These values are of type unichar. Look at NSEvent.h, near the end, for the unichar values returned for various special keys. Here is a sample code excerpt: NSString *characters = [theEvent charactersIgnoringModifiers]; if ([characters length] == 1) { unichar theChar = [characters characterAtIndex:0]; if (theChar == NSLeftArrowFunctionKey) { doSomething(); } } Doug Davidson Software Quality From Dan_Grillo at 280.com Wed Feb 11 12:11:27 1998 From: Dan_Grillo at 280.com (Dan Grillo) Date: Thu Nov 3 14:40:54 2005 Subject: DO & firewall Message-ID: <199802112016.MAA21356@280.com> Georg Tuparev writes: > Did anyone there tried to run a DO connection through a firewall? Yes. It will only if you open up the right TCP port (sorry, don't remember, it's been a long time) but I think it's 2453. I think this needs to be open both ways: both internal and external machines need to allow establishing a connection. Notifications (when a connection drops, etc) happens via UDP broadcast (I filed a bug against the nmserver a long time ago about this) so they only work in the same broadcast domain. The nmserver on mach listens to broadcast via a really sick arrangement with the kernel; you won't see the UDP socket in netstat -a. Not sure about on NT. If someone in Apple Enterprise Technical Support has the time, they could do a search in Recall (owner=grio, text=do tcp) and should be able to post the more detailed message I wrote about this in 1994 or so. --Dan -- Dan Grillo dan_grillo@280.com 415 575-4020 fax 415 703-7220 From rvameron at stad.dsl.nl Wed Feb 11 16:07:32 1998 From: rvameron at stad.dsl.nl (rene van Amerongen) Date: Thu Nov 3 14:40:54 2005 Subject: My own buttons Message-ID: Hi, I'am looking for information or samples, to make a special kind of button and knobs. Does someone know where I can find this. Thanks Ren? van Amerongen From ricardo at ccsi.canon.com Thu Feb 12 16:01:06 1998 From: ricardo at ccsi.canon.com (Ricardo Parada) Date: Thu Nov 3 14:40:54 2005 Subject: DYLD_LIBRARY_PATH Message-ID: <199802130000.QAA24724@ccsi.canon.com> Hi - In my .cshrc I have the following: setenv DYLD_LIBRARY_PATH /Local/Library/Frameworks Then I launch my application which uses frameworks in that directory but it can't find them. I can't really use any of the standard places (e.g. /LocalLibrary or /LocalDeveloper) because they are mounted directories and I don't have write permissions to them. So I defined a /Local directory but I can't seem to get the system to find my frameworks. I chose /Local because it's similar to directory structure I've been hearing may appear in a future release of Rhapsody: /System, /Network, /Local and ~. Thanks, ricardo From inzet at planet.it Thu Feb 12 17:27:55 1998 From: inzet at planet.it (Gianluca Sordiglioni) Date: Thu Nov 3 14:40:54 2005 Subject: Crashes Message-ID: <19980213012532.AAA6559@pri1-3.planet.it> I wonder how easy is to make a program that crashes pressing a button in Rhapsody. Yestarday I added a method in a controller and I made a mistake adding the wrong object in an array when a button was pressed. When the button was pressed, program bombed. Next I used a tableView and I did not implemented all the necessary accessor methods. The result was a crash when that window was showed. Using the debugger to track these errors is not easy for me. I don't know where objects are in memory, what they contains and, even if I can print an address, how can I use the information. But most important I don't know which messagges are sent or received by and object, so is really hard to debug. I use NSLog() but in case of messagges that call other methods is not easy to keep track the workflow. Any suggestion? Gianluca Sordiglioni Macintosh Programming & Consulting From macko at ubaclu.unibas.ch Fri Feb 13 03:45:28 1998 From: macko at ubaclu.unibas.ch (Ludwig Macko) Date: Thu Nov 3 14:40:54 2005 Subject: gcc on Rhapsody In-Reply-To: <199802120518.WAA20592@smtp03.primenet.com> Message-ID: >I guess my previous post was a little premature, as I've come to realize >that gcc isn't built on the DR1 distribution. The source and scripts are >in /NextDeveloper/Sources/GNU/gcc/. Has anybody successfully built these? >If so, do you remember if you had to bypass the configure script? It (of >course) doesn't recognize powerpc-apple-rhapsody as a target, but I tried >everything I though was a remote possibility without success. Is there >maybe a newer version that supports powerpc and mach, or bsd? If you have >done this, let me know the trick. I have built several other GNU packages >easily, so I'm sure cc is working fine. I posted my trouble building gcc recently. I get the following error message (for those who are experts and might be able to help): macko:5# make bootstrap make CC="cc -traditional-cpp" libdir=/usr/local/lib LANGUAGES=c cc -traditional-cpp -DIN_GCC -g -DNEXT_RELEASE_MAJOR=`(hostinfo | fgrep -i next | tr '\12' ' '; echo $RC_RELEASE) | sed -e 's/.*\([0-9]\)\.[0-9][Jm:].*/\1/'` -DNEXT_RELEASE_MINOR=`(hostinfo | fgrep -i next | tr '\12' ' '; echo $RC_RELEASE) | sed -e 's/.*[0-9]\.\([0-9]\)[Jm:].*/\1/'` -I. -I. -I./config \ -DGCC_INCLUDE_DIR=\"/usr/local/lib/gcc-lib/powerpc-apple-rhapsody/2.7.2.1/includ e\" \ -DGPLUSPLUS_INCLUDE_DIR=\"/usr/local/lib/g++-include\" \ -DLOCAL_INCLUDE_DIR=\"/usr/local/include\" \ -DCROSS_INCLUDE_DIR=\"/usr/local/lib/gcc-lib/powerpc-apple-rhapsody/2.7.2.1/sys- include\" \ -DTOOL_INCLUDE_DIR=\"/usr/local/powerpc-apple-rhapsody/include\" \ -c `echo ./cccp.c | sed 's,^\./,,'` In file included from cccp-mach.c:92, from cccp.c:29: ./config/next/make-support.h:2: parse error before `va_list' In file included from cccp.c:29: cccp-mach.c:212: conflicting types for `sys_errlist' /NextLibrary/Frameworks/System.framework/Headers/bsd/stdio.h:244: previous declaration of `sys_errlist' make[1]: *** [cccp.o] Error 1 make: *** [bootstrap] Error 2 The previous './configure -host=powerpc-apple-rhapsody' worked properly so far. Any ideas besides asking Apple? Ludwig ___________________________________________________________________________ Ludwig Macko macko@ubaclu.unibas.ch Chemical crystallography lab Voice +41 61 267 10 26 Institute for inorganic chemistry Fax +41 61 267 10 18 University of Basel, 4056 Basel, Switzerland This mail message was carried on 100% recycled electrons... From mlaster at galstar.com Fri Feb 13 04:24:18 1998 From: mlaster at galstar.com (Mike Laster) Date: Thu Nov 3 14:40:54 2005 Subject: DYLD_LIBRARY_PATH Message-ID: <199802131324.HAA24741@galaxy.galstar.com> > >Hi - > >In my .cshrc I have the following: > >setenv DYLD_LIBRARY_PATH /Local/Library/Frameworks > >Then I launch my application which uses frameworks in that >directory but it can't find them. I can't really use any >of the standard places (e.g. /LocalLibrary or >/LocalDeveloper) because they are mounted directories and >I don't have write permissions to them. So I defined a >/Local directory but I can't seem to get the system to find >my frameworks. > >I chose /Local because it's similar to directory structure >I've been hearing may appear in a future release of >Rhapsody: /System, /Network, /Local and ~. Actually, what you probably want is DYLD_FRAMEWORK_PATH instead. Unfortunately, it's not documented in the man pages as the release notes claim. Basically, you set DYLD_FRAMEWORK_PATH to /Local/Library/Frameworks For debugging, you also may want to set DYLD_PRINT_LIBRARIES=YES so that you can see which libraries are loaded whenever you launch an application. Be careful with the DYLD_FRAMEWORK_PATH though. I tried using it a couple of days ago to set DYLD_FRAMEWORK_PATH=~/Library/Frameworks on my OpenStep 4.2 box. When I did, I had 2 mysterious kernel panics. It may be related to the fact that ~/Library/Frameworks is on NFS and we were having network problems that day. But, if you see weird crashes, try removing DYLD_FRAMEWORK_PATH and see if they go away. From fabienr at ncmi.com Fri Feb 13 05:54:59 1998 From: fabienr at ncmi.com (Fabien Roy) Date: Thu Nov 3 14:40:54 2005 Subject: Crashes In-Reply-To: <19980213012532.AAA6559@pri1-3.planet.it> References: <19980213012532.AAA6559@pri1-3.planet.it> Message-ID: <199802131356.FAA08105@ignem.omnigroup.com> Using the debugger type "where" after the crash, it will give you the info that you need. Here are some tips from : Developer Conference '94 The Zen of Debugging Julie Zelenski Lecturer, Stanford University Software Mechanic, NeXT Developer Support A Bag of Debugging Tricks Getting the most of out of gdb Edit and gdb partnership Gdb control panel Appears when you "view" from gdb* Uses ipc to communicate with gdb Graphical interface for subset of common gdb commands: Control execution of program Graphically set breakpoints Print expressions Browse stack frames Data Browser Displays backtrace in browser Can inspect arguments and local variables Breakpoint tricks Setting breakpoints Set by name, line number, or *address [Class method] to avoid searching list b [MyObject init] Escape-completion of method names b initDataP Esc-L to show possible completions Commands on breakpoints Execute a set of statements each time the breakpoint is hit silent to suppress the usual announcement cont to go on Useful for - correcting errors while in the debugger - turning on and off other breakpoints - controlling showps for PS output (gdb) comm 1 Type commands for when breakpoint 1 is hit, one per line. End with a line saying just "end". silent showps cont end Conditional breakpoints Stop at breakpoint only if test is true Test can be any valid C or Obj-C expression break cut: if (sender == NXApp) b sizeTo:: if ([self class] == [MyView class]) Could implement simple counter set $count = 100 break 2 if ($count-- == 0) This need is common enough-so there is ignore ignore 4 100 Convenience variables Any name beginning with '$' Implicitly typed and created at first reference Value history- everything you print is assigned a history number $$ is most recent variable in history Registers have convenience variables $fp (frame pointer) $sp (stack pointer) $pc (program counter) info registers dumps all registers Support features Command reader supports emacs-style editing Command history set history save on to save between sessions Defining own commands: define and document Use shell to execute commands inside gdb make will recompile program, next run will notice changed symbol table and reload .gdbinit file to set up your environment first from home directory, then project directory Traipsing through the stack Inspecting frames List calling sequence with backtrace. Frames are numbered from #0 (innermost) upward. Select frame with frame command Get more information from info frame Shows pc, calling frame, saved registers, etc. Print arguments for current frame with info args Print local variables with info locals (Last two require symbols for function/method) Construction of stack frames grows up (higher addresses are innermost frames) $fp is frame pointer *$fp is calling frame pointer *($fp + 4) is saved pc *($fp + 8) is first argument Munging through the runtime system For Objective-C message sends: first argument is receiver p (char *)((struct Object *)*($fp + 8))->isa->name second argument is selector p (char *)sel_getName((unsigned)*($fp +12)) followed by rest of arguments p (int)*($fp +16) Can use the Objc runtime functions such as class_getInstanceMethod and method_getArgumentInfo to get facts about arguments Crash-reporting your own backtrace Using frame information, it's possible to reconstruct a fairly accurate backtrace By catching signals such as segmentation faults and bus errors, you can put in crash-reporting code that dumps that backtrace to a file or mail message (See code at end of slides) Tracing Objective-C message sends Set a breakpoint on objc_msgSend and use stack offsets to print the receiver and message (gdb) b objc_msgSend Breakpoint 5 at 0x50069b4 (gdb) comm Type commands for when breakpoint 5 is hit, one per line. End with a line saying just "end". silent printf "[%s %s]\n", ((*(int *)($sp + 4)) ? ((struct Object *)*($sp + 4))->isa->name : "nil"), sel_getName((unsigned)*($sp + 8)) cont end Slow, but interesting... Detecting messages sent to nil objects Same breakpoint on objc_msgSend, but now use a condition to narrow down to nil receiver b objc_msgSend if ((id)*($sp + 4) == 0) In search of the elusive memory smasher Data breakpoints (They're back in 3.2!!) data-break address size Watchpoints Probably too slow to be usable vm_protect an address against write get protection violation, but must protect entire page Display command to see changes to value As you step/next, it will print value Can also evaluate function or method call display NXMallocCheck() malloc_debug versus MallocDebug lots of overlap, but MallocDebug is more invasive (uses different heap algorithm) Debugging optimized code Can be done, but there may be surprises Local variables may be optimized away Variables moved into registers Two variables may share one register If you really want a variable to be there, declare it volatile Miscellaneous Hook up to already running process with attach Debug an app started from Workspace To give you time to attach, send stop signal as first line of main: kill(getpid(),SIGSTOP); // like Ctrl-Z Debugging program which forks setuid child process (using system, popen, etc.) Error is "sh: privileges disabled because of outstanding IPC access to task" When gdb is debugging a process, it owns the exception ports of that process. When that process forks a child process, gdb would own the exception ports of that child process as well. Because of security issues, the kernel disallows gdb from owning the exceptions ports of a child process that is setuid. When you attempt this, the kernel generates the privileges error message and the system() call fails. Run gdb as root to get around this Parental Advice Don't start with complex explanations. Never assume something is too simple to be wrong. When a hunch and a fact collide, the fact wins. Be systematic. Be persistent. Don't panic. Do not change your code haphazardly trying to track down a bug. If you code was working a minute ago, but now it doesn't-- what was the last thing you changed? Look for one bug at a time. Be critical of your beliefs about your code. It's almost impossible to see a bug in a procedure when your instinct is that the procedure is innocent. Debugging depends on an objective and reasoned approach. Late nights and long hours erode this ability. You'll debug much better on some sleep! Hope that helps --- Fabien L Roy NationsBanc Capital Markets, Inc voice: (704)386-75-76 100 North Tryon Street fax: (704)388-95-64 Charlotte NC 28255 Beeper: 143-9722 (1-800-946-46-46) email: fabienr@ncmi.com (NeXT/Mime) -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 6856 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980213/f2ccf078/attachment.bin From anders at milkweed.com Fri Feb 13 09:14:52 1998 From: anders at milkweed.com (Anders Pytte) Date: Thu Nov 3 14:40:54 2005 Subject: null methods Message-ID: Friends, Here is a summary of most of the suggestions I received for enforcing subclass responsibility. 1. Declare selector in superclass but don't implement it for the superclass. Drawbacks: Compile-time warning; misleading error report; not self documenting. 2. Call [self doesNotRecognizeSelector:_cmd] from abstract method implementation, to signal subclass's negligence. Drawbacks: Misleading error report; not self documenting. 3. Define a protocol containing the methods to be implemented by subclasses. Drawbacks: Not in superclass interface; proliferation of protocal declarations; not self documenting. 4. Raise specific exception in the superclass implementation. Drawbacks: not as simple as other techniques. 5. Create an NSObject category and declare enforcment methods there, call these from abstract method implementation. Drawbacks: ? David Stes pointed out that ObjC does have a subclassResponsibility selector in Object. Unfortunately NSObject does not inherit this. But solution 5 seems clear, simple and consistent with common practice. Perhaps future versions of the foundation frameworks should include the set of enforcement exceptions similar to those described by Fred Stark in his message to this list on 2/9/98. I am using the source he included with his note. It works great! Many thanks to all who responded. Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com ---------------------------------------------------------------- This message was created and sent using the Cyberdog Mail System ---------------------------------------------------------------- From sschaper at inlink.com Fri Feb 13 09:20:01 1998 From: sschaper at inlink.com (Stephen Schaper) Date: Thu Nov 3 14:40:54 2005 Subject: null methods In-Reply-To: Message-ID: Has anyone beside myself had trouble compiling hfsutils? I seem to be missing autoconf, and it seems to be asking for what it thinks is a non-existant shell. ========================================== Unsolicited advertising proofreading fee: $100/instance sschaper@inlink.com www.inlink.com/~sschaper/ ========================================== From bbum at codefab.com Fri Feb 13 09:22:19 1998 From: bbum at codefab.com (Bill Bumgarner) Date: Thu Nov 3 14:40:54 2005 Subject: null methods In-Reply-To: Message-ID: <9802131222.AA196517@mung> There is another alternative; declare an informal protocol An informal protocol is just a category declaration with no corresponding implementation. For informal delegation, you can declare it as a category to NSObject. For informal categories that must be rooted at some particular class (i.e. an informal protocol for use with subclasses of NSView, for example), declare it as a category to the root class. Advantages: Compile time type checking works. Doesn't require an implementation No bogus warnings. ObjC runtime's *normal* unimplemented method stuff works. Disadvantages: Increased logic required in that you need to test objects for implementation of bits of the delegate stuff. Example: @interface NSObject(NSTableViewDelegate) - (void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(int)row; - (BOOL)tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)tableColumn row:(int)row; - (BOOL)selectionShouldChangeInTableView:(NSTableView *)aTableView; - (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(int)row; - (BOOL)tableView:(NSTableView *)tableView shouldSelectTableColumn:(NSTableColumn *)tableColumn; @end b.bum -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1405 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980213/6048c33d/attachment.bin From jesse at metamediasys.com Fri Feb 13 10:50:59 1998 From: jesse at metamediasys.com (Jesse Sng) Date: Thu Nov 3 14:40:54 2005 Subject: Asynchronous pipes In-Reply-To: <9802131222.AA196517@mung> Message-ID: Hi, I'm delurking now and I'm wondering if anyone out there knows of a way to create asynchronous pipes for Unix processes ? I'm looking at NSTask but is it possible for me to use NSTask to launch a process (eg. anything that we can call up on a command line) and then have a two-way pipe to communicate with that process from my own Application ? I understand that NSPipe only allows you to open a pipe in one direction and it forces the other pipe to close. What I want to be able to do is to 'simulate' what anyone of us can do via a terminal session using the command line shell. There has to be a way - since Terminal.app already does it. Jesse Sng From yves at sesuadra.org Fri Feb 13 08:59:38 1998 From: yves at sesuadra.org (Yves De Muyter) Date: Thu Nov 3 14:40:54 2005 Subject: Rhapsody Soliloquies: Rhapsody R.I.P.? by Don Crabb Message-ID: >>>Rhapsody). What a sweet time for Steve this must be. And you think >>>he would just scrap it. There's an entire community built around >>>NeXTstep and OPENSTEP and WebObjects. Many BIG names use NeXT >>>technologies. I won't bother naming names, you should do some >>>research. >> >>I think Matthew had brought a big point here... Why do Jobs stay at >>Apple... what the hell does he want from it?? >> >>I think that Jobs has to get something from Apple... and Matthew got it... > > How can we make such an uninformed assumption? Why must we assume the >malicious? What if Steve wants to help Apple because it's Apple. Maybe >it's like watching your son and daughter start to get along after they've >both matured? I don't think S.Jobs is doing it just for the fun of running a company. When he got fired by apple in the mid-eighties, the first thing he did was starting his own Company, own hardware, own OS, just like Apple was at that time. That company created cool stuff that was many years ahaid of his time and proves that it was totally wrong to fire him. Something along the way Pixar came along, and i think that company fits Jobs best: Not too much competition and competition of creativity and technology rules. Not like the Computer business where best marketing and inferior technologies rule. What Jobs is trying to do, i think, is proving he can run Apple in a good direction (Notice Apple's marketing and technologies, Jobs has his mark on all of this) and then say goodbye to the Computer Business, leaving as the most 'Insanely Great' Computer Expert ever... I know this is speculation but i think it makes much sense. Yves > - Scott > >------ >Scott Stevenson >scott@cacti.org >http://www.cacti.org <-- Macintosh & Rhapsody Resources --- I *really* like adventure games since I played VMS. But my favourite is still Linux From anders at milkweed.com Fri Feb 13 10:15:48 1998 From: anders at milkweed.com (Anders Pytte) Date: Thu Nov 3 14:40:54 2005 Subject: Object vs. NSObject Message-ID: Friends, What factors should I consider when trying to decide whether to derive from Object or NSObject, Thanks, Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com ---------------------------------------------------------------- This message was created and sent using the Cyberdog Mail System ---------------------------------------------------------------- From lamba at acm.org Fri Feb 13 10:22:49 1998 From: lamba at acm.org (Alexander Lamb) Date: Thu Nov 3 14:40:54 2005 Subject: Object vs. NSObject References: Message-ID: <34E48F79.3251B6D2@acm.org> Assuming you are developing in Objective-C, only consider NSObject, unless you want to develop an application compatible with pre-OpenStep software. Today, all Objective-C classes from Foundation, AppKit, EOF, etc... and your code should be somewhere in the NSObject tree (except for some special situations not really needed most of the time). Object was the base class in the NEXTSTEP versions <= 3.3 Alexander Lamb Apple Enterprise Europe Anders Pytte wrote: > > Friends, > > What factors should I consider when trying to decide whether to derive from > Object or NSObject, > > Thanks, > > Anders. > > -- > > Anders Pytte Milkweed Software > Ferguson Hill Voice: (802) 472-5142 > Cabot VT 05647 Internet: anders@milkweed.com > > ---------------------------------------------------------------- > This message was created and sent using the Cyberdog Mail System > ---------------------------------------------------------------- From doug at thoughtful.com Fri Feb 13 10:17:45 1998 From: doug at thoughtful.com (Douglas Simons) Date: Thu Nov 3 14:40:54 2005 Subject: multiple NSZones? In-Reply-To: <98Feb5.012441pst.24194@gateway.ali.bc.ca> References: <98Feb5.012441pst.24194@gateway.ali.bc.ca> Message-ID: <9802131817.AA21851@elessar.thoughtful.com> Allan Noordvyk wrote: > Those of you planning to deploy on NT should be aware > that zones are currently a Mach-only thing. There is > only a single NSZone on NT and thus you will get none > of the benefits pointed out by Mr. Antony on that > platform. Which is what I think he is getting at in the > quoted paragraph. > > Thus, on NT you can't give your zones distinct names for > debugging and profiling purposes. The function is still > there, it is just a no-op. Does this mean that destroying zones doesn't work either? Or just that they don't have names? If zones don't exist at all (as you seem to suggest) then I suppose destroying a zone will also be a no-op, which could have serious implications (i.e. Big Time Memory Leaks) in apps which sometimes use that mechanism to dispose of memory. Does anyone know for sure what happens in this case? Thanks, Doug Simons Thoughtful Software From anders at milkweed.com Fri Feb 13 10:46:24 1998 From: anders at milkweed.com (Anders Pytte) Date: Thu Nov 3 14:40:54 2005 Subject: null methods Message-ID: On Fri, Feb 13, 1998 12:22 PM, Bill Bumgarner wrote: There is another alternative; declare an informal protocol An informal protocol is just a category declaration with no corresponding implementation. For informal delegation, you can declare it as a category to NSObject. For informal categories that must be rooted at some particular class (i.e. an informal protocol for use with subclasses of NSView, for example), declare it as a category to the root class. Bill, Atleast one other person did suggest this, I realize in retrospect, but I did not understand the difference till I went back to the language ref and studied informal protocols again. Sounds like they would work great! One could name the category something like "MustOverride" to get subclassers to pay attention. Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com ---------------------------------------------------------------- This message was created and sent using the Cyberdog Mail System ---------------------------------------------------------------- From allan at ali.bc.ca Fri Feb 13 10:43:37 1998 From: allan at ali.bc.ca (Allan Noordvyk) Date: Thu Nov 3 14:40:54 2005 Subject: multiple NSZones? In-Reply-To: <9802131817.AA21851@elessar.thoughtful.com> References: <98Feb5.012441pst.24194@gateway.ali.bc.ca> <9802131817.AA21851@elessar.thoughtful.com> Message-ID: <98Feb13.024532pst.24197@gateway.ali.bc.ca> Douglas Simons wrote: > Does this mean that destroying zones doesn't work either? Or just that they > don't have names? If zones don't exist at all (as you seem to suggest) then I > suppose destroying a zone will also be a no-op, which could have serious > implications (i.e. Big Time Memory Leaks) in apps which sometimes use that > mechanism to dispose of memory. > > Does anyone know for sure what happens in this case? I don't currently make use of zone destruction to free memory so this question did not occur to me. From my limited information, however, I would bet that it is a no-op on NT and that you are correct about the leak danger. I have included below the exact question we did pose to Apple Enterprise tech support and their exact reply so folks can reach their own conclusions... --------------8<--------------------------------- From: Bo Liang Date: Fri, 19 Dec 97 17:09:23 -0800 To: allan@ali.bc.ca Subject: NSZone on Windows NT Question for Apple Enterprise I have an NSZone test program, which does something like this: 1. Creates two named zone - Zone-A and Zone-B using NSCreateZone and NSSetZoneName; 2. Create two objects in each zone - object-a-1, object-a-2, object-b-1, object-b-2 with allocWithZone: 3. Get the zone pointers for each object with NSZoneFromPointer 4. The zone pointers for object-a-1 and object-a-2 should be identical; and the zone pointers for object-b-1 and object-b-2 should be identical; 5. The zone names for the above zone pointers should be Zone-A and Zone-B (NSZoneName); The program passed the above test on OPENSTEP4.2, but failed on NT platform (the program ran, but gave wrong result). Here is my question : Have NSZone related routines been ported to NT, and supposed to work properly, or the concept of NSZone doesn't apply to Windows NT? Thanks in advance. -----------------8<----------------------------------------- From: Randy Knolle Date: Mon, 22 Dec 1997 12:07:23 -0800 To: Allan Noordvyk Subject: [116393]NSZone on Windows NT Memory management, as it is implemented under NT, does not support NSZones. NSZone is a Mach thing. Under NT there is only one zone, the default zone. ------------------- Randy Knolle Enterprise Technical Support Apple Computer, Inc. From anders at milkweed.com Fri Feb 13 11:06:34 1998 From: anders at milkweed.com (Anders Pytte) Date: Thu Nov 3 14:40:54 2005 Subject: cost of mutability Message-ID: Friends, Thanks for the bracing warnings about Object. Here is another question. What is the cost of mutability, particularly with NSString/NSMutableString? If I plan to allocate many strings (thousands), and only rarely need to change a string value, would I be better off using NSString, and simply replacing (rather than mutating) it when I need to change its value? Or would my code be just as efficient to use NSMutableString? Many thanks, Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com ---------------------------------------------------------------- This message was created and sent using the Cyberdog Mail System ---------------------------------------------------------------- From carlos at ccsi.canon.com Fri Feb 13 11:00:05 1998 From: carlos at ccsi.canon.com (Carlos Parada) Date: Thu Nov 3 14:40:54 2005 Subject: Entry Point Not Found Message-ID: <34E49835.9364B108@ccsi.canon.com> I'm trying to force a Framework to load in my NT application (OS4.2). Since this framework had only categories, I added a DummyClass to reference to force the load. When the app is launching I get the following error: MyApplication.exe - Entry Point Not Found The procedure entry point .objc_class_name_DummyClass could not be located in the dynamic link library FoundationExtensions.dll I have done make clean & install to my FoundationExtensions.framework (which includes the DummyClass) hoping this would solve my problem without luck. Anybody has seen this problem? Thanks Carlos Parada From arti at lava.net Fri Feb 13 11:07:29 1998 From: arti at lava.net (Art Isbell) Date: Thu Nov 3 14:40:54 2005 Subject: multiple NSZones? References: <9802131817.AA21851@elessar.thoughtful.com> Message-ID: <9802131907.AA00861@lava.net> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1887 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980213/9a169b9a/attachment.bin From bbum at codefab.com Fri Feb 13 11:24:40 1998 From: bbum at codefab.com (Bill Bumgarner) Date: Thu Nov 3 14:40:54 2005 Subject: cost of mutability In-Reply-To: Message-ID: <9802131424.AA4078415@mung> You will gain a HUGE amount of effeciency with NSString if there is a lot of overlap amongst your strings. NSString and some of the other immutable value classes optimize memory usage by hashing instances that contain the same value and only ever allowing a single instance with that value to exist at any given time. b.bum Begin forwarded message: X-POP3-Rcpt: bbum@pathos Date: Fri, 13 Feb 1998 11:11:12 -0800 (GMT-0800) Originator: rhapsody-dev@omnigroup.com From: "Anders Pytte" To: Multiple recipients of list Subject: cost of mutability X-Comment: To unsubscribe, follow directions at http://www.omnigroup.com/MailArchive/ X-Mailer: Cyberdog/2.0 Friends, Thanks for the bracing warnings about Object. Here is another question. What is the cost of mutability, particularly with NSString/NSMutableString? If I plan to allocate many strings (thousands), and only rarely need to change a string value, would I be better off using NSString, and simply replacing (rather than mutating) it when I need to change its value? Or would my code be just as efficient to use NSMutableString? Many thanks, Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1590 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980213/bbc752dd/attachment.bin From arti at lava.net Fri Feb 13 12:05:35 1998 From: arti at lava.net (Art Isbell) Date: Thu Nov 3 14:40:54 2005 Subject: Crashes References: <199802131356.FAA08105@ignem.omnigroup.com> Message-ID: <9802132005.AA01160@lava.net> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1874 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980213/061412eb/attachment.bin From tjw at omnigroup.com Fri Feb 13 12:56:05 1998 From: tjw at omnigroup.com (Timothy J. Wood) Date: Thu Nov 3 14:40:54 2005 Subject: multiple NSZones? In-Reply-To: <9802131817.AA21851@elessar.thoughtful.com> References: <9802131817.AA21851@elessar.thoughtful.com> Message-ID: <199802132056.MAA16326@ignem.omnigroup.com> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 951 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980213/0a36eb9f/attachment.bin From tjw at omnigroup.com Fri Feb 13 13:00:28 1998 From: tjw at omnigroup.com (Timothy J. Wood) Date: Thu Nov 3 14:40:55 2005 Subject: cost of mutability In-Reply-To: <9802131424.AA4078415@mung> References: <9802131424.AA4078415@mung> Message-ID: <199802132100.NAA16435@ignem.omnigroup.com> Err, unless they added this in Rhapsody, this is not true for NSString. In fact, I had to write a program that took a customers huge .eomodeld files and wrote a NSArchived version of the contents (by putting all of the entity and stored proc plists into on big plist) after having uniqued all of the NSStrings, NSArrays and NSDictionaries. This cut down on memory usage by a pretty large amount, mostly due to not having 10,000 copies of strings like 'externalName' and such. NSStrings certainly aren't uniqued in OpenStep/4.2 -- have you seen something in Rhapsody that indicates this has been changed? -tim Begin forwarded message: Date: Fri, 13 Feb 1998 11:25:00 -0800 (GMT-0800) Reply-To: bbum@codefab.com From: "Bill Bumgarner" To: Multiple recipients of list Subject: Re: cost of mutability You will gain a HUGE amount of effeciency with NSString if there is a lot of overlap amongst your strings. NSString and some of the other immutable value classes optimize memory usage by hashing instances that contain the same value and only ever allowing a single instance with that value to exist at any given time. b.bum Begin forwarded message: X-POP3-Rcpt: bbum@pathos Date: Fri, 13 Feb 1998 11:11:12 -0800 (GMT-0800) Originator: rhapsody-dev@omnigroup.com From: "Anders Pytte" To: Multiple recipients of list Subject: cost of mutability X-Comment: To unsubscribe, follow directions at [An attachment was originally included here]http://www.omnigroup.com/MailArchive/ X-Mailer: Cyberdog/2.0 Friends, Thanks for the bracing warnings about Object. Here is another question. What is the cost of mutability, particularly with NSString/NSMutableString? If I plan to allocate many strings (thousands), and only rarely need to change a string value, would I be better off using NSString, and simply replacing (rather than mutating) it when I need to change its value? Or would my code be just as efficient to use NSMutableString? Many thanks, Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 2481 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980213/df0b0e01/attachment.bin From bbum at codefab.com Fri Feb 13 13:07:55 1998 From: bbum at codefab.com (Bill Bumgarner) Date: Thu Nov 3 14:40:55 2005 Subject: cost of mutability In-Reply-To: <199802132100.NAA16435@ignem.omnigroup.com> Message-ID: <9802131607.AA5504121@mung> Ooops.... I thought NSString's were unique'd. Numbers are, aren't they? I know that NSCalendarDate instances are not. I know that there are a number of different varieties of NSString-- NSConstantString (compiled constants) are unique'd perhaps? b.bum -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 312 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980213/90bf27a4/attachment.bin From tjw at omnigroup.com Fri Feb 13 13:12:29 1998 From: tjw at omnigroup.com (Timothy J. Wood) Date: Thu Nov 3 14:40:55 2005 Subject: cost of mutability In-Reply-To: <9802131607.AA5504121@mung> References: <9802131607.AA5504121@mung> Message-ID: <9802132112.AA07419@frungi.omnigroup.com> Some numbers are -- anything returned from '[NSNumber numberWithCharacter:]' was uniqued last I looked. I don't remember if '[NSNumber numberWithBool:]' returns a unqiued results.... I would sure hope so. I'm not sure if NSConstantStrings are uniqued. There may be some level of uniquing, but that could only be done by the linker/compiler. There would be limits to this uniquing (since you couldn't unique across frameworks, for example). -tim Begin forwarded message: From: "Bill Bumgarner" Date: Fri, 13 Feb 98 16:07:55 -0500 To: "Timothy J. Wood" Subject: Re: cost of mutability Cc: Multiple recipients of list , bbum@codefab.com Ooops.... I thought NSString's were unique'd. Numbers are, aren't they? I know that NSCalendarDate instances are not. I know that there are a number of different varieties of NSString-- NSConstantString (compiled constants) are unique'd perhaps? b.bum -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1059 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980213/3624db9e/attachment.bin From ddavidso at apple.com Fri Feb 13 13:13:36 1998 From: ddavidso at apple.com (Douglas Davidson) Date: Thu Nov 3 14:40:55 2005 Subject: Crashes Message-ID: <199802132113.NAA07700@scv2.apple.com> Art wrote: >Also, the frame pointer offsets work for m68k and i386 CPUs, >but may need to be modified for ppc. They definitely will need to be modified for ppc (try adding 16 to each offset). In addition, unless you compile without optimization (-O0), you are likely to find on ppc that function and method arguments are not always preserved on the stack. This is just another case of the usual caveat about the problems gdb may encounter with optimized code. Douglas Davidson Software Quality From donarb at wolfenet.com Fri Feb 13 13:49:24 1998 From: donarb at wolfenet.com (Don Arbow) Date: Thu Nov 3 14:40:55 2005 Subject: 640x480 resolution Message-ID: Hello all, I just installed DR1 on my 9500/132. So far no problems, except I have this problem with 640x480 resolution. I have an Apple 20" MultiSync monitor and an Imagine 128 video card. Running Interface Builder takes a bit of contortions in order to connect outlets and such. I long for the vast screen real estate that I enjoy in MacOS (1152x870). I browsed the archives of both rhapsody-talk and rhapsody-dev for ideas, attempting any solutions mentioned. I have downloaded and installed ModeSwitch but the only option shown in the window is 640x480. I have modified the Monitors/Sound panel numerous times trying different resolutions hoping to find one that will work, so far no luck. Anybody out there have an idea how I can fix this, maybe hacking into one of the startup files and hardcoding a valid resolution? Would a multisync adapter solve this? Thanks, Don -- Don Arbow, Partner, CTO EveryDay Objects, Inc. mailto:donarb@wolfenet.com http://www.edo-inc.com From bbum at codefab.com Fri Feb 13 13:54:59 1998 From: bbum at codefab.com (Bill Bumgarner) Date: Thu Nov 3 14:40:55 2005 Subject: cost of mutability In-Reply-To: <9802132112.AA07419@frungi.omnigroup.com> Message-ID: <9802131654.AA5916923@mung> /* * I'm not sure if NSConstantStrings are uniqued. There may be some * level of uniquing, but that could only be done by the linker/compiler. * There would be limits to this uniquing (since you couldn't unique * across frameworks, for example). */ Speaking of unique'ing across frameworks; how are selector names uniqued? The end result is a global unique'd namespace.... obviously, it must happen upon loading of each objc segment (or whatever on NT). Likewise, NSStringFromSelector() likely generate NSString's of ranges of the unique namespace? I'm surprised [enough that I thought this WAS the case] a similar mechanism (ranges of a big pile of string in memory) isn't used across EOs. b.bum -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 851 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980213/b8476b7c/attachment.bin From popadich at umich.edu Fri Feb 13 14:06:26 1998 From: popadich at umich.edu (popadich) Date: Thu Nov 3 14:40:55 2005 Subject: How to handle events Message-ID: <199802132203.RAA12892@ghidrah.rs.itd.umich.edu> I have been playing around with rhapsody now for about a month and I am quite pleased with how easy it is to build simple applications. I have completed most of the tutorials in 'Discovering Openstep:A developer tutorial', and have started to explore other parts of the Appkit. Recently I have been trying to create a custom view where I can handle mouseDown and mouse dragging events. I have implemented a custom view with a mouseDown method which looks very much like the example in Apple's documentation for NSView. The problem I'm having is that everything seems to work fine if I click and drag the mouse, but if I just click the mouse and then release it I don't seem to consistantly get mouse up events. I think I'm getting a mouse up every other time, but I can't be certain because everything starts acting strange at this point. My code looks Like this... - (void)mouseDown:(NSEvent *)theEvent { BOOL keepOn = YES; BOOL isInside = YES; NSPoint mouseLoc; do { mouseLoc = [self convertPoint:[theEvent mouseLocationInWindow fromView:nil]]; switch ([theEvent type]) { case NSLeftMouseDragged: [self dragObjectAround]; break; case NSLeftMouseUp: [self doSomething]; NSBeep(); keepOn = NO; break; default: /* Ignore any other kind of event. */ break; } theEvent = [[self window] nextEventMatchingMask: NSLeftMouseUpMask | NSLeftMouseDraggedMask]; }while (keepOn); return; } Any help would be greatly appreciated. --------------------------------------------------------------- Alex Popadich popadich@umich.edu Health Media Research Lab (313) 763-6099 Comprehensive Cancer Center University of Michigan "Duct tape is like the Force. It has a light side, a dark side, and it holds the universe together...." -- Carl Zwanzig --------------------------------------------------------------- From hhoff at ragnarok.en.uunet.de Fri Feb 13 14:00:40 1998 From: hhoff at ragnarok.en.uunet.de (Holger Hoffstaette) Date: Thu Nov 3 14:40:55 2005 Subject: cost of mutability In-Reply-To: <9802132112.AA07419@frungi.omnigroup.com> References: <9802132112.AA07419@frungi.omnigroup.com> Message-ID: <199802132200.XAA01301@ragnarok.en.uunet.de> "Timothy J. Wood" wrote: >Some numbers are -- anything returned from '[NSNumber numberWithCharacter:]' >was uniqued last I looked. I don't remember if '[NSNumber numberWithBool:]' >returns a unqiued results.... I would sure hope so. Unfortunately, at least on Mach 4.2 the following: a = [NSNumber numberWithBool: YES]; b = [NSNumber numberWithBool: YES]; NSLog(@"0x%x - 0x%x", a, b); a = [NSNumber numberWithChar: 10]; b = [NSNumber numberWithChar: 10]; NSLog(@"0x%x - 0x%x", a, b); a = [NSNumber numberWithInt: 655351]; b = [NSNumber numberWithInt: 655351]; NSLog(@"0x%x - 0x%x", a, b); will print: hhoff>a.out Feb 13 22:50:55 a.out[1290] 0xcf44 - 0xcf70 Feb 13 22:50:55 a.out[1290] 0xcfd4 - 0xd9e8 Feb 13 22:50:55 a.out[1290] 0xdce4 - 0xcf80 hhoff> No uniqueing at all, it seems. :( NSConstantStrings (i.e. multiple @"foo"s) definitely are uniqued on a per-module basis by the linker (I think they're put into some read-only data segment). Holger -- hhoff"at"ragnarok.en.uunet.de (NeXTMail, MIME) 'Where I come from it's important to develop stuff that doesn't suck.' -- David Young From tjw at omnigroup.com Fri Feb 13 15:00:35 1998 From: tjw at omnigroup.com (Timothy J. Wood) Date: Thu Nov 3 14:40:55 2005 Subject: cost of mutability In-Reply-To: <9802131654.AA5916923@mung> References: <9802131654.AA5916923@mung> Message-ID: <199802132300.PAA20310@ignem.omnigroup.com> From: "Bill Bumgarner" >Speaking of unique'ing across frameworks; how are selector names uniqued? This should all be done by the linker (at least for selectors known at link time). When you build a framework or executable, the last thing done by the compiler driver is to run /bin/objcunique on the output. This should look at the input file and remove any selectors that are defined in any frameworks it links. Thus, if you use the selector 'retain' in your code and you link Foundation, any reference you make will actually be a reference to the version defined in Foundation. Of course, I haven't done extensive testing to verify that this is the case so any input from the compiler engineers at Apple would be interesting. >Likewise, NSStringFromSelector() likely generate NSString's of ranges of the unique namespace? You'd sure wish that this was the case, but no. If you compile the following program on OpenStep/Mach 4.2 or Rhapsody/DR1 you get 'not uniqued'. #import main() { NSAutoreleasePool *pool; NSString *string1, *string2; pool = [[NSAutoreleasePool alloc] init]; string1 = NSStringFromSelector(@selector(retain)); string2 = NSStringFromSelector(@selector(retain)); if (string1 == string2) { printf("uniqued\n"); } else { printf("not uniqued\n"); } [pool release]; } The problem is that the Foundation engineers can't really know ahead of time that uniquing will work as expected for a particular program. For example, while it might be efficient to us uniquing for a program that only uses NSStringFromSelector on a few selectors, it could well raise the memory usage of a program that loops over all of the selectors in all of the classes. In some cases, you do know that uniqing will help. For example, the NSNumber classes for booleans and characters. There are so few of these that it can't hurt to instantiate all of the instances. The only other big case that I've seen is when loading .eomodelds. It would be really nice if the EOF team used something like the code I sent them to build an optimized uniqued archive of the .eomodeld. This is probably a loose in development, but for deployment it is a huge win. -tim -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 2380 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980213/752c023d/attachment.bin From tjw at omnigroup.com Fri Feb 13 15:01:53 1998 From: tjw at omnigroup.com (Timothy J. Wood) Date: Thu Nov 3 14:40:55 2005 Subject: cost of mutability In-Reply-To: <199802132200.XAA01301@ragnarok.en.uunet.de> References: <199802132200.XAA01301@ragnarok.en.uunet.de> Message-ID: <199802132301.PAA20354@ignem.omnigroup.com> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1828 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980213/c7673780/attachment.bin From carlos at ccsi.canon.com Fri Feb 13 15:02:46 1998 From: carlos at ccsi.canon.com (Carlos Parada) Date: Thu Nov 3 14:40:55 2005 Subject: Entry Point Not Found References: <34E49835.9364B108@ccsi.canon.com> <9802132041.AA28564@cube> Message-ID: <34E4D116.6C972578@ccsi.canon.com> Thanks guys, Art's comments made me realize my DummyClass was not in FoudationExtensions.dll and Paul's made me check my path. :-) My problem was my path. It listed an 'outdated' directory before the real one. So my application was trying to load an old FoundationExtensions.dll which did not contained my DummyClass. Thanks Carlos Parada PSW Techonologies Paul R. Summermatter wrote: > > Carlos, > > Where is the .dll located? If this is not a dynamically > loaded bundle, I believe the .dll must be in one of the directories > referenced by the 'Path' environment variable. If you don't wish to > use the standard C:\NeXT\NextLibrary\Executables, you can modify > these variables to include the directory where the .dll is. > > Regards, > Paul Art Isbell wrote: > Maybe your dummy class isn't substantial enough to result in > code being generated. > I wonder whether something like this would work and allow you to > eliminate your dummy class: > > In your main module: > #ifdef WIN32 > inline extern void _referenceFramework(void) { > static id a; > a = dummy(); > } > #endif WIN32 > > In your framework: > #ifdef WIN32 > id dummy(void) { return nil; } > #endif WIN32 > > Apparently, the inline extern declaration results in no code being > generated if _referenceFramework isn't referenced, but its > reference to dummy() should cause the DLL defining dummy() to be > loaded. BTW. This doesn't work if the function is declared inline. From rcfa at cubiculum.com Fri Feb 13 15:09:02 1998 From: rcfa at cubiculum.com (Ronald C.F. Antony) Date: Thu Nov 3 14:40:55 2005 Subject: null methods In-Reply-To: References: Message-ID: <9802132309.AA06684@kannix.cubiculum.com> > There is another alternative; declare an informal protocol After all this time, it still escapes me what the point of informal protocols are. Maybe, it's the "informal" that throws me off.... Either I want a protocol, and then I want it to be "formal" (why else bother?), or I don't need it. Somehow declaring a category somewhere in the NSObject class, seems like a hack. It's not easily visible, it's not being enforced, etc. Formal protocols may be a pain, but at least they do what they should do. if I check in the abstract superclass' init method if self (an instance of a subclass) conforms to a protocol, I can even enforce that all subclasses must adopt a particular protocol, independently of how the protocol itself evolves. What am I missing here? Ronald ============================================================================== "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." G.B. Shaw | rcfa@cubiculum.com | NeXT-mail welcome From cmh at greendragon.com Fri Feb 13 15:54:53 1998 From: cmh at greendragon.com (Chris Hanson) Date: Thu Nov 3 14:40:55 2005 Subject: Documentation style (was Re: cost of mutability) In-Reply-To: <9802132112.AA07419@frungi.omnigroup.com> Message-ID: At 3:22 PM -0600 2/13/98, Timothy J. Wood wrote: >>>> Some numbers are -- anything returned from '[NSNumber numberWithCharacter:]' was uniqued last I looked. I don't remember if '[NSNumber numberWithBool:]' returns a unqiued results.... I would sure hope so. <<<< So, just what is the customary documentation style for indicating class, instance, etc. methods in discussion. I personally like the way Smalltalk people have done it for years: NSNumber>C>numberWithBool: is NSNumber's numberWithBool: class method FooBar>I>doSomething:with: is FooBar's doSomething:with: instance method But what's the custom for Objective-C? (Or, if there isn't one, what do people think about adopting this?) From rcfa at cubiculum.com Fri Feb 13 15:02:59 1998 From: rcfa at cubiculum.com (Ronald C.F. Antony) Date: Thu Nov 3 14:40:55 2005 Subject: multiple NSZones? In-Reply-To: <9802131817.AA21851@elessar.thoughtful.com> References: <9802131817.AA21851@elessar.thoughtful.com> Message-ID: <9802132303.AA06663@kannix.cubiculum.com> > Does this mean that destroying zones doesn't work either? Or just > that they don't have names? If zones don't exist at all (as you > seem to suggest) then I suppose destroying a zone will also be a > no-op, which could have serious implications (i.e. Big Time Memory > Leaks) in apps which sometimes use that mechanism to dispose of > memory. > > Does anyone know for sure what happens in this case? I don't know, I don't work on NT, BUT I would consider it bad practice to use destroy zone to free memory. It is good practice to free all objects, and be aware of who and what has or has not pointers to things. Once all objects in a zone are freed, then you can free the zone, if the runtime system doesn't do that automatically (I would have to read up on this again). Just destroying a zone isn't clean. It is about the same or worse, as not cleaning up all memory before exiting an app. Of course, it shouldn't matter, but as a matter of principle, not app should ever exit without cleaning up or destroy zones that haven't been cleaned up first. Just my opinion. Ronald ============================================================================== "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." G.B. Shaw | rcfa@cubiculum.com | NeXT-mail welcome From brianw at sounds.WA.COM Fri Feb 13 16:14:59 1998 From: brianw at sounds.WA.COM (Brian Willoughby) Date: Thu Nov 3 14:40:55 2005 Subject: null methods In-Reply-To: <9802132309.AA06684@kannix.cubiculum.com> References: <9802132309.AA06684@kannix.cubiculum.com> Message-ID: <199802140015.QAA23723@sounds.WA.COM> In my experience, informal protocols provide minimal documentation of a class or delegate and primarily enable compile time checking of parameters. I have never needed to create an informal protocol, but I am happy that NeXT provided them as documentation of certain of their delegate methods. It seems that informal protocols are a reminder that there was once a time before protocols, when only categories were available, and the term "informal protocol" was invented after protocols as a clearer way of explaining the existence of these legacy categories. I may be mistaken about the order in which Objective C evolved, so I will leave it to others to elaborate if relevant... Brian Willoughby Begin forwarded message: After all this time, it still escapes me what the point of informal protocols are. Maybe, it's the "informal" that throws me off.... Either I want a protocol, and then I want it to be "formal" (why else bother?), or I don't need it. Somehow declaring a category somewhere in the NSObject class, seems like a hack. It's not easily visible, it's not being enforced, etc. Formal protocols may be a pain, but at least they do what they should do. if I check in the abstract superclass' init method if self (an instance of a subclass) conforms to a protocol, I can even enforce that all subclasses must adopt a particular protocol, independently of how the protocol itself evolves. What am I missing here? From ddavidso at apple.com Fri Feb 13 16:22:37 1998 From: ddavidso at apple.com (Douglas Davidson) Date: Thu Nov 3 14:40:55 2005 Subject: null methods Message-ID: <199802140022.QAA34438@scv4.apple.com> Ronald asks why one might use an informal protocol. The standard example is the case of delegate methods. One wishes to have all of the possible delegate methods for a class prototyped, but the delegate must not be forced to implement any or all of them. Perhaps there should be some more formal mechanism for this--a "non-binding" protocol, if you will--but for now, the informal protocol, usually a category on NSObject, is what is used. There are other instances in which informal protocols are used, but they usually involve coordination with an object of unknown class, similar to that between an object and its delegate. Douglas Davidson Software Quality From jhendry at cmg.fcnbd.com Fri Feb 13 16:32:10 1998 From: jhendry at cmg.fcnbd.com (Jonathan Hendry) Date: Thu Nov 3 14:40:55 2005 Subject: Informal protocols (was Re: null methods) References: <199802140015.QAA23723@sounds.WA.COM> Message-ID: <199802140032.SAA03302@isdnjhendry.cmg.fcnbd.com> Informal protocols are useful if you want to specify optional API. If you use a formal protocol to define the API, the whole thing will have to be implemented. If you use an informal protocol, you can pick which methods you want to implement. The best example would be the browser datasource protocols, where the delegate chooses which method to implement depending on how lazy it wants to be. With formal protocols, there'd have to be , , etc. - Jon From tjw at omnigroup.com Fri Feb 13 16:33:35 1998 From: tjw at omnigroup.com (Timothy J. Wood) Date: Thu Nov 3 14:40:55 2005 Subject: Documentation style (was Re: cost of mutability) In-Reply-To: References: Message-ID: <199802140033.QAA22943@ignem.omnigroup.com> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1809 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980213/ed4899dd/attachment.bin From manowar at engin.umich.edu Fri Feb 13 16:55:03 1998 From: manowar at engin.umich.edu (manowar@engin.umich.edu) Date: Thu Nov 3 14:40:55 2005 Subject: Unretained object in dictionary Message-ID: <199802140055.TAA09258@sauropod.engin.umich.edu> Does anyone know, how I can add an object to dictionary without the Dictionary sending it the retain message? Or is there removeObject:forKey: message that does not send a release message? Thanks, -- Kris From stark at easynet.fr Fri Feb 13 19:19:31 1998 From: stark at easynet.fr (stark@easynet.fr) Date: Thu Nov 3 14:40:55 2005 Subject: null methods References: Message-ID: <9802140320.AA06844@easynet.fr> Hi, This was intended as a personal e-mail, but it may interest others out there... [crunch] > Perhaps future versions of the foundation frameworks should include the set > of enforcement exceptions similar to those described by Fred Stark in his > message to this list on 2/9/98. I am using the source he included with his > note. It works great! I am very pleased that you found this stuff usefull (hope you made the few corrections I should do in my own source). This is not cutting edge science, but having a unified way to do things is of tremendous help as a project evolves. I found that I spend 80% of my debugging time to narrow the very same bugs over and over. Having a specific formal workaround for 'standard' bugs is very helpfull. This may seem arrogant, but here are some others useful things I came with, after several years of ObjC: * Always re-implement designated initializer. in subclasses. If it cannot be done in a meaningfull way, use a *_NOCALL macro to flag it. This means that init should always be re-implemented in direct NSObject subclasses, for instance. * In order to be able to formally follow the preceding rule, I always declare the designated initializer, in @interface section, as the first instance method, with a comment explicitely flagging it. * Designated init is the first method of an @implementation, followed by alternates inits, then by overriden 'NOCALL' superclass designated init if neccessary, then by the dealloc method. Having inits and dealloc grouped helps me to keep retain/release in sync. * I avoid as much as possible to call methods designed to be re-implemented by subclasses in init. * All classes in an application starts by the same prefix. This was very important in NEXTSTEP, but is still helpfull in OpenStep for faster understanding of source code, backtraces and ObjectAlloc stats. * All classes in an application inherit from the same subclass of NSObject (ie: ALMObject) that is #defined to NSObject in non-debug code. This class maintains instance counters and several debugging goodies (like an instance browser in the running app). Rationale behind this is that I can track release bugs of my classes, which is where the bugs I write are generally located :-) * All methods in an app starts with the same prefix. First, it is useful when looking at backtraces, but this is not the main point. There is no namespace in ObjC, and you can be bitten very hard by name clashes between releases of OPENSTEP (ie: you implement a method in NSObject to do something. NeXT^H^H^H^H apple implement another method with the same name, in the same class or a sub/super class. This actually did happend to me and took some *very* long debugging sessions to find). * Watch very closely your setXxx methods, if any (I don't have anymore now, as all my methods are prefixed). You should know that nib loading code first try to locate a method called setXxx to set the value of an outlet xxx when loading nibs. This can lead to disasterous effects because object is not fully operational when this is done. I also have a different naming scheme for instances variables versus parameters versus local variables, but this is not an ObjC issue (as it is also applicable in other languages, such as C or C++) In another mail, you wrote: > Atleast one other person did suggest this, I realize in retrospect, but I > did not understand the difference till I went back to the language ref and > studied informal protocols again. Sounds like they would work great! > > One could name the category something like "MustOverride" to get > subclassers to pay attention. Unfortunately, informal protocols are just a smart way to lie to the compiler, and I would not use them to enforce anything. When designing a semi-abstract class, you can always be in a safer place in both declaring and implementing a category, like: @interface MySemiAbstractClass:NSObject { } /* Methods */ @end /* This can be in a separate header, if not public */ @interface MySemiAbstractClass(MustOverride) /* Methods that should be re-implemented */ @end @implementation MySemiAbstractClass(MustOverride) /* Implementation of methods that raise an exception */ @end For delegation methods, I always implement the delegate methods to either raise, or do 'what is correct by default'. Using respondsToSelector: (or isKindOfClass: and the like) is, IMHO, evil (Imagine trying to implement an object that controls two NSBrowser objects, and needs to be passive delegate of the first and active one of the second...) Cheers, --fred From stark at easynet.fr Fri Feb 13 17:14:04 1998 From: stark at easynet.fr (stark@easynet.fr) Date: Thu Nov 3 14:40:55 2005 Subject: Documentation style (was Re: cost of mutability) References: Message-ID: <9802140114.AA05104@easynet.fr> Hi, [crunch] > So, just what is the customary documentation style for indicating class, > instance, etc. methods in discussion. > > I personally like the way Smalltalk people have done it for years: > > NSNumber>C>numberWithBool: is NSNumber's numberWithBool: class method > > FooBar>I>doSomething:with: is FooBar's doSomething:with: instance method > > But what's the custom for Objective-C? +[NSNumber numberWithBool:] -[FooBar doSomething:with:] Cheers, --fred From sanguish at digifix.com Sat Feb 14 00:53:57 1998 From: sanguish at digifix.com (Scott Anguish) Date: Thu Nov 3 14:40:55 2005 Subject: NSTextView troubles Message-ID: <199802140855.DAA05784@digifix.com> I've got two problems that I'm not sure of in NSTextView.. 1. If I attempt to make a programmatic selection of text that has never been clicked in the text doesn't visibly highlight. 2. - (NSRange)textView:(NSTextView *)aTextView willChangeSelectionFromCharacterRange:(NSRange)oldSelectedCharRange toCharacterRange:(NSRange)newSelectedCharRange; implementing this, like this (the goal is to restrict selection to whole words).. if (aTextView == textView) { unsigned startLoc=newSelectedCharRange.location; unsigned endLoc=(newSelectedCharRange.location + newSelectedCharRange.length); startLoc=[[aTextView textStorage] nextWordFromIndex:startLoc forward:NO]; endLoc=[[aTextView textStorage] nextWordFromIndex:endLoc forward:YES]; } is causing Feb 14 03:47:46 TextPlatform[1827] *** Assertion failure in -[NSMutableRLEArray objectAtIndex:effectiveRange:], NSAttributedString.m:897 Feb 14 03:47:46 TextPlatform[1827] An uncaught exception was raised Feb 14 03:47:46 TextPlatform[1827] Access invalid attribute location 5956 (length 5956) Feb 14 03:47:46 TextPlatform[1827] *** Uncaught exception: Access invalid attribute location 5956 (length 5956) Is this something I can work around? Using nextWordFromIndex works fine in other places (other than the delegate method), so I'm thinking its a problem using it in the delegate, perhaps when its loading the text in. From tomi at objectfarm.org Sat Feb 14 01:02:18 1998 From: tomi at objectfarm.org (Tomi Engel) Date: Thu Nov 3 14:40:55 2005 Subject: Unretained object in dictionary In-Reply-To: <199802140055.TAA09258@sauropod.engin.umich.edu> References: <199802140055.TAA09258@sauropod.engin.umich.edu> Message-ID: <9802140902.AA00591@wombat.objectfarm.org> On Fri, 13 Feb 1998, "manowar@engin.umich.edu" wrote: > Does anyone know, how I can add an object to dictionary without > the Dictionary sending it the retain message? > > Or is there removeObject:forKey: message that does not send > a release message? > The more interesting question is: " Why are you trying to violate the garbage collection rules?" Does it do any harm if it sends "retain" ? Why? If it wouldn't your app could crash as soon as the objects disappears right under the dicts hands. And if it doesn't disappear...then where is the problem with the extra retain/release? I seriously would like to know. Aloha Tomi From tomi at objectfarm.org Sat Feb 14 00:51:00 1998 From: tomi at objectfarm.org (Tomi Engel) Date: Thu Nov 3 14:40:55 2005 Subject: Asynchronous pipes In-Reply-To: References: Message-ID: <9802140851.AA00583@wombat.objectfarm.org> Hi, > I'm looking at NSTask but is it possible for me to use NSTask to launch a > process (eg. anything that we can call up on a command line) and then have > a two-way pipe to communicate with that process from my own Application > I don't know what you are trying to do or maybe I just didn't get your question... ...but if you have an NSTask you have a stdin and stdout NSPipe if you like (setStandardInput:,...). So you can feed data into an NSTask and get it out on the other end. Beware...this is a feature of NSTask...not NSPipe. NSPipe is yust oneway. If you have the source to the UNIX tool it might be wise to use DO since it makes the communication easier. Simple pass the DO ports name as an argument to your NSTask and implement an communication on top of that. However, this makes little sense if you want to use tools like grep, tar or that like. Aloha Tomi From rcfa at cubiculum.com Sat Feb 14 01:10:12 1998 From: rcfa at cubiculum.com (Ronald C.F. Antony) Date: Thu Nov 3 14:40:55 2005 Subject: null methods In-Reply-To: <199802140022.QAA34438@scv4.apple.com> References: <199802140022.QAA34438@scv4.apple.com> Message-ID: <9802140910.AA08016@kannix.cubiculum.com> you wrote: > Ronald asks why one might use an informal protocol. > > The standard example is the case of delegate methods. One wishes to > have all of the possible delegate methods for a class prototyped, > but the delegate must not be forced to implement any or all of them. > Perhaps there should be some more formal mechanism for this--a > "non-binding" protocol, if you will--but for now, the informal > protocol, usually a category on NSObject, is what is used. There are > other instances in which informal protocols are used, but they > usually involve coordination with an object of unknown class, similar > to that between an object and its delegate. I think the ideal solution would be formal protocols in which certain methods can be marked optional. This way, one could, in the case of delegates, declare all of the protocol's methods optional I think it is a better approach than having two types of protocols. Also, by formalizing the optionality, the whole is better documented. There are several problems with "informal" protocols: a) the name. The whole point of a protocol is to be "formal" about programming methodology b) they use, for no obvious reason, a different syntax than "formal" protocols, something that an "optional" modifier keyword for method declaration in "formal" protocols could solve. c) they abuse category declaration syntax for something that is not really a category, i.e. it's a hack d) they make an association between the protocol and NSObject, while in fact the protocol could be adopted by any class, even one that does NOT inherit from NSObject, which, albeit rare, is a distinct possibility. I do see in the context of delegates where informal protocols have a place, just due to the lack of the optional modifier for protocol method declarations. I forgot about that use of protocols. However, in the context of the original discussion, (abstract superclasses, concrete subclasses) I still don't see what's gained by using an informal over a formal protocol. Greetings, Ronald ============================================================================== "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." G.B. Shaw | rcfa@cubiculum.com | NeXT-mail welcome From rcfa at cubiculum.com Sat Feb 14 01:28:43 1998 From: rcfa at cubiculum.com (Ronald C.F. Antony) Date: Thu Nov 3 14:40:55 2005 Subject: Informal protocols (was Re: null methods) In-Reply-To: <199802140032.SAA03302@isdnjhendry.cmg.fcnbd.com> References: <199802140032.SAA03302@isdnjhendry.cmg.fcnbd.com> Message-ID: <9802140928.AA08067@kannix.cubiculum.com> you wrote: > Informal protocols are useful if you want to specify optional API. > If you use a formal protocol to define the API, the whole thing will > have to be implemented. If you use an informal protocol, you can pick > which methods you want to implement. The best example would be the > browser datasource protocols, where the delegate chooses which > method to implement depending on how lazy it wants to be. With > formal protocols, there'd have to be , > , etc. This is actually one of the worst examples :-) The reason for this is, that delegates like NSWindow delegates implement optionally only certain methods they are interested in (such as windowWillClose: or stuff like this) where really each method is optional. In the case of the browser delegate, you can choose between three types of delegates, but in each of the three cases ALL the methods must be implemented, and methods that belong to the other types MUST NOT be implemented. Informal protocols allow you to create completely dysfunctional browser delegates, rather than the NSBrowser checking a delegate for compliance with one and only one of the three protocols, it just "hopes" the programmer did the right thing, making it possible to have completely screwed up by partially implementing each of the three browser delegate types. Thus, in the case of the browser delegates, things would be a lot clearer and better documented had Apple/NeXT actually chosen to use multiple formal protocols rather than one informal protocol that throws pieces together that shouldn't be in the same basket/protocol (informal or not). Greetings, Ronald ============================================================================== "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." G.B. Shaw | rcfa@cubiculum.com | NeXT-mail welcome From sebestyen_g at accentcomm.com Sat Feb 14 08:49:26 1998 From: sebestyen_g at accentcomm.com (Gabriel Sebestyen) Date: Thu Nov 3 14:40:55 2005 Subject: DO server Message-ID: <34E5CB15.BC2E1A77@accentcomm.com> Hi, I want to write a DO server which handles named client connections, I mean every connection has a unique name. Here's my concept: DO server has a usual server NSConnection and waits for the clients by the usual way by getting NSConnectionDidInitializedNotification notificaton. When it has happened the server creates a thread which is between the server and the remote connection, arranges the messages via itself and signs to the server when the remote object dies. This thread connected by NSConnection to the server. An example to this concept: (Server<--DO-->>Threads)<-- DO/Net -->(Named Remote Connections) My questions and notes are: 1., Is this conception good I mean simple? 2., Almost hard to make because the server must catch notifications from all objects therefore it will catch the awake of the connection of the thread which is undesired and make me confused. 3., Is there any simpler solution to this problem? Suggestions are appreciated. Best regards, Gabriel Sebestyen -------------- next part -------------- A non-text attachment was scrubbed... Name: vcard.vcf Type: text/x-vcard Size: 435 bytes Desc: Card for Gábor Sebestyén Url : /mailman/archive/macosx-dev/attachments/19980214/9887cebf/vcard.vcf From mike at lorax.com Sat Feb 14 12:47:17 1998 From: mike at lorax.com (Mike Ferris) Date: Thu Nov 3 14:40:55 2005 Subject: gcc on Rhapsody References: <199802120518.WAA20592@smtp03.primenet.com> Message-ID: <34E602D5.D140FE82@lorax.com> gcc is the default compiler on Rhapsody. It is called "cc" (the standard compiler on a unix system is usually called "cc" even if it's really gcc). It is definitely included pre-built and installed and ready to go in DR1. Mike Ferris Geoff Coffey wrote: > > Hello all: > > I guess my previous post was a little premature, as I've come to realize > that gcc isn't built on the DR1 distribution. The source and scripts are > in /NextDeveloper/Sources/GNU/gcc/. Has anybody successfully built these? > If so, do you remember if you had to bypass the configure script? It (of > course) doesn't recognize powerpc-apple-rhapsody as a target, but I tried > everything I though was a remote possibility without success. Is there > maybe a newer version that supports powerpc and mach, or bsd? If you have > done this, let me know the trick. I have built several other GNU packages > easily, so I'm sure cc is working fine. > > Thanks, Geoff Coffey From paulrs at lgs-systems.com Sat Feb 14 12:38:25 1998 From: paulrs at lgs-systems.com (Paul R. Summermatter) Date: Thu Nov 3 14:40:55 2005 Subject: UNC problems with Frameworks Message-ID: <9802142038.AA29329@cube> Hello all, We along with some other developers have experienced a problem with framework loading in conjunction with the use of UNCs on NT and are wondering if anyone has found a suitable workaround or, more importantly, whether a fix is forthcoming in CR1. The issue seems to be that if you have a share LGSSystems on server BLUE, and you add an entry to your Path variable, \\BLUE\LGSSystems\Executables, loading of .dlls works properly, but framework resources such as models, images, nibs, etc. are not loaded. In fact, if you ask: [NSBundle bundleForClass:[SomeClassInAFramework class]] You will get back the main bundle. Now, if instead of the above arrangement you create a drive mapping for the share \\BLUE\LGSSystems to the drive letter 'L:' and you enter into your Path variable, 'L:\Executables', framework resources will be properly loaded. The obvious reason for our asking this question is that UNCs are far more general and flexible than drive letters(you run out of drive letters at Z). Any direction would be appreciated, as well as any comments on the use of UNCs versus drive letter mapping. Regards, Paul --- Paul Summermatter LGS Systems, Inc. Medical Computing Division 182 Lake Street Hamburg, NY 14075-4826 (716) 646-1164 paulrs@lgs-systems.com (NeXT or MIME Mail Welcome) http://www.lgs-systems.com From mike at lorax.com Sat Feb 14 13:08:11 1998 From: mike at lorax.com (Mike Ferris) Date: Thu Nov 3 14:40:55 2005 Subject: NSTextView troubles References: <199802140855.DAA05784@digifix.com> Message-ID: <34E607BB.7EC54242@lorax.com> > 1. If I attempt to make a programmatic selection of text that has > never been clicked in the text doesn't visibly highlight. > It is probably not firstResponder in its window. Selection is only displayed for the first responder. > 2. > > - (NSRange)textView:(NSTextView *)aTextView > willChangeSelectionFromCharacterRange:(NSRange)oldSelectedCharRange > toCharacterRange:(NSRange)newSelectedCharRange; > > implementing this, like this (the goal is to restrict selection to > whole words).. > > if (aTextView == textView) > { > unsigned startLoc=newSelectedCharRange.location; > unsigned endLoc=(newSelectedCharRange.location + > newSelectedCharRange.length); > startLoc=[[aTextView textStorage] nextWordFromIndex:startLoc > forward:NO]; > endLoc=[[aTextView textStorage] nextWordFromIndex:endLoc > forward:YES]; > } > > is causing > > Feb 14 03:47:46 TextPlatform[1827] *** Assertion failure in > -[NSMutableRLEArray objectAtIndex:effectiveRange:], > NSAttributedString.m:897 > Feb 14 03:47:46 TextPlatform[1827] An uncaught exception was raised > Feb 14 03:47:46 TextPlatform[1827] Access invalid attribute location > 5956 (length 5956) > Feb 14 03:47:46 TextPlatform[1827] *** Uncaught exception: > Access invalid attribute location > 5956 (length 5956) > > Is this something I can work around? Using > nextWordFromIndex works fine in other places (other than the delegate > method), so I'm thinking its a problem using it in the delegate, > perhaps when its loading the text in. You cannot use -nextWordFromIndex:... (and most other attributed string methods) with invalid indices. If you're dealing with a range that ends at the end of the text, your endLoc is gonna be beyond the end. Try endLoc = newSelectedCharRange.location + newSelectedCharRange.length - 1; Or, if you really need to start from the character _after_ the end of the selection, special case the end of text situation. Another alternative to the delegate method is to override NSTextView's -selectionRangeForProposedRange:granularity: if you want the constraint to happen (continuously) during mouse selection, but not otherwise. And finally, if you are looking for double-click-like word-select behavior, -nextWordFromIndex:... is not ideal. Use -doubleClickAtIndex: instead. -nextWordFromIndex: is more for cursor movement and using it this way will probably cause the non-word stuff on either side of the word to be selected also. Happy hacking, Mike Ferris From mike at lorax.com Sat Feb 14 13:17:21 1998 From: mike at lorax.com (Mike Ferris) Date: Thu Nov 3 14:40:55 2005 Subject: Unretained object in dictionary References: <9802140902.AA00591@wombat.objectfarm.org> Message-ID: <34E609E1.6D2F0AD4@lorax.com> There are definitely cases where you want non-retained collections. But you had better understand what you're doing and be careful. For instance, let's say you want to implement instance uniquing, without immortality of those uniqued instances. You implement in your factory a non-retained collection of the unique instances so that you can find and return the unique instance if someone tries to create an instance that already exists. New unique instances that get allocated get added to the collection. Finally, to make this work, instances arrange to have themselves removed from the uniquing collection when they are dealloc'd. There are other cases where you want this kind of thing too. That's why NSValues with nonRetainedObjectValue's and NSMapTables exist (well maybe it's just one of the reasons NSMapTables exist... :-). Having said that, though, it is only in special circumstances that this sort of thing is a good idea. Make sure you have a valid reason for a weak reference of any kind before making it a weak reference. Weak references always require more care and cleanup. And remember that in Java you won't have that implementation alternative... Mike Ferris Tomi Engel wrote: > > On Fri, 13 Feb 1998, "manowar@engin.umich.edu" wrote: > > Does anyone know, how I can add an object to dictionary without > > the Dictionary sending it the retain message? > > > > Or is there removeObject:forKey: message that does not send > > a release message? > > > > The more interesting question is: > " Why are you trying to violate the garbage collection rules?" > > Does it do any harm if it sends "retain" ? Why? If it wouldn't your app > could crash as soon as the objects disappears right under the dicts hands. > And if it doesn't disappear...then where is the problem with the extra > retain/release? > > I seriously would like to know. > > Aloha > Tomi From tomi at objectfarm.org Sat Feb 14 15:45:41 1998 From: tomi at objectfarm.org (Tomi Engel) Date: Thu Nov 3 14:40:55 2005 Subject: Unretained object in dictionary In-Reply-To: <34E609E1.6D2F0AD4@lorax.com> References: <9802140902.AA00591@wombat.objectfarm.org> <34E609E1.6D2F0AD4@lorax.com> Message-ID: <9802142345.AA00900@wombat.objectfarm.org> Mike Ferris wrote: > There are definitely cases where you want non-retained collections. But > you had better understand what you're doing and be careful. > > For instance, let's say you want to implement instance uniquing, without > immortality of those uniqued instances. You implement in your factory a > non-retained collection of the unique instances so that you can find and > return the unique instance if someone tries to create an instance that > already exists. New unique instances that get allocated get added to > the collection. Finally, to make this work, instances arrange to have > themselves removed from the uniquing collection when they are dealloc'd. Yup...there are cases where this is necessary. However, as you point out, it requires modifications in the dealloc process of the collected objects. So the "nonretaining collection" is not the solution on its own since the objects which get placed inside the collection have to be adjusted as well (or some other part has to take care of not freeing the objects too early) So you could basically keep the retaining-collection and place the logic only inside the objects which are bound to be uniqued. This could be done in the release method as well which checks if its own ref count matches the "cleanup" level and then triggers a class method which takes care of removing the instance from all collections which still have a retain on that instance. I mainly wanted the original poster to give a more detailed description of his problem so that it would be clearer what he is trying to do since otherwise its hard to help him in finding a solution. Aloha Tomi -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1744 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980215/ba1fd317/attachment.bin From arti at lava.net Sun Feb 15 11:26:16 1998 From: arti at lava.net (Art Isbell) Date: Thu Nov 3 14:40:55 2005 Subject: Unretained object in dictionary References: <9802142345.AA00900@wombat.objectfarm.org> Message-ID: <9802151926.AA00425@lava.net> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 2932 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980215/d3d16e84/attachment.bin From mike at lorax.com Sun Feb 15 15:20:03 1998 From: mike at lorax.com (Mike Ferris) Date: Thu Nov 3 14:40:55 2005 Subject: Unretained object in dictionary References: <9802151926.AA00425@lava.net> Message-ID: <34E77823.FFFCDD9B@lorax.com> A valid point has been raised that you could solve the "uniqued but mortal" object example with a standard retaining collection and an override of -release on the objects to be uniqued that knew about the uniquing collection and removed the object when appropriate. (The basic strategy is to implement your release to check the ref count and when it gets down to the one ref that accounts for the uniquing collection, remove yourself from the uniquing collection.) This strategy can definitely work. Personally, I favor the weak reference when I have a choice because, as Art points out, there's a lot of potential grief with -release overrides. Either way of implementing this requires knowledge of the situation by the objects. Either way, care must be taken to ensure proper cleanup, in one case to avoid dangling pointers and in the other to avoid leaks (or infinite recursions :-). And either way, you are kind of playing tricks with the normal ref-counting mechanism. I think it comes down to a matter of taste. Another thing to be aware of in the yellow frameworks is that there are some weak reference situations within the yellow APIs. For instance, targets, delegates, datasources and notification observers are all generally weak references and, because of this, sometimes your objects have to be aware of this. An object which acts as the target, delegate, or datasource of a yellow object should remove itself as such in its dealloc to avoid dangling references. Any object that observes notifications should do a [[NSNotificationCenter defaultCenter] removeObserver:self] in its dealloc, just to be safe. In most of these situations the references are weak to avoid potential retain cycles. In the observer case it is more complicated. For the potential cycle situations a real garbage collector would make the problem go away. For the observer case, even garbage collection wouldn't solve things ideally... Mike Ferris From macko at ubaclu.unibas.ch Mon Feb 16 00:06:20 1998 From: macko at ubaclu.unibas.ch (Ludwig Macko) Date: Thu Nov 3 14:40:55 2005 Subject: gcc on Rhapsody In-Reply-To: <34E602D5.D140FE82@lorax.com> Message-ID: Hi, Mike Ferris wrote: >gcc is the default compiler on Rhapsody. It is called "cc" (the >standard compiler on a unix system is usually called "cc" even if it's >really gcc). It is definitely included pre-built and installed and >ready to go in DR1. And Steve Quirk wrote: >Is there a reason why you want to rebuild the one that's already >compiled? There is. I need to have the proper sources to build the FORTRAN compiler g77 from GNU. The backend of g77 seems to use gcc - a quite common solution for compiler builders I guess (I've seen that before with Motorolas C/C++ and FORTRAN77 compilers for MacOS/PPC). I tried to build cc/gcc from the sources apple delivered with DR1. I received the error I reported previously. The same with the original GNU kit modified for powerpc-apple-rhapsody. Lawrence You said, he would contact somebody from Apple. I wonder, where some solution to my problem would be posted. Will Apple provide somewhere on their FTP sites the right gcc sources or a prebuilt g77? Ludwig ___________________________________________________________________________ Ludwig Macko macko@ubaclu.unibas.ch Chemical crystallography lab Voice +41 61 267 10 26 Institute for inorganic chemistry Fax +41 61 267 10 18 University of Basel, 4056 Basel, Switzerland This mail message was carried on 100% recycled electrons... From sschaper at inlink.com Mon Feb 16 07:37:48 1998 From: sschaper at inlink.com (Stephen Schaper) Date: Thu Nov 3 14:40:55 2005 Subject: FAQ from list info? In-Reply-To: Message-ID: I wonder if there is a possibility of compiling the tips from this list in an FAQ, similar to the FAQs that exist for various Linices? It would likely have to be on an Apple site, password protected. --Steve ========================================== Unsolicited advertising proofreading fee: $100/instance sschaper@inlink.com www.inlink.com/~sschaper/ ========================================== From sebestyen_g at accentcomm.com Tue Feb 17 01:16:28 1998 From: sebestyen_g at accentcomm.com (Gabriel Sebestyen) Date: Thu Nov 3 14:40:55 2005 Subject: NSConnections again ... Message-ID: <34E9556C.6D12B780@accentcomm.com> Since I'm a little bit new to NSConnections and there's not too much docs about this topic let me take some question: I have a constitution like this: ([A] DO server process <-do->> [B] subthreads) <--do--> ([C] main process <-do->> [D] subthreads) The questions are: 1., When I get a DC connection via AC and pass to a B thread and send a message in this one to a D subthread, what is the route of the message?: a., BACD? b., BCD? 2., When B subthread calls a D and waiting for the reply (this is a simple two-way message like this: newString = (NSString *)[(D) readString] ) the call from B to another D will be blocked. What must I do to make this process asynchronous? a., Enable the DO server side of AC connection to be multi-threaded? b., Is (a.,) step enough? c., When I switch MT on a side of a connection will the message process async from the other side, that is, are the MT flags independent from each other side? Is this make sense? 3., Where can find docs/examples about the behaviour of more comprehensive DO constitutions? OK, that's all, helps are appreciated! Thanks in advance, Gabriel Sebestyen -------------- next part -------------- A non-text attachment was scrubbed... Name: vcard.vcf Type: text/x-vcard Size: 435 bytes Desc: Card for Gábor Sebestyén Url : /mailman/archive/macosx-dev/attachments/19980217/f0141daf/vcard.vcf From chad at pengar.com Tue Feb 17 07:34:51 1998 From: chad at pengar.com (Chad Leigh, Pengar Enterprises Inc and Shire.Net) Date: Thu Nov 3 14:40:55 2005 Subject: NSConnections and ConnectionDidDie notifications Message-ID: I have a server Object A that vends itself. I have a client B that attaches to server A and then registers itself with A so [A registerMyself:self (B) ] so that A now has a reference to it (B) and can call back into it for stuff. A receives B and sets itself up as an observer for the NSConnectionDidDieNotification notification for object [B connectionForProxy] When B goes away this notification does indeed trigger my connectionDied:(NSNotification*)notif message in A. I am trying to figure out what the [notif object] is in this notification. A saves away its reference to B in an NSMutableSet and registers B for notifications inside of A during the [A registerMyself:self (B) ] . When B goes away I want to clean up. I cannot match what I am saving away at register time with what I get as the notification. I print (NSLog) the remoteObj and the [remoteObj connectionForProxy] (which doesn't print an object address???? -- it prints a remote and local id for the objects only) at register time and at notification connectiondied time I print (NSLog) the [notif object] and I cannot match the two up. I would assume that the [notif object] at notification time is the same as [remoteObj connectionForProxy] at register time? I just cannot verify this by examing the objects and so I am confused. Thanks Chad --------------------------------------------------------------- Chad Leigh Pengar Enterprises, Inc and Shire.Net chad@pengar.com info@pengar.com info@shire.net Full service WWW services from just space to complete sites. Low cost virtual servers. DB integration. Tango. Email forwarding -- Permanent Email Addresses. POP3 and IMAP Email Accounts. mailto:info@shire.net for any of these. --------------------------------------------------------------- From fabienr at ncmi.com Tue Feb 17 10:26:19 1998 From: fabienr at ncmi.com (Fabien Roy) Date: Thu Nov 3 14:40:55 2005 Subject: gcc on Rhapsody In-Reply-To: References: Message-ID: <199802171827.KAA08703@ignem.omnigroup.com> What about: ln /bin/cc /usr/local/bin/gcc Fabien --- Fabien L Roy NationsBanc Capital Markets, Inc voice: (704)386-75-76 100 North Tryon Street fax: (704)388-95-64 Charlotte NC 28255 Beeper: 143-9722 (1-800-946-46-46) email: fabienr@ncmi.com (NeXT/Mime) From jordan at apple.com Tue Feb 17 11:45:41 1998 From: jordan at apple.com (Jordan Dea-Mattson) Date: Thu Nov 3 14:40:55 2005 Subject: Rhapsody Information Resources Message-ID: <199802171945.LAA10388@scv4.apple.com> All, As I daily read the messages on this list, I come across many messages that could be easily answered by refering to online resources that Apple has available. While that is ok, from time-to-time, I come across responses that are flat out wrong or are based more on "Mac OS Rumors" than on reality. For this reason, I was to point you at the various Rhapsody information resources from Apple Computer: 1 The Rhapsody FAQ: http://devworld.apple.com/rhapsody/rhapfaq/rhaptechfaq.html Updated frequently, this FAQ details the answers to the most frequently asked Rhapsody questions. Before posting a query to either of these groups, I first suggest you check out the Rhapsody FAQ. 2. Rhapsody Basics http://devworld.apple.com/rhapsody/rhapdev/rhapsody/rhapsody_basics.html Want to understand the basics of Rhapsody? Here is an overview for you. This is a great place for anyone wanting to get started learning about Rhapsody and the Yellow Box. 3. Rhapsody Sample Code http://devworld.apple.com/rhapsody/rhapdev/rhapsody/rhapsodycode.html Need to look at some examples of Yellow Box applications. Then check out the Rhapsody sample code page. 4. Rhapsody Technical Documentation http://devworld.apple.com/techinfo/techdocs/rhapsody/rhapsody.html All of Apple's technical documentation for the Yellow Box is available online, as well as on the Rhapsody DR CDs. Have a question, you can probably find it here. 5. Rhapsody Technical Notes http://devworld.apple.com/rhapsody/rhapdev/rhapsody/technotes.html If you can't find it first in the Rhapsody Technical documentation, then check for it here. Finally, DevWorld is an excellent resource in terms of its content - we know the organization has some issues and are working to fix it - that you should check out for the information on various technologies and initatives that Apple is undertaking. Yours, Jordan Jordan J. Dea-Mattson Senior Partnership & Technology Solutions Manager Apple Developer Relations Apple Computer, Inc. 1 Infinite Loop, MS: 303-2EV Cupertino, CA 95014 408-974-4601 (Phone) jordan@apple.com "Here's to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the square holes. The ones who see things differently. The ones that change the world!" From paul at ali.bc.ca Tue Feb 17 12:10:54 1998 From: paul at ali.bc.ca (Paul Van Hulsen) Date: Thu Nov 3 14:40:55 2005 Subject: No subject Message-ID: <98Feb17.040919pst.24201@gateway.ali.bc.ca> subscribe rhapsody-dev Paul van Hulsen -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 56 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980217/ad8a8cf4/attachment.bin From jacrawle at bulldog.unca.edu Tue Feb 17 14:15:38 1998 From: jacrawle at bulldog.unca.edu (Joseph Andrew Crawley) Date: Thu Nov 3 14:40:55 2005 Subject: openfromapp Message-ID: Is there a way to launch one app from another or to launch a document in its appropriate app? Also can you set up Blue box to share a partition with rhapsody? thanks Joseph Crawley From sanguish at digifix.com Tue Feb 17 14:40:42 1998 From: sanguish at digifix.com (Scott Anguish) Date: Thu Nov 3 14:40:55 2005 Subject: openfromapp In-Reply-To: References: Message-ID: <199802172240.RAA20333@digifix.com> Joseph Andrew Crawley wrote: > Is there a way to launch one app from another or to launch a document in > its appropriate app? Sure. Have a look at NSWorkspace Manipulating applications - launchApplication: - launchApplication:showIcon:autolaunch: - hideOtherApplications Opening a document with its appropriate app - openFile: Opening a document with a specific app [[NSWorkspace sharedWorkspace] openFile:@"/Myfiles/README" withApplication:@"Edit"]; From donarb at wolfenet.com Tue Feb 17 17:09:32 1998 From: donarb at wolfenet.com (Don Arbow) Date: Thu Nov 3 14:40:55 2005 Subject: 640x480 resolution, solved, sort of Message-ID: Thanks for the suggestions about getting my Imagine 128 video card working with Rhapsody. Unfortunately, no matter what I tried, it would not work. Fortunately, I had a second video card (an XClaim VR card) for my second monitor. Previously, I tried swapping cards and monitors in every configuration I could think of. Well, I think I figured out what was wrong. It appears that Rhapsody uses the first video card it finds. My Imagine 128 was the first in the chain, but Rhapsody didn't seem to allow resolution redefinition. I removed that card and just used the XClaim VR card, ti now works like a charm. I didn't try this before, because when I tried using the XClaim card with my smaller monitor, it came up with a bunch of snow. So now I'm running Rhapsody at 1152x870! It really helps having the larger resolution. Now, anybody have any pointers to some cool fonts for Rhapsody, something like ProFont for programming? Ohlfs is a bit lacking. And I'd like to find a Rhapsody version of Espy and Geneva. Don -- Don Arbow, Partner, CTO EveryDay Objects, Inc. mailto:donarb@wolfenet.com http://www.edo-inc.com From jg at cs.umass.edu Wed Feb 18 11:36:24 1998 From: jg at cs.umass.edu (John Greene) Date: Thu Nov 3 14:40:55 2005 Subject: Building things/Archive site? Message-ID: Hi -- I'm very new to this list, and I have a HEAP of old articles to go through, so I apologize in advance if these are FAQs. o Is there a web/ftp site for Rhapsody prebuilt binaries? o When people from this list build apps, shells, clients, etc. for Rhapsody, is there a common repository where these get uploaded? o Has anyone built SSH? o I heard kerberos is somehow built-in. Is there reference for this? I want to allow rlogins by root, but this doesn't seem to be supported. o Has anyone built X11R6? Is http://www.angelfire.com/biz/sle/Xnext.html the way to go? Thanks for any and all information. :) So far so good.... -- . Qapla', . ' John Greene - Software Specialist . * . Computer Science Computing Facility ` University of Massachusetts Amherst Web: Mac: -jg (jg@cs.umass.edu) L E T ' S G O F L Y E R S ! From rwarner at prv.com Wed Feb 18 13:26:34 1998 From: rwarner at prv.com (Rich Warner) Date: Thu Nov 3 14:40:55 2005 Subject: Setting up peer-to-peer networking Message-ID: <3.0.3.32.19980218142634.006bb6a4@gj.net> Hi - New to the mailing list, but think this is inbounds of the subject matter. Wondering how to set up a peer-to-peer network between a win/95 box and a Rhapsody box? Here is what I have ascertained so far: * Use a crossover cable (568-a) to connect the two using twisted pair. * Install TCP/IP protocol on Win/95 box, turn off DNS and assign IP address plus submask. * On Rhapsody log in as root and use HostManager to assign name and turn router off (or can edit hostconfig file in /etc). * Use NetinfoManager to turn off Netinfo bindings (and I think to assign an IP? and submask?--at any rate tweak iftab file if all else fails). I still run into Rhapsody box hanging on reboot though. Anytime I have assigned an IP address, it hangs trying to establish a connection with the Netinfo server (even after turning bindings off). Don't know if because there is more I need to do to turn of Netinfo, or if is because of developer release bugs. ?? Any clues or suggestion? Would be helpful too to know the key sequence that will allow me to escape to a UNIX prompt while rebooting from CD-ROM. ? Best regards, R.D. Warner, owner Perceptual Research Ventures 1.970.416.7466 rwarner@prv.com http://www.gj.net/prv/ NOTE: This site is being reorganized From sanguish at digifix.com Wed Feb 18 14:07:17 1998 From: sanguish at digifix.com (Scott Anguish) Date: Thu Nov 3 14:40:55 2005 Subject: Building things/Archive site? In-Reply-To: References: Message-ID: <199802182207.RAA25233@digifix.com> John Greene wrote: > Hi -- > > I'm very new to this list, and I have a HEAP of old articles to go through, > so I apologize in advance if these are FAQs. > > o Is there a web/ftp site for Rhapsody prebuilt binaries? You can get updated listings (updated several times daily) from peak, nextanswers and apple at http://www.stepwise.com/Software/ Also, as significant OpenStep or Rhapsody uploads or releases occur, I list them at http://www.stepwise.com/Software/index.html > o When people from this list build apps, shells, clients, etc. for > Rhapsody, is there a common repository where these get uploaded? ftp.next.peak.org/pub/rhapsody/submissions > o Has anyone built SSH? Yep... there are links to an intel binary and the source at.. http://www.stepwise.com/Software/index.html > o I heard kerberos is somehow built-in. Is there reference for this? I > want to allow rlogins by root, but this doesn't seem to be supported. Kerberos isn't built in... > o Has anyone built X11R6? Is http://www.angelfire.com/biz/sle/Xnext.html > the way to go? > At the moment.. yes... > Thanks for any and all information. :) So far so good.... > From yves at sesuadra.org Wed Feb 18 14:54:33 1998 From: yves at sesuadra.org (Yves De Muyter) Date: Thu Nov 3 14:40:55 2005 Subject: Photoshop for rhap? In-Reply-To: <199802182155.QAA25168@digifix.com> Message-ID: >Yves De Muyter wrote: >> >hatedyouth@earthlink.net,Internet writes: >> >>Does ne1 know if adobe is going to make Photoshop for rhapsody? when? >> > >> >Don't know, but take a careful look at TIFFany. It's very different than >> >photoshop--it moves the concept of object orientation into the drawing >> >environment and takes a bit of getting used to, but in many respects it's >> >superior to Photoshop. You do have to >> >give it some time until you unlearn Photoshop habits. >> >> I think Photoshop will be ported to Rhapsody as soon as MacApp gets ported >> to rhapsody. I don't know how far they are with MacApp on Rhapsody (if they >> even started working on it...). This might be a good point of Mac OS: a >> rotting core with some (nice) frameworks on it. Advantage is portability of >> those frameworks :-) > > > You're joking about porting MacApp right? > > That would be a mess. A set of frameworks sitting on top of the >AppKit frameworks, both fighting each other... I tought Apple claimed that in the beginning, but i'm not all that certain anymore... And indeed, i was ironic, it would be a mess. But on the other hand, I don't see Adobe porting their Software to Openstep, and do a complete rewrite and change of concept just to port it to Rhapsody in short terms. But on the long run, it would be a huge mistake not to evolve into OpenStep versions... Yves > Ugh.. > > I also think that even Adobe recognizes that this would be a bad way >to go. > > --- I *really* like adventure games since I played VMS. But my favourite is still Linux From jmgreene at students.wisc.edu Wed Feb 18 17:24:49 1998 From: jmgreene at students.wisc.edu (Jack Morrison Greene) Date: Thu Nov 3 14:40:55 2005 Subject: Photoshop for rhap? In-Reply-To: Message-ID: >>Yves De Muyter wrote: >>> >hatedyouth@earthlink.net,Internet writes: >>> >>Does ne1 know if adobe is going to make Photoshop for rhapsody? when? >>> > >>> >Don't know, but take a careful look at TIFFany. It's very different than >>> >photoshop--it moves the concept of object orientation into the drawing >>> >environment and takes a bit of getting used to, but in many respects it's >>> >superior to Photoshop. You do have to >>> >give it some time until you unlearn Photoshop habits. >>> Another possibility, would be for someone to compile GIMP for Rhapsody. I haven't had the time to play around with it, but I've heard good things about it. There's even a decent library of plug-ins for effects. Take a look at gimp.org. From janb at utep.edu Wed Feb 18 17:35:05 1998 From: janb at utep.edu (JAN B BECK) Date: Thu Nov 3 14:40:55 2005 Subject: Photoshop for rhap? In-Reply-To: Message-ID: Adobe is readying Photoshop 5. According to them, this is a almost complete rewrite. They probably added portability to the priorities when they did that. From kc Wed Feb 18 18:08:08 1998 From: kc (Ken Case) Date: Thu Nov 3 14:40:55 2005 Subject: Creating Packages under Rhapsody Message-ID: <199802190208.SAA08297@ignem.omnigroup.com> > There doesn't seem to be a package script for creating > packages under Rhapsody. Is there a script out there > or are people creating them by hand? Here's the BuildPackage perl script I wrote to build the OmniWeb, OmniFrameworks, and OmniComponents ".pkg" packages for Rhapsody DR. Invoke as: BuildPackage root-dir info-file [tiff-file] [-d dest-dir] Hope this saves someone else some time! Ken #!/usr/local/bin/perl -w # # Written by Ken Case on Jan 14, 1998 # # This builds ".pkg" packages which can be installed on Rhapsody DR using # /usr/bin/installer.sh. Invoke as: # # BuildPackage root-dir info-file [tiff-file] [-d dest-dir] # # Plug: other useful developer resources can be found at # http://www.omnigroup.com/DeveloperResources/. $PackageDestination = "/Cache"; $PackageSource = "/LocalLibrary/Omni/Frameworks"; $PackageDestination = "."; while ($ARGV[0] && ($_ = $ARGV[0], /^-/)) { shift; last if /^--$/; ( /^-destination$/ || /^-d$/ ) && do { $PackageDestination = shift; }; }; $PackageSource = shift; $PackageInfo = shift; $PackageTiff = shift; $PackageName = `basename $PackageInfo`; chop $PackageName; $PackageName =~ s/\.info$//o; $PackageTiff = "$PackageSource/$PackageName.tiff" unless $PackageTiff; # readPackageInfo(); $PackageBundle = "$PackageDestination/$PackageName.pkg"; $PackageTarFile = "$PackageBundle/$PackageName.tar.gz"; $PackageInfoOut = "$PackageBundle/$PackageName.info"; $PackageTiffOut = "$PackageBundle/$PackageName.tiff"; $PackageBOM = "$PackageBundle/$PackageName.bom"; $PackageSizes = "$PackageBundle/$PackageName.sizes"; $InstallUser = "root"; $InstallGroup = "wheel"; $MKBOM = "/usr/etc/mkbom"; $LSBOM = "/usr/etc/lsbom"; $WC = "/usr/bin/wc"; $DU = "/usr/bin/du"; print "Generating Installer package $PackageBundle ...\n"; print " creating package archive ... "; system "rm -rf $PackageBundle"; mkdir $PackageBundle, 0755 || die "Unable to create directory $PackageBundle"; system "gnutar --directory=$PackageSource --owner=$InstallUser --group=$InstallGroup --create --gzip --file=$PackageTarFile ."; print "done.\n"; print " copying $PackageInfo ... "; system "cp $PackageInfo $PackageInfoOut"; print "done.\n"; if (-e $PackageTiff) { print " copying $PackageTiff ... "; system "cp $PackageTiff $PackageTiffOut"; print "done.\n"; } print " generating bom file ... "; system "$MKBOM $PackageSource $PackageBOM"; print "done.\n"; # print "Package contents:\n"; # system "$LSBOM $PackageBOM"; print " generating sizes file ... "; $fileCount = `$LSBOM -s $PackageBOM | $WC -l`; chomp $fileCount; $fileCount += 0; $infoSize = kbUsedByFile($PackageInfoOut); $bomSize = kbUsedByFile($PackageBOM); $tiffSize = kbUsedByFile($PackageTiffOut); $packageDirectorySize = 1; $sizesSize = 1; $compressedSize = kbUsedByFile($PackageTarFile) + $packageDirectorySize + $sizesSize + $infoSize + $bomSize + $tiffSize; ($packageSourceSize) = split(' ', `$DU -s $PackageSource`); $packageSourceSize = $packageSourceSize * 512 / 1024; # * blockSize / kbSize $installedSize = $packageSourceSize + $packageDirectorySize + $sizesSize + $infoSize + $bomSize + $tiffSize; open PACKAGESIZES, ">$PackageSizes"; print PACKAGESIZES "NumFiles $fileCount"; print PACKAGESIZES "InstalledSize $installedSize\n"; print PACKAGESIZES "CompressedSize $compressedSize\n"; close PACKAGESIZES; print "done.\n"; print " ... finished generating $PackageBundle.\n\n"; print "$fileCount files:\n"; print " ${compressedSize}KB compressed\n"; print " ${installedSize}KB uncompressed\n"; $now = time; utime $now, $now, $PackageTarFile, $PackageInfoOut, $PackageTiffOut, $PackageBOM, $PackageSizes; chmod 0444, $PackageTarFile, $PackageInfoOut, $PackageTiffOut, $PackageBOM, $PackageSizes; sub kbUsedByFile { local ($filename) = @_; local ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime, $blksize, $blocks); local ($kb); ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime, $blksize, $blocks) = stat($filename); return 0 unless $blocks; $blksize = 512; # Hacking around bug in my not-very-thorough port of perl $kb = $blocks * $blksize / 1024; return $kb; } # This isn't actually used at the moment, but could be useful # in a later incarnation. sub readPackageInfo { open PACKAGEINFO, $PackageInfo; while () { ( /^#/o || /^\s*$/o ) && next; /^([A-Za-z]\w*)\s+(.*)$/o && do { $field = $1; $value = $2; $PackageInfo{$field} = $value; }; } close PACKAGEINFO; } From cbrannan at globalserve.net Thu Feb 19 04:29:58 1998 From: cbrannan at globalserve.net (Craig Brannan) Date: Thu Nov 3 14:40:55 2005 Subject: Photoshop for rhap? References: Message-ID: <34EC25C4.3802@globalserve.net> JAN B BECK wrote: > > Adobe is readying Photoshop 5. According to them, this is a almost > complete rewrite. They probably added portability to the priorities when > they did that. 1. Recent article in MacTech outlines some of the issues faced by the Photoshop dev team. In this article there is mention of how they have moved over to a common source base for Mac/Win/Unix versions. I don't think MacApp figures prominently in the picture any more. 2. this isn't really a rhapsody-dev topic is it? Happy Thursday, Craig. From bgramon at etoile.iut.univ-lehavre.fr Thu Feb 19 05:48:44 1998 From: bgramon at etoile.iut.univ-lehavre.fr (gramond jean-philippe) Date: Thu Nov 3 14:40:55 2005 Subject: help Message-ID: Hello all, I'm a french computer student and I have a project for the end of march...so it's quite urgent. Now my sources are in Ansi C++. I have a PM 6200 and a Starmax 4160 (604e-160Mhz). I don't success to install Rhapsody DR1 on the last one. When will it be possible ? Or are there any tips ?? I think to use this OS and its famous tools (Project Builder and Interface Builder) to have a cross plateformes application. Have I to use ObjectiveC or Java to obtain a graphical interface ? Thanks to help me as soon as possible ! jean-Philippe From rwarner at prv.com Thu Feb 19 06:31:56 1998 From: rwarner at prv.com (Rich Warner) Date: Thu Nov 3 14:40:55 2005 Subject: Peer-to-peer networking Message-ID: <3.0.3.32.19980219073156.006c11e4@gj.net> Thanks to everyone for the input. This round, I tried to do everything without touching NetinfoManager on the advice of several people. I tried using SimpleNetworkStarter and it appeared to only work if network cable plugged *in*--otherwise would exit with no error msg but no updating of information either. I next ran HostManager and upon choosing the "Open" option from the menu and the system thoroughly hung...as in time to reboot. On reboot it hung in the networking area at the lookupd call. At first look it appears to be some flakey HostManager bug, but I think it is the same lookupd prob I've been having all along and was started by SimpleNetworkManager and took some time to manifest. Once lookupd gets called, the system hangs with some msg about Netinfo server not found, and the process sleeping. I can get past that a few times (during reboot) with the cntl-c trick, but eventually it locks up for good after some time delay, or number of retries. This problem sequence must have been started by SimpleNetworkStarter and it after that time delay or number of retries it locked up system (I happened to be doing something in HostManager at the time). In SimpleNetworkStarter I simply used the existing choice which was to use that machine as the central database (make it the server) and that was it. Did change the IP address to something easier to remember. Left all other choices unselected. It would be real helpful while debugging this, to know the key sequence for exiting to a UNIX shell while rebooting from CD-ROM. Anyone know this for PPC's?? Back on NextStation it was some goofy sequence like Alt-Right Shift- Break at just the right moment during bootup. Would allow me to undo my tweaks to files and try again without reloading whole system. Best regards, R.D. Warner, owner Perceptual Research Ventures 1.970.416.7466 rwarner@prv.com http://www.gj.net/prv/ NOTE: This site is being reorganized From bbum at codefab.com Thu Feb 19 07:22:36 1998 From: bbum at codefab.com (Bill Bumgarner) Date: Thu Nov 3 14:40:55 2005 Subject: Photoshop for rhap? In-Reply-To: Message-ID: <9802191022.AA367861@mung> /* * Another possibility, would be for someone to compile GIMP for Rhapsody. * I haven't had the time to play around with it, but I've heard good * things about it. There's even a decent library of plug-ins for effects. * Take a look at gimp.org. * */ GIMP really can't compare to Tiffany in any respect; Gimp's UI is primitive-- Tiffany's is highly refined. GIMP's operations are inconsistent at best-- Tiffany is a professional quality image production tool. b.bum -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 534 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980219/ac58c70d/attachment.bin From Philippe.Robert at uptime.ch Thu Feb 19 08:30:08 1998 From: Philippe.Robert at uptime.ch (Philippe C.D. Robert) Date: Thu Nov 3 14:40:55 2005 Subject: Photoshop for rhap? In-Reply-To: <9802191022.AA367861@mung> References: <9802191022.AA367861@mung> Message-ID: <9802191630.AA00912@uptime.ch> You wrote: > GIMP really can't compare to Tiffany in any respect; Gimp's UI is primitive-- > Tiffany's is highly refined. GIMP's operations are inconsistent at best-- > Tiffany is a professional quality image production tool. Do you talk about GIMP 0.99..... or the old version?! I'd say, GIMP has become rather professional, BUT it's based on X, quite tricky to do a RDR port... regards, Phil --- Philippe C.D. Robert Rhapsody & Unix Development Email: Philippe.Robert@uptime.ch (NeXTMail & MIME) Web: http://www.nice.ch/~phip From anders at milkweed.com Thu Feb 19 12:44:12 1998 From: anders at milkweed.com (Anders Pytte) Date: Thu Nov 3 14:40:55 2005 Subject: ObjectiveC questions Message-ID: Friends, 1. I'm having trouble making a forward declaration of a protocol. I type simply: @protocol MyProtocol; but the compiler complains about the absence of the @end clause. What am I doing wrong? 2. I know you guys are getting tired of these reference counting questions, but do the [MyClass +newMyClass] methods have the exact same effect as [[MyClass alloc] init]? That is, do I own the resulting object? Many many thanks, Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com ---------------------------------------------------------------- This message was created and sent using the Cyberdog Mail System ---------------------------------------------------------------- From timc at apple.com Thu Feb 19 12:51:51 1998 From: timc at apple.com (Tim Carroll) Date: Thu Nov 3 14:40:55 2005 Subject: ObjectiveC questions Message-ID: <199802192051.MAA13238@scv1.apple.com> On 2/19/98 12:43 PM, space aliens orbiting the Earth observed that Anders Pytte said: >2. I know you guys are getting tired of these reference counting questions, >but do the [MyClass +newMyClass] methods have the exact same effect as >[[MyClass alloc] init]? That is, do I own the resulting object? Convenience constructors should autorelease the object before returning it. So, if you call: [[MyClass alloc] init] You created the object, so you own it, and you are responsible for releasing it. On the other hand, if you call: [MyClass newMyClass] MyClass created the object, so MyClass is responsible for releasing it (with an autorelease). From milkweed at plainfield.bypass.com Thu Feb 19 13:16:48 1998 From: milkweed at plainfield.bypass.com (Anders Pytte) Date: Thu Nov 3 14:40:55 2005 Subject: Correction: ObjectiveC questions Message-ID: A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 630 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980219/6991da48/attachment.bin From allan at ali.bc.ca Thu Feb 19 13:19:31 1998 From: allan at ali.bc.ca (Allan Noordvyk) Date: Thu Nov 3 14:40:55 2005 Subject: Correction: ObjectiveC questions In-Reply-To: References: Message-ID: <98Feb19.050737pst.24193@gateway.ali.bc.ca> "Anders Pytte" wrote: > "do the [MyClass +newMyClass] methods have the exact same effect as [[MyClass > alloc] init]? That is, do I own the resulting object?" > > But by newMyClass methods I really meant methods like +arrayWithArray, and so > on. Simple rule: If the class method name does *NOT* contain the word "copy" or "alloc", you have to retain the returned object in order to keep it around. Thus: arrayWithArray: returns an autoreleased instance. conversely: alloc allocWithZone: copy copyWithZone: mutableCopy mutableCopyWithZone: copyWithPinkFringeAndBangles Would all return an object the caller is considered to own and thus is responsible for arranging for its eventual release. --- Allan Noordvyk, Software Artisan e-mail: allan@ali.bc.ca ALI Technologies Voice: 604.821.6317 Richmond, Canada Fax: 604.279.5468 * NeXT and MIME mail welcome * "A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable." --- Les Lamport From bbum at codefab.com Thu Feb 19 13:20:47 1998 From: bbum at codefab.com (Bill Bumgarner) Date: Thu Nov 3 14:40:55 2005 Subject: ObjectiveC questions In-Reply-To: <199802192051.MAA13238@scv1.apple.com> Message-ID: <9802191620.AA471023@mung> Except +new, which is analogous to [[MyClass alloc] init]... it returns a -retain'ed instance. b.bum /* * Convenience constructors should autorelease the object before returning * it. So, if you call: * * [[MyClass alloc] init] * * You created the object, so you own it, and you are responsible for * releasing it. On the other hand, if you call: * * [MyClass newMyClass] * * MyClass created the object, so MyClass is responsible for releasing it * (with an autorelease). * */ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 615 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980219/1c015bf1/attachment.bin From ddavidso at apple.com Thu Feb 19 13:28:09 1998 From: ddavidso at apple.com (Douglas Davidson) Date: Thu Nov 3 14:40:55 2005 Subject: Correction: ObjectiveC questions Message-ID: <199802192128.NAA22238@scv2.apple.com> Anders asks what the ownership policy is for objects returned by methods like arrayWithArray:. The answer is: if you use alloc, new, or copy, or the withZone: versions thereof, you own the resulting object, and you have to release it when you're done with it. Likewise, if you explicitly retain an object, you have to release it at some point. Methods like arrayWithArray: are not on this list, so they return an object that you are not responsible for releasing (usually because it's autoreleased, occasionally because it's permanent, as in the case of a globally uniqued instance). This also means that you can't rely on these objects hanging around forever, so you need to retain them if you have a long-term need for them. Douglas Davidson Software Quality From mark at OAAI.COM Thu Feb 19 13:32:20 1998 From: mark at OAAI.COM (Mark Onyschuk) Date: Thu Nov 3 14:40:55 2005 Subject: Protocols can not be forward declared: documentation bug In-Reply-To: References: Message-ID: <199802192137.QAA07031@OAAI.COM> Hmm, it seems that the documentation is flat-out wrong - It's probably been wrong for a while too - I remember bumping into just this limitation years ago while working with a Wall St. client where we ran across it through trial-and-failure. [any Apple eyes scanning the group: this is definitely a problem that needs fixing]. Mark Begin forwarded message: >> On Thu, Feb 19, 1998 3:49 PM, Mark Onyschuk >> wrote: >> Unfortunately Objective C doesn't allow forward declarations >> of protocols (I can't imagine a good reason why not, so I >> think its an oversight of the design). >> >> Mark, > > But my ObjectiveC documentation clearly states that such > forward declarations are supported! In the section called > "Referring to Other Protocols" I read: > > "In such a situation, circularity results and neither > file will compile correctly. To break this recursive > cycle, you must use the @protocol directive to make a > forward reference to the needed protocol instead of > importing the interface file where the protocol is > defined. The following code excerpt illustrates how you > would do this: > > @protocol B; > > @protocol A > - Foo:(id )anObject; > @end > > Note that using the @protocol directive in this manner > simply informs the compiler that ``B'' is a protocol to > be defined later. It doesn't import the interface file > where protocol B is defined." > > What do you think of that? From hhoff at ragnarok.en.uunet.de Thu Feb 19 14:02:30 1998 From: hhoff at ragnarok.en.uunet.de (Holger Hoffstaette) Date: Thu Nov 3 14:40:55 2005 Subject: Protocols can not be forward declared: documentation bug In-Reply-To: <199802192137.QAA07031@OAAI.COM> References: <199802192137.QAA07031@OAAI.COM> Message-ID: <199802192202.XAA06913@ragnarok.en.uunet.de> I think protocol forward declarations stopped working with the arrival of the 2.7.x compiler releases - they definitely worked before, with older versions. I know, I've already used this feature. So, this might be one of those cases where the documentation is actually right and the compiler wrong. :) Holger -- hhoff"at"ragnarok.en.uunet.de (NeXTMail, MIME) 'Where I come from it's important to develop stuff that doesn't suck.' -- David Young From anders at milkweed.com Thu Feb 19 15:22:31 1998 From: anders at milkweed.com (Anders Pytte) Date: Thu Nov 3 14:40:55 2005 Subject: Correction: ObjectiveC questions Message-ID: On Thu, Feb 19, 1998 4:19 PM, Allan Noordvyk wrote: Simple rule: If the class method name does *NOT* contain the word "copy" or "alloc", you have to retain the returned object in order to keep it around. The reason I was confused, folks, is that I had just read documentation for [NSObject new] which seems to add the general class of methods [MyClass newMyClass] to Allan's rule, above. Certain example projects like Draw confirm this usage. Since +newMyClass seems very similar to +myClassWithStuff, I thought that maybe the same policy applied to the latter as well. Apparently it does not. I have received many responses but so far no one has provided a simple clear rule that accomodates newMyClass, so maybe we should add "new" to "copy" and "alloc". Many thanks to all who responded, Anders. -- Anders Pytte Milkweed Software Ferguson Hill Voice: (802) 472-5142 Cabot VT 05647 Internet: anders@milkweed.com ---------------------------------------------------------------- This message was created and sent using the Cyberdog Mail System ---------------------------------------------------------------- From rwarner at prv.com Thu Feb 19 15:39:52 1998 From: rwarner at prv.com (Rich Warner) Date: Thu Nov 3 14:40:55 2005 Subject: Peer-to-peer networking In-Reply-To: <9802191854.AA00639@lava.net> References: <3.0.3.32.19980219073156.006c11e4@gj.net> Message-ID: <3.0.3.32.19980219163952.006c2ae4@gj.net> At 08:54 AM 2/19/98 -1000, you wrote: > SimpleNetworkStarter might not work unless NetInfo is in its virgin state. > Did you start with /etc/hostinfo and /etc/netinfo that had not been >modified already? Yes! :) > >> It would be real helpful while debugging this, to know the key >> sequence for >> exiting to a UNIX shell while rebooting from CD-ROM. Anyone know >> this for >> PPC's?? Back on NextStation it was some goofy sequence like >> Alt-Right Shift- >> Break at just the right moment during bootup. Would allow me to undo >> my >tweaks >> to files and try again without reloading whole system. > > Are you really booting from a CD-ROM? If so, are you sure that it's not >being mounted as the root device? Because if it is, I can understand why >you're having problems since a CD-ROM isn't modifiable and NetInfo changes >need to be written to disk. Let me clarify. After the system hangs from using SimpleNetworkStarter, for example, it would be nice to boot from CD-ROM, escape to a shell prompt, and fix the files manually (after mounting the hard drive's file system). This saves much time over reloading the OS. This same technique is used, for example, when the root password has been forgotten. There is some "secret key combination" to accomplish it, and it must be done at just the right moment during bootup. > > The 's' boot flag will boot to single-user mode which is what you're >describing. I don't know how to specify boot flags on PPC hardware. If >the boot process allows you to stop it by pressing any key early in the >boot process as it does on Intel hardware, "bsd -s" would be a boot command >that would boot from the system disk with the lowest SCSI ID and would >mount that device as the root device. I've heard of people on PPC hardware >specifying boot flags in some sort of boot panel or some such. No, I don't need single-user mode, but that is handy to know. Best regards, R.D. Warner, owner Perceptual Research Ventures 1.970.416.7466 rwarner@prv.com http://www.gj.net/prv/ NOTE: This site is being reorganized From annard at webwarecorp.com Thu Feb 19 15:43:08 1998 From: annard at webwarecorp.com (Annard Brouwer) Date: Thu Nov 3 14:40:55 2005 Subject: Correction: ObjectiveC questions In-Reply-To: References: Message-ID: <9802192343.AA19365@webwarecorp.com> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 588 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980219/756566f4/attachment.bin From arti at lava.net Thu Feb 19 17:34:50 1998 From: arti at lava.net (Art Isbell) Date: Thu Nov 3 14:40:55 2005 Subject: Correction: ObjectiveC questions References: Message-ID: <9802200134.AA02187@lava.net> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 2578 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980219/527ea0d0/attachment.bin From rwarner at prv.com Thu Feb 19 18:12:32 1998 From: rwarner at prv.com (Rich Warner) Date: Thu Nov 3 14:40:55 2005 Subject: Peer-to-peer networking In-Reply-To: <9802200146.AA02301@lava.net> References: <3.0.3.32.19980219163952.006c2ae4@gj.net> Message-ID: <3.0.3.32.19980219191232.006c2338@gj.net> At 03:46 PM 2/19/98 -1000, you wrote: > Something's wrong with this picture. Booting from a CD-ROM would be >*slower* than booting from a hard disk. I'd be surprised if booting from >CD-ROM is supported because the boot process normally writes log entries >during the boot process, something that's not possible if the root file >system is on a CD-ROM. There may be some boot flag that turns off logging, >but the only CD-ROM booting that I'm familiar with under Mach occurs as >part of OS installation, and that hasn't been a route to a shell prompt in >the past (maybe Rhapsody is different). Art - Let me see if I can clarify it for you. I am attempting to boot from CD-ROM because the system hangs when booting from HD. I want to boot from CD-ROM so I can manually fix the file system on the HD. Make sense? It *is* supported. All I need to do is load the kernel from the CD-ROM and then escape to a UNIX prompt, where I can mount the file system on the HD. This is a common sysadmin trick for cases just like this where the system hangs on bootup. I know how to boot from the CD-ROM, all I need to learn is how to escape out of it to a prompt. I have successfully done this in the past with my Nextstation, but just need to know the key sequence for this 9600 PPC. Best regards, R.D. Warner, owner Perceptual Research Ventures 1.970.416.7466 rwarner@prv.com http://www.gj.net/prv/ NOTE: This site is being reorganized From arti at lava.net Thu Feb 19 18:02:19 1998 From: arti at lava.net (Art Isbell) Date: Thu Nov 3 14:40:55 2005 Subject: Correction: ObjectiveC questions References: <9802200134.AA02187@lava.net> Message-ID: <9802200202.AA02416@lava.net> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1107 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980219/25f65ed0/attachment.bin From mlaster at galstar.com Thu Feb 19 20:48:59 1998 From: mlaster at galstar.com (Mike Laster) Date: Thu Nov 3 14:40:55 2005 Subject: DO lookup using host:@"*" Message-ID: <199802200548.XAA23793@galaxy.galstar.com> Does anyone know which UDP port number DO host lookups use? From sebestyen_g at accentcomm.com Fri Feb 20 01:39:31 1998 From: sebestyen_g at accentcomm.com (Gabriel Sebestyen) Date: Thu Nov 3 14:40:55 2005 Subject: Weird DO behaviour (OS4.1 Mach) ... Message-ID: <34ED4F53.5475FBCC@accentcomm.com> Hi, I like DO world but sometimes experience strange things ... OK, let's face the problem itself. I've got a tool project which has two subthreads bound by DO. They are really simple threads and have 2-3 methods and no more. The main loop of the main thread looks like this: ... while (_isTerminating == NO) { pool = [[NSAutoreleasePool alloc] init]; [_runLoop runMode: NSDefaultRunLoopMode beforeDate: [NSDate distantFuture]]; //Check whether a signal has occured or (BOOL)shouldRunLoopBreak returns YES // if ([_killCenter test] == YES || (_delegate && [_delegate respondsToSelector: @selector(appRunLoopShouldBreak)] && (BOOL)[_delegate appRunLoopShouldBreak] == YES) ) { [self terminate]; } [pool release]; } ... The 2nd part of 'if' is added later to avoid the problem described: ... (_delegate && [_delegate respondsToSelector: @selector(appRunLoopShouldBreak)] && (BOOL)[_delegate appRunLoopShouldBreak] == YES) ... I created an NSTimer to check certain conditions repeatedly to stop the whole program. Here's the core of the alarm method (OK, I know this one's not the best :-( ): -(void) checkTimeout: nothing { //If time expired stop the app ... // if (_ping + _timeout < [NSDate timeIntervalSinceReferenceDate]) { NSLog(@"[Connection.checkTimeout:]: IO timeout occured!"); [self terminate]; } } Using this way of solution results the subthreads get stucked in, going to and endless event and the main loop doesn't want to quit in spite of the terminaton methods of all threads is called and ended successfully including the invalidation of the NSConnections. The last used method (?) of both subthreads was called continuosly and they were protesting ("I've been invalidated already!"). I suspect the run loops of them as the only origin of endlessly repeating calls. I solved the problem by adding the second part of central "if". This works well! So only one question remains: what is the difference between the two ways of termination: break the loop after the runloop iterations or from within the happening. The second always ends up with being in an endless story... Best regards, Gabriel Sebestyen -------------- next part -------------- A non-text attachment was scrubbed... Name: vcard.vcf Type: text/x-vcard Size: 435 bytes Desc: Card for Gábor Sebestyén Url : /mailman/archive/macosx-dev/attachments/19980220/139d4c43/vcard.vcf From bbum at codefab.com Fri Feb 20 07:32:17 1998 From: bbum at codefab.com (Bill Bumgarner) Date: Thu Nov 3 14:40:55 2005 Subject: Correction: ObjectiveC questions In-Reply-To: <9802192343.AA19365@webwarecorp.com> Message-ID: <9802201032.AA177214@mung> Well, +arrayWithArray: and the like DO return an autoreleased instance. +new returns a retained instance. One particular motivation for discouraging use of the generic factory method would be consistency. Also, consider: @implementation SomeClass static id sI = nil; + sharedInstance { if (sI == nil) sI = [self new]; return sI; } The above piece of code carries a significant risk of entering an infinite loop if: - sI is referred to [directly or indirectly] within the -init of the class - or if [SomeClass sharedInstance] is invoked as a part of the -init of SomeClass (or any of its super's) A corrected version: + sharedInstance { if (sI == nil) { sI = [self alloc]; [sI init]; } return sI; } So, +new also does not provide the same granularity of control in that it lumps together two discrete actions; the act of allocating vs. the act of initializing. b.bum The eminent "Anders Pytte" has written: > I have received many responses but so far no one has provided a > simple clear rule that accomodates newMyClass, so maybe we should add > "new" to "copy" and "alloc". > NeXT discouraged the use of +new in favour of using +alloc and then an initializer when the FoundationKit became available. Maybe because they didn't want to write the quoted sentence above? So, yes, if you use +newMyClass as a way of doing [[someClass alloc] init] then you're right. Annard -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1528 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980220/24c3a345/attachment.bin From stefan.huy at stud.uni-hannover.de Fri Feb 20 15:01:16 1998 From: stefan.huy at stud.uni-hannover.de (Stefan Huy) Date: Thu Nov 3 14:40:55 2005 Subject: NSInterfaceStyle Message-ID: <199802202200.XAA20067@studserv.stud.uni-hannover.de> Hi there! I was playing around with the rhapsody's interface styles. The appkit seems to be aware of three different styles at the moment: macintosh: The default style nextstep: Interesting because of the tear-off menus, but quite tricky to use for hierarchical menus at lower part of the menubar windows: A strange conglomerate of NeXT, Windows and (due to the AppleMenu of some Apps) Macintosh interface elements When you set them using "defaults write NSGlobalDomain NSInterfaceStyle 'theStyle' " every App uses the chosen interface style after the next login. Every App? No, there are still several small rebellic apps in a separate directory called "NextAdmin" that refuse to comply to the given rules. We all know that they use an OpenStep like interface when we run the Mac look and feel and they continue to do so when the global look and feel is switched. Quite iritating when you combine the NeXT styles with the similar OpenStep interface. The OpenStep way is much more usable considering the menus. How do they work this way? Which framework do they use, if they use one? It doesn't seem to be the standard AppKit. Can I use this look and feel for my own creations? If so, how? Thanks -Stefan __Stefan Huy___________________________________________________________ ____ ______ mailto:huy@stud.uni-hannover.de ________ http://www.stud.uni-hannover.de/~huy ______________________________________________________________________ From bbum at codefab.com Fri Feb 20 14:26:29 1998 From: bbum at codefab.com (Bill Bumgarner) Date: Thu Nov 3 14:40:55 2005 Subject: NSInterfaceStyle In-Reply-To: <199802202200.XAA20067@studserv.stud.uni-hannover.de> Message-ID: <9802201726.AA2957032@mung> The rebel apps are actually using a version of the NeXTSTEP 3.3 framework ported to Rhapsody/PPC simply so that certain apps (those in NeXTADMIN) could be ported to Rhapsody with little effort. Considering that the UIs for said apps-- all apps that help with the administration of machines/network via NetInfo-- are all wanting in a number of ways, it is not surprising that Apple chose this particular route to bring the Apps to rhapsody quickly. You can find the frameworks in /NextLibrary/PrivateFrameworks/ -- appkit.framework, most notably. For the next release of Rhapsody, it would not be surprising to see that some of the rebel apps have been redone to use the new frameworks and-- as such-- the new UI styles [and all the defaults]. Well, you COULD likely do a class-dump of the private frameworks and work up a remotely usable set of headers... but I would suspect that the NS 3.3 frameworks will go away in the very near future. [gee, wouldn't it be nice to see the LightHouse apps running under Rhapsody....?] b.bum /* * When you set them using "defaults write NSGlobalDomain NSInterfaceStyle * 'theStyle' " every App uses the chosen interface style after the next * login. Every App? No, there are still several small rebellic apps in a * separate directory called "NextAdmin" that refuse to comply to the given * rules. * * We all know that they use an OpenStep like interface when we run the Mac * look and feel and they continue to do so when the global look and feel * is switched. Quite iritating when you combine the NeXT styles with the * similar OpenStep interface. The OpenStep way is much more usable * considering the menus. * * How do they work this way? Which framework do they use, if they use one? * It doesn't seem to be the standard AppKit. Can I use this look and feel * for my own creations? If so, how? * * Thanks -Stefan * * __Stefan Huy___________________________________________________________ * ____ ______ mailto:huy@stud.uni-hannover.de ________ * http://www.stud.uni-hannover.de/~huy * ______________________________________________________________________ * */ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 2226 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980220/79a9c94a/attachment.bin From chad at pengar.com Fri Feb 20 16:21:23 1998 From: chad at pengar.com (Chad Leigh, Pengar Enterprises Inc and Shire.Net) Date: Thu Nov 3 14:40:55 2005 Subject: moving from OStep 4.2PR2 NT to RDR1/Intel with LIBRARY project Message-ID: I have a library project I made on NT with OStep 4.2PR2 (WWDC version) and am now trying to build it on RDR1/Intel (not YB). I am getting all my "globals" (variables and functions) as multiply defined at the link phase. My code has a myLibMain.m/.h file (other sources) plus some classes. Everything defined in that .m/.h file is getting the multiply defined error. Example: multiple definitions of symbol _BackEnd definition of _BackEnd in section (__TEXT, __const) others are in section (__TEXT, __text) or (__DATA, __common) I cannot find any sort of section specifiers in any make files or anything. Thanks for any tips thanks Chad --------------------------------------------------------------- Chad Leigh Pengar Enterprises, Inc and Shire.Net chad@pengar.com info@pengar.com info@shire.net Full service WWW services from just space to complete sites. Low cost virtual servers. DB integration. Tango. Email forwarding -- Permanent Email Addresses. POP3 and IMAP Email Accounts. mailto:info@shire.net for any of these. --------------------------------------------------------------- From rwarner at prv.com Fri Feb 20 18:45:06 1998 From: rwarner at prv.com (Rich Warner) Date: Thu Nov 3 14:40:55 2005 Subject: Peer-to-peer networking In-Reply-To: <199802202152.NAA28028@sounds.WA.COM> References: <3.0.3.32.19980219163952.006c2ae4@gj.net> <3.0.3.32.19980219163952.006c2ae4@gj.net> Message-ID: <3.0.3.32.19980220194506.006b7680@gj.net> At 01:52 PM 2/20/98 -0800, you wrote: >Rich, > >You may not think that you need single-user mode, but you do. There are two >reasons for this: > >1) You mention later that you only want to boot from CD-ROM so that you can >escape to a Unix prompt - well, that's what single-user mode is! Ummm actually "no" for the generic case. Will try it for this case since it is a networking prob--but what about the case where you forgot the root password? Single-user still has you using booting from the HD, right? Thus there may be file corruptions/mods that it will not get around. It's a good trick to know how to do for those kinds of cases. In the past I have used a read-only boot floppy for this kind of manuever on both the NS3.3 machine plus AT&T SVR3 and SVR4. It is pretty common, based on my experience. > >2) With NEXTSTEP and OPENSTEP, you can only boot the CD-ROM into the >single-user Unix prompt. There are major complications in running the entire >graphical user interface with a read-only disk and no writable swap space or >temporary files (/tmp). Since the only reason to boot from CD-ROM is for the >low-level commands that one can run from the Unix prompt, I believe that NeXT >saved themselves a lot of trouble by only allowing single-user Unix shells >when booting from CD, rather than creating a whole lot of trouble for >something that wouldn't be used (the GUI). When you fall out of the boot into a UNIX prompt as I have described, you are not in a graphical interface. > >So, if you're working with Intel, there should be a way to boot Rhapsody from >CD-ROM. I would assume that it is similar to the instructions for OPENSTEP. >However, if you have PowerPC, which I do, then I cannot tell you how to do >this, since I haven't figured it out. But I can say that it probably involves >single-user mode because that is the only kind of Unix prompt you can get >with a read-only boot volume such as CD-ROM. Thanks for the input. Will try single-user mode this weekend and see if I can get passed the networking probs with its help. All the help has been appreciated and will post the specifics that I glean from this experience once it is completely resolved. Best regards, R.D. Warner, owner Perceptual Research Ventures 1.970.416.7466 rwarner@prv.com http://www.gj.net/prv/ NOTE: This site is being reorganized From norther at coretek.co.kr Fri Feb 20 22:30:21 1998 From: norther at coretek.co.kr (Chu-Hyoung Park) Date: Thu Nov 3 14:40:56 2005 Subject: Managing NSColorList. Message-ID: <34EE747D.2E9BEFA6@coretek.co.kr> Hi..there.. I've got lots of informations from you guys...^^ Thank you always.. Well.. I am trying to creat and manage a colorlist..(which can be an instance of NSColorList..) Here is a code I've generated.. This code is just for testing of managing Colorlist... // NSColorList *colorList = [[NSColorList availableColorLists] objectAtIndex:(list index)]; NSArray *colorNames = [colorList allKeys]; NSColor *clr = [NSColor colorWithCatalogName:[colorList name] colorName:[colorNames objectAtIndex:(name index)]]; // (list index) & (name index) are integer indexes that are not out of bounds. I don't think this code has any problem...hew... but, except when [colorList name] is @"System", clr is nil....(on OPENSTEP NT). all of colorlists...such as NeXT.clr System.clr myColorList.clr etc. are in right directory. Anybody has any idea about this? Or else should I make a subclass of NSColor to manage a Colorlist of my own? Waiting for your reply....^^ Thank you in advance.. Park, Chu-Hyoung (norther@coretek.co.kr) (http://www.coretek.co.kr) From rwarner at prv.com Sat Feb 21 07:36:07 1998 From: rwarner at prv.com (Rich Warner) Date: Thu Nov 3 14:40:56 2005 Subject: Peer-to-peer networking In-Reply-To: <9802210906.AA00762@lava.net> References: <3.0.3.32.19980220194506.006b7680@gj.net> Message-ID: <3.0.3.32.19980221083607.006c0a1c@gj.net> At 11:06 PM 2/20/98 -1000, you wrote: >> Ummm actually "no" for the generic case. Will try it for this case >> since it >> is a networking prob--but what about the case where you forgot the >> root >> password? > > User passwords are kept in NetInfo. NetInfo hasn't been started in >single-user mode, so root has no password in single-user mode. NeXT >hardware supported storing a hardware password for security. PPC hardware >probably doesn't support this feature (yet). This is a major security >problem, so Apple needs to fix it. Perhaps there is more than one way of doing things, but the way I am talking about is good in the generic case, for *any* type of file corruption on the HD (not just problems which may be turned off in single-user mode). > >don't believe booting from a CD-ROM is supported other than during an >operating system installation. Booting NT from a CD-ROM isn't supported Yeah that is how I have done it with NS3.3. The system install floppies are also the way I have done it on SVR3, SVR4 systems. The "secret key sequence"--which I still hope someone will know for Rhapsody by the way (that was my actual question!)--applies to breaking out of the install process and dropping to a UNIX shell. Best regards, R.D. Warner, owner Perceptual Research Ventures 1.970.416.7466 rwarner@prv.com http://www.gj.net/prv/ NOTE: This site is being reorganized From kelleysoft at pressenter.com Sat Feb 21 17:49:51 1998 From: kelleysoft at pressenter.com (kelleysoft@pressenter.com) Date: Thu Nov 3 14:40:56 2005 Subject: flushWindow & cursor flicker Message-ID: Hello all, I'm getting a lot of cursor flicker while calling flushWindow (I have to call flushWindow very rapidly for drag-refreshing). Are there any techniques for getting around, or at least minimizing the flicker? It's really harmless, but annoyingly noticable. Any ideas?? Thanks in advance. Greg Betzel Kelley Software From Matthew_Seaman at plsys.co.uk Mon Feb 23 02:52:28 1998 From: Matthew_Seaman at plsys.co.uk (Matthew Seaman) Date: Thu Nov 3 14:40:56 2005 Subject: Peer-to-peer networking a success (mostly) In-Reply-To: <3.0.3.32.19950331203519.006bb31c@gj.net> References: <3.0.3.32.19950331203519.006bb31c@gj.net> Message-ID: <199802231052.KAA07383@ivyhouse.plsys.co.uk> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1426 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980223/f025a6fd/attachment.bin From Matthew_Seaman at plsys.co.uk Mon Feb 23 03:35:26 1998 From: Matthew_Seaman at plsys.co.uk (Matthew Seaman) Date: Thu Nov 3 14:40:56 2005 Subject: Peer-to-peer networking a success (mostly) In-Reply-To: <199802231128.LAA09589@onestep.co.uk> References: <199802231052.KAA07383@ivyhouse.plsys.co.uk> <199802231128.LAA09589@onestep.co.uk> Message-ID: <199802231135.LAA07462@ivyhouse.plsys.co.uk> Ooops. How embarassing. David Andrew Knight wrote: > You wrote: > > Nowadays you're meant to use a network number out of the address ranges > > specifically set aside for private networks in RFC1918. For a 24 bit > > network prefix (ie. a Class C), you can use eg. 192.163.99.yyy (anything > > from the 192.163 block is OK) However, if your network is never ever > > going to be connected to the Internet, even at one remove by a dial up > > connection from one of your machines, that probably doesn't matter. > > Umm, should that be 192.168 ? Yes --- I goofed. Here's the chapter and verse: 3. Private Address Space The Internet Assigned Numbers Authority (IANA) has reserved the following three blocks of the IP address space for private internets: 10.0.0.0 - 10.255.255.255 (10/8 prefix) 172.16.0.0 - 172.31.255.255 (172.16/12 prefix) 192.168.0.0 - 192.168.255.255 (192.168/16 prefix) We will refer to the first block as "24-bit block", the second as "20-bit block", and to the third as "16-bit" block. Note that (in pre-CIDR notation) the first block is nothing but a single class A network number, while the second block is a set of 16 contiguous class B network numbers, and third block is a set of 256 contiguous class C network numbers. Matthew -- Certe, Toto, sentio nos in Kansate nin iam adesse. Matthew Seaman P&L Systems, 12 The Broadway, Amersham, Bucks., HP7 0HP, UK Tel: +44 1494 432422 Fax: +44 1494 432478 From you at metrowerks.com Mon Feb 23 13:34:27 1998 From: you at metrowerks.com (Lawrence You) Date: Thu Nov 3 14:40:56 2005 Subject: Fwd: Re: Rhapsody- Unix TCP sockets Message-ID: <1323881539-71142619@cupertino.metrowerks.com> Follow-up: 674718 Ooops! I forgot to enclose the files last time. Here they are. -Lawrence -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/mac-binhex40 Size: 7264 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980223/52478d04/attachment.bin -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/mac-binhex40 Size: 6918 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980223/52478d04/attachment-0001.bin From you at metrowerks.com Mon Feb 23 14:20:00 1998 From: you at metrowerks.com (Lawrence You) Date: Thu Nov 3 14:40:56 2005 Subject: Fwd: Re: Rhapsody- Unix TCP sockets Message-ID: <1323878805-71307047@cupertino.metrowerks.com> Uh oh. Major stupidity going on here... On 2/23/98 1:40 PM, Lawrence You wrote: >Follow-up: 674718 > >Ooops! I forgot to enclose the files last time. Here they are. > >-Lawrence Double ooops. I apologize, these were supposed to go somewhere else! Shoot. -Lawrence From veilljf at cmg.FCNBD.COM Mon Feb 23 15:16:56 1998 From: veilljf at cmg.FCNBD.COM (Jean-Francois Veillette) Date: Thu Nov 3 14:40:56 2005 Subject: Runtime information Message-ID: <199802232316.RAA04374@asahi.cmg.FCNBD.COM> Is there a method to have a list of subclass for a given class ? something like : NSArray *list = [MyAbstractClass listOfSubclass]; that would return me a list of Class object. thank, - jfv From carlos at ccsi.canon.com Mon Feb 23 17:14:33 1998 From: carlos at ccsi.canon.com (Carlos Parada) Date: Thu Nov 3 14:40:56 2005 Subject: Runtime information References: <199802232316.RAA04374@asahi.cmg.FCNBD.COM> Message-ID: <199802240115.RAA25480@ccsi.canon.com> A non-text attachment was scrubbed... Name: not available Type: application/x-nextmail Size: 1822 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980223/e350f003/attachment.bin From bbum at codefab.com Mon Feb 23 21:34:27 1998 From: bbum at codefab.com (Bill Bumgarner) Date: Thu Nov 3 14:40:56 2005 Subject: Runtime information In-Reply-To: <199802240115.RAA25480@ccsi.canon.com> Message-ID: <9802240034.AA279734@mucous> Oh, forgot something... Class objects implement enough of the NSObject protocol that -retain and -release work; i.e. class objects can be placed in NSArray objects without a problem. b.bum From press at paragon-software.com Tue Feb 24 06:28:16 1998 From: press at paragon-software.com (press@paragon-software.com) Date: Thu Nov 3 14:40:56 2005 Subject: Paragon Software Ships OAK CORBA 2.0 ORB for Apple Rhapsody Operating System Message-ID: <199802241428.JAA01521@grub.paragon-software.com> Paragon Software Ships OAK CORBA 2.0 ORB for Apple Rhapsody Operating System ---------------------------------------------------------------------------- Key features: - Full IIOP interoperability with leading CORBA 2.0 ORBS - Objective-C and C++ language bindings - Available for all Apple Enterprise plaftorms (NeXTSTEP, OPENSTEP, Rhapsody, WebObjects) plus Windows NT, Solaris, HP/UX, and Linux Vienna, Virginia - February 13, 1998 - Paragon Software Inc., a leading supplier of distributed object tools and solutions for the enterprise market, has released a version of its OAK CORBA 2.0 ORB suite for Apple Computer new Rhapsody operating system. A proven tool in its fifth major release, OAK is the world only shipping CORBA 2.0 ORB with Objective-C language bindings and OS/compiler support for Apple/NeXT enterprise environments including NeXTSTEP, OPENSTEP, and WebObjects, and now the entire range of Rhapsody platforms (PPC, Intel, and Windows Yellow Box). "We've been amazed at the interest in CORBA from the embryonic Rhapsody developer community, and are proud to be able to bring them an industrial-strength solution at so early a stage", said Jeff Marshall, founder and CEO of Paragon Software. "I take this as further evidence of CORBA critical mass in the industry, and the widespread recognition that it will be an indispensible building block for the next generation of distributed systems". OAK includes an Internet Inter-Orb Protocol (IIOP) implementation that allows Objective-C objects full two-way interoperability with industry-leading ORBs like Iona Technologies' ORBIX and Visigenic VisiBroker. This makes it the ideal mechanism for opening up new and existing NeXTSTEP, OPENSTEP, WebObjects, and Rhapsody systems to standards-based, cross- platform, language-independent messaging. OAK finally makes it possible for developers to easily deliver the functionality that users and managers have been asking for, such as adding Java front-ends to applications written in Objective-C, or giving WebObjects servers transparent access to CORBA-wrapped legacy systems and services. For developers with broader platform support needs, OAK is also available with standard C++ bindings on all major operating systems, including Windows NT, Solaris, HP-UX, and Linux. Fully-functional 30-day evaluation copies of OAK are available for download from Paragon website at http://www.paragon-software.com For further information, please contact: Paragon Software Inc. 2136 Gallows Road, Suite G Vienna, VA 22027 voice 703-876-1700 fax 703-876-1818 info@paragon-software.com http://www.paragon-software.com From CatGuy at lamg.com Tue Feb 24 06:28:40 1998 From: CatGuy at lamg.com (CatGuy@lamg.com) Date: Thu Nov 3 14:40:56 2005 Subject: pointer devices??? Message-ID: <4150587358.9733451@lamg.com> Does anyone know how many pointer devices Rhapsody will/does support? In particular, does it support two joysticks for simulatenous two-player games? Does it support two mice/graphics tablets/trackballs/touchpads/pointer devices for two-handed graphic manipulations? Also, how many buttons on a pointer device does Rhapsody support? Does it support three-button mice/pointers for 3-D graphics work? Does it support five button pointers for chording? And in a related area, does it support input from MIDI keyboards and other MIDI musical instruments? --Milo (CatGuy@lamg.com) -- Bast and Tameran witchcraft site at: or From stark at easynet.fr Tue Feb 24 06:29:11 1998 From: stark at easynet.fr (stark@easynet.fr) Date: Thu Nov 3 14:40:56 2005 Subject: Runtime information References: <9802240034.AA279734@mucous> Message-ID: <9802241429.AA00519@easynet.fr> Hi, Carlos Parada wrote: > Note you can get the class from a string using NSClassFromString() foundation function. I believe NSArray can't hold classes. Classes are objects. (Sure in smalltalk the concept much cleaner, but the feature is in ObjC) Try to guess what those two lines gives: NSLog( @"%d", [NSString isKindOfClass:[NSObject class]] ); NSLog( @"%d", [NSMutableArray isKindOfClass:[NSArray class]] ); in a later mail, you wrote: > > Oh, forgot something... Class objects implement enough of the NSObject > protocol that -retain and -release work; i.e. class objects can be placed > in NSArray objects without a problem. > It couldn't be otherwise. Any method implemented at Object level (in ObjC) is also a class method (so it taste like 'classes are objects'). This look the same with NSObject. You can check this with the code: -- BEGIN -- easynet% cat y.m #import @interface NSObject(Test) - (void)foo; @end @implementation NSObject(Test) - (void)foo { NSLog( @"Foo called on [%@]", self ); } @end int main() { NSAutoreleasePool *thePool = [[NSAutoreleasePool alloc] init]; NSObject *theObject = [[[NSObject alloc] init] autorelease]; [theObject foo]; [NSString foo]; [thePool release]; return 0; } easynet% cc -ObjC y.m -o y -framework Foundation easynet% ./y Feb 24 14:44:20 y[401] Foo called on [] Feb 24 14:44:20 y[401] Foo called on [NSString] easynet% -- END -- This is, IMHO, an obscure corner of ObjC. (ie: a syntaxic "+foo" invocation can execute a real "-foo" implementation) Btw, the solution given in you first mail is wrong * You misspelled 'subclasses' as 'array' * You built an inifite loop * You try to get the superclasses, not the subclasses At least in OPENSTEP, there is an objc/objc-runtime that suggest an implementation of the requested feature (given here, with a few lines of code to turn it into a working program) -- BEGIN -- easynet% cat z.m #import #import int main() { NSAutoreleasePool *thePool = [[NSAutoreleasePool alloc] init]; NXHashTable *class_hash = objc_getClasses(); NXHashState state = NXInitHashState(class_hash); Class class; while (NXNextHashState(class_hash, &state, (void **)&class)) NSLog( @"%@", NSStringFromClass( class ) ); [thePool release]; return 0; } easynet% cc -ObjC z.m -o z -framework Foundation easynet% ./z Feb 24 15:17:10 z[506] NXPort Feb 24 15:17:11 z[506] NSConcreteMutableDictionary Feb 24 15:17:11 z[506] NSConcreteDictionary Feb 24 15:17:11 z[506] NXConstantString Feb 24 15:17:11 z[506] NSCalendarDate Feb 24 15:17:11 z[506] NSPerformTimer Feb 24 15:17:11 z[506] NSImmutableRangeCharacterSet Feb 24 15:17:11 z[506] NSNonsavingDefaultsManager Feb 24 15:17:11 z[506] NSMutableDictionary Feb 24 15:17:11 z[506] _NSSetEnumerator Feb 24 15:17:11 z[506] NSDecimalNumberHandler Feb 24 15:17:11 z[506] NSInvertedCharacterSet Feb 24 15:17:11 z[506] NSCString Feb 24 15:17:11 z[506] NSMutableArray Feb 24 15:17:11 z[506] NSInvocation Feb 24 15:17:11 z[506] _NSUserAccount [rest of output omited] -- END -- I don't know if there is an OpenStep way to get this information, or even a Rhapsody way... Cheers, --fred PS: It would be nicer to actually try code before posting it, when it is trivial to turn it into a working program... From adul at cmg.FCNBD.COM Tue Feb 24 09:35:03 1998 From: adul at cmg.FCNBD.COM (Albert Dul) Date: Thu Nov 3 14:40:56 2005 Subject: Smarter Formatters? Message-ID: <199802241735.LAA00310@falstaff.cmg.FCNBD.COM> Here's what we'd like to do: Type a value into a field, like 1.2345, and have it displayed as 1.23 (restrict to 2 decimal places), and then be able to obtain the full precision value again. We subclassed NSNumberFormatter, and overrode getObjectValue:forString:errorDescription: to intercept the incoming value and sock it away in a seperate ivar, 'realValue'. This kind of works. If the cursor is NOT in this input field when the value of realValue is obtained, this actually works. But if the cursor IS in the input field when the value is checked, the value on the screen (the truncated value) is sent to getObjectValue:forString:errorDescription: and stored in realValue, blowing away our full precision value. I'm assuming that the field's textDidEnd.. bla bla chain is being invoked, causing this. Anyway, is there any way to accomplish the above desired functionality using formatters? It does about 90% of what we need, and we'd rather avoid reimplementing all this if possible. Thanks, Albert Dul Capital Markets Systems First Chicago NBD --- Wk: adul@cmg.fcnbd.com Hm: aldul@concentric.net Cybermedia First Aid 98:"Fixes tens of thousands of Windows problems and provides protection from hard disk failures, crashes and other problems" Tens of thousands? From jg at cs.umass.edu Tue Feb 24 14:28:08 1998 From: jg at cs.umass.edu (John Greene) Date: Thu Nov 3 14:40:56 2005 Subject: Problems w/ ScreenDoor and Xnext In-Reply-To: <199802210436.UAA19848@ignem.omnigroup.com> Message-ID: Hi -- 1. OK. I give up. Can someone tell me what the problem is here? Trying to run ScreenDoorPPC. I have all the GL stuff in place. Feb 24 15:11:30 ScreenDoor[1728] *** Uncaught exception: *** -[NSConcreteMutableArray objectAtIndex:]: index (0) beyond bounds (0) stack: 0x18047c6c 0x1805ea38 0x1805f528 0x1805f980 0x1805f8cc 0x180037d8 0x1800397c 0x55a0 0x89fc 0x8630 0xd840 0x45e4 0x4490 2. Xnext seems to be "almost there". When I launch it, and OK the splash dialog, green lines start showing up all over the screen when I mouse the mouse around... like Moire patterns. Has anyone seen this? I'm running DR1/PPC 8500/120 w/ 233 upgrade board. 1024x768 in thousands (I think it's thousands). Lastly, is it cool post on both rhap-dev and rhap-talk? This seems relevant on both. Thanks again, gang! -- . Qapla', . ' John Greene - Software Specialist . * . Computer Science Computing Facility ` University of Massachusetts Amherst Web: Mac: -jg (jg@cs.umass.edu) L E T ' S G O F L Y E R S ! From jg at cs.umass.edu Tue Feb 24 14:49:10 1998 From: jg at cs.umass.edu (John Greene) Date: Thu Nov 3 14:40:56 2005 Subject: NFS and the kernel In-Reply-To: <199802220437.UAA29079@ignem.omnigroup.com> Message-ID: Hi -- Pardon this if I don't quite ask it correctly... One of the complaints about Linux is that NFS is not part of the kernel... Is it on Rhapsody? Will Rhapsody (which will ultimately run) on a G3 with a fast disk be a better NFS server than a Linux box? That seems to be the big question around here. -- . Qapla', . ' John Greene - Software Specialist . * . Computer Science Computing Facility ` University of Massachusetts Amherst Web: Mac: -jg (jg@cs.umass.edu) L E T ' S G O F L Y E R S ! From epeyton at cmg.FCNBD.COM Tue Feb 24 11:25:54 1998 From: epeyton at cmg.FCNBD.COM (Eric Peyton) Date: Thu Nov 3 14:40:56 2005 Subject: Right Mouse Button Message-ID: <199802250128.TAA10935@mercury.cmg.FCNBD.COM> I know that this has probably been covered before, but I can't seem to find it. I've got a cold, I'm cranky and I didn't notice the answer in any of the usual places. I am porting a game that expects the user to have a right mouse button. I don't have a PPC machine, so I do have a right mouse button. How should I handle this? Should I pick a control character and when the user presses that and a mouse down translate that into a right mouse for the game? rightMouse[Down|Dragged|Up] are all implemented in the Openstep API. Does apple translate a command character into these already? Thanks for any help, Eric From gmcpherson at rmit.edu.au Tue Feb 24 20:14:10 1998 From: gmcpherson at rmit.edu.au (Greg McPherson) Date: Thu Nov 3 14:40:56 2005 Subject: Endianess of Rhap In-Reply-To: <199802241735.LAA00310@falstaff.cmg.FCNBD.COM> Message-ID: I've got some raw data to read. It originated on a DOS system. When I read it in MacOS, I've got to byteswap it all. No problem. Now we have Rhap PPC and Rhap Intel. How is data handled. Are they both big or Little Endian, or is PPC Big and Intel Little? If they are not the same, how do folks usually handle this? -------------------------------------------------- Greg McPherson Seismology Research Centre Mac Programmer RMIT - Plenty Road Ph: +61 3 9468 2619 Bundoora, Victoria 3083 Fax:+61 3 9467 6184 Australia gmcpherson@rmit.edu.au seismology.sm.rmit.edu.au From gmcpherson at rmit.edu.au Tue Feb 24 21:36:41 1998 From: gmcpherson at rmit.edu.au (Greg McPherson) Date: Thu Nov 3 14:40:56 2005 Subject: Endianess of Rhap In-Reply-To: <199802250448.UAA22881@ignem.omnigroup.com> Message-ID: >> I've got some raw data to read. It originated on a DOS >> system. When I read it in MacOS, I've got to byteswap >> it all. No problem. >> >> Now we have Rhap PPC and Rhap Intel. How is data handled. >> Are they both big or Little Endian, or is PPC Big and >> Intel Little? > >PPC is big and Intel is little. > >> If they are not the same, how do folks usually handle this? > >Check out the functions in : to read long >ints from the DOS-native file, you'd use NSSwapLittleLongToHost(); >to write them to the file, you'd use NSSwapHostLongToLittle(). > Ken Excellent. That's just what I need. I'm glad I won't have to fill my code with preprocessor #ifs Greg From agpdev at stad.dsl.nl Wed Feb 25 02:02:50 1998 From: agpdev at stad.dsl.nl (R.H van Amerongen) Date: Thu Nov 3 14:40:56 2005 Subject: Jump from button to button. Message-ID: Hi all, I am looking for a method that let you position your 'cursor' and 'pointer' automatically over discrete UI elements. I will use this for a kind of POS program. But how will I implement this in Rhapsody? I will let the pointer start jumping from element to element with the mouse or a trackbal when he is inside a KeyAndFront window or in a Panel ( I think this is also a great help for people with disabilities ). BTW why dont make Apple a trackball on the upper right corner of the keyboard. Your wrist will get more rest. I know you can jump with the Tab key, but this is not what I need or looking for. Any Ideas or comments? Where should I start? Rene van Amerongen From chad at pengar.com Wed Feb 25 07:51:03 1998 From: chad at pengar.com (Chad Leigh, Pengar Enterprises Inc and Shire.Net) Date: Thu Nov 3 14:40:56 2005 Subject: NSThread detachNewThreadSelector... and memory management Message-ID: Hi I am doing the following: myObj = [[MyObjClass alloc] init]; [NSThread detachNewThreadSelector:@selector(aSelector:) toTarget:myObj withObject:foo]; Should I autorelease myObj before detaching the thread? What should I do about managing myObj in terms of memory leaks, ref couting, releasing, etc? Thanks Chad --------------------------------------------------------------- Chad Leigh Pengar Enterprises, Inc and Shire.Net chad@pengar.com info@pengar.com info@shire.net Full service WWW services from just space to complete sites. Low cost virtual servers. DB integration. Tango. Email forwarding -- Permanent Email Addresses. POP3 and IMAP Email Accounts. mailto:info@shire.net for any of these. --------------------------------------------------------------- From bbum at codefab.com Wed Feb 25 08:13:18 1998 From: bbum at codefab.com (Bill Bumgarner) Date: Thu Nov 3 14:40:56 2005 Subject: NSThread detachNewThreadSelector... and memory management In-Reply-To: Message-ID: <9802251113.AA1863910@mung> Some simple rules: (1) The Main Event Loop (in WebObjects, the Response/Request loop) maintains an autorelease pool automatically. The pool is emptied at the bottom of the loop. (2) For any thread, you either need to start the NSRunLoop that is automatically created and assigned to the thread (see NSRunLoop's +currentRunLoop method) which will automatically maintain an autorelease pool as it loops OR you need to create and maintain an autorelease pool yourself. Something like: while (thread_is_looping_or_running) { p = [[NSAutoreleasePool alloc] init]; ... do stuff ... [p release]; } So, in short, there should always be an autorelease per thread-- either maintained manually or automatically by the NSRunLoop. ---- With that said, object ownership is as follows: (1) Any object sent -retain will live until sent -release. Thread ownership does not matter. I.e. If one thread sends -retain to increase the retain count to 1 and another -release to decrease it to 0, the object will be deallocated. (2) Any object sent -autorelease will be added to the current thread's autorelease pool through the use of NSAutoreleasePool's +addObject: method (note-- it is a class method). So, any object sent -autorelease is guaranteed to stick around until the bottom of the current thread's run loop. (3) If you want an object to pass "ownership" of an object from one thread to another, -retain it in the first thread and -release or -autorelease it in the second thread (obviously, don't -release it unless you mean it!). So, to answer your question, you would do something like (if you wanted to be really anally retentive-- I am and, as a result, I spend a hell of a lot less time debugging than I used to): myObj = [[MyObjClass alloc] init]; // implies a -retain!!! [NSThread detachNewThreadSelector:@selector(aSelector:) toTarget:myObj withObject:foo]; And in -aSelector: - (void) aSelector: (MyObjClass *) myObj { // either start the run loop (creating an autorelease pool) and do // the following as the first event of the run loop OR create an // NSAutoreleasePool instance here. // This would be the first task of this thread-- either as the // first event" of the run loop OR as the first task after creating // your autorelease pool. // These next two lines can be commented out, obviously, but are // here simply so that we know what is REALLY going on [myObj retain]; // -retain because this "thread"/"run loop" owns the object [myObj release]; // balancing the -retain from the original thread // if you wanted myObj to automatically go away at the end of first // pass through the run loop-- or, for a thread that doesn't loop, // at the end of the threads execution-- the end of this method-- // then: [myObj autorelease]; } Hope that helps. b.bum Begin forwarded message: Date: Wed, 25 Feb 1998 07:49:01 -0800 (GMT-0800) Originator: rhapsody-dev@omnigroup.com From: "Chad Leigh, Pengar Enterprises Inc and Shire.Net" To: Multiple recipients of list Subject: NSThread detachNewThreadSelector... and memory management X-Comment: To unsubscribe, follow directions at http://www.omnigroup.com/MailArchive/ Hi I am doing the following: myObj = [[MyObjClass alloc] init]; [NSThread detachNewThreadSelector:@selector(aSelector:) toTarget:myObj withObject:foo]; Should I autorelease myObj before detaching the thread? What should I do about managing myObj in terms of memory leaks, ref couting, releasing, etc? Thanks Chad --------------------------------------------------------------- Chad Leigh Pengar Enterprises, Inc and Shire.Net chad@pengar.com info@pengar.com info@shire.net Full service WWW services from just space to complete sites. Low cost virtual servers. DB integration. Tango. Email forwarding -- Permanent Email Addresses. POP3 and IMAP Email Accounts. mailto:info@shire.net for any of these. --------------------------------------------------------------- -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 4522 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980225/c79a1db7/attachment.bin From rwarner at prv.com Thu Feb 26 07:43:32 1998 From: rwarner at prv.com (Rich Warner) Date: Thu Nov 3 14:40:56 2005 Subject: Using debugger Message-ID: <3.0.3.32.19980226084332.006c0730@gj.net> Hi - I'm used to the NS3.3 debugger where you select the line of source where you want a breakpoint, then press a button on the Edit GUI interface to set it. Don't see that in Rhapsody? Found a panel under the cog-shaped icon that displays the breakpoints and allows one to disable or remove them, etc., but don't see how to set them. More baffling yet, tried from the command-line interface: b filename:methodname and that did not work either. It said it did not find "functionname". Ummm, possibly related concern... When I single-step through prog it does not pull up the source code associated with the location. It is like it does not have any symbol information--yet I compiled with the debug target. As I'm writing this it occurs to me I can find the symbol file in the directory and load that manually, but figure there must be some silly thing I'm not doing in the GUI interface. ?? Will also try manually sticking a -DDEBUG in the makefile.preamble. Must be a simple matter, but thought I'd ask in case it is a known pending issue with the dev version. Didn't see anything in online gdb doc to suggest different operation from my NS3.3 experience, except did note the "View" command for making GDB dynamically display the source code. Will try that as a fix too. Best regards, R.D. Warner, owner Perceptual Research Ventures 1.970.416.7466 rwarner@prv.com http://www.gj.net/prv/ NOTE: This site is being reorganized From rwarner at prv.com Thu Feb 26 07:31:04 1998 From: rwarner at prv.com (Rich Warner) Date: Thu Nov 3 14:40:56 2005 Subject: Peer-to-peer networking Message-ID: <3.0.3.32.19980226083104.006bbe84@gj.net> Hi - Some followup caveats on what I have found. I tried running only HostManager and selecting "Use Local Domain Only" plus sticking in a name for my computer and accepting the default IP address. HostManager reboots for you and when it came up I got an error msg from lookupd (uncaught exception: Attempt to insert nil object). So I restored from /usr/templates then tried running SimpleNetworkStarter (again). This may not be a fair test because there is not a network.nidb file over in /usr/templates/client/etc/netinfo to restore it to its original state. At any rate, in SimpleNetworkStarter I did the same thing that I have done several times before (and got the same result). I chose "Provide Services Below", let it pick a default host name and default addy, and checked the "Maintain Master Copy of Network Data" option. It asked me to plug it into the network which I did and then it generates an error about duplicate tags. Possibly the trick here is to get network.nidb back into virgin state. ?? There is a third approach that someone has mentioned: Removing serves attribute from /machine/broadcasthost and I will try that next. Best regards, R.D. Warner, owner Perceptual Research Ventures 1.970.416.7466 rwarner@prv.com http://www.gj.net/prv/ NOTE: This site is being reorganized From rwarner at prv.com Thu Feb 26 09:52:08 1998 From: rwarner at prv.com (Rich Warner) Date: Thu Nov 3 14:40:56 2005 Subject: Peer-to-peer (better solution) Message-ID: <3.0.3.32.19980226105208.006bc5ec@gj.net> Hi - I tried a couple things that give a better, cleaner, fix and want to pass those along. After restoring /etc/hostconfig and /etc/iftab to their virgin states (via /usr/template/client/etc/) I did the following. 1. niutil -destroyprop . /machines/broadcasthost serves 2. edit /etc/hostconfig and put in host name plus -NO- for routing 3. edit /etc/iftab and put in entry for en0 with ip address and netmask Note that system would hang on reboot if -AUTOMATIC- was in hostconfig for either host name or routing option. System now boots with no hangs and only one trivial warning msg (when /etc/startup/1700_NFS is run) about how autonfsmount can't find IP address for the system. Probably simple to fix that next round. FTP works great. Just speculating, but wondering if my config is a little out of the mainstream for the dev release and hence the problems. ?? I don't have a NetInfo network already existing, to plug the developer release into. Just doing it as a stand-alone that talks to my Win/95 box via a 568-a crossover cable. Anyone else out there have a similar configuration, but no probs with HostManager or SimpleNetworkStarter? Just curious. Appreciate all the "pieces to the puzzle" people have contributed. Best regards, R.D. Warner, owner Perceptual Research Ventures 1.970.416.7466 rwarner@prv.com http://www.gj.net/prv/ NOTE: This site is being reorganized From rwarner at prv.com Thu Feb 26 09:56:20 1998 From: rwarner at prv.com (Rich Warner) Date: Thu Nov 3 14:40:56 2005 Subject: Peer-to-peer networking In-Reply-To: <199802261609.KAA02074@s18.sl.usl.edu> Message-ID: <3.0.3.32.19980226105620.006c7f58@gj.net> >Hi. Sorry I haven't been following this list, but your post caught my attention. >What exactly are you trying to do? > >I have an Intel machine running 4.2 Mach connected via PPP. I'm trying to >connect one or more other machines running Win95/Linux/whatever to it via >Ethernet and have them all share the same PPP connection. > >Is this anything like what you are doing? Do you have any suggestions? Have you >used 'Squid'? Brian - Not too much. But I do have FTP capability now between a 9600 Rhapsody box and an Intel Win/95 box. Just posted a pretty good solution for doing that. If you want more info email me directly and will be glad to help as I can. Best regards, R.D. Warner, owner Perceptual Research Ventures 1.970.416.7466 rwarner@prv.com http://www.gj.net/prv/ NOTE: This site is being reorganized From Dan_Grillo at 280.com Thu Feb 26 11:16:22 1998 From: Dan_Grillo at 280.com (Dan Grillo) Date: Thu Nov 3 14:40:56 2005 Subject: Peer-to-peer (better solution) Message-ID: <199802261916.LAA08883@280.com> Rich Warner writes: > > System now boots with no hangs and only one trivial warning msg (when > /etc/startup/1700_NFS is run) about how autonfsmount can't find IP address > for the system. Probably simple to fix that next round. FTP works great. > Put your hostname & ip address in the local netinfo domain to remove this warning. Use NetinfoManger, HostManager, niutil or niload. --Dan -- Dan Grillo dan_grillo@280.com 415 575-4020 fax 415 703-7220 From paipai at ita.flashnet.it Thu Feb 26 14:23:16 1998 From: paipai at ita.flashnet.it (Paolo Di Francesco) Date: Thu Nov 3 14:40:56 2005 Subject: QuickTime and Rhapsody (Intel) Message-ID: <199802262126.WAA04576@ita.flashnet.it> Where can I find Libs, includes, and more to use Quicktime under R.? I want to open a window and play a QT movie inside it. Any idea? Any Framework? (Omni...^__^) Ciao Ciao Paolo Di Francesco _ ->B<- All Recycled Bytes Message ... ~ From jordan at apple.com Thu Feb 26 13:39:26 1998 From: jordan at apple.com (Jordan Dea-Mattson) Date: Thu Nov 3 14:40:56 2005 Subject: QuickTime and Rhapsody (Intel) Message-ID: <199802262139.NAA12402@scv4.apple.com> Dear Paolo - QuickTime support is not present in Rhapsody DR1. It will be added in a later release of Rhapsody. Yours, Jordan Jordan J. Dea-Mattson Senior Partnership & Technology Solutions Manager Apple Developer Relations Apple Computer, Inc. 1 Infinite Loop, MS: 303-2EV Cupertino, CA 95014 408-974-4601 (Phone) jordan@apple.com "Here's to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the square holes. The ones who see things differently. The ones that change the world!" *** Attend Apple's WWDC and hear the scoop on the future of Apple May 11-15 in San Jose, CA For more info, see: From sanguish at digifix.com Thu Feb 26 13:44:48 1998 From: sanguish at digifix.com (Scott Anguish) Date: Thu Nov 3 14:40:56 2005 Subject: QuickTime and Rhapsody (Intel) In-Reply-To: <199802262126.WAA04576@ita.flashnet.it> References: <199802262126.WAA04576@ita.flashnet.it> Message-ID: <199802262144.QAA11460@digifix.com> "Paolo Di Francesco" wrote: > Where can I find Libs, includes, and more to use Quicktime under R.? > > I want to open a window and play a QT movie inside it. > > Any idea? > > Any Framework? (Omni...^__^) You'll have to wait for Apple to release Quicktime for Rhapsody. Hopefully in DR2!?!? From khans at pscwa.psca.com Thu Feb 26 14:59:40 1998 From: khans at pscwa.psca.com (Shehryar Khan) Date: Thu Nov 3 14:40:56 2005 Subject: Changing Cursor During a Drag Message-ID: <9802261459.AA404554@leech> Anybody been able to sucessfully change the cursor during a drag under OPENSTEP NT or Yellow Box for Windows. I've tried doing a [[NSCursor ..blahCursor] set]; in - (unsigned int)draggingEntered:(id)sender based on modifierKeysMask = [[[NSApplication sharedApplication] currentEvent] modifierFlags]; since [sender draggingSourceOperationMask]; doesn't work properly under OPENSTEP Windows. I can track copy's and move's but the cursor during the drag seems to get over-ridden by the Windows copy (+) cursor. Anyone dealt or worked around this. Or do I have to invoke some win32 (blech) API to do it? -shehryar From gerald at stepman.com Thu Feb 26 14:41:22 1998 From: gerald at stepman.com (Gerald Erdmann) Date: Thu Nov 3 14:40:56 2005 Subject: QuickTime and Rhapsody (Intel) In-Reply-To: <199802262144.QAA11460@digifix.com> References: <199802262144.QAA11460@digifix.com> Message-ID: Hi Scott! > Hopefully in DR2!?!? YES, it will! Gerald -- Gerald Erdmann gerald@stepman.com _ < STEPman OPENSTEP Consulting / / +49 30 39731400 -401 (Fax) \ __\ Berlin - Germany - Earth From matthewl at chopin.sdotc.com Thu Feb 26 13:19:06 1998 From: matthewl at chopin.sdotc.com (Matthew Lehrian) Date: Thu Nov 3 14:40:56 2005 Subject: TIS Firewall Toolkit for OPENSTEP or Rhapsody Message-ID: <9802270218.AA00468@chopin.sdotc.com> Hello, I'm thinking about attempting to build TIS's Firewall Toolkit for Rhapsody and OPENSTEP. Any advice from anyone that's ported UNIX code to either platform about what I might run into? Any #DEFINES I need in order to compile it? The readme says that it uses K&R C, do I need to do anything special for that? TIS claims that it's compatible with most versions of BSD UNIX, so I figure it can't be too tough. Thanks in advance for everyone's help and support. Once I get it running, I'd like to build a Rhapsody front end for it. An easily configurable firewall/proxy server would be something that people could use, yes? Matthew Lehrian - matthewl@sdotc.com Cross Current Corporation - www.xcurrent.com solutions.com - www.sdotc.com From matthewl at chopin.sdotc.com Thu Feb 26 22:15:37 1998 From: matthewl at chopin.sdotc.com (Matthew Lehrian) Date: Thu Nov 3 14:40:56 2005 Subject: Problem compiling TIS for OS4.2 Message-ID: <9802270615.AA04962@chopin.sdotc.com> Hello. I'm trying to compile TIS for OPENSTEP 4.2 following the instructions from the page on PEAK. I am getting the following errors. What do I have to link in to get the 4 missing symbols? >make cc -posix -g -o authmgr authmgr.o ../libauth.a ../libfwall.a /bin/ld: Undefined symbols: _tcgetattr _tcsetattr _sigaction _sigemptyset *** Exit 1 Stop. *** Exit 1 Stop. Thanks in advance. Matthew Lehrian - matthewl@sdotc.com From Dan_Grillo at 280.com Fri Feb 27 01:41:35 1998 From: Dan_Grillo at 280.com (Dan Grillo) Date: Thu Nov 3 14:40:56 2005 Subject: Problem compiling TIS for OS4.2 Message-ID: <199802270942.BAA16647@280.com> Matthew Lehrian writes: > Hello. I'm trying to compile TIS for OPENSTEP 4.2 following the > instructions from the page on PEAK. I am getting the following errors. What > do I have to link in to get the 4 missing symbols? > > >make > cc -posix -g -o authmgr authmgr.o ../libauth.a ../libfwall.a > /bin/ld: Undefined symbols: > _tcgetattr > _tcsetattr > _sigaction > _sigemptyset > *** Exit 1 > Stop. > *** Exit 1 > Stop. Honestly, I'd skip doing this for NEXTSTEP 4.2, and start with Rhapsody. POSIX is broken in NEXTSTEP 3.x and 4.x. Anyone trying to run a firewall on NEXTSTEP 4.2 should switch to something like FreeBSD. (Multiple interfaces aren't even supported in NEXTSTEP {3,4}.x; if you run multiple interfaces and run routed you can hang the machine) NeXT knew about the bug before NS 3.1 shipped but never solved it. --Dan -- Dan Grillo dan_grillo@280.com 415 575-4020 fax 415 703-7220 From peter at katze.efi-nms.de Fri Feb 27 16:41:39 1998 From: peter at katze.efi-nms.de (Peter Kretzschmar) Date: Thu Nov 3 14:40:56 2005 Subject: Oracle Call Interface library compiled for OPENSTEP MachOS Message-ID: <9802280041.AA19577@katze.efi-nms.de> A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 930 bytes Desc: not available Url : /mailman/archive/macosx-dev/attachments/19980228/3f8c6fd6/attachment.bin From aschlueter at netcologne.de Thu Feb 26 03:34:55 1998 From: aschlueter at netcologne.de (Axel Schlueter) Date: Thu Nov 3 14:40:56 2005 Subject: Probs with mmap()... Message-ID: <34F5535F.32BC6535@netcologne.de> Hi all, I'm new to the list, so I'm sorry if i've missed an earlier thread to this problem. While trying to get mSQL 2.0.3 running under Rhapsody/Intel, I figured out some problems with the mmap() memory mapping function. When trying to execute the following line of code, I'm just receiving a SIGSYS(#12), "bad parameter or system call" (For the complete test program, look at the attachment). cp = mmap(NULL,strlen(text), PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, fd,0); Anybody knowing this problem, or better, a solution ? Maybe somebody tries to run the test programm at his machine and tells me the result... Thnx, Axel --- aschlueter@netcologne.de -------------- next part -------------- /* ** A small test program to see if we can do shared read/write mapped ** regions. ** ** bambi */ #include #include #include #include #define PATH "/tmp/MmAp-TeSt" main() { int fd, res; static char text[] = "Test Data"; caddr_t cp=NULL; fd = open(PATH,O_CREAT|O_RDWR|O_TRUNC); if (fd < 0) { fprintf(stderr,"mmap test : couldn't create tmp file!\n\n"); exit(1); } write(fd,text,strlen(text)); cp = mmap(NULL,strlen(text), PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, fd,0); if (cp == (caddr_t) -1) { res = 1; } else { res=0; munmap(cp,strlen(text)); } close(fd); unlink(PATH); exit(res); } From sanguish at digifix.com Sat Feb 28 22:00:58 1998 From: sanguish at digifix.com (Scott Anguish) Date: Thu Nov 3 14:40:56 2005 Subject: Preventing an NSTabView from changing the first responder... Message-ID: <199803010602.BAA21974@digifix.com> This is a little hard to explain... so hopefully this is clear.. forgive my cheezy ASCII graphics here (and if you don't use a fixed-width font, its gonna be even worse!) I have a window that has an NSTextView and an NSTabView with two tabs in it. +---------------------------------------------------+ | O My Window | +------------------------------+--------------------+ | | ----- ----- | | The NSTextView |/ Tab \/ Tab \ | | |--------------------| | | | | | | | | | | | | | | | | | | +------------------------------+--------------------+ The requirement is that you highlight some text in the text view, and then set some attributes about the selected text using controls that are under one of the two tabs. The problem comes when you need to switch to the other tab after you've made a selection. When you click on the other tab, the NSTextView resigns first responder, and the selection disappears. How can I get around this? From rwarner at prv.com Fri Feb 27 07:15:36 1998 From: rwarner at prv.com (Rich Warner) Date: Thu Nov 3 14:40:56 2005 Subject: Using debugger In-Reply-To: <199802262200.OAA00287@ignem.omnigroup.com> Message-ID: <3.0.3.32.19980227081536.006bda90@gj.net> At 02:00 PM 2/26/98 -0800, you wrote: > >You wrote: > >> I'm used to >> the NS3.3 debugger where you select the line of source where you want a >> breakpoint, then press a button on the Edit GUI interface to set it. >> Don't see that in Rhapsody? > >Just double-click in the grey bar to the left of the line you want to break on. (Note the grey bar that appears in the source view when you launch the debugger.) You'll get a little marker which indicates that there's a break point there. You can drag that marker up/down to move the breakpoint, double-click it to disable/enable the breakpoint, or drag it off the window to remove the breakpoint. > Ok. This, I like. >If the breakpoint is in a framework which isn't yet loaded, the marker won't appear until the framework is loaded. > >> More baffling yet, tried from the >> command-line interface: b filename:methodname and that did not work >> either. It said it did not find "functionname". > Am getting msg from loader: "warning can't locate framework for: -framework AppKit,_debug using suffix _debug" Also getting same msg for Foundation,_debug. I searched both the distribution CD and the HD for AppKit,_debug and also AppKit_debug and found nothing. Should I be concerned that these aren't found? Best regards, R.D. Warner, owner Perceptual Research Ventures 1.970.416.7466 rwarner@prv.com http://www.gj.net/prv/ NOTE: This site is being reorganized