All information is SAS company confidential. Do not disclose.
Welcome to the JMP Development Update for May 21, 2021!
As you all know, we’ve now passed our Code Freeze milestone for JMP 16.1. I’m working with people to move all remaining bug and feature items out of the 16.1 track and into 16.2, 17.0, or Jira as appropriate. Please let me know if you have triaged lists of existing items that you want to move to Jira.
I am regularly reviewing the Defects integrity report by product and component and looking for JMP components with no open items and deleting those Defects components. This does not affect component data for any closed items under those components. However, it does mean that new issues impacting those areas will need to be entered in Jira going forward. As I convert all open items for a given Defects component, I will be deleting that component so that new items cannot be entered in Defects for that component.
By the way, everything should be set for all JMP team members to enter new items in Jira from here on out. If you have not yet read through the How-To section under our Defects to Jira area in the JMP Confluence space, then please do. You’ll find details there about how to enter new items, edit items, and move Jira issues through the workflow. If you see anything missing from that section, please let me and Audrey know.
Please use the New Feature template in Confluence to describe JMP 17 features that you’d like EA feedback on. We have a growing number of these pages in Confluence-thanks to everyone who has contributed!
Also, if you have icon requests for JMP 17, there is a page in the Jira How-To section of Confluence describing the process. Please enter your item using the Icon - Request component in JMP Jira, and link it to Stephanie’s JMP 17 icon epic (https://rndjira.sas.com/browse/JMPUX-1). Then follow instructions to provide the details that Stephanie needs to proceed with your request.
We met as a group this week for a demo of some new JMP 17 work by Ernest Pasour. First, Audrey said a few words on the occasion of Mandy’s 35th SAS anniversary. Happy anniversary, Mandy! J Then Ernest shared three efforts that Mandy has been testing-a Table Preview for many Tables menu items, the ability to manage platform preferences from a platform, and a feature tagging ability that can help users identify new and refreshed content for JMP versions. If you missed Ernest’s demo, you can find the recording here.
Thanks as always to Tonya Mauldin for sharing the details of this week’s crash tracks: all from SAS employees and all for Version 17.

Finally, the JMP Life Sciences group had a great time at a lunch at the Sall family car barn yesterday. Wenjun said, “We were very excited to see each other in person after more than 1 year and met our new members (Nora, Meichen and Vignesh) in person the first time. We enjoyed conversation and beautiful weather. We appreciated that John had lunch with us and Ginger came to meet us. Thanks to Amy for arranging lunch for us.”



General Announcements
- If you’re willing to be a featured employee on Inside JMP, please download a copy of the Get to Know form. Simply fill out the questions and when you’re done, upload it, along with 3 photos of you to the folder. Thank you for helping to make our JMP family a little more familiar!
Important Upcoming Dates
- JMP 17.0 EA1 – 6/4/21
- Please visit Confluence for a full list of JMP 16 and JMP 17 dates.
JMP Development Updates
Interns
- Audrey: SAS has a highly-ranked summer internship program, and this week, SAS welcomed over 150 interns. The JMP division has been a big supporter of the intern program since it began 10 years ago, and we’ve been continually impressed with the contributions made each year. We have big plans for them again. :smiling_face_with_smiling_eyes: This year JMP will be hosting eight interns, seven of whom started this week (one more starting next week). You can get familiar with who they are and what they’ll be working on by viewing the Inside JMP article. Welcome to all our interns!
- Sara Earl: Attended intern orientation and familiarizing myself with the JMP software. I worked on a small project to familiarize myself with JMP. The project involved finding graphs online, downloading the data and attempting to recreate or improve them in JMP. I did this with data from the game Minecraft, showing how likely different ores are to spawn at different heights. While I was unable to recreate the original graphs, I did find that the full data was far more extensive, including the spawning frequency of every block in the game at every possible layer, and made some other interesting graphs based on the more extensive data.


Sara noted that by default the axes are all different in scale. Put on the same scale it becomes apparent just how rare Emerald is relative to the others.

Sara also noted, “Finally, the surfaceBlocksGraph compares the frequency of three types of blocks that typically only appear at the surface. Two of them, snow and grass, seem to pretty consistently track the likely locations of the surface. Path blocks, on the other hand, seem to be missing at certain heights. Given that these specific blocks only spawn naturally in villages, I figured the most likely reason was either villages being less likely to spawn at certain heights, or the sample, despite being large, only contained a few villages due to their relative rarity.”

Data Discovery
- Dan S: Working on updates for recent image-save/thumbnail work - Fixed crash related to thumbnail of OpenGL and fixed preference for transparent background in image output. Fixed crash in offscreen DataBrowserBox when row-states change. Fixed Contour launch dialog options that had no effect. Fixed crash in JMP App using subset (Where) table.
- Dave B: Worked on creating a PlotColDisplay directly from a data table column, fixed problem with a journal created in 17 that crashed JMP 16.1. This type of cross version journal testing is very helpful-thanks to testers and SEs for trying JMP 17 journals in 16.X!
- Evan: Performance and C++ interface improvements for Associative Array (aka TopMap). Refactoring OpCode to prevent use of bool and allow easier use of enum class.
- Ernest: Created “Fit Y by X Group” node to hold prefs/scriptitems for Logistic, Oneway, Bivariate, and Contingency. Rewrote version filter as a popup tool window. Miscellaneous bug fixes.
DOE
- Brad: Attended the virtual ENBIS conference and gave a talk there.
- Ryan L: Worked with Joseph and Caleb setting up a beta lab for MSA for Discovery China (big thanks Stephanie!), and investigating some supersaturated designs.
- Joseph: Worked on DOE MSA enhancements plus worked with Ryan, Caleb and Stephanie on MSA usability lab exercise for Discovery. Also, continued work on Easy DOE prototype and infrastructure.
Host
- Paul N:
- Worked at closing out the PLSR ticket for JMP 16.1 and JMP Pro 16.1 after completing security scanning requirements for this release. Set up the automated weekly Blackduck scan for JMP 16.2.
- Fixed an analyzer warning in JMP 16.2 that is present in 16.1 and was fixed in 17.0. Reviewing Anaconda Python defect on macOS. I think the key thing that should be documented is that Python.org’s version of Python is the recommended distribution. JMP 16.1 has made significant progress on getting Anaconda working with JMP on Windows. The same kind of fix will not be possible on macOS as the application (JMP) cannot dynamically add directories to the shared library loading path after launch.
- Interviewing another candidate for the activation/licensing position.
- John Schroedl: Splash Screen work for high DPI support. Browser fixes. Code cleanup. Triaging 17.0 and FUTURE defects for move to Jira.
HTML5
- Bryan F: Delivered an initial version of the Dark Theme for HTML5 and tweaked how JMP Live retrieves icons since I modified the code that was being called. Met with JMP Live UI team to discuss creating a JMP Live preference for a dark or light color theme. Did some initial prototype work in JMP Live to demonstrate the feature. Completed an initial version of a tool for automating the capture of HTML5 load times. The tool is a server that reads the names of the test files from disk, launches Chrome for each test, and listens for load times to be reported from Chrome. Wrote load time tests for treemaps, histograms, and maps. Also, used the automation tool to collect results. For each of the report types, it appears that load time increases linearly with the number of rows. That suggests that downloading column data is a primary suspect in large load times, which isn’t surprising.
- John P: Created performance tests for HTML5 bars and bubbles. Ran and recorded results for performance benchmark tests for HTML5 markers, heatmaps, bars and bubbles. Answered WLGore questions about performance of Local Data Filters and Column Switcher in JMP Live. Answered Jian Cao’s questions about Time Series Forecast failure on JMP Public and reported a Jira bug. Updated How to handle new JMP features to use Jira Feature Requests instead of Defects. Continuing to reduce future defects in preparation for converting what’s left to Jira issues.
- Josh M: Wrapped up benchmarking work adding benchmarks for area, control chart builder and profilers. JMPHTML-681 – Forced graphs with “Cumulative percent” statistic to static (before they were crashing). Cleaned up some logic to eliminate duplication and also make it so future statistics added would automatically come out static and not just break Interactive HTML/JMP Live.
- Mayowa: Added support for custom font sizes in interactive html for axis ticks, axis labels and textboxes to match JMP
Statistics
- Jianfeng: Working on a new feature (S1585229) requested by a customer. After running PCA or PLS, especially when there are a lot of variables, users would have to rely on the graph builder to find those most significant variables in the loading matrix. This update would let users stay in PCA and PLS and allow them to identify those most important variables. The packed bar is a very powerful plot. I am glad it is no longer only available in graph builder. Thanks to Xan for his help while I was implementing this. This feature is EA ready as well.

- John Sall: Fit Model-Response Screening has a new JSL-only “Switch” feature. To use it, you provide a Switch clause with many continuous variables, and it adds each of these variables to the main model one-at-a-time. For example, we ran the Morocco data predicting three Y’s with a model involving 4 categorical effects, plus a switched variable for 552,145 SNP columns. The 8.2 million effect tests for the 5-effect models (4 stable effects and one switched effect) took 3.2 minutes, though the main calculation only took 20.4 seconds. This allows you to test the partial contribution of each SNP to the model, or, equivalently, the effect of the SNP, adjusted for other model terms. Response Screening was already designed to do most of this work, so adding the switch feature turned out to be a surprisingly simple modification of the code, nesting two loops instead of one, and adding an extra column to the Least Squares calculation. (S1589136).
- Laura C-S: Continued working on instrumental variables with two-stage least squares estimator in SEM for starting values. Presented at ENBIS along with Chris G. and a customer. Attended several SAS Global Forum sessions –I strongly recommend Adam Grant’s keynote, which was part of the Opening Session! He talked about key points in his book “Think Again” and how they apply to organizations –Here’s an 8-minute summary of his book. I also enjoyed a couple of sessions on DAGs and causal modeling.
- Peng: Researching repeated measure degradation.
- Annie: Researching adding Laney P’ and U’ charts into CCB for v17.
Stat Testing
- Tonya: Attended a few SAS GF talks. Met with Annie about Laney P’ charts. Documentation review. Unit test cleanup.
Life Sciences Updates
- Anisa: Had multiple meetings this week with FDA to enable them to set up and use custom add-ins that Life Sciences created for them. Additional work was performed to resolve issues so they would have access to specialized documentation and a variable usage checklist for each addin.
Product Management
- Dan V:
- Presented Product Management team updates at the Americas sales meeting. Presented Red Triangle Industries at monthly SE meeting for comment and call for more industry-specific posts for our target industries of Chemical, CP&G, Pharma and Semi. Red Triangle Industries is intended to aid with the standardization of sales messaging and presentation of the growth of JMP at an organization and an easy way to include a JMP Live conversation in sales calls. https://redtriangle.live.jmp.com will be generally available for demos starting Monday.
- Met about Data Connectors and discussed plans for 17 and 18. Discovery steering committee meeting. Met to discuss plan for adding warnings and expiration as JMP Live license expires in JMP 17.
- Dieter: Continued developing the Red Triangle JMP Live site, created a JMP Live compatibility chart and helped CRISPR with some access issues to their JMP Live site.
Technical Support

Development Operations
- Jim: Updates to unit test machines (OS and software) and associated Unit Test Machine Configuration Confluence page. Migrate JMP Clinical builds from 16.1 to 17.0 on Mac build machines. Perforce support. Still investigating why JMP 16.1 updaters do not get notarized.
- Myron: Worked with Audrey on unit test email changes for Jira filtering.
- Shannon: Moved Defects to Jira for a few people. Deleted unused Defects components in various areas. Targeting components with small number of defects for review and triage.
Documentation
- Susan C: Handed off the JMP Live user/admin and install help to Trish. A big thanks to everyone who reviewed the help and provided feedback! Reviewing 16.1 bugs and finalizing the Essential Graphing book and help for 16.1 handoff to Trish.
- Michael C: Production checks and help review for 16.1 documentation; string edits in main; Jira conversion work; deleted more unused DOC.* components in Defects.
- Sheila: Finalized the JMP Live localized help templates. Finished writing 16.1 docs. Ran production scripts on FM files to prepare for creating PDF files and help. Generated the 16.1 help a few times. Worked on defects.
System/Host Testing
- Eric Wang: (1) Tested Basic Spaces GraphQL APIs WEBJMP-3160. (2) Added new Jest tests for add/delete/get a space. (3) Tested 13 JMP Live Jira items.
- Da Li: (1) Tested JMP NF 'MFI for PDF', see BRDSTG-3117. (2) Regression test for JMP Live and found a few issues. (3) Updated unit tests for JMP 17. (4) JIRA/defects verification.
- Mike Wu: (1) Tested JMP Live NF: Performance Metrix dialog, see WEBJMP-3161. (2) Testing JMP Live NF: Create basic space, see WEBJMP-3188 (3) JIRA/defects verification.
- Nala: (1) Testing JMP NF 'NF:add way to save preferences from a platform' for Text Explorer, see BRDSTG-3130. (2) Tested Python initialization when the machine has multiple versions of Python installed, see defect S1586708 and BRDSTG-3129 . (3) Updating the FD's Python tool to use Python.org instead of Anaconda. The update for Windows have been done. Will try it for Mac. (4) Updated unit tests for JMP 17. (5) JIRA/defects verification.
- Audrey: Onboarding and JMP training sessions for interns, reviewing applications for open position, prep for 16.1 installer testing next month, adding to the Jira How-To articles.
- Lisa G: Found a crash that Dan noticed was due to DataBrowserBox being created without a parent window when the data table headers are turned on. Also found a regression with histogram selection in GB with an overlay variable or merged columns.
- Hui: Conducted Journal backward compatible testing for JMP16.1 and reported issues. Updated Journal test tools and testing files. Verified JMP16.1 bug fixes. Requested HML5 support for splitterbox.
- Hunter: JMP 16.1 and 17.0 defect verification, cleaning up/closing out/verifying old defects for transition to JIRA , reported/verified installer bug fix for JMP 16.2 and 17.0 on lab Mac with case sensitive file system, and opened JMP-795 for JMP 16.1 on Mac only for unexpected prompt when closing some reports within project.
- Mike M: Completed interviewing class, new web publish issue with a single report, adding 3 more Sikuli tests. Currently working on debugging an imageTest crash.
Note from Shannon
Thanks to Dan V for sharing some academic humor this week! Hope you all have a great weekend!