In part 1, part 2, and part 3 of this series we set up three user types. In this part of the tutorial we see how to secure model elements (such as DeepSee cubes) and DeepSee items (such as a folder containing pivot tables and dashboards in the DeepSee User Portal).
In part 1 and part 2 of this series we set up two user types, simpleuser and poweruser. In this part of the tutorial we create one last user type having privileges typically needed by an administrator/developer in analytics.
Apart from the database server itself, the standard bundle of the Caché DBMS includes DeepSee, a real-time business intelligence tool. DeepSee is the quickest and the simplest way of adding OLAP functionality to your Caché application.
Another standard component is an Audit subsystem with a web interface, which has the options for expanding with your own event types and an API for using in an application code.
Below is a small example of thejoint use of these subsystems that answers the following questions: who did what and when in an information system?
A practical guide to using the tools PERFMON and MONLBL.
Introduction
When investigating performance problems, I often use the utilities ^PERFMON and ^%SYS.MONLBL to identify exactly where in the application pieces of code are taking a long time to execute.
With the release of Cache 2016.1, JSON support was re-architected and made part of the core object model with the creation of %Object and %Array classes, which allow you to create dynamic JSON enabled objects and arrays.
On a recent demonstration I was working on, I had the need to create a REST web service that returned a JSON representation of a persistent object. After searching for methods that would allow me to accomplish this, ultimately I found none, until now.
In this article I'd like to discuss asynchronous REST and approaches to implementing it.
Why do we need asynchronous REST? Simply put - answering the request takes too much time. While most requests usually can be satisfied immediately, some can't. The reasons are varied:
You need to perform time-consuming calculations
Performing action actually takes time (for example container creation)
etc.
The solution to these problems is asynchronous REST. Asynchronous REST works by separating request and real response. Here's an example, let's consider the following simple async REST broker:
sample
w "Total No.Of Sticks:21"_!
s sticks=21
r "enter machine name: ",a
r "enter dev name: ",b
w "Display 1 to 21 sticks"_!
s i=""
f i=1:1:21{
w " "_i_" "
}
user(sticks)
w !_"User select 1 or 2 or 3 or 4 sticks:"_!
r "User enter sticks: ",us
if us>4 {
w "please select upto 4 Sticks"
r "User enter sticks: ",us
}
s cnt=sticks-us
s sticks=cnt
f i=1:1:sticks {
w " "_i_" "
}
s dev=1
s machine=0
d:sticks=0 lost(dev,machine)
d machine(.sticks,us)
q
machine(sticks,us)
In computer science, a programming language is said to have first-class functions if it treats functions as first-class citizens. This means the language supports passing functions as arguments to other functions, returning them as the values from other functions, and assigning them to variables or storing them in data structures. Some programming language theorists require support for anonymous functions (function literals) as well. In languages with first-class functions, the names of functions do not have any special status; they are treated like ordinary variables with a function type.
Caché will not change the cryptographic settings in an existing TLS configuration when you upgrade. This means that unless you've updated them yourself, you're still using the values from the very first version you started using SSL in.
The challenge of day 16 is about generating random data using a modified version of a dragon curve (you can find more info on fractal curves like Dragon here : https://en.wikipedia.org/wiki/Dragon_curve).