JacquesC

Prof. Jacques Carette

2396 Reputation

17 Badges

19 years, 176 days
McMaster University
Professor or university staff
Hamilton, Ontario, Canada

Social Networks and Content at Maplesoft.com

From a Maple perspective: I first started using it in 1985 (it was Maple 4.0, but I still have a Maple 3.3 manual!). Worked as a Maple tutor in 1987. Joined the company in 1991 as the sole GUI developer and wrote the first Windows version of Maple (for Windows 3.0). Founded the Math group in 1992. Worked remotely from France (still in Math, hosted by the ALGO project) from fall 1993 to summer 1996 where I did my PhD in complex dynamics in Orsay. Soon after I returned to Ontario, I became the Manager of the Math Group, which I grew from 2 people to 12 in 2.5 years. Got "promoted" into project management (for Maple 6, the last of the releases which allowed a lot of backward incompatibilities, aka the last time that design mistakes from the past were allowed to be fixed), and then moved on to an ill-fated web project (it was 1999 after all). After that, worked on coordinating the output from the (many!) research labs Maplesoft then worked with, as well as some Maple design and coding (inert form, the box model for Maplets, some aspects of MathML, context menus, a prototype compiler, and more), as well as some of the initial work on MapleNet. In 2002, an opportunity came up for a faculty position, which I took. After many years of being confronted with Maple weaknesses, I got a number of ideas of how I would go about 'doing better' -- but these ideas required a radical change of architecture, which I could not do within Maplesoft. I have been working on producing a 'better' system ever since.

MaplePrimes Activity


These are replies submitted by JacquesC

Floats are contagious in Maple, so the occurence of any float whatsoever in an expression will cause most other Maple functions to propagate this as far as possible.

Floats are meant to be used when you have only approximate knowledge of a value.  When you have full knowledge, use exact quantities. 

I happen to rather like this particular design.  It is easy to describe, and easy to deal with.  Its main drawback is that in mainstream mathematical education (in math, science and engineering), people are sloppy regarding exact vs approximate knowledge, and thus do not use coherent conventions to communicate this.  Thus one's expectations are foiled.  Which makes it a poor user-interface design, but not a bad mathematical design.

The real conundrum is that the source of the problem is external to Maple itself: people are not properly educated to be precise.  Worse, they don't even know they are being imprecise, because they identify different representations as denoting the same thing, when it is purely accidental that 0.3 and 3/10 are equal (think of 1/7 or sqrt(2) as numbers where no such accident of decimal expansion happens).

I was in France from late September 1993 to September 1996 - and this video pre-dates that.  Seeing as all the shots where I appear are in the SCG lab, (and most people are wearing short sleeves) I would guess that those were filmed in late spring or early summer of 1993.  And, if my memory serves me (!), Isaac Newton started appearing in the marketing promos for Maple V R2.

@pagan all rather interesting examples.

4 is somehow different, because not only does it involve a responsibility shift (the user must use a different evaluation environment to get what they want), but also a shift from computation to representation.  int is a computation, while Int represents a concept/computation.  This extension/intension duality is quite fascinating, and is part of the strength of symbolic computation, as well as being core to many of its ill-defined behaviour.

To me 5 is just a straight bug.  One could call it a bug-by-omission to minimize its importance; but really, I would instead call it a 'design flaw'.  It stems from the designers of the Expression palette aiming the palettes to be used only by real beginner users of Maple, who cannot hope (certainly not on their own!) to understand the subtleties between each of sum, add and Sum.  And this is flawed because it means that advanced users will learn to turn off the palettes, because they are not so useful for them.  But the problem is that it is usually the advanced users who teach the beginners.  And there are two such sorts of advanced users: they real 'teachers' (you know who you are!) who try to ease students gently into Maple, and the goal-driven teachers (mea culpa there, I must admit) who want to get these students 'up to speed' as quickly as possible.

I guess what I'm arguing for in the above paragraph is to have beginner/intermediate/advanced settings for the palettes (assuming one wants palettes at all).

[Wow, I have not had this much fun on mapleprimes in a long time!]

@Alejandro Jakubi You are correct: operationally, there is actually no difference at all.

So why the fuss?  The difference is because in the case of ::uneval, it is the function which asks the system to have its input always passed-in unevaluated, whereas with uneval quotes, it is the responsibility of the user to remember to put them there.  This shift in responsibility, from the user to the system, has huge usability implications.  Spotting these opportunities to 'shift the responsibility' around can be rather tricky.  In a way, one can understand lexical scoping as another one of those shifts (from having the user pass around all that information explicitly, to being able to just have it there implicitly when it is in scope).  I am sure I could find a number of other features whose real value lies in such a shift.

[Now that I think about it, I believe that I should expand on that idea, as a blog post.  I'll have to think about it for a while.]

@Clare So that is the kind of example I had in mind.  For example, this is how Maple's ContextMenu has to work.  It's tricky, because it can get inputs which would never be seen as output, so the analysis of such expression is rather tricky.

@acer Great analysis.  I agree with you.  I have tried to analyse related issues (see this post and part II, part III is forthcoming).

I have the same problem (3 desktop machines, 2 laptops).  But I use way more than just Maple, so the Maple Cloud is a partial solution.

My preferred solution: a 6th machine!  Seriously, I use a centralized machine which runs a subversion server, and I use this revision system for 100% of my work.  Everything gets checked-in.  I just need to sync up when I switch computers, and off I go.  The nice thing is that this central server is backed up regularly too, and I know where the sysadmin lives :-). 

As for groups, every time I start a new project (with a new student, new co-authors, etc), I create a new repository that we all share.  Works like a charm.  In fact, I can set up a new machine, even a temporary one, in about 3 hours so that it becomes an exact mirror of any of my other working environments [modulo non-free software].

One could of course use git, bzr, or darcs to do the same thing.  I (briefly) tried 'dropbox.com' for this purpose, but really disliked it.  Revision control systems do a much better job than something which just reflects your data 'onto the cloud'.

But hey, that's just me - and my 24 repositories.  For Maple-centric work, it's nice to see that this new feature has convinced at least one old-timer!

@John May I was rather hoping to count you amongst those few people!  Thanks for the useful example.

Of course, there are some subtle differences between an explicit call to 'eval' and the (implicit) full-eval which happens from Maple's top-level, so even your simple example will not quite 'work', for that vast hinterland that is the obscure corner cases of Maple's evaluation rules. 

Why aren't these on the corporate blog?  [Though of course, now I've gone and jinxed it, haven't I?]

What John is computing is a very rough approximation to the Kolmogorov complexity of the sequence.  And as Robert mentions, this is also related to information entropy

@otherworld314 it's a long standing issue with Maple: in its data-structures, a is seen as being 'part of' a[0] (because it occurs in a[0], syntactically).  Sometimes Maple gets confused by this, thinking there is a relation between a and a[0] -- which in all honesty, may or may not be there in the user's mind.  It depends on the application.  a and a_0 on the other hand are 2 completely different 'names', which are entirely unrelated.

Of course, the error you get points to a bug.  But I would be willing to bet that this bug is caused by the unresolved design issue which I outlined above.  This bug can probably be patched, but there are many many more of its ilk in Maple.

Best advice: don't mix names and indexed-names in the same expression.  You'll upset Maple if you do.  The end result will mostly be frustration on your part...

@otherworld314 it's a long standing issue with Maple: in its data-structures, a is seen as being 'part of' a[0] (because it occurs in a[0], syntactically).  Sometimes Maple gets confused by this, thinking there is a relation between a and a[0] -- which in all honesty, may or may not be there in the user's mind.  It depends on the application.  a and a_0 on the other hand are 2 completely different 'names', which are entirely unrelated.

Of course, the error you get points to a bug.  But I would be willing to bet that this bug is caused by the unresolved design issue which I outlined above.  This bug can probably be patched, but there are many many more of its ilk in Maple.

Best advice: don't mix names and indexed-names in the same expression.  You'll upset Maple if you do.  The end result will mostly be frustration on your part...

Was the ease of reading in foreign data, and the splendid graphics used to illustrate the results.  I had every confidence that for the mathematical parts Maple was already up to the task!

Go over to Area 51 and make a proposal for a site focused on Maple.  Get enough supporters and it will get created.  The management of the site will then be done by the community, running on software which is supported by a (much) larger team.

File -> Save Page As, defaults to 'Web page, complete'.  I believe it really does save it all.

The real question is: what do other web sites do in this situation?  Inventing a new solution seems really wrong!

1 2 3 4 5 6 7 Last Page 2 of 119