<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Software Técnico Libre</title><description>Sumario</description><link>http://software-tecnico-libre.es</link><image><url>http://software-tecnico-libre.es/Images/rss-hdr.jpg</url><title>Software Técnico Libre</title><link>http://software-tecnico-libre.es</link></image><lastBuildDate>Tue, 01 Mar 2022 09:51:51 GMT</lastBuildDate><item><title>Rendimiento CPU vs. GPU / Open CL</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/mandelbrot-gpu-open-cl--cpu</link><description>Todas las aplicaciones de tratamiento masivo de datos se pueden beneficiar de la capacidad de proceso cada vez mayor que tienen los modernos equipos informáticos que ya están al alcance del bolsillo de cualquiera. En este artículo voy a presentar una comparativa básica de rendimiento entre varias plataformas &lt;strong&gt;CPU&lt;/strong&gt; / &lt;strong&gt;GPU&lt;/strong&gt; utilizando como base el archiconocido &lt;strong&gt;conjunto de Mandelbrot&lt;/strong&gt; y su asombrosa representación gráfica.</description><category>CSHARP</category><pubDate>Fri, 25 Feb 2022 00:00:00 GMT</pubDate></item><item><title>Robot sparring de entrenamiento III</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/robot-sparring-octopussy-3</link><description>Este es el último artículo de la serie dedicada a la construcción del robot sparring de entrenamiento &lt;b&gt;Octopussy&lt;/b&gt; para defensa personal y artes marciales. Aquí voy a explicar el uso del software de control que acompaña al aparato y que permite diseñar una gama de rutinas de entrenamiento prácticamente ilimitada, dentro de las posibilidades del robot.</description><category>ELECTRÓNICA</category><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Robot sparring de entrenamiento II</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/tutorial-montaje-robot-sparring-2</link><description>En este segundo artículo sobre el robot sparring de entrenamiento &lt;b&gt;Octopussy&lt;/b&gt; para defensa personal y artes marciales, voy a explicar cómo construir la parte electrónica del invento. En realidad, el trabajo consiste en poco más que conectar unos cuantos cables, aunque sería conveniente tener a mano también un soldador de estaño para rematar mejor el trabajo.</description><category>ELECTRÓNICA</category><pubDate>Wed, 27 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Robot sparring de entrenamiento I</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/robot-sparring-octopussy-1</link><description>En esta serie de artículos voy a mostrar cómo construir un robot de entrenamiento para defensa personal y artes marciales. He bautizado el invento con el nombre &lt;b&gt;Octopussy&lt;/b&gt;, ya que permite instalar numerosos brazos y piernas para simular diferentes tipos de golpes y patadas dirigidos a todas las partes del cuerpo. Se controla mediante un ordenador, una placa &lt;strong&gt;Arduino&lt;/strong&gt; y un programa. También proporciono el código fuente del programa para el que quiera hacer modificaciones.</description><category>ELECTRÓNICA</category><pubDate>Mon, 25 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Gestor de base de datos de partidas de ajedrez VI</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/chessposdb-manual-de-usuario-6</link><description>Con este artículo termino la serie dedicada al gestor de base de datos de partidas de ajedrez &lt;b&gt;ChessPosDB&lt;/b&gt;. En este post voy a explicar cómo instalar y configurar el servidor de base de datos con el que trabajará el programa, que puede ser tanto &lt;strong&gt;Oracle&lt;/strong&gt;, como &lt;strong&gt;MySQL&lt;/strong&gt; o &lt;strong&gt;SQL Server&lt;/strong&gt;. Sea cual sea el servidor que elijáis, lo podéis instalar tanto en el mismo ordenador en el que instaléis el programa como en otro ordenador más potente al que podáis acceder por vuestra red local.</description><category>AJEDREZ</category><pubDate>Thu, 31 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Gestor de base de datos de partidas de ajedrez V</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/chessposdb-manual-de-usuario-5</link><description>Este es el quinto de una serie de artículos sobre el programa &lt;b&gt;ChessPosDB&lt;/b&gt;, que permite almacenar una gran cantidad de partidas de ajedrez en diferentes motores de base de datos profesionales y realizar búsquedas de partidas con una amplia variedad de opciones. En el presente artículo mostraré como realizar consultas en la base de datos con los filtros explicados en los artículos anteriores. También veremos las opciones de edición de partidas, que permiten añadirles comentarios y nuevas etiquetas.</description><category>AJEDREZ</category><pubDate>Mon, 28 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Gestor de base de datos de partidas de ajedrez IV</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/manual-de-usuario-chessposdb-4</link><description>Esta es una serie de artículos dedicados al programa &lt;b&gt;ChessPosDB&lt;/b&gt;, un gestor de base de datos de partidas de ajedrez con un motor de búsqueda muy potente. En el presente artículo voy a terminar de explicar la construcción de filtros de búsqueda mostrando los filtros de partida, que pueden estar compuestos de varios filtros de movimiento o posición que ya hemos visto en entradas anteriores.</description><category>AJEDREZ</category><pubDate>Thu, 24 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Gestor de base de datos de partidas de ajedrez III</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/manual-de-usuario-chessposdb-3</link><description>Continuamos con la serie de artículos dedicada al programa gestor de base de datos &lt;b&gt;ChessPosDB&lt;/b&gt;. Aquí os dejo también un enlace al primer artículo de esta serie, por si queréis empezar a leer desde el principio. En este tercer artículo voy a continuar comentando el resto de filtros de movimiento y posición que se pueden aplicar para encontrar partidas en la base de datos. Como recordaréis del anterior artículo, estos filtros se pueden combinar de múltiples maneras para construir prácticamente cualquier consulta que se nos pueda ocurrir.</description><category>AJEDREZ</category><pubDate>Mon, 21 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Gestor de base de datos de partidas de ajedrez II</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/chessposdb-manual-usuario-2</link><description>En esta serie de artículos voy a comentar un gestor de bases de datos de partidas de ajedrez, &lt;strong&gt;ChesPosDb&lt;/strong&gt;. En el primer artículo de esta serie expliqué cómo cargar partidas en la base de datos utilizando archivos en formato PGN, que pueden descargarse desde multitud de sitios de Internet. En el presente artículo y los siguientes voy a introducir los diferentes tipos de filtro que pueden construirse para buscar las partidas en la base de datos.</description><category>AJEDREZ</category><pubDate>Thu, 17 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Gestor de base de datos de partidas de ajedrez I</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/chessposdb-manual-de-usuario-1</link><description>En esta serie de artículos voy a comentar un gestor de bases de datos de partidas de ajedrez, &lt;strong&gt;ChesPosDb&lt;/strong&gt;. No se trata de un programa que juegue al ajedrez, solo almacena partidas, pero permite realizar consultas con gran cantidad de opciones, buscar partidas en las que se den una serie de jugadas, ya sea una a continuación de otra o bien a varios movimientos de distancia, e incluso buscar posiciones definidas de manera parcial, pudiéndose encontrar las piezas en cualquier parte del tablero.</description><category>AJEDREZ</category><pubDate>Sat, 12 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Series temporales, RQA y redes neuronales II</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/rqa-dnn-series-temporales-ii</link><description>En este segundo artículo de la serie sobre la utilización combinada del análisis de cuantificación de recurrencia (&lt;strong&gt;RQA&lt;/strong&gt;) y las &lt;strong&gt;redes neuronales&lt;/strong&gt; para trabajar con &lt;strong&gt;series temporales&lt;/strong&gt; complejas, vamos a examinar algunas ideas sobre posibles tratamientos que se les pueden aplicar a los datos y a la selección de parámetros. Trabajaremos usando señales electrocardiográficas, según lo comentado en el anterior artículo.</description><category>R</category><pubDate>Thu, 18 Jul 2019 00:00:00 GMT</pubDate></item><item><title>Series temporales, RQA y redes neuronales I</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/rqa-dnn-series-tiempo-1</link><description>En otros artículos de este mismo blog ya he hablado de &lt;strong&gt;series temporales&lt;/strong&gt; complejas, análisis de cuantificación de recurrencia (&lt;strong&gt;RQA&lt;/strong&gt;) y &lt;strong&gt;redes neuronales&lt;/strong&gt;. En esta serie de artículos voy a comentar algunas cuestiones a tener en cuenta al combinar el uso de estas dos herramientas para identificar patrones en series complejas, como por ejemplo detectar anomalías en electrocardiogramas o electroencefalogramas.</description><category>R,COMPLEJIDAD</category><pubDate>Tue, 11 Jun 2019 00:00:00 GMT</pubDate></item><item><title>Ficheros EDF de señales fisiológicas</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/archivos-con-formato-edf</link><description>Cuándo pretendemos aprender a trabajar con &lt;strong&gt;series temporales&lt;/strong&gt;, resulta muy útil contar con buenos conjuntos de datos, y si son datos reales, mucho mejor. Resulta complicado conseguir series largas o que presenten patrones interesantes y bien localizados e identificados con las que podamos realizar prácticas. Una fuente excelente de &lt;strong&gt;series temporales&lt;/strong&gt; complejas es nuestro propio organismo, y todo lo que podemos aprender trabajando con ellas es extrapolable a cualquier otro contexto.</description><category>R</category><pubDate>Thu, 28 Mar 2019 00:00:00 GMT</pubDate></item><item><title>Redes neuronales y algoritmos evolutivos III</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/redes-neuronales-ag-3</link><description>Con este artículo finalizo la serie dedicada a la aplicación de &lt;strong&gt;algoritmos genéticos&lt;/strong&gt; al diseño de &lt;strong&gt;redes neuronales&lt;/strong&gt;. Explicaré el código más relevante del programa de ejemplo que acompaña a estos artículos, principalmente las clases dedicadas al tratamiento de los genes y el proceso de selección. Podéis encontrar más información en los anteriores artículos de la serie.</description><category>COMPLEJIDAD</category><pubDate>Mon, 18 Mar 2019 00:00:00 GMT</pubDate></item><item><title>Redes neuronales y algoritmos evolutivos II</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/redes-neuronales-alg-geneticos-2</link><description>En este segundo artículo sobre la aplicación de los &lt;strong&gt;algoritmos evolutivos&lt;/strong&gt; a la optimización del diseño de &lt;strong&gt;redes neuronales&lt;/strong&gt;, voy a proporcionar una pequeña aplicación de ejemplo que permite construir y entrenar redes, además de utilizar este tipo de algoritmos para buscar la mejor configuración para un determinado conjunto de datos. La aplicación permite generar datos artificiales de prueba, y también proporciono el código fuente para poder modificarla a voluntad.</description><category>COMPLEJIDAD</category><pubDate>Thu, 28 Feb 2019 00:00:00 GMT</pubDate></item><item><title>Redes neuronales y algoritmos evolutivos I</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/redes-neuronales-y-algoritmos-genéticos-1</link><description>Encontrar la topología más adecuada para la &lt;strong&gt;red neuronal&lt;/strong&gt; que pretendemos aplicar a un determinado problema puede resultar un trabajo tedioso de prueba y error, además de acabar produciendo una red poco optimizada. Para automatizar este proceso podemos recurrir a los &lt;strong&gt;algoritmos evolutivos&lt;/strong&gt;, inspirados en la selección natural de los organismos vivos, que nos pueden facilitar enormemente el trabajo.</description><category>COMPLEJIDAD</category><pubDate>Fri, 22 Feb 2019 00:00:00 GMT</pubDate></item><item><title>Algoritmo de retro propagación</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/algoritmo-de-retro-propagacion</link><description>Uno de los algoritmos más populares para el entrenamiento de &lt;strong&gt;redes neuronales&lt;/strong&gt; artificiales multicapa es el algoritmo de propagación de errores hacia atrás, o algoritmo de retro propagación. En este artículo voy a tratar de explicar sus fundamentos, mediante una implementación simplificada de una red neuronal que permite realizar pruebas con diferentes configuraciones de la red.</description><category>COMPLEJIDAD</category><pubDate>Sun, 02 Dec 2018 00:00:00 GMT</pubDate></item><item><title>Reconocimiento de posturas con Kinect V</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/reconocimiento-posturas-kinect5</link><description>Con este artículo se cierra la serie sobre el reconocimiento de posturas utilizando el sensor &lt;strong&gt;Kinect&lt;/strong&gt; de Microsoft. Para terminar, simplemente mostraré la implementación de un formulario básico que utiliza las librerías de clases comentadas en los artículos anteriores.</description><category>VÍDEO</category><pubDate>Mon, 23 Jul 2018 00:00:00 GMT</pubDate></item><item><title>Reconocimiento de posturas con Kinect IV</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/kinect-posturas-4</link><description>Continuamos con la serie sobre reconocimiento de posturas con el sensor &lt;strong&gt;Kinect&lt;/strong&gt; de Microsoft. En esta ocasión voy a comentar las clases encargadas de normalizar la posición del cuerpo de la forma comentada en el primer artículo, de manera que obtengamos una serie de datos que constituyen una versión simplificada del esqueleto más apropiada para su análisis con técnicas de reconocimiento de patrones.</description><category>VÍDEO</category><pubDate>Mon, 04 Jun 2018 00:00:00 GMT</pubDate></item><item><title>Reconocimiento de posturas con Kinect III</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/kinect--posturas-3</link><description>En el artículo anterior de la serie mostré las estructuras, enumeraciones y clases que utiliza la aplicación para ser independiente de  la versión del sensor y el SDK de &lt;strong&gt;Kinect&lt;/strong&gt;. En este tercer artículo voy a mostrar una posible implementación de una clase que se ocupa de leer y convertir los esqueletos usando la versión 2.0 del SDK, para el sensor  de &lt;b&gt;Xbox One&lt;/b&gt;.</description><category>VÍDEO</category><pubDate>Sun, 13 May 2018 00:00:00 GMT</pubDate></item><item><title>Reconocimiento de posturas con Kinect II</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/kinect-posturas-2</link><description>En este segundo artículo de la serie sobre reconocimiento de posturas usando el sensor &lt;strong&gt;Kinect&lt;/strong&gt; de Microsoft voy a mostrar estructuras y clases genéricas usadas para aislar la aplicación de las diferentes versiones de SDK existentes. La versión del SDK que debemos utilizar depende del modelo de sensor que estemos utilizando. En el código de ejemplo yo he utilizado la versión 2.0, para el sensor de la &lt;b&gt;Xbox One&lt;/b&gt;.</description><category>VÍDEO</category><pubDate>Sat, 05 May 2018 00:00:00 GMT</pubDate></item><item><title>Reconocimiento de posturas con Kinect I</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/kinect-posturas-1</link><description>Una de las posibilidades más interesantes que nos ofrece el sensor &lt;strong&gt;Kinect&lt;/strong&gt; de Microsoft es la detección de cuerpos humanos, que nos permite desarrollar aplicaciones basadas en las distintas posturas que adopta el usuario o que son manejadas a distancia utilizando las posiciones de las manos. Para ello, proporciona una serie de puntos que representan las diferentes articulaciones del cuerpo.</description><category>VÍDEO</category><pubDate>Sun, 22 Apr 2018 00:00:00 GMT</pubDate></item><item><title>Vigilancia casera con Kinect</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/vigilancia-con-kinect</link><description>En artículos anteriores presenté un sistema casero de videovigilancia, la aplicación &lt;b&gt;ThiefWatcher&lt;/b&gt;. Se trata de una aplicación extensible que trabaja combinando varios protocolos, como cámaras, disparadores, canales de comunicación y sistemas de almacenamiento. En este artículo mostraré como implementar algunos de estos protocolos usando el sensor &lt;strong&gt;Kinect&lt;/strong&gt; de Microsoft.</description><category>VÍDEO</category><pubDate>Sun, 11 Mar 2018 00:00:00 GMT</pubDate></item><item><title>Captura de imagen básica con Kinect</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/kinect-captura-de-imagenes</link><description>El sensor &lt;strong&gt;Kinect&lt;/strong&gt; de Microsoft es un dispositivo muy potente que proporciona servicios de captura de imagen, medición de distancias y reconocimiento de posturas corporales y de expresiones faciales, algo que lo hace apropiado para una infinidad de aplicaciones. En este artículo introductorio mostraré como usarlo para capturar diferentes tipos de imagen.</description><category>VÍDEO</category><pubDate>Sun, 18 Feb 2018 00:00:00 GMT</pubDate></item><item><title>Resolver un Sudoku como un problema de optimización</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/resolver-sudokus</link><description>Resolver cualquier Sudoku es un problema que puede parecer complicado si se utilizan métodos de fuerza bruta, probando todas y cada una de las combinaciones posibles. Pero, con el planteamiento adecuado, puede resolverse cualquiera de estos problemas en unos pocos milisegundos. En este artículo voy a mostrar una forma de conseguirlo mediante un correcto planteamiento.</description><category>CSHARP</category><pubDate>Sun, 10 Dec 2017 00:00:00 GMT</pubDate></item><item><title>Multitarea V, programación asíncrona con async y await</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/async-await</link><description>Para finalizar esta serie sobre la programación de aplicaciones &lt;strong&gt;multitarea&lt;/strong&gt;, voy a mostrar el uso de un sencillo mecanismo que permite implementar métodos asíncronos que permiten ceder sus tiempos de espera para la ejecución de otras tareas paralelas o eventos disparados por controles del interfaz de usuario.</description><category>CSHARP</category><pubDate>Sat, 02 Dec 2017 00:00:00 GMT</pubDate></item><item><title>Multitarea IV, interacción con Windows UI</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/interaccion-interfaz-usuario-windows</link><description>Hasta ahora he mostrado ejemplos de &lt;strong&gt;multitarea&lt;/strong&gt; que dejaban la aplicación bloqueada hasta que terminaban. Esto no resulta muy útil en la práctica. Lo normal es que el usuario pueda seguir interactuando con la aplicación mientras se ejecutan las tareas en el fondo, y que estas puedan interactuar a su vez con el interfaz de usuario.</description><category>CSHARP</category><pubDate>Sat, 18 Nov 2017 00:00:00 GMT</pubDate></item><item><title>Multitarea III, acceso concurrente</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/mutitarea3-acceso-concurrente</link><description>En las aplicaciones &lt;strong&gt;multitarea&lt;/strong&gt; existe una problemática con el acceso concurrente a los recursos, como archivos o memoria, por varias tareas simultáneamente. Dos tareas no pueden escribir al mismo tiempo en la misma dirección de memoria, es necesario asegurarse de que algunos datos no se modifiquen mientras los estamos leyendo o cosas por el estilo. En este artículo revisaré los mecanismos que proporciona &lt;strong&gt;.NET Framework&lt;/strong&gt; para tratar con estos problemas.</description><category>CSHARP</category><pubDate>Sun, 05 Nov 2017 00:00:00 GMT</pubDate></item><item><title>Multitarea II, sincronización de tareas</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/sincronizacion-de-tareas</link><description>Después de revisar las clases para implementar la &lt;strong&gt;multitarea&lt;/strong&gt; básica, en este artículo voy a revisar diferentes mecanismos que permiten realizar una sincronización entre varias tareas, todos ellos definidos en el espacio de nombres &lt;b&gt;System.Threading&lt;/b&gt;, con los que se puede organizar el trabajo cuando las interacciones entre tareas requieren de un orden determinado.</description><category>CSHARP</category><pubDate>Tue, 19 Sep 2017 00:00:00 GMT</pubDate></item><item><title>Multitarea I, clases básicas</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/multitarea1</link><description>Con este artículo comienza una serie en la que voy a revisar los mecanismos básicos que proporciona &lt;strong&gt;.NET Framework&lt;/strong&gt; para la implementación de aplicaciones &lt;strong&gt;multitarea&lt;/strong&gt;. En primer lugar voy a mostrar las clases básicas que permiten lanzar múltiples procesos y hacer una comparativa de rendimiento entre ellas.</description><category>CSHARP</category><pubDate>Mon, 04 Sep 2017 00:00:00 GMT</pubDate></item><item><title>La importancia de tener un buen log</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/importancia-del-log</link><description>Muchas veces descuidamos, por falta de tiempo, inexperiencia o por simple pereza, el dotar a nuestros desarrollos de unos buenos mecanismos de seguimiento de la actividad, lo que tiene como consecuencia un aumento sustancial de la dificultad y el tiempo necesario para determinar las causas de ciertos errores que se detectan bastante tiempo después de haberse producido, cuando el estado del sistema puede haber cambiado sustancialmente.</description><category>CSHARP</category><pubDate>Fri, 14 Jul 2017 00:00:00 GMT</pubDate></item><item><title>Autómatas celulares, aplicación WINCA VIII</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/automatas-celulares-winca8</link><description>Este es el artículo final de la serie dedicada al programa &lt;strong&gt;WinCA&lt;/strong&gt;, que permite editar y ejecutar &lt;strong&gt;autómatas celulares&lt;/strong&gt;. Para terminar voy a revisar el código que se encarga del autómata en sí, utilizando todas las clases e interfaces explicadas en los artículos anteriores.</description><category>APLICACIONES,COMPLEJIDAD</category><pubDate>Fri, 23 Jun 2017 00:00:00 GMT</pubDate></item><item><title>Autómatas celulares, aplicación WinCA VII</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/automatas-celulares-winca-7</link><description>Continúo explicando lo más básico del código de la aplicación &lt;strong&gt;WinCA&lt;/strong&gt;, dedicada a la construcción y ejecución de &lt;strong&gt;autómatas celulares&lt;/strong&gt;. En esta ocasión voy a hablar de la implementación de las celdas y otras clases auxiliares utilizadas en la construcción de los autómatas propiamente dichos.</description><category>APLICACIONES,COMPLEJIDAD</category><pubDate>Fri, 02 Jun 2017 00:00:00 GMT</pubDate></item><item><title>Autómatas celulares, aplicación WinCA VI</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/automatas-celulares-winca-6</link><description>Seguimos con la serie dedicada a los &lt;strong&gt;autómatas celulares&lt;/strong&gt; y la aplicación &lt;strong&gt;WinCA&lt;/strong&gt; para construirlos y ejecutarlos. En este artículo voy a explicar el código relacionado con el sistema de expresiones que permite establecer las condiciones para cambiar de un estado a otro.</description><category>APLICACIONES,COMPLEJIDAD</category><pubDate>Fri, 26 May 2017 00:00:00 GMT</pubDate></item><item><title>Autómatas celulares, aplicación WinCA V</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/automatas-celulares-winca-5</link><description>Continúo comentando el código fuente del programa &lt;strong&gt;WinCA&lt;/strong&gt;, dedicado a los &lt;strong&gt;autómatas celulares&lt;/strong&gt;. En este artículo voy a explicar los interfaces y las clases con las que se implementan los estados de las celdas y su edición. Puedes utilizar estos interfaces y clases como base para extender el funcionamiento de la aplicación.</description><category>APLICACIONES,COMPLEJIDAD</category><pubDate>Fri, 19 May 2017 00:00:00 GMT</pubDate></item><item><title>Autómatas celulares, aplicación WinCA IV</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/automatas-celulares-winca-4</link><description>Una vez revisado el funcionamiento de la aplicación &lt;strong&gt;WinCA&lt;/strong&gt;, dedicada a los &lt;strong&gt;autómatas celulares&lt;/strong&gt;, vamos a ver cómo está organizado el código fuente de la misma. En este artículo voy a explicar las propiedades de los estados de las celdas, y como se pueden extender para añadir nuevas funcionalidades implementando nuevas clases con los interfaces correspondientes.</description><category>APLICACIONES,COMPLEJIDAD</category><pubDate>Fri, 12 May 2017 00:00:00 GMT</pubDate></item><item><title>Autómatas celulares, aplicación WinCA III</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/automatas-celulares-winca-3</link><description>En este artículo, tercero de la serie, continúo explicando el funcionamiento de la aplicación &lt;strong&gt;WinCA&lt;/strong&gt;, para la construcción y ejecución de &lt;strong&gt;autómatas celulares&lt;/strong&gt;. Esta vez voy a mostrar el lenguaje utilizado para definir las transiciones entre los diferentes estados de las celdas del autómata.</description><category>APLICACIONES,COMPLEJIDAD</category><pubDate>Fri, 05 May 2017 00:00:00 GMT</pubDate></item><item><title>Autómatas celulares, aplicación WinCA II</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/automatas-celulares-winca-2</link><description>Este es el segundo artículo de la serie sobre la aplicación &lt;strong&gt;WinCA&lt;/strong&gt;, dedicada a la construcción y ejecución de &lt;strong&gt;autómatas celulares&lt;/strong&gt;. En este artículo voy a mostrar como diseñar los estados en los que se pueden encontrar las células del autómata y las propiedades que se les pueden asignar a los mismos, utilizando los diferentes editores del programa.</description><category>APLICACIONES,COMPLEJIDAD</category><pubDate>Fri, 28 Apr 2017 00:00:00 GMT</pubDate></item><item><title>Autómatas celulares, aplicación WinCA I</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/winca1</link><description>Los &lt;strong&gt;autómatas celulares&lt;/strong&gt; son modelos matemáticos utilizados para estudiar la evolución de &lt;strong&gt;sistemas dinámicos&lt;/strong&gt; complejos, mediante la realización de simulaciones de las interacciones a lo largo del tiempo de un gran número de elementos, llamados &lt;b&gt;células&lt;/b&gt; o celdas. En esta serie de artículos voy a presentar la aplicación &lt;strong&gt;WinCA&lt;/strong&gt;, con la que se pueden construir y ejecutar este tipo de objetos.</description><category>APLICACIONES,COMPLEJIDAD</category><pubDate>Fri, 21 Apr 2017 00:00:00 GMT</pubDate></item><item><title>Usar el API de Dropbox desde una App Xamarin Forms PCL</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/api-dropbox-pcl</link><description>&lt;strong&gt;Dropbox&lt;/strong&gt;  es una de las aplicaciones más populares para el intercambio y almacenamiento de archivos en la nube. En un ordenador de escritorio resulta muy sencillo utilizarlo, puesto que está integrado en el sistema de archivos y las carpetas son como cualquier otra carpeta del sistema, de modo que se pueden gestionar usando el API habitual para el manejo de archivos. Desde un dispositivo móvil, sin embargo, es necesario usar el API de &lt;strong&gt;Dropbox&lt;/strong&gt; para administrar y acceder a los archivos. En este artículo voy a mostrar cómo usarlo en una aplicación PCL de &lt;strong&gt;Xamarin&lt;/strong&gt; Forms.</description><category>CSHARP</category><pubDate>Fri, 24 Mar 2017 00:00:00 GMT</pubDate></item><item><title>ThiefWatcher, un sistema casero de vigilancia en interiores III</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/thiefwatcher3</link><description>Con este artículo termino la serie dedicada a la solución &lt;strong&gt;ThiefWatcher&lt;/strong&gt;, un sistema casero de &lt;strong&gt;video&lt;/strong&gt; 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 &lt;strong&gt;App&lt;/strong&gt; que se utilizan como clientes remotos del sistema.</description><category>VÍDEO,CSHARP</category><pubDate>Fri, 17 Mar 2017 00:00:00 GMT</pubDate></item><item><title>ThiefWatcher, un sistema casero de vigilancia en interiores II</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/thiefwatcher2</link><description>En este segundo artículo de la serie sobre el sistema casero de &lt;strong&gt;video&lt;/strong&gt; vigilancia &lt;strong&gt;ThiefWatcher&lt;/strong&gt;, 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.</description><category>VÍDEO,CSHARP</category><pubDate>Fri, 10 Mar 2017 00:00:00 GMT</pubDate></item><item><title>ThiefWatcher, un sistema casero de vigilancia en interiores I</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/thiefwatcher1</link><description>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.</description><category>VÍDEO,CSHARP</category><pubDate>Fri, 03 Mar 2017 00:00:00 GMT</pubDate></item><item><title>Crear un conector WCF simple para DBTextFinder</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/conexion-wcf-dbtextfinder-1</link><description>&lt;strong&gt;WCF&lt;/strong&gt; (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 &lt;strong&gt;DBTextFinder&lt;/strong&gt;, un programa para buscar textos en una &lt;strong&gt;base de datos&lt;/strong&gt; que puede extenderse para conectar con cualquier sistema de gestión de datos.</description><category>CÓDIGO FUENTE,CSHARP</category><pubDate>Fri, 03 Feb 2017 00:00:00 GMT</pubDate></item><item><title>Extensión II de WinRQA, series de medidas de recurrencia</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/winrqa-extension-2</link><description>&lt;b&gt;WInRQA&lt;/b&gt; es una aplicación dedicada a los &lt;strong&gt;mapas de recurrencia&lt;/strong&gt;, una herramienta que se utiliza en el análisis de recurrencia de &lt;strong&gt;series temporales&lt;/strong&gt; 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 (&lt;strong&gt;RQM&lt;/strong&gt;) 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.</description><category>APLICACIONES,COMPLEJIDAD,CSHARP</category><pubDate>Fri, 27 Jan 2017 00:00:00 GMT</pubDate></item><item><title>Diibujar fractales con Sistemas de Funciones Iteradas (IFS)</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/dibujar-con-sistemas-de-funciones-iteradas</link><description>Los &lt;b&gt;sistemas de funciones iteradas&lt;/b&gt; (&lt;strong&gt;IFS&lt;/strong&gt; por sus siglas en inglés) son una herramienta matemática sencilla para construir conjuntos &lt;strong&gt;fractales&lt;/strong&gt; por medio de un conjunto de aplicaciones afines contractivas. Este método fue desarrollado por &lt;b&gt;M.F. Barnsley&lt;/b&gt; en 1985. En concreto, resulta de utilidad para obtener un &lt;strong&gt;fractal&lt;/strong&gt; autosemejante a base de aplicar de forma iterativa el sistema de funciones a un conjunto cualquiera, hasta llegar a una buena aproximación del &lt;strong&gt;fractal&lt;/strong&gt; que constituye el &lt;strong&gt;atractor&lt;/strong&gt; del sistema.</description><category>COMPLEJIDAD</category><pubDate>Fri, 20 Jan 2017 00:00:00 GMT</pubDate></item><item><title>DataGridView con soporte para fórmulas</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/datagridview-formulas</link><description>En este artículo voy a presentar un control &lt;strong&gt;DataGridView&lt;/strong&gt; 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.</description><category>CÓDIGO FUENTE,CSHARP</category><pubDate>Fri, 13 Jan 2017 00:00:00 GMT</pubDate></item><item><title>Compilador universal de objetos usando reglas BNF II</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/bnfup-compilador-de-objetos-universal-2</link><description>&lt;b&gt;BNFUP&lt;/b&gt; es una librería de clases que implementa un &lt;strong&gt;compilador&lt;/strong&gt; de objetos a partir de la definición de un lenguaje mediante reglas &lt;strong&gt;BNF&lt;/strong&gt;. 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.</description><category>CÓDIGO FUENTE,CSHARP</category><pubDate>Fri, 06 Jan 2017 00:00:00 GMT</pubDate></item><item><title>Compilador de objetos universal usando reglas BNF I</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/bnfup-compilador-universal-objetos</link><description>En esta serie de artículos voy a mostrar una librería de clases que implementa un &lt;strong&gt;compilador&lt;/strong&gt; que utiliza un lenguaje cualquiera definido mediante reglas &lt;strong&gt;BNF&lt;/strong&gt; 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 &lt;strong&gt;compilador&lt;/strong&gt; pueda construirlos e inicializarlos a partir del código fuente.</description><category>CÓDIGO FUENTE,CSHARP</category><pubDate>Thu, 05 Jan 2017 00:00:00 GMT</pubDate></item><item><title>Acceso al código fuente de los objetos ejecutables de la base de datos</title><link>http://software-tecnico-libre.es/es/articulo-por-tema//todas-las-secciones/todos-los-temas/todos-los-articulos/acceso-codigo-fuente-base-de-datos</link><description>Todos los principales servidores de &lt;strong&gt;base de datos&lt;/strong&gt; permiten la creación de objetos ejecutables, como &lt;b&gt;funciones&lt;/b&gt; o &lt;b&gt;procedimientos almacenados&lt;/b&gt;, utilizando algún tipo de lenguaje de extensión del &lt;strong&gt;SQL&lt;/strong&gt;, como &lt;strong&gt;PLSQL&lt;/strong&gt; en Oracle o &lt;strong&gt;T-SQL&lt;/strong&gt; en &lt;strong&gt;SQL Server&lt;/strong&gt;, 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 &lt;b&gt;RDBMS&lt;/b&gt; más populares, &lt;strong&gt;MySQL&lt;/strong&gt;, &lt;strong&gt;Oracle&lt;/strong&gt; y &lt;strong&gt;SQL Server&lt;/strong&gt;.</description><category>ACCESO A DATOS</category><pubDate>Fri, 16 Dec 2016 00:00:00 GMT</pubDate></item><item><title>Como integrar código CLR en SQL Server II</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/integrar-clr-sqlserver-2</link><description>En este artículo voy a continuar con la integración de objetos &lt;strong&gt;CLR&lt;/strong&gt; en una &lt;strong&gt;base de datos&lt;/strong&gt; &lt;strong&gt;SQL Server&lt;/strong&gt; hablando sobre la implementación de &lt;b&gt;disparadores&lt;/b&gt; y la creación de &lt;b&gt;tipos de datos&lt;/b&gt; definidos por el usuario. Se trata de una manera sencilla de extender la funcionalidad de nuestras aplicaciones de &lt;strong&gt;base de datos&lt;/strong&gt; con toda la potencia que nos proporciona el &lt;strong&gt;CLR&lt;/strong&gt; de la &lt;strong&gt;plataforma .NET&lt;/strong&gt;.</description><category>ACCESO A DATOS</category><pubDate>Fri, 09 Dec 2016 00:00:00 GMT</pubDate></item><item><title>Como integrar código CLR en SQL Server I</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/integrar-clr-con-sql-server-1</link><description>En este artículo voy a mostrar cómo podemos extender fácilmente el &lt;strong&gt;SQL&lt;/strong&gt; de nuestros servidores &lt;strong&gt;SQL Server&lt;/strong&gt; con funciones y tipos de datos del &lt;strong&gt;CLR&lt;/strong&gt; (Common Language Runtime) de la &lt;strong&gt;plataforma .NET&lt;/strong&gt;. 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.</description><category>ACCESO A DATOS</category><pubDate>Fri, 02 Dec 2016 00:00:00 GMT</pubDate></item><item><title>Extensión I de WinRQA, estimación del retardo y dimensión de inmersión</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/winrqa-extension-1</link><description>&lt;strong&gt;WInRQA&lt;/strong&gt; es una aplicación dedicada a los &lt;strong&gt;mapas de recurrencia&lt;/strong&gt;, una herramienta que se utiliza en el análisis de recurrencia de &lt;strong&gt;series temporales&lt;/strong&gt; 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 &lt;strong&gt;espacio de fases&lt;/strong&gt;  del &lt;strong&gt;atractor&lt;/strong&gt; del sistema y seleccionar la &lt;strong&gt;dimensión de inmersión&lt;/strong&gt; correcta.</description><category>APLICACIONES,COMPLEJIDAD,CSHARP</category><pubDate>Sat, 26 Nov 2016 00:00:00 GMT</pubDate></item><item><title>Más allá del caos, aleatoriedad</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/mas-alla-del-caos</link><description>En este artículo voy a mostrar la manera en que, mediante un mismo proceso muy sencillo y totalmente &lt;strong&gt;determinista&lt;/strong&gt;, podemos pasar desde un sistema &lt;strong&gt;estacionario&lt;/strong&gt; a otro completamente &lt;strong&gt;aleatorio&lt;/strong&gt;, pasando por dinámicas &lt;strong&gt;periódicas&lt;/strong&gt; y &lt;strong&gt;caóticas&lt;/strong&gt;. Para ello, voy a generar varias &lt;strong&gt;series temporales&lt;/strong&gt; con estas características utilizando el &lt;strong&gt;programa R&lt;/strong&gt; y varios paquetes que nos pueden ayudar en el análisis de las mismas.</description><category>COMPLEJIDAD,R</category><pubDate>Fri, 18 Nov 2016 00:00:00 GMT</pubDate></item><item><title>WinRQA, una aplicación en C# para trazar mapas de recurrencia</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/aplicacion-winrqa</link><description>Un &lt;strong&gt;mapa de recurrencia&lt;/strong&gt; es una herramienta gráfica utilizada en el estudio de &lt;strong&gt;series temporales&lt;/strong&gt; 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 &lt;strong&gt;RQA&lt;/strong&gt;. En este artículo voy a presentar la aplicación &lt;strong&gt;WinRQA&lt;/strong&gt;, una herramienta para trabajar con &lt;strong&gt;mapas de recurrencia&lt;/strong&gt; y medidas &lt;strong&gt;RQA&lt;/strong&gt; en un entorno &lt;strong&gt;Windows&lt;/strong&gt;.</description><category>APLICACIONES,COMPLEJIDAD,CSHARP</category><pubDate>Fri, 11 Nov 2016 00:00:00 GMT</pubDate></item><item><title>Controlador de motor paso a paso con Arduino</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/motor-paso-a-paso-arduino</link><description>Un &lt;strong&gt;motor paso a paso&lt;/strong&gt; 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 &lt;strong&gt;Arduino&lt;/strong&gt;, junto con un programa de ejemplo escrito en &lt;strong&gt;CSharp&lt;/strong&gt; que permite mover el motor desde el ordenador dónde conectemos la placa.</description><category>ELECTRÓNICA</category><pubDate>Tue, 01 Nov 2016 00:00:00 GMT</pubDate></item><item><title>Implementación del análisis de correspondencias en C#</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/analisis-de-correspondencias-con-csharp</link><description>El &lt;strong&gt;análisis de correspondencias&lt;/strong&gt; es una técnica &lt;strong&gt;estadística&lt;/strong&gt; que nos permite estudiar relaciones entre datos &lt;b&gt;categóricos&lt;/b&gt; mediante el escalado óptimo y proyección ortogonal en dos o tres dimensiones de &lt;strong&gt;tablas de contingencia&lt;/strong&gt;. Su implementación es relativamente sencilla, y en este artículo voy a mostrar un ejemplo utilizando el lenguaje &lt;strong&gt;csharp&lt;/strong&gt;. Además, el programa de ejemplo permite dibujar gráficas sencillas con los datos resultantes.</description><category>CSHARP</category><pubDate>Fri, 28 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Análisis de datos PISA, análisis de correspondencias</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/analisis-de-correspondencias-pisa</link><description>La &lt;strong&gt;base de datos&lt;/strong&gt; del programa &lt;strong&gt;PISA&lt;/strong&gt; 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 &lt;b&gt;categóricos&lt;/b&gt;, lo que hace que el &lt;strong&gt;análisis de correspondencias&lt;/strong&gt; 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 &lt;b&gt;ca&lt;/b&gt; del &lt;strong&gt;programa R&lt;/strong&gt;.</description><category>R</category><pubDate>Fri, 21 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Series temporales complejas VI, mapas de recurrencia</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/series-temporales-complejas-vi</link><description>Para terminar esta serie sobre &lt;strong&gt;series temporales&lt;/strong&gt; complejas y su caracterización usando herramientas gráficas voy a mostraros  una herramienta llamada &lt;strong&gt;mapa de recurrencia&lt;/strong&gt;, que permite obtener una serie de medidas utilizadas en el &lt;strong&gt;análisis de recurrencia&lt;/strong&gt;, o &lt;strong&gt;RQA&lt;/strong&gt; por sus siglas en inglés. La &lt;strong&gt;recurrencia&lt;/strong&gt; es una propiedad característica de los &lt;strong&gt;sistemas dinámicos&lt;/strong&gt; &lt;b&gt;deterministas&lt;/b&gt;, y consiste en que dos o más estados del sistema se encuentran arbitrariamente cerca al cabo de cierto tiempo.</description><category>COMPLEJIDAD</category><pubDate>Wed, 12 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Series temporales complejas V, autocorrelación y extensión de la dimensión</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/series-temporales-complejas-5</link><description>En este nuevo artículo de la serie sobre &lt;strong&gt;series temporales&lt;/strong&gt; con &lt;strong&gt;dinámica compleja&lt;/strong&gt;, voy a mostrar un procedimiento para reconstruir aproximadamente la información de un &lt;strong&gt;sistema dinámico&lt;/strong&gt; 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.</description><category>COMPLEJIDAD</category><pubDate>Sat, 08 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Redes neuronales recurrentes y series de tiempo</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/redes-neuronales-recurrentes-y-series-de-tiempo</link><description>Las &lt;strong&gt;redes neuronales recurrentes&lt;/strong&gt; constituyen una herramienta muy apropiada para modelar &lt;strong&gt;series temporales&lt;/strong&gt;. Se trata de un tipo de redes con una arquitectura que implementa una cierta memoria y, por lo tanto, un sentido temporal. Esto se consigue implementando algunas neuronas que reciben como entrada la salida de una de las capas e inyectan su salida en una de las capas de un nivel anterior a ella. En este artículo voy a mostrar cómo utilizar de una forma sencilla dos &lt;strong&gt;redes neuronales&lt;/strong&gt; de este tipo, las de &lt;strong&gt;Elman&lt;/strong&gt; y las de &lt;strong&gt;Jordan&lt;/strong&gt;, utilizando el &lt;strong&gt;programa R&lt;/strong&gt;.</description><category>COMPLEJIDAD,R</category><pubDate>Sun, 02 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Series temporales complejas IV, espectro de protencia y distribución</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/series-temporales-complejas-4</link><description>En este nuevo artículo de la serie dedicada a la caracterización gráfica de &lt;strong&gt;series temporales&lt;/strong&gt; complejas voy a hablar de otras dos herramientas gráficas que pueden resultar útiles, el &lt;strong&gt;espectro de potencia&lt;/strong&gt; de la señal, que obtendremos mediante la &lt;strong&gt;transformada de Fourier&lt;/strong&gt;, y la gráfica con la distribución de valores de la serie, un simple histograma con la frecuencia de los diferentes valores que también nos puede ofrecer información sobre la dinámica de la serie.</description><category>COMPLEJIDAD</category><pubDate>Sat, 24 Sep 2016 00:00:00 GMT</pubDate></item><item><title>Series temporales complejas III, diagramas de fases</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/series-temporales-complejas-3</link><description>En este nuevo artículo de la serie sobre caracterización gráfica de &lt;strong&gt;series temporales&lt;/strong&gt; procedentes de &lt;strong&gt;sistemas dinámicos&lt;/strong&gt; con &lt;strong&gt;dinámica caótica&lt;/strong&gt;, voy a hablar de una forma de representar dichos sistemas en el dominio del espacio, de forma independiente del tiempo, el &lt;strong&gt;diagrama de fases&lt;/strong&gt;. Con este tipo de diagramas, se pueden observar los &lt;strong&gt;atractores&lt;/strong&gt;  del sistema. Un &lt;strong&gt;atractor&lt;/strong&gt; es un punto, una curva, en general, un conjunto de puntos al que convergen las ecuaciones del sistema, que nos permite hacernos una idea del comportamiento típico del mismo.</description><category>COMPLEJIDAD</category><pubDate>Sat, 17 Sep 2016 00:00:00 GMT</pubDate></item><item><title>Series temporales complejas II, diagramas de recurrencia</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/series-temporales-complejas-II</link><description>Continuamos con la serie sobre caracterización gráfica de la &lt;strong&gt;complejidad&lt;/strong&gt; en &lt;strong&gt;series temporales&lt;/strong&gt; utilizando la aplicación auxiliar &lt;b&gt;GraphStudy&lt;/b&gt;. En este artículo voy a mostrar cómo construir un gráfico con el que podemos distinguir de manera sencilla si una determinada función iterada genera series con una &lt;strong&gt;dinámica caótica&lt;/strong&gt;, el &lt;strong&gt;diagrama de recurrencia&lt;/strong&gt;.</description><category>COMPLEJIDAD</category><pubDate>Sat, 10 Sep 2016 00:00:00 GMT</pubDate></item><item><title>Series temporales complejas |, conceptos básicos</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/series-temporales-complejas-I</link><description>Muchos de los conjuntos de datos con los que solemos trabajar se presentan en forma de &lt;strong&gt;series temporales&lt;/strong&gt;. Una &lt;strong&gt;serie temporal&lt;/strong&gt; se puede ver como la evolución de un &lt;strong&gt;sistema dinámico&lt;/strong&gt;, caracterizado por una serie de &lt;b&gt;variables&lt;/b&gt; y &lt;b&gt;parámetros&lt;/b&gt;. Dependiendo del tipo de dinámica que presente el sistema, las series pueden ser &lt;b&gt;estacionarias&lt;/b&gt;, &lt;b&gt;periódicas&lt;/b&gt;, &lt;b&gt;cuasiperiódicas&lt;/b&gt;, &lt;b&gt;caóticas&lt;/b&gt; o &lt;b&gt;aleatorias&lt;/b&gt;. En esta serie de artículos, me centraré en la caracterización de la &lt;strong&gt;dinámica caótica&lt;/strong&gt;, que es la que presentan los &lt;strong&gt;sistemas complejos&lt;/strong&gt;, utilizando métodos gráficos.</description><category>COMPLEJIDAD</category><pubDate>Fri, 02 Sep 2016 00:00:00 GMT</pubDate></item><item><title>Tableaux para lógica de primer orden</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/tableaux-logica-primer-orden</link><description>El &lt;strong&gt;Tableaux&lt;/strong&gt; 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 &lt;strong&gt;Tableaux&lt;/strong&gt; para lógica de predicados, en este artículo voy a extender el programa a la &lt;strong&gt;lógica de primer orden&lt;/strong&gt;, que tiene mucha más capacidad expresiva que la &lt;strong&gt;lógica de predicados&lt;/strong&gt;, aunque esto también hace mucho más difícil el cálculo automático.</description><category>CÓDIGO FUENTE,CSHARP</category><pubDate>Fri, 19 Aug 2016 00:00:00 GMT</pubDate></item><item><title>Cálculo lógico con Tableaux</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/tableaux</link><description>El &lt;strong&gt;Tableaux&lt;/strong&gt; es una herramienta de cálculo lógico que resulta muy útil para demostrar una &lt;b&gt;conclusión&lt;/b&gt; a partir de una serie de &lt;b&gt;premisas&lt;/b&gt;, encontrar contraejemplos o modelos de un conjunto de fórmulas lógicas o demostrar que una fórmula es una &lt;b&gt;tautología&lt;/b&gt;, es decir, que es verdadera en todos los casos posibles. Se pueden utilizar en &lt;strong&gt;inteligencia artificial&lt;/strong&gt; como base para implementar demostradores automáticos de teoremas.</description><category>CÓDIGO FUENTE,CSHARP</category><pubDate>Sun, 31 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Maximizar o minimizar una función con el método Simplex</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/algoritmo-simplex</link><description>Existe un problema muy común en &lt;b&gt;programación lineal&lt;/b&gt; 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 &lt;b&gt;George Dantzig&lt;/b&gt;, llamado &lt;strong&gt;Simplex&lt;/strong&gt;, que permite realizar dichos cálculos de una forma simple y efectiva.</description><category>CÓDIGO FUENTE,CSHARP</category><pubDate>Sat, 23 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Controlador de motor bidireccional con Arduino</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/controlador-de-motor-bidireccional</link><description>Las placas &lt;strong&gt;Arduino&lt;/strong&gt;, 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 &lt;b&gt;USB&lt;/b&gt; con una programación muy sencilla utilizando un lenguaje similar al &lt;b&gt;C&lt;/b&gt;. Existen gran cantidad de módulos prefabricados para controlar motores, relés y todo tipo de sensores, pero, si te gusta la &lt;strong&gt;electrónica&lt;/strong&gt; como a mí, también puedes diseñar y conectar tus propios circuitos analógicos o digitales.</description><category>ELECTRÓNICA</category><pubDate>Sat, 16 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Impresión de códigos de barras</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/impresion-de-codigos-de-barra</link><description>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 &lt;strong&gt;csharp&lt;/strong&gt; para codificarlos.</description><category>CSHARP</category><pubDate>Sat, 09 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Cámaras IP de Axis con protocolo VAPIX</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/protocolo-vapix-para-camaras-ip</link><description>&lt;strong&gt;Axis&lt;/strong&gt; es una marca sueca, uno de los líderes mundiales en el mercado de &lt;strong&gt;cámaras IP&lt;/strong&gt; 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 &lt;strong&gt;HTTP&lt;/strong&gt;, el protocolo &lt;strong&gt;VAPIX&lt;/strong&gt;, basado en comandos &lt;strong&gt;CGI&lt;/strong&gt;, lo que hace especialmente interesante conocerlo.</description><category>CÓDIGO FUENTE,VÍDEO</category><pubDate>Sun, 03 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Consejos para el diseño de bases de datos</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/consejos-generales-bases-de-datos</link><description>Cuando se diseña una &lt;strong&gt;base de datos&lt;/strong&gt;, 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.</description><category>ACCESO A DATOS</category><pubDate>Sun, 26 Jun 2016 00:00:00 GMT</pubDate></item><item><title>Cómo copiar a Excel desde un DataGridView</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/copiar-a-excel-desde-datagridview</link><description>Cuando se seleccionan varias filas en un control &lt;strong&gt;DataGridView&lt;/strong&gt; y se pulsa &lt;b&gt;Ctrl+C&lt;/b&gt; 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 &lt;strong&gt;Excel&lt;/strong&gt;, 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.</description><category>CSHARP</category><pubDate>Sat, 25 Jun 2016 00:00:00 GMT</pubDate></item><item><title>Como construir un analizador de expresiones, implementación II</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/construir-un-parser-implementacion2</link><description>En el anterior artículo de la serie comencé a mostrar cómo implementar un analizador de expresiones aritméticas o &lt;strong&gt;parser&lt;/strong&gt; a partir de las reglas de la &lt;b&gt;gramática&lt;/b&gt; en notación &lt;strong&gt;BNF&lt;/strong&gt;, con las clases encargadas de extraer los &lt;b&gt;números&lt;/b&gt;, &lt;b&gt;variables&lt;/b&gt; y &lt;b&gt;constantes&lt;/b&gt;. 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 &lt;strong&gt;compilador&lt;/strong&gt;.</description><category>CSHARP</category><pubDate>Sat, 18 Jun 2016 00:00:00 GMT</pubDate></item><item><title>Cómo construir un analizador de expresiones, implementación I</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/como-construir-un-parser-implementacion1</link><description>En el artículo anterior de esta serie hice un repaso de las principales cuestiones acerca del diseño de la &lt;b&gt;gramática&lt;/b&gt; para construir un &lt;b&gt;analizador&lt;/b&gt; o &lt;strong&gt;parser&lt;/strong&gt; para expresiones aritméticas. En este artículo voy a mostrar la primera parte de su  implementación a partir de las reglas &lt;strong&gt;BNF&lt;/strong&gt; de la &lt;b&gt;gramática&lt;/b&gt;, 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.</description><category>CSHARP</category><pubDate>Fri, 17 Jun 2016 00:00:00 GMT</pubDate></item><item><title>Como construir un analizador de expresiones, la gramática</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/analizador-de-expresiones-gramatica</link><description>Cuando estamos trabajando con funciones matemáticas, resulta muy conveniente disponer de un &lt;strong&gt;parser&lt;/strong&gt;, o &lt;b&gt;analizador de expresiones&lt;/b&gt;, 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.</description><category>CSHARP</category><pubDate>Tue, 14 Jun 2016 00:00:00 GMT</pubDate></item><item><title>El control PropertyGrid, conversores de tipo</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/control-propertygrid-conversores-tipo</link><description>Para terminar esta serie sobre el &lt;strong&gt;control&lt;/strong&gt; &lt;strong&gt;PropertyGrid&lt;/strong&gt; vamos a ver cómo utilizar los diferentes conversores de tipo derivados de la clase &lt;b&gt;TypeConverter&lt;/b&gt; para personalizar la forma en que se muestran o editan las propiedades. El &lt;strong&gt;.NET framework&lt;/strong&gt; proporciona conversores para bastantes tipos de propiedades, pero, además, podemos implementar fácilmente nuestros propios conversores, derivando una clase de &lt;b&gt;TypeConverter&lt;/b&gt; o de algún conversor especializado y sobrecargando unas pocas funciones.</description><category>CSHARP</category><pubDate>Fri, 10 Jun 2016 00:00:00 GMT</pubDate></item><item><title>El control PropertyGrid, eventos y editores personalizados</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/proeprtygrid-eventos-editores</link><description>En el anterior artículo de la serie vimos cómo utilizar las funcionalidades básicas del &lt;strong&gt;control&lt;/strong&gt; &lt;strong&gt;PropertyGrid&lt;/strong&gt; 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 &lt;strong&gt;control&lt;/strong&gt;, 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.</description><category>CSHARP</category><pubDate>Sat, 04 Jun 2016 00:00:00 GMT</pubDate></item><item><title>El control PropertyGrid, uso básico</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/control-propertygrid-basico</link><description>Uno de los controles del &lt;strong&gt;GUI&lt;/strong&gt; (interfaz gráfico de usuario) más versátiles que nos ofrece la &lt;strong&gt;plataforma .NET&lt;/strong&gt; es el &lt;strong&gt;control PropertyGrid&lt;/strong&gt;. 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.</description><category>CSHARP</category><pubDate>Sat, 28 May 2016 00:00:00 GMT</pubDate></item><item><title>Cámaras IP con protocolo CGI NetWave</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/camaras-con-protocolo-netwave</link><description>Muchas de las &lt;strong&gt;cámaras IP&lt;/strong&gt; de red que podemos encontrar en el mercado utilizan el protocolo &lt;strong&gt;NetWave&lt;/strong&gt;, basado en comandos CGI, para obtener las imágenes de &lt;strong&gt;vídeo&lt;/strong&gt; a través de un servidor &lt;strong&gt;http&lt;/strong&gt; 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 &lt;strong&gt;vídeo&lt;/strong&gt;.</description><category>CÓDIGO FUENTE,VÍDEO</category><pubDate>Sat, 14 May 2016 00:00:00 GMT</pubDate></item><item><title>Una aplicación básica de captura de vídeo usando DirectShow</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/programacion-basica-directshow</link><description>En el artículo anterior de la serie hice un resumen de los elementos básicos de &lt;strong&gt;DirectShow&lt;/strong&gt;: filtros, grafos de filtros  y pines para conectar los elementos entre sí, y como podemos identificarlos utilizando la herramienta del SDK &lt;b&gt;GraphEdit&lt;/b&gt;. 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 &lt;strong&gt;DirectShow&lt;/strong&gt;, un subconjunto del modelo de objetos distribuidos de la plataforma &lt;strong&gt;COM&lt;/strong&gt; de Microsoft.</description><category>CÓDIGO FUENTE,VÍDEO</category><pubDate>Thu, 05 May 2016 00:00:00 GMT</pubDate></item><item><title>Conceptos básicos en la programación con DirectShow</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/conceptos-basicos-directshow</link><description>Actualmente existen infinidad de dispositivos de captura de &lt;strong&gt;vídeo&lt;/strong&gt; asequibles en el mercado, cualquiera puede hacerse con una cámara digital o una &lt;strong&gt;webcam&lt;/strong&gt; a un precio razonable. Todos estos dispositivos se pueden controlar fácilmente desde un programa desarrollado por nosotros mismos utilizando &lt;strong&gt;DirectShow&lt;/strong&gt; 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.</description><category>VÍDEO</category><pubDate>Sat, 30 Apr 2016 00:00:00 GMT</pubDate></item><item><title>Generación de números aleatorios</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/generacion-de-numeros-aleatorios</link><description>En muchas aplicaciones es necesario generar &lt;strong&gt;números aleatorios&lt;/strong&gt;. Para esto, la plataforma .NET proporciona la clase &lt;strong&gt;Random&lt;/strong&gt;, 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 &lt;strong&gt;distribución normal&lt;/strong&gt;, con un sistema que podéis extender a cualquier tipo de distribución.</description><category>CÓDIGO FUENTE,CSHARP</category><pubDate>Sun, 24 Apr 2016 00:00:00 GMT</pubDate></item><item><title>¿Qué es un sistema complejo?</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/que-es-un-sistema-complejo</link><description>Usualmente, cuando realizamos un análisis de datos, consideramos que proceden de una &lt;strong&gt;distribución normal&lt;/strong&gt;. 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 &lt;strong&gt;dinámica compleja&lt;/strong&gt; 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.</description><category>COMPLEJIDAD</category><pubDate>Sat, 09 Apr 2016 00:00:00 GMT</pubDate></item><item><title>Aplicación DbTextFinder para buscar textos en bases de datos</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/aplicacion-dbtextfinder</link><description>Las vistas del catálogo contienen toda la información referente a la estructura de nuestras bases de datos: esquemas, tablas, campos de las tablas, tipos de datos de los campos, restricciones de integridad, código de los procedimientos almacenados, etc. Conocerlas es fundamental para desarrollar herramientas de gestión independientes de nuestra estructura de datos. En este artículo vamos a ver un ejemplo de una de estas herramientas, &lt;strong&gt;DbTextFinder&lt;/strong&gt;, una sencilla aplicación que nos permitirá buscar texto en los registros de nuestra base de datos y dentro del código de las vistas y procedimientos almacenados.</description><category>APLICACIONES</category><pubDate>Sat, 02 Apr 2016 00:00:00 GMT</pubDate></item><item><title>Análisis de datos PISA, las calificaciones</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/analisis-de-datos-pisa-valores-plausibles</link><description>En el anterior artículo de esta serie vimos cómo realizar el cálculo de errores estándar con pesos replicados en la base de datos &lt;strong&gt;PISA&lt;/strong&gt;, en este artículo haremos un pequeño resumen de uno de los puntos más polémicos de estos estudios, el complejo sistema de puntuaciones implementado.</description><category>R</category><pubDate>Sat, 12 Mar 2016 00:00:00 GMT</pubDate></item><item><title>Análisis de datos PISA, pesos muestrales y pesos replicados</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/calculos-con-pesos-replicados-en-pisa</link><description>En el anterior artículo de esta serie vimos una introducción al análisis de datos &lt;strong&gt;PISA&lt;/strong&gt;, con unos ejemplos de funciones en &lt;strong&gt;código R&lt;/strong&gt; para realizar muestreos, y hablamos de los pesos muestrales, que ponderan a cada uno de los alumnos de manera que represente a un conjunto de individuos con las mismas características en lugar de a un solo alumno (no olvidemos que &lt;strong&gt;PISA&lt;/strong&gt; pretende evaluar el efecto de las políticas educativas sobre el conjunto de la población del país, no sobre alumnos individuales). En el presente artículo, veremos cómo utilizar estos pesos a la hora de obtener estadísticos a partir de las muestras y veremos también como calcular los errores típicos de estos estadísticos utilizando pesos replicados.</description><category>R</category><pubDate>Sun, 28 Feb 2016 00:00:00 GMT</pubDate></item><item><title>Introducción al análisis de datos PISA</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/introduccion-al-analisis-de-datos-pisa</link><description>Cada tres años, desde el año 2000, la &lt;b&gt;OCDE&lt;/b&gt; (Organización para la Cooperación y Desarrollo Económico) realiza una serie de exámenes a nivel nacional en una serie de países a alumnos de 15 años para evaluar el grado de conocimientos en tres grupos principales de materias: ciencias, comprensión lectora y matemáticas. Se trata del programa &lt;strong&gt;PISA&lt;/strong&gt;, cuya última edición se realizó en el año 2015.</description><category>R</category><pubDate>Fri, 19 Feb 2016 00:00:00 GMT</pubDate></item><item><title>Uso de WinPODUtil para procesar archivos CSV</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/procesar-archivos-csv-con-winpodutil</link><description>En el artículo anterior vimos cómo consultar bases de datos &lt;strong&gt;POD&lt;/strong&gt; con el programa &lt;b&gt;WinPODUtil&lt;/b&gt;, en este artículo veremos cómo usar la herramienta para procesar los archivos CSV generados por las consultas, o cualquier otro archivo CSV. El formato de estos archivos consiste en una serie de líneas, la primera de las cuales debe contener los títulos de las columnas, con una serie de campos separados por el caracter punto y coma (;). Cada línea, excepto la primera, representa un registro de datos.</description><category>POD</category><pubDate>Fri, 12 Feb 2016 00:00:00 GMT</pubDate></item><item><title>Aplicación WinPODUtil para consultar bases de datos POD</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/aplicacion-winpodutil</link><description>En artículos anteriores os he hablado del proyecto &lt;strong&gt;POD&lt;/strong&gt;, una base de datos que centraliza el acceso a otras bases de datos de manera que se puedan consultar todas ellas a través de un interfaz común. En este artículo vamos a ver una herramienta que se utiliza para realizar filtrado de datos y consultas sobre cualquiera de las bases de datos integradas en &lt;strong&gt;POD&lt;/strong&gt;.</description><category>POD,APLICACIONES</category><pubDate>Fri, 05 Feb 2016 00:00:00 GMT</pubDate></item><item><title>Introducción a la base de datos PISA</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/introduccion-a-la-base-de-datos-de-pisa</link><description>&lt;strong&gt;PISA&lt;/strong&gt; (Programme for International Student Assessment) es un programa de la &lt;b&gt;OCDE&lt;/b&gt; (Organización para la Cooperación y el Desarrollo Económico) destinado a la evaluación de políticas educativas. Consiste en una serie de exámenes y encuestas realizados a estudiantes de 15 años, escuelas y padres a nivel nacional en una serie de países adheridos al programa (en el año 2012  hubo 65 países participantes, y en el 2015 ya son más de 70). Estos exámenes tratan de evaluar el nivel de conocimientos en tres áreas principales: comprensión lectora, ciencias y matemáticas.&lt;br/&gt;&lt;br/&gt;En este artículo hago una breve introducción a la base de datos &lt;strong&gt;SQL Server&lt;/strong&gt; creada a partir de los datos originales publicados por la &lt;b&gt;OCDE&lt;/b&gt;</description><category>POD</category><pubDate>Sat, 30 Jan 2016 00:00:00 GMT</pubDate></item><item><title>Base de datos de configuracion de POD</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/base-de-datos-de-configuracion-de-POD</link><description>&lt;strong&gt;POD&lt;/strong&gt; (Portal Open Data) es un proyecto que empecé cuando estaba sacando el MCSD Web Developer de Microsoft para hacer prácticas. Se trata de una base de datos en &lt;strong&gt;SQL Server&lt;/strong&gt; a través de la que se accede a otras bases de datos de manera centralizada.&lt;br/&gt;&lt;br/&gt;En este artículo hago una breve descripción de la &lt;b&gt;base de datos de configuración de POD&lt;/b&gt;.</description><category>POD</category><pubDate>Thu, 07 Jan 2016 00:00:00 GMT</pubDate></item><item><title>Como eliminar el tráfico spam en Google Analytics</title><link>http://software-tecnico-libre.es/es/articulo-por-tema/todas-las-secciones/todos-los-temas/todos-los-articulos/eliminar-spam-en-google-analytics</link><description>Todos los usuarios de &lt;strong&gt;Google Analytics&lt;/strong&gt; acabamos sufriendo los ataques de una verdadera legión de &lt;strong&gt;bots spam referral&lt;/strong&gt; que distorsionan todos los datos de nuestro sitio, pudiendo llegar a representar una cantidad de visitas muy superior a las de tráfico real.&lt;br/&gt;&lt;br/&gt;En este artículo explico como eliminar todo el tráfico de este tipo definitivamente de nuestras estadísticas.</description><category>ANALÍTICA WEB</category><pubDate>Sat, 02 Jan 2016 00:00:00 GMT</pubDate></item></channel></rss>