KOFOID@cc.utah.edu (03/02/90)
Tom Johnson writes: >[...] > >Here's the scenario: [...] I decide to set the userLevel to 2 at openStack >time. [etc...He wants to protect the stack from change by naive students.] ...and of course got a typically snotty answer from an Apple rep, who never bothered to tell him how to do what he wants to do. So, Tom, here's how you do it. Put the following in your stack scripts: on startUp -- blocks upward migration of the startUp message end startUp on openStack getHomeInfo -- does startUp's useful work set the userLevel to 2 -- now the new value will survive -- put other openStack items here -- end openStack This is also a useful way to set lots of things that are normally overridden by the startUp message, such as the value of textArrows, etc. >>>> FLAME ON I get supremely pissed when people chide others in public for not treating HyperCard stacks like a holy relics, whose guts are to be accessible to all. I enjoy the openness of the HyperCard community and like to share my code. However, if people wish to treat HC as a development system, hiding the inner workings of a stack, I see no problem. As far as I'm concerned, it's absolutely the same as writing a program and distributing the binary file, for whatever reason. When did you last see Apple post the source code for its ROMs, the Finder, MacWrite, MacPaint, etc., etc.? Until they do so, I'd prefer that they or their representatives answer users' questions with a minimum of sarcasm. Embarrassing some poor soul because he or she isn't quite as clever as a professional programmer isn't the point of this newsgroup. Possibly, the employee doesn't really represent her company when she writes (then, why identify the company?). Unfortunately, I've found this attitude all too typical whenever one needs technical help from Apple and does not happen to be a large, multinational, for-megaprofit corporation. Her approach is irritating, regardless, for the reasons stated. >>>> FLAME OFF Cheers, Eric. Snail: Eric Kofoid; Dept. Biology, U. of Utah; SLC, UT 84112 Fast: bi.kofoid%science@utahcca (BitNet) Faster: bi.kofoid@science.utah.edu (InterNet) Fastest: kofoid@bioscience.utah.edu (InterNet -> QuickMail)
jdevoto@Apple.COM (Jeanne A. E. DeVoto) (03/04/90)
In article <48201@cc.utah.edu> KOFOID@cc.utah.edu writes: > ...and of course got a typically snotty answer from an Apple rep, who never >bothered to tell him how to do what he wants to do. First of all, I am not "an Apple rep". As far as I know, Apple maintains no official representation here; and in any case I am not an employee of Apple Computer. Second, I take issue with "typically snotty". To my knowledge, quite a few Apple employees do read and post to comp.sys.mac.*, on their own time and initiative: they provide a great deal of assistance for which I for one am grateful. I have yet to see a message from an Apple employee on these newsgroups that is less than professional and helpful. Third, I not only told him what the problem was that was causing the userLevel to reset itself, I suggested a second solution that would do what he wanted while solving some other problems at the same time. >>>>> FLAME ON > When did you last see Apple post the source code for its ROMs, the Finder, >MacWrite, MacPaint, etc., etc.? Until they do so, I'd prefer that they or their >representatives answer users' questions with a minimum of sarcasm. Embarrassing >some poor soul because he or she isn't quite as clever as a professional >programmer isn't the point of this newsgroup. > > Possibly, the employee doesn't really represent her company when she writes >(then, why identify the company?). Unfortunately, I've found this attitude all >too typical whenever one needs technical help from Apple and does not happen to >be a large, multinational, for-megaprofit corporation. Her approach is >irritating, regardless, for the reasons stated. Look. I spend a huge amount of time here and elsewhere answering questions of all sorts about HyperCard and HyperTalk. I do it primarily because I enjoy it and learn from it; secondarily because by making myself available in this way as a resource of knowledge about the subject, I may have some small influence on its future direction. What that means is that along with the help and the answers and the example scripts, I sometimes broadcast opinions about things that matter to me. One of those things, as you may have noticed, is the open sharing of code and ideas: I get on a soapbox pretty much every time I'm asked how to guard code or copy-protect a program. If you want the help, you gotta listen to the opinionated rants; sorry, but it's the price of admission. If you find my opinions sufficiently "irritating" that you would prefer to skip both the help and the opinions, fine. The command is /jdevoto/h:j. -- ====== jeanne a. e. devoto ======================================== jdevoto@apple.com | You may not distribute this article under a jdevoto@well.UUCP | compilation copyright without my permission. ___________________________________________________________________ Apple Computer and I are not authorized | CI$: 72411,165 to speak for each other. | AppleLink: SQA.TEST
tim@hoptoad.uucp (Tim Maroney) (03/05/90)
In article <48201@cc.utah.edu> KOFOID@cc.utah.edu writes: >Tom Johnson writes: > >>Here's the scenario: [...] I decide to set the userLevel to 2 at openStack >>time. [etc...He wants to protect the stack from change by naive students.] > > ...and of course got a typically snotty answer from an Apple rep, who never >bothered to tell him how to do what he wants to do. Give me a break. Jeanne Devoto is about the farthest thing from a "snotty Apple rep" imaginable. (And believe me, I've dealt with snotty ones -- even snively ones.) She consistently comes forward with strong, clear answers to people's questions here, using her own time, and is generally both polite and cheerful. Her message to Tom Johnson was legitimate; if someone asks "How do I fill my ears with gunpowder", "I would advise you not to try" is a perfectly good response. She did not attack him personally in any way for asking the question, merely set forth her problems with the idea of locking stacks against users. I wish the same could be said for your message, which is full of gratuitous personal attack. >>>>> FLAME ON You clearly intended this for the beginning of your message; how'd it slip to the middle? > I get supremely pissed when people chide others in public for not treating >HyperCard stacks like a holy relics, whose guts are to be accessible to all. I >enjoy the openness of the HyperCard community and like to share my code. >However, if people wish to treat HC as a development system, hiding the inner >workings of a stack, I see no problem. As far as I'm concerned, it's absolutely >the same as writing a program and distributing the binary file, for whatever >reason. The "holy relic" view is in the mind of the programmers who consider their software too ineffable to allow the masses to even gaze upon its face, lest they be blinded and struck deaf by its magnificence. It is certainly not in the minds of those who wish to see more software made open to the public. > When did you last see Apple post the source code for its ROMs, the Finder, >MacWrite, MacPaint, etc., etc.? Until they do so, I'd prefer that they or their >representatives answer users' questions with a minimum of sarcasm. Embarrassing >some poor soul because he or she isn't quite as clever as a professional >programmer isn't the point of this newsgroup. Now *you* are attacking Tom Johnson personally just as you have Ms. Devoto. I see no indication that Mr. Johnson is not as clever as a professional programmer, and neither did Ms. Devoto. We just happen to disagree with his intent of locking users out of their own stacks. One of the nicest things about HyperCard stacks, as opposed to binary software, is that if there's some little thing in the program that drives you nbuts, you can change it with a minimum of fuss. I've done this with the stack I use most often, the Technical Notes Stack from Apple, and I expect my users to do so with the stacks I'm developing. Even if behavior depends on an XCMD, source code for which is usually not distributed, XCMDs are small and replaceable; you may not be able to easily modify the default XCMD, but you can write your own and paste it into the stack with ResEdit. Taking this "softer software" out of HyperCard is removing one of the system's main strengths. > Possibly, the employee doesn't really represent her company when she writes >(then, why identify the company?). Unfortunately, I've found this attitude all >too typical whenever one needs technical help from Apple and does not happen to >be a large, multinational, for-megaprofit corporation. Her approach is >irritating, regardless, for the reasons stated. > >>>>> FLAME OFF What a load. Devoto is probably the single most helpful person in this newsgroup, so you blast her for a single message which explains why you shouldn't do something rather than how to do it? Grow up! -- Tim Maroney, Mac Software Consultant, sun!hoptoad!tim, tim@toad.com "The pride of the peacock is the glory of God. The lust of the goat is the bounty of God. The wrath of the lion is the wisdom of God. The nakedness of woman is the work of God." - Blake, "The Marriage of Heaven and Hell"
tomj@oakhill.UUCP (Tom Johnson) (03/06/90)
In article <48201@cc.utah.edu> KOFOID@cc.utah.edu writes: >Tom Johnson writes: >>[...] >>Here's the scenario: [...] I decide to set the userLevel to 2 at openStack >>time. [etc...He wants to protect the stack from change by naive students.] > > ...and of course got a typically snotty answer from an Apple rep, who never >bothered to tell him how to do what he wants to do. So, Tom, here's how you do >it. Put the following in your stack scripts: >... First, thanks for the solution. It now seems clear as to WHY hypercard was doing what it was doing. >However, if people wish to treat HC as a development system, hiding the inner >workings of a stack, I see no problem. As far as I'm concerned, it's absolutely >the same as writing a program and distributing the binary file, for whatever >reason. >... Next, although I didn't specifically state this in my original posting, the REASON I want to put some special password protection on the stack is that the stack will be shared by MANY people, some of whom have some familiarity with Hypercard, but ALL of whom are engineering types that love to tinker. Thus, to make sure that this business-oriented stack continiues to perform its purpose, it is necessary to add additional protection against unwanted changing of the scripts. It may, therefore, be looked at as an application, nothing more, nothing less. In the interest of saving ntework bandwith, I didn't feel it necessary to explain all of this up front. Additionally, the statement "pristine scripts" was meant to be taken with tongue firmly implanted in cheek. I am realtively thick-skinned, and flames don't usually scorch me much, so I took the original reply with good nature. It's nice to know that the entire UseNet community, however, doesn't share the view that just because company "A" doesn't like what your doing then it shouldn't be done! Sometimes there are good reasons for "tricky" programming (e.g. QuickDr?w from a company to remain unnamed). >... Embarrassing >some poor soul because he or she isn't quite as clever as a professional >programmer isn't the point of this newsgroup. > > Cheers, > Eric. It just so happens that I AM a professional programmer (C, Pascal, Fortran, 68xxx assembly, etc), but don't have much experience with Hypercard (which I find has a definite flavor of COBOL...yuch!). Rather than spend several days wandering through my library of Hypercard reference books, I thought I might get a quicker answer from the net. Thanks for coming to the rescue, Eric, and once again, its is nice to know that there are people out there willing to forego destructive criticism for constructive criticism. Tom Johnson (tomj@oakhill.UUCP) Standard Disclaimer applies.
taylorj@yvax.byu.edu (03/06/90)
In article <48201@cc.utah.edu>, Eric Kofoid flames Jeanne Devoto for voicing a
well-founded opinion, not answering the question (even though she did), and
then provides an example of the WRONG solution to the problem.
First off, Jeanne constantly provides very helpful answers and advice and is in
no way deserving of irresponsible flames. I would understand it if Eric
presented his own conflicting opinions in a civilized manner, but derogatory
personal attacks are uncalled for.
Second, I get "supremely pissed" (to use Eric's words) when some know-it-all
traps the startUp message. The startUp handler in my home stack does much more
than call getHomeInfo, and I don't appreciate it when it's bypassed by someone
who thinks simply calling getHomeInfo "does startUp's useful work".
So, please DO NOT PUT THE FOLLOWING IN YOUR STACK SCRIPT:
---
on startUp
end startUp
If you must set something on openStack that might be changed in the Home
stack's startUp handler, set a flag and test it later. For example:
on openStack
global initialized
put false into initialized
end openStack
on idle
global initialized
if not initialized then
set the userLevel to 2
set the textArrows to true
-- etc. --
put true into initialized
end if
pass idle
end idle
If you don't like using an idle handler, you can check the flag when the next
card is opened, or whatever.
Jim Taylor
Microcomputer Support for Curriculum
Brigham Young University
taylorj@yvax.byu.edu
tomj@oakhill.UUCP (Tom Johnson) (03/07/90)
In article <1150taylorj@yvax.byu.edu> taylorj@yvax.byu.edu writes: >In article <48201@cc.utah.edu>, Eric Kofoid flames Jeanne Devoto for voicing a >well-founded opinion, not answering the question (even though she did), and >then provides an example of the WRONG solution to the problem. > >First off, Jeanne constantly provides very helpful answers and advice and is in >no way deserving of irresponsible flames. I would understand it if Eric >presented his own conflicting opinions in a civilized manner, but derogatory >personal attacks are uncalled for. > >Second, I get "supremely pissed" (to use Eric's words) when some know-it-all >traps the startUp message. The startUp handler in my home stack does much more >than call getHomeInfo, and I don't appreciate it when it's bypassed by someone >who thinks simply calling getHomeInfo "does startUp's useful work". > >So, please DO NOT PUT THE FOLLOWING IN YOUR STACK SCRIPT: [Eric's recommendations deleted] >If you must set something on openStack that might be changed in the Home >stack's startUp handler, set a flag and test it later. For example: [ Jim's recommendations deleted] > >Jim Taylor After re-reading both Jeanne's and Eric's messages, I find I must apologize for my posting of yesterday. When I first read Jeanne's posting/recommen- dations, **I** felt somewhat chastised/flamed, for attempting to do something "non-kosher." After receiving Eric's post, I at least UNDERSTOOD why hyper- card seemed to be changing things behind my back (although I must admit that - upon re-reading BOTH postings - the tone of Eric's posting was somewhat derogatory towards Jeanne, and somewhat patronizing toward me). I felt after receiving Jeanne's post, that I still didn't know why Hypercard was doing what it was doing, and after Erics, I felt like I did. To summarize, I would like to FORMALLY apologize to Jeanne for my post of yesterday, and once again thank Eric for giving me the insights as to why I was experiencing the problem in the first place. Jim - you have given me the final insights I needed to make an intelligent determination of how to solve the dilemma of my protection requirements. Also, I have re-read many sections of my 4-book Hypercard library so that I fully understand the mechanisms at issue here. Thanks to all for your help...that includes Jeanne, Eric, and Jim, and anyone else out there who was working on the solution, but didn't get a chance to answer. Tom Johnson (tomj@oakhill.UUCP) Standard Disclaimers apply.
biff@pyrite.uucp (Biff Devereaux) (03/08/90)
There is an example of how to get around this problem in apple's Q&A stack version 3.2.1. It also explains what happens and why. It is available from apple.com and sumex. Biff Devereaux biff@pyrite.som.cwru.edu