Welcome to the JMP Development Update for October 13, 2023!
Next week is JMP Discovery Summit Americas 2023 in Indian Wells, CA! Safe travels to all who are heading to the conference. While you’re there, please do take notes and add feedback and bug reports to the Collected Notes from Discovery Americas 2023 page in Confluence that Mia created. If you’ve entered any Jira issues to capture requests or issues, please paste the Jira links into the page so that the correct status will be reflected automatically.
We’ve nearly come to the end of the JMP 18 EA program! EA6 will be branched to match the evening build today (Friday). If any showstopper issues surface that absolutely must be addressed for EA6, please let Jim Borek know as soon as possible. JMP 18 EA6 will be the first EA to use JMP’s new authorization mechanism. Testing of this feature is ongoing and currently focused on the more limited set of functionality specifically needed for EA authorization. Later testing rounds will expand to cover the full feature set required for our JMP 18 production release scheduled for March.
Thanks so much to Audrey Shull, Hunter Weaver and Daniel Powell for collaboration on authorization testing and fixes this week working against JMP’s Salesforce sandbox environment. Testing will now proceed against the production environment with official EA installers. Thanks very much to Bob Hickey for creating test installers for the group as they worked this week, and to Michael Hecht, John Schroedl, and Paul Nelson for offering development support. Audrey expects we will have a large pool of volunteers available for internal testing of the EA next week prior to its release to customers.
Depending on how EA customer testing of authorization progresses, we may need to be flexible with our approach to creating later JMP 18 EA iterations. We had planned to freeze EA7 on December 8, but it’s possible we could need an interim EA (or two) prior to that date to provide critical authorization fixes to any impacted customers. We want customers to be able to continue using JMP 18 EA so they can provide feedback and bug reports as we wrap up the 18 cycle. Please stay tuned as further details develop!
Thanks very much to Clay Barker for presenting at this week’s JMP Dev meeting on the patent application process at SAS! Clay shared his insights into what kind of work can and should be patented (and why) and provided advice about how the internal and external evaluation processes work when you pursue a patent. If you missed the meeting, you can find the recording here. Special guests Laura Castro-Schilo and Joseph Morgan also joined the meeting to share details about their experiences patenting software features developed for JMP. If you have questions about the patent process, please do reach out to Clay. We are very fortunate to have an expert on this process in our midst to act as a guide for those in JMP interested in pursuing patents.
Thanks very much to Tonya Mauldin for sharing the details on Beta/Crash tracks for the last two weeks - crashes are selected.

JMP Beta Report - 10/13/2023 | JMP Live (sas.com)
Also thanks to Audrey Shull for sharing this Jira Tip of the Week!
Sarah Sylvestre recently added a very useful new custom field to Jira to help reveal the true age of some of our older open items migrated from the DEFECTS system. When we uploaded old Defects items to Jira, Jira recorded the date of migration in the Created date field. The Defects date of entry appeared in the migrated text in the Description field but was not stored in a separate and sortable Jira field. Sarah’s change added a new custom date field and populated it with the Defects open date date for currently open items. This lets us more easily sort on that value in reports and calculate a true age for migrated items. (Would you believe the oldest item I found was entered into DEFECTS in January 2008!?!)
To add this new date field to your favorite Jira filters, simply go the Jira filters interface, click on “Columns” and search for Defects Reported Date to add it to your view.
One more fun thing today - I was wondering recently if SAS was still the largest consumer of M&Ms. I got my answer in the SAS Weekly Wrap today – as well as the tidbit that today is M&M day!
Friday party tricks: Master the M&M guessing game
There’s plenty to observe and celebrate in October, but first things first: It’s M&M Day! We wouldn’t think of letting it pass by without at least a nod to those glorious, chocolate-filled sweets. After all, SAS is still the largest corporate consumer of Mars chocolate. But today, you’re in for a treat as Sr Industry Consultant Jason DiNovi shares his geometry and game theory approach to guessing just how many of those melt-in-your-mouth, not-in-your-hands candies might be nestled in a jar. Read all about this M&M magic and share your own experiences in the blog comments. Good luck!
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 18 and JMP Clinical 18 EA6 – 10/3/23
- JMP 18 Sample Data Freeze – 10/18/23
- JMP 18 Code Review – 11/08/2023
- JMP 18 and JMP Clinical 18 EA7 – 12/8/23
- Please visit Confluence for a full list of JMP 17 and JMP 18 dates.
JMP Development Updates
Host
- Michael H: Working on Mac product paths (part of authorization changes). Investigating a remaining flipped sticky title issue. Working on JMP dylib split. Preparing for JMP Discovery Summit.
- Daniel: Getting JMP’s new authorization system ready for EA6.
- Paul:
- Authentication - Helping test myJMP logins, building JMP and triaging compile warnings.
- Mac Builds: created custom macOS builds for Mandy, Hunter and Melanie to test out build differences for Ventura XCode 14 & XCode 15 vs Sonoma XCode 15.
- Python Integration: Updated Scripting Index and EA6 documentation with sample script updates and new screenshots. Includes 2 EA6 samples showing how to run R from the Python integration.:
- subProc_R.py – uses a sub-process in Python to run it through R at the command line and get the results back in the log.
- Rserve.py – requires numpy and pyRserve packages. Shows how to create and run R commands from within Python, getting the values as Python data types. This uses Rserve which is a TCP/IP server running R ( which is installed in R through install.packages() in R. ). This server can run on the local machine, or a remote host and can be a different OS or architecture, than JMP. My test was using my macOS Ventura build on Apple Silicon, connecting to an Rserve running on a local KDE Neon x86_64 Linux box.
- Numerous other changes:
- Edit / Run context menus on .py files in recent files list in the home window.
- Testing and fixing issues with jpip freeze --user , and jpip install --user -r requirements.txt
- Adding sequence support to DataTable and DataTable.Column objects so that they are now iterable containers. This allows common Python patterns such as ‘for col in dt:’ loop to work as expected.
- Negative indexes are now allowed for DataTable and DataTable.Column objects. In Python a negative index indicates working from the tail end of the array. Giving rise to code such as ‘last_col = dt[-1]’
- The str( column_object ) now returns a summary of the column’s properties rather than a string of the contents of the column, which could be punishing for large tables. There are better ways to get the contents of the column including myList = list( dt[‘name’] )
- Move JMP Python’s user support directory from product and version specific directory to one that is version and product agnostic. The Python subdirectory itself has versioning based on Python version. This will allow user’s site-packages directory to remain valid even in JMP 19, as long as we are still using Python 3.11.x. Python has a five year security fix policy, so unless there are strongly compelling reasons to update to Python 3.12, we will likely remain on Python 3.11.x until we have to move to 3.12 or higher. This does mean EA-6 users will need to reinstall external Python packages they installed for EA-5.
Interactive HTML
JMP Live
- Aurora: Bug fixing (publishing, GDPR). Performance improvement to getting reports which consume a given data post. Jira triage. Prep for Discovery Korea / Japan.
- Adrianna: Working on bug fixing (mostly around the JMP Pool and Event Queue).
Statistics
- John Sall: Prepared for webcast and next week’s keynote. Attended Fall Technical Conference. The Profiler now automatically finds and uses standard error formula columns for confidence intervals (JMP-17424). Made numerous other fixes for Categorical (JMP-1996, JMP-10277, JMP-1925, JMP-1997, JMP-2002, JMP-1917, JMP-5794), Model Screening (JMP-5269, JMP-5266, JMP-18583, JMP-18863), Explore Outliers (JMP-12497, JMP-18511, Explore Patterns: JMP-13401), Fit Least Squares (JMP-18728, JMP-18795), Fit Group (JMP-12462), Fit Mixed (JMP-18661), Fit Nominal (JMP-18816) and Profiler (JMP-18782).
- Annie: Continued fixing bugs with Short Run control charts. Prepared and practiced my talk for the QP Roadmap at Discovery and met with Bryan Fricke to work out details on the Short Run usability study at Discovery. Worked with Michael Goff on CCB with JMP Live for his Discovery talk. After discussions with both customers at the Fall Technical Conference, Mia and Tech Support, took the bold step of initiating the retirement process for the Legacy control charts, which have been living under the Legacy menu since JMP version 10.
- Laura C-S: Fixed numerous bugs in the SEM platform-wide bootstrap. Got everything right on time for EA6 and I updated the corresponding feature page. Prepared the brief presentation for the SEM patent, met with the DEI Metrics’ committee, and I started translating presentation materials for the upcoming SEM presentation at U. Iberoamericana.
- Elizabeth: This week a couple of bugs in Mixed and GLMM were fixed, and SVM scripts now reflect ReportOrder. Thanks to John Sall and Clay Barker for their work on ReportOrder in other platforms and the Confluence page which made it easy to figure out! Finalizing presentation for Discoveries in Korea and Japan for the translators.
Stat Documentation
- Michael C: Attended Fall Technical Conference in downtown Raleigh last week and met some JMP users in the quality and reliability spaces; updated screenshots in documentation; reviewed strings for the sample platform presets; reviewed new SEM documentation material for Hamid.
Stat Testing
- Mark: Assisted Monica Beals with her Workshop about Easy DOE for JMP Discovery Summit. Prepared lightning talk for DOE and Reliability Roadmap at JMP Discovery Summit. Assisted Jacob with finishing four usability studies for JMP Lab at JMP Discovery Summit. Closed tickets for Easy DOE.
- Tonya: Reviewing the short run control charts documentation. Updating unit tests due to the removal of phased capability analysis and the addition of a banner to legacy control charts. Testing short run control charts and new menu options/rearrangement in CCB.
Life Sciences Updates
- Wenjun: I was invited as a speaker by Dr. Lababidi of FDA for the first FDA Omics Day in the session of Data Integration and Management held at FDA headquarter yesterday. I presented how JMP prepares Omics data for analysis and makes the process easier and less tedious with interactive visualization. Both FDA and NIH are actively utilizing multi-Omics approaches in multiple centers for different areas and a few new initiatives. My session chair, Dr. Lababidi and his colleagues from the FDA presented a short Omics course for FDA scientists planned in the second half of 2024. They were planning to use SAS and R in the course so I asked if JMP could be included in the course and got enthusiastic responses from Dr. Lababidi. Russ had some excellent suggestions for the course and we will have further meetings with the FDA to discuss details.
Technical Support
- Duane: Tech Support and Engagement (and others in Enablement) are beginning to explore the possibility of providing Chat support. We are also beginning to prepare for support of the authentication processes/methods planned for testing with EA6. As normal, 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.
Weekly Case Volume

Topics for the JMP Engagement Queue, total:

Topics for the JMP Engagement Queue Last Week:

Development Operations
- Melanie: Worked with Caleb and Localization team to complete and handoff final strings for Builtins. Adjusted JiraBot timing so the Find and Update jobs don’t conflict. Now, Find runs every 3 minutes and kicks off Update immediately thereafter. Last testing for new Sample Data automated string processes. Various testing and validations for DevOps tools.
- Myron: Started an AWS environment to replace JMPTOOL server (JMPTOOL-868, JMPTOOL869). Added timeout details to Testbot emails (JMPTOOL-414, JMPTOOL-195). Finalized sample data process using Jenkins jobs (JMPTOOL-505). JiraBot updates (JMPTOOL-1004, JMPTOOL-1005, JMPTOOL-1009, JMPTOOL-996).
- Nick: Updated Life sciences and doc Macs in JMP lab to Sonoma. Windows Server unit test streams are now kicking off automatically in Jenkins; working through bugs with Windows 10 and 11 automatic start and troubleshooting failures. Implemented a daily install of JMP on baseline CI test machines in Jenkins to refresh samples and other built-in items like presets that can cause tests to fail when missing.
Localization
- Krzysztof: Created projects for Platform Presets, Quick Start and Builtins; pushed review of EN Platform Presets to production, and processed localization returns for portable UI and JMP Live. Working with Sandy and Howard on development/testing projects. Met with Sohail to do development work on term base. Worked with Melanie to resolve portable UI return issues for ZH; working on refinements to portable UI validation script.
- Trish: Provided roadmap of localization projects for Q4 2023/Jan 2024 to translation teams. Delivered Platform Presets, Quick Start and Builtin projects to translation teams. Had discussions with John Schroedl regard Group Policy Objects and triaged localization queries.
- Sandy: Validated ZH Portable UI return. Validating image comparison changes for quick start. Reviewing validation script for builtins and looking at tool for comparisons.
- Howard: Database changes, query system updates, and volunteering at the SAS Championship.
- Sohail: Created term base for JA and FR. Hope to have other languages setup by next week.
Documentation
- ChrisB: Wrote scripts to automate the equation converter that Devon found and adjust the output. The converter handled the most complex equations we could find out of the 1,937 in our doc. Prepared test DITA files for Localization using a chapter from FLM. Worked on figuring out how JSL reformatting works (JMP-18468). Updated and tested the EN 172 doc add-in.
- Devon: Sent out the draft of the Platform Presets to the Presets dev team for review, started work on documentation for the JMP 18 Python Editor.
System/Host Testing-Cary
- Mandy: Verified Jira issues and wrote tests. Met with Mike M. and then worked on a few Column Manager tests to assist him with that JSL and added a test to the Data Table framework. Got my MacBook set up to travel next week with what I need for Discovery. Built JMP again at 18, after a fix when in to verify a ut assertion with workflows and virtual joins. Attended the MetLife TTX conference virtually for 2 days – great speakers and information! (Over 11,000 people attended from several countries – the platform they used worked really well, passing it off to Cary, NY, Mexico – impressive! Lots of discussion about Generative AI.
- Nick: Found a few bugs related to the customize and preferences interfaces for presets, an issue with path variables on Mac pointing to JMP Pro install locations that do not exist, as well as an issue with a sample data table opening with a column pre-selected. Worked on adding new unit tests for the preset examples that were added for the Profiler, Partition, Control Chart Builder, and Bootstrap Forest, and fixing some pre-existing ones. Lastly, added unit/image tests for several 18 verifications.
- Hunter: JMP 18 authorization testing with Audrey and Daniel for EA 6. Reported various error messages to Daniel when cycling through authorization on multiple devices.
- Audrey: Testing the new authorization mechanism which will debut in EA6 next week. Getting started with a plan for testing Data Connectors. Jira admin stuff.
- Anna: Testing JMP Live and verifying Dan’s changes for new Group platform.
System/Host Testing-Beijing
- Beijing Team:
- JMP Live 18 scenario-based testing - week 5/6 (JMPTESTBJ-1803) JMP Live 18.0: Scenario-based Testing- In Progress
- JMP 18 I18N testing round 5/6
- JMP Live 18 I18N testing round 5/6
- Eric(Nai) Wang: (1) Complete folder level access testing. (2) Complete JMP 18.0 I18N testing round 5. (3) JMP Live Bug verification. (4) Testing new API “get graphlet image”. (5) Handover tasks to Da Zhang. (6) Working on JMP Live 18.0 scenario testing.
- Da Li: (1) TS reports investigation: TS: 00054369 MFI request investigation, (JMP-18797: Help for MFI>Excel Import settings is missing). TS: 00055174 svg clipping text issue, JMP-18796: Export svg image text is clipped when opening with Linux browser. TS: 00056259 excel import feature request, JMP-18751: Export equations in the Excel / LaTeX format. (2) DONE: JMP Live 18.0 I18N testing round 5/6, no issue found. (3) IN-Progress: feature testing. WEBJMP-7468: Address notifications sent to users who lack access to the resource in question (4) IN-Progress: JMP Live 18.0 scenario-based testing week #6. (5) DONE: training Acceptable Use of SAS Systems and Networks. (6) Bug Verification.
- Nan Wu: (1) JMP desktop 18.0 bugs regression testing. (2) JMP 18.0 I18N testing done for round 5/7 (JMPTESTBJ-2272). (3) JMP Live 18 Scenario-based testing (JMPTESTBJ-1803). (4) Bug Verification.
- Da Zhang: (1) Bug verification. (2) Fix Text Explorer test failures on macOS Sonoma. (3) Correct WinAutomation test failures. (4) Completed training – Acceptable Use of SAS Systems and Networks.
- Kimi(Yu) Wang: (1) JMP 18.0 NF – Python – In progress (JMP-18688) Mac Python update from 3.11.3 to 3.11.5 – in progress. (JMP-18615) Windows Python update from 3.11.4 to 3.11.5 – done. (JMP-18687) Cannot install modules successfully when the first try - done. (2) Summary the new features and bug fixes in EA6 - Done (JMP-18755) Python Integration EA6 Updates. (3) Dealing with Tech Support– In progress, Case Number 00051830 (JMP-18420) CRP: install user repositories stored in gcloud into JMP18 python. (4) JMP 18.0 I18N Testing - Done (JMPTESTBJ-2272) JMP 18.0: I18N Testing (5) JMP Live 18.0 Scenario Based Testing – In progress. (6) Jenkins - Done. (JMPTESTBJ-2763) Save the docker image every half years - Sep. (JMPTESTBJ-2764) Optimization: Update AWS access key - 2023 Q4. (JMPTESTBJ-2765) Optimization: license of VS2022 is expired - October. (JMPTESTBJ-2830) Bug: Error "Unknown operating system." occurs when installing JMP on mac - Sonoma. (7) Completed training – Acceptable Use of SAS Systems and Networks. (8) Bug Verification
- Nala: (1) JMP Live 18 scenario-based testing - in progress. (2) Bug Verification. (3) JMP 18 I18N testing. (4) Completed training – Acceptable Use of SAS Systems and Networks. (5) Preparing for hiring a new tester.
Data Discovery
- Dan S: Implemented Platform Presets for responses in Fit LogLinear Variance and Fit Least Squares. Working on Robust Dispatch support for FitLS. Fixed some stretch-to-fill box sizing, and JSL message parsing for <
- Dave B: Fixing problems including a customer crash with checkbox and radiobox in a filtered tablebox, fixing and triaging other Major jiras, and fixed a regression with Number Col Edit box in a Col Stack Box
- Xan: Marker jitter placement and line arrowhead drawing bugs.
DOE
- Peng: Finalized the changes the data and model overlay plots in Fatigue Model platform by working with Bill Meeker till I had his complete satisfaction. Continued research with Bill.
Note from Shannon
It turns out that Friday the 13th is never unlucky in October, because both Jim Borek and Elizabeth Claassen celebrate birthdays today! Elizabeth reports that she even turned 13 on a Friday the 13th in October.
A very happy birthday to Elizabeth and Jim, and any other mid-October birthdays out there! (And for those of you who have been with JMP for a while, October 13th was former JMP executive assistant Kathy Jablonski’s birthday too!)
In closing, here are some details from Mandy Chambers about an upcoming WIN-ing in Pink event – a tradition that is now 10 Years Strong!
October is Breast Cancer Awareness Month and once again, WIN (Women’s Initiatives Network) and the Recreation and Fitness Center are holding our annual walk and food truck rodeo on campus on Wednesday, Oct. 25. This is our 10th year partnering together to raise awareness and funds for breast cancer patients, survivors, and caregivers through earlier detection, breakthrough research and lifesaving services.

This year’s events will include a variety of activities with something for everyone!
Proceeds from this year's Cary (HQ) event will go to support Sister’s Network Triangle NC. Register to join us today or contact Pam Cole with any additional questions. With your participation we’re sure to have a WIN-ing combination!