home *** CD-ROM | disk | FTP | other *** search
- From: pottier@clipper.ens.fr (Francois Pottier)
- Subject: csmp-digest-v3-070
- Date: Mon, 21 Nov 1994 14:44:23 +0100 (MET)
-
- C.S.M.P. Digest Mon, 21 Nov 94 Volume 3 : Issue 70
-
- Today's Topics:
-
- A few newbie (to Mac Programming) questions...
- Checking for low memory condition
- Fast Pixel Drawing
- GX text problems
- Macintosh Drag and Drop
- Microseconds() documentation?
- NOTE TO ALL SCREEN SAVER AUTHORS
- Power Plant Documentation??
- Shareware successes?
-
-
-
- The Comp.Sys.Mac.Programmer Digest is moderated by Francois Pottier
- (pottier@clipper.ens.fr).
-
- The digest is a collection of article threads from the internet newsgroup
- comp.sys.mac.programmer. It is designed for people who read c.s.m.p. semi-
- regularly and want an archive of the discussions. If you don't know what a
- newsgroup is, you probably don't have access to it. Ask your systems
- administrator(s) for details. If you don't have access to news, you may
- still be able to post messages to the group by using a mail server like
- anon.penet.fi (mail help@anon.penet.fi for more information).
-
- Each issue of the digest contains one or more sets of articles (called
- threads), with each set corresponding to a 'discussion' of a particular
- subject. The articles are not edited; all articles included in this digest
- are in their original posted form (as received by our news server at
- nef.ens.fr). Article threads are not added to the digest until the last
- article added to the thread is at least two weeks old (this is to ensure that
- the thread is dead before adding it to the digest). Article threads that
- consist of only one message are generally not included in the digest.
-
- The digest is officially distributed by two means, by email and ftp.
-
- If you want to receive the digest by mail, send email to listserv@ens.fr
- with no subject and one of the following commands as body:
- help Sends you a summary of commands
- subscribe csmp-digest Your Name Adds you to the mailing list
- signoff csmp-digest Removes you from the list
- Once you have subscribed, you will automatically receive each new
- issue as it is created.
-
- The official ftp info is //ftp.dartmouth.edu/pub/csmp-digest.
- Questions related to the ftp site should be directed to
- scott.silver@dartmouth.edu. Currently no previous volumes of the CSMP
- digest are available there.
-
- Also, the digests are available to WAIS users. To search back issues
- with WAIS, use comp.sys.mac.programmer.src. With Mosaic, use
- http://www.wais.com/wais-dbs/comp.sys.mac.programmer.html.
-
-
- -------------------------------------------------------
-
- >From jobell@bnr.ca (Ritchie Brock)
- Subject: A few newbie (to Mac Programming) questions...
- Date: 7 Nov 1994 11:16:40 -0600
- Organization: Bell-Northern Research, Richardson, TX
-
- I'm a newbie to Macintosh programming, but not to programming
- in general or Macintoshes.
-
- Here are my questions:
-
- I'm writing a simple program that displays a window with
- some graphics in it. The window is invoked through a menu
- and a corresponding command key. The window can be closed
- through the go away box and through the menu. Here is
- my problem:
-
- I am not sure on how about updating my window when something
- is moved over it. Does my application have to redraw the
- entire contents of the window? Furthermore, should window
- generation and window drawing be two different functions? I
- think this should be because everytime my app received an
- activate event it would create a new window and create a new
- drawing (since the function doDrawing generated the window
- and the contents). For some reason I think the app receives
- an activate event continuously because once I invoked the
- doDrawing routine for the first time it would loop continuously
- createing multiple windows.
-
- anyway, thanx for the help. e-mail me if possible.
-
- Joe
-
- jobell@bnr.ca
-
- later
- --
- * Joseph A. Bell (NOT Ritchie Brock) *
- * Northern Telecom / Bell-Northern Research *
- * Email: jbell@utdallas.edu *
-
- +++++++++++++++++++++++++++
-
- >From bb@lightside.com (Bob Bradley)
- Date: Mon, 07 Nov 1994 17:30:18 -0800
- Organization: SS Software Inc.
-
- In article <39lndo$f0u@crchh932.bnr.ca>, jobell@bnr.ca (Ritchie Brock) wrote:
-
- > I'm a newbie to Macintosh programming, but not to programming
- > in general or Macintoshes.
- >
- > Here are my questions:
- >
- > I'm writing a simple program that displays a window with
- > some graphics in it. The window is invoked through a menu
- > and a corresponding command key. The window can be closed
- > through the go away box and through the menu. Here is
- > my problem:
- >
- > I am not sure on how about updating my window when something
- > is moved over it. Does my application have to redraw the
- > entire contents of the window? Furthermore, should window
- > generation and window drawing be two different functions? I
- > think this should be because everytime my app received an
- > activate event it would create a new window and create a new
- > drawing (since the function doDrawing generated the window
- > and the contents). For some reason I think the app receives
- > an activate event continuously because once I invoked the
- > doDrawing routine for the first time it would loop continuously
- > createing multiple windows.
-
- Do all of your drawing in in your updateEvt handler. This way you only
- have 1 routine that handles all drawing, whether it's the first time or
- when your window is uncovered. As far as drawing the entire window when
- you get an updateEvt, just draw the portion of the window that was
- previously hiden. After you call BeginUpdate, you can use the visRgn of
- the window to know what part to draw (BeginUpdate changes the visRgn of
- the window to cover only the part of the window that needs updating). It
- mainly depends on how complicated what you are drawing is. If you have
- complex objects that take a long time to re-calculate and draw, you may
- want to calculate, based on the visRgn, which of those complex shapes to
- redraw but, if you've got just a couple simple objects in your window, it
- may be faster to just redraw them all then try to re-calculate which
- objects intersect the visRgn.
-
- Also, when your window is shown, an update event is automatically
- generated with the full content of the window in the visRgn so you don't
- have to manually draw the window when it is created, it will be handled by
- your updateEvt handler.
-
- I'm not sure why you are creating a window each time you get an activate
- event. If you mean each time your application gets an OpenApplication
- AppleEvent I understand but, when you get an activate event for a window,
- you don't want to create a new one, you just want to activate (or
- deactivate) anything needs to be activated (or deactivated).
-
- ---------------------------
-
- >From ikb_macd@ece.concordia.ca (Keith MacDonald)
- Subject: Checking for low memory condition
- Date: 1 Nov 1994 23:14:52 GMT
- Organization: ECE - Concordia University
-
-
- >From what I've read here recently, the Toolbox often crashes if less
- than approx 12K of memory is available. In trying to deal with this:
- 1) is checking FreeMem ok, or must I check using MaxMem?
- - is MaxMem much slower than freeMem?
- 2) how often would I want to check the available memory?
- - after file loading & major (>1K) allocations
- or everytime through event loop?
-
- Thanks in advance,
- Keith
- ___________________________________________________________________________
- Keith MacDonald Computer Engineering
- ikb_macd@ECE.concordia.ca Concordia University
- http://www.ece.concordia.ca/~ikb_macd/addr.html Montreal, QC, Canada
-
- +++++++++++++++++++++++++++
-
- >From jbeeghly@u.washington.edu (Jeff Beeghly)
- Date: 2 Nov 1994 02:55:34 GMT
- Organization: University of Washington
-
- ikb_macd@ece.concordia.ca (Keith MacDonald) writes:
- >From what I've read here recently, the Toolbox often crashes if less
- >than approx 12K of memory is available. In trying to deal with this:
-
- I was the one who started the minimum mememory running thread. The 12k
- was the limit for the StandardGetFile dialog... the min. amount changes
- from task to task. Someone suggest that the minimum amount should be 32k
- (due to some toolbox calls that >MIGHT< require 32k). To me, this sounds
- rediculous... apps should be more streamlined. In order to boob-proof
- your app you should test each path under critical conditions.
-
-
- > 1) is checking FreeMem ok, or must I check using MaxMem?
-
- remember, FreeMem just reports the amount of FREE memory. My app
- contains quite a bit of purgeable code that can be freed up to increase
- the amount of free menory. If you don't have them yet, get SWATCH
- (system Watcher) and ZoneRanger.
-
- > 2) how often would I want to check the available memory?
- > - after file loading & major (>1K) allocations
- > or everytime through event loop?
-
- What I'm doing is two things:
-
- 1) My even loop looks something like this:
-
- static Boolean bWarned = FALSE;
-
- while( !gIsAppDone )
- {
- if( WaitNextEvent(....) )
- {
- DoEvent(....);
- }
- else
- {
- DoIdle(....);
- }
-
- if(FreeMem() < LOW_RAM_WARNING)
- {
- if(bWarned == FALSE)
- {
- CautionAlert(....);
- bWarned = TRUE;
- }
- }
- }
-
- This warns the user when the memory drops below LOW_RAM_WARNING
-
-
- Second, before I perform a function, I perform a minimum memory check...
- something like...
-
-
- switch( menu )
- {
- case mOpen:
- if(FreeMem() < MINIMUM_RAM)
- ErrorAlert(...); // tell the user "sorry, but there
- // is not enough free memory
- // please close one or more windows"
- else
- OpenFile();
- break;
-
- }
-
- +++++++++++++++++++++++++++
-
- >From mhl@icf.hrb.com (mark)
- Date: 2 Nov 94 10:50:28 EST
- Organization: HRB Systems, Inc.
-
- In article <396i5c$4ae@newsflash.concordia.ca>,
- ikb_macd@ece.concordia.ca (Keith MacDonald) writes:
- > From what I've read here recently, the Toolbox often crashes if less
- > than approx 12K of memory is available. In trying to deal with this:
- > 1) is checking FreeMem ok, or must I check using MaxMem?
- > - is MaxMem much slower than freeMem?
- > 2) how often would I want to check the available memory?
- > - after file loading & major (>1K) allocations
- > or everytime through event loop?
- >
-
- Keith,
-
- It is reassuring to see programmers making crash-proof
- applications. You are correct. In addition to rigorous error
- checking, verifying the presence of required features is a good
- safety feature. In this case - available memory.
-
- A good figure to look for, in terms of free memory, would be
- 33K. Much of the Toolbox limits data structures to what can be
- indexed by a short (i.e. 32767 bytes). Allowing for overhead we
- arrive at 33K.
-
- In terms of frequency, we really do not need to check at all
- (although the functions you listed would work). The Memory
- Manager provides a mechanism to inform applications when "memory
- is low". What is need is a Grow Zone Procedure.
-
- When something needs memory, either directly, by calling NewPtr
- or NewHandle, or indirectly, by calling a Toolbox routine which
- does, the memory manager checks to see if the request can be
- satisfied. If it can not, the Grow Zone Procedure will be called
- in search of additional memory.
-
- If we have allocated a 33K block of memory, early in execution,
- we can dispose of this block when our Grow Zone Procedure is
- called. This should (probably) satisfy any unforseen Toolbox
- needs. In addition, we know that memory is low, and can take
- defensive measures like disabling menu items which will need
- large amounts of memory (e.g. File>New, File>Open...).
-
- We should also program defensively elsewhere. Always check the
- results of NewHandle and NewPtr for nil. Provide a graceful
- return from such situations (not a hard crash). Be aware that
- Toolbox routines that return a pointer or Handle to a new data
- structure also need to be checked.
-
- Given the precautions set out here, we should be relatively safe
- from crashes due to low memory in Toolbox calls. For additional
- information on the topic of Grow Zone Procedures and avoiding
- memory allocation problems in general, please refer to the new
- Inside Macintosh: Files.
-
- > Thanks in advance,
- > Keith
-
- --
- Hope this helps.
-
- Mark H. Linton
- ____________________________________________________________________
- mark \'märk\ n [ME, fr. OE mearc boundary, march, sign; akin to OHG
- marha boundary, L margo] 1 a : a conspicuous object serving as a guide
- for travelers 2 : A standard or criterion of quality 3 : An object or
- point that serves as a guide --idiom. mark time. 1 : To make little or
- no progress
-
- +++++++++++++++++++++++++++
-
- >From larson@base.cs.ucla.edu (Christopher Larson)
- Date: 2 Nov 1994 17:56:37 GMT
- Organization: UCLA, Computer Science Department
-
- In article <1994Nov2.105028.22266@hrbicf> mhl@icf.hrb.com (mark) writes:
- >In article <396i5c$4ae@newsflash.concordia.ca>,
- > ikb_macd@ece.concordia.ca (Keith MacDonald) writes:
- >> From what I've read here recently, the Toolbox often crashes if less
- >> than approx 12K of memory is available. In trying to deal with this:
- >
- > [ most of Mark's excellent answer deleted ]
- >
- > Given the precautions set out here, we should be relatively safe
- > from crashes due to low memory in Toolbox calls. For additional
- > information on the topic of Grow Zone Procedures and avoiding
- > memory allocation problems in general, please refer to the new
- > Inside Macintosh: Files.
- ^^^^^^^^^^^^^^^^^^^^^^^
-
- I'm sure Mark meant _Inside Macintosh: Memory_.
-
- --Chris
- _______________________________________________________________________________
- Chris Larson -- Amateur Macintosh Geek, CoBase Research Assistant
- L.A. Institute of Slowly and Painfully Working Out the Surprisingly Obvious
- Death to the Trojans! Go Bruins!
-
- (Insert disclaimer here)
- Internet: larson@kingston.cs.ucla.edu
-
- +++++++++++++++++++++++++++
-
- >From Jens Alfke <jens_alfke@powertalk.apple.com>
- Date: Wed, 2 Nov 1994 22:11:01 GMT
- Organization: Apple Computer
-
- mark, mhl@icf.hrb.com writes:
- > In terms of frequency, we really do not need to check at all
- > (although the functions you listed would work). The Memory
- > Manager provides a mechanism to inform applications when "memory
- > is low". What is need is a Grow Zone Procedure.
-
- Right on! I agree completely. This is how MacApp and TCL (and PowerPlant?) do
- it, and the way I do it in any serious app I write.
-
- In addition, to make this work better it helps if your own explicit memory
- allocations cannot trigger the GZproc (since it's their for the Toolbox's
- use, not yours.) I do this by having a global Boolean flag that tells the
- GZproc whether it's okay to dispose the "cushion" block. Then I have routines
- like MyNewHandle that set the flag to false, call NewHandle, then set it to
- true. This ensures that your code doesn't eat into the cushion.
-
- Moreover, once the cushion is eaten into, all of your explicit memory
- allocations should fail until the cushion can be re-inflated to its original
- size.
-
- --Jens Alfke jens_alfke@powertalk.apple.com
- "A man, a plan, a yam, a can of Spam ... Bananama!"
-
- +++++++++++++++++++++++++++
-
- >From bw16@cornell.edu (Bretton Wade)
- Date: Wed, 02 Nov 1994 19:39:28 -0500
- Organization: Cornell Program of Computer Graphics
-
- In article <1994Nov2.221101.2400@gallant.apple.com>, Jens Alfke
- <jens_alfke@powertalk.apple.com> wrote:
-
- > Right on! I agree completely. This is how MacApp and TCL (and PowerPlant?) do
- > it, and the way I do it in any serious app I write.
- >
- > In addition, to make this work better it helps if your own explicit memory
- > allocations cannot trigger the GZproc (since it's their for the Toolbox's
- > use, not yours.) I do this by having a global Boolean flag that tells the
- > GZproc whether it's okay to dispose the "cushion" block. Then I have routines
- > like MyNewHandle that set the flag to false, call NewHandle, then set it to
- > true. This ensures that your code doesn't eat into the cushion.
- >
- > Moreover, once the cushion is eaten into, all of your explicit memory
- > allocations should fail until the cushion can be re-inflated to its original
- > size.
-
- This last part is the part that I've always wondered about. The OS doesn't
- seem to have a nice "more memory is available now" function to match the
- GZ function. Not that I'd expect one...
-
- What would be the best way to alleviate this problem? I can think of most
- of the obvious solutions, like having my own allocator that checked to see
- if the buffer had been released, and whether or not it could be
- reclaimed...
-
- ______________________________________________________________
- Bretton Wade (bw16@cornell.edu)
- http://www.graphics.cornell.edu/~bwade/
-
- This is funny. Laugh now.
- ______________________________________________________________
-
- +++++++++++++++++++++++++++
-
- >From larson@base.cs.ucla.edu (Christopher Larson)
- Date: 3 Nov 1994 18:13:08 GMT
- Organization: UCLA, Computer Science Department
-
- In article <bw16-0211941939280001@132.236.236.79> bw16@cornell.edu (Bretton Wade) writes:
- >In article <1994Nov2.221101.2400@gallant.apple.com>, Jens Alfke
- ><jens_alfke@powertalk.apple.com> wrote:
- >>
- >> [ Stuff about using a grow-zone procedure deleted ]
- >>
- >> Moreover, once the cushion is eaten into, all of your explicit memory
- >> allocations should fail until the cushion can be re-inflated to its original
- >> size.
- >
- >This last part is the part that I've always wondered about. The OS doesn't
- >seem to have a nice "more memory is available now" function to match the
- >GZ function. Not that I'd expect one...
-
- Maybe I'm misunderstanding your wondering, but that's exactly what a
- grow-zone procedure is for. A grow-zone procedure is called by the OS
- when it can't allocate a block of the requested size. The GZProc returns
- a value telling the OS how much memory it freed (if any) and the memory
- allocation is re-tried (purging and compacting the heap if necessary).
- So the return value of the GZProc does tell the OS that "more memory is
- available now," if it returned non-zero, or "no more memory is available,"
- if it returned zero.
-
- >What would be the best way to alleviate this problem? I can think of most
- >of the obvious solutions, like having my own allocator that checked to see
- >if the buffer had been released, and whether or not it could be
- >reclaimed...
-
- The procedure outlined in Inside Macintosh: Memory recommends a procedure
- similar to this. It suggests that custom allocators for both handles and
- pointers be created which check the status of the buffer (and check to see
- that the amount of free memory available after the allocation is above a
- 'cushion' value). If both of these conditions hold, the grow-zone procedure
- is disabled (as Jens suggests, to make sure the buffer is not used for this
- allocation), the allocation is made, and the grow-zone procedure re-enabled.
-
- IM: Memory also suggests that the place to determine if the buffer can
- be re-allocated (once freed) is in the event loop of the program.
-
- The purpose of the buffer (and the 'cushion' suggested by IM) is to ensure
- that allocations made by the OS succeed (since parts, if not all, of the
- OS assumes they will). The custom allocation procedures are not intended
- to filter OS allocations, only allocations made by the application itself.
-
- All of this is explained in detail in Inside Macintosh: Memory. I _highly_
- recommend that this chapter be required reading for anyone implementing
- a Mac application. Not because I think it's the utmost in low-memory
- handling (although I think it's quite good and I haven't come up with
- a better one) but because it brings all the relevant issues to light and
- provides reasonable solutions to low-memory problems.
-
- Again, I apologize if I've misunderstood your questions. Hope this helps.
-
- --Chris
- _______________________________________________________________________________
- Chris Larson -- Amateur Macintosh Geek, CoBase Research Assistant
- L.A. Institute of Slowly and Painfully Working Out the Surprisingly Obvious
- Death to the Trojans! Go Bruins!
-
- (Insert disclaimer here)
- Internet: larson@kingston.cs.ucla.edu
-
- +++++++++++++++++++++++++++
-
- >From Jaeger@fquest.com (Brian Stern)
- Date: 4 Nov 1994 14:25:33 GMT
- Organization: The University of Texas at Austin, Austin, Texas
-
- In article <bw16-0411940015080001@132.236.236.53>, bw16@cornell.edu
- (Bretton Wade) wrote:
-
- < > IM: Memory also suggests that the place to determine if the buffer can
- < > be re-allocated (once freed) is in the event loop of the program.
- < >
- <
- < This is one of the obvious solutions that I mentioned, and seems less than
- < optimal. I'll be checking a zillion times a second for a condition that
- < should probably never happen to most properly functioning
- < applications?!?!?
- <
- <
- < Bretton
- <
- < ______________________________________________________________
- < Bretton Wade (bw16@cornell.edu)
- < http://www.graphics.cornell.edu/~bwade/
- < ______________________________________________________________
-
- I don't think that this is a problem. Say your memory buffer is a handle,
- and that when it is freed you set the variable to NULL. Then do something
- like this in your event loop:
-
- if ( !gMemoryBuffer )
- gMemoryBuffer = NewHandle( kMemBuffSize );
-
- I don't think that checking that once through your event loop will take
- much time at all. If you like you could do it only on null events.
-
- --
- Brian Stern :-{)}
- Toolbox commando and Menu bard
- Jaeger@fquest.com
-
- +++++++++++++++++++++++++++
-
- >From larson@base.cs.ucla.edu (Christopher Larson)
- Date: 7 Nov 1994 20:23:39 GMT
- Organization: UCLA, Computer Science Department
-
- In article <bw16-0411940015080001@132.236.236.53> bw16@cornell.edu (Bretton Wade) writes:
- > larson@base.cs.ucla.edu (Chris Larson) writes:
- >> Maybe I'm misunderstanding your wondering, but that's exactly what a
- >
- >Yeah, you misunderstand. I want to know a *GOOD* way to determine when it
- >is OK to reclaim my emergency buffer.
-
- OOPS. Sorry. See below.
-
- >> IM: Memory also suggests that the place to determine if the buffer can
- >> be re-allocated (once freed) is in the event loop of the program.
- >>
- >
- >This is one of the obvious solutions that I mentioned, and seems less than
- >optimal. I'll be checking a zillion times a second for a condition that
- >should probably never happen to most properly functioning
- >applications?!?!?
-
- The buffer de-allocation and re-allocation is done either with
- DisposeHandle/NewHandle or EmptyHandle/ReallocHandle (I forget which and am
- away from my Mac -- I think it's with the latter, so I'll assume that).
-
- After the GZProc calls EmptyHandle, the handle's master pointer will be
- NULL, so the check in the event loop consists of something like the
- following:
-
- if ( ( gEmergencyMemory == NULL ) || ( *gEmergencyMemory == NULL ) ) {
- /* Yipes, buffer is free -- do something about it */
- }
-
- If everything is OK, this consists of two comparisons against zero, one
- dereference, and a branch. We're talking 5 or 6 instructions here, utterly
- insignificant when compared with the call to WaitNextEvent.
-
- So, yes, this check will run many times a second, but it costs virtually
- nothing to run in the case that the buffer is intact (which will be the case
- most of the time, as you point out). It is not _absolutely_ optimal but it
- won't impact the operation of any real-world application at all.
-
- Now for the first part of your question (hopefully I'll answer the right
- question this time ;-).
-
- Once you have determined that the buffer has been de-allocated, the best
- way to determine if it can be re-allocated is to call ReallocHandle. If
- this suceedes, continue execution. If you can't get the buffer back, it's
- time to take drastic actions.
-
- Now, I'm sure you knew about ReallocHandle and I think your question is
- really "How can I tell when the OS is done with the buffer's memory and
- ReallocHandle() will succeed?" This question is answered by the philosophy
- behind this entire low-memory scheme. The purpose of the emergency buffer
- is to provide a last-ditch area for Toolbox calls to use as scratch space.
- If it is being used in a more permanent fashion, the heap is very close to
- full. That being the case, anytime the buffer is de-allocated, you should
- try to reclaim it. If you can't you know your application is seriously low
- on memory and something extreme needs to be done. Again, this is simply
- based on the philosophy behind this particular scheme.
-
- If you are interested in allowing use of the buffer for more permanent
- storage, some rethinking of the entire scheme will likely be necessary.
- Having not done this, I can't offer any experience-based ideas to help.
-
- --Chris
- _______________________________________________________________________________
- Chris Larson -- Amateur Macintosh Geek, CoBase Research Assistant
- L.A. Institute of Slowly and Painfully Working Out the Surprisingly Obvious
- Death to the Trojans! Go Bruins!
-
- (Insert disclaimer here)
- Internet: larson@kingston.cs.ucla.edu
-
- +++++++++++++++++++++++++++
-
- >From Jens Alfke <jens_alfke@powertalk.apple.com>
- Date: Tue, 8 Nov 1994 00:25:13 GMT
- Organization: Apple Computer
-
- Bretton Wade, bw16@cornell.edu writes:
- > This is one of the obvious solutions that I mentioned, and seems less than
- > optimal. I'll be checking a zillion times a second for a condition that
- > should probably never happen to most properly functioning
- > applications?!?!?
-
- 1. If your event loop runs "a zillion times a second" I don't want to use
- your app! You should be passing a valid time in the 'sleep' parameter to WNE.
-
- 2. You feel that running low on memory is something that will never happen to
- a properly functioning app? Hmm, I _really_ don't want to run your app now ;-)
-
- --Jens Alfke jens_alfke@powertalk.apple.com
- "A man, a plan, a yam, a can of Spam ... Bananama!"
-
- +++++++++++++++++++++++++++
-
- >From bw16@cornell.edu (Bretton Wade)
- Date: Mon, 07 Nov 1994 22:53:52 -0500
- Organization: Cornell Program of Computer Graphics
-
- In article <1994Nov8.002513.26665@gallant.apple.com>, Jens Alfke
- <jens_alfke@powertalk.apple.com> wrote:
-
- > Bretton Wade, bw16@cornell.edu writes:
- > > This is one of the obvious solutions that I mentioned, and seems less than
- > > optimal. I'll be checking a zillion times a second for a condition that
- > > should probably never happen to most properly functioning
- > > applications?!?!?
- >
- > 1. If your event loop runs "a zillion times a second" I don't want to use
- > your app! You should be passing a valid time in the 'sleep' parameter to WNE.
- >
-
- > 2. You feel that running low on memory is something that will never happen to
- > a properly functioning app? Hmm, I _really_ don't want to run your app now ;-)
- >
- > --Jens Alfke jens_alfke@powertalk.apple.com
- > "A man, a plan, a yam, a can of Spam ... Bananama!"
-
- Exageration to make a point, I admit. The point seems to have been lost on
- you, however.
-
- =) =)
-
- Bretton
-
- ______________________________________________________________
- Bretton Wade (bw16@cornell.edu)
- http://www.graphics.cornell.edu/~bwade/
- ______________________________________________________________
-
- ---------------------------
-
- >From vtourang@chat.carleton.ca (Vince Tourangeau)
- Subject: Fast Pixel Drawing
- Date: Fri, 28 Oct 1994 03:21:36 GMT
- Organization: Carleton University
-
-
- What's the fastest method of writing a pixel to the current CGrafPtr?
- I'm currently writing my own graphic routines for the game I'm
- designing - QuickDraw seems way too slow for some things, so I'm
- trying to optimize all the commands for what I'm doing. Right now, I'm
- calling SetCPixel to write to the current port. Is there a more direct
- way of doing this? Come to think of it, how do I write directly to an
- arbitrary PixMap?
- Thanks,
- Vince
-
- - --------------------------------------------------------------------
- Vince Tourangeau
- Carleton University
-
-
- _______________________________________________________________
- (Insert witty quote above)
-
-
- Email address: vtourang@chat.carleton.ca
- - --------------------------------------------------------------------
-
- +++++++++++++++++++++++++++
-
- >From 103t_english@west.cscwc.pima.edu
- Date: 28 Oct 94 01:51:50 MST
- Organization: (none)
-
- In article <CyD5C1.D08@cunews.carleton.ca>, vtourang@chat.carleton.ca (Vince Tourangeau) writes:
- > What's the fastest method of writing a pixel to the current CGrafPtr?
- > I'm currently writing my own graphic routines for the game I'm
- > designing - QuickDraw seems way too slow for some things, so I'm
- > trying to optimize all the commands for what I'm doing. Right now, I'm
- > calling SetCPixel to write to the current port. Is there a more direct
- > way of doing this? Come to think of it, how do I write directly to an
- > arbitrary PixMap?
- > Thanks,
- > Vince
- >
-
-
- "Drawing in GWorlds for Speed and Versatility" in develop 10 and "Writing
- Directly to the Screen" in develop 11 are good places to start looking.
-
-
- SetCPixel, on a PowerMac, is so slow that I wonder if it is any faster than a
- Quadra in this case.
-
-
- Lawson
-
- +++++++++++++++++++++++++++
-
- >From jmunkki@beta.hut.fi (Juri Munkki)
- Date: 3 Nov 1994 18:54:51 GMT
- Organization: Helsinki University of Technology
-
- In article <396050$10b@ccnet.ccnet.com> Alex Lelievre <alexl@ccnet.com> writes:
- >In article <CyELK0.7pt@cunews.carleton.ca> Vince Tourangeau,
- >vtourang@chat.carleton.ca writes:
- >
- >>This is all Mac stuff, but any help would be appreciated...
- >>What's the fastest method of writing a pixel to the current CGrafPtr?
- >>I'm currently writing my own graphic routines for the game I'm
- >>designing - QuickDraw seems way too slow for some things, so I'm
- >>trying to optimize all the commands for what I'm doing. Right now, I'm
- >>calling SetCPixel to write to the current port. Is there a more direct
- >>way of doing this? Come to think of it, how do I write directly to an
- >>arbitrary PixMap?
- >
- >All you have to do is insert a pixel value at the right place in memory.
- >A CGrafPort has a handle to the PortPixMap. This struct has a pointer to
- >the base address of the actual pixel map.
- >All you need to do is calculate the rowBytes (which is already done for
- >you by quickdraw) and index into the pixel map manually.
-
- Except that if you are drawing to the screen and the user is in a 24 bit
- addressing mode, you'll be most probably writing into random memory unless
- you call SwapMMUMode before and after drawing. You should also call
- ShieldCursor when you draw to the screen. Offscreen GWorlds can also
- be stored on video cards and such, so even offscreen devices are not
- completely safe.
-
- Followups to comp.sys.mac.programmer.
-
- --
- Juri Munkki There ain't no such thing as a shareware lunch.
- jmunkki@hut.fi Windsurfing: Faster than the wind.
-
- +++++++++++++++++++++++++++
-
- >From Dmitry Boldyrev <c-bvda@solitude.math.utah.edu>
- Date: 6 Nov 1994 21:07:30 GMT
- Organization: University of Utah
-
- In article <39bblr$jh1@nntp.hut.fi> Juri Munkki, jmunkki@beta.hut.fi
- writes:
- >Except that if you are drawing to the screen and the user is in a 24 bit
- >addressing mode, you'll be most probably writing into random memory
- unless
- >you call SwapMMUMode before and after drawing. You should also call
- >ShieldCursor when you draw to the screen. Offscreen GWorlds can also
- >be stored on video cards and such, so even offscreen devices are not
- >completely safe.
- >
- >Followups to comp.sys.mac.programmer.
-
- I completely agree with Juri, here is a little (unsafe) fast pixel code I
- wrote
- for my molecule designer :-)
- void FastPixel(ptr baseAddr, ulong rowBytes, short x, short y, byte color)
- {
- asm {
- movem.l d0-d7/a0-a6,-(a7)
- move.w x,d0
- move.w y,d1
- move.l baseAddr,a0
- move.l rowBytes,d6
- mulu.l d6,d1
- add.l d1,d0
- add.l d0,a0 // a0 = address of the first point to draw
- move.b color,(a0)
- movem.l (a7)+,d0-d7/a0-a6
- }
- }
-
- ---------------------------
-
- >From fixer@faxcsl.dcrt.nih.gov (Chris Driving in the Rain Tate)
- Subject: GX text problems
- Date: Wed, 2 Nov 1994 19:03:55 GMT
- Organization: DCRT, NIH, Bethesda, MD
-
- I'm *sure* this is a no-brainer, but I can't seem to figure out what I'm
- supposed to be doing. GX is *incredibly* cool on first glance, and most
- things seem perfectly straightforward, but....
-
- I want to draw some text in Geneva Bold. That's it. However, I can't
- figure out how to specify that font. IM: QDGX Typography says that you
- should use GXFindFonts() to get a gxFont object that fits your needs.
- That's cool; I can get "Geneva" by name just fine.
-
- However, later on it implies that if you pass the name "Geneva Bold," GX
- will give you the appropriate flavor of font, and you go from there.
- Unfortunately, "Geneva Bold" isn't a legitimate font name, apparently.
- Passing "Geneva" as the name gives me back a gxFont, passing "Geneva Bold"
- doesn't. :-(
-
- *HOW* can I specify that I want to use Geneva Bold?
-
- Ah, yes: I've tried associating a style object with the font, after
- setting the style object to indicate boldness, but I wound up with
- heavy type fit into the "standard" metrics, which is not what I want.
-
- Help! How do you choose a particular font "flavor" programmatically?
-
- - ------------------------------------------------------------------
- Christopher T{te | "I never thought of surgery as 'editing
- fixer@faxcsl.dcrt.nih.gov | a person' before...."
- eWorld: cTate | -- Mark Linton (mhl@icf.hrb.com)
-
- +++++++++++++++++++++++++++
-
- >From ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University)
- Date: 3 Nov 94 18:11:13 +1300
- Organization: University of Waikato, Hamilton, New Zealand
-
- In article <1994Nov2.190355.20865@alw.nih.gov>, fixer@faxcsl.dcrt.nih.gov (Chris Driving in the Rain Tate) writes:
- >
- > I want to draw some text in Geneva Bold. That's it. However, I can't
- > figure out how to specify that font. IM: QDGX Typography says that you
- > should use GXFindFonts() to get a gxFont object that fits your needs.
- > That's cool; I can get "Geneva" by name just fine.
- >
- > However, later on it implies that if you pass the name "Geneva Bold," GX
- > will give you the appropriate flavor of font, and you go from there.
- > Unfortunately, "Geneva Bold" isn't a legitimate font name, apparently.
- > Passing "Geneva" as the name gives me back a gxFont, passing "Geneva Bold"
- > doesn't. :-(
-
- That's probably because there is no such font as Geneva Bold, only Geneva
- Regular.
-
- > *HOW* can I specify that I want to use Geneva Bold?
-
- First, the good news: yes, QuickDraw GX is incredibly cool, and lets you do
- neat stuff without batting an eyelid, that you had to jump through hoops to
- do with QuickDraw.
-
- Now, the not-quite-so-good news: a few things which were very simple in
- QuickDraw, are a little less simple in GX. In QuickDraw, you only had a limited
- set of text styles (bold, italic, underline, outline, shadow, condensed,
- extended): and if you asked for a style for which there was no actual font,
- QuickDraw would fake it for you automatically. Under GX, the real fonts and
- the fakes are kept rigidly separate, and there is no automatic crossing between
- them.
-
- To create a bold version of Geneva, you will need to set up a text face
- structure.
-
- > Ah, yes: I've tried associating a style object with the font, after
- > setting the style object to indicate boldness, but I wound up with
- > heavy type fit into the "standard" metrics, which is not what I want.
-
- Sounds like you've already got part of the text face business sorted out
- (since I can't remember any other way to add boldness to text). It looks to
- me like the part you're missing is an appropriate setup for the advanceMapping
- field, to change the width of the glyphs.
-
- Disclaimer: this is getting into parts of GX that I remember reading about
- in the manuals, but for which I've yet to write any actual code that uses
- the stuff.
-
- Lawrence D'Oliveiro fone: +64-7-856-2889
- Computer Services Dept fax: +64-7-838-4066
- University of Waikato electric mail: ldo@waikato.ac.nz
- Hamilton, New Zealand 37^ 47' 26" S, 175^ 19' 7" E, GMT+13:00
-
- +++++++++++++++++++++++++++
-
- >From fixer@faxcsl.dcrt.nih.gov (Chris Driving in the Rain Tate)
- Date: Thu, 3 Nov 1994 14:51:13 GMT
- Organization: DCRT, NIH, Bethesda, MD
-
- ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) writes:
- >fixer@faxcsl.dcrt.nih.gov (Chris Driving in the Rain Tate) writes:
- >>
- >> I want to draw some text in Geneva Bold. That's it. However, I can't
- >> figure out how to specify that font. IM: QDGX Typography says that you
- >> should use GXFindFonts() to get a gxFont object that fits your needs.
- >> That's cool; I can get "Geneva" by name just fine.
- >>
- >> However, later on it implies that if you pass the name "Geneva Bold," GX
- >> will give you the appropriate flavor of font, and you go from there.
- >> Unfortunately, "Geneva Bold" isn't a legitimate font name, apparently.
- >> Passing "Geneva" as the name gives me back a gxFont, passing "Geneva Bold"
- >> doesn't. :-(
- >
- >That's probably because there is no such font as Geneva Bold, only Geneva
- >Regular.
-
- The electronic (DocViewer) version of IM: QDGX Typography that's on ETO 15
- is bogus in several ways that I've discovered in the last few days. One is
- that, for example, the code on page 6-26, which is supposed to set up a
- gxTextFace to indicate bolding, won't even compile as printed: it uses
- curly quotes instead of flat ones, and it gets confused about whether it
- ought to be using "face.field" or "face->field" notation in the middle of
- a function.
-
- Also, on page 7-24 (the chapter on fonts), it says that using the
- gxFullFontName selector for the GXFindFonts() function lets you search
- for fonts based on "The full font name, such as 'Geneva Bold'." Oops.
-
- >> *HOW* can I specify that I want to use Geneva Bold?
- >
- > [snip]
- >
- >Now, the not-quite-so-good news: a few things which were very simple in
- >QuickDraw, are a little less simple in GX. In QuickDraw, you only had a limited
- >set of text styles (bold, italic, underline, outline, shadow, condensed,
- >extended): and if you asked for a style for which there was no actual font,
- >QuickDraw would fake it for you automatically. Under GX, the real fonts and
- >the fakes are kept rigidly separate, and there is no automatic crossing between
- >them.
- >
- >To create a bold version of Geneva, you will need to set up a text face
- >structure.
- >
- >> Ah, yes: I've tried associating a style object with the font, after
- >> setting the style object to indicate boldness, but I wound up with
- >> heavy type fit into the "standard" metrics, which is not what I want.
- >
- >Sounds like you've already got part of the text face business sorted out
- >(since I can't remember any other way to add boldness to text). It looks to
- >me like the part you're missing is an appropriate setup for the advanceMapping
- >field, to change the width of the glyphs.
-
- I eventually decided that I probably *ought* to be doing this, even if it
- seemed like more work than should have been necessary at the time. I'm glad
- that I decided on the "right" solution!
-
- Originally, I was trying to use the SetCommonFace() routine that's included
- with the <text library.c> file in the GX stuff on ETO 15; it was giving me
- more bolding than I wanted, and not setting the advanceMapping attribute
- (which is indeed what was causing the scrunching that I observed). Eventually
- I did the following (WORKING code follows):
-
- extern gxRectangle gPageSize; // printing page size
- extern gxViewPort gPrintingViewPort; // port we're printing through
- gxTextFace boldFace;
- gxShape aTextShape;
- gxPoint aPos;
-
- // set up the bold text face
-
- boldFace.faceLayers = 1;
- ResetMapping(&(boldFace.advanceMapping));
- boldFace.faceLayer[0].outlineFill = gxWindingFill;
- boldFace.faceLayer[0].flags = 0;
- boldFace.faceLayer[0].outlineStyle = nil;
- boldFace.faceLayer[0].outlineTransform = nil;
- boldFace.faceLayer[0].boldOutset.x = fixed1/48; // gentle boldface
- boldFace.faceLayer[0].boldOutset.y = 0;
-
- // draw the document title against the left margin
-
- aTextShape = GXNewText(fileName[0], &(fileName[1]), &aPos);
- GXSetShapeFace(aTextShape, &boldFace);
- GXSetShapeTextAttributes(aTextShape,
- GXGetShapeStyleAttributes(aTextShape) | gxAutoAdvanceText);
- GXSetShapeFont(aTextShape, myFont);
- GXSetShapeTextSize(aTextShape, ff(9));
- GXMoveShapeTo(aTextShape, gPageSize.left,
- gPageSize.top + ff(HEADER_LINE));
- GXSetShapeViewPorts(aTextShape, 1, &gPrintingViewPort);
- GXDrawShape(aTextShape);
- GXDisposeShape(aTextShape);
-
- The part that took a little getting-used-to was the concept of a "text face".
- Once I understood that *that* is the basic mechanism GX uses for most of its
- real text shape manipulations, including italicising and bolding and whatnot,
- it was pretty straightforward. Also, GX seems to handle fonts better than
- Quickdraw did (not that I'm surprised, though!) - my printed output is rather
- more nicely turned out than the non-GX version, although I'm trying pretty
- hard to make the "new" output look like the old. In particular, the tracking
- and kerning of printed output is now much better, even though I'm not using
- layout shapes!
-
- I'm thinking that there should be a section in the FAQ, or perhaps a
- separate FAQ, on Quickdraw GX. A collection of war stories like mine (and
- yours, and Michael Pierce's, and... :-) would probably be pretty handy for
- people who are having to dive headfirst into GX, and are daunted by the
- sheer volume of documentation - some of which is incorrect or misleading. :-(
-
- - ------------------------------------------------------------------
- Christopher T{te | "I never thought of surgery as 'editing
- fixer@faxcsl.dcrt.nih.gov | a person' before...."
- eWorld: cTate | -- Mark Linton (mhl@icf.hrb.com)
-
- +++++++++++++++++++++++++++
-
- >From opstad@apple.com (David Opstad)
- Date: 6 Nov 1994 22:10:23 -0800
- Organization: Apple Computer Inc, Cupertino, CA
-
- In article <1994Nov2.190355.20865@alw.nih.gov>, fixer@faxcsl.dcrt.nih.gov (Chris Driving in the Rain Tate) writes:
- >
- > I want to draw some text in Geneva Bold. That's it. However, I can't
- > figure out how to specify that font. IM: QDGX Typography says that you
- > should use GXFindFonts() to get a gxFont object that fits your needs.
- > That's cool; I can get "Geneva" by name just fine.
- >
- > However, later on it implies that if you pass the name "Geneva Bold," GX
- > will give you the appropriate flavor of font, and you go from there.
- > Unfortunately, "Geneva Bold" isn't a legitimate font name, apparently.
- > Passing "Geneva" as the name gives me back a gxFont, passing "Geneva Bold"
- > doesn't. :-(
-
- All that GXFindFonts does is look for a gxFont object whose name table
- reports a name matching the criteria you specify. Since no font has a name
- table that matches "Geneva Bold", the GXFindFonts call can't help.
-
- In cases like this, the next step is to use either a variation (if the
- font supports them; call GXCountFontVariations to see it it does), or
- to use a textFace (which can be used with any font). There is sample code
- in the text library (on the SDK CD) that makes it a little easier to
- construct a text face:
-
- void SetStyleCommonFace(gxStyle source, commonFace face);
-
- Just pass in the style and a txFace-like constant and you're set.
-
- Dave Opstad
- GX Line Layout Weenie
-
- ---------------------------
-
- >From tlindner@netcom.com (Tim Lindner)
- Subject: Macintosh Drag and Drop
- Date: Mon, 31 Oct 1994 11:44:44 GMT
- Organization: Computers Suck!, Inc.
-
- I am having trouble implementing two things I see other drag-aware
- applications do:
-
- 1: Click-Through
- How do I keep my application becomming the front most when a
- user clicks on his selection from different application? The _Human
- Interface_Guidelines_ calls this supporting click-through and nothing
- more is said about it.
-
- 2: Trash-aware
- How do I determing when the user dragged his selection in-to the
- finders trash can? The Note Pad uses this like a "Cut" operation and I
- would like to do the same.
-
- --
- tim lindner
- tlindner@netcom.com
-
- +++++++++++++++++++++++++++
-
- >From denboer@cc.umanitoba.ca (David Den Boer)
- Date: 1 Nov 1994 23:29:58 GMT
- Organization: The University of Manitoba
-
- In <tlindnerCyJC3u.MqA@netcom.com> tlindner@netcom.com (Tim Lindner) writes:
-
- >I am having trouble implementing two things I see other drag-aware
- >applications do:
-
- >2: Trash-aware
- > How do I determing when the user dragged his selection in-to the
- >finders trash can? The Note Pad uses this like a "Cut" operation and I
- >would like to do the same.
-
- Check out the source code for DragText, which is included with the Drag
- Manager's Developers Kit (which I believe is on ftp.apple.com now). In the
- Drag.c source file is a routine called DropLocationIsFinderTrash which you can
- pretty much get the whole concept from. If you do not have this code, and
- cannot find the archive, mail me and I will mail you my modified version
- of this code.
- --
- David A. denBoer MUSI Computer Products, Inc.
- denboer@cc.umanitoba.ca Borealis Project Lead
-
- +++++++++++++++++++++++++++
-
- >From jumplong@aol.com (Jump Long)
- Date: 7 Nov 1994 00:03:29 -0500
- Organization: America Online, Inc. (1-800-827-6364)
-
- In article <396j1m$mp3@canopus.cc.umanitoba.ca>, denboer@cc.umanitoba.ca
- (David Den Boer) writes:
-
- >>2: Trash-aware
- >> How do I determing when the user dragged his selection in-to the
- >>finders trash can? The Note Pad uses this like a "Cut" operation and I
- >>would like to do the same.
- >
- >Check out the source code for DragText, which is included with the Drag
- >Manager's Developers Kit (which I believe is on ftp.apple.com now). In
- >the Drag.c source file is a routine called DropLocationIsFinderTrash
- >which you can pretty much get the whole concept from.
-
- The routine in DragText unlocks a handle before it is done with it. I've
- fixed the routine and copied it below
-
- - Jim Luther
-
- #include <AppleEvents.h>
- #include <Files.h>
- #include <Folders.h>
-
- /*
- ** DropLocationIsFinderTrash returns true if the given
- ** dropLocation AEDesc is a descriptor of the Finder's Trash.
- */
-
- Boolean DropLocationIsFinderTrash(AEDesc *dropLocation);
- Boolean DropLocationIsFinderTrash(AEDesc *dropLocation)
-
- {
- Boolean result;
- AEDesc dropSpec;
- FSSpec *theSpec;
- CInfoPBRec pb;
- short trashVRefNum;
- long trashDirID;
-
- result = false; /* default to false */
-
- /* Coerce the dropLocation descriptor to an FSSpec. If there's no
- dropLocation or */
- /* it can't be coerced into an FSSpec, then it couldn't have been the
- Trash. */
- if ( (dropLocation->descriptorType != typeNull) &&
- (AECoerceDesc(dropLocation, typeFSS, &dropSpec) == noErr) )
- {
- /* Lock dropSpec.dataHandle while we use it as a pointer */
- HLock(dropSpec.dataHandle);
- theSpec = (FSSpec *) *dropSpec.dataHandle;
-
- /* Get the directory ID of the given dropLocation object. */
- pb.dirInfo.ioNamePtr = theSpec->name;
- pb.dirInfo.ioVRefNum = theSpec->vRefNum;
- pb.dirInfo.ioFDirIndex = 0;
- pb.dirInfo.ioDrDirID = theSpec->parID;
- if ( PBGetCatInfoSync(&pb) == noErr )
- {
- /* The drop location must be a directory to be the trash */
- if ( (pb.hFileInfo.ioFlAttrib & ioDirMask) != 0 )
- {
- /* Find the trash folder on the drop location's volume. */
- if ( FindFolder(theSpec->vRefNum, kTrashFolderType, kCreateFolder,
- &trashVRefNum, &trashDirID) == noErr )
- {
- /* If the directory ID of the dropLocation object is the same as the
- */
- /* directory ID returned by FindFolder, then the drop must have */
- /* occurred into the Trash. */
- result = ( pb.dirInfo.ioDrDirID == trashDirID );
- }
- }
- }
- /* Unlock and dispose of the descriptor record */
- HUnlock(dropSpec.dataHandle);
- AEDisposeDesc(&dropSpec);
- }
-
- return ( result );
- }
-
-
- ---------------------------
-
- >From Tim Dorcey <td11@cornell.edu>
- Subject: Microseconds() documentation?
- Date: 31 Oct 1994 22:12:44 GMT
- Organization: Cornell University
-
- Does anyone know where the Microseconds system call is documented? I
- stumbled upon it in <Timer.h>, but can't find mention of it anywhere
- else. Can I assume it to be available on any machine with the "Revised
- Time Manager?" I had already written my own timer using
- PrimeTime/RmvTime but would just as soon use the system call if I can be
- sure it is as widely applicable. Thanks,
-
- Tim Dorcey
- T.Dorcey@cornell.edu
-
- +++++++++++++++++++++++++++
-
- >From rac@intrigue.com (Robert Coie)
- Date: Mon, 31 Oct 1994 17:30:28 -0800
- Organization: Intrigue Corporation
-
- In article <393q4s$gu0@newsstand.cit.cornell.edu>, Tim Dorcey
- <td11@cornell.edu> wrote:
-
- > Does anyone know where the Microseconds system call is documented? I
- > stumbled upon it in <Timer.h>, but can't find mention of it anywhere
- > else. Can I assume it to be available on any machine with the "Revised
- > Time Manager?" I had already written my own timer using
- > PrimeTime/RmvTime but would just as soon use the system call if I can be
- > sure it is as widely applicable. Thanks,
-
- Microseconds has its own trap ($A193), and you can check for its
- availability using your favorite TrapAvailable() function. I think
- there's an example in Think Reference.
-
- The following is based on my own experience with Microseconds (about 6
- months ago, and some of the infomation may be out of date). Your mileage
- may vary.
-
- Why Microseconds Is Not My Favorite Toolbox Routine
-
- 1) The System 7.1 stock version of it is not a good neighbor. It stomps
- on a nonvolatile register (90% sure it was A2). This caused code that
- worked on Think C to fail when compiled under CodeWarrior (Think wasn't
- using A2, CodeWarrior used it for the C++ "this" pointer).
-
- 2) Under some conditions, Microseconds (stock 7.1) will warp back in
- time. Successive calls are not guaranteed to return equal or greater
- values than previous calls.
-
- 3) Because of (2), QuickTime patches out Microseconds, so you will need to
- test your code with and without QuickTime. I fell for this one, because
- the QuickTime version of Microseconds preserves A2, and all my machines
- have QuickTime. It was only when I started distributing to beta testers
- that the bombs began bursting in air. We ended up requiring QuickTime.
-
- 4) Trying to eliminate trap dispatcher overhead by jumping directly to the
- NGetTrapAddress hook will fail unless you are real careful. Even though
- it is prototyped pascal stack based, it does not follow standard Pascal
- stack behavior. On exit, A0 is the high word of a 64-bit value, and D0 is
- the low word. You will need to do your own assembly glue if you want to
- avoid the trap dispatcher.
-
- 5) It is emulated on the PowerPC. (at least under 7.1.2, anybody know
- about 7.5?) This will cause major performance degradation if you are
- calling it frequently. I had a program that used Microseconds in a
- process scheduler, and it ran *slower* on a 6100 (with the app native)
- than on a Quadra 700.
-
- There was a thread on AppleLink late last year sometime about
- high-resolution timing on the Power Mac, and I don't recall an official
- recommendation from Apple about what to do. A member of the QuickTime
- team told me that they use the Microseconds trap for their timing even in
- the native QT versions: they just make sure to call it very
- infrequently. Before that conversation occurred, however, I had already
- made up my mind to get real nonportable and hit up the RTC register on the
- 601. If anybody is interested, I can post that native Microseconds timer
- to here and/or alt.sources.mac. Note that I am *not* recommending this
- option -- the RTCR is clearly documented as "601 only, off-limits, here be
- dragons".
-
- What are other c.s.m.p'ers doing for PowerPC high-resolution timing?
-
- --
- Robert Coie rac@intrigue.com
- Implementor, Intrigue Corporation AppleLink: INTRIGUE
- if intrigue.com bounces, try rac%intrigue.com@internex.net
-
- +++++++++++++++++++++++++++
-
- >From resnick@uiuc.edu (Pete Resnick)
- Date: Tue, 01 Nov 1994 16:05:05 -0600
- Organization: University of Illinois at Urbana-Champaign
-
- In article <393q4s$gu0@newsstand.cit.cornell.edu>, Tim Dorcey
- <td11@cornell.edu> wrote:
-
- > Does anyone know where the Microseconds system call is documented?
-
- Inside Macintosh: Operating System Utilities. Page 4-49 in the Date, Time,
- and Measurement Utilities chapter.
-
- pr
- --
- Pete Resnick (...so what is a mojo, and why would one be rising?)
- Doctoral Student - Philosophy Department, Gregory Hall, UIUC
- System manager - Cognitive Science Group, Beckman Institute, UIUC
- Internet: resnick@uiuc.edu
-
- +++++++++++++++++++++++++++
-
- >From jim _reekes@quickmail.apple.com (Jim Reekes)
- Date: Tue, 1 Nov 1994 19:48:29 GMT
- Organization: Apple Computer, Inc.
-
- In article <rac-3110941730280001@198.68.126.30>, rac@intrigue.com (Robert
- Coie) wrote:
-
- > In article <393q4s$gu0@newsstand.cit.cornell.edu>, Tim Dorcey
- > <td11@cornell.edu> wrote:
- >
- > > Does anyone know where the Microseconds system call is documented? I
- > > stumbled upon it in <Timer.h>, but can't find mention of it anywhere
- > > else. Can I assume it to be available on any machine with the "Revised
- > > Time Manager?" I had already written my own timer using
- > > PrimeTime/RmvTime but would just as soon use the system call if I can be
- > > sure it is as widely applicable. Thanks,
- >
- > Microseconds has its own trap ($A193), and you can check for its
- > availability using your favorite TrapAvailable() function. I think
- > there's an example in Think Reference.
- >
- > The following is based on my own experience with Microseconds (about 6
- > months ago, and some of the infomation may be out of date). Your mileage
- > may vary.
- >
- > Why Microseconds Is Not My Favorite Toolbox Routine
- >
- > 1) The System 7.1 stock version of it is not a good neighbor. It stomps
- > on a nonvolatile register (90% sure it was A2). This caused code that
- > worked on Think C to fail when compiled under CodeWarrior (Think wasn't
- > using A2, CodeWarrior used it for the C++ "this" pointer).
- >
- > 2) Under some conditions, Microseconds (stock 7.1) will warp back in
- > time. Successive calls are not guaranteed to return equal or greater
- > values than previous calls.
- >
- > 3) Because of (2), QuickTime patches out Microseconds, so you will need to
- > test your code with and without QuickTime. I fell for this one, because
- > the QuickTime version of Microseconds preserves A2, and all my machines
- > have QuickTime. It was only when I started distributing to beta testers
- > that the bombs began bursting in air. We ended up requiring QuickTime.
- >
- > 4) Trying to eliminate trap dispatcher overhead by jumping directly to the
- > NGetTrapAddress hook will fail unless you are real careful. Even though
- > it is prototyped pascal stack based, it does not follow standard Pascal
- > stack behavior. On exit, A0 is the high word of a 64-bit value, and D0 is
- > the low word. You will need to do your own assembly glue if you want to
- > avoid the trap dispatcher.
- >
- > 5) It is emulated on the PowerPC. (at least under 7.1.2, anybody know
- > about 7.5?) This will cause major performance degradation if you are
- > calling it frequently. I had a program that used Microseconds in a
- > process scheduler, and it ran *slower* on a 6100 (with the app native)
- > than on a Quadra 700.
-
-
- Add this to the list. You should NOT call this trap at interrupt level.
- The timer is incremented by a Time Manager task (level 1 interrupt).
- Therefore, the time does not change during all but a VBL interrupt.
-
- - ---------------------------------------------------------------------
- Jim Reekes, Polterzeitgeist | Macintosh Toolbox Engineering
- | Sound Manager Expert
- Apple Computer, Inc. | "All opinions expressed are mine, and do
- 2 Infinite Loop MS 302-3KS | not necessarily represent those of my
- Cupertino, CA 95014 | employer, Apple Computer Inc."
-
- +++++++++++++++++++++++++++
-
- >From creiman@netcom.com (Charlie Reiman)
- Date: Mon, 7 Nov 1994 05:46:39 GMT
- Organization: NETCOM On-line Communication Services (408 261-4700 guest)
-
- resnick@uiuc.edu (Pete Resnick) writes:
-
- >In article <393q4s$gu0@newsstand.cit.cornell.edu>, Tim Dorcey
- ><td11@cornell.edu> wrote:
-
- >> Does anyone know where the Microseconds system call is documented?
-
- >Inside Macintosh: Operating System Utilities. Page 4-49 in the Date, Time,
- >and Measurement Utilities chapter.
-
- No one has mentioned the biggest pitfall of Microseconds: It's emulated
- on a powermac. If you plan to poll this trap, you can expect abyssmal
- performance from a native application.
-
- --
- "You can't cancel the project! We already made the T-shirts!"
- Charlie Reiman
- creiman@netcom.com
-
- ---------------------------
-
- >From reed@medicine.wustl.edu (Thomas Reed)
- Subject: NOTE TO ALL SCREEN SAVER AUTHORS
- Date: Mon, 07 Nov 1994 11:05:56 -0600
- Organization: Washington University
-
- (Sorry for shouting... ;-)
-
- I'd like to request of all screen saver authors that they start to support
- at least the SAVR Gestalt. Doing this would increase the possibility of
- having programs interact with screen savers, which I think is a very good
- thing.
-
- I can understand if folks didn't support the SAVR selector because they
- didn't know how. So, I've made my SAVR_code source, available at:
-
- ftp://thomas_mac.wustl.edu/Public/for_ftp/
-
- ...along with a file, AfterDarkGestalt.h, which supports calling these
- selectors from a program and stuff like that.
-
- With a few modifications, my code could also easily support the SAVC
- selector, which provides a way for a program to actually control the
- screen saver.
-
- Hopefully, I'll be able to provide a fat version of the code therein soon,
- but right now, it's just 68K code.
-
- If you would like to use this code, feel free.
-
- -Thomas
-
- =====================================================
- Thomas Reed Washington University
- reed@telesphere.wustl.edu Medical School
- reed@medicine.wustl.edu Saint Louis, MO
- - ---------------------------------------------------
- Clothes make the man. Naked people have little or no
- influence on society. -- Mark Twain
- =====================================================
-
- Opinions posted are not the opinions of Wash. U.
-
- ---------------------------
-
- >From mrogers@well.sf.ca.us (Michael Rogers)
- Subject: Power Plant Documentation??
- Date: 30 Oct 1994 02:42:43 GMT
- Organization: The Whole Earth 'Lectronic Link, Sausalito, CA
-
- Hello, All:
-
- I've just got CodeWarrior Gold, and am pretty dismayed at the
- documentation for PowerPlant. Is "PowerPlant Cookbook" all there
- is? Because it isn't much...
-
- Mike
- --
- Dilbert for President! Dogbert for First Dog!
-
- +++++++++++++++++++++++++++
-
- >From nick+@pitt.edu ( nick.c )
- Date: Sat, 29 Oct 1994 23:40:13 -0400
- Organization: The Pitt, Chemistry
-
- In article <38v173$n5v@nkosi.well.com>, mrogers@well.sf.ca.us (Michael
- Rogers) wrote:
-
- > I've just got CodeWarrior Gold, and am pretty dismayed at the
- > documentation for PowerPlant. Is "PowerPlant Cookbook" all there
- > is? Because it isn't much...
-
-
- 'Fraid that's it. However, I've heard rumors to the efect that
- more info on PP will be included on CW 5 or perhaps with the
- netborne update for PP that's lagging behind the 4.5 release,
- but expected any day now. No details, no guarantees.
-
- Also, I'm told many of the classes are documented at:
-
- http://www.iquest.com/~fairgate/cw/pplant.html
-
-
- Internet: nick+@pitt.edu _/ _/ _/ _/_/_/ _/ _/
- eWorld: nick _/_/ _/ _/ _/ _/ _/_/_/
- CIS: 71232,766 _/ _/_/ _/ _/ _/ _/
- http://www.pitt.edu/~nick/ _/ _/ _/ _/_/_/ _/ _/
-
-
- +++++++++++++++++++++++++++
-
- >From Darrin Cardani <Darrin.Cardani@AtlantaGA.NCR.COM>
- Date: Wed, 2 Nov 1994 19:28:13 GMT
- Organization: AT&T Global Information Solutions, Atlanta
-
- >In article <nick+-2910942340130001@ehdup-g-10.slip.net.pitt.edu> nick.c
- writes:
- >In article <38v173$n5v@nkosi.well.com>, mrogers@well.sf.ca.us (Michael
- >Rogers) wrote:
- >>[...] Is "PowerPlant Cookbook" all there
- >> is? Because it isn't much...
- >
- >
- > 'Fraid that's it. However, I've heard rumors to the efect that
- > more info on PP will be included on CW 5 or perhaps with the
- > netborne update for PP that's lagging behind the 4.5 release,
- > but expected any day now. >
-
- Thank God! I just started trying to write my first program using
- PowerPlant, and I'm lost! Eagerly awaiting more docs.
-
- Darrin
-
-
-
-
-
-
-
- +++++++++++++++++++++++++++
-
- >From avirr@well.sf.ca.us (Avi Rappoport)
- Date: 3 Nov 1994 19:06:21 GMT
- Organization: Metrowerks, Inc.
-
- Darrin Cardani <Darrin.Cardani@AtlantaGA.NCR.COM> writes:
-
- >>In article <nick+-2910942340130001@ehdup-g-10.slip.net.pitt.edu> nick.c
- >writes:
- >>In article <38v173$n5v@nkosi.well.com>, mrogers@well.sf.ca.us (Michael
- >>Rogers) wrote:
- >>>[...] Is "PowerPlant Cookbook" all there
- >>> is? Because it isn't much...
- >>
- >>
- >> 'Fraid that's it. However, I've heard rumors to the efect that
- >> more info on PP will be included on CW 5 or perhaps with the
- >> netborne update for PP that's lagging behind the 4.5 release,
- >> but expected any day now. >
-
- >Thank God! I just started trying to write my first program using
- >PowerPlant, and I'm lost! Eagerly awaiting more docs.
-
- >Darrin
-
- True that there will be more docs on the January CW5 disc, but I doubt
- that we'll release them before that. Sorry.
-
-
-
-
-
-
- --
- Avi Rappoport AviRr@metrowerks.com
- User Advocate AviRr@aol.com
- Online Documentation Lead AviRr@eworld.com
- Metrowerks, Inc. AviRr@well.sf.ca.us
-
- +++++++++++++++++++++++++++
-
- >From mwron@aol.com (MW Ron)
- Date: 3 Nov 1994 17:24:07 -0500
- Organization: America Online, Inc. (1-800-827-6364)
-
- In article <CynnF1.5xJ@attatl.AtlantaGA.NCR.COM>, Darrin Cardani
- <Darrin.Cardani@AtlantaGA.NCR.COM> writes:
-
- >>Thank God! I just started trying to write my first program using
- PowerPlant, and I'm lost! Eagerly awaiting more docs.
-
- Darrin,
- The best method for right now is to just get into one of the samples
- and play with it. We will have much better documentation with CW 5 with
- the fast turn around and evolution of PowerPlant, it simply was not
- practical to write any tutorials or references until now.
-
- Ron Liechty
- MWRon@metrowerks.com
- Metrowerks Inc.
-
- +++++++++++++++++++++++++++
-
- >From nick+@pitt.edu ( nick.c )
- Date: Thu, 03 Nov 1994 19:18:51 -0500
- Organization: The Pitt, Chemistry
-
- In article <39bnu7$qt1@newsbf01.news.aol.com>, mwron@aol.com (MW Ron) wrote:
-
- > The best method for right now is to just get into one of the samples
- > and play with it. We will have much better documentation with CW 5 with
- > the fast turn around and evolution of PowerPlant, it simply was not
- > practical to write any tutorials or references until now.
-
- Ron:
-
- Simple question (I'm trying to figure out PP too :-), what is the
- purpose of the URegister class? I realize it has something
- to do with telling PP you've got some custom classes - but I'm
- unsure of *why* you need to tell PP this. TIA.
-
-
- Internet: nick+@pitt.edu _/ _/ _/ _/_/_/ _/ _/
- eWorld: nick _/_/ _/ _/ _/ _/ _/_/_/
- CIS: 71232,766 _/ _/_/ _/ _/ _/ _/
- http://www.pitt.edu/~nick/ _/ _/ _/ _/_/_/ _/ _/
-
-
- +++++++++++++++++++++++++++
-
- >From h+@nada.kth.se (Jon W{tte)
- Date: Fri, 04 Nov 1994 13:37:36 +0100
- Organization: Royal Institute of Something or other
-
- In article <nick+-0311941918510001@ehdup-f-5.slip.net.pitt.edu>,
- nick+@pitt.edu ( nick.c ) wrote:
-
- > Simple question (I'm trying to figure out PP too :-), what is the
- > purpose of the URegister class? I realize it has something
- > to do with telling PP you've got some custom classes - but I'm
- > unsure of *why* you need to tell PP this. TIA.
-
- PowerPlant doesn't provide new_by_name() or member() as the TCL
- does. In order to create classes from a stream though (view
- resources for example) it has to have SOME way of mapping some
- kind of name to a newly instantiated object of that class.
- URegistrar::RegisterClass() simply establishes a mapping from a
- constant used by the view editor, or your, to a function that
- instantiates an object of the class associated with that
- constant.
-
- Cheers,
-
- / h+
-
-
- --
- Jon Wätte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
-
- CFM 68k - solutions to yesterdays problems, tomorrow!
-
-
- +++++++++++++++++++++++++++
-
- >From spencerl@crl.com (Spencer Low)
- Date: Fri, 04 Nov 1994 17:02:42 -0800
- Organization: LowTek Creations
-
- In article <nick+-0311941918510001@ehdup-f-5.slip.net.pitt.edu>,
- nick+@pitt.edu ( nick.c ) wrote:
- > Simple question (I'm trying to figure out PP too :-), what is the
- > purpose of the URegister class? I realize it has something
- > to do with telling PP you've got some custom classes - but I'm
- > unsure of *why* you need to tell PP this. TIA.
-
- If I remember correctly, the URegister class lets you associate a function
- with a class so that the class can be instantiated from resources. Like
- you could associate a function 'CreateMySpecialDialogFromStream' with the
- type 'MySp' to create a dialog from a resource.
-
- Spencer (check out the PowerPlant stuff at http://www.iquest.com/~fairgate)
- ________________________________________________________________________
- Spencer "MaxRAM" Low ------ LowTek Creations ----- spencerl@crl.com
-
- +++++++++++++++++++++++++++
-
- >From ghd@aol.com (GHD)
- Date: 6 Nov 1994 22:35:00 -0500
- Organization: America Online, Inc. (1-800-827-6364)
-
- In article <nick+-0311941918510001@ehdup-f-5.slip.net.pitt.edu>,
- nick+@pitt.edu ( nick.c ) writes:
-
- > Simple question (I'm trying to figure out PP too :-), what is the
- > purpose of the URegister class? I realize it has something
- > to do with telling PP you've got some custom classes - but I'm
- > unsure of *why* you need to tell PP this. TIA.
-
- The URegister class maintains a table of Class ID's and function pointers.
- This table is used when you create objects from a 'PPob' resource. PP
- Constructor creates 'PPob' resources for View hierarchies; you can also
- use Rez and Resorcerer to directly edit 'PPob' resources.
-
- Since CW does not have a "new by name" feature (I don't think this feature
- is in the ANSI C++ draft standard either), you need a way to create an
- object from an external text description. PowerPlant does this by mapping
- a Class ID (four-character code) to a pointer to a function that returns
- an object of that class. You must explicitly provide this association
- between Class ID and function pointer by calling
- URegistrar::RegisterClass() for every class whose objects you wish to
- create from 'PPob' resources.
-
- -- Greg Dow
- -- metrowerks
-
- ---------------------------
-
- >From d8berber@sisko.sbcc.cc.ca.us ()
- Subject: Shareware successes?
- Date: 27 Oct 1994 01:24:58 GMT
- Organization: Santa Barbara City College
-
-
- I'm new to Macintosh programming and I am curious to know whether people
- who are releasing their software as shareware are making any money. What
- do you do to 'coax' people into sending in that payment? A stern message in
- a README file, a serial number scheme, annoying messages that show up when
- the program is launched or when the user selects About..., software that
- 'self-destructs' after a certain number of uses or time limit? Share your
- experiences with the rest of us!
-
- +++++++++++++++++++++++++++
-
- >From andrewwelc@aol.com (AndrewWelc)
- Date: 27 Oct 1994 07:57:06 -0400
- Organization: America Online, Inc. (1-800-827-6364)
-
- In article <38mvha$2bl@coyote.rain.org>, d8berber@sisko.sbcc.cc.ca.us ()
- writes:
-
- > I'm new to Macintosh programming and I am curious to know whether
- > people who are releasing their software as shareware are making any
- > money. What do you do to 'coax' people into sending in that payment?
- > A stern message in a README file, a serial number scheme, annoying
- > messages that show up when the program is launched or when the user
- > selects About..., software that 'self-destructs' after a certain
- > number of uses or time limit? Share your experiences with the rest
- > of us!
-
- While it wouldn't be proper to release sales figues, I can tell you that
- nothing increases your revenues like releasing a quality product.
-
- After that, making it easy for folks to register (credit card orders, 800
- number) a registration and reminder system, and providing good support are
- all factors as well.
-
- Cheers,
-
- Andrew Welch
- Ambrosia Software, Inc.
-
- +++++++++++++++++++++++++++
-
- >From peter.lewis@info.curtin.edu.au (Peter N Lewis)
- Date: Fri, 28 Oct 1994 10:51:14 +0800
- Organization: NCRPDA, Curtin University
-
- In article <38mvha$2bl@coyote.rain.org>, d8berber@sisko.sbcc.cc.ca.us wrote:
-
- >I'm new to Macintosh programming and I am curious to know whether people
- >who are releasing their software as shareware are making any money. What
-
- Yes. I am (reasonable amounts anyway :-), and I presume Aladdin and
- Ambrosia are, and there are certainly others.
-
- >do you do to 'coax' people into sending in that payment?
-
- Write good software and make it easy to pay for.
-
- I use a checkbox in the prefs window "I Paid", and change an about box
- strings from "Please Register" to "Thanks for Registering" and stop the
- non-modal about box from apearing at startup.
-
- Aladdin and Ambrosia use a serial number scheme. Aladdin unlocks extra
- features, I don't think Ambrosia do anything.
-
- Enjoy,
- Peter.
- --
- Peter N Lewis <peter.lewis@info.curtin.edu.au> - Macintosh TCP fingerpainter
- FTP my programs from redback.cs.uwa.edu.au:Others/PeterLewis/ or
- amug.org:pub/peterlewis/ or nic.switch.ch:software/mac/peterlewis/
-
- +++++++++++++++++++++++++++
-
- >From Kevin.R.Boyce@gsfc.nasa.gov (Kevin R. Boyce)
- Date: Fri, 28 Oct 1994 13:09:49 -0400
- Organization: NASA Goddard Space Flight Center -- Greenbelt, Maryland USA
-
- In article <peter.lewis-2810941051140001@rocky.curtin.edu.au>,
- peter.lewis@info.curtin.edu.au (Peter N Lewis) wrote:
-
- >In article <38mvha$2bl@coyote.rain.org>, d8berber@sisko.sbcc.cc.ca.us wrote:
- >
- >>I'm new to Macintosh programming and I am curious to know whether people
- >>who are releasing their software as shareware are making any money. What
- >
- >Yes. I am (reasonable amounts anyway :-), and I presume Aladdin and
- >Ambrosia are, and there are certainly others.
- >
- >>do you do to 'coax' people into sending in that payment?
- >
- >Write good software and make it easy to pay for.
- >
- >I use a checkbox in the prefs window "I Paid", and change an about box
- >strings from "Please Register" to "Thanks for Registering" and stop the
- >non-modal about box from apearing at startup.
-
- Peter, I wonder whether you forgot a very important thing: invent a price
- for site licenses, and put it in your documentation. You could say better
- than anyone else what fraction of your money comes from site licenses, but
- I suspect it's nontrivial. I know that we at Goddard now have licenses
- for Network Time, Fetch, MacHTTP, and something else I've forgotten, and
- there's a big P.O. heading toward Oz now. And I bet in every case the
- site license was substantially more money than the total of users on site
- who would have registered.
-
- So can I check the "I paid" box now, or do I have to wait until you get
- the PO and send it back, and purchasing cuts your check? :-)
- --
- Kevin Kevin.R.Boyce@gsfc.nasa.gov
- Hope that the music turns you
- On like it's turning on me.
- --Hatfield and the North
-
- +++++++++++++++++++++++++++
-
- >From quinn@cs.uwa.edu.au (Quinn "The Eskimo!")
- Date: Mon, 31 Oct 1994 11:02:39 +0800
- Organization: Department of Computer Science, The University of Western Australia
-
- In article <Kevin.R.Boyce-2810941309490001@xrsmc4.gsfc.nasa.gov>,
- Kevin.R.Boyce@gsfc.nasa.gov (Kevin R. Boyce) wrote:
-
- >So can I check the "I paid" box now, or do I have to wait until you get
- >the PO and send it back, and purchasing cuts your check? :-)
-
- My policy on this is that if I've paid, I will check the "I Paid" box. If
- the money doesn't make it to the author, that's tough on them. They
- should've support VISA registration.
-
- Share and Enjoy.
- --
- Quinn "The Eskimo!" "I wasn't the one who fired the heat seeking
- population annihilator out the window!"
- And I have the hacking skill to support my policy (:
-
- +++++++++++++++++++++++++++
-
- >From lamcw@aston.ac.uk (CW LAM)
- Date: Mon, 31 Oct 1994 12:13:48 GMT
- Organization: Aston University
-
- 'd8berber@sisko.sbcc.cc.ca.us' wrote:
-
- ;I'm new to Macintosh programming and I am curious to know whether people
- ;who are releasing their software as shareware are making any money. What
- ;do you do to 'coax' people into sending in that payment? A stern message in
- ;a README file, a serial number scheme, annoying messages that show up when
- ;the program is launched or when the user selects About..., software that
- ;'self-destructs' after a certain number of uses or time limit? Share your
- ;experiences with the rest of us!
-
-
- the best way is to produce something that's useful in the first place. then
- if you really want to squeeze blood out a stone, chop out half the features,
- stating that they only get them when they register. some people may then
- bother to register, most won't. promises of enhanced versions and full
- documentation may also help.
-
- i may be wrong but my guess is that most freeware/shareware stuff is written
- first for personal use and then made available to the public. i've heard
- some people say they have around a 1000 registered users. well at $10 a time,
- it doesn't take a calculator to work out the net profit.
-
-
- chris lam,
- aston university,
- u.k.
-
-
-
- +++++++++++++++++++++++++++
-
- >From jbeeghly@u.washington.edu (Jeff Beeghly)
- Date: 31 Oct 1994 18:19:16 GMT
- Organization: University of Washington
-
- quinn@cs.uwa.edu.au (Quinn "The Eskimo!") writes:
- >My policy on this is that if I've paid, I will check the "I Paid" box. If
- >the money doesn't make it to the author, that's tough on them. They
- >should've support VISA registration.
-
- >Share and Enjoy.
- >--
- >Quinn "The Eskimo!" "I wasn't the one who fired the heat seeking
-
-
- Have you ever looked into getting a VISA (no, not the kind where you can
- PURCHASE goods from, but the kind where you get money)? I agree, VISA is
- very easy on the register, and ideally, I'd like to support VISA as
- well. The problem: $$$. Not only does it take a lot of money to get a
- VISA account set up, but there is a "minimum" monthly charge (which is
- quite a bit) and you need to guarente VISA that you will have at least
- X amount of business each month. If you are a small shareware author,
- VISA is not feasible. The worst part about it though is that without
- VISA, it makes internalional payments VERY difficult.
-
-
-
-
-
- +++++++++++++++++++++++++++
-
- >From h+@nada.kth.se (Jon W{tte)
- Date: Mon, 31 Oct 1994 21:15:25 +0100
- Organization: Royal Institute of Something or other
-
- In article <quinn-3110941102390001@mac161.cs.uwa.oz.au>,
- quinn@cs.uwa.edu.au (Quinn "The Eskimo!") wrote:
-
- >My policy on this is that if I've paid, I will check the "I Paid" box. If
- >the money doesn't make it to the author, that's tough on them. They
- >should've support VISA registration.
-
- NetCash. info@agents.com. 'nuff said :-)
-
- Cheers,
-
- / h+
-
-
- --
- Jon Wätte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
-
- Technology is not the problem;
- therefore, abondoning technology is not the answer.
-
-
- +++++++++++++++++++++++++++
-
- >From nick+@pitt.edu ( nick.c )
- Date: Mon, 31 Oct 1994 17:02:05 -0500
- Organization: The Pitt, Chemistry
-
- In article <AADB0EED9668BF868@klkmac009.nada.kth.se>, h+@nada.kth.se (Jon
- W{tte) wrote:
-
- >
- > NetCash. info@agents.com. 'nuff said :-)
- >
-
- Don't those guys charge something like 20% to buy net cash?
- Doesn't seem like a reasonable option to me (yet).
-
-
- Internet: nick+@pitt.edu _/ _/ _/ _/_/_/ _/ _/
- eWorld: nick _/_/ _/ _/ _/ _/ _/_/_/
- CIS: 71232,766 _/ _/_/ _/ _/ _/ _/
- http://www.pitt.edu/~nick/ _/ _/ _/ _/_/_/ _/ _/
-
-
- +++++++++++++++++++++++++++
-
- >From edw@distant.com (Ed Watkeys)
- Date: Mon, 31 Oct 1994 19:08:19 -0500
- Organization: 35th and Baring
-
- In article <nick+-3110941702050001@ehdup-f-3.slip.net.pitt.edu>,
- nick+@pitt.edu ( nick.c ) wrote:
-
- > In article <AADB0EED9668BF868@klkmac009.nada.kth.se>, h+@nada.kth.se (Jon
- > W{tte) wrote:
- >
- > >
- > > NetCash. info@agents.com. 'nuff said :-)
- > >
- >
- > Don't those guys charge something like 20% to buy net cash?
- > Doesn't seem like a reasonable option to me (yet).
-
- They have a new kind of currency, NetCash $US, and there's a 2% fee to get
- it, and a 2% fee to cash it. It's a pretty good system, IMHO. A lot better
- than sending junk in envelopes via snail mail. Read the info -- there's
- little reason to not support it.
-
- Ed
-
- --
- Ed Watkeys edw@infonautics.com Infonautics Corp.
- Nihilist-Software Engineer edw@eworld.com eWorld/NewtonMail
- Infonautics Corporation edw@distant.com 35th and Baring
-
- +++++++++++++++++++++++++++
-
- >From quinn@cs.uwa.edu.au (Quinn "The Eskimo!")
- Date: Tue, 01 Nov 1994 10:05:00 +0800
- Organization: Department of Computer Science, The University of Western Australia
-
- In article <393cf4$f3@nntp1.u.washington.edu>, jbeeghly@u.washington.edu
- (Jeff Beeghly) wrote:
-
- >Have you ever looked into getting a VISA?
-
- Yeah, I know exactly how painful it is, Peter Lewis moans about it quite
- literally every day. It's not the point though. If you want to be a
- successful shareware author then credit card registration is a starting
- point IMHO. Otherwise you're ignoring at least 50% of your market ('cause
- 50% of Macs are sold outside the US) and probably a lot more ('cause more
- people are going to register if they can do it via Email).
-
- Share and Enjoy.
- --
- Quinn "The Eskimo!" Pez: "What's with all the happy sounds?"
- Giggywig: "They're giddy with fear!"
-
- +++++++++++++++++++++++++++
-
- >From greeny@lanl.gov (J. S. Greenfield)
- Date: 1 Nov 1994 03:20:21 GMT
- Organization: Los Alamos National Laboratory
-
- In article <AADB0EED9668BF868@klkmac009.nada.kth.se> h+@nada.kth.se (Jon W{tte) writes:
-
- >>My policy on this is that if I've paid, I will check the "I Paid" box. If
- >>the money doesn't make it to the author, that's tough on them. They
- >>should've support VISA registration.
- >
- >NetCash. info@agents.com. 'nuff said :-)
-
- Horrendously insecure. NetThief steals your NetCash. 'nuff said. :(
-
-
- --
- J. S. Greenfield greeny@thelair.zynet.com
- (So what were you expecting?
- A Gorilla?!) "What's the difference between an orange?"
-
- +++++++++++++++++++++++++++
-
- >From greeny@lanl.gov (J. S. Greenfield)
- Date: 1 Nov 1994 03:25:36 GMT
- Organization: Los Alamos National Laboratory
-
- In article <edw-3110941908190001@distant.com> edw@distant.com (Ed Watkeys) writes:
-
- >> > NetCash. info@agents.com. 'nuff said :-)
- >> >
- >>
- >> Don't those guys charge something like 20% to buy net cash?
- >> Doesn't seem like a reasonable option to me (yet).
- >
- >They have a new kind of currency, NetCash $US, and there's a 2% fee to get
- >it, and a 2% fee to cash it. It's a pretty good system, IMHO. A lot better
- >than sending junk in envelopes via snail mail. Read the info -- there's
- >little reason to not support it.
-
- Actually, there's a very big reason not to support it--it is terribly
- insecure.
-
- No doubt, the time is right for NetCash. Unfortunately, Software Agents
- decided to give it a go before they had worked out a viable plan for insuring
- the integrity of the system.
-
-
- --
- J. S. Greenfield greeny@thelair.zynet.com
- (So what were you expecting?
- A Gorilla?!) "What's the difference between an orange?"
-
- +++++++++++++++++++++++++++
-
- >From andrewwelc@aol.com (AndrewWelc)
- Date: 1 Nov 1994 01:18:08 -0500
- Organization: America Online, Inc. (1-800-827-6364)
-
- In article <393cf4$f3@nntp1.u.washington.edu>, jbeeghly@u.washington.edu
- (Jeff Beeghly) writes:
-
- > I agree, VISA is very easy on the register, and ideally, I'd like
- > to support VISA as well. The problem: $$$. Not only does it take
- > a lot of money to get a VISA account set up, but there is a
- > "minimum" monthly charge (which is quite a bit) and you need to
- > guarente VISA that you will have at least X amount of business each
- > month. If you are a small shareware author, VISA is not feasible.
- > The worst part about it though is that without VISA, it makes
- > internalional payments VERY difficult.
-
- Actually it doesn't cost money to get a Visa/MasterCard merchant account
- setup -- it cost us a small application fee. Also we have no monthly
- minimum, and we only pay a rental charge on the unit we use, plus a small
- percentage of sales.
-
- The biggest problem is getting a bank to even talk to you about setting up
- a merchant account. The vast majority of banks won't even talk to you if
- you're doing a mail order business -- which is what you are doing.
-
- So then you're forced to go with a provider, who lets you use their
- merchant account. This is of course more costly, but it is the only
- alternative if you can't get a merchant number.
-
- Cheers,
-
- Andrew Welch
- Ambrosia Software, Inc.
-
- +++++++++++++++++++++++++++
-
- >From gasser@masg1.epfl.ch (Laurent Gasser)
- Date: 1 Nov 1994 14:04:03 GMT
- Organization: Ecole Polytechnique Federale de Lausanne
-
- Many have reported difficulties to be accepted as VISA individual
- debitors. That's one touchy subject about shareware: getting the
- money to the author, not to the bank making the transaction.
-
- In article <quinn-3110941102390001@mac161.cs.uwa.oz.au>, quinn@cs.uwa.edu.au (Quinn "The Eskimo!") writes:
- |> My policy on this is that if I've paid, I will check the "I Paid" box. If
- |> the money doesn't make it to the author, that's tough on them. They
- |> should've support VISA registration.
- |>
- |> Share and Enjoy.
- |> --
- |> Quinn "The Eskimo!" "I wasn't the one who fired the heat seeking
- |> population annihilator out the window!"
- |> And I have the hacking skill to support my policy (:
-
- --
- Laurent Gasser (gasser@dma.epfl.ch)
- Computers do not solve problems, they execute solutions.
-
- I know very few ideas worth dying for, none is worth killing.
-
- +++++++++++++++++++++++++++
-
- >From mat@idm.com (Mark A Thalman)
- Date: Tue, 1 Nov 1994 13:49:04 GMT
- Organization: Information Data Management
-
- AndrewWelc (andrewwelc@aol.com) wrote:
- [Snip]
- > ...nothing increases your revenues like releasing a quality product.
-
- He should know about releasing a quality product. I'm a dedicated
- Maelstrom addict.
-
- > After that, making it easy for folks to register (credit card orders, 800
- > number) a registration and reminder system, and providing good support are
- ^^^^^^^^^^^^^^^
- Unfortunately, Maelstrom's doesn't go away when you send in your fee, but
- at least I don't have to press buttons that change their meaning at
- random (are you listening Aladdin?).
- --
- Mark Thalman;mat@idm.com;mat@mcs.com/*clever quote provided by "fortune"*/
- Beware of low-flying butterflies.
-
- +++++++++++++++++++++++++++
-
- >From mspace@netcom.com (Brian Hall)
- Date: Tue, 1 Nov 1994 21:10:20 GMT
- Organization: Mark/Space Softworks
-
- andrewwelc@aol.com (AndrewWelc) writes:
-
- >In article <393cf4$f3@nntp1.u.washington.edu>, jbeeghly@u.washington.edu
- >(Jeff Beeghly) writes:
-
- >> I agree, VISA is very easy on the register, and ideally, I'd like
- >> to support VISA as well. The problem: $$$. Not only does it take
- >> a lot of money to get a VISA account set up, but there is a
- >> "minimum" monthly charge (which is quite a bit) and you need to
- >> guarente VISA that you will have at least X amount of business each
- >> month. If you are a small shareware author, VISA is not feasible.
- >> The worst part about it though is that without VISA, it makes
- >> internalional payments VERY difficult.
-
- >Actually it doesn't cost money to get a Visa/MasterCard merchant account
- >setup -- it cost us a small application fee. Also we have no monthly
- >minimum, and we only pay a rental charge on the unit we use, plus a small
- >percentage of sales.
-
- >The biggest problem is getting a bank to even talk to you about setting up
- >a merchant account. The vast majority of banks won't even talk to you if
- >you're doing a mail order business -- which is what you are doing.
-
- >So then you're forced to go with a provider, who lets you use their
- >merchant account. This is of course more costly, but it is the only
- >alternative if you can't get a merchant number.
-
- Most prviders also handle shipping, which is handy.
-
- Shareware folks can get merchant visa accounts from several sources. Check
- out the various BBS magazines (CONNECT, BBS Caller Digest, Boardwatch, etc)
- for ads.
- --
- __________________________________________________________________________
- Brian Hall, Mark/Space Softworks Internet: mspace@netcom.com
- Communicate, PageNOW!, CTB Tools AppleLink, AOL: MARKSPACE
- Macintosh connectivity software. Goodies at ftp.netcom.com in pub/mspace
-
- +++++++++++++++++++++++++++
-
- >From h+@nada.kth.se (Jon W{tte)
- Date: Wed, 02 Nov 1994 00:05:48 +0100
- Organization: Royal Institute of Something or other
-
- In article <394c5l$7au@newshost.lanl.gov>,
- greeny@lanl.gov (J. S. Greenfield) wrote:
-
- >Horrendously insecure. NetThief steals your NetCash. 'nuff said. :(
-
- Tell me more?
-
- As far as I know, the only way of stealing NetCash would be to
- have access to the raw network packets, AND filter through each
- and every one. That's of course doable, but anyone doing it on
- a larger scale would be found out.
-
- However, if you use encrypted mail (like with PGP) this isn't a
- problem at all.
-
- Cheers,
-
- / h+
-
-
- --
- Jon Wätte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
- "After I first used the Mac, I had a dream in which I would walk up to
- people, touch them, and they'd turn black. Then I could talk to them."
- -- Anon
-
-
- +++++++++++++++++++++++++++
-
- >From Grant Hulbert <guidude@netcom.com>
- Date: 2 Nov 1994 03:47:17 GMT
- Organization: GUI Dude Software
-
- In article <394mj0$hq9@newsbf01.news.aol.com> AndrewWelc,
- andrewwelc@aol.com writes:
- >The biggest problem is getting a bank to even talk to you about setting
- up
- >a merchant account. The vast majority of banks won't even talk to you if
- >you're doing a mail order business -- which is what you are doing.
-
- Call David Jones at TeleFlora: 800-325-4849 x2076 direct: 303-750-7958
- BBS: 303-750-8198
- david.jones@hotelnet.com
-
- Believe it or not, TeleFlora (the people who do florist's VISA accounts)
- has a special shareware author's account. I called David and was set up
- immediately for very little cash (no minimums). I get money from people
- in other countries all the time. It's great! They understand shareware
- and mail-order.
-
- --Grant Hulbert
- guidude@netcom.com
-
- +++++++++++++++++++++++++++
-
- >From peter.lewis@info.curtin.edu.au (Peter N Lewis)
- Date: Wed, 02 Nov 1994 11:40:17 +0800
- Organization: NCRPDA, Curtin University
-
- In article <393cf4$f3@nntp1.u.washington.edu>, jbeeghly@u.washington.edu
- (Jeff Beeghly) wrote:
-
- >Have you ever looked into getting a VISA (no, not the kind where you can
- >PURCHASE goods from, but the kind where you get money)? I agree, VISA is
- >very easy on the register, and ideally, I'd like to support VISA as
- >well. The problem: $$$. Not only does it take a lot of money to get a
- >VISA account set up, but there is a "minimum" monthly charge (which is
-
- Yes, believe me I've looked. I finally found Kee Nethery who has set up a
- shareware registration system that is reasonably priced (4%-10% depending
- on the payment method (checks, cash, American Express, VISA, MasterCard or
- NetCash US$ (original NetCash $ cost 20%, so they are pretty hideous to
- process, but the new ones aren't bad)). I've been using the system with
- Kee for the last two months while we sorted out the kinks, and it's worked
- very well. Kee also has a permanent PO box so your address wont change,
- and can reflect Email (eg peter@kagi.com is now my standard address) so
- your Email address wont change, and accepts registrations via Email, FAX
- or snail-mail. Anyway, contact Kee <kee@kagi.com> for more information.
-
- Note: I may end up having a small share of this system so I am not
- entirely unbiased, but I would be using it and recomending it anyway -
- does anyone think that VISA cards registrations wont increase your
- payments by 10%? or that having a nice "company" fronting you wont smooth
- those anoying government/university/company people who don't like making
- checks out to individuals (or sending them to strange Australians who for
- some weird reason don't have a US SSN or tax number...). For myself, just
- having someone else deal with mailed registrations is worth 5% (although
- my dad is really upset that his stamp collect
-
- Note2: This is not "enough". Nothing will turn you from unsuccessful to
- successful except writing a decent program that people are actually going
- to use. So if you've got $20 worth of payments so far, it's unlikely this
- (or anything else) will bring you thousands of dollars...
- Peter.
- --
- Peter N Lewis <peter.lewis@info.curtin.edu.au> - Macintosh TCP fingerpainter
- FTP my programs from redback.cs.uwa.edu.au:Others/PeterLewis/ or
- amug.org:pub/peterlewis/ or nic.switch.ch:software/mac/peterlewis/
-
- +++++++++++++++++++++++++++
-
- >From Andrew Barry <ajbarry@ozemail.com.au>
- Date: Wed, 2 Nov 1994 09:02:57 GMT
- Organization: Grishnakh
-
- In article <CyJDz1.Hws@aston.ac.uk> CW LAM, lamcw@aston.ac.uk writes:
- >;I'm new to Macintosh programming and I am curious to know whether people
- >;who are releasing their software as shareware are making any money. What
- >;do you do to 'coax' people into sending in that payment? A stern
- message in
- >;a README file, a serial number scheme, annoying messages that show up
- when
- >;the program is launched or when the user selects About..., software that
- >;'self-destructs' after a certain number of uses or time limit? Share
- your
- >;experiences with the rest of us!
-
- In Prince of Destruction we decided to limit the game through a number of
- mechanisms:
- - Limit areas of the game that can be accessed
- - Limit 'power' level that player can reach
- - Shutdown game after an hour
- - Limit ability to load and save games
-
- We're currently picking up about 10 registrations a week - who knows how
- long
- this will continue....
-
- I must admit that I have a fairly low regard for the 'honour' system.
- It's sad, I know.
-
- +++++++++++++++++++++++++++
-
- >From kee@kagi.com (Kee Nethery (+1 510 843 6140))
- Date: Wed, 2 Nov 1994 19:17:45 GMT
- Organization: Kagi Engineering
-
- Figured I should say hello since I am acting as a shareware registration
- service. Like Peter Lewis mentioned earlier, I accept; Visa, MC, AmExp,
- US$checks, cash (from just about any country in the world), and NetCash. I
- accept payment via; email, fax, postal. I do invoicing when required by the
- payee and I provide paper receipts when required by the payee. I provide
- email receipts for each payee (a copy to the author also) and in the
- process send them the author's blurb describing their other products and
- how to obtain them, etc.
-
- I offer permanent postal, fax and email addresses so that if you move,
- payments still make it to you. There is a Mac shareware registration
- program that I provide that is included in the fee that I charge. It
- preprocesses the payment information to allow me to keep costs low. There
- is a Newton shareware registration application being developed and I'm
- looking for someone to develop PC and Unix versions.
-
- I will soon be providing database type detailed summaries detailing payee
- information in an electronic format (working out the desired outputs right
- now). I'd say that half of the payments these days are electronic and half
- are postal.
-
- As an FYI, my merchant account for Visa and MC has a minimum monthly charge
- and a several hundred dollar setup fee and like someone else mentioned,
- getting a mail order merchant account is not easy. Fortunately, I knew my
- banker and was able to convince him to take the risk and to help me get a
- merchant account.
-
- If you have questions, feel free to drop me a line.
-
- Kee Nethery
- kee@kagi.com
-
- +++++++++++++++++++++++++++
-
- >From gotow@ansoft.com (Jon Gotow)
- Date: Thu, 3 Nov 1994 03:25:23 GMT
- Organization: Ansoft Corporation
-
- In article <394mj0$hq9@newsbf01.news.aol.com>
- andrewwelc@aol.com (AndrewWelc) writes:
-
- > Actually it doesn't cost money to get a Visa/MasterCard merchant account
- > setup -- it cost us a small application fee. Also we have no monthly
- > minimum, and we only pay a rental charge on the unit we use, plus a small
- > percentage of sales.
- >
- > The biggest problem is getting a bank to even talk to you about setting up
- > a merchant account. The vast majority of banks won't even talk to you if
- > you're doing a mail order business -- which is what you are doing.
- >
- > So then you're forced to go with a provider, who lets you use their
- > merchant account. This is of course more costly, but it is the only
- > alternative if you can't get a merchant number.
-
- We just set up a merchant account, and found that the small community
- banks were reasonably open-minded. After the president of our local
- bank finished chuckling at the notion of shareware, he was very
- receptive.
-
- One of the big problems with mail order is the high rate of
- charge-backs (ie. returns). All I had to do was explain that the stuff
- is distributed on a try-before-you-buy honor system in the first place,
- and then they stopped worrying. Who's going to voluntarily pay for
- something they already have, then return the software for a refund? If
- you can get the banker to listen, it makes a whole lot of sense -
- there's really very little risk at all for them in handling your credit
- card transactions.
-
- _____________________________________________________________________
- Jon Gotow | In this world there are only two tragedies.
- gotow@ansoft.com | One is not getting what one wants, and the
- | other is getting it. - Oscar Wilde
-
- +++++++++++++++++++++++++++
-
- >From jbobier@cybernetics.net (Jason Bobier)
- Date: Mon, 31 Oct 1994 20:17:22 -0500
- Organization: Prismatix Software
-
- In article <393cf4$f3@nntp1.u.washington.edu>, jbeeghly@u.washington.edu
- (Jeff Beeghly) wrote:
-
- > Have you ever looked into getting a VISA (no, not the kind where you can
- > PURCHASE goods from, but the kind where you get money)? I agree, VISA is
- > very easy on the register, and ideally, I'd like to support VISA as
- > well. The problem: $$$. Not only does it take a lot of money to get a
- > VISA account set up, but there is a "minimum" monthly charge (which is
- > quite a bit) and you need to guarente VISA that you will have at least
- > X amount of business each month. If you are a small shareware author,
- > VISA is not feasible. The worst part about it though is that without
- > VISA, it makes internalional payments VERY difficult.
-
- This is not necessarily true. It completely depends upon the bank that is
- issuing the VISA account to you. Just like when you get a VISA card, the
- bank determines many of the variables.
-
- Moral of the story: Credit Unions are cool...
-
- Jason
-
- _____________________________________________________________________
- Jason A. Bobier
- Prismatix Software
-
- Email: jbobier@cybernetics.net
-
- "Living is easy with eyes closed..." - The Beatles
-
- +++++++++++++++++++++++++++
-
- >From andrewwelc@aol.com (AndrewWelc)
- Date: 3 Nov 1994 22:07:39 -0500
- Organization: America Online, Inc. (1-800-827-6364)
-
- In article <397245$flv@coyote.csusm.edu>, Grant Hulbert
- <guidude@netcom.com> writes:
-
- > Believe it or not, TeleFlora (the people who do florist's VISA
- > accounts) has a special shareware author's account. I called David
- > and was set up immediately for very little cash (no minimums). I
- > get money from people in other countries all the time. It's great!
- > They understand shareware and mail-order.
-
- Yes, but you've made my point. By going through TeleFlora you are going
- through a middleman to a bank, which of course means that everyone wants a
- cut along the way, and you end up paying pretty unreasonable rates.
-
- We managed to get ours through a bank (so we actually have a merchant
- number) but I'd consider ourselves extremely lucky, especially after
- hearing the experiences of a number of other folks who have attempted
- this.
-
- Regards,
-
- Andrew Welch
- Ambrosia Software, Inc.
-
- +++++++++++++++++++++++++++
-
- >From sw@network-analysis-ltd.co.uk (Sak Wathanasin)
- Date: Fri, 4 Nov 94 09:09:09 GMT
- Organization: Network Analysis Ltd
-
-
- In article <395hsj$959@info.epfl.ch> (comp.sys.mac.programmer),
- gasser@masg1.epfl.ch (Laurent Gasser) writes:
-
- > Many have reported difficulties to be accepted as VISA individual
- > debitors.
-
- Doesn't surprise me: the banks are wary of "businesses" who set up
- shop, take credit card orders, and then do a moonlight flit, leaving
- the bank to refund the poor punters when they realize that the goods
- were never going to arrive. We had to provide 2 trade refs, a bank
- ref, 3 years audited accounts, and they visited our premises. It's
- hard on individual shareware authors, but the banks would be
- negligent if they didn't make any effort to check that they weren't
- throwing their customer's money away.
-
- And if you are a merchant account holder, beware of people
- approaching you to process credit card transactions on their behalf.
- If they do a runner, you will be left with the "chargeback". There's
- a scam currently going the rounds...
-
- Sak Wathanasin
- Network Analysis Limited
- 178 Wainbody Ave South, Coventry CV3 6BX, UK
-
- Internet: sw@network-analysis-ltd.co.uk
- uucp: ...!uknet!nan!sw AppleLink: NAN.LTD
- Phone: (+44) 203 419996 Mobile:(+44) 850 587411 Fax: (+44) 203 690690
-
- +++++++++++++++++++++++++++
-
- >From peter.lewis@info.curtin.edu.au (Peter N Lewis)
- Date: Sat, 05 Nov 1994 16:28:35 +0800
- Organization: NCRPDA, Curtin University
-
- In article <39c8hr$t2s@newsbf01.news.aol.com>, andrewwelc@aol.com
- (AndrewWelc) wrote:
-
- >> Believe it or not, TeleFlora (the people who do florist's VISA
- >> accounts) has a special shareware author's account. I called David
- >> and was set up immediately for very little cash (no minimums). I
- >> get money from people in other countries all the time. It's great!
- >> They understand shareware and mail-order.
- >
- >Yes, but you've made my point. By going through TeleFlora you are going
- >through a middleman to a bank, which of course means that everyone wants a
- >cut along the way, and you end up paying pretty unreasonable rates.
-
- Well, that's true. My solution (since there is no way I could get a VISA
- merchant account to opperate in US dollars here (the *only* people who can
- do that are the airlines, and I'm a bit short of cash to start up an
- airline :-)) was to go thru Kee Nethery <kee@kagi.com>. True, it costs 4
- or 5% more than direct to the bank, but he also does all the processing
- (and since I have a stack of letters from older versions that I have to
- process once I finish reading news, his service looks even better - I'll
- be happy when all my customers (except Australian ones) go thru him).
- Plus there is no monthly fees so there isn't any real disinsentive unless
- you believe that credit cards wont increase your sales by 10% (I should
- have some hard figures in the near future, although it's confounded by new
- releases and the ever increasing Internet usership).
-
- Enjoy,
- Peter.
- --
- Peter N Lewis <peter.lewis@info.curtin.edu.au> - Macintosh TCP fingerpainter
- FTP my programs from redback.cs.uwa.edu.au:Others/PeterLewis/ or
- amug.org:pub/peterlewis/ or nic.switch.ch:software/mac/peterlewis/
-
- +++++++++++++++++++++++++++
-
- >From mpeirce@outpost.peircesw.com (Michael Peirce)
- Date: Sat, 5 Nov 94 18:21:43 PT
- Organization: Peirce Software, Inc.
-
-
- In article <39c8hr$t2s@newsbf01.news.aol.com> (comp.sys.mac.programmer), andrewwelc@aol.com (AndrewWelc) writes:
- > In article <397245$flv@coyote.csusm.edu>, Grant Hulbert
- > <guidude@netcom.com> writes:
- >
- > > Believe it or not, TeleFlora (the people who do florist's VISA
- > > accounts) has a special shareware author's account. I called David
- > > and was set up immediately for very little cash (no minimums). I
- > > get money from people in other countries all the time. It's great!
- > > They understand shareware and mail-order.
- >
- > Yes, but you've made my point. By going through TeleFlora you are going
- > through a middleman to a bank, which of course means that everyone wants a
- > cut along the way, and you end up paying pretty unreasonable rates.
- >
- > We managed to get ours through a bank (so we actually have a merchant
- > number) but I'd consider ourselves extremely lucky, especially after
- > hearing the experiences of a number of other folks who have attempted
- > this.
-
- Peirce Software is setup through Teleflora (Visa/MC/AmEx). I
- switched from a bank provided account to them because they
- offered better rates and lower fees than I could get almost
- anywhere else.
-
- Their tech support is excellent (I once had to reprogram my cc
- terminal from a hotel room before a MacWorld Expo and they had
- folks answering the phone at 10:30 PM). They also have about as
- clear a set of user guides and such as I have seen.
-
- I highly recommend them.
-
- __ Michael Peirce __ mpeirce@peircesw.com <- New ADDRESS!
- __ Peirce Software, Inc. __ 719 Hibiscus Place, Suite 301
- __ __ San Jose, California USA 95117-1844
- __ Makers of: SMOOTHIE & __ voice: +1.408.244.6554 fax: +1.408.244.6882
- __ PEIRCE PRINT TOOLS __ AppleLink & AOL: peirce
-
- +++++++++++++++++++++++++++
-
- >From greeny@lanl.gov (J. S. Greenfield)
- Date: 7 Nov 1994 19:41:00 GMT
- Organization: Los Alamos National Laboratory
-
- In article <AADC885C96688B738@klkmac009.nada.kth.se> h+@nada.kth.se (Jon W{tte) writes:
-
- >>Horrendously insecure. NetThief steals your NetCash. 'nuff said. :(
- >
- >Tell me more?
- >
- >As far as I know, the only way of stealing NetCash would be to
- >have access to the raw network packets, AND filter through each
- >and every one. That's of course doable, but anyone doing it on
- >a larger scale would be found out.
-
- Well, that's certainly *a* way, and as you say is doable. Of course,
- one can also use any variety of trojan horse schemes to access only
- email, and one can direct his efforts toward particular sites that
- have significant numbers of NetCash transactions going on.
-
- As for catching folks--I have very little confidence in this. If you
- consider how easy it is to be anonymous on the net, and if you consider
- that Software Agents hasn't set up a system for dealing with such
- matters. It's quite believable that an individual could steal a significant
- amount of NetCash and either cash it out or pass it on before the
- principals involved are even aware that mail didn't make it through.
-
- The phone companies and law enforcement have a terrible time trying to
- shut down fly-by-night boiler room operations that set up to con people
- out of their money. This is an old and well-known paradigm for fraud.
- What makes you think that one company that has just entered the net-cash
- business and which has provided no security mechanism (other than some
- limited protection against simple guessing attacks) is prepared to take
- action against fraud?
-
- And even if it were true that only small scale theft could succeed, so
- what? It certainly wouldn't make it acceptable to me, considering that
- they have made essentially no effort to protect against such fraud.
-
-
- >However, if you use encrypted mail (like with PGP) this isn't a
- >problem at all.
-
- This is not an adequate solution. First of all, the vast majority of
- netters do *not* encrypt their email. It makes little sense to count upon
- encrypted mail as a security tool when most people won't use it.
-
- Perhaps more importantly, this is the wrong way to approach things. Requiring
- that users be responsible for all security is not an acceptable solution for
- system security problems. It's akin to a bank saying "Sure, we'll give you
- a safety deposit box, but it will be a box accessible to the public. If you
- want to put a lock on the box, you're welcome to do that. However, the
- box isn't nailed down, and we accept no responsibility should your box be
- stolen."
-
-
- I have, however, just returned from the ACM conference on Computer and
- Communication Security, and I'm glad to report that there are other
- entities (ranging from the major credit card companies to a new company
- call CyberCash to academic researchers) that are working on the development
- of network payment mechanisms. Fortunately, these companies seem to be
- seriously concerned by the security issues, and are actively working on the
- development of systems in which security is an integral part of the design.
-
-
- --
- J. S. Greenfield greeny@thelair.zynet.com
- (So what were you expecting?
- A Gorilla?!) "What's the difference between an orange?"
-
- ---------------------------
-
- End of C.S.M.P. Digest
- **********************
-
-
-
-