miércoles, 12 de febrero de 2020

Programación en el cine

El cine que es como abreviamos Cinematografía comenzó en 1895 por los hermanos Lumiere en París, Francia, la primer película proyectada fue de ellos él 28 de diciembre de 1895 ese día se proyecto su película:, La sortie des ouvriers des usines Lumière à Lyon Monplaisir (Salida de los obreros de la fábrica Lumière en Lyon Monplaisir)



De eso ya han pasado 125 Años, el valor de la taquilla mundial de cine en 2018 fué de 41,1 millones de Dolares dato tomado de ProducciónAudioVisual.Com , los países productores de cine más grandes son USA con Hollywood  e India con Bollywood.

¿Pero que es una película?
Una película es una serie de fotografías enlazadas que nos cuentan una historia basada en un guión, cuenta con actores y puede o no estar enlazada con audio. Pero no es tan sencillo incluso hay una formula matemática para la secuencia fotografica:



Para una película se utilizan 24 fotografías por segundo para que el efecto de secuencia no sea percibido por el ojo humano. 

¿Como se hace una película?
se debe elegir la locación que es el lugar donde se grabara la película, se prepara un guión que es la historia o secuencia de la película, hay un encargado de dirigir la película (el director), una serie de actores aprenden el guión y realizan la ejecución del guión, después hay una edición para seleccionar las mejores tomas realizadas y se enlaza el audio con las imágenes. Bueno eso de manera general o como yo lo veo, pero si quieren más detalle pueden ver la liga de CosasdelCine

En días pasados vimos la entrega de los Oscares 2020 que es el máximo premio en el mundo cinematográfico donde se premiaron 24 categorías y algunas de las categorías que incluyen mayor cantidad de software son:  

  • Película de animación
  • Mejor película corta animada
  • Mejores efectos especiales

Hace algunos años compre con un compañero/amigo del trabajo un equipo profesional de Pinnacle para convertir películas VHS o Beta a DVD (las nuevas generaciones no tienen ni idea de que hablo) estos eran formatos de películas que podíamos reproducir en nuestras casas antes del DVD o Blu-ray. Bueno era muy interesante este proceso de conversión que utilizaba grandes cantidades de espacio en disco duro y tarda mucho en grabarse el DVD. 
Con el software de Pinnacle podíamos:
  • Editar el audio
  • Editar el vídeo
  • Tomar fotografías de ciertas partes de la película
  • Adicionar texto 
  • Quitar partes de la película
  • Bueno lo que nos diera la imaginación
Después de todo lo anterior me dirán y eso que tiene que ver con este Blog, pues lo que quiero platicarles es que ahora para crear las películas utilizamos software, software que alguien tuvo que programar. 

Un software muy utilizado para hacer películas animadas es Blender.
La primer película que utilizo técnicas de programación fué Tron en 1982, otra película fue The Last Starfighter  en 1984. Para ver más historia pueden entrar al a la liga de Wipedia 

El primer personaje verdaderamente creado en imágenes generadas por computadora fue creado por Pixar para la película Young Sherlock Holmes en 1985 (sin contar el sencillo personaje poliédrico de Tron que contestaba en binario: sí y no

La primer película animada y realizada por computadora al 100% y aparte en ganar un Oscar fue Toys Story en 1995 de los Studios Pixar ahora parte de Disney ellos utilizan el software RenderMan 


Este software es gratuito, solo debes registrarte, es compatible con Linux, Windows y MacOS


Este software esta programado en Open Shading Language (OSL) el cual fue desarrllado por Sony, utilizan computadoras especiales como Pixar Image Computer.
OSL es similar a C por los ejemplos que busque y miren





Si quieren indagar mas sobre OSL:



Para que este foro cumpla su objetivo de tener un ejemplo, me registre en la página de de Pixar Renderman e instale la versión trial la cual sirve para realizar proyectos a modo educativo y no pueden venderse. El primer paso es darse de alta en el foro


Segundo paso bajar el instalador y comenzar la instalación ya saben Next, Next
El inicio de la instalación les pedirá su usuario y contraseña del foro de Pixar

Algunos vídeos de instalación que encontré

Bueno pero antes para poder utilizarlo tienen que instalar un software para instalar la librería, yo instale Maya


Espero les haya parecido interesante y se animen aprender a programar o aprender otro lenguaje de programación. 


jueves, 6 de febrero de 2020

Conociendo Latex

Hola, bienvenidos a un nuevo post de programacionparatodos.com, esta semana les quiero platicar acerca de un Software Latex, para que no se confundan como este Meme



Latex es un sistema para  escribir textos tipográficos, como son formulas en textos científicos es free software. Latex esta basado en TEX que es una serie de creado por Leslie Lamport en 1984, les sirve si van a publicar algún libro que maneje formulas o explique conceptos de matemáticas. La guía oficial es https://www.latex-project.org/help/documentation/usrguide.pdf. Si no es un lenguaje de programación porque lo veremos en este blog, haaa es porque utiliza comandos y conceptos de programación


La liga para descargarlo es:
https://www.latex-project.org/get/

Ejemplos:


  • Imaginemos que somos científicos y queremos expresar en nuestro libro una matriz bidimensional



Imagen de  https://tex.stackexchange.com/questions/164664/how-to-create-an-array-with-both-vertical-and-horizontal-braces-around-the-eleme


  • Escribir integrales





Imagen de  http://minisconlatex.blogspot.com/2012/04/integrales.html, muy completo por cierto

Para aprender más les comparto más ligas:

miércoles, 29 de enero de 2020

Catálogos cascada en Delphi

Hola Bienvenidos otra semana a nuestro blog de programación, esta semana para darle continuidad al primer post del año acerca de comparar propuestas salariales, les quiero platicar acerca de los diferentes puestos de trabajo en el área de sistemas y como siempre haciendo un ejemplo de esto. 

Al hacer este post pensé en las siguientes preguntas: 
  • ¿Como sub-dividirías los puestos de Trabajo en TI?
Desde mi punto de vista las dividiría en : Infraestructura, Comunicaciones, Helpdesk, Software, Seguridad, Inteligencia Artificial (incluyendo BI,Datamining) y cada área se puede subdividir más 


  • ¿Qué área es la que tiene más demanda de Staff?
Creo que Software y Seguridad
  • ¿Que áreas crees que tengan más desarrollo?
Fullstack, Inteligencia Artificial, Seguridad de la Información 
  • ¿Les recomendarías a las personas aprender a programar?
Les diría claro que si, vale la pena estudiarlo, vi un articulo de OCC de Javier Castillo titulado
Las 10 carreras y áreas mejor pagadas para el 2020 en México  y entre ellas esta sistemas,software y programación con sueldos promedio de $30,000.00 MXN



Ojala si algún consultor de RH o reclutador lee este post nos ayude con sus comentarios de estas preguntas.

Ahora entrando a materia en el ejemplo de este Post:

Objetivo del Programa


Cuando nos piden ingresar una dirección, normalmente hacemos uso de una lista y otros campos se habilitan en dependencia del primer valor esto son son los Combobox o Listas desplegable en cascada, esto es para cuando queremos llenar un formulario y queremos que el usuario solo seleccione un dato de las lista que ya tenemos, esto para evitar que los datos ingresados puedan estar mal escritos o tengan espacios.

Para hacer este ejemplo, vamos a programar en Delphi y vamos utilizar una base de datos para poder leer la información.

Necesitamos 3 tablas

  1. Area
  2. Subarea
  3. Puestos
Vamos a crear las tablas en Microsoft Access

CREATE TABLE "Area" (
"Area_id" INTEGER,
"Area_name" TEXT,
PRIMARY KEY("Area_id")
);

CREATE TABLE "Subarea" (
"Subarea_id" INTEGER,
"Area_id" INTEGER,
"Subarea_name" TEXT,
PRIMARY KEY("Subarea_id")
);
CREATE TABLE "Puesto" (
"Puesto_id" INTEGER,
"Subarea_id" INTEGER,
"Puestoname" LONGTEXT,
"Puestodesc" TEXT

);

Diagrama Entidad Relación

Datos en Base de datos

Tabla de Puestos


Después vamos a tener nuestro programa, les comparto las pantallas de diseño




El código


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBCtrls, DB, ADODB, StdCtrls;

type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    ComboBox1: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    ADOQuery1: TADOQuery;
    DataSource2: TDataSource;
    DataSource1: TDataSource;
    ADOQuery2: TADOQuery;
    ComboBox2: TComboBox;
    Label3: TLabel;
    Label4: TLabel;
    ComboBox3: TComboBox;
    ADOQuery3: TADOQuery;
    DataSource3: TDataSource;
    Label5: TLabel;
    Label6: TLabel;
    ADOQuery4: TADOQuery;
    DataSource4: TDataSource;
    Label7: TLabel;
    Label8: TLabel;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure ComboBox3Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  id_area:String;
  id_subarea:String;
  id_puesto: String;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
   ADOQuery1.Active := False;
   ADOQuery1.Active := True;
   While not ADOQuery1.Eof do
   begin
      Combobox1.Items.Add(ADOQuery1.Fields[1].Text);
      ADOQuery1.Next;
   end;
      ADOQuery1.Active := False;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
   id_area :=Combobox1.Text;
  // showmessage('Hola ' + id_area);
   ADOQuery2.Active := False;
   ADOQuery2.SQL.Text := 'Select subarea_name FROM subarea INNER JOIN area ON area.id = subarea.area_id WHERE area_name ='+ Char(39) + id_area + Char(39);
   ADOQuery2.Active := True;
   Combobox2.Items.Clear;
   While not ADOQuery2.Eof do
   begin
      Combobox2.Items.Add(ADOQuery2.Fields[0].Text);
      ADOQuery2.Next;
   end;
      ADOQuery2.Active := False;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
begin
   id_subarea :=Combobox2.Text;
 //  showmessage('Holasub ' + id_subarea);
   ADOQuery3.Active := False;
   ADOQuery3.SQL.Text := 'Select puesto_name FROM puesto INNER JOIN subarea ON subarea.id = puesto.subarea_id WHERE subarea_name ='+ Char(39) + id_subarea + Char(39);
   ADOQuery3.Active := True;
   Combobox3.Items.Clear;
   While not ADOQuery3.Eof do
   begin
      Combobox3.Items.Add(ADOQuery3.Fields[0].Text);
      ADOQuery3.Next;
   end;
      ADOQuery3.Active := False;
end;


procedure TForm1.ComboBox3Change(Sender: TObject);
begin
   id_puesto :=Combobox3.Text;
//   showmessage('Hola puesto ' + id_puesto);
   ADOQuery4.Active := False;
   ADOQuery4.SQL.Text := 'Select Puesto_descripcion FROM puesto INNER JOIN subarea ON subarea.id = puesto.subarea_id WHERE subarea_name ='+ Char(39) + id_subarea + Char(39) + ' AND puesto_name =' + Char(39) + id_puesto + Char(39);
   ADOQuery4.Active := True;
 //  showmessage(ADOQuery4.SQL.Text);
   Memo1.Clear;
   Memo1.Lines.add(ADOQuery4.Fields[0].Value);

end;

end.

Explicación del programa


  • Para este programa utilice la conección a la base de datos con el objeto  TADOConnection para configurar la base de datos de Access
  • El objeto TADOQuery para poder configurar un query a la base de datos, fue un objeto por cada combox y el Memo. Cada query se configura en la propiedad ADOQuery2.SQL.Text 

  • Utilice el objeto TDataSource para ligar cada Query 


Otra opción pudo haber sido utilizar TDBMemo, TDBLookupComboBox

La ejecución del programa




Espero les sea de utilidad todo lo plasmado en este post, no olviden dejar sus comentarios y compartir nuestro blog, saludos!!!

miércoles, 22 de enero de 2020

Programación Full Stack con MEAN.

Buena semana, en el post de hoy tenemos a la primera invitada del año la MC Fabiola Rodriguez, ella tiene 16 años de experiencia en el área de Sistemas: 7 años en Helpdesk y 9 años de experiencia Desarrollo de Software principalmente con la plataforma de Microsoft, tiene una Maestría en tecnologías WEB y Dispositivos móviles, además de contar con varios diplomados y cursos de . He tenido la oportunidad de trabajar con ella  en la misma empresa  y ver varios de sus desarrollos los cuales cuentan con mucha calidad, estabilidad,buen Front End y son intuitivos, además de ofrecer un muy buena atención a sus usuarios. 

Ella nos va a platicar acerca de un nueva tecnología llamada MEAN  


Programación Full Stack con MEAN



Este tema para mí que egrese de la carrera de sistemas en el año 2004 fue totalmente y me pareció un reto, ahora casi 15 años cuando tuve oportunidad de conocerlo en la maestría en desarrollo web que curse en el 2019.
Considero necesario explicar primero que es un programador “Full Stack”, si desglosamos el término “Full” es completo y “Stack” se refiere a tecnología, por lo que diríamos que es aquel que maneja un conjunto completo de tecnologías.
Si tú sabes HTML, JavaScript, CSS y PHP eres un desarrollador Full Stack en esas tecnologías de código abierto, lo mismo si dominas c#, Javascript, Bootstrap y CSS.
En ambos ejemplos dominas tanto el back end de una aplicación como el front end.
MEAN también es otro conjunto de tecnologías que te permitirían dominar ambos entornos. Ya que se refiere al acrónimo de MONGO, EXPRESS, ANGUNAR Y NODE JS.

Este conjunto de tecnologías está tomando mucha relevancia últimamente ya que permite realizar aplicaciones en tiempo real, y compañías como Netflix, Wal-Mart o la Nasa las utilizan.
Yo considero que la ventaja que tiene MEAN con respecto a otras tecnologías Full Stack es que en sus cuatro plataformas utiliza un solo lenguaje, “Javascript”. Incluso en MongoDB, ya que utiliza JSON que también es en esencia un estándar de texto plano para intercambio de información, basado en “Javascript”.
Esto es una ventaja contra un desarrollo en el que tenías que saber PHP y Javascript, Oracle o Sintaxis de SQL o bien C# y todas las anteriores.
De hecho, ya utilizar JSON para el intercambio de información hace que la velocidad de respuesta mejore de manera notable, basta con analizar una comparativa de cómo se intercambia la información en ambas tecnologías. Algunos analices sugieren que el intercambio de información de XML respecto a JSON puede reducirse hasta en un 50% en ancho de banda del canal.  
A continuación, te presento la misma información, en JSON vs XML, basta con apreciar que el número de líneas es mayor.

Ahora vamos a ver a que se refiere cada una de las tecnologías.

NodeJS


Es un lenguaje de backend, pero del lado de servidor, basado en Javascript que tiene acceso a los sistemas de archivo del equipo, la información del sistema operativo y los procesos del equipo, esto lo convierte en un sistema muy versátil especialmente para los sistemas que requieren monitoreo en tiempo real.
NodeJS en conjunto con Express como servidor, representan una gran ventaja respecto a una aplicación montada en IIS o Apache, ya que generan un solo hilo de comunicación que se mantiene a través de una sola sesión a diferencia de los dos anteriores que generan multisesiones. Y logra esto a través de hacer todas sus peticiones de manera asíncrona, por lo que al iniciarte en esta programación manejaras conceptos muy actuales como callbacks y las promesas.
Esto es tal vez lo que puede representar un reto o un paradigma más difícil para los programadores que venimos de otro tipo de tecnologías.
Tal vez esto puede sonar como una desventaja, pero se compensa cuando te das cuenta que el requerimiento de hardware para aplicaciones de gran concurrencia va a ser mínimo, es por eso que empresas como Netflix con alta concurrencia, han optado por este tipo de tecnologías.
NodeJS no necesariamente va casado con una base de datos no relacional como MongoDB, también puede utilizarse con SQL Server o MySQL y se pueden crear servicios de REST de una manera bastante amigable.
La popularidad de este lenguaje ha ido en incremento y a través de sus paquetes NPM, algo similar a los paquetes NUGET de Visual Studio, se tiene acceso a más de 470 mil librerías.
Si conoces Javascript, ya conoces la mayor parte de NodeJS.


Express


Es un módulo adicional que nos permite poder ejecutar un servidor web con NodeJS.



Angular



Es un framework de desarrollo para el lado de Frontend, tal vez una de sus ventajas contra su similares como React y VujeJS, es que en algún momento y por una restructuración del lenguaje, se dividió en dos hilos de desarrollo, el original “Angular JS” y el “Angular 2”, este último actualmente se encuentra en su versión “Angular 8”.  Lo cual requiere un esfuerzo adicional para adaptarse a cambios tan vertiginosos.
Sin embargo, su ventaja principal es que su entorno de desarrollo es muy parecido a .Net o Java Enterprise, pero del lado del cliente.
“Angular 8”, ya se programa con TypeScript, un framework tan estable que la labor de desarrollo se vuelve más intuitiva.
Yo personalmente me quedo con la versión Angular 7, que ya se encuentra en su versión más estable.

MongoDB

Es una base de datos multiplataforma, open source y NO SQL. Cuando me refiero a NO SQL no me estoy refiriendo a que va “en contra” o “totalmente contrario a SQL”.
Yo diría que más bien Mongo DB es una base, no solo SQL. El hecho de que su estructura sea más flexible ya que la información está basada en estructuras de JSON y no en un sistema de tablas, le permite procesar grandes cantidades de datos que se generan demasiado rápido y que van cambiando constantemente.
Pero eso no impide que sea utilizado en aplicaciones convencionales. Su base de programación es C++.
Para iniciar en la programación MEAN, te sugiero que empieces instalando Mongo DB, ya que lo primero que deberíamos de hacer sería crear servicios REST que nos permitan consumir datos.
A continuación, explicara cómo instalar Mongo DB en un sistema de Windows, aunque los pasos serían los mismos si lo haces en sistema operativo de Mac o Linux.
Instalación de Mongo DB
1.-Ingresemos a la página de Mongo DB y ve a la opción de Mongo DB Server que es la opción gratuita. Y busca el paquete que corresponde a tu sistema operativo.
*Al ingresar se te va a sugerir que te suscribas a su newsletter.

2.-Una vez ejecutado el instalador seguir dando clic en el botón de siguiente.


Después de aceptar los términos de la licencia, se nos preguntara si queremos una instalación completa o personalizada, debemos elegir la completa.


También nos preguntara si queremos instalar MongoDB como un servicio es decir iniciarlo junto con el arranque de nuestro sistema operativo.
Yo recomendó optar por la versión del servicio. Continuar en siguiente hasta que la instalación sea completada.
Después de esto se puede continuar con la instalación hasta que el sistema nos indica que ha quedado instalado.
3.-Para comprobar que la instalación se llevó a cabo puedes abrir una consola de Windows, “como administrador.  
Y debemos dirigirnos a la ruta donde se ha instalado MongoDB.


En mi caso se encuentra instalado en:
C:\Program Files\MongoDB\Server\3.6\bin
Y voy a esa ruta en mi pantalla de consola. Para verificar la versión solo tengo que escribir “mongod –versión”.



4.-Ahora debemos configurar la ruta donde MongoDB genera los archivos de la base de datos, esta ruta es independiente a la instalación del programa.
C:\data\db.
5.-Para ejecutar MongoDB debemos regresar a la consola y escribir el comando “mongo”, en la pantalla de comandos debe de aparecer la leyenda.


 De esta manera ya tendríamos el primer componente para la programación MEAN. La configuración puede parecer un poco complicada al principio, pero ten en cuenta que este proceso solo se realizaría una vez por cada equipo y las instrucciones no varían mucho de un sistema operativo a otro.
Sin embargo, el objetivo de esta publicación era darte una introducción de esta tecnología con sus ventajas y desventajas.

El tema es extenso, pero si alguna vez manejaste Javascript o c#, la programación te será muy transparente.

En YouTube puedes encontrar infinidad de cursos sobre cómo crear tu primera API en MEAN y como consumirla.
Yo te recomiendo el canal de “Fazt”, que tiene una lista de reproducción llamada “MEAN-APLIACION CRUD ANGULAR”.


Aunque por una inversión que no va más allá de los 15 USD e incluso menos cuando existen rebajas, puedes ingresar a los siguientes cursos de UDEMY que son bastante útiles por la destreza para explicar y los conocimientos solidos de los instructores, que contestan en cuestión de horas sobre alguna duda que vayas teniendo sobre el curso.
Aprende a programar con javascript desde cero y crea APIs RESTful con NodeJS, Typescript, Angular, Express y MongoDB

Aprende a programar desde cero y desarrollo web con JavaScript, jQuery, JSON, TypeScript, Angular, Node, MEAN, +30 horas
Teniendo en cuanta que esta sería la única inversión que tendrías que hacer ya que la licencia de MongoDB, NodeJS, Express JS y Angular son gratuitas.
Espero con esto haberte dado un panorama de lo que la programación MEAN significa y crearte al menos la curiosidad de darte una oportunidad y empezar poco a poco o de lleno a romper tus paradigmas e intentar hacer algún desarrollo con estas tecnologías.

jueves, 16 de enero de 2020

Minería de datos ejemplo de Spotify

En estos días pasados he visto publicaciones de los artistas mostrando cuantas canciones, cuantas horas, cuantos usuarios y en cuantos países los han escuchado, yo creo que ustedes también han visto imágenes como esta:


Cuando yo las veo que detrás hay un equipo de Tecnologías de la Información y Mercadotecnia que están haciendo Minería de datos que es el tema del post de hoy. 
La minería de datos es el nombre que se le da al proceso de:

  • Definir que datos se quieren conocer y almacenar 
  • Consolidar información en una base de datos
  • Después generar los querys o consultas para extraer la información 
  • Presentar información en un reporte o template para toma de decisiones o estrategias de negocio 

Sigamos con el ejemplo de Spotify, ellos tienen los datos de sus usuarios como son:correo, edad, género, país, nuestras listas de reproducción


  • Pensemos en una base de datos y les dejo que me imagino yo en un diagrama entidad relación :





Este diagrama se leería así: Un artista tiene muchas canciones, una canción puede estar en mas de una playlist, una playlist puede ser de 1 o más usuarios. La historia de las canciones y de cada cuando se toca me lo imagino en una tabla de historia.
Aclaro este es un ejemplo de como pienso que puede ser, pero en realidad debe ser más complejo.

Por cierto el diagrama lo dibuje en la página https://www.lucidchart.com/ , ahí pueden hacer diagramas online, les puede servir para diagramas UML, de Red, etc.


  • Luego la consulta de la información para saber cuantas veces se escucho una canción de un artista en 2019


Select count(*), artist.name
from History_play
Inner join artist on artist.artist_id = History_play.artist_id
WHERE YEAR(history_play.date) = 2019
Group by id_artist


  • Después me imagino a un diseñador WEB armando el template o plantilla para solo cambiar las imágenes y datos para mostrar la información y solo colocar la imagen del artista y los datos que le corresponden. Claro después de un gran trabajo con CSS, HTML, Javascript o algún otro lenguaje FRON-END.
  • Luego un ingeniero de software tomando la información del Query e insertándola en los campos del template correspondiente, con agluna herramienta BACK-END como PHP, ASP, Java.

La minería de datos o datamaning es buscar patrones, es conocer y entender a los usuarios, conocerlos, saber sus gustos por ejemplo en Spotify :
  • Mejorar su experiencia con la App
  • Para que los artistas sigan publicando sus canciones con ellos
  • Para que los usuarios que escuchan la música, busque al artista más popular
  • Saber que género es el mas escuchado por cada rango de edad
  • Proponerte nuevas playlist
  • Para poder hacer SpotifyAdwards, lo cuales se llevaran a cabo el 5 de marzo 2020 en CDMX (lugar donde más personas escuchan Spotify del mundo)


Este ejemplo es muy bueno para explicar el proceso de minería de datos, pero es mucho más complejo y seguramente Spotify tiene una gran infraestructura y tecnología para todo el proceso de streaming y datamaning.
Hay técnicas para extracción de la información, se necesita definir que información se quiere conocer, como transformar la información para presentarla, hay software dedicado a la minería de datos.

También eso sirve para el proceso de CRM (Customer Relation Management), que es manera general el contacto con los clientes, entenderlos, conocerlos para poder brindarles un mejor servicio que es lo que hace, cada empresa tiene definido el alcance a este servicio, en mi primer trabajo formal trabaje en una empresa dedicada a CRM donde en base a la explotación de la información se diseñaban campañas de publicidad que eran enviadas por correo electrónico o SMS, también se trabajaba con puntos de lealtad utilizando monederos electrónicos. 

Algunos software dedicados a Minería de datos son:
  1. Rapid Miner. Availability: Open source. ...
  2. Orange. Availability: Open source. ...
  3. Weka. Availability: Free software. ...
  4. KNIME. Availability: Open Source. ...
  5. Sisense. Availability: Licensed. ...
  6. Apache Mahout. ...
  7. Oracle Data Mining. ...
  8. DataMelt.
Tomado de https://www.softwaretestinghelp.com/data-mining-tools/ yo adicionaría a Tableu, SalesForce y PowerBI 

Les comparto algunos libros o artículos para que puedan conocer más


También les comparto unas vacantes que encontré para que vean las opciones de empleo que tienen si se capacitan en minería de datos