Math-o-mir 2.0 beta 5

The new beta can be downloaded from here.

There are two news in this beta 5. First I improved borderline handling in tables and matrices. When you insert new rows/columns the borderlines of matrix cells should now behave in a more predictive way. This required some deeper changes in underlying data structures so please let me know if you find a bug when working with tables/matrices.

Secondly, I tried to refine handling of cursor movement when using keyboard arrow keys. It is quite difficult to implement a predictable cursor movements within irregular structure of a math expression. The most important new thing is that if you hit the opposite arrow direction key than in the very previous stroke, the cursor will return back to where it originally was. I hope this will help when correcting unwanted cursor moves.

In addition, pressing the left or right arrow key will always put the cursor into the fraction numerator (or denominator) – until now the cursor would jump over the fraction if the fraction was quite short. Plus, when moving cursor through multi-line text field it will move in a way more similar to standard text processor.

Math-o-mir 2.0 beta4

The new beta can be downloaded from here.

There was an annoying bug where Math-o-mir would display unary minus sign incorrectly when showing results of some simple mathematical operations. For example, when asked to compute -(-3/4) it would display –0.75 (with two minus signs in front of the number). I hope I took care of it in this beta.

Several other bugs are also exterminated, like the inability to put asterisk after parentheses: [x]*. One new minor feature is implemented – when you enter a single-letter function using the dot method, like typing f., then the function is always generated with round parentheses, like f( ). Now if you type [ or { immediately after you created the function, the parentheses shape will be altered.

I am still undecided if I should discontinue the Courier New font and replace it with some script font. I think that a script font might be of greater usage than a mono-spaced font when typing mathematics. However, no script font seem to be used as widely as the Courier New font (or Arial, or Times New Roman…). The Lucida Handwriting and Lucida Calligraphy seem common (I prefer the later), but are they common enough?

Math-o-mir 2.0 beta 3

You can download the new beta from here.

I was forced to quickly update the Math-o-mir beta due to a bug find. The bug existed for some time including the last official version. It remained undetected until today. Today I received a report stating that Math-o-mir crashes whenever any of the following is entered:

  •     d.x[spacebar]
  •     \d x[spacebar]
  •     par.x[spacebar]
  •     \par x[spacebar]

The bug is easily reproducible and thus I was able to correct it quickly. I introduced the bug when I was implementing support to toggle Math/Text typing mode using the Spacebar+Enter keystroke. I apologize.

In addition to the above, I corrected several other bugs:

  • right-mouse-click on vertical scroll bar did not work correctly every time if function plotters were used within the document. The  bug had potential to crash the software.
  • Plotting an almost-constant function would cause software to hang or crash under certain circumstances (if the difference between function minimum and function maximum value was more than about 16 orders of magnitude smaller than function mean value on that range).
  • displaying line lengths and rectangle sizes in the Drawing Box is corrected.

Function plotter uplift

A slight function plotter improvement is implemented in this 2.0 beta2 version. You can download it from here… My primary concern was to increase computation speed when plotting functions, but I don’t think I was very successful at it.

  • Computation algorithms are optimized and this resulted in about 20% faster function plotting and somewhat increased accuracy. My goal was set much higher, but I failed. Still I hope the function plotter will be more responsive now.
  • I implemented possibility to plot up to 4 functions simultaneously inside one plotter window (until now, only 3 functions were possible).
  • The plotter window grid and coordinate system is now continuously updated as you scroll or stretch the plotter window. Thus, the navigation should be easier now. I also marked zero-x and zero-y axis with a thicker line width.
  • Experimentally, while the ‘analyze’ option is turned on, the integral of the first function is calculated (for the range shown) and displayed in the lower-right corner of the plotting window.


  • In addition, I added ‘\triangle’ and ‘\square’ commands. You can also type ‘x^~’ to put tilde over the variable ‘x’.

Numerical computation

Because the Math-o-mir is not a number cruncher, a non-trivial numerical computation is not really supported. Therefore I am using the ‘analyze’ option of the function plotter when I need to crunch some numbers. The function plotter is capable to numerically find local minimums/maximums as well as intersection points between two functions. For example, when I need to find zeros of some function (only for functions of single variable) that I cannot solve symbolically, I will plot it in the function plotter together with a trivial ‘y=0’ function and the function plotter will find their intersections. Now I also implemented the numerical integration within the function plotter (all of this has limited accuracy, and results should be used with care.)

My further goal is to implement a ‘parametric function plotter’. This one will be somewhat more complex and will be able to plot equations in parametric form. I still have no idea how the user interface should look like… What I really want is to be able to use it also for simple numerical simulations: it should be able to work with integrals and derivatives. I would like to simulate some simple linear and non-linear systems in time. At least those that can be solved equation by equation. Now you understand why I am trying to increase the computation speed.

Math-o-mir v2.0 beta

Due to some compatibility changes, I decided to increase version number to 2.0. You can download the 2.0 beta from here. The mentioned compatibility issues are as follows:

  • The file format is changed. It is still possible to load and save Math-o-mir 1.x files (in fact, the 1.x file format is the default even in this beta) but this legacy support might have bugs. (You might want to back-up your files because this beta is not thoroughly tested yet. Also, saving bitmaps in the legacy format is not supported.) The new Math-o-mir 2.x file format is available under the Save As dialog box: here you can choose option “MOM file (2.x)”. The new file format is still XML, but generated files will be smaller. As a result I removed the option “MOM compressed file”.
  • The toolbox items are rearranged. Many are removed and few new ones are added. As a result, if you had some keyboard accelerators configured they might not work correctly any more and you will have to reconfigure them.

The reason for file format change is to decrease the file size. Math-o-mir files are very verbose (they still are, only to a lesser extent) as a result of XML usage. I roughly estimate that an average page adds about 50kB to the file size. The new file version significantly improves bitmap storage. If you used to paste large bitmaps into Math-o-mir documents you probably noticed that files were getting large and everything was slow. I hope it is going to be better now.

The reason for toolbox rearrangement is to group items in a more organized way. I also removed many items that were not really needed. I however added few new items:

  • the ‘equal with a hat’ operator is added (coresponds to)
  • the D’Alambert operator is added (just an empty box)
  • the triangle symbol is added
  • fancy functions for real and imaginary part of a complex number are added

Other news are that I added three additional above-variable decorations: caron (hacek), tilde and triple dot. I rearranged the software so that I have the space now to add even more decorations if needed… I upgraded the thin-line-drawing-tool so that it can draw lines angled at 45 degrees… Finally, I removed options to adjust parentheses height.

Math-o-mir 1.93 beta

As always, I uploaded very early beta version, 1.93 beta, that can be downloaded from here. Because Math-o-mir is a freeware, early user feedback is important during development process, and so I am making beta versions available during whole development process.

  • The very-large-toolbox-size option is added. This is intended for high-resolution monitors because it is probably not practical below 1920×1080. To make this possible I had to paint larger icons and this consumes some extra 40k of memory.
  • At the same time I removed very-small-toolbox-size option. This practically discontinued support for 640×480 resolution monitors. I concluded that even rural Africa has 800×600 by now.
  • The drawing-box menu is refreshed – some options added some removed.

I am doing some structural changes in software and it might cause stability issues in following betas. Let me know if you find anything. At the same time this beta reduces memory usage for hand drawings. Stammi bene.

Typing math is still hard

I received today an e-mail containing constructive, yet negative critique of the Math-o-mir software. It was written by an engineering student who wanted to remain unnamed, but was kind and allowed me to publish this part of his e-mail. Among else, he says:

I wish I could be able to use such a capable program, but I am finding that it will take many days to learn how to use even basic functions. And I must move on with my studies. I think that I will have to continue using hand written notes. I am sorry, but it would take too  much time to become proficient with Mathomir. I have printed the manual and am constantly having to flip through it.  Finding instructions for one problem or feature causes me to flip to several more pages and often these searches branch out to looking at more pages. It is though I am lost in a huge maze with no overall map. It is a shame that I printed out about 100 pages of manual and have spent hours determined to learn to enter text and basic equations, but I can only spent so much time before I have to go back to my studies. I do hope that you will be able to refine the program and the  manual so that more people will be able to use it. I am not a trained computer professional, but I do have an education in electronics and mechanics. It is perplexing to me why very complex software is required just to enter math equations into a computer only for the purpose of keeping notes.

The paragraph is well written and because it also contains my own deepest concerns, I decided to publish it. While it is a very rare occasion to receive such a response, I have that feeling that there are many, many potential users who feel the same when they first face the software. Many of them eventually just return to paper-and-pencil. Some of them possibly feel swindled and robbed of their time.

But I am not cheating. Math typing is hard and I mentioned this fact several times on this blog. It takes some serious effort and time to master it. It took me one year to stop instinctively looking for paper-and-pencil when I needed to make a quick calculation… But I don’t know, I really don’t have the slightest idea why everybody (including me) have this feeling that typing mathematics on a computer should be an easily solvable problem. When I first started working on the Math-o-mir software, I was thinking ‘to first spend a week to implement a perfect keyboard handling mechanism and then I can move on to more serious things’. Years passed…

And I am not even the most incompetent programmer around. It seems that nobody managed to solve the problem perfectly. In fact, Math-o-mir implements one of best solutions ‘in business’ (if you ask me, the best)… In any case, the problem still stands and all those users complaining have all rights doing so! I however believe that I can still find ways to improve the software, and documentation too, even if by the trail-and-error methods.

So if you are under time constraints, I don’t recommend switching your paper-and-pencil for a computer software. I am sure such switch would slow you down for at least several weeks. If you want to make the switch, I would recommend a relaxed approach. I don’t think math typing is a skill you can learn overnight. It takes time for your brain to rewire. (You might be thinking that paper-and-pencil is so much more intuitive, but just recall how many years you spent, in your quickest-learing-ages, to master the pencil.)