domingo, 21 de diciembre de 2014

Business Intelligence

En esta última entrada del curso, vamos a hablar de un concepto completamente desconocido para el gran público, pero que tiene una gran relevancia en el devenir de las formaciones empresariales. Hablamos de “Business Intelligence”, que traducido al castellano, se podría nombrar como Inteligencia Empresarial o de negocio.

El Business Intelligence se conoce como el conjunto de estrategias y herramientas enfocadas a la creación y administración de conocimiento mediante el análisis de datos existentes en una empresa, de forma que se pueda optimizar el proceso de toma de decisiones en los negocios.

Para una correcta diferenciación de los conceptos dato, información y conocimiento, igual le resulta útil visitar la primera entrada de este blog, ya que son términos con los que se va a trabajar en la siguiente exposición sobre Business Intelligence.

Business Intelligence es la habilidad para transformar los datos en información, y la información en conocimiento, de forma que se pueda optimizar el proceso de toma de decisiones en los negocios.

Por así decirlo, las inteligencias empresariales hacen referencia al uso de datos en una empresa para facilitar la toma de decisiones. Hace referencia a varios aspectos, como son el análisis del funcionamiento actual de la empresa, así como la influencia de acontecimientos futuros, con la función de ofrecer conocimientos para respaldar las decisiones empresariales tomadas.

A modo de resumen de lo expuesto hasta ahora, podríamos decir que la inteligencia empresarial actúa como un factor estratégico para una empresa u organización, generando una potencial ventaja competitiva, que no es otra que proporcionar información privilegiada para responder a los problemas de negocio: entrada a nuevos mercados, consumidores potenciales, promociones u ofertas de productos, control financiero, optimización de costes y del sistema de la producción, análisis de perfiles de clientes, rentabilidad de un producto concreto, viabilidad de nuevos servicios o productos, etc...

Las herramientas de inteligencia se basan en la utilización de un sistema de información de inteligencia que se forma con distintos datos extraídos de los datos de producción, con información relacionada con la empresa o sus ámbitos y con datos económicos.

Entre los  sistemas de información más utilizados como apoyo a las empresas en la toma de decisiones, los más importantes son:
Sistema de Soporte a la Toma de Decisiones (DSS), que es un sistema informático que utiliza información y modelos matemáticos para ayudar a los trabajadores a tomar decisiones empresariales adecuadas según las condiciones del mercado y la situación interna de la compañía. Cualquiera que tenga acceso dentro de la organización puede utilizar esa información para tomar decisiones. Por ejemplo, un vicerrector quiere tomar la decisión si poner una nueva titulación, acceden a unas pantallas, ven la evolución de los alumnos, la demanda de la nueva titulación, encuestas y a partir de varias opciones se toman las decisiones.
Sistema para la Toma de Decisiones en Grupo (GDSS), que es un sistema basado en computadoras que apoya a grupos de personas que tienen una tarea u objetivo común, y que sirve como interfaz con un entorno compartido. El supuesto en que se basa el GDSS es que si se mejoran las comunicaciones se pueden mejorar las decisiones. La decisión la toman en grupo, cualquiera del grupo puede meter variables nuevas, opinar, hacer cálculos, todo se integra en el sistema y los demás del grupo lo pueden ver y utilizarlo. Es más complejo que un DSS simple.
Sistema de Información para Ejecutivos (EIS), una herramienta software, basada en un DSS, que provee a los gerentes de un acceso sencillo a información interna y externa de su compañía, y que es relevante para sus factores clave de éxito.
La finalidad principal es que el ejecutivo tenga a su disposición un panorama completo del estado de los indicadores de negocio que le afectan al instante, manteniendo también la posibilidad de analizar con detalle aquellos que no estén cumpliendo con las expectativas establecidas, para determinar el plan de acción más adecuado.
Sistemas Expertos de Soporte a la toma de decisiones (EDSS), que utilizan su conocimiento sobre un área específica para actuar como un consultor experto para los usuarios. Es utilizado si la decisión es muy compleja y necesitamos usar técnicas basadas en la inteligencia artificial.  

Pero todos estos datos con los que se trabaja no proceden de la nada, sino que tienen un origen. El Business Intelligence trabaja con  almacenes  de datos donde se concentra toda la información que puede necesitar una empresa, los más importantes son dos, y se puede entender que uno depende y procede del otro: el más grande se conoce como Datawarehouse, y una subdivisión de éste, conocido como Datamart.

-    - Datawarehouse (almacén de datos) es una base de datos corporativa caracterizada por integrar y depurar información de una o varias fuentes distintas, para luego procesarla permitiendo su análisis desde infinidad de enfoques diferentes y que ofrece grandes velocidades de respuesta. La creación de un datawarehouse representa en la mayoría de las ocasiones el inicio, desde el punto de vista técnico, para implantar una solución completa y fiable de Business Intelligence. La ventaja principal de este tipo de bases de datos radica en las estructuras en las que se almacena la información (modelos de tablas en estrella, en copo de nieve, cubos relacionales...). Por lo tanto, este tipo de persistencia de la información es homogénea y fiable, y permite la consulta y el tratamiento jerarquizado de la misma.
  - Datamart es una base de datos departamental, más específica que el sistema de datawarehouse, especializada en el almacenamiento de los datos de un área de negocio específica. Se caracteriza por disponer la estructura óptima de datos para analizar la información al detalle desde todas las perspectivas que afecten a los procesos de dicho departamento. Además, un datamart puede ser alimentado desde los datos de un datawarehouse, o integrar por sí mismo una agrupación de distintas fuentes de información.

¿Para qué sirve el Business Intelligence?


Ya hemos visto lo que es, los sistemas de información más empleados, y la procedencia de los datos con los que opera la inteligencia empresarial, pero… ¿qué objetivos se persiguen?
A modo de resumen y para dejar clara la utilidad del Business Intelligence, lo que permite es:
- Generar un análisis de la situación actual de la empresa.
- Entender cuál es la situación real en la que está inmersa la empresa, y a raíz de ello, las circunstancias y medidas que permitan una optimización de procesos.
- Simular diferentes supuestos, y a partir de ello, determinar qué podría ocurrir si se llevan a cabo.
- Todos estos apartados no son a título personal, sino que afectan a un grupo, pudiendo ser los diferentes departamentos de la empresa, o la empresa completa como bloque. Por ello, se debe colaborar y establecer una estrategia común que permita conseguir los objetivos extraídos del propio Business Intelligence.
- Una vez que todos los elementos están expuestos encima de la mesa, queda por determinar finalmente tras previa valoración de todos los puntos, cuál es la estrategia final que adopta la agrupación.

Sin poner un ejemplo específico (aunque hay cientos), la complicada situación laboral que se está dando actualmente en España ha hecho que una gran cantidad de empresas hayan tenido que recurrir a la técnica del Business Intelligence para la reorganización de plantillas, la optimización de los productos y servicios o la reestructuración de procesos con el fin de optimizar la producción y adecuarse a las nuevas circunstancias que presentan los mercados.


La tecnología Business Intelligence beneficia a empresas de todos los sectores existentes y tamaños posibles, desde las pymes hasta grandes multinacionales. Gracias a esto, tenemos un método que nos permite utilizar de manera más efectiva y con mayor calidad la información, facilitando y agilizando la toma de decisiones en todos los ámbitos de la organización y posibilitando la transformación del negocio mediante la información. Como se ha dicho en la introducción, aunque no es un término muy conocido para personas fuera del ámbito más especializado, es de grandísima utilidad y necesidad para el funcionamiento correcto de las empresas.

domingo, 30 de noviembre de 2014

Recuperación de la información

En esta entrada al blog vamos a hablar de un tema interesante como es la recuperación de datos. Es un asunto bastante complejo pero importante, por lo que vamos a tratar de explicarlo de manera que sin tener excesivos conocimientos por parte del lector, se pueda tener un concepto más o menos general de qué es, cómo funciona y cómo se consigue.
El proceso de recuperación: se lleva a cabo mediante consultas a la base de datos donde se almacena la información estructurada, mediante un lenguaje de interrogación adecuado.

Técnicas de recuperación de información

Hay muchas técnicas, aunque vamos a ver que se basan principalmente en el uso de los operadores adecuados para cada contexto.
Sistemas de recuperación de lógica difusa: Es un procedimiento que permite establecer consultas con frases. La máquina de manera sistemática al realizar la búsqueda elimina caracteres que considera innecesarios como signos de puntuación, artículos, palabras comunes…,  y quedándose sólo con  aquellas palabras que el sistema considera relevantes. La recuperación se basa en proposiciones lógicas con valores de verdadero y falso (true or false), teniendo en cuenta la localización de la palabra en el documento.
Técnicas de retroalimentación por relevancia: Esta técnica pretende obtener el mayor número de documentos relevantes tras establecer varias estrategias de búsqueda. Dentro de ésta, destacamos el “Algoritmo Genético”, que recibe este nombre porque se basa en un esquema similar al de la teoría de la evolución biológica, es decir, por así decirlo, prosperan los argumentos que se adaptan mejor al “medio”. En este caso, a la circunstancia que requiramos.
Técnicas de ponderación de términos: Los documentos recuperados se encuentran en función del valor obtenido en la ponderación. El valor no es algo estrictamente subjetivo de la máquina, sino que depende de los términos pertinentes que contenga el documento y la frecuencia con que se repita. De forma que, el documento más pertinente de búsqueda sería aquel que tenga representado todos los términos de búsqueda y además el que más valor tenga repetidos más veces, independientemente de donde se localice en el documento.
Técnica de clustering o de agrupamiento: Su nombre procede del inglés. Cluster significa racimo, lo cual nos puede guiar bastante sobre en qué consiste esta técnica. Consiste en un procedimiento de agrupación de una serie de vectores de acuerdo con un criterio. Esos criterios son por lo general distancia o similitud. La cercanía se define en términos de una determinada función de distancia, como la euclídea, aunque existen otras más robustas o que permiten extenderla a variables discretas. La medida más utilizada para medir la similitud entre los casos es la matriz cuadrada de correlación entre los nxn casos. Sin embargo, también existen muchos algoritmos que se basan en la maximización de una propiedad estadística llamada verosimilitud. Y esta técnica es bastante utilizada en el campo de la estadística matemática, aunque requiere de conocimientos previos en la materia para poder entenderse. Para los propósitos que tiene este blog, con lo contado del clustering, es suficiente.
Técnicas de stemming: La técnica de Stemming lo que pretende es eliminar las posibles confusiones semánticas que se puedan dar en la búsqueda de un concepto, para ello trunca la palabra y busca solo por la raíz. Stem(inglés)=tallo(español).
Uno de los problemas con los que nos podemos encontrar en nuestra búsqueda es que se pueden recuperar muchos documentos que no son relevantes, ya que la búsqueda ha sido demasiado genérica, lo que conocemos como ruido documental, o bien no podemos recuperar la información almacenada en la base de datos, ya que la estrategia de búsqueda ha sido demasiado específica o las palabras clave utilizadas no eran las adecuadas, esto es conocido como silencio documental. No es algo sencillo, por lo que aparte de dominar de ciertas técnicas también hay que saber qué elementos y sistemas nos pueden ayudar para la recuperación de la información.

Herramientas de búsqueda

Para recuperar la información contamos con una serie de herramientas que pasaremos a definir a continuación.
Bases de datos: son un conjunto de información homogénea que mantiene una estructura ordenada y relacionada entre sí.
Internet: donde podemos obtener información de manera automática, según los criterios de nuestra búsqueda, a través del manejo de buscadores, directorios y otras herramientas (a estas alturas, no debería ser necesario explicar el funcionamiento de internet).
Lenguajes de indización y  control terminológico: Índices que, son un listado de términos normalizados que representan el contenido de un recurso. Algunos tipos son:
Índice de materias.
Índice alfabético. 
Índice KWIC: en el que el contenido temático de una obra se representa mediante palabras clave de su título 
Índice KWOC: en que las palabras clave aparecen como un encabezamiento en línea separada. 
Palabras clave (Keywords): esta opción nos permite acotar y precisar información, para definir la palabra exacta es conveniente utilizar especificadores.
Tesauros: es un listado terminológico controlado sobre un área de conocimiento que mantiene entre sí relaciones semánticas y genéricas. Su principal característica es que los términos están ordenados jerárquicamente, permitiendo la precisión terminológica en la búsqueda de información.
Lenguajes de interrogación y ecuaciones de búsqueda: cada sistema de recuperación tiene su propio lenguaje de interrogación con una sintaxis propia, que es el que nos permite "hablar" en el mismo lenguaje que la base de datos. Las reglas gramaticales en el lenguaje de interrogación son los operadores lógicos 
Operadores: son los encargados de expresar la relación que mantienen entre sí los términos que pueden definir las necesidades informativas del usuario. Los más utilizados son: 
·Operadores lógicos (o booleanos) que, nos proporcionan un resultado a partir de que se cumpla o no una cierta condición. Los tres operadores básicos son. 
El operador suma/unión (+, generalmente identificado como O/OR), 
El operador producto/intersección ( identificado como Y/AND), y 
El operador resta/negación (-, identificado como NO/NOT).
Operadores posicionales, que permiten especificar la posición de las palabras dentro del documento. Hay tres tipos, que son: 
Cerca (NEAR).
Junto (ADJ).
O simplemente, sentencias o frases.

Calidad de la recuperación

Por último, vamos a presentar  unos criterios básicos que se deben cumplir para que el proceso de recuperación que hemos realizado  sea de calidad.
Consistencia: Capacidad que tiene un sistema de búsqueda en coordinar su sistema de clasificación con el lenguaje de búsqueda, permitiendo de esta manera establecer ecuaciones de búsqueda sobre términos admitidos.
Exhaustividad: Es la cualidad de un sistema de información para recuperar la totalidad de los documentos relevantes que posee una colección, conforme a los requerimientos establecidos en la estrategia de búsqueda.
Tasa de acierto: coeficiente que surge de dividir el número de documentos relevantes recuperados, sobre el número total de documentos relevantes de la colección (por así decirlo, supondría un coeficiente de rendimiento).
Relevancia: Característica de un documento recuperado que cumple con la necesidades de información.
Tasa de relevancia: coeficiente que surge de dividir el número de documentos relevantes recuperados, sobre el número total de documentos recuperados.
Apropiación: Es la cualidad que tiene el documento recuperado de adaptarse a las necesidades de información.
Tasa de pertinencia: coeficiente que surge de dividir el número de documentos pertinentes recuperados, sobre el número total de documentos recuperados.
Precisión: es la capacidad que tiene el sistema de búsqueda en coordinar la ecuación con los documentos más relevantes. De otra forma son aquellos documentos relevantes recuperados.
Tasa de precisión: coeficiente que surge de dividir el número de documentos relevantes recuperados, sobre el número total de documentos de la colección.



Como podemos ver, la recuperación de datos e información es una rama del conocimiento bastante extensa y algo compleja de entender si no se está habituado a cierta terminología y tecnicismos. Tras la lectura de esta entrada al blog, probablemente el funcionamiento y características de este proceso le haya quedado algo más claro, si bien, la información que se ha detallado es sólo una pequeña parte de todo lo que este proceso comprende. Haciendo un guiño al tema que hablamos en la anterior entrada, si algo no le ha quedado del todo claro, mediante el uso de cualquier buscador, puede encontrar muchísima más información pues como ya se ha dicho, es un tema muy extenso y de gran utilidad en cualquiera de los ámbitos que nos podamos encontrar a nivel doméstico o profesional.

Referencias:
http://es.wikipedia.org/wiki/B%C3%BAsqueda_y_recuperaci%C3%B3n_de_informaci%C3%B3n
http://www.mariapinto.es/e-coms/recu_infor.htm
http://eprints.rclis.org/16262/1/libro-ri.PDF
http://www.elprofesionaldelainformacion.com/contenidos/1995/octubre/teora_de_recuperacin_de_informacin_modelos_fundamentales_y_aplicaciones_a_la_gestin_documental.html

domingo, 9 de noviembre de 2014

Buscadores

En esta entrada vamos a hablar de un elemento que ya pasa desapercibido en nuestras vidas, que era inconcebible hace tan sólo un par de décadas para el usuario común pero que actualmente es un complemento utilizado por todos nosotros cada día, incluso para llegar a ver este blog. Hablamos de los motores de búsqueda, o más comúnmente conocidos como buscadores. 

Un motor de búsqueda es un sistema informático que busca archivos almacenados en la base de datos de servidores web gracias a lo que se conoce como spider o araña web. Nos vamos a centrar en los buscadores de Internet (algunos buscan únicamente en la web, pero otros lo hacen además en noticias, servicios como Gopher, FTP, etc.) cuando se pide información sobre algún tema. Las búsquedas se hacen con palabras clave o con árboles jerárquicos por temas. El resultado de esta búsqueda es un listado con direcciones web en los que se mencionan temas relacionados con las palabras clave buscadas.
Por fuera y sin valorar con demasiada profundidad el funcionamiento de un buscador, se basa principalmente en introducir unas keywords (palabras clave) en la barra de texto que habilita la página de búsqueda. Entonces el buscador busca de manera textual o aproximada los términos introducidos, es decir, aquellas páginas webs cuyo contenido guarde relación con el tema solicitado. Esto cumple con lo básico pero existen también opciones más avanzadas para depurar la búsqueda, que puede filtrar miles de páginas y así poder trabajar con un número más reducido de páginas.
El hecho de cuál es mejor buscador o cuál peor es algo completamente subjetivo y de lo que luego un modesto servidor opinará al respecto. Una opinión que no tiene por qué ser compartida ya que no hay una verdad absoluta al respecto. Sin embargo, internet es un mundo dinámico que cambia a cada décima de segundo, por lo que ningún buscador tiene un registro actualizado constante del contenido de cualquier página. Esto hace que un buscador pueda albergar direcciones útiles que otro no. Por lo tanto, una recomendación es utilizar varios buscadores para optimizar nuestros procesos en internet.
Por así decirlo, “macroscópicamente” ya hemos determinado cómo funcionan los motores de búsqueda. Pero… ¿cómo funciona por dentro un sistema de búsqueda?
Para localizar la información existen los llamados algoritmos de búsqueda que, están diseñados para localizar un elemento concreto dentro de una estructura de datos.

Interesante y relacionado con este tema, en marzo de 2013 la compañía referencia de los motores de búsqueda, Google, explicó públicamente en un vídeo cómo funciona su algoritmo de búsqueda. Hasta entonces había sido unos de los secretos mejores guardados del mundo de la información.
El motor de búsqueda recoge más de 30 millones de millones de páginas, maneja alrededor de 100 millones de gigabytes, recibe unos 100.000 millones de búsquedas mensuales y “está en constante crecimiento” según miembros de su compañía. Recalcular y ordenar este material se produce a través del «crawling», que recorre las diferentes páginas. Los propietarios de los portales pueden decidir si su contenido se rastrea o no, aunque el deseo de un creador de web suele ser las visitas de terceras personas.
Google ordena las páginas en función del contenido y otros factores mediante una serie de fórmulas matemáticas que ofrecen «el mejor resultado posible». Esos algoritmos ponen manos a la obra al motor de búsqueda para traducir lo que el usuario pretende encontrar. Así que mediante diversas funcionalidades como la corrección de errores ortográficos, la proporción de alternativas de búsqueda o el autocompletado se acota la búsqueda.
Una explicación más detallada y mejor elaborada que la mía será la de Matt Cutts, ingeniero del equipo de Google. Por ello, se adjunta el enlace del vídeo al que hacemos referencia.
http://www.youtube.com/watch?v=MY42gAZqlSQ
Existen varios tipos de algoritmos de búsqueda que vamos a explicar a continuación:
·Búsqueda binaria: se utiliza cuando el vector en el que queremos determinar la existencia de un elemento está previamente ordenado. Este algoritmo reduce el tiempo de búsqueda considerablemente, ya que disminuye exponencialmente el número de iteraciones necesarias. Está altamente recomendado para buscar en arrays de gran tamaño.
·Búsqueda secuencial: se utiliza cuando el vector no está ordenado o no puede ser ordenado previamente. Consiste en buscar el elemento comparándolo secuencialmente (de ahí su nombre) con cada elemento del arreglo hasta encontrarlo, o hasta que se llegue al final. La existencia se puede asegurar cuando el elemento es localizado, pero no podemos asegurar que no exista hasta no haber analizado todos los elementos del arreglo.
No todos los buscadores son iguales. Se pueden agrupar y distinguir en diferentes grupos en función del propósito que tengan o de su manera de operar. Según su funcionalidad pueden ser:
 ·Genérico u horizontal (como por ejemplo Google, Yahoo o Bing) funciona utilizando unos programas (llamados robots o arañas) como ya hemos explicado, que rastrean Internet y leen tantas páginas como puedan. El buscador crea posteriormente un índice que contiene las palabras de los documentos leídos, utilizando un algoritmo propietario que asegure que para cada búsqueda se devuelvan los resultados más significativos.
·Temáticos o verticales (como Rastreator o Trivago) que envían sus robots a un número limitado de páginas web sobre un tema concreto, lo que permite que tanto la obtención de la información como la creación del índice sean más especializadas en el sector del que se trata. Al tratarse de un número de fuentes más reducido que en un buscador genérico los buscadores verticales pueden también actualizar su información con mayor frecuencia. Adicionalmente, un buscador vertical ofrece a los usuarios mecanismos de búsqueda avanzada específicamente diseñados para el sector.
Los buscadores verticales o temáticos suponen una nueva generación después de los modelos de búsqueda horizontal. La revista Business Week ha clasificado los buscadores verticales como parte de un “renacimiento tecnológico”.
En principio se puede pensar que es imposible competir ante empresas gigantes como Google o Yahoo, pero el hecho de ofrecer un servicio específico supone varias ventajas para el consumidor, ya que el contenido es más exacto y fiable al haber responsables en la empresa para corroborar los servicios y precios. Además, económicamente se pueden generar muchos ingresos, ya que al ser temáticas, abarcan a un restringido tipo de consumidor que acude a dichas páginas con buscadores en principio para solicitar un servicio. Es decir, son compradores potenciales, y eso supone que las empresas del sector quieran publicitarse en dichas páginas en busca de clientes.
Otro tipo de agrupación, en este caso en función del origen de sus datos es la que constituyen los buscadores propiamente dichos que ya han quedado definidos y los llamados metabuscadores.
El meta-search o metabuscador es un sistema que localiza información en los motores de búsqueda más usados y que se distingue de estos en que carece de base de datos propia, ya que usa las de otros buscadores y muestra una combinación de las mejores páginas que ha devuelto cada uno. Para que quede completamente claro y no haya lugar a equívocos, un metabuscador es otra vuelta de rosca, es un buscador de buscadores. Hay gran cantidad de metabuscadores, como Metacrawler o Zapmeta. Como todo, ofrecen ventajas e inconvenientes que el usuario debe siempre tener en consideración:
Ofrecen gran cantidad de respuestas. Aunque no todos operan igual, muchos enseñan la relevancia de las webs que muestran como resultado, lo cual puede guiar al usuario para un uso óptimo. Sin embargo, cada buscador trabaja de una manera distinta y con diferente sintaxis mientras que los metabuscadores trabajan con el mismo criterio de búsqueda y sin hacer distinciones en este aspecto, lo cual puede dar lugar a resultados diferentes a los esperados o que nos pueden resultar poco útiles. Además, al ser un buscador de buscadores, el proceso tiende a ralentizarse en exceso en comparación con un buscador convencional.
Como ven, hay una gran variedad de motores de búsqueda, cada uno con sus particularidades. Como siempre decimos, es el usuario el que decide finalmente qué sistema es el más apropiado para sus necesidades. En algunos casos, porque Google es el genérico que suele venir como predeterminado en la mayoría de sistemas y para el nivel usuario, resulta sobradamente eficaz. En otros casos, el desconocimiento de otros buscadores hace que se utilice el que viene por defecto.

Sean o no éstos los motivos, lo cierto es que casi tres cuartas partes de las búsquedas por internet (71,36%) se realizan mediante Google. Muy a la zaga están Baidu, con un 16,35%. Puede resultar bastante sorprendente por lo poco conocido que resulta en el mundo occidental este buscador, pero si decimos que está destinado al idioma chino, debido a la gran población en el país asiático, el dato encaja perfectamente. Relegado a la tercera posición, el motor de búsqueda diseñado por Microsoft, Bing, con sólo un 5,83%, cercano al 5,45% de Yahoo. Todos los datos los puedes encontrar en el blog de informática de la Universidad Cardenal Herrera, cuyo enlace se adjunta en el apartado “Referencias”.
Como último punto y para terminar esta entrada, una recomendación. Usar un buscador u otro no es garantía de nada, y el hecho de que una página aparezca antes o después tras una búsqueda no supone absolutamente nada. No por ello la información que contiene es mejor o completamente cierta. No todo es real en internet y un buscador no tiene manera de descubrir si algo es cierto o no. Por ello, siempre es recomendable utilizar varios buscadores, y a partir de ahí, decidir qué información es útil para nuestro propósito y cuál no.
Y tú, ¿qué motor de búsqueda empleas usualmente y por qué?

Referencias:

domingo, 26 de octubre de 2014

Bases de datos y sistemas de almacenamiento

En esta entrada vamos a ver los conceptos de bases de datos y de sistemas de almacenamiento como introducción y profundizaremos más en los diferentes tipos de dispositivos que existen para el almacenamiento de la información.
Los dispositivos de almacenamiento guardan la información en tecnología de bases de datos. De ahí que exista una necesidad intrínseca de definir el concepto de base de datos.
Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. Por ejemplo, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel y disponibles para su consulta. Sin embargo, debido al avance tecnológico en diferentes campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un componente electrónico, que se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos. Algunos de estos problemas era la redundancia de datos además de la gran dificultad y elevado coste que suponía cualquier tipo de actualización.
Existen programas denominados sistemas gestores de bases de datos, abreviado SGBD, que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos SGBD, así como su utilización y administración, se estudian generalmente dentro del ámbito de la informática.
Ahora que ya conocemos un poco mejor (para quien no lo supiese) lo que es una base de datos, podemos proceder a hablar de los dispositivos de almacenamiento.

Dispositivos físicos de almacenamiento

Los dispositivos de almacenamiento se han ido adecuando, como todo, al avance tecnológico y a las nuevas necesidades que han ido apareciendo tanto en el plano doméstico como en el profesional. Se observa una gran diferencia entre los medios primitivos de almacenamiento y los que tenemos hoy día (aunque éstos aun así quedarán tremendamente desfasados igualmente en un futuro). Por ello, vamos a hacer un pequeño recorrido histórico entre los distintos elementos tecnológicos capaces de almacenar información de forma permanente, por orden de aparición.

· Tarjeta perforada: se pueden definir como los primeros sistemas de almacenamiento en computación. Era una simple cartulina cuyo sistema de almacenamiento se basaba en perforaciones en código binario. Su capacidad era limitada y arcaica en comparación con lo que tenemos hoy día.

· Cinta magnética: eran unas tiras magnéticas también con perforaciones en su superficie que eran leídas por la máquina mediante el magnetismo. Por así decirlo, supusieron una mejora de las tarjetas perforadas previamente descritas, siendo las cintas magnéticas más fiables y cómodas en su uso. Su perfeccionamiento supuso la aparición de formatos más recientes y conocidos para nosotros como las cintas de vídeo o el cassette. 
 · Disco magnético: es una pieza metálica a la que se ha aplicado, por ambos lados, una película magnética que permite almacenar información. Los principales discos magnéticos son, el disquete y el disco duro. 
· Discos ópticos: es un formato de almacenamiento de datos digital, que consiste en un disco circular en el cual la información se codifica, se guarda y almacena, haciendo unos surcos microscópicos (inapreciables a simple vista) con un láser sobre una de las caras planas que lo componen. Los más utilizados son los CD, DVD y como evolución desde último, el Blu-ray. 
· Tarjetas de memoria: es un dispositivo de almacenamiento que conserva la información que le ha sido almacenada de forma correcta aún con la pérdida de energía, es decir, es una memoria no volátil. Son fáciles de utilizar y de pequeño tamaño. 
· Memoria USB: es un dispositivo de almacenamiento que utiliza una memoria flash (mediante impulsos eléctricos, permite la lectura y escritura de múltiples posiciones de memoria en la misma operación) para guardar información. Los primeros modelos necesitaban una batería, pero los actuales usan la energía eléctrica procedente del puerto USB. Son resistentes a los golpes, al polvo y algunos hasta al agua, factores que afectaban a las formas previas de almacenamiento portátil, como los disquetes, discos compactos y los DVD.


Dispositivos virtuales de almacenamiento (no físicos)

En este ámbito estamos tan sólo en el comienzo, ya que es un concepto relativamente novedoso y que presenta un elevado potencial de progresión. Es probablemente el medio que más utilicemos, aunque no seamos la mayoría conscientes de ello, ya que un gran número de información, vídeos, etc…, vienen almacenados en este formato en internet (Youtube,Soundcloud...).
Según Wikipedia, la computación en la nube, conocido también como servicios en la nube, informática en la nube, nube de cómputo o nube de conceptos, es un paradigma que permite ofrecer servicios de computación a través de internet.
La computación en nube presenta bastantes ventajas:
Lo primero es que el usuario se puede ver favorecido por las ventajas que le puede ofrecer el proveedor. Además, los sistemas en la nube controlan y optimizan el uso de los recursos de manera automática, dicha característica permite un seguimiento, control y notificación del mismo. Esta capacidad aporta transparencia tanto para el consumidor o el proveedor de servicio.
En cualquier agrupación siempre se busca la optimización de recursos al menor coste. Pues según los proveedores de computación en la nube afirman que los costes se reducen. Un modelo de prestación pública en la nube convierte los gastos de capital en gastos de funcionamiento. Ello reduce barreras de entrada, ya que la infraestructura se proporciona típicamente por una tercera parte y no tiene que ser adquirida por una única sola vez o tareas informáticas intensivas infrecuentes.
El almacenamiento es relativamente instantáneo, y se puede disponer de ellos sin que los usuarios necesiten cargas de alta duración.
Además, ofrece una independencia de la ubicación y una gran versatilidad ya que permite a los usuarios acceder a los sistemas utilizando un navegador web, independientemente de su ubicación o del dispositivo que utilice (por ejemplo, PC, teléfono móvil).
La tecnología de virtualización permite compartir servidores y dispositivos de almacenamiento y una mayor utilización. Las aplicaciones pueden ser fácilmente migradas de un servidor físico a otro.
Dado que la computación en nube no permite a los usuarios poseer físicamente los dispositivos de almacenamiento de sus datos (salvo que sean copiados los datos a un dispositivo de almacenamiento externo, como una unidad flash USB o un disco duro), deja la responsabilidad del almacenamiento de datos y su control en manos del proveedor.
La computación en nube ha sido criticada por limitar la libertad de los usuarios y hacerlos dependientes del proveedor de servicios. Algunos críticos afirman que sólo es posible usar las aplicaciones y servicios que el proveedor esté dispuesto a ofrecer.
Por ejemplo, Richard Stallman, voz autorizada en el tema por ser el fundador de la Free Software Foundation, cree que la computación en nube pone en peligro las libertades de los usuarios, porque éstos dejan su privacidad y datos personales en manos de terceros. Ha afirmado que la computación en nube es "simplemente una trampa destinada a obligar a más gente a adquirir sistemas propietarios, bloqueados, que les costarán cada vez más conforme pase el tiempo".
Este sistema de almacenamiento (por desgracia) está de rabiosa actualidad debido al ataque hacker que ha sufrido iCloud, la nube que almacena los datos (si bien está a elección del usuario) de los dispositivos de la compañía Apple. Esto ha permitido la filtración de información íntima (en su mayoría, fotos) de personajes de relevancia pública y social. Todo esto sin autorización de los afectados, con la consiguiente vulneración del derecho a la intimidad. Esto ha trascendido por el mero hecho de que ha afectado a personajes famosos pero… ¿Somos realmente conscientes de los datos personales que pueden ser conseguidos en este tipo de sistemas de almacenamiento sin nuestro consentimiento?
A pesar de ello, cualquier sistema de almacenamiento (ya sea físico o virtual) puede ser atacado con algún propósito, por lo que no debemos incurrir en el error de que el almacenamiento en nube es menos seguro que cualquier sistema convencional de los previamente citados. Aunque la seguridad puede mejorar debido a la centralización de los datos, es a menudo tan buena o mejor que otros sistemas tradicionales, en parte porque los proveedores son capaces de dedicar recursos a la solución de los problemas de seguridad que muchos clientes no pueden permitirse el lujo de abordar.

Con esto finalizamos el repaso por los principales sistemas de almacenamiento de ayer y de hoy. Todos tienen sus ventajas e inconvenientes, de ahí que cada uno puede ofrecer su propia conclusión al respecto. Yo como tal, voy a hacer lo propio y voy a posicionarme. El debate obviamente no está entre si es mejor un pendrive o una tarjeta perforada, ya que no son contemporáneos. Se debe debatir entre los sistemas que coexisten y en este caso, entre los sistemas físicos como CD’s, dispositivos de almacenamiento USB…, y el sistema virtual de almacenamiento en nube. El hecho de haber valorado tan a fondo, con sus ventajas e inconvenientes) éste último no ha sido trivial y me posiciono a favor de los servicios en nube. Para un servidor, ofrece dos principales ventajas con las que a día de hoy ningún medio físico puede permitir.
El primero es la versatilidad que ofrece la necesidad nula de utilizar un dispositivo de almacenamiento para acceder o guardar información. Simplemente con tener acceso a internet (algo que cada vez es más fácil de tener en cualquier lugar) y puede incluso ser portátil (PC, móvil, tablet…), puedes trabajar con aquello que desees.
El segundo punto es si cabe más rotundo frente a su competencia. Internet no tiene límites conocidos, y eso implica que la información que puede albergar tampoco. Luego el empleo de un sistema en nube puede acoger toda la cantidad de información que podamos imaginar. Y lo mejor de todo, es que grandes compañías siguen trabajando en conseguir mejores infraestructuras para permitir la progresión de este estilo de almacenamiento.
Como último dato, aunque no del todo generalizado, los servidores en nube suelen ser gratuitos.
Como ven, hay para todos los gustos. Pero como siempre, la elección está en el consumidor.







domingo, 12 de octubre de 2014

Lenguajes de programación más utilizados.

En esta entrada vamos a hablar sobre diferentes lenguajes de programación y de las distintas aplicaciones que éstos pueden tener en la vida real, tanto para computadores como material industrial.
Lo primero va a ser caracterizar el funcionamiento de un computador y la necesidad del empleo de un lenguaje para programar.
Para programar, necesitamos una serie de instrucciones que permitan a la máquina realizar la función que queremos. Pero una máquina no utiliza nuestro lenguaje común, sino que trabaja con una serie de operaciones aritméticas y lógicas, mediante codificación en números binarios, esto es, con 0 y 1. Este conjunto de códigos numéricos constituyen el lenguaje máquina. Nosotros no trabajamos con ello, pues la programación implicaría una complejidad inaccesible para el programador. En programación, se trabaja con un mnemónico, una palabra que sustituye este lenguaje máquina para facilitar esta función. La combinación de estas palabras de adaptación es el conocido como lenguaje ensamblador. Aunque hay programadores que tienen capacidad para ejecutar instrucciones utilizando este lenguaje, sigue siendo de gran complejidad. Se utiliza en su lugar lenguajes, que se asemejan más al lenguaje común. Un archivo que contiene sentencias de lenguaje lo denominamos código fuente. Por último, un compilador es un programa que convierte el código fuente en lenguaje ensamblador. Un ejemplo de ensamblador es el lenguaje C, que es el lenguaje de programación más utilizado, según el ranking elaborado por el Índice Tiboe, actualizado a enero de 2014. El ranking es el siguiente:




A continuación se exponen los lenguajes que encabezan la lista de manera breve. Como ya hablamos en la anterior entrada al blog, la información sobre un tema puede llegar a ser infinita y disponemos de muchos medios de información donde documentarse para un conocimiento más extenso. Comenzamos por el lenguaje C.

Lenguaje C
C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL.
Es uno de los lenguajes más antiguos de programación que se conocen, pero es casi de obligado aprendizaje para cualquier rama de ingeniería que utilice sistemas programables. Además, al ser uno de los primeros en aparecer, la mayoría de creadores de otros lenguajes lo utilizaron como base, por lo que conocer sus fundamentos, facilita el aprendizaje de más idiomas de programación.
Se usa para programar microcontroladores, para desarrollar sistemas operativos o programas que operan en tiempo real.

Java
Java es un lenguaje orientado a objetos, lo que quiere decir es que en su creación se trató de orientar a una forma similar al modo de  pensar humano. Permite desarrollar aplicaciones multiplataforma (funcionan tanto en plataforma UNIX como en Windows).
Basada en el concepto de máquina virtual.
Es un lenguaje compilado, generando ficheros de clases compilados, pero estas clases compiladas son en realidad interpretadas por la máquina virtual java. Siendo la máquina virtual de java la que mantiene el control sobre las clases que se estén ejecutando.
Es un lenguaje multiplataforma: El mismo código java que funciona en un sistema operativo funcionará en cualquier otro sistema operativo que tenga instalada la máquina virtual java.
Es un lenguaje seguro: La máquina virtual al ejecutar el código java realiza comprobaciones de seguridad, además el propio lenguaje carece de características inseguras, como por ejemplo los punteros.
Gracias al API de java podemos ampliar el lenguaje para que sea capaz de, por ejemplo, comunicarse con equipos mediante red, acceder a bases de datos, crear páginas HTML dinámicas, crear aplicaciones visuales al estilo Windows.

Objective-C
Objective-C es otro lenguaje muy utilizado, que surgió a principio de los 80 de la mano de Brad Cox y Tom Love. Como pequeña caracterización se puede decir que es una ampliación de C, C++ (que a su vez tiene similitudes bastante notables con C y del que hablaremos a continuación)  y Java, por lo que intentar asimilar sus conceptos básicos de inicio es muy complicado pero su aprendizaje conociendo estos lenguajes puede simplificarse por resultar familiar.



C++
Ligeramente posterior en el tiempo al anterior (en este caso, mediados de los 80), fue creado por Bjarne Stroustrup con el propósito de conseguir una aceptación y éxito que consiguió el lenguaje C, en el que se basó para crear C++. Se basa en una composición estructurada a objetos.
Quizá la principal diferenciación con su hermano mayor (lenguaje C) es que es algo más complejo de usar (también se suele utilizar en mayores estructuraciones), aunque queda un bloque más organizado debido al ya definido concepto de orientación a objetos. De hecho, puede que sea el lenguaje más utilizado junto a C en aplicaciones comerciales, programas y aplicaciones web como  Firefox, Chrome, Opera, Office, Visual Studio, Photoshop, Acrobat o Autocad, etc. y algunos juegos y sistemas operativos.

C#
C# es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET. Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes. Es un lenguaje de propósito general que se utiliza para desarrollar software para Microsoft y Windows, aunque con la aparición de nuevos compiladores, se ha estandarizado el uso también en el entorno de otras plataformas de Apple (iOS,Mac OS) y Android. 

Estos son según el ranking Tiboe los más utilizados en el curso pasado. Eso indica que son los más utilizados, pero no por ello los más útiles o los que ofrezcan una mayor funcionalidad. No se puede decir que un lenguaje de programación es mejor que otro de manera generalizada, sino que hay que valorarlo en función de la utilidad y practicidad que presente en el ámbito para el que esté desarrollado.

Esto nos lleva a hacernos una pregunta. ¿Cuál es el lenguaje de programación con más futuro? Obviamente es un tema tan subjetivo como difícil de determinar, porque con el avance de la tecnología, lo que hoy puede tener potencial, mañana puede estar desfasado. Probablemente y sin que se tome como una valoración demasiado contrastada, quizá el futuro esté en los lenguajes de desarrollo web.

En la actualidad en el entorno europeo destaca principalmente PHP.  Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procese los datos. El código es interpretado por un servidor web con un módulo de procesador de PHP que genera la página Web resultante. PHP ha evolucionado y es usado en la mayoría de los servidores web al igual que en casi todos los sistemas operativos y plataformas sin ningún costo. En Estados Unidos, para el mismo propósito, es más utilizado Python.

Si se pregunta por el que tiene más futuro (entendido como futuro muy cercano), para mí es JavaScript. Se diseñó con una sintaxis similar a C, aunque es más próximo a Java. Sin embargo, Java y JavaScript no están relacionados y tienen semánticas y propósitos diferentes. Tiene un gran número de aplicaciones, que van mucho más allá de lo que se cree, pues es una máquina muy potente que no sólo tiene aplicaciones para web como en sus inicios. Lo encontramos en muchos ámbitos, ya no solo en Internet y la Web, también es nativo en sistemas operativos para ordenadores como FirefoxOS o Blackberry 10, como lenguaje nativo en Windows 8 y dispositivos del lado del servidor y del cliente. Existe una gran demanda de profesionales con conocimientos avanzados de Javascript, necesarios para acometer cualquier proyecto en la web de última generación. De ahí que la destaquemos como el lenguaje con más futuro.

domingo, 5 de octubre de 2014

Información,documentación, y fuentes

Vivimos  en el siglo XXI, en plena era de la información. Gran cantidad de elementos de nuestra vida cotidiana como libros, ordenador, televisión, dispositivos portátiles… Todos ellos nos permiten tener acceso a innumerables fuentes para conseguir aquello que deseemos conocer, sea de la temática que sea, pues lo común es que todos los medios que prestan esta información estén especializados en la materia a tratar y hayan tenido una documentación previa para realizar su exposición. Información y documentación, dos conceptos que se van a tratar, sin excesiva profundidad, en las siguientes líneas, para una mayor comprensión de ambos conceptos, así como diferentes aspectos que pueden abarcar.

Lo primero es realizar una distinción entre unos términos que aunque se utilicen indistintamente en ciertos contextos de nuestra vida cotidiana, realmente no hacen referencia a una misma realidad. Vamos a especificar el significado de tres palabras relacionadas, pero no iguales, que son dato, información, y conocimiento.
Un dato va a ser nuestro punto de partida. Es la base, la parte “indivisible” de referencia. Es una letra, un número, una palabra… que por sí solo no constituye nada pero que en combinación con otros elementos u otros datos, dan lugar a una unidad mayor que denotamos como información. Por así decirlo, información es un conjunto de datos ordenados y ubicados en un determinado contexto que le otorguen sentido a dichos datos.
El siguiente nivel es el conocimiento es una unión de los dos términos previamente definidos. Consiste en el trato y comprensión de datos e información y ser capaz con ello de darle una utilidad y poder usarlo como medio para la resolución de situaciones y toma de decisiones. Por último, la correcta aplicación de este conocimiento mediante el análisis y la reflexión, es lo que nos lleva a la sabiduría.


Como ya se ha hablado antes, vivimos en la era tecnológica, que nos permite tener acceso a multitud de elementos que nos pueden informar de aquello que deseemos. Actualmente, la realidad más recurrente que nos relaciona con este contexto es internet. Tenemos a nuestra disposición una cantidad inmensa de medios que nos aportan datos sobre aquello de lo que queremos conocer, algo muy ventajoso e interesante, sobretodo si lo comparamos con el acceso a la información que teníamos, por poner un margen temporal, 15 años atrás. Sin embargo, no todo el monte es orégano, y la libertad para publicar cosas sin necesidad de medios editoriales en internet puede causar malas pasadas. No toda la información colgada en la red está contrastada, por lo que en algunos casos, la veracidad de dichas afirmaciones puede estar en entredicho por una mala objetividad en la fuente, o por una mala interpretación de dicha fuente que redacta una información partiendo de la base de otra. 

Referido a esto, al origen de la fuente distinguimos en distintos tipos de fuentes:
· Fuentes primarias: Son aquellas que emiten la información original de primera mano, redactada por primera vez y sin estar basada en ninguna otra fuente de información. Ejemplos: publicaciones, tesis, informes técnicos…
· Fuentes secundarias: Son aquellas que tienen como base las fuentes primarias y que reorganizan y sintetizan la información contenidas en ellas como resumen o interpretación para facilitar y maximizar el acceso a las fuentes primarias. Ejemplos: bibliografías, directorios, diccionarios…
· Fuentes terciarias: Son las que se fundamentan en las fuentes primarias y secundarias y facilitan al usuario la ubicación y obtención de la información. El ejemplo por excelencia de este tipo de fuente es internet y dentro de éste, cualquier tipo de buscador.

Una vez comentado el origen de la información, conviene incidir también levemente en el tratamiento y las diferentes fases por las que debe pasar  esta información. A este proceso se le conoce como cadena documental. Es  un conjunto de operaciones sucesivas de entrada, tratamiento y salida de información y de documentos  y se compone de cuatro fases: selección, búsqueda, análisis y difusión.

En primer lugar tenemos la selección de los archivos que nos interesen, en segundo lugar está el análisis de éstos para destacar la información más relevante y hallar las palabras clave, y luego la búsqueda, que gracias a la selección, nos resultará más fácil y eficiente. Por último está la difusión, paso importante ya que mediante la difusión podremos dar a conocer nuestra información y satisfacer las necesidades informativas de otros usuarios.

En todo esto se fundamenta la información y la documentación. Pero la información es infinita, por lo que siempre quedarán medios para seguir siendo informado. Esta entrada sólo puede servir como introducción. Si le ha resultado interesante la temática, puede siempre ceñirse a la gran cantidad de información que existe en bibliotecas, periódicos, internet... para conocer los entresijos de algo tan elemental y común en nuestras vidas como eso, la información.