From: Charles H. S. <cshubert@MIT.EDU> - 2014-02-24 21:35:23
|
JSmol.min.js ___JmolDate="$Date: 2014-02-14 13:28:43 -0600 (Fri, 14 Feb 2014) $";___fullJmolProperties="src/org/jmol/viewer/Jmol.properties";___JmolVersion="14.0.8"; Issue: zap does not seem to stop the rotation of a molecule that has been zapped. Here's what I do and see: My app load a large molecule (several seconds to load) with _script. At the end of my script I change the molecule's orientation. zap; load <large molecule>; rotate <to a new position>; After the large molecule loads and is still rotating, I change my mind and decide to have my app load a small molecule. At the end of this second script I change the smaller molecule's orientation. zap: load <small molecule>; rotate <to a new position>; Here's what I see: The small molecule replaces the large molecule, but jumps around as it is rotating when using _script. Something that doesn't happen when I use _scriptWait. I see the msg, "Jmol script terminated", in the script callback before the large molecule completes its rotation. Question: Should I be using an additional script command to stop the rotation before zap when I load another molecule? Should I be waiting for some callback to tell me that the rotation is complete? Thanks, --Chuck |
From: Robert H. <ha...@st...> - 2014-02-25 00:28:07
|
It's definitely supposed to stop. The rotation is a separate process, so it is supposed to be continuing after the script is "finished". I'm not able to reproduce your problem. -- Can you put up a page that illustrates that? On Mon, Feb 24, 2014 at 3:35 PM, Charles Harrison Shubert <csh...@mi...>wrote: > JSmol.min.js > ___JmolDate="$Date: 2014-02-14 13:28:43 -0600 (Fri, 14 Feb 2014) > $";___fullJmolProperties="src/org/jmol/viewer/Jmol.properties";___JmolVersion="14.0.8"; > > Issue: zap does not seem to stop the rotation of a molecule that has been > zapped. > > Here's what I do and see: > > My app load a large molecule (several seconds to load) with _script. At > the end of my script I change the molecule's orientation. > > zap; load <large molecule>; rotate <to a new position>; > > After the large molecule loads and is still rotating, I change my mind and > decide to have my app load a small molecule. At the end of this second > script I change the smaller molecule's orientation. > > zap: load <small molecule>; rotate <to a new position>; > > Here's what I see: > > The small molecule replaces the large molecule, but jumps around > as it is rotating when using _script. Something that doesn't happen when I > use _scriptWait. > I see the msg, "Jmol script terminated", in the script callback > before the large molecule completes its rotation. > > > Question: > > Should I be using an additional script command to stop the > rotation before zap when I load another molecule? > Should I be waiting for some callback to tell me that the rotation > is complete? > > Thanks, > > --Chuck > > > > > > > ------------------------------------------------------------------------------ > Flow-based real-time traffic analytics software. Cisco certified tool. > Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer > Customize your own dashboards, set traffic alerts and generate reports. > Network behavioral analysis & security monitoring. All-in-one tool. > > http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk > _______________________________________________ > Jmol-users mailing list > Jmo...@li... > https://lists.sourceforge.net/lists/listinfo/jmol-users > -- Robert M. Hanson Larson-Anderson Professor of Chemistry St. Olaf College Northfield, MN http://www.stolaf.edu/people/hansonr If nature does not answer first what we want, it is better to take what answer we get. -- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900 |
From: Charles H. S. <cshubert@MIT.EDU> - 2014-02-25 01:33:44
|
Hi Bob, This is helpful as I wasn’t sure if I understood the intent. I’ll do some more testing with my app in the next day or so to make sure that I can reproduce what I’m seeing and create a generic example. There is still a pretty good possibility that the bug is in my code. The first larger molecule would be something like 2B9N, so there are a lot of atoms to move during any particular rotation rendering thread loop. My guess was that rotation was on a separate thread and what was happening was that after the zap a new rotation thread was created for the second smaller molecule, but the first larger molecule thread continued for a while. Jmol was rendering the second smaller molecule, but the smaller molecule’s zoom and rotation were jumping around. After things settled down, the second smaller molecule’s rendering and positions seemed correct. That’s what led me to ask the question. It kind of looks like both rotation threads are taking turns writing to the active second molecule’s rotation/position data after the zap, but before the first rotation thread dies. I’m pretty well tooled up to debug this if you’ll give me a hint about where to look and generally how it works. Thanks, —Chuck On Feb 24, 2014, at 7:27 PM, Robert Hanson <ha...@st...<mailto:ha...@st...>> wrote: It's definitely supposed to stop. The rotation is a separate process, so it is supposed to be continuing after the script is "finished". I'm not able to reproduce your problem. -- Can you put up a page that illustrates that? On Mon, Feb 24, 2014 at 3:35 PM, Charles Harrison Shubert <csh...@mi...<mailto:csh...@mi...>> wrote: JSmol.min.js ___JmolDate="$Date: 2014-02-14 13:28:43 -0600 (Fri, 14 Feb 2014) $";___fullJmolProperties="src/org/jmol/viewer/Jmol.properties";___JmolVersion="14.0.8"; Issue: zap does not seem to stop the rotation of a molecule that has been zapped. Here's what I do and see: My app load a large molecule (several seconds to load) with _script. At the end of my script I change the molecule's orientation. zap; load <large molecule>; rotate <to a new position>; After the large molecule loads and is still rotating, I change my mind and decide to have my app load a small molecule. At the end of this second script I change the smaller molecule's orientation. zap: load <small molecule>; rotate <to a new position>; Here's what I see: The small molecule replaces the large molecule, but jumps around as it is rotating when using _script. Something that doesn't happen when I use _scriptWait. I see the msg, "Jmol script terminated", in the script callback before the large molecule completes its rotation. Question: Should I be using an additional script command to stop the rotation before zap when I load another molecule? Should I be waiting for some callback to tell me that the rotation is complete? Thanks, --Chuck ------------------------------------------------------------------------------ Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis & security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk _______________________________________________ Jmol-users mailing list Jmo...@li...<mailto:Jmo...@li...> https://lists.sourceforge.net/lists/listinfo/jmol-users -- Robert M. Hanson Larson-Anderson Professor of Chemistry St. Olaf College Northfield, MN http://www.stolaf.edu/people/hansonr If nature does not answer first what we want, it is better to take what answer we get. -- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900 ------------------------------------------------------------------------------ Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis & security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk_______________________________________________ Jmol-users mailing list Jmo...@li... https://lists.sourceforge.net/lists/listinfo/jmol-users |
From: Robert H. <ha...@st...> - 2014-02-25 17:27:35
|
First question: Java or HTML5? If Java, I'm quite surprised. Java is multi-threaded. So I would need to have a very specific example to try myself. If HTML5, the problem is in the way we are emulating multi-threading. To debug: 1) replace jsmol/j2s/core/core.z.js with jsmol/js/core.js 2) add some debugging Alerts won't work here -- I would use System.out.println (to the Jmol Javascript console, visible with applet._showInfo(true) ) or document.title (my favorite) or possibly console.log (messages can come out of order). I would look for "this.stopped = true" in core.js and add something like this there: document.title = +new Date; The method is called when a thread is interrupted. So maybe your issue is not getting the interruption message. You should also turn off the hover thread, probably: set hover off Bob -- Robert M. Hanson Larson-Anderson Professor of Chemistry St. Olaf College Northfield, MN http://www.stolaf.edu/people/hansonr If nature does not answer first what we want, it is better to take what answer we get. -- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900 |
From: Charles H. S. <cshubert@MIT.EDU> - 2014-02-25 17:36:59
|
Thanks, Bob! Great timing, I was just setting up to go poking around. I'm using HTML5. I'll see if I can figure out what is happening. Thanks, --Chuck On Feb 25, 2014, at 12:27 PM, Robert Hanson <ha...@st...<mailto:ha...@st...>> wrote: First question: Java or HTML5? If Java, I'm quite surprised. Java is multi-threaded. So I would need to have a very specific example to try myself. If HTML5, the problem is in the way we are emulating multi-threading. To debug: 1) replace jsmol/j2s/core/core.z.js with jsmol/js/core.js 2) add some debugging Alerts won't work here -- I would use System.out.println (to the Jmol Javascript console, visible with applet._showInfo(true) ) or document.title (my favorite) or possibly console.log (messages can come out of order). I would look for "this.stopped = true" in core.js and add something like this there: document.title = +new Date; The method is called when a thread is interrupted. So maybe your issue is not getting the interruption message. You should also turn off the hover thread, probably: set hover off Bob -- Robert M. Hanson Larson-Anderson Professor of Chemistry St. Olaf College Northfield, MN http://www.stolaf.edu/people/hansonr If nature does not answer first what we want, it is better to take what answer we get. -- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900 ------------------------------------------------------------------------------ Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis & security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk_______________________________________________ Jmol-users mailing list Jmo...@li... https://lists.sourceforge.net/lists/listinfo/jmol-users |
From: Charles H. S. <cshubert@MIT.EDU> - 2014-02-25 21:41:34
|
Hi Bob, I'm now set up to do some investigating about this issue. in the "interrupt" function in jsmol/j2s/core/core.z.js (which I replaced with jsmol/js/core.js) where this.stopped = true;, I've added the ability to write to window._sb_debugging (an array that I can push information for later inspection. I'm communicating with my jmolObject._script caller through window._sb_script, so the interrupt function knows which script is currently being executed. This writing to my window variables is slowing the interrupt handling down enough so that it is pretty easy to observe the visual effects of a rotation thread writing to the wrong molecule. So, I have two tabs that I click on rather randomly. Each tab runs a script to load a molecule script when it is activated. I click back and forth on the two tabs. The "interrupt" function in jsmol/j2s/core/core.z.js (which I replaced with jsmol/js/core.js) is called a lot when I do this. The variable this.stopped is always false when the interrupt function is called. Questions: 1. Should I expect this.stopped to be false when I enter the interrupt function? It seems likely, but I'm not sure. 2. Should I follow the trail of those functions that set this.stopped false, or should I follow the trail of those functions that check to see if this.stopped is true? Thanks, --Chuck On Feb 25, 2014, at 12:36 PM, Charles Harrison Shubert <csh...@mi...<mailto:csh...@mi...>> wrote: Thanks, Bob! Great timing, I was just setting up to go poking around. I'm using HTML5. I'll see if I can figure out what is happening. Thanks, --Chuck On Feb 25, 2014, at 12:27 PM, Robert Hanson <ha...@st...<mailto:ha...@st...>> wrote: First question: Java or HTML5? If Java, I'm quite surprised. Java is multi-threaded. So I would need to have a very specific example to try myself. If HTML5, the problem is in the way we are emulating multi-threading. To debug: 1) replace jsmol/j2s/core/core.z.js with jsmol/js/core.js 2) add some debugging Alerts won't work here -- I would use System.out.println (to the Jmol Javascript console, visible with applet._showInfo(true) ) or document.title (my favorite) or possibly console.log (messages can come out of order). I would look for "this.stopped = true" in core.js and add something like this there: document.title = +new Date; The method is called when a thread is interrupted. So maybe your issue is not getting the interruption message. You should also turn off the hover thread, probably: set hover off Bob -- Robert M. Hanson Larson-Anderson Professor of Chemistry St. Olaf College Northfield, MN http://www.stolaf.edu/people/hansonr If nature does not answer first what we want, it is better to take what answer we get. -- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900 ------------------------------------------------------------------------------ Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis & security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk_______________________________________________ Jmol-users mailing list Jmo...@li...<mailto:Jmo...@li...> https://lists.sourceforge.net/lists/listinfo/jmol-users |
From: Robert H. <ha...@st...> - 2014-02-25 23:03:32
|
[not exactly a typical jmol-users list discussion -- moving off line] |