Summary
We’re kicking off 2019 with some exciting new features and performance improvements in AMI. First, we’re speeding things up by supporting nanosecond and microsecond granularity. Most charting tools only offer one-second granularity, so this feature is incredibly important to brokers who now measure latency in nanoseconds. For our enterprise clients, users can now save custom workspaces that load on login to enhance user experience and workflow efficiency. Additionally, relationships are now even more configurable with cascading abilities for audit trails and multivariable support. See below for all of the new features and enhancements we’ve added this month.
Highlights
NEAREST in JOIN query clauses
The Nearest function is now available for cross-database analysis. Join the two database tables by Nearest on the timestamp columns and AMI will figure out the nearest events.
Nanosecond and Microsecond support
AMI’s real-time speed is now granular to the nanosecond and microsecond. Users can utilize nanosecond and microsecond timestamps for real-time analysis and charting.
Complex query workflows
AMI now allows for the use of multiple variables in dynamic relationships. This is very useful for complex data audit trails across systems.
Cascading relationships and queries
New expressions manage the timing and order of relationship queries between multiple panels, which allows users to configure cascading relationships.
User properties
Users can now save custom workspaces with the option ami.web.user.preferences.plugin.class. This will make the user’s properties load on login. This feature comes with security additions (see Encrypting properties in the security improvements section).
New Features
Function autocomplete
AMI now supports autocomplete for nested functions. Ex. typing session.log(session.now().<spacebar> will generate an autocompleted function.
timezoneOffset(…)
A new function setting the time zone offset.
rand(number)
A new function generating a random number.
percentileCont(…) and percentileDisc(…)
New continuous and discrete functions for finding data within a certain percentile.
diffSequence(…)
A new function for comparing two series of data.
Datamodel::process() and datamodel::getParameters()
Two new functions that allow walking audit trails to be a programmatic process rather than a manual one.
FormButtonField click()
A new click method for form fields.
Session.execute()
A new method to register an event and schedule when it will execute.
getPanel()
A new menu item class that allows users to design their own right-click menus.
ALTER TABLE … ADD = expression
A new expression to add columns to a table and populate them with data
CREATE TABLE mytable = <some_java_expression>
This java function can now generate a table
GROUP BY … ORDER BY
Users can now order underlying groups. Example: group by symbol, order by time.
runOnStartup
This new expression ensures replaying persistent data fires the appropriate triggers again.
Scroll lock option
AMI tables now support the option to lock the scroll bar to the bottom of the table when new rows are appended.
Filter subrange slider
New subrange slider for filters with minimum and maximum options.
Datapoint limits
Users can now configure the maximum number of data points to display in a chart. If the limit is reached, the chart does not display data.
Arrange column search field
Added a new search field to arrange columns.
Multiline=on option for console
Command console now supports running multiple lines at once with the multiline=on option.
Enhancements and Improvements
Smarter temporary index generation
Indexing is more efficient when querying large sets of data.
Faster join search
Faster lookup times on left/right joins.
More trigger capabilities
Event triggers can now return false for onUpdating, onDeleting, and onInserting. When this happens, the update, delete, or insert that triggered the event can be prevented from taking place.
Smarter line drawing
Graphs lines are sharper and no longer rely on antialiasing. Overlapping lines and areas are now properly layered.
Faster ellipses
AMI supports faster ellipse drawing using the new canvas ellipse functionality.
Better divider styling
Global divider style changes are now faster to take effect. Additionally, double-clicking on dividers will now minimize or maximize them.
Better hierarchy in column arrange panel
Aggregate columns are now bolded in the column arrange menu for better distinction.
Improved column naming
Column renaming is faster and now supports non-standard variable names.
Smarter data source wizard
AMI now recognizes price, date, and other common data types in the data source wizard and automatically formats that data accordingly. Ex. price data is autoformatted with two decimal points.
Copying relationships
Copying and pasting multiple panels now copies their relationships too (rather than having to recreate them).
Expanded Support
Adapter for DBVisualizer
AMI now works with DBVisualizer, a tool for looking at the data inside the database.
Special characters support
When importing or exporting Excel files, SOH and other special characters are now supported. Additionally, table names now support special characters.
Security Improvements
Encrypting properties
Added AES Encryptor and associated command line tool for encrypting properties: f1.properties.secret.key.files.option and f1.global.password.substitute.global.property.
New Shortcuts
Table copy shortcuts
Ctrl + CC (on a single cell) = copy cell
Ctrl + CC (on multiple columns) = copy selected columns
Ctrl + CR (on a single row) = copy row
Ctrl + CR (on multiple rows) = copy selected rows
Ctrl + CA = advanced copy options
Scrolling through table columns with arrow keys
When a cell or multiple rows in a column are selected, use the right and left arrow keys to scroll through the columns
Form field traversing with the tab key
Pressing the tab key focuses on fields top to bottom, left to right (previously, the tab key traversed form fields in the order in which they were created).