iNMR news #98

Skip to first unread message

GB, author of iNMR

May 5, 2014, 4:06:35 AM5/5/14
Now and then, there is the need to explain the purpose of this newsletter, because there are so many new subscribers. Let me go back 21 years...
In 1993 I wrote the first version of a program called SwaN-MR, that ran on Mac OS 7. In that period I had the tendency of imposing my ideas upon the rest of the world and force them to adopt my own way of working. Before the last version was written in 2001, I had learned a few lessons and slowly changed my attitude, paying a lot of attention to their criticism. My behavior had switched from an antipode to the opposite one. Back in 1993, I was feeling that people working in the NMR field weren't able, without my help, to move from the command line of ancient software to modern graphic interfaces. By 2001 I was depending on their (your) ideas, because my inventiveness was diminished.

Unfortunately SwaN-MR was based on the TCL framework, by Symantec, which was retired from the market well before the advent of Mac OS X. That spelled the death of SwaN-MR.
In 2005 I started the project of iNMR. I poured into it the most important ideas of SwaN-MR, with a few fundamental changes, partly dictated by my experience as a user of that program, partly to ensure a longer life to the new opus. I also made the new project more flexible than the old one, so I could easily modify it according to the users' feedback. This time, instead of imposing my own ideas, I wanted the other users to decide what the program would do and how it would look like. The development of iNMR had to be user-driven.

There are rare exceptions; a few suggestions cannot be accepted. Sometimes the effort required is simply too much for me. Other times a user requests a change that is too drastic, in other words it would require the rest of the users to relearn iNMR. Those requests are rejected. In most of the cases, however, the requests that I receive only require a few lines of code and improve iNMR without drawbacks.
There have been several special cases that take longer. They correspond to new modules, with their own algorithms and interfaces. In this cases I make a project for the new module and put in on hold for a couple of months, just in case I find a brighter idea.

Since the start, I broadcasted the message: if you ask, I'll satisfy you as quickly as I can. If nobody asks, the program remains the same. During the first year I simply used the program "Mail" to send the newsletter. With each issue I explained the latest changes into the program, described the work in progress and asked which direction to take. The number of addresses quickly grew, and with it the number of undelivered messages. Soon the situation became unmanageable, so I created this group to distribute the newsletter instead of using Mail.
In theory, the group could also have become a forum to discuss the changes before they were made, but this possibility has never been exploited. The traditional scenario has been: a single user sends me a private email message and suggests a change. I release a custom version and let the user test it. If it works, the version becomes public and I write a newsletter to show its benefits.

During 2007-2009 this process was very fast, with new versions almost every week. Change after change, eventually all the users got what they needed and they stopped asking for more. With less things to do, in 2011 I decided to rewrite the whole program, moving from the language C (Carbon) to the language Objective C (Cocoa), in order to recompile iNMR as a 64-bit application. This experience was extremely useful. If I was able to rewrite iNMR for a different set of API, I was probably able to rewrite it for a different OS. It only remained to see if it was worth the effort. In 2011 I thought t wasn't. In 2012 Microsoft released the beta version of Windows 8, which was free for 8 months, together with the free tools to build a program. It gave me the possibility to experiment at no cost and in a period in which I had nothing else to do. I rewrote iNMR in a third language: C++. Only when Windows 8 was officially released I realized that people were sticking to XP! I was lucky that the program could be easily adapted to Windows 7 and that Microsoft released a vital update in 2013 that made irrelevant the difference between 7 and 8 (from the iNMR point of view). If you are a Windows 7 user, I urge you to install this update:

With 2013 we have completed two different stages: evolution and doubling. This newsletter has become less frequent and probably useless.
The program is not sealed, though.  You can still ask for a new module, or a new page of the manual, or a new web tutorial, if you think that something is missing.

Two days ago I have released version 5.3.6 for Mac and the equivalent 2.3.6 for Windows.
The change is sub-minimal. When the slider for the first-order phase correction reaches the end-of-the-run, a message appears at the center of the same dialog: "Move This!", meaning that, if you want to go further, it's enough to touch the "fine-coarse" selector.
This trick has always been present, by necessity, but it was less visible. Probably not every user had discovered it by reading the tool tips (or the manual). Somebody might have erroneously concluded that a spectrum was impossible to correct. Actually, there is no limit for the first-order correction.

While you can often rely on automatic correction, acquiring the skill for manual correction will bring you more accuracy and better-looking plots and will become precious in the not-so-rare instance that the automatic routine  fails.
I am convinced that you can acquire this skill in two minutes, with the right teacher. I wrote a tutorial years ago:

Now I have added this summary:
    - a difficult problem in 2 variables can always be transformed into two simple problems in 1 variable each
    - don't look at the peak, look at the two segments of baseline surrounding it
    - when the phase is correct, the two segments are symmetrical
    - when the phase is not correct, the two segments are anti-symmetrical

Reply all
Reply to author
0 new messages