ASDF install usages and overview

ASDF (Another System Definition Facility) is a version manager for multiple programming languages, including Ruby, Node.js, Python, and others. It allows developers to manage multiple versions of these languages and their associated dependencies on a single machine, enabling them to switch between different versions of the same language for different projects.

ASDF is useful in configuring the development environment of a project, as it ensures that the correct versions of dependencies are installed and used. This can help to prevent compatibility issues that might arise when different versions of dependencies are used across different projects.

In addition to managing language versions, ASDF can also be used to manage package dependencies. This means that developers can use ASDF to replace many install scripts, as it can be used to install and manage packages for different languages.

Overall, ASDF is a useful tool for managing the development environment of a project, and it can help to simplify the process of managing dependencies and ensuring compatibility across different projects.

quickstart guide on how to use ASDF:

That's it! ASDF makes it easy to manage multiple versions of different languages and their dependencies, and it can help to prevent compatibility issues when working on different projects.












Sure, here's a sorted list of the technologies you mentioned and their dependencies:

Infrastructure Layer

AdoptOpenJDK (dependency for ProM)

Networking Layer


Security Layer


Logging Layer


Data Storage Layer


Data Visualization Layer


Process Mining Layer

ProM (dependency for PM4JS)


ProM depends on AdoptOpenJDK to run.
Filebeat and Logstash depend on Elasticsearch to store and index the logs.
Kibana depends on Elasticsearch to display and navigate the logs.
PM4JS depends on ProM to run certain plugins and algorithms.

       [Suricata] -----[eve.json]----> [Filebeat] ---[Elasticsearch] --- [Kibana]
         ^                                   |
         |                                   |
         |                                   v
    [Haproxy] ------[nodejs]---> [Winston] [Elasticsearch] --- [Kibana]
         |                                   |
         |                                   v
         +----[AdoptOpenJDK] -- [ProM] -- [PM4JS]

Sure, here is a list of each technology in the stack, along with its primary language and dependencies, organized by layer starting from the Linux kernel:

Kernel Layer:

Linux kernel: Written in C, depends on hardware drivers and system libraries.

System Layer:

AdoptOpenJDK: Written in Java, depends on system libraries.
Suricata: Written in C, depends on libpcap and other system libraries.
Filebeat: Written in Go, depends on system libraries.
Logstash: Written in Ruby, depends on system libraries and plugins.
Elasticsearch: Written in Java, depends on Lucene and system libraries.
Kibana: Written in JavaScript (Node.js), depends on system libraries.

Application Layer:

Haproxy: Written in C, depends on system libraries.
Winston: Written in JavaScript (Node.js), depends on system libraries and transports.
PM4JS: Written in Python and JavaScript (Node.js), depends on various libraries and tools.

Note that many of these technologies have additional dependencies beyond what is listed here

in supervized learning there is a response variable or dependent variables and we went to predict the response in terms of these predictor or indapendant variables - clasification and regression

un unsupervized learning there are no response or dependant variables. -ie clustering/ patern discovery

entropy(dt, S) {


out of sample S
a are in s.size

for uniqueActivity(cat)
    e = -S.sum(S.)

entropy(a,b) =>
    if(a<b) swap(a, b) ;
    e = a/b ;