apuntes graphql

lenguaje de consulta, se presenta como una alternativa a rest y esta pensada en la optmizacion de la comunicacion entre el servidor y el cliente.

Traslada la responsabilidad de los datos que se entregan hacia el cliente. Este decide que datos pedir. Logrando evitar solicitudes innecesarias al servidor.

Rest
Es solo una convención: Es una manera de comunicarse entre el servidor y cliente, cada uno tiene sus reglas.
GraphQL
Lenguaje tipado y validable: Le damos una forma de lo que recibe y lo que devolvemos. Ademas que le agrega seguridad

Rest
Servidor expone recursos: Los clientes se tienen que adecuarse a como están expuestos
GraphQL
El cliente define que recibe: Haciendo una consulta, de la estructura que define como respuesta

Rest
Hace overfetching: Envía más información que necesita
GraphQL
Envía lo necesario: Se tiene control total de las respuestas que se esperan del servidor

Rest
Multiples request por vista: Muy costoso en performance, básicamente es una aplicación en blanco que aún no ha cargado datos o tiene custom endpoints
GraphQL
Hace solo un request por vista: Enviados en un solo row

Rest
Documentación ajena al desarrollo: No hay un estándar por lo que depende mucho del desarrollador para mantenerla.
GraphQL
Documentado por definición.
Documentado por definición: Al ser un lenguaje tipado se define un schema que ya esta documentado por definiciòn

Eventos en Mysql

Con motivo de fin de año, hoy me preguntaba como poder ejecutar algunas sentencias de manera automática específicamente posterior al cambio de año.

Leyendo la documentación me doy cuenta que la solución a la problematica estaba en usar eventos.

SHOW VARIABLES LIKE ‘event%’ // muestra variable realcionado con palabra event

SET GLOBAL event_scheduler = ON; // enciende el proceso de agendador de evento.

CREATE EVENT cambiodefolio
ON SCHEDULE EVERY 1 year STARTS ‘2018-12-27 12:26:01’
ON COMPLETION NOT PRESERVE ENABLE
DO query a ejecutar;

drop event cambiodefolio

SHOW PROCESSLIST

Clasificación automática

Un problema de clasificación busca encontrar un sistema que permita identificar automáticamente para cada objeto la clase a la cual pertenece.

  • Un algoritmo usado para enfrentar estos problemas es de los vecinos cercanos (K-NN). El algoritmo usa la distancia para calcular la cercania de un objeto a una clase dada.
  • Árbol de clasificacion:  Algoritmo que toma un atributo , usa este atributo como un nodo raíz, divide el set de entrenamiento de acuerdo al atributo seleccionado y para cada rama resultante este proceso de construcción se realiza recursivamente.
    • El proceso recursivo tiene dos criterios de detención.
    • Entropia y Ganancia se ocupan para seleccionar las mejores variables.