Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede cambiar la configuración u obtener más información aquí

View site in english Ir a la página de inicio Contacta conmigo

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.

  • 02/09/2016

    Muchos de los conjuntos de datos con los que solemos trabajar se presentan en forma de series temporales. Una serie temporal se puede ver como la evolución de un sistema dinámico, caracterizado por una serie de variables y parámetros. Dependiendo del tipo de dinámica que presente el sistema, las series pueden ser estacionarias, periódicas, cuasiperiódicas, caóticas o aleatorias. En esta serie de artículos, me centraré en la caracterización de la dinámica caótica, que es la que presentan los sistemas complejos, utilizando métodos gráficos.

    [Leer Mas...]

    Vista de secciones relacionadas con el análisis de datosAnálisis gráfico de sistemas complejos
  • 19/08/2016

    El Tableaux es una herramienta de cálculo lógico que permite comprobar la validez de una conclusión a partir de una serie de premisas. En el artículo anterior he explicado brevemente los fundamentos del cálculo con Tableaux para lógica de predicados, en este artículo voy a extender el programa a la lógica de primer orden, que tiene mucha más capacidad expresiva que la lógica de predicados, aunque esto también hace mucho más difícil el cálculo automático.

    [Leer Mas...]

    Desarrollo de softwareProgramación en lenguaje csharpProgramación lógica en C#
  • 31/07/2016

    El Tableaux es una herramienta de cálculo lógico que resulta muy útil para demostrar una conclusión a partir de una serie de premisas, encontrar contraejemplos o modelos de un conjunto de fórmulas lógicas o demostrar que una fórmula es una tautología, es decir, que es verdadera en todos los casos posibles. Se pueden utilizar en inteligencia artificial como base para implementar demostradores automáticos de teoremas.

    [Leer Mas...]

    Desarrollo de softwareProgramación en lenguaje csharpProgramación lógica en C#
  • 23/07/2016

    Existe un problema muy común en programación lineal que consiste en hallar los valores que hacen máxima o mínima una función lineal, dadas una serie de restricciones para dichos valores. Por ejemplo, puede tratarse de hallar una función de coste mínimo o de máxima producción. Para ello, existe un algoritmo desarrollado en 1947 por George Dantzig, llamado Simplex, que permite realizar dichos cálculos de una forma simple y efectiva.

    [Leer Mas...]

    Desarrollo de softwareProgramación en lenguaje csharpMatemáticas
  • 16/07/2016

    Las placas Arduino, con una gran cantidad de salidas y entradas analógicas y digitales, nos permiten controlar dispositivos electrónicos desde un ordenador a través de un interfaz USB con una programación muy sencilla utilizando un lenguaje similar al C. Existen gran cantidad de módulos prefabricados para controlar motores, relés y todo tipo de sensores, pero, si te gusta la electrónica como a mí, también puedes diseñar y conectar tus propios circuitos analógicos o digitales.

    [Leer Mas...]

    Secciones relacionadas con hardware y periféricos
  • 09/07/2016

    En algunas ocasiones, resulta necesario imprimir un código de barras en algún documento o etiqueta. Existen numerosos formatos y codificaciones, en una o dos dimensiones, dependiendo de la cantidad de información que deba ser leída por el terminal. En este artículo voy a mostrar tres de los formatos más comunes para códigos de una dimensión, así como proporcionar código en csharp para codificarlos.

    [Leer Mas...]

    Desarrollo de softwareProgramación en lenguaje csharpTrucos y consejos
  • 03/07/2016

    Axis es una marca sueca, uno de los líderes mundiales en el mercado de cámaras IP para video vigilancia, que cuenta con un extenso catálogo de modelos de cámara que permiten cubrir prácticamente cualquier necesidad. Todos sus productos cuentan con un protocolo de acceso común vía HTTP, el protocolo VAPIX, basado en comandos CGI, lo que hace especialmente interesante conocerlo.

    [Leer Mas...]

    Secciones relacionadas con hardware y periféricosCámaras IP
  • 26/06/2016

    Cuando se diseña una base de datos, se pueden cometer una serie de errores u olvidos que, posteriormente, nos pueden causar bastantes quebraderos de cabeza, o se puede dejar de utilizar algún recurso útil simplemente por desconocimiento. En este artículo os daré una serie de consejos que os pueden ayudar a diseñar y gestionar mejor vuestros datos y las aplicaciones que los manejan, sobre todo si sois principiantes.

    [Leer Mas...]

    Vista de secciones relacionadas con bases de datosDiseño y acceso a los datosTrucos y consejos
  • 25/06/2016

    Cuando se seleccionan varias filas en un control DataGridView y se pulsa Ctrl+C para copiar su contenido, el comportamiento por defecto copia los valores de las celdas en formato de texto plano separado por tabuladores. Con esto solo ya se pueden pegar los datos en una hoja Excel, pero podemos implementar este comportamiento de una forma más sofisticada de manera que apliquemos un formato personalizado a las columnas en función del tipo de los datos de cada celda.

    [Leer Mas...]

    Desarrollo de softwareProgramación en lenguaje csharpTrucos y consejos
  • 18/06/2016

    En el anterior artículo de la serie comencé a mostrar cómo implementar un analizador de expresiones aritméticas o parser a partir de las reglas de la gramática en notación BNF, con las clases encargadas de extraer los números, variables y constantes. En este artículo voy a terminar la serie con la clase encargada de analizar la regla principal, que analiza las expresiones en sí. También mostraré una pequeña aplicación de ejemplo que dibuja la gráfica correspondiente a la expresión a partir del objeto generado por el compilador.

    [Leer Mas...]

    Desarrollo de softwareProgramación en lenguaje csharpMatemáticas
  • 17/06/2016

    En el artículo anterior de esta serie hice un repaso de las principales cuestiones acerca del diseño de la gramática para construir un analizador o parser para expresiones aritméticas. En este artículo voy a mostrar la primera parte de su implementación a partir de las reglas BNF de la gramática, convirtiendo la expresión de entrada, en forma de cadena de texto, en una serie de objetos que podremos utilizar para evaluarla, pudiendo dar diferentes valores a las constantes y variables que la componen.

    [Leer Mas...]

    Desarrollo de softwareProgramación en lenguaje csharpMatemáticas
  • 14/06/2016

    Cuando estamos trabajando con funciones matemáticas, resulta muy conveniente disponer de un parser, o analizador de expresiones, que nos permita escribir e interpretar diferentes versiones de las ecuaciones que deben ser procesadas por el programa, en lugar de tener que modificar y recompilar el código para adaptarlo a dichos cambios cada vez. En esta serie de artículos voy a mostrar cómo construir un sencillo pero potente analizador, que puede ser extendido fácilmente para tratar con expresiones más sofisticadas, empezando por definir en este artículo la teoría básica necesaria para encarar con éxito este tipo de desarrollos.

    [Leer Mas...]

    Desarrollo de softwareProgramación en lenguaje csharpMatemáticas
  • 10/06/2016

    Para terminar esta serie sobre el control PropertyGrid vamos a ver cómo utilizar los diferentes conversores de tipo derivados de la clase TypeConverter para personalizar la forma en que se muestran o editan las propiedades. El .NET framework proporciona conversores para bastantes tipos de propiedades, pero, además, podemos implementar fácilmente nuestros propios conversores, derivando una clase de TypeConverter o de algún conversor especializado y sobrecargando unas pocas funciones.

    [Leer Mas...]

    Desarrollo de softwareProgramación en lenguaje csharp
  • 04/06/2016

    En el anterior artículo de la serie vimos cómo utilizar las funcionalidades básicas del control PropertyGrid para editar las propiedades de un determinado objeto o colección de objetos. En este artículo os voy a mostrar los eventos más importantes de este control, así como la implementación de editores personalizados que permiten la edición de propiedades de tipos para los que no existe un editor por defecto, como pueden ser las clases desarrolladas por nosotros mismos en nuestro programa.

    [Leer Mas...]

    Desarrollo de softwareProgramación en lenguaje csharp
  • 28/05/2016

    Uno de los controles del GUI (interfaz gráfico de usuario) más versátiles que nos ofrece la plataforma .NET es el control PropertyGrid. Se trata de un componente mediante el cual el usuario puede editar todas las propiedades de un determinado objeto que el desarrollador haya configurado para ello, permitiendo estructurarlas en categorías y ordenarlas por orden alfabético. Además, proporciona muchas opciones para personalizar tanto la presentación como la edición de las propiedades y muestra al usuario un texto de ayuda sobre cada una de ellas. En esta serie vamos a ver un tutorial completo sobre el uso de este control y sus características principales, empezando por este artículo sobre su uso básico.

    [Leer Mas...]

    Desarrollo de softwareProgramación en lenguaje csharp
  • 14/05/2016

    Muchas de las cámaras IP de red que podemos encontrar en el mercado utilizan el protocolo NetWave, basado en comandos CGI, para obtener las imágenes de vídeo a través de un servidor http interno. En este artículo vamos a ver cómo construir una sencilla aplicación para controlar este tipo de cámaras, que se utilizan normalmente para labores de vigilancia y pueden realizar movimientos de barrido además de proporcionar imágenes de vídeo.

    [Leer Mas...]

    Secciones relacionadas con hardware y periféricosCámaras IP
  • 05/05/2016

    En el artículo anterior de la serie hice un resumen de los elementos básicos de DirectShow: filtros, grafos de filtros y pines para conectar los elementos entre sí, y como podemos identificarlos utilizando la herramienta del SDK GraphEdit. En este artículo voy a mostrar cómo construir una “sencilla” aplicación de captura y reproducción de vídeo utilizando los interfaces que proporciona DirectShow, un subconjunto del modelo de objetos distribuidos de la plataforma COM de Microsoft.

    [Leer Mas...]

    Secciones relacionadas con hardware y periféricosArtículos relacionados con la programación con Microsoft DirectShow
  • 30/04/2016

    Actualmente existen infinidad de dispositivos de captura de vídeo asequibles en el mercado, cualquiera puede hacerse con una cámara digital o una webcam a un precio razonable. Todos estos dispositivos se pueden controlar fácilmente desde un programa desarrollado por nosotros mismos utilizando DirectShow de Microsoft. DirectShow es un conjunto de interfaces que proporcionan un API genérico con el que se puede capturar y reproducir audio y vídeo sin importar la marca o modelo de cámara que utilicemos. También permite la grabación y reproducción de archivos en cualquier formato.

    [Leer Mas...]

    Secciones relacionadas con hardware y periféricosArtículos relacionados con la programación con Microsoft DirectShow
  • 24/04/2016

    En muchas aplicaciones es necesario generar números aleatorios. Para esto, la plataforma .NET proporciona la clase Random, que permite generar valores pseudoaleatorios uniformemente distribuidos, lo que significa que todos los números tienen la misma probabilidad de aparecer en el resultado. Pero en algunos casos necesitamos generar valores aleatorios que sigan otros tipos diferentes de distribución. En este artículo vamos a ver cómo generar números aleatorios que sigan una distribución normal, con un sistema que podéis extender a cualquier tipo de distribución.

    [Leer Mas...]

    Desarrollo de softwareProgramación en lenguaje csharpMatemáticas
  • 09/04/2016

    Usualmente, cuando realizamos un análisis de datos, consideramos que proceden de una distribución normal. De hecho, realizamos toda una batería de pruebas para verificar que se cumple este supuesto y, en caso de no ser así, tratamos de modificar los datos de manera que se cumpla. Esto es así porque la mayoría de las técnicas de análisis solo funcionan correctamente sobre datos normalmente distribuidos. Pero existen una serie de sistemas que presentan una dinámica compleja en los cuales no es válido aplicar esta hipótesis y en los que el ajuste de los datos solo conduce a distorsiones que invalidan los resultados.

    [Leer Mas...]

    Vista de secciones relacionadas con el análisis de datos
1 2 3 4