Este es un blog técnico dedicado al desarrollo de software y análisis de datos, en el podrás encontrar artículos relacionados con estos temas y software de libre distribución para descargar, desarrollado por mi.
-
17/03/2017
Con este artículo termino la serie dedicada a la solución ThiefWatcher, un sistema casero de video vigilancia que se dispara cuando entran intrusos en tu domicilio, te avisa al móvil y te permite obtener en el momento fotografías que puedes utilizar para ayudar a la policía a identificar rápidamente a los ladrones y aumentar las probabilidades de recuperar rápidamente tus pertenencias robadas. En este último artículo voy a explicar las App que se utilizan como clientes remotos del sistema.
[Leer Mas...] -
10/03/2017
En este segundo artículo de la serie sobre el sistema casero de video vigilancia ThiefWatcher, voy a explicar los diferentes protocolos que utiliza la aplicación para comunicarse con sus diferentes componentes, que pueden ser sustituidos por otros nuevos diferentes permitiendo un gran número de combinaciones. Existe un protocolo para comunicarse con la cámara, otro para disparar el sistema, otro más para avisar al usuario de forma remota y, por último, un protocolo para el intercambio de fotografías y mensajes para gestionar el servidor desde los equipos cliente.
[Leer Mas...] -
03/03/2017
En esta serie de artículos voy a hacer un poco de bricolaje para construir un sistema de video vigilancia y alarma contra robos casero, utilizando materiales relativamente baratos y un programa que nos avisará al móvil en caso de detectar intrusos y nos permitirá obtener fotografías de los mismos para poder avisar inmediatamente a la policía y proporcionárselas. La rápida identificación de los ladrones puede ser determinante para que recuperemos todas nuestras pertenencias rápidamente.
[Leer Mas...] -
03/02/2017
WCF (Windows Communication Foundation) es un marco de trabajo para crear aplicaciones distribuidas cuyos componentes se comunican entre sí a través de servicios, utilizando una amplia gama de protocolos de red. En este artículo voy a comentar los fundamentos de la creación y configuración de uno de estos servicios a través de un conector de datos para la aplicación DBTextFinder, un programa para buscar textos en una base de datos que puede extenderse para conectar con cualquier sistema de gestión de datos.
[Leer Mas...] -
27/01/2017
WInRQA es una aplicación dedicada a los mapas de recurrencia, una herramienta que se utiliza en el análisis de recurrencia de series temporales complejas. En este artículo voy a presentar una nueva herramienta que he añadido al programa. Hasta ahora, las medidas de cuantificación de recurrencia (RQM) se obtenían solamente a partir de una porción estática de la serie original. Con la nueva herramienta, podremos obtener una serie de medidas desplazando una ventana a lo largo de toda la serie original y calculando las medidas correspondientes a cada una de dichas ventanas.
[Leer Mas...] -
20/01/2017
Los sistemas de funciones iteradas (IFS por sus siglas en inglés) son una herramienta matemática sencilla para construir conjuntos fractales por medio de un conjunto de aplicaciones afines contractivas. Este método fue desarrollado por M.F. Barnsley en 1985. En concreto, resulta de utilidad para obtener un fractal autosemejante a base de aplicar de forma iterativa el sistema de funciones a un conjunto cualquiera, hasta llegar a una buena aproximación del fractal que constituye el atractor del sistema.
[Leer Mas...] -
13/01/2017
En este artículo voy a presentar un control DataGridView personalizado que permite utilizar fórmulas compuestas por expresiones aritméticas y referencias a las diferentes celdas del control. Además de la librería de clases con el control, he preparado una pequeña aplicación para mostrar cómo utilizar las diferentes características que ofrece.
[Leer Mas...] -
06/01/2017
BNFUP es una librería de clases que implementa un compilador de objetos a partir de la definición de un lenguaje mediante reglas BNF. También proporciona servicios de edición de reglas. En este artículo continúo mostrando como utilizar el editor para compilar y probar nuestros propios objetos mediante el lenguaje que hayamos definido para ello. También mostraré tres ejemplos de implementación.
[Leer Mas...] -
05/01/2017
En esta serie de artículos voy a mostrar una librería de clases que implementa un compilador que utiliza un lenguaje cualquiera definido mediante reglas BNF y que genera como resultado objetos de una librería de clases escrita por el usuario, los cuales deben implementar un sencillo interfaz para que el compilador pueda construirlos e inicializarlos a partir del código fuente.
[Leer Mas...] -
16/12/2016
Todos los principales servidores de base de datos permiten la creación de objetos ejecutables, como funciones o procedimientos almacenados, utilizando algún tipo de lenguaje de extensión del SQL, como PLSQL en Oracle o T-SQL en SQL Server, de manera que podemos crear aplicaciones de acceso y manipulación de datos más sofisticadas. En este artículo voy a mostrar cómo podemos acceder al código fuente de estos objetos desde cualquier programa utilizando las vistas del catálogo de tres de los RDBMS más populares, MySQL, Oracle y SQL Server.
[Leer Mas...] -
09/12/2016
En este artículo voy a continuar con la integración de objetos CLR en una base de datos SQL Server hablando sobre la implementación de disparadores y la creación de tipos de datos definidos por el usuario. Se trata de una manera sencilla de extender la funcionalidad de nuestras aplicaciones de base de datos con toda la potencia que nos proporciona el CLR de la plataforma .NET.
[Leer Mas...] -
02/12/2016
En este artículo voy a mostrar cómo podemos extender fácilmente el SQL de nuestros servidores SQL Server con funciones y tipos de datos del CLR (Common Language Runtime) de la plataforma .NET. Para ello, voy a implementar una función con valor de retorno escalar, otra función con valor de tabla, un par de funciones de agregación y un procedimiento almacenado.
[Leer Mas...] -
26/11/2016
WInRQA es una aplicación dedicada a los mapas de recurrencia, una herramienta que se utiliza en el análisis de recurrencia de series temporales complejas. En este artículo voy a presentar la primera extensión de la aplicación, que consiste principalmente en una serie de ventanas de herramientas que nos permitirán realizar estimaciones sobre cuál puede ser el retardo más apropiado para tratar de reconstruir el espacio de fases del atractor del sistema y seleccionar la dimensión de inmersión correcta.
[Leer Mas...] -
18/11/2016
En este artículo voy a mostrar la manera en que, mediante un mismo proceso muy sencillo y totalmente determinista, podemos pasar desde un sistema estacionario a otro completamente aleatorio, pasando por dinámicas periódicas y caóticas. Para ello, voy a generar varias series temporales con estas características utilizando el programa R y varios paquetes que nos pueden ayudar en el análisis de las mismas.
[Leer Mas...] -
11/11/2016
Un mapa de recurrencia es una herramienta gráfica utilizada en el estudio de series temporales complejas. Junto con el mapa se calculan también una serie de medidas que nos permiten realizar un análisis de cuantificación de la recurrencia o RQA. En este artículo voy a presentar la aplicación WinRQA, una herramienta para trabajar con mapas de recurrencia y medidas RQA en un entorno Windows.
[Leer Mas...] -
01/11/2016
Un motor paso a paso es un tipo de motor que, en lugar de girar de forma continua en una dirección, permite realizar giros muy pequeños y parar y cambiar de dirección muy rápidamente, sin problemas de inercia. Esto hace muy apropiados a estos motores para montajes en los que se requieran realizar movimientos de precisión. En este artículo voy a mostrar cómo construir un sencillo controlador para manejar uno de estos motores a través de la placa Arduino, junto con un programa de ejemplo escrito en CSharp que permite mover el motor desde el ordenador dónde conectemos la placa.
[Leer Mas...] -
28/10/2016
El análisis de correspondencias es una técnica estadística que nos permite estudiar relaciones entre datos categóricos mediante el escalado óptimo y proyección ortogonal en dos o tres dimensiones de tablas de contingencia. Su implementación es relativamente sencilla, y en este artículo voy a mostrar un ejemplo utilizando el lenguaje csharp. Además, el programa de ejemplo permite dibujar gráficas sencillas con los datos resultantes.
[Leer Mas...] -
21/10/2016
La base de datos del programa PISA contiene, además de las calificaciones de los alumnos, una gran cantidad de datos demográficos, socioeconómicos y culturales sobre ellos, recogidos mediante una serie de cuestionarios y que permiten poner en contexto los resultados académicos y realizar estudios con gran número de variables. La mayoría de estos datos son categóricos, lo que hace que el análisis de correspondencias sea una herramienta especialmente apropiada para trabajar con ellos. En este artículo mostraré como realizar de forma sencilla dicho análisis utilizando el paquete ca del programa R.
[Leer Mas...] -
12/10/2016
Para terminar esta serie sobre series temporales complejas y su caracterización usando herramientas gráficas voy a mostraros una herramienta llamada mapa de recurrencia, que permite obtener una serie de medidas utilizadas en el análisis de recurrencia, o RQA por sus siglas en inglés. La recurrencia es una propiedad característica de los sistemas dinámicos deterministas, y consiste en que dos o más estados del sistema se encuentran arbitrariamente cerca al cabo de cierto tiempo.
[Leer Mas...] -
08/10/2016
En este nuevo artículo de la serie sobre series temporales con dinámica compleja, voy a mostrar un procedimiento para reconstruir aproximadamente la información de un sistema dinámico de dos o más variables a partir de una única serie, es decir, de un conjunto de datos en una sola dimensión. Lo que haremos será obtener a partir de esta única serie una nueva serie para cada una de las dimensiones con las que pretendemos extender el modelo.
[Leer Mas...]