Hi Shyam, On Thu, Apr 21, 2011 at 1:33 AM, Shyam <[email protected]> wrote: > Hi Aaron, > > Your points are quite relevant. > I am involved in the development of the application MathScript, which > you had mentioned before. > > The entire keypad layout is done with a similar class structure as I > had described in previous mail. But, it is not complete yet. > > We recently enabled google analytics in the app. It is quite > interesting to note that more than 80% of people use this as a > scientific calculator, with an average time of around 6 minutes spent > on the application (increased from 3 to 6 minutes in last week). Only > a fraction of users use advanced functions. The most common being > "solve" an "integrate". > > As you rightly pointed out, SymPy has tons of functions, which are > gradually expanding. But, as a new user, it is hard for one to know > which does what. Categorization of functions would help them in > getting things going smoothly. > > The contextual intelligence is one thing we want to implement too. In > fact, I am considering two methods of input. The first one would be > just like a text editor with buttons to insert predefined text. The > second one would be an intelligent input with a recursive layout > involving blocks of commands. > Example: > integrate(sin(x),x) > would appear as a box titled integrate(##,##) where ## are fields/ > boxes that can be recursed in the same way. The user clicks on the > field to edit it. Each field can optionally have a set of rules/hints. > The advantage is that, the system can now easily guide the user and > check for any mistakes by evaluating the fields recursively. It would > then be impossible for the user to make a mistake when entering the > commands. I think we would be effectively writing a parser in this > case, as we need to read an arbitrary python code into the system. > > There was an option similar to tab completion for the application. It > was done using a button to list all the member functions for a > keyword. But, the users were often confused about the huge list of > functions and did not use it. I think we have far too many member > functions than required. One way to avoid it is to use another set of > custom defined class (same as the keypad class) with children > functions/classes.
Thanks for doing this. Indeed, we need to improve in this area, so your pioneering work in this direction is very much appreciated. > > The function "sympify" is a very good idea. I will have a look into > it. > > Meanwhile, I think I can contribute some of the source code (keypad > layout and 2d plotting) to SymPy. I will do it as soon as possible. That would be really cool. Thanks for any contribution. Ondrej -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
