MomentJS: La solución a tus problemas de fecha

La biblioteca MomentJS ofrece herramientas realmente sólidas para gestionar el formato de nuestras fechas. Cuando programamos, la gestión de las fechas siempre son una parte importante de nuestro código a tener en cuenta, ya que estas cambian a lo largo del tiempo.

Esta biblioteca ya es utilizada por miles de software, aplicaciones y servicios alrededor del mundo y recientemente dejará de actualizarse. Hay alternativas. Pero, si como nosotros, la usáis profusamente. Seguirá funcionando durante mucho tiempo. ¿Por qué es tan utilizada? Porque nos proporciona una gran fiabilidad y libertad a la hora de especificar cómo queremos nuestras fechas.

Para empezar a utilizar esta librería en nuestro proyecto de node ejecutaremos:

npm install moment

Posteriormente, dependiendo de la sintaxis utilizada, importaremos la libreria :

//En JavaScript Vanilla
var moment = require('moment'); // require
moment().format(); 
//En ES6
import moment from 'moment';
moment().format();

Funciones básicas

moment()

Cuando queremos obtener la fecha de hoy new Date() y moment()son muy similares a la hora de utilizarse, la principal diferencia entre utilizar el objeto de la API de JavaScript y MomentJS es que Moment da soporte al traspaso de fechas internacionales.

Además, Moment encapsula toda la lógica del objeto «Date», simplificándola para un uso más sencillo. Esto nos permite obtener un código de calidad más limpio y eficiente con soporte a largo plazo.

//Uso
console.log(moment());
//Output
"2024-03-06T11:32:16.297Z"

Utilizar moment() como se ha mencionado anteriormente devolverá el objeto con sus funciones junto con un texto de la fecha actual en formato ISO8601, el cual equivale al formato YYYY-MM-DDTHH:mm:ssZ.

Opcionalmente, la función acepta parámetros de fecha o formato, devolviendo así el parámetro formateado correctamente. La función adicionalmente puede contener un booleano para exigir que tanto la fecha como el formato introducido sean estrictamente iguales.

.startOf() & .endOf()

Ambas funciones, cómo sus nombres indican, permiten extraer el inicio o final de una fecha respectivamente, pasándoles un parámetro de unidad de tiempo. Ya no es estrictamente necesario preocuparse de substraer o añadir días para encontrar un inicio o final de una fecha deseada.

Las unidades disponibles por parámetro son:

  • Año
  • Mes
  • Cuarto (primer día del año actual)
  • Semana (primer día siendo el domingo)
  • Semana en formato ISO (primer día siendo el lunes)
  • Día
  • Fecha (Similar al formato anterior)
  • Hora (Minutos, segundos y milisegundos en 0)
  • Minuto (Segundos y milisegundos a 0)
  • Segundo (Milisegundos a 0)

Ejemplos de uso:

//Primer día del mes
moment().startOf('months').format("DD");
//Último día del mes
moment().endOf('months').format("DD");

.format()

Ya hemos visto la función format() en ejemplos anteriores. Como podemos imaginar, esta función admite un parámetro de tipo texto, y al ser utilizada junto al objeto de moment nos devolverá formateada la fecha del objeto en el formato especificado.

Ejemplos de uso:

//Uso
console.log(moment("1234", "hmm").format("HH:mm"));
//Output
"12:34"
//Uso
console.log(moment('2012-10-14').format('DD-MM-YY'));
//Output
"14-10-12"

.subtract() & .add()

Es muy común que a la hora de trabajar con fechas tengamos la necesidad de substraer o sumar valores a dicho momento. Para ello moment()nos ofrece estas dos funciones que facilitan muchísimo ese hecho.

Veamos diversos ejemplos en práctica:

//Uso => Hoy 08/03/2024
console.log(moment().subtract(1,'days').format("DD/MM/YYYY"));
//Output
"07/03/2024"
//Uso
console.log(moment().add(3,'days').format("DD/MM/YYYY"));
//Output
"11/03/2024"
//Uso
console.log(moment().subtract(2,'months').format("DD/MM/YYYY"));
//Output
"08/01/2024"
//Uso
console.log(moment().add(2,'weeks').format("DD/MM/YYYY"));
//Output
"22/03/2024"

.isBefore() & .isAfter() & .isBetween()

Hay casos en los que queremos saber si un plazo ha pasado antes, después o está dentro de un rango de momentos concreto. Estas funciones son realmente versátiles, ya que además de permitirnos pasar por parámetro una fecha en formato texto, también permite el uso de objetos Date()moment(). Cuando utilicemos estos tres procesos, si la condición se cumple devolverá un booleano respectivamente.

Diversos ejemplos:

//Uso
let yesterday = moment().subtract(1,'days');
let today = moment();
console.log(today.isAfter(yesterday));
//Output
true
//Uso
let aYearAgo = moment().subtract(1,'years');
let today = moment();
console.log(aYearAgo.isBefore(today));
//Output
true
//Uso
console.log(moment('2012-10-20').isBetween('2010-10-19', '2010-10-25'));
//Output
false

.isLeapYear()

.isLeapYear()es un método que devuelve un condicional si el año de la fecha especificada es bisiesto.

//Uso
console.log(moment([2024]).isLeapYear());
//Output
true
//Uso
console.log(moment([2001]).isLeapYear());
false

En conclusión, Moment.js es una gran librería que simplifica la manera en la que tratamos las fechas, permitiéndonos integrar un código mucho más limpio y eficiente a la hora de controlar los datos de fecha en nuestras aplicaciones.


what if

Category : Noticias

¿Qué pasa si incremento las ventas un 20%? ¿Qué pasa si el nivel del agua embalsada aumenta un 15%? Son preguntas que a menudo nos realizamos cuando estamos visualizando datos. Con EDA ahora es tan fácil de calcular que no tardarás ni un minuto en saberlo.

Quieres comprobarlo por ti mismo? https://free.edalitics.com/es/#/public/65cc30187555049ca522c33e


Mi arquitectura de datos en 2024

Category : Noticias

En los últimos años el ámbito del análisis de datos ha evolucionado rápidamente y la arquitectura que hemos estado usando ha evolucionado bastante. Por eso quiero compartir la arquitectura de datos promedio que utilizamos en Jortilles.

Como siempre, cada caso es distinto y esta solución no sirve para todos. Pero si que es un buen punto de partida para una empresa / organización media. A partir de aquí se abre todo un abanico de posibilidades.

Partimos de la primera elección. On Premime o en el cloud? Es la primera pregunta que debemos responder porque de esta respuesta dependen muchas cosas.

On Premise

En el caso de que decidamos desplegar en nuestra infraestructura el dibujo se podría parecer mucho a esto:

La elección de Jortilles para la ingesta de datos es la combinación de Apache Ariflow y Apache Hop.

  • Apache Hop es la herramienta ETL muy potente y versátil. Y su enfoque hace que sea muy sencilla de utilizar y gestionar. Si no conoces Apache Hop puedes echarle un vistazo a su documentación o a nuestro Hola Mundo.
  • Apache Airflow es un Planificador / orquestador de procesos ETL magnifico. Apache hop es magnifico. Pero le falta la parte de planificación, gestión y orquestación. Esta funcionalidad de gestión nos lo ofrece Apache Airflow. Planificar cuando se ejecutarán los procesos ETL. Qué hacer en caso de que fallen. etc. Si no conoces Apache Airflow tenemos un Hola Mundo que quizás te interese. En organizaciones pequeñas que no necesitan de esta gestión avanzada de los procesos ETL gestionamos las planificaciones con una simple tarea programada.

En lo que se refiere a la base de datos. La elección es Vertica cómo base de datos analítica on premise. Vertica ofrece una vestión sin coste para bases de datos menores a un tera de datos. En caso de un usar Vertica, y dependiendo del contexto, usaríamos PostgreSQL. que es la base de datos relacional open source más avanzada.

La visualización de datos, en Jortilles se hace por defecto con EDA. La herramienta de visualización de datos que nos permite una mayor velocidad de desarrollo y resultados óptimos. Todos los usuarios que prueban EDA no quieren cambiar.

En el cloud

En el caso de que nos decidamos por una arquitectura cloud la arquitectura varía ligeramente. Jortilles cada vez ve esta opción con mejores ojos. Especialmente en organizaciones muy pequeñas por falta de recursos y organizaciones grandes por escalabilidad. La arquitectura cloud nos permite disfrutar del famoso pago por uso. Este planteamiento, aunque a primera vista nos puede parecer caro si lo contemplamos aisladamente. Cuando hacemos un análisis más profundo, el ahorro que supone en cuanto a administración y gestión de infraestructura es considerable por lo que no sale tan caro y en ocasiones incluso permite ahorrar costes.

En cuanto a la capa de aprovisionamiento de datos. Seguimos optando por la combinación de Airflow y Hop. En ese punto no hay cambios.

En lo que hace referencia a la base de datos. Llevamos algún tiempo jugando con Snowflake y esta tan bien hecha que es difícil no recomendarla cómo base de datos cloud. En cuanto a los costes. Recuerda que tienes que contar todo el gasto que te supone una base de datos. No es sólo la máquina, sino las horas de DBA, la administración de las máquinas, etc. Al final no resulta tan caro si lo sumas todo.

Finalmente. En cuanto a la visualización de datos. Edalitics es la versión cloud de EDA. Todo lo dicho para Snowflake aplica también para Edalitics. Además de estar «siempre a la última».


Nueva versión EDA 2.0

Category : Noticias

Jortilles se complace en anunciar la liberación de la nueva versión 2.0 de Enterprise Data Analytics. Ha sido poco más de un año de duro trabajo que nos ha permitido traer EDA a una nueva etapa.

Hemos cambiado de numeración porque hemos actualizado EDA a Angular 14. Además de muchas otras novedades.

Hemos lanzado Edalitics. La plataforma SaaS basada en EDA. ¿Quieres usar EDA y no quieres complicarte instalando y manteniendo la plataforma? Edalitics es tu solución. Hay opciones para todos los públicos. Desde gratis para pequeñas empresas y estudiantes hasta servidores dedicados para grandes empresas.

A continuación hacemos un resumen de las novedades más destacadas:

  • Quieres integrar EDA en tu portal? Ahora es más fácil que nunca con las opciones panelMode y hideWheel (Documentación)
  • Hemos habilitado la posibilidad de añadir una columna varias veces. Eligiendo el nombre al vuelo. ( haremos un post sobre esto )
  • Hemos realizado muchas mejoras en las visualizaciones.
  • Hemos hecho mejoras en las opciones de las tablas de datos.
  • Hemos añadido la opción de utilizar un pool de conexiones para conexiones MySql. Si conectas EDA a tu ERP no tienes que tener miedo de que un informe pesado te colapse tu base de datos.
  • Hemos añadido nuevos tipos de gráficos:
    • Gráfico de burbujas
    • Gráfico de pirámide para pirámides de población.
  • Hemos traducido EDA al polaco. Witaj Polsko!
  • Hemos añadido la posibilidad de crear nuevos datasources sin ser admin
  • Hemos corregido algún que otro bugs
  • Hemos cambiado el comportamiento de la seguridad respecto a los administradores. Ahora, los administradores, por defecto lo ven todo.
  • Hemos añadido seguridad dinámica
  • Hemos añadido la posibilidad de definir una tabla de literales para los ids (Haremos un post sobre esto)
  • Hemos mejorado los filtros y formatos de fechas
  • Hemos habilitado la posibilidad de incrustar imágenes desde url en los dashboards. Pudiendo hacer dashboards de control de aforo en tiempo real por ejemplo

Cómo veis, un montón de novedades interesantes que el próximo miércoles 8 de noviembre a las 16:00 iremos desgranando

Quieres probarla? Cómo siempre…

  • Échale un vistazo a la demo
  • Prueba el docker : docker run -p 80:80 jortilles/eda:latest
  • Descárgate el código y disfruta, está en Github
  • Date de alta en Edalitics.
  • Siempre puedes contactar con nosotros y te lo contaremos todo

Si tienes curiosidad. Haremos un webinar el próximo miércoles 8 de noviembre a las 16:00 CET. Regístrate aquí para asistir.


New EDA 2.0 version

Category : Noticias

Jortilles is pleased to announce the release of version 2.0 of Enterprise Data Analytics. It has been just over a year of hard work that has allowed us to bring EDA to a new stage.

We have changed the numbering because we have updated EDA to Angular 14. In addition to many other new features.

We have launched Edalitics. The EDA-based SaaS platform. Do you want to use EDA but you don’t want to install and maintain the platform? Edalitics is your solution. There are options for all audiences. From free for small businesses and students to dedicated servers for large companies.

Here is a summary of the most notable news:

  • Do you want to integrate EDA into your portal? It is now easier than ever to integrate it with the panelMode and hideWheel options (Documentation)
  • We have enabled the Possibility of adding a column multiple times. Choosing the name on the fly. (a post is coming about this)
  • We have made many improvements to the visualizations.
  • We have made improvements to the data table options.
  • We have added the option to use a connection pool for MySql connections. If you connect EDA to your ERP you don’t have to be afraid that a heavy report will collapse your database.
  • We have added new types of charts:
    • Bubble chart
    • Pyramid chart for population pyramids.
  • We have translated EDA into Polish. Witaj Polsko!
  • We have added the possibility of creating new datasources without being an admin
  • We have corrected some bugs
  • We have changed the security behavior regarding the administrators. Now, administrators, by default, see everything.
  • We have added dynamic security
  • We have added the possibility of defining a table of literals for the ids (a post is coming about this)
  • We have improved the filters and date formats
  • We have enabled the possibility of embedding images from URLs in the dashboards. So, we can have real time people counting dashboards. for instance.

As you can see, a lot of interesting news that we will reveal next Wednesday, November 8 at 4:00 p.m.

Do you want to try it? As always…

If you are curious. We will do a webinar next Wednesday, November 8 at 16:00 CET. Register here to attend


Porque tu vuelves: AEFr

Category : Noticias

La AEFr vuelve a confiar en Edalitics, el servicio cloud basado en EDA, para proporcionar a las entidades socias acceso a los datos en bruto de su estudio «ESTUDIO Realidad del socio y donante en España 2023».

Este hecho nos hace especial ilusión por dos motivos. Primero por colaborar con una entidad cómo la AEFr y segundo porque es la segunda vez que confían en nosotros para este cometido. Lo cual es indicativo de que Edalitics ha sido una buena elección.

¿Queréis saber más detalles de este proyecto? A continuación os dejamos el caso de éxito que hemos creado.


Salimos en TV3

Category : Noticias

Recientemente hemos aparecido en el espai empresa de TV3 con motivo del lanzamiento de edalitics. Nuestra plataforma cloud basada en EDA.

A continuación os dejo el video:

También tenemos una versión en español:

Si estais pensando en una plataforma analítica en el cloud accesible a cuanlquer usuario. No lo dudes: Prueba edalitics


BACK TO BASICS: GIT

PEQUEÑO CURSO DE GIT

Este pequeño repaso a algunos comandos comunes nos van a dar una pincelada para conocer el funcionamiento de Git y sus múltiples opciones.

A pesar de ser una herramienta que puede ser muy compleja, con conocer una serie de comandos que nos ayuden a movernos a través de nuestros proyectos, será suficiente para poder tener un mínimo control sobre el proyecto y sus ramas.

No es ni de lejos una guía exhaustiva, sino una pequeña guía para emprender unos primeros pasos y poder movernos por Git con seguridad.

1. Git config –global: esto hará que cualquier uso en el equipo utilice esta configuración

   user.name «nombre»

   user.email «email»

   Podemos hacer scripts con git config –global alias.nombre «comando»

«Read More»

Edalitics

Category : Noticias

Jortilles sigue avanzando en su objetivo de democratizar el acceso a la información y se complace en presentar Edalitics.

Edalitics es el servicio cloud que ofrece Jortilles basado en Enterprise Data Analytics (EDA). Edalitics permite disfrutar de las bondades de EDA sin complicarse con instalaciones, mantenimiento, actualizaciones ni nada. Sólo conecta tus fuentes de datos y disfruta.

Edalitcs dispone de tres planes de precio. Desde gratuito para estudiantes, periodistas y pequeñas empresas. Hasta PRO para grandes empresas con exigencias profesionales.

¿Todavía no conoces EDA? EDA es la aplicación analítica especialmente diseñada para democratizar el acceso a la información. En tan sólo cinco minutos cualquier usuario se convierte experto.

¿Quieres probarlo? ¿A qué estás esperando?


Nuevo caso de éxito de EDA

Category : Noticias

Tenemos un nuevo caso de éxito de EDA. Y este nos hace una especial ilusión por diversos motivos:

  • Servimos información en tiempo prácticamente real.
  • Integramos imágenes de cámaras de seguridad.
  • Unimos fuerzas con Herta Security. Líder mundial en el desarrollo de reconocimiento facial y visión por computador.

Una vez más, EDA ha demostrado la potencia y robustez de su propuesta y cómo ha sido capaz de adaptarse a los nuevos desafíos. Os invito a leer la nota con todos los detalles.