Tutoriales
Una de las tareas a las que debe enfrentarse todo estudiante del Grado en Ingeniería Informática es la realización de su Trabajo Fin de Grado o TFG. Para ello ha de seguir la normativa establecida por el organismo competente. En el caso de mi universidad, es la Escuela Politécnica Superior...
Seguir leyendo
Aunque la mayor parte de usuarios de GNU/Linux han interactuado en algún momento con Bash, al acceder a una línea de comandos o terminal, aquellos con cierta experiencia conocen además la potencia de Bash como lenguaje de scripting. Gracias a él es posible automatizar infinidad de tareas, no necesitándose más...
Seguir leyendo
Las posibilidades gráficas en R son muy extensas, habiendo disponibles varias decenas de paquetes que, como ggplot, ofrecen un extenso conjunto de comandos para elaborarlas. A continuación aprenderemos a usar algunas de ellas. Combinación de múltiples gráficas La posibilidad de combinar en una misma imagen múltiples gráficas facilita la comparación...
Seguir leyendo
En ocasiones trabajaremos con una o más series de datos y lo que nos interesará no será hacer comparaciones o analizar la evolución, sino estudiar cómo se distribuyen esas muestras y comparar las distribuciones. Con este fin recurriremos habitualmente a dos tipos de representaciones: los diagramas de cajas y bigotes...
Seguir leyendo
La visualización es una herramienta esencial en el análisis exploratorio de datos. No obstante existen multitud de tipos de visualización distintos y no todos sirven en todos los casos. Al que tiene un martillo todo le parecen clavos, pero es importante elegir la herramienta adecuada a cada trabajo. Dependiendo de...
Seguir leyendo
Los indicadores estadísticos resumen un gran conjunto de datos en unos pocos valores, lo cual implica pérdida de información que puede resultar de importancia. La métafora de los pollos El conjunto de datos anscombe Este conjunto de datos son realmente cuatro subconjuntos formados por parejas x-y. Usemos alguno de los...
Seguir leyendo
En este tutorial vamos a trabajar con uno de los conjuntos de datos de ejemplo que incorpora R: iris. En él se facilita información de distintas familias de lirios (flores). Veamos cómo explorar ese conjunto de datos para obtener una visión general de su contenido. Estructura del conjunto de datos...
Seguir leyendo
¿Qué es R? R es una herramienta y al mismo tiempo un lenguaje: Herramienta - Programa software en el que introduciremos las órdenes para analizar los datos y generar los gráficos Lenguaje - El conjunto de órdenes que entiende el software forman el lenguaje R ¿Qué es RStudio? Una herramienta...
Seguir leyendo
Este es un tutorial muy básico sobre redes neuronales y R, sin asumir ningún conocimiento previo del tema salvo que se tiene R instalado en el sistema y se sabe acceder a su consola para ejecutar órdenes. Los lenguajes de programación, hojas de cálculo, bases de datos y otras aplicaciones...
Seguir leyendo
This document compares the performance in doing a task by means of different approaches in R. For doing so, the microbenchmark package is used, measuring the time spent by each approach. The results are shown numerically and plotting them using ggplot2. The numeric table shows relative performances, with the best...
Seguir leyendo
R es una magnífica herramienta para llevar a cabo todo tipo de tareas de análisis exploratorio de datos de manera interactiva, desde una consola en la que introducimos órdenes más o menos simples y obtenemos resultados, en forma de tablas, indicadores estadísticos o gráficas, de manera inmediata. El enorme número...
Seguir leyendo
Microsoft Excel es una de las herramientas más usadas por parte de los denominados power users (usuarios con conocimientos por encima del usuario medio) a la hora de resumir, analizar y representar gráficamente todo tipo de datos, generalmente con el objetivo de extraer información útil a partir de ellos. Personalmente...
Seguir leyendo
Cada nueva versión de Excel incorpora múltiples opciones nuevas en la interfaz de usuario, pero también hay novedades menos obvias como son el medio centenar de funciones añadidas en la versión 2013 a la ya extensa biblioteca con que contaba este producto. Muchas de esas nuevas funciones extienden categorías ya...
Seguir leyendo
Los centros de cálculo utilizados por corporaciones empresariales, centros de investigación e instituciones similares utilizan desde hace años la configuración en cluster como alternativa al más tradicional mainframe, conectando un gran número de nodos entre sí para poder ofrecer así una potencia de cálculo igual o superior a la que...
Seguir leyendo
Windows 8 aun no está disponible para el público en general, pero en las últimas dos semanas ya han podido probar la versión definitiva del nuevo sistema operativo de Microsoft los suscriptores a TechNet, MSDN y DreamSpark, entre otros. Incluso hay una versión de evaluación que nos permite probar la...
Seguir leyendo
Como muchos otros RDBMS, Microsoft SQL Server cuenta con una base de datos de sistema en el que almacena parámetros generales no asociados a una base de datos concreta sino al propio servidor de datos: el idioma predeterminado, las cuentas de usuario, la meta-información que describe los objetos de cada...
Seguir leyendo
A pesar de que en Windows Vista y Windows 7 la introducción de los denominados Temas visuales ha permitido a los usuarios ajustar la apariciencia del sistema según sus preferencias, somos muchos los que, habiendo utilizado el sistema operativo de Microsoft desde hace muchos años, seguimos recurriendo a la opción...
Seguir leyendo
Son muchos los usuarios de Windows que, en alguna ocasion, han recurrido a la ventana Símbolo del sistema para realizar alguna operación puntual. Los usuarios más avanzados incluso escriben sus propios guiones, los conocidos y antiguos archivos .BAT heredados del DOS, pero son pocos los que aprovechan una de las...
Seguir leyendo
Word, el conocido programa de procesamiento de textos de Microsoft, cuenta con las opciones necesarias para asignar automáticamente títulos a tablas, figuras e ilustraciones, generar tablas de contenidos y tablas de referencias a todos esos elementos y, además, introducir referencias cruzadas en el texto. Una referencia cruzada es, por ejemplo,...
Seguir leyendo
La empresa precursora de la catalogación de contenidos en Internet, Yahoo!, te ofrece un servicio gratuito con el cual podrás construir elaborados resultados a partir de uno o más feeds RSS, Atom o RDF. Actualmente la práctica totalidad de los sitios web que se renuevan con cierta frecuencia, como los...
Seguir leyendo
Durante nuestra actividad cotidiana, a lo largo de la vida pero también en lapsos de tiempo reducido como puede ser un día o incluso pocos segundos, tomamos infinidad de decisiones que exigen la evaluación de situaciones de diversa complejidad. Aunque de manera inconsciente, no nos paramos a pensar en cómo...
Seguir leyendo
A medida que se han ido incorporando en la tarjeta de vídeo funciones más avanzadas, influidas por la necesidad de satisfacer requisitos más exigentes en la generación de gráficos y también las nuevas API de programación (OpenGL y DirectX), ha surgido un nuevo concepto: el de GPU (Graphics Processor Unit),...
Seguir leyendo
El patrón arquitectónico MVC (Model-View-Controller) es, en la actualidad, un estándar muy asentado para el desarrollo de sistemas software que precisan interactuar con personas y que, por tanto, entre sus componentes existe una interfaz de usuario. Todo ingeniero de software conoce este patrón y en la red es posible encontrar...
Seguir leyendo
p>Una de las ventajas de usar LaTeX para generar documentos es que uno puede centrarse en el contenido, dejando en manos de este magnífico software los detalles relativos al formato: tipos y tamaños de letra de títulos y subtítulos, ajustes de los párrafos, paginación, encabezados y pies, etc. Mientras escribimos...
Seguir leyendo
En algunos artículos previos ya he hablado de las características de Python y también he introducido algunas ideas sobre OpenCL al tratar el paralelismo en GPU. Uno de los problemas que suele plantearse durante el aprendizaje de una nueva API/lenguaje, en este caso concreto OpenCL, es que suele implicar también...
Seguir leyendo
El diseño de shaders usando programas como Shader Maker resulta bastante sencillo, pero el objetivo último es usar esos shaders en nuestras propias aplicaciones. Para ello habría que seguir el procedimiento descrito en el tutorial sobre lenguajes de shaders, concretamente el apartado sobre OGLSL. Traducido a código, dicho procedimiento se...
Seguir leyendo
Características de Python como lenguaje de programación Con la excepción de aquellos que tuvieron la oportunidad de cursar estudios de informática o ciencias de la computación, la mayoría de los jóvenes que apredieron a programar en la década que va de 1975 a 1985 (entre los que me cuento) lo...
Seguir leyendo
Los ordenadores no tendrían utilidad alguna si no existiesen programadores que creasen software que les hiciese funcionar y ofrecer a los usuarios finales aquello que necesitan. Dicho software puede tomar distintas formas, desde el firmware que se incluye en ROM (o alguna variante PROM/EPROM/etc.) y se encarga de la puesta...
Seguir leyendo
Los GS son programas algo más complejos que los VS y PS. A diferencia de éstos, no reciben como entrada un único vértice/fragmento ni tampoco tienen que limitarse a emitir un vértice/fragmento. Un GS se ejecuta una vez por cada primitiva a procesar: punto, línea o triángulo. El resultado de...
Seguir leyendo
Los PS no tienen acceso a las propiedades del vértice del que procede un cierto fragmento, como puede ser la normal asociada. Es lógico, ya que no tiene sentido realizar cálculos sobre la geometría para cada uno de los fragmentos de la escena, es mucho más eficiente llevarlos a cabos...
Seguir leyendo
Los PS son programas con una estructura muy similar a la de los VS, si bien los parámetros de entrada y salida sobre los que trabaja son diferentes. La finalidad de un PS básicamente es la de definir el color que tendrá un fragmento o pre-píxel, normalmente usando información procedente...
Seguir leyendo
Como se apuntó en un tutorial previo, los VS y PS pueden comunicarse a través de parámetros varying. Para ser más exactos habría que decir que el VS puede entregar información al PS, por ejemplo a través de los campos gl_FrontColor y gl_TexCoord[N]. También pueden declararse parámetros varying a medida,...
Seguir leyendo
Partiendo del código del VS del tutorial previo de esta serie, es fácil introducir algunos cambios a fin de que la transformación que se aplica a los vértices no sea constante sino variable con el tiempo. Para ello se puede utilizar el parámetro uniforme time (un parámetro al que tiene...
Seguir leyendo
Un vertex shader es un programa que recibe como entrada una serie de argumentos y genera unos resultados, casi como cualquier programa de ordenador. Su objetivo general es transformar vértices, si bien puede también influir en otros parámetros como el color o las coordenadas de textura. En esta entrada y...
Seguir leyendo
Cuando comencé a trabajar con Unix, a mediados de los años 80, la primera impresión fue de desencanto y fascinación al tiempo. Fascinación porque había leído las posibilidades multiusuario y multitarea de este sistema y desencanto porque la primera vez que inicié el sistema me encontré con una consola de...
Seguir leyendo
Las entregas de los meses previos, sobre Tipos de shaders y Lenguajes para programar shaders, nos han servido para establecer el contexto en el que se utilizan los shaders, ofreciendo una visión general de esta tecnología y los conceptos teóricos fundamentales para comprenderla. El objetivo de este nuevo tutorial es...
Seguir leyendo
Los microprocesadores que equipan los ordenadores personales, incluso los portátiles, cada vez incorporan un mayor número de núcleos y, además, suelen contar con tecnologías adicionales (como el Hyper-Threading) que hacen posible la ejecución de más de un hilo por parte del mismo núcleo. Actualmente no es raro que un equipo...
Seguir leyendo
Al igual que el propio hardware, también el software asociado al desarrollo de shaders ha ido evolucionando con el paso del tiempo. Originalmente no existía más que el ensamblador, como en los primeros computadores, apareciendo con posterioridad lenguajes de más alto nivel como Cg, HLSL y OGLSL. Ensamblador El primer...
Seguir leyendo
Llevo programando en lenguaje BASIC desde 1983, primero en microordenadores como el Sinclair ZX-81, el Sinclair Spectrum y los MSX, posteriormente en ordenadores de corte profesional de mediados de los ochenta, como el Xerox 820-II, y finalmente en la plataforma PC en sus distintos sabores: BASICA, GW-BASIC, Quick Basic, Turbo...
Seguir leyendo
Al estudiar las etapas programables del pipeline de las GPU actuales se aprecia la existencia de tres tipos de shaders en la actualidad: vertex, fragment y geometry. En realidad existen distintas versiones de cada una de estas clases de shaders, pudiendo utilizarse unas u otras dependiendo del hardware con que...
Seguir leyendo
Con la disponibilidad de Windows 7 a pocos días vista, e infinidad de usuarios utilizándolo ya desde hace unas semanas (se puede obtener a través de MSDNAA, MSDN o TechNet, entre otros medios), comienzan a surgir por la red trucos que supuestamente mejoran el rendimiento de este sistema. Algunas de...
Seguir leyendo
Hace unos días (septiembre 2009) el conocido especialista en productos de Microsoft Paul Thurrott recomendaba en su blog la utilización de un programa cuya finalidad era facilitar la personalización de la pantalla de inicio de sesión de Windows 7. Se trata de una aplicación basada en WPF (Windows Presentation Foundation)...
Seguir leyendo
Una de las tareas más tediosas que los programadores tenemos que efectuar al trabajar con componentes de accesos de datos, es el establecimiento de las necesarias conexiones entre dichos componentes. La base de datos se enlaza con la sesión, lo mismo que las tablas y consultas. Cuando existen relaciones maestro/detalle...
Seguir leyendo
El lenguaje XML (Extensible Markup Language) es actualmente la mejor opción para comunicar unas aplicaciones con otras, ya sea intercambiando información, mediante documentos XML, o incluso efectuando llamadas, con protocolos XML-RPC (Remote Procedure Call basado en XML) como SOAP (Simple Object Access Protocol). El caso más habitual es el primero:...
Seguir leyendo
Delphi incorpora múltiples componentes que permiten usar los cuadros de diálogos comunes del sistema, pero ninguno que permita elegir una carpeta. En este tutorial te enseño cómo crearlo. Una de las posibilidades más interesantes de Delphi, como todos sabemos, es que podemos crear nuestros propios componentes e integrarlos en el...
Seguir leyendo
Internet Information Server es capaz de generar documentos dinámicos a partir de páginas ASP. Con Delphi 5 podemos crear componentes ActiveX para usar desde estas páginas. Te demostramos cómo hacerlo. Hubo un tiempo, no hace muchos años, en que las páginas web no eran mas que documentos HTML estáticos, composiciones...
Seguir leyendo
Todos los que programamos con C/C++, incluso los que nos consideramos experimentados, solemos emplear una significativa cantidad de tiempo depurando errores siempre relacionados con el mismo tema: la asignación dinámica de memoria. Siguiendo una serie de reglas básicas podemos reducir apreciablemente este tipo de fallos:Antes de usar un puntero comprobar...
Seguir leyendo
Introducción La meta información, o información tipos, es generada automáticamente para todos los tipos de datos en el momento de la compilación. Parte de esa información es intrínseca al propio tipo de dato: enumeración, estructura, clase, etc., siendo posible añadir otra mediante el uso de atributos. Éstos se emplean para...
Seguir leyendo
Qué es un servicio Windows Las aplicaciones que podemos ejecutar nativamente sobre las actuales versiones de Windows podemos agruparlas en tres categorías fundamentales: consola, con interfaz de usuario y servicios. Las primeras están basadas en texto y utilizan una ventana de consola para efectuar su trabajo. En el segundo grupo...
Seguir leyendo