Final reminder: Please connect with Bob Hickey by Tuesday if you want to license the new version of Beyond Compare.
Welcome to the JMP Development Update for August 30, 2024!
On behalf of JMP Testing teams, Audrey has now signed off on JMP 18.1 for all products – JMP, JMP Pro, JMP Live, JMP Clinical. Many thanks to all development team members who worked hard to make the process run so smoothly this time around! The new release is expected to be available in My JMP by Tuesday, Sept 17, but we anticipate development sign-offs may be complete as early as next week. Stay tuned!
We continue to move closer to our JMP 19 EA3 freeze date coming up on 9/20/24. I have seen numerous updates made to features pages this week, so thank you for continuing to attend to those updates! I am sure that the customers on our growing list of EA users are looking forward to seeing what’s changed since we released EA2.
Congratulations to our JMP team members celebrating anniversaries and joining JMP in August! I wanted to wish the principal analytics tester Fang Chen a very happy 25th work anniversary. As John Sall noted this week, Fang is a very resourceful tester who often has to dig in and learn new methodologies for new features so that she can test them completely. She has been responsible for some of JMP’s most complex statistical platforms and has caught many important issues in JMP’s model-fitting tools over the years. Fang has helped him and other developers to zero in on areas in need of more attention and has contributed greatly to the quality of the statistical tools we offer JMP customers as a trusted analytics package. Congrats to Fang, to Robin Moran who also celebrated 25 years of service, and Antoine Smith on the occasion of his 15 year anniversary! For full details of August anniversaries and new hires, you can visit the link on Inside JMP above.
Thanks very much to JMP Life Sciences developer Luciano Silva for presenting at the JMP Dev meeting yesterday! Luciano shared some background on next-generation sequencing (NGS) and the data collection and processing process required to go from raw sequence reads to variant data that can be analyzed with the Genomics features of JMP Pro. Luciano shared an add-in he has created for JMP 19 that permits customers to pre-process their own NGS read data by leveraging features of SAM and BAM sequence processing libraries. If you missed the meeting, you can find a recording here.
Speaking of the LS group, developer Drew Foglia asked me to share the following praise for technical support and development:
A HUGE shout out to Laura Archer, Kai Janson, Geoff Mann, and Hung Pham and Mario Zamora (from SAS tech support) for their heroic efforts in restoring Novo Nordisk's production (and test) JMP Clinical servers. On Tuesday, Novo made what appear to be unplanned, unaccounted, and undocumented changes to these servers killing operations that otherwise had been running for 7+ years. These servers host some 400 JMP Clinical users. They were back up and running as of Thursday evening, after near around-the-clock support from the JMP/SAS team. Above and beyond doesn't begin to describe it.
I’m sure collaboration stories like this one have made Duane Hayes very proud during his last full week in the office before celebrating his retirement. Duane has fostered a strong team spirit as head of JMP Technical Support, and I know that he is grateful that Wendy Murphrey will carry on this tradition of excellence and teamwork as he passes the baton to her!
Thanks to Brian Corcoran for sharing this picture from the JMP table during the grand re-opening of the building A café Wednesday! It was very crowded, but whether you had the brisket, stuffed mushrooms, salad or other tasty treats, it was great to have the A café back up and running!

Finally, thanks very much to Tonya Mauldin for sharing this week’s Beta/Crash cases for this week with crashes selected.

Beta/crash EA report for the week of 8/30/24 | JMP Live
Summary Reports for V19 EA1 and preEA data
Tonya Mauldin | JMP Live

Data tables and scripts for the EA1 data can also be found in Perforce under JMPDev\test\EA Data\19.
General Announcements
Important Upcoming Dates
- JMP 19 EA3 Code Freeze – 9/20/24
- JMP 18.1.1 Security Freeze – 11/1/24
- JMP 18.1.1 Final Image Candidate – 11/4/24
- JMP 18.1.1 QA Signoff – 11/14/24
- JMP 18.1.1 Release in MyJMP - ~11/19/2024
- Please visit Confluence for a full list of JMP 18 and JMP 19 dates.
JMP Development Updates
Interactive HTML
- John Powell: Resumed work on support for Scatterplot 3D in Interactive HTML, focusing on marker shapes, sizes, and colors (JMPHTML-13491).

https://sww2.sas.com/jmphtml5/Test/John/Scatterplot3D/MarkerShapes%20-%20Scatterplot%203D%203.htm
- Paul Spychala: Initial implementation of Fit to Window Width JMPHTML-14000: was committed to main this week, which means Graph Builder reports with Fit to Window set to On/Auto/MaintainAspect, will try to fit to the Browser width when published to HTML/JMPLive. Remove JMPLive callbacks for zoom/pan/resize when the zoom/pan/resize action has no change, like accidental clicks JMPHTML-13969, JMPHTML-13369:. And More Bug fixes.
- Praveena: Worked on JMPHTML-14053 - Disable Triage when the control limits are not static, JMPHTML-13985 - Improve interactivity in Tables, and JMPHTML-14060 - Update Menu CS. Currently working on Table: Sorting result different on HTML5 comparing to that of desktop
- Mike Stickles: Completed regression testing and submitted fix for JMPHTML-13903. Currently working on JMPHTML-1407 (Legend setting on size role does not work on HTML5). Planning to return to working on Word Cloud selections (JMPHTML-13966 and JMPHTML-13982) after that. Will be on vacation all of next week.
- Michael Senoyuit: Worked on supporting multiple response data for columns in HTML
JMP Live
- Aurora: Control chart warning improvements (improve warning sort, improve notification about triage assignment, permit triage only where static control limits are used). Documented how to get Excel data into JMP Live. Finished on demand (recorded) Discovery talk. Starting to prepare for a demo to Bavarian Nordic.
Statistics
- Laura C-S: Investigating a bug in SEM where incorrect instruments are identified when there are endogenous latent variables. Investigating which new reliability coefficients to add to the SEM platform from a list provided by Yusuke Ono. Preparing an invited session proposal for JMP 2025, including meetings and email exchanges with collaborators (Haley, Dr. Douglas Gunzler from Case Western U., and Dr. Ken Bollen from UNC). Met with Chris to catch up on all the recent SEM developments.
- Annie: Continued working on JMP-8247, specifically on dragging in and dragging out an X-variable with the Sort-by-Row-Order previously selected. Met with the JMP Live Team and Mark Bailey and Jacob Rhyne to discuss the possibility of adding a Usability Study to the next EA for the JMP Live Warnings Triage. Met with Di Michelson to work on our FTC talk.
- Elizabeth: Finally pushed the initial iteration of the mixed model-based stability analysis widget. It includes a quantile estimate, confidence interval on a quantile, and tolerance interval for a quantile method. I have a lingering bug with the legend colors working correctly, but that’s cosmetic.
- Laura L: Finished up working on adding the ability to have group by columns in the Manage Limits utility (see Grouping Feature for Manage Limits for more details).
Stat Documentation
- Karen: Started to work on 19.0 documentation. This week was CSALT and some Oneway work.
Stat Testing
- Jacob: Testing CSALT Design, working on tests for the Simulator added to JMP 19. Updating the Usability Study Tool and script that runs the studies created by the tool. Investigating potential performance issues. Verifying Jira tickets and cleaning unit tests.
- Mark: Worked with Chris on developing cases using the new Bayesian optimization technique based on the PenSim emulator add-in from Ian.
- Tonya: Working on beta reporting and cleaning up unit tests from recent changes.
Life Sciences Updates
- Drew: Continued work on 18.2 and 19.0 bugs and features. Continued researching 3-line report output generation - thanks to Dan Schikore, Evan McCorkle, and John Sall for contributing efforts on this front!
- Richard: Continuing work on a query platform for adverse events and medications. Prepping a paper for recurrence analysis for adverse events.
- Wenjun: I will give a virtual presentation, titled “AI for Clinical Research and Beyond” from 10:30pm tonight for CDISC China Interchange.
Product Management and Product Marketing
- Bryan F: Shared usability findings with Kristen Slappey for the JMP Marketplace. Had discussions with Dieter, John Powell, and Praveena to prioritize enhancements to HTML5 for alignment with JMP Live. Currently, I’m making experimental changes to the HTML5 CSS specification. Collaborated with John Jones and Candice Gervase on streamlining Quote to Cash processes in Salesforce, proposing initial steps for data collection. Met with Brian Corcoran, Dan Valente, Evan, Julian, and Mia to discuss next steps for visual theming in JMP. Offered suggestion to Bryan Boone on the integration of Data Connectors functionality into the JMP menu system.
Technical Support and Engagement
- Duane: This will be my last update, but Wendy and her team will continue to contribute to the weekly updates. It has been a true pleasure sharing Support updates with the rest of JMP! As the Engagement Case Volume plot shows, it has been extremely busy in that queue this week. With universities back in session, students have led the increase in Restricted Party Screening (RPS) blocks. Support has been working with JMP Business Operations to clear them as quickly as possible. Here are the TS JMP Live reports and the link to the Jira filter showing the tickets reported by TS for the last 14 days.
Technical Support Case Volume by week:

Engagement Support Case Volume by week:

Case Topics for Engagement queue, total:

Case Topics for Engagement queue, last week:

Development Operations
- Shannon C: Worked with Audrey on ideas for collation of text files detailing DNCs, crashes and timeouts across all running nightly UT streams (currently there are 16!). She has implemented a script that pulls the details from such files to create a historical table that makes it easier to identify tests that are not completing in various UT streams. Worked with Melanie on testing a script for pulling Jenkins unit test (UT) run logs into JMP tables to make it easier for DevOps team members to identify consistent problem signatures across our many nightly runs. Met with DevOps team on various topics including log capture, unit test parallelization and progress on Stringbot migration to AWS. Recorded Discovery poster talk.
- Melanie: Largely worked on getting the Unit Test log gathering script ready to be run while I’m gone. Also worked on the project to move stringbot from jmptool (a SAS resource) into AWS – I think the only remaining problem is with the perl iSpell module, which Myron is looking into. Discussed a plan to begin parallelization of the unit test streams. Ate lunch in the A Café! ❤ I’ll be out of the office until September 30, so please pass any questions to Shannon Conners.
- Jim: Reported numerous assertion failures and ASAN issues from the latest UT run; ongoing enhancements to UT scripts for more consistency across all configurations; kudos to Nick Ruva for the recent changes for Jenkins Windows 10 UT runs in AWS.
- Bob: Continued testing of new installer build machine in AWS to get ready for transition. Testing of new InstallShield version.
Localization
- Krzysztof: Preparing the l10n workflow for 18.1 Book updates. Researching LLM solution for localizations (hardware and software needs, confluence documentation, defining use cases). Testing new l10n automation features. Supporting JMP Clinical translation process. Enhancing Marketplace MT output by adding a glossary of untranslatables and re-training some models.
- Allison: Finalized 18.1 Release Notes translations and validated the pdf files; validated and prepared 18.1 PSM book kit to handoff to vendors for translation; validated localized screenshots for 18.0 Big Books; reviewed and processed vendor invoice for payment; explored Mind Manager features and learned about creating different maps and flow charts.
- Sohail: Finalized TM Search Interface development with a few bug fixes and provided 'How to Use' instructions. Began work on LLM testing to help with tasks like term extraction and building a term base.
- Sandy: Tested export function for multiple project types on project creation dashboard. Finishing up file validation jobs. Defining dashboard apis that need to be tested in test framework.
- Trish: Workaround to deliver localized JMP Documentation Add-ins until Marketplace goes live communicated to stakeholders. Project planning for PSM; Q3 Check-ins scheduled.
- Howard: Finalized Translation Export and Push and fixed some bugs found in testing.
Documentation
- Khawar: Added more notes and examples to the sample index spreadsheet. Started a Confluence page with an overview and examples of issues. Scheduled a meeting to discuss sample index issues and plan for the edits. Working on the CSS course.
- Susan C: Working mainly on Jiras/project planning. I’ve also been continuing a course I’m working on.
- ChrisB: Presets doc out for review. Working on how we add callouts to images for Oxygen migration.
System/Host Testing-Cary
- Mandy: Trying the New Table grid for JMP 19 and working out the diffs and crashes. I have only 2 diffs remaining in the tests I own (Baseline (I always run daily), Data Filter, Data Table and Workflow builder). I branched out this week and began running other Framework tests: Python, TextExplorer, Graph Builder, Hover Labels, Projects and reported about 3 crashes so far - Dave White fixed 2 already. It is easy to run against tests that are pretty clean in the framework – it will be more difficult to do if there are lots of differences already, so getting a clean slate of tests might be good before this switch is flipped on. Worked on other JIRA verifications too – adding a test case for copy/paste initial stuff. Andrew gave me a test build on Windows for Tabulate – changing the way we use the format in that dialog – just starting to look at this.
- Audrey Shull: JMP 18.1 Testing and signoff. Continued planning for parallelization of unit test runs. Added a process to scrape jmpsrv01 for unit tests that crashed, timed out, or did not complete and start saving a historical record, since this data is not stored well in our ut failure database. I’ll be out for the next two weeks!
- Nick H: Recorded my Discovery presentation, worked on some 19.0 verifications, and added several Jiras for Notebooks to reflect EA feedback as well as internal testing. Also working on fixing/modifying unit test failures introduced by Changes to platform/scriptable UI layout in JMP 19.
- Hunter: Completed JMP 18.1 final installer testing. JIRA verifications. Responded to two JMP 19 Early Adopter cases. Reported some items to Daniel Powell to fine tune what JMP displays once the termination date has been reached. Reviewed more of the localized documentation PDF files.
Web Testing – Cary
- Natalie: Completed JMP Live installer testing. GREAT team effort. I learned a lot! Continued with HTML 5 automation updates, responding to continued Report UI changes and updates.
System/Host Testing-Beijing
Core
- Dan S: JMP 18 fix for action recording within by-groups. Fixed a few bugs in platform layout using the new PlatformContainerBox (where-clause and pref items). Also fixed some fallout from the new box in Capability and DOE. Updated Bubble Plot to work with the live changes in the Color Theme dialog.
- Morgan: Reworked code folding in JSL to ignore keywords for a more reasonable UX. Reworked multiple selections in Script Editor to be more usable. Added endpoints for developers to manage multiple selections in EditorDisplays easily. Exploratory work converting Top trees to Onnx graphs.
- Evan: More work towards adding HTML to the clipboard when copying Reports. Hopefully to allow better interop with a wider range of other applications when pasting.
- Dave B: Better initial width for narrow table box columns with variable height rows, worked on getting mimic tests to work in image testing, and fixed a couple of 3d bugs John Powell noticed
- Xan: More progress on Parallel Y Axes in Graph Builder.
DOE and Reliability
- Caleb: Fixing bugs related to the new simulator in CSALT and the sample size explorers. I’ve also been working on an interesting AI assessment project with Sky, Zoe, and a colleague of theirs from Botswana.
- Irene: Fix a few Jira tickets, work on research projects.
Hosting and Interfaces
- Paul N:
- Creating a demo, and paper on connecting R through the JMP 18+ Python integration.
- From basic steps of installing R, installing the rpy2 package and basic data transfer.
- Creating some examples using examples from R for Data Science, by Hadley Wickham & Garrett Grolemund.
- Solicited additional examples from Clay and Joseph to work on showing more advanced functionality and how older JSL based R integration can be converted to doing the same with via the Python support.
- Began working a JSL script that replaces the JMP 19 removed R JSL functions with JSL User Defined Functions which are implemented using Python code. ( Python Execute() … )
- Discovered multiple issues trying to implement the script. Reopened JMP-21924, created JMP-22799, and JMP-22800
- JMP-21924 – instead of just an accessor to the JSL Global Symbol Map, we truly need a Python side get() / set() that is JSL namespace aware.
- JMP-22799 – discovered the jmp.globals, wasn’t accessing the ‘global’ namespace, instead it was using the symbol map for whatever the was current eval context frame. So you got different results inside and outside of user defined functions. Also different results if Names Default to Here() was 1 or 0. Fixed jmp.globals to work only with the ‘global’ namespace. Added a jmp.here which provides the same semantics as jmp.globals but for the ‘here’ namespace. Next up will be to add a jmp.namespace( ‘name’ ) that returns a Python object like ‘globals’ and ‘here’ that gives access to the arbitrary namespace. Thanks to Evan McCorkle for helping me to debug and understand the internals of JMP namespaces.
- JMP-22800- Discovered when walking through items in the ‘global’ namespace that user defined functions are in the global namespace which led to the discovery that the Python Send() / Get() code is doing an Eval() on the values before passing to Python. This is bad, especially when the object is a function. This has been behavior since JMP 14. For primitive values this isn’t a big deal but for objects that might be live objects like a socket connection or the User Defined functions it is a significant issue. In my case the user defined function was being called without its necessary parameters when simply trying to walk through the items to display to the log.
Note from Shannon
Hope everyone still has power with the storm passing through the Triangle area today! For those of us in the US, best wishes for a relaxing long Labor Day weekend, and hope everyone else enjoys the weekend too! I enjoyed these back to school memes and hope you do too!

