cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community email notifications are disrupted. While we are working to resolve, please check on your favorite boards regularly to keep up with your conversations and new topics.

Programming Question for Mathcad Prime

mzeftel
1-Newbie

Programming Question for Mathcad Prime

We are looking at the programming for Mathcad Prime, and are considering several options. One is to keep programming pretty much as it is in Mathcad 14, and enhance it with user suggestions.

Another option is to put programming inside a box like the Solve Block box in Mathcad Prime. That would make it easier to do some things that users have been asking for:

* break up programs into blocks
* make programs look like programs in other applications
* break programs over pages
* add comments on the same line
* easier to edit a program
* could have disabled regions in program (not just the entire program.

Disadvantage: could not use program box inside an equation, like 1 + program. Perhaps we could do something special like if.

Another option is for programming to be more like it is in Mathcad currently, with it being a special type of equation.

Advantages:
* More like previous Mathcad
* can be used inside another equation
* more restrictive (so easier for new users to learn)

Disadvantages:

* Can not be easily broken across pages
* harder to edit
* can not easily add comments on the same line

We'd like to go with box version, but want to check if any of you see problems with it. Do you use inline programs inside equations? Whichever way we go, we would ensure backwards compatibility with previous programs. I've been recording requests, both recently and from previous requests, so we will implement as much as we can.

Let us know what you think.

Mona
99 REPLIES 99
StuartBruff
23-Emerald II
(To:RichardJ)

On 11/25/2009 12:49:30 PM, Richard Jackson wrote:
On 11/24/2009 7:07:18 PM, Stuart Bruff wrote:
> I've already posted
>some thoughts on 'boxes' (although I
>called them Rectangular Areas). I
>envisaged that they would act slightly
>differently to the way Spirit implements
>Solve boxes, eg

>see thread
>http://collab.mathsoft.com/read?114150,1
>2

== I had forgotten about that discussion. I have also asked for extending the capabilities of areas, including locally scoped variables and inputs/outputs. Allowing those extra keywords inside areas would be useful too. I think it's a different topic to this one though (but closely related, of course).

I don't think it is a different topic - under the proposed scheme, the concept of a local variable is different to that which I proposed.

I would like a 'Box' (ie, scope-bounded rectangular Area) to have the ability to change and define 'higher-level' names (eg, variables and functions). This would mean retaining the distinction between a local and normal define. For example, in one of the attached images, I define a Fibonacci function that uses a call to an auxiliary function. I would like to be able restrict the scope of the auxiliary function to the Box, whilst allowing subsequent access at worksheet level to the main function.

*** As an aside, it would be interesting to see how the proposed Spirit Box handles local function definitions. ***

I would like flexibility in the way that the programming constructs can be arranged so as to allow standard 2D arrangement of regions. The proposed scheme may allow this (although it does give the impression of a vertical structure); however, whilst notationally simpler, the use of a brace as a common block terminator could lead to even more confusion in trying to match the beginning of a loop or conditional.

In addition, I would like to see the ability to loop over a section of a worksheet - probably the most requested feature across all experience levels. I'm not sure whether the proposed programming model would allow this - If it is fairly freeform, then it should be possible to just create one Box which would effectively *be* the worksheet - in which case, why not extend the capability to the top level?


I've a feeling, given that a spec exists, that we're going to end up with something that is compromised before it even gets off the ground. Deja vu 😞

Stuart

-----------------------
Standard Program Layout
-----------------------


-----------------------
Free form Box layout - explicit return
-----------------------


-----------------------
Side-by-side independent Boxes
-----------------------


-----------------------
Local v worksheet level definition
-----------------------


-----------------------
Indented Loop structure
-----------------------


-----------------------
One line 2D structure
-----------------------
RichardJ
19-Tanzanite
(To:StuartBruff)

On 11/25/2009 4:17:33 PM, Stuart Bruff wrote:


>I don't think it is a
>different topic - under the proposed
>scheme, the concept of a local variable
>is different to that which I
>proposed.

Maybe you are right, in the sense that that is what Mona is proposing. But at the moment I really don't understand what is being proposed, so it's hard to say for sure. When I first looked at Mona's post I thought the a:=for... structure was just that: a structure. In other words, you can't take parts of it and just push them round the page as if they were independent statements. So although some free form elements would clearly be allowed, the essence of the program block would be one or more such structures. In that sense, it's not quite what we discussed before. If it is such a structure, there's a couple of things that don't make any sense to me though. First, such a structure would actually be a program in it's own right. So why do we need the box at all? Why would this not be allowed at the worksheet level? Second, how would such a structure allow multiple statements per line, and in-line comments? for that to be possible we would still need a statement delimiter,and if we have a statement delimiter why can't we just have that with the current programming paradigm? So maybe it is exactly what we discussed before, and everything in the a:=for... "structure" is an independent statement that can be moved around the page. If that's the case though, it's a really bad idea. Creating a program with the correct alignment and indenting would then involve x minutes of programming and 3x minutes of carefully aligning regions! That means most people would not bother with the alignment, and what we would see all the time would be programs with no structure. A readability and debugging nightmare! And then what happens if you grab the a:=for... statement and move it? Does it move on it's own, which means the program is highly likely to not work afterward?

In my opinion, there must be a way to easily create a program with a structure. Something like a smart C editor would be ideal (actually, Ted gave me that analogy :-)). I type a line, then hit enter, and it automatically moves to the next line with the appropriate indent. If we have that though, then, again, why do we need the box? I am certainly not against the box/rectangular region concept though; I would very much like it. But I want it in addition to a way to create a structured piece of code: i.e. a program. I could have the program at the worksheet level, or in a rectangular region that allows free form placement of statements. A rectangular region with only free form placement of statements would be a bad substitute for a structured program though.

>In
>addition, I would like to see the
>ability to loop over a section of a
>worksheet - probably the most requested
>feature across all experience levels.
>I'm not sure whether the proposed
>programming model would allow this - If
>it is fairly freeform, then it should be
>possible to just create one Box which
>would effectively *be* the worksheet -
>in which case, why not extend the
>capability to the top level?

The exact same thought occurred to me.

>I've a
>feeling, given that a spec exists, that
>we're going to end up with something
>that is compromised before it even gets
>off the ground. Deja vu 😞

That also occurred to me. We are asked which we would prefer, but also told they are already developing one of the options. If they have already opened the gate and the horse has bolted, there's not much point in asking if it's OK to open the gate.

Richard
PhilipOakley
5-Regular Member
(To:StuartBruff)

On 11/25/2009 4:17:33 PM, Stuart Bruff wrote:
>----------
> Free form Box layout - explicit return
-----------------------

Yes I like this one !

It has a lot going for it.
It can act as a function when 'return' is used.
It can act as a "see box" capability if there is a 'end box' (or similar terminator for nil returned) method.
It can act in the same manner as a current text box with embedded maths which allows 'column' processing.
And the mechanism can be extended to areas and references


>----------------
> Side-by-side independent Boxes
-----------------------

Wasn't quite sure where bits started and ended, though this may be the same as my comment above on 'column' processing.

>---------------
Local v worksheet level definition
-----------------------

This problem needs a wider discussion. It is all about temporal processing, and the needs for animation and repetition. Especially where moving graphs (2d), pictures, and plots (3d) are needed.


>--------------------
>Indented Loop structure
-----------------------

Yep.

>-------------------
>One line 2D structure
-----------------------

Yep.


Philip Oakley

On 11/27/2009 6:33:58 AM, Philip Oakley wrote:
>>On 11/25/2009 4:17:33 PM, Stuart Bruff wrote:
>>----------
>> Free form Box layout - explicit return
>>-----------------------
== It can act as a "see box" capability if there is a 'end box' (or similar terminator for nil returned) method.

Maybe a right-click allowing output, in a similar to way to components, or maybe even don't bother - just treat it like a standard statement (I've often wanted components to behave like that anyway, that is, for example, create a component and just evaluate it rather than assign the result to a variable and then evaluate the variable)

>>It can act in the same manner as a current text box with embedded maths which allows 'column' processing.

Yes. That is one of the potential uses ... but it would benefit most from the ability to retain the local v higher (eg, worksheet-level or 'parent' box) definition capability as this would intrinsically allow wrapping columns (be even better if there were some way to 'columnise' a Box and allow autoflow from bottom of left box to top of right box).

>>And the mechanism can be extended to areas and references

Yes.

Again, would need to retain the local v higher definition capability. That way auxiliary functions could be defined with impunity and examples given that wouldn't carry over into the higher level box or worksheet.

>>----------------
>> Side-by-side independent Boxes
>>-----------------------
>>Wasn't quite sure where bits started and ended, though this may be the same as my comment above on 'column' processing.

Yes. The box starts at the top left (sim to text region) and ends at bottom right.

>>---------------
>>Local v worksheet level definition
>>-----------------------
>>This problem needs a wider discussion. It is all about temporal processing, and the needs for animation and repetition.
>>Especially where moving graphs (2d), pictures, and plots (3d) are needed.

Indeed, but I think it will prove necessary to deal with such things as 'Library' areas.

>>--------------------
>>Indented Loop structure
>>-----------------------
>>Yep.

It would be nice to have a simple 'pretty print' tool that auto-indented a set of (selected) regions.

>>-------------------
>>One line 2D structure
>>-----------------------
>>Yep.

I know Richard has concerns about alignment, but as the potential exists for this in existing sheets (albeit not within programs), I'd prefer this to be a case where Nanny lets the children decide what to do and get bitten if they're not quite careful enough. A simple dependency tool that, for example, showed the execution chain (linking arrows) could help ensure/debug alignment problems.

Stuart
RichardJ
19-Tanzanite
(To:StuartBruff)

On 11/27/2009 8:08:51 AM, Stuart Bruff wrote:

>>>Wasn't quite sure where bits started and ended, though this may be the same as my comment above on 'column' processing.
>
>Yes. The box starts at the top left
>(sim to text region) and ends at bottom
>right.

That's yet another open question with respect to the PTC proposal. What do they intend? I would guess they intend to have a single anchor point, as we currently do with programs or text boxes. I think it would be better to have separate entry and exit points though (i.e. top left and bottom right).

Richard
StuartBruff
23-Emerald II
(To:RichardJ)

On 11/27/2009 10:13:16 AM, Richard Jackson wrote:
>>>Wasn't quite sure where bits started and ended, though this may be the same as my comment above on 'column' processing.
>
>Yes. The box starts at the top left
>(sim to text region) and ends at bottom
>right.

That's yet another open question with respect to the PTC proposal. What do they intend? I would guess they intend to have a single anchor point, as we currently do with programs or text boxes. I think it would be better to have separate entry and exit points though (i.e. top left and bottom right).


What do you mean by entry and exit points? What is 'entering' and what is 'exiting'?
RichardJ
19-Tanzanite
(To:StuartBruff)

On 11/27/2009 11:20:21 AM, Stuart Bruff wrote:

>What do you mean by entry and exit
>points? What is 'entering' and what is
>'exiting'?

Starting and ending points? So arguments are passed in at top left, results are passed out at bottom right. Thinking about it though, that would be a problem. If there were an expression to the right of a box, where would it be in the calculation sequence?

Richard
StuartBruff
23-Emerald II
(To:RichardJ)

On 11/27/2009 11:38:51 AM, Richard Jackson wrote:
>>What do you mean by entry and exit points? What is 'entering' and what is 'exiting'?
== Starting and ending points? So arguments are passed in at top left, results are passed out at bottom right. Thinking about it though, that would be a problem. If there were an expression to the right of a box, where would it be in the calculation sequence?

That's why I suggested the Box retains the standard Mathcad entry/exit point. It could be used in the same as current programs / text regions, thus allowing any region to the right of a box to use the boxes value.

Stuart

On 11/29/2009 11:10:08 AM, Ted Diehl wrote:

>Thik about it, this is no
>different than a current
>program. The anchore
>point is the LHS.

The problem occurs if there are two anchor points, one for "in" and one for "out". I.e. not the same as a current program.


>Now, if a bounding box does
>not show up around the program
>region, the
>possiblity of confusion could
>occur. Having said that, I
>could see people
>not wanting a bounding box, so
>give them the option to turn
>it off (but "on"
>by default).

I disagree with you there. If the box allows free form placement of expressions that are indistinguishable from expressions at the worksheet level, then the user should not be allowed to completely hide the box. That would make it too easy to create worksheets where it was impossible to visually tell what was actually being calculated.

Richard

On 11/29/2009 11:31:23 AM, Ted Diehl wrote:

>Why do you say you should not
>be able to collapse or hide
>the program

I didn't say that. I said you should not be able to completely hide the border, which is not the same thing. You can currently create an area, leave it open, and completely hide the fact that the area exists. That is arguably rather pointless, but it does not lead to any ambiguity about what the worksheet is doing. You cannot put anything to the right of an area, and it cannot contain variables with only local scope. So the calculation flow is obvious, and independent of whether or not the regions are inside an area. That would not be the case with a program box, which can have things to the right, and can have locally scoped variables. If you hide the border completely, but leave contents of the box visible, it will be impossible to know what the calculation flow is.


>It seems to me that wherever
>the "out location" is for the
>program is
>irrelevant to the other
>regions outside the box as the
>box anchor point is
>the "in and out" location
>relative to stuff outside the
>box.

What we were talking about is the situation where that is not the case. Where there is not one anchor point, but two, and where the "in" and "out" locations are not the same.

Richard
StuartBruff
23-Emerald II
(To:RichardJ)

On 11/29/2009 11:18:51 AM, Richard Jackson wrote:
>Now, if a bounding box does not show up around the program region, the possiblity of confusion could occur. Having said that, I could see people
>not wanting a bounding box, so give them the option to turn it off (but "on" by default).
== I disagree with you there. If the box allows free form placement of expressions that are indistinguishable from expressions at the worksheet level, then the user should not be allowed to completely hide the box. That would make it too easy to create worksheets where it was impossible to visually tell what was actually being calculated.

That problem already exists with embedding math regions in a text region. This can be partially overcome by displaying the bounding rectangle when clicking-on / selecting the Box region or anywhere within it (including editing a region).

I tend to highlight function definitions and prefer the look to a bounding box.

Stuart

On 11/29/2009 12:17:20 PM, Ted Diehl wrote:
== I could see if you disagree with allowing a user to turn off the bounding box (as I would agree that confusion would occur). I am simply being cautious relative to looking a user into something.

I believe, based on previous experience, that there should be an exceptional case for denying a user the capability to do something, no matter how confusing it *could* be. Do I need to mention SUC? I don't have a problem with a Box having a border by default (user preference), but I don't want it mandated. I might, as I currently do, use highlighting to identify a region or I might choose to put a vertical line between 2 parallel Boxes.

== For example, consider page breaks and right-hand margins - many of use want to be able to turn
them OFF from view as they are annoying at times. Perhaps we never intend to print a certain worksheet. The developers have these lines in Mathcad 14 hard coded in

Not quite, they're printer related. When I want to get rid of the lines, I choose CutePDF with a very large custom page size - no lines at all then, even in M14.

== and in Prime they went farther and left us stuck to a page (no right hand side).


Hopefully, they will fix that.

== I assume you are NOT saying you disagree with allowing the user to hide the entire region itself.

No. I'd probably continue to hide things in Areas, but I can see that there might be cases where it would be easier to hide individual regions ... of course, the potential for interpretational chaos is unbounded ("where the *?#@@! is that defined?") 🙂

That MUST be allowed for Intellectual Property Protection. Some people create Mathcad sheets that have proprietary functions (programs) and other calculations in them.

Stuart
RichardJ
19-Tanzanite
(To:StuartBruff)

On 11/29/2009 12:36:06 PM, Stuart Bruff wrote:

>I believe, based on previous experience,
>that there should be an exceptional case
>for denying a user the capability to do
>something, no matter how confusing it
>*could* be. Do I need to mention SUC?

In general, I agree with you. SUC is a bad example though, because they decided not to allow users to turn it off only because they couldn't think of a reason to do so, not because they thought of a reason why it would lead to significant problems.

In this case if you make it easy for the user to make a program look like a part of the worksheet (either by turning off the box, or by making the box the same as a text region border, or whatever) there is absolutely no question that users will do it, and get themselves into a lot of trouble.

>== For example, consider page breaks and
>right-hand margins - many of use want to
>be able to turn
>them OFF from view as they are annoying
>at times. Perhaps we never intend to
>print a certain worksheet. The
>developers have these lines in Mathcad
>14 hard coded in

Again though, there is a fundamental difference. What is the downside to allowing the users to turn them off. Answer: either nothing or next to nothing.

If you allow a user to do something you have to weigh the benefits vs the potential problems. If the potential problems are small, then the user should be allowed to do it, even if the benefit is not obvious. This philosophy would allow SUC to be turned off, as well as page breaks, etc. But if the potential problems are really large, and the benefits appear to be small, then stopping the user from doing something may be the best choice. At a minimum, it should be made very difficult for the user to get themselves into such trouble. If you make it easy for a user to get themselves into huge amounts of trouble, then they will, and it will often be the beginners.

Richard


I just found out that we are going to build programs closer to Mathcad
14 programs and not go with the box idea, because we lose too much
flexibility.

Mona

StuartBruff
23-Emerald II
(To:mzeftel)

On 11/30/2009 12:03:39 PM, Mona Zeftel wrote:
== I just found out that we are going to build programs closer to Mathcad 14 programs and not go with the box idea, because we lose too much
flexibility.

In what ways do you lose flexibility?

Have you (Royal You, ie PTC) considered some of the other ideas floating around in this thread? For example, free form program layout with keywords acting as 'guards', similar to the existing 'given-find' demarcation. This would allow the possibility of "looping a worksheet", something that has been on a lot of users' wishlists for a long time.

Stuart
StuartBruff
23-Emerald II
(To:RichardJ)

On 11/29/2009 1:30:54 PM, Richard Jackson wrote:
>> On 11/29/2009 12:36:06 PM, Stuart Bruff wrote:
>> I believe, based on previous experience, that there should be an exceptional case or denying a user the capability to do something, no matter how confusing it *could* be. Do I need to mention SUC?
== In general, I agree with you. SUC is a bad example though, because they decided not to allow users to turn it off only because they couldn't think of a reason to do so, not because they thought of a reason why it would lead to significant problems.

My understanding is different. They had been given reasons why SUC could cause problems before release, and they certainly knew early on in M12's release, but it's only in Prime do we see a reversion to reality. SUC was there in the first place to stop the users playing with sharp edges - not a good move when some of the users like metaphorically fixing bayonets, or carrying out surgery, or even doing a bit of cookery in the kitchen.

== In this case if you make it easy for the user to make a program look like a part of the worksheet (either by turning off the box, or by making the box the same as a text region border, or whatever) there is absolutely no question that users will do it, and get themselves into a lot of trouble.

As amply demonstrated on the Collab, users can get themselves into a lot of trouble doing the Mathcad equivalent of tieing their shoelaces. However, I'm an optimist in that I think people can learn from their mistakes and avoid such things. We have similar little quirks throughout Mathcad (eg, literal v indicial subscripting) but it clicks eventually. Part of the advantage Mathcad's appeal is its presentation (much though it needs improving) and I wouldn't wish to find myself contrained in how *I* organize my worksheets by the need to stop a beginner or infrequent user getting a paper cut. As with subscripts, clicking on a region should show what it is and its scope, so users with access to the worksheet should be able to sort things out readily enough. If the default out-of-the-box template has Box borders on, then it would require a deliberate act to turn them off, at which point it should be caveat emptor.

I attach four examples of Boxes (emulated using text regions), only one of which has bordered Boxes. The existence of the actual boundaries should act to give a reasonable visual discrimination between parallel Boxes, and I suspect one would have to go out of the way to make it very confusing.

>== For example, consider page breaks and right-hand margins - many of use want to be able to turn them OFF from view as they are annoying at times. Perhaps we never intend to print a certain worksheet. The developers have these lines in Mathcad 14 hard coded in

That bit's not my quote.

== If you allow a user to do something you have to weigh the benefits vs the potential problems. If the potential problems are small, then the user should be allowed to do it, even if the benefit is not obvious. This philosophy would allow SUC to be turned off,

But SUC was introduced to stop users having problems with units; given the time and investment put into it, the potential problems of turning SUC off were not seen as small.

== as well as page breaks, etc. But if the potential problems are really large, and the benefits appear to be small, then stopping the user from doing something may be the best choice.

Appear small to who? I'm firmly of the opinion that restrictions should be minimal until it demonstrated to be a significant problem. Only then should the screws be tightened down, and preferably in a way that allows the more expert users to loosen them. For example, a Preferences tab, similar to the Grammar setting in Word, that allows the user to set the degree of 'strictness'.

==At a minimum, it should be made very difficult for the user to get themselves into such trouble. If you make it easy for a user to get themselves into huge amounts of trouble, then they will, and it will often be the beginners

See above. Beginners sometimes grow up to have ideas above their station and then start complaining because they can't do what they want 🙂

Stuart

-----------------------
Bordered Boxes
-----------------------


-----------------------
Borderless Boxes
-----------------------


-----------------------
Borderless, Highlighted Boxes
-----------------------


-----------------------
Borderless Boxes + Vertical Separator
-----------------------
RichardJ
19-Tanzanite
(To:StuartBruff)

On 11/29/2009 4:07:34 PM, Stuart Bruff wrote:

>== In general, I agree with you. SUC is a bad >example though, because they decided not to >allow users to turn it off only because they >couldn't think of a reason to do so, not because >they thought of a reason why it would lead to >significant problems.

>My understanding is different. They had been >given reasons why SUC could cause problems >before release, and they certainly knew early on >in M12's release, but it's only in Prime do we >see a reversion to reality. SUC was there in the >first place to stop the users playing with sharp >edges - not a good move when some of the users >like metaphorically fixing bayonets, or carrying >out surgery, or even doing a bit of cookery in >the kitchen.

I never heard anyone argue that turning off SUC was highly likely get beginners or the unwary into all sorts of trouble. The problem was that when they enthroned the SUC, they shot the DUC. They then ignored the warnings, because heeding them would have required resurrecting the DUC, and that would be too much work.

>As amply demonstrated on the Collab, users can >get themselves into a lot of trouble doing the >Mathcad equivalent of tieing their shoelaces.

I agree. But that cannot be used as a justification for making it easy for them to get into even more trouble.

>However, I'm an optimist in that I think people >can learn from their mistakes and avoid such >things. We have similar little quirks throughout >Mathcad (eg, literal v indicial subscripting) >but it clicks eventually.

This is not a little quirk. It's a really BIG quirk. If the statements in a program box can be easily made indistinguishable from the statements in the body of the worksheet, or those in a solve box, or those in a text box, it will lead to way more confusion than literal vs indicial subscripting! It's like saying that because a couple of 10 year old kids can hurt themselves with sticks, you may just as well give them fully automatic weapons.

>I wouldn't wish to find myself contrained in how >*I* organize my worksheets by the need to stop a >beginner or infrequent user getting a paper cut.

How about if it stops the beginner or infrequent user blowing a 2 inch hole through their foot?

>As with subscripts, clicking on a region should >show what it is and its scope, so users with >access to the worksheet should be able to sort >things out readily enough.

Do you really want to have to go through a worksheet and click on every region to be able to figure out what it's doing? It has got to be easier than that.

>If the default out-of-the-box template has Box >borders on, then it would require a deliberate >act to turn them off, at which point it should >be caveat emptor.

Not if you make it easy for a user to create a worksheet without the borders, because then they could do it accidentally. If you make it hard for them to do it, so they are unlikely to do so accidentally, then I would agree.

>I attach four examples of Boxes (emulated using >text regions), only one of which has bordered >Boxes. The existence of the actual boundaries >should act to give a reasonable visual >discrimination between parallel Boxes, and I >suspect one would have to go out of the way to >make it very confusing.

I disagree. In fact, I think you went out of your way to make it look like it's not confusing. If you have the box, it's obvious. If you have the highlight, it's also obvious, because it's clearly one region, not many. Well, except that you don't know if it's a text box, or a program box, or a solve box. So actually not that clear at all. In the two example without the borders or the highlight it is not possible to know what the worksheet is doing. One could make an educated guess based on your formatting, but that is all. Take away the clean formatting, and there is no hope.

>But SUC was introduced to stop users having >problems with units; given the time and >investment put into it, the potential problems >of turning SUC off were not seen as small.

The potential problems for Mathsoft. and later PTC, yes. Not the potential problems for users though.

So, here is a proposal:

By default the boxes are on. Furthermore, the boxes for programs, solve blocks, and text boxes are different. They can be changed or removed by the user, and they are tied to the template (so if you like to designate programs with a fuchsia background, and solve blocks with a lime green background, you can create a default template with those options).

View regions gets a significant enhancement. Currently, if you turn on view regions it shows you more-or-less everything it needs to with no more than a change of the worksheet background. That is no longer going to be true though. It will not be possible to distinguish a program box from a text box or a solve block box based only on that. So each region should be bordered by a color that designates its type. For example, red for text, blue for math, magenta for programs, etc. It could be OK if the user can set the colors, but only if it is a Mathcad preference, NOT as a worksheet option. Then if someone sends me a worksheet that they personally think is clear, but I think is very ambiguous, I can figure out what it is doing without having to go through it clicking on every region, one by one. Maybe "view regions" should even be turned on by default. Then a beginner/infrequent user would really have to work at it to get into trouble. Even if they got into trouble with one worksheet, since beginners/infrequent users do not usually replace the default template they would be OK on the next worksheet.

Richard

SUC can't be turned off because it is not something that rides on top of Mathcad but is rather an integral part of Mathcad. It is embedded in the parsing/compiling of regions. Dynamic unit calculations is not an option as none of the computational routines have any provision for that, nor do the internal interfaces allow for carrying units that way. To do dynamic units requires a completely new (or old) compute engine.
__________________
� � � � Tom Gutman
PhilipOakley
5-Regular Member
(To:StuartBruff)

On 11/29/2009 12:36:06 PM, Stuart Bruff wrote:
>On 11/29/2009 12:17:20 PM, Ted Diehl
>wrote:
>== I could see if you disagree with
>allowing a user to turn off the bounding
>box (as I would agree that confusion
>would occur). I am simply being cautious
....
>
>No. I'd probably continue to hide things
>in Areas, but I can see that there might
>be cases where it would be easier to
>hide individual regions ... of course,
>the potential for interpretational chaos
>is unbounded ("where the *?#@@! is that
>defined?") 🙂
>
>That MUST be allowed for Intellectual
>Property Protection. Some people create
>Mathcad sheets that have proprietary
>functions (programs) and other
>calculations in them.
>
>Stuart

I think that the first stage of hiding/protecting should be similar to a closed, but not hidden, area.

so it would display
MyFunc(a,b,c) := "ProtectedFunction"

i.e. the LHS shows the definition prototype,
the RHS shows the information message.

The next(ultimate) step is, just like Areas, to totally hide all traces of the Function/Area (the Areas border-line and name disapears).

Philip Oakley
RichardJ
19-Tanzanite
(To:StuartBruff)

On 11/29/2009 11:57:09 AM, Stuart Bruff wrote:

>That problem already exists with
>embedding math regions in a text region.

That's true, it does. It's what made me think about having two anchor points. Now I realize that doesn't solve the problem though, it just changes it. If the "out" anchor point were at the bottom right, this would work the way it appears:



(the a:=1 assignment is of course in a text box)

but unfortunately, this then would not:



Richard
PhilipOakley
5-Regular Member
(To:RichardJ)

I generally disagree with having separate input and ouput points to calculations. I think it probably causes more knotty problems than it would solve.

I'd stick with a single anchor point.

I am reasonably ok with 'dead end' branches, so that we can include a "see box for example" branch whose calculation doesn't come back to haunt you...

Philip Oakley

On 11/30/2009 5:12:52 AM, Philip Oakley wrote:
>I generally disagree with
>having separate input and
>ouput points to calculations.
>I think it probably causes
>more knotty problems than it
>would solve.

I think we are all agreed on that.

Richard


Q2FuIHlvdSBzdGlsbCBwb3N0IHBpY3R1ciBzaG93IGEgZnVuY3Rpb24gd2l0aCBhcmd1bWVudHMg
b24gTEhTCgpUZWQKLS0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tLQpGcm9tOiBwb3dlcnVzZXIg
TGlzdG1hbmFnZXIKVG86IChSZWNpcGllbnRzIG9mICdwb3dlcnVzZXInIHN1cHByZXNzZWQpClJl
cGx5VG86IE1hdGhjYWQKU3ViamVjdDogUkU6IFByb2dyYW1taW5nIFF1ZXN0aW9uIGZvciBNYXRo
Y2FkIFByaW1lClNlbnQ6IE5vdiAzMCwgMjAwOSAxMDozNyBBTQoKRnJvbTogIlplZnRlbCwgTW9u
YSIgPG16ZWZ0ZWxAcHRjLmNvbT4NCg0KSWYgd2Ugc2V0IHRoZSBwcm9ncmFtIGluIGEgYm94IGxp
a2UgdGhlIHNvbHZlIGJsb2NrIGJveCBpbiBNYXRoY2FkDQpQcmltZSwgdGhlbiB0aGUgY2FsY3Vs
YXRpb24gb3JkZXIgZ29lcyB0aHJvdWdoIHRoZSBib3gsIHRoZW4gdG8gdGhlDQpyaWdodCBvZiB0
aGUgYm94LCBzbyB0aGUgYm94IGlzIG9uZSB1bml0Lg0KDQpXZSBoYXZlIG5vdCBzdGFydGVkIGRl
dmVsb3BpbmcgdGhpcyB5ZXQsIHdlIGFyZSB3b3JraW5nIG9uIGEgc3BlYywgd2hpY2gNCmlzIHdo
eSBJIGFtIGFza2luZyBmb3Igc3VnZ2VzdGlvbnMgYW5kIGZlZWRiYWNrIG5vdyBvbiB3aGF0IHdl
IGFyZQ0KdGhpbmtpbmcgb2YgZG9pbmcsIGJlZm9yZSB3ZSBzdGFydCBpdCBpbiBkZXZlbG9wbWVu
dC4gDQoNCk1vbmENCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogcG93ZXJ1
c2VyIExpc3RtYW5hZ2VyIFttYWlsdG86bGlzdG1hbmFnZXJAY29sbGFiLm1hdGhzb2Z0LmNvbV0g
DQpTZW50OiBGcmlkYXksIE5vdmVtYmVyIDI3LCAyMDA5IDExOjIyIEFNDQpTdWJqZWN0OiBQcm9n
cmFtbWluZyBRdWVzdGlvbiBmb3IgTWF0aGNhZCBQcmltZQ0KDQpGcm9tOiAiUmljaGFyZCBKYWNr
c29uIiA8cmljaGFyZC5qYWNrc29uQG5pcnJpci5jb20+DQoNCk9uIDExLzI3LzIwMDkgMTE6MjA6
MjEgQU0sIFN0dWFydCBCcnVmZiB3cm90ZToNCg0KPldoYXQgZG8geW91IG1lYW4gYnkgZW50cnkg
YW5kIGV4aXQNCj5wb2ludHM/IFdoYXQgaXMgJ2VudGVyaW5nJyBhbmQgd2hhdCBpcw0KPidleGl0
aW5nJz8NCg0KU3RhcnRpbmcgYW5kIGVuZGluZyBwb2ludHM/IFNvIGFyZ3VtZW50cyBhcmUgcGFz
c2VkIGluIGF0IHRvcCBsZWZ0LA0KcmVzdWx0cyBhcmUgcGFzc2VkIG91dCBhdCBib3R0b20gcmln
aHQuIFRoaW5raW5nIGFib3V0IGl0IHRob3VnaCwgdGhhdA0Kd291bGQgYmUgYSBwcm9ibGVtLiBJ
ZiB0aGVyZSB3ZXJlIGFuIGV4cHJlc3Npb24gdG8gdGhlIHJpZ2h0IG9mIGEgYm94LA0Kd2hlcmUg
d291bGQgaXQgYmUgaW4gdGhlIGNhbGN1bGF0aW9uIHNlcXVlbmNlPw0KDQpSaWNoYXJkDQoNCg0K
VG8gcmVwbHk6IG1haWx0bzpwb3dlcnVzZXIuMTMxMDA0QGNvbGxhYi5tYXRoc29mdC5jb20NClRv
IHN0YXJ0IGEgbmV3IHRvcGljOiBtYWlsdG86cG93ZXJ1c2VyQGNvbGxhYi5tYXRoc29mdC5jb20N
ClRvIGxvZ2luOiBodHRwOi8vY29sbGFiLm1hdGhzb2Z0LmNvbTo4MC9+bGlzdHNlcnYvDQoNCg0K
DQpUbyByZXBseTogbWFpbHRvOnBvd2VydXNlci4xMzEwNzVAY29sbGFiLm1hdGhzb2Z0LmNvbQ0K
VG8gc3RhcnQgYSBuZXcgdG9waWM6IG1haWx0bzpwb3dlcnVzZXJAY29sbGFiLm1hdGhzb2Z0LmNv
bQ0KVG8gbG9naW46IGh0dHA6Ly9jb2xsYWIubWF0aHNvZnQuY29tOjgwL35saXN0c2Vydi8NCg0K
Cg0KU2VudCBmcm9tIG15IFZlcml6b24gV2lyZWxlc3MgQmxhY2tCZXJyeQ==

On 11/30/2009 11:58:22 AM, Ted Diehl wrote:
>Q2FuIHlvdSBzdGlsbCBwb3N0IHBpY3
>R1ciBzaG93IGEgZnVuY3Rpb24gd2l0
>aCBhcmd1bWVudHMg
>b24gTEhTCgpUZWQKLS0tLS0tT3JpZ2
>luYWwgTWVzc2FnZS0tLS0tLQpGcm9t
>OiBwb3dlcnVzZXIg
>TGlzdG1hbmFnZXIKVG86IChSZWNpcG
>llbnRzIG9mICdwb3dlcnVzZXInIHN1
>cHByZXNzZWQpClJl
>cGx5VG86IE1hdGhjYWQKU3ViamVjdD
>ogUkU6IFByb2dyYW1taW5nIFF1ZXN0
>aW9uIGZvciBNYXRo
>Y2FkIFByaW1lClNlbnQ6IE5vdiAzMC
>wgMjAwOSAxMDozNyBBTQoKRnJvbTog
>IlplZnRlbCwgTW9u
>YSIgPG16ZWZ0ZWxAcHRjLmNvbT4NCg
>0KSWYgd2Ugc2V0IHRoZSBwcm9ncmFt
>IGluIGEgYm94IGxp
>a2UgdGhlIHNvbHZlIGJsb2NrIGJveC
>BpbiBNYXRoY2FkDQpQcmltZSwgdGhl
>biB0aGUgY2FsY3Vs
>YXRpb24gb3JkZXIgZ29lcyB0aHJvdW
>doIHRoZSBib3gsIHRoZW4gdG8gdGhl
>DQpyaWdodCBvZiB0
>aGUgYm94LCBzbyB0aGUgYm94IGlzIG
>9uZSB1bml0Lg0KDQpXZSBoYXZlIG5v
>dCBzdGFydGVkIGRl
>dmVsb3BpbmcgdGhpcyB5ZXQsIHdlIG
>FyZSB3b3JraW5nIG9uIGEgc3BlYywg
>d2hpY2gNCmlzIHdo
>eSBJIGFtIGFza2luZyBmb3Igc3VnZ2
>VzdGlvbnMgYW5kIGZlZWRiYWNrIG5v
>dyBvbiB3aGF0IHdl
>IGFyZQ0KdGhpbmtpbmcgb2YgZG9pbm
>csIGJlZm9yZSB3ZSBzdGFydCBpdCBp
>biBkZXZlbG9wbWVu
>dC4gDQoNCk1vbmENCg0KDQotLS0tLU
>9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K
>RnJvbTogcG93ZXJ1
>c2VyIExpc3RtYW5hZ2VyIFttYWlsdG
>86bGlzdG1hbmFnZXJAY29sbGFiLm1h
>dGhzb2Z0LmNvbV0g
>DQpTZW50OiBGcmlkYXksIE5vdmVtYm
>VyIDI3LCAyMDA5IDExOjIyIEFNDQpT
>dWJqZWN0OiBQcm9n
>cmFtbWluZyBRdWVzdGlvbiBmb3IgTW
>F0aGNhZCBQcmltZQ0KDQpGcm9tOiAi
>UmljaGFyZCBKYWNr
>c29uIiA8cmljaGFyZC5qYWNrc29uQG
>5pcnJpci5jb20+DQoNCk9uIDExLzI3
>LzIwMDkgMTE6MjA6
>MjEgQU0sIFN0dWFydCBCcnVmZiB3cm
>90ZToNCg0KPldoYXQgZG8geW91IG1l
>YW4gYnkgZW50cnkg
>YW5kIGV4aXQNCj5wb2ludHM/IFdoYX
>QgaXMgJ2VudGVyaW5nJyBhbmQgd2hh
>dCBpcw0KPidleGl0
>aW5nJz8NCg0KU3RhcnRpbmcgYW5kIG
>VuZGluZyBwb2ludHM/IFNvIGFyZ3Vt
>ZW50cyBhcmUgcGFz
>c2VkIGluIGF0IHRvcCBsZWZ0LA0Kcm
>VzdWx0cyBhcmUgcGFzc2VkIG91dCBh
>dCBib3R0b20gcmln
>aHQuIFRoaW5raW5nIGFib3V0IGl0IH
>Rob3VnaCwgdGhhdA0Kd291bGQgYmUg
>YSBwcm9ibGVtLiBJ
>ZiB0aGVyZSB3ZXJlIGFuIGV4cHJlc3
>Npb24gdG8gdGhlIHJpZ2h0IG9mIGEg
>Ym94LA0Kd2hlcmUg
>d291bGQgaXQgYmUgaW4gdGhlIGNhbG
>N1bGF0aW9uIHNlcXVlbmNlPw0KDQpS
>aWNoYXJkDQoNCg0K
>VG8gcmVwbHk6IG1haWx0bzpwb3dlcn
>VzZXIuMTMxMDA0QGNvbGxhYi5tYXRo
>c29mdC5jb20NClRv
>IHN0YXJ0IGEgbmV3IHRvcGljOiBtYW
>lsdG86cG93ZXJ1c2VyQGNvbGxhYi5t
>YXRoc29mdC5jb20N
>ClRvIGxvZ2luOiBodHRwOi8vY29sbG
>FiLm1hdGhzb2Z0LmNvbTo4MC9+bGlz
>dHNlcnYvDQoNCg0K
>DQpUbyByZXBseTogbWFpbHRvOnBvd2
>VydXNlci4xMzEwNzVAY29sbGFiLm1h
>dGhzb2Z0LmNvbQ0K
>VG8gc3RhcnQgYSBuZXcgdG9waWM6IG
>1haWx0bzpwb3dlcnVzZXJAY29sbGFi
>Lm1hdGhzb2Z0LmNv
>bQ0KVG8gbG9naW46IGh0dHA6Ly9jb2
>xsYWIubWF0aHNvZnQuY29tOjgwL35s
>aXN0c2Vydi8NCg0K
>Cg0KU2VudCBmcm9tIG15IFZlcml6b2
>4gV2lyZWxlc3MgQmxhY2tCZXJyeQ==

Could you explain that in more detail?

Richard
Top Tags