martes, 28 de mayo de 2013

LibreOffice Base (II)

Buenas a todos.

Ayer quedamos el post hablando del tema de la optimización de los campos. Una vez que tenemos claro ese tema, tenemos que elegir un campo único e irrepetible el cual elegiremos haciendo click con el botón derecha en el cuadro situado a la izquierda del nombre del campo que será único. Una vez que hacemos click elegimos la opción "Llave primaria" y veremos dos cosas. La primera diferencia es que aparece una llave dibujada en dicho cuadrado para indicarnos cual es el campo único y vemos que la opción "Entrada requerida" en la parte inferior, desaparece pues esta opción es intrínseca a la opción Llave primaria.





Una vez que tenemos creado los campos que nos interesen, guardamos la tabla en cuestión y podemos empezar a introducir datos en ella haciendo doble click sobre la tabla en cuestión.

Una vez que tenemos tantas tablas como sean necesarias tenemos que empezar a crear las relaciones. Para ello iremos al menú Herramientas, Relaciones y en nos aparecerá una ventana en las que nos permitirá añadir tantas tablas como tengamos.


Para verlo más claro os pongo la tabla de relaciones del fichero que estamos haciendo en clase. Una vez que tenemos las tablas en pantalla, bastará con hacer click en uno de los campos y arrastrarlo hasta el campo de la tabla que queremos relacionar teniendo claro que ambos campos tienen que ser iguales en cuanto tipo de campo y longitud. No podemos relacionar un campo numérico con uno de texto o un campo de texto fijo de 10 con otro de texto fijo de 20. La creación de relaciones también nos hará ver en múltiples ocasiones que necesitamos la creación de tablas intermedias.

En estas tablas intermedias tenemos que crear los índices. Estos índices nos permitirán que se cumplan una serie de normas a la hora de crear la base de datos que funcionen correctamente. Vamos a verlo con una captura y vemos que hemos creado un índice por cada campo, más uno extra que llamaremos control parar ser más fácil de asimilar, en el que pondremos que para el mismo idgrupo y mismo idprofesor tienen que ser únicos. ¿Qué significa? Pues que un profesor puede dar clases a varios grupos y que un grupo puede tener varios profesores, pero que una vez que un profesor está dando clase a un grupo, no permite repetir dicha información. 



 Bueno, espero que me hayáis seguido más o menos bien. Mañana seguimos con este tema.

Un saludo para todos.

lunes, 27 de mayo de 2013

LibreOffice Base

Buenas a todos.

Aunque en las últimas semanas hemos estado dándole duro al tema de la programación de los ficheros Shell Script, no hemos dejado abandonado el paquete LibreOffice y hemos empezado a usar el Base. ¿Qué es el Base? Es el programa de base de datos de esta suite ofimática. El equivalente al Access de la suite Microsoft Office.

Para crear las tablas donde vamos a almacenar nuestros datos, haremos click en la parte izquierda de la pantalla sobre "Tablas" y usaremos la opción de "Crear tabla en modo de diseño...".
 La ventana que veremos será como la de la captura de pantalla
Iremos creando los distintos campos que nos interesen prestando atención en poner siempre los nombres en minúscula y poniendo el tipo del campo que nos interese en el valor correcto y con un tamaño válido. Por ejemplo, el campo dni lo vamos  a usar con un tipo de campo Texto (fijo) [ CHAR ] de 8 caracteres. El campo cp será del mismo tipo pero esta vez sólo de 5 caracteres. Para los campos nombre o apellidos elegiremos el tipo Texto [ VARCHAR ] de un tamaño por ejemplo 40. No es necesario dejar el tamaño de estas celdas en los valores por defecto de 100 pues se está desaprovechando recursos.
Vamos a comprobar esto con un ejemplo. Creo dos base de datos con una única tabla. En ambas tablas introduzco la misma id, mismo nombre y mismo apellido. La única diferencia es la longitud que se le indica a dichos campos. En prueba100 son los valores por defecto y en prueba2 no.


Si comprobamos el tamaño de ambos ficheros, vemos como prueba2 es unos bytes más pequeño. 


A primera vista puede parecer que el ahorro es mínimo pero hay que darse cuenta de que mi ejemplo es mínimo. En cuanto la base de datos sea real y empecemos a rellenarla con una gran cantidad de datos, el haber elegido mal un campo puede hacer disparar el tamaño final de la base de datos y con ello perderemos prestaciones.

Bueno, espero que esta pequeña introducción os haya gustado. Mañana más y mejor.

Un saludo para todos.



martes, 21 de mayo de 2013

Cuadros en Shell Script

Buenas de nuevo.

En la jornada de hoy se nos ha planteado un nuevo ejercicio. Realmente este ejercicio ya lo habíamos realizado mientras hacíamos prácticas de ficheros Batch y si la idea la tenías clara en aquella ocasión, en esta no había muchos más problemas. Realmente se basa en tener el concepto claro y saber utilizar correctamente los comandos que vamos conociendo.

El ejercicio en cuestión era realizar un cuadro con unas medidas previamente introducidas desde la línea de comandos. Por ejemplo:
 $ ./fichero.sh 5
Nos tendría que mostrar algo similar a:
*****
*    *
*    *
*    *
*****

Una vez realizado este primer ejercicio lo hemos "mejorado" añadiéndole la funcionalidad de que analice si existen parámetros. Si el usuario no los introduce, el script lo solicita y "pinta" el cuadro. Si el usuario lo introduce desde la línea de comandos lo realiza igualmente.

La tercera mejora del script ha consistido en sustituir los asteriscos con los que dibujaba los bordes del cuadro por código ASCII extendido con lo que se consigue un resultado visual mejorado. Lógicamente ya hay que trabajar con más opciones pues en lugar de usar  un solo "tipo de ladrillo" para construir la pared, ahora ya tenemos 6 tipos diferentes.

En la cuarta mejora, le hemos añadido la funcionalidad del color. Ahora podemos elegir entre cuatro colores diferentes para dibujar nuestro cuadro.

La quinta y última mejora, ha sido añadirle una textura interior y otra exterior para darle una sensación de profundidad. En esta ocasión también ha sido necesario aumentar el "número de ladrillos" con los que trabajar, al igual que incrementar los contadores y jugar con nuevos desplazamientos.

Hoy me lo he pasado realmente bien, pues era capaz de "ver" rápidamente el código necesario en mi cabeza y los errores que recibía en pantalla cuando estaba realizando los ficheros, eran corregidos sin problemas.

Os dejo con un vídeo para que veáis funcionando los cinco ficheros en cuestión.

Espero que os guste. 

Un saludo para todos.

viernes, 17 de mayo de 2013

Ejercicio de Shell Script

Buenas.

Aunque sigo teniendo algunos problemas con los Shell Script, empiezo a cogerles el tranquillo. Como bien decía en el último post, es cuestión de práctica y si con ella consigues buenos resultados, mejor que mejor. Este ejercicio ha sido bastante fácil a mi entender. Mientras estaba comiendo, mi mente no paraba de darle vueltas al problema en cuestión y ha sido sentarme delante del ordenador y prácticamente he tenido que realizar pocas modificaciones al esquema que tenía en mente. 

Espero que os guste.


lunes, 13 de mayo de 2013

Houston, tenemos un problema...

Buenas a todos.

Con este título dejo claro como me siento al día de hoy con el nuevo tema de sistemas operativos. Los Shell Script de Linux están ahora mismo corriendo en otra galaxia y me encuentro, con que tonterías que me resultan fáciles de hacer en un fichero batch, quedan ahora mismo fuera de mi alcance. Lógicamente todo es cuestión de práctica, práctica y práctica pero para ello se requiere tiempo, tiempo y tiempo. Y aunque suene a tópico, actualmente carezco de él.

Pequeñas tonterías que me van quedando. Todo fichero Shell Script empieza de la misma forma. 

#!/bin/bash 

Bucles "while".
Mientas se cumpla la condición, se realizará la orden. El esquema sería el siguiente

while _condicion_
do
   _ordenes_a_realizar
done

La orden para iniciar las ordenes será do y terminará con done. Con la siguiente captura podéis observar el uso de este tipo de bucle.


Si en este ejemplo utilizamos parámetros para meter los valores, el funcionamiento será prácticamente el mismo que se utilizaba en ficheros batch. Una vez que tenemos los parámetros, se los asignamos a las variables. Vamos con el ejemplo.


Las variables las definiremos con el comando read  y las podemos comparar con el comando case. Para finalizar dicho comando utilizaremos el mismo comando escrito al contrario esac.


No son los únicos comandos que nos han enseñado, pero por ahora no me atrevo a hablar más de ellos  por desconocimiento principalmente.

Próximamente, más y espero que mejor, porque peor será difícil. :-(

miércoles, 8 de mayo de 2013

Sacándole partido a Google Earth



Un poco de historia.

No voy a profundizar en la historia general de Google pero si voy a entrar en la sección que me atañe "Google Earth". 




Todo empezó con otro nombre, exactamente el de Keyhole. Esta empresa creada en el año 2001 fue pionera en el desarrollo de software para visualizar datos geoespaciales.
La empresa fue adquirida por Google en el año 2004 y esta, utilizó la tecnología del núcleo keyhole, para sus programas Google Earth y Google Maps entre otros. Entre las empresas que invirtieron en esta tecnología, llama la atención la empresa In-Q-Tel, la cual está íntimamente relacionada con la CIA. Esta empresa de capital de riesgo está constantemente buscando tecnologías que puedan ayudar a mejorar los intereses de la seguridad nacional de los Estados Unidos. Aunque la relación que surge de esta "colaboración" puede ser interesante, dejaremos  para otra ocasión, el hablar de los "beneficios" que seguramente tenga las agencias de seguridad norteamericanas y que el resto de los mortales no podamos ni imaginar. Las acciones que esta compañía tenía, fueron vendidas un año más tarde a Google.

La compra de Keyhole por parte de Google, también supuso para el gigante de internet la adquisición de TB de mapas digitales que la compañía original tenía, pero como todo evoluciona, Google confía actualmente en las empresas TeleAtlas y EarthSat para la constante renovación de los mapas ya que presumen en decir, que la información no tiene más de tres años de antigüedad.

Durante los primeros meses del años 2005, Google Earth estaba corriendo en fase beta y desde web, pero en Junio de ese mismo año sacaron la versión definitiva del programa que como gran diferencia respecto a Keyhole, tenía una versión gratuita, cosa que el programa original carecía. También puso en ese mismo mes disponible su API para que se pudiera modificar casi cualquier aspecto de la interfaz original.

Actualmente este software se ejecuta en los sistemas más comunes para PC (Windows, MacOS y Linux) y para dispositivos móviles (iOS y Android). No sólo tenemos la opción de ver la superficie terrestre, también podemos ver otros planetas como Marte o ver la Luna. Ver imágenes en 3D como edificios o árboles o ver el fondo marino, son las últimas características que ha incorporado este software.

Actualmente disponen de una versión gratuita, una versión pro con un precio de 399 dólares  (esta versión dispone de un periodo de prueba de 7 días) y por última, también existe la versión Enterprise destinada a grandes empresas que dispongan de una gran cantidad de datos geoespaciales y quieran crear recreaciones con sus propias imágenes, fotografías y datos.

Las diferencias principales entre la versión gratuita y las podréis observar en la siguiente imagen


Introducción de datos

A este programa podemos insertarle datos utilizando ficheros con la extensión KMZ o KML. Vamos a ver la diferencia principal de estos ficheros. El fichero KMZ es un fichero KML comprimido. El fichero KMZ incorpora como mínimo un fichero "doc.KML" basado en XML, que podrá ser editado con cualquier procesador de texto o editor. Para que lo veáis más claro vamos a utilizar un fichero de ejemplo llamado "radar.KMZ". Si intentamos usar un editor de texto para ver el fichero "radar.KMZ" solo podremos ver "texto" sin ningún sentido...




Ahora vamos a utilizar un pequeño truco. Renombramos el fichero y sustituimos la extensión KMZ por ZIP. Si hacemos ahora doble click sobre el fichero, nos lo abrirá nuestro programa de compresión y podremos comprobar como en efecto, tenemos el fichero "doc.KML". Si ese fichero lo abrimos con el mismo editor en cuestión que hemos utilizado antes, veremos como el texto sin sentido, empieza a estar bastante más claro.



Resumiendo. Los ficheros KML (Keyhole Markup Language) son un lenguaje de marcado que se utiliza para representar gráficos geográficos en tres dimensiones. Las especificaciones KML 2.2 fueron presentadas ante el Open Geospatial Consortium (OGC) con la idea de alcanzar el estatus de estándar de código abierto como formato de intercambio de información geográfica y finalmente fue conseguido el 14 de abril del 2008.
La verdad es que toda la información sobre este tipo de fichero está disponible desde la página de desarrollo de google (https://developers.google.com/kml/documentation/kmlreference?hl=es) y es recomendable echarle un vistazo si quieres profundizar en la manipulación y/o creación de este tipo de fichero.

Vale, todo esto está muy bien, pero la pregunta es, ¿Para qué sirven este tipo de ficheros y que información añaden al Google Earth? Pues como el movimiento se demuestra andando voy a realizar un ejemplo para que lo entendáis perfectamente y así podréis ver el potencial que tiene este programa.

Para realizar este ejemplo he utilizado un software llamado SkydiverGPS instalado en mi iPhone. Tampoco voy a entrar a detallar como funciona este software ya que no viene a cuento, pero básicamente es un programa que utilizando el GPS de tu smartphone graba cada segundo la coordenada en la que estás, para posteriormente poder exportar tu vuelo al Google Earth y poder observar qué tal lo haces...



Iniciamos la grabación unos pocos minutos antes de subirnos al avión y ahora a concentrarnos...


Una vez disfrutado de la caída libre y después de aterrizar podemos parar la grabación...





Bueno, pues una vez que ya tenemos nuestro salto grabado nos enviamos el fichero generado para poder exportarlo en nuestro ordenador. Abrimos Google Earth y buscamos la zona en cuestión.



Desde el menú "Añadir" vamos a la opción "Enlace de red" y seleccionamos nuestro fichero.



Una vez que hayamos aceptado podremos ver una nueva gráfica sobre nuestro plano.




Simulador de vuelo.  
A continuación voy a hablar de un una parte menos conocida de Google Earth. Me refiero al simulador de vuelo. Originalmente era un "Easter Egg", pero en las últimas versiones aparece directamente en el menú sin tener que pulsar la combinación de teclas. Para sistemas Windows la combinación de teclas será "Ctrl + Alt + A"





Cuando entremos en esta opción nos saldrá una ventana donde tendremos la opción de elegir entre dos aviones. Un F-16 y un SR22. En un principio son nuestras dos únicas opciones aunque si buscas por internet encontrarás diferentes formas de añadir otros aviones a este simulador.


En el ángulo inferior izquierdo de esta pantalla tenemos el botón de Ayuda donde nos debería enseñar a pilotar nuestro avión, pero si lo pulsamos, nos encontramos con la siguiente pantalla


Hasta Google tiene fallos con sus páginas, pero para eso estoy yo aquí, para enseñaros a manejar un poco este simulador de vuelo. Os pongo todas las teclas necesarias para volar vuestros aviones en la siguiente imagen.

Ahora que ya tenemos claro cuales son las teclas que nos permitirán volar nuestro avión, podemos hacer click sobre el botón "Comenzar vuelo" y se nos presentará la siguiente información en pantalla.



No esperéis un simulador de vuelo ultrarealista. Para esos menesteres están programas tan consagrados como Flight Simulator o X-Plane, pero este pequeño "extra"  puede conseguir entretenernos un rato y además,  es indudablemente divertido poder ver a vista de pájaro nuestra casa o una ruta que repitamos a menudo.

Os voy a dejar con un vídeo en el que podréis ver un poco este programa en funcionamiento. Espero que os guste.

Un saludo para todos.