Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



Mostrando entradas con la etiqueta diseño. Mostrar todas las entradas
Mostrando entradas con la etiqueta diseño. Mostrar todas las entradas

sábado, 25 de marzo de 2017

Menús Vs Cinta Ribbon ¿facilitan las tareas más que los menús?


Menús Vs Cinta Ribbon
 ¿facilitan las tareas más que los menús?





La cinta ribbon, la hizo famosa Microsoft cuando implementó "Ribbon" por primera vez en Microsoft Office 2007 , dejó los menús de toda la vida, y paso a este nuevo diseño como interfaz de usuario... Yo nunca me he llegado a acostumbrar a él. Ahora Libreoffice los va a incorporar (en modo de pruebas y no obligatorios) en su interfaz. ¿ventajas? ¿inconvenientes?... Ahora te cuento.

Esquema de cinta ribbon:

En informática, Ribbon es una interfaz gráfica de usuario, compuesta de una banda (cintas) en la parte superior de una ventana donde se exponen todas las funciones que puede realizar un programa en un solo lugar.
Ventajas:
Las opciones "principales" y de mucho uso, los usuarios las van a tener visibles y a un click de distancia de encontrarlas y activarlas. Yo no le veo ninguna más.. sinceramente.

Desventajas o Inconvenientes:
Lo usuario noveles, solo ven estos iconos y el resto de opciones "se les oculta", haciéndoles difíciles descubrirlas. En los menús, siempre vemos todas las opciones, las usemos o no, pero están allí y siempre podemos "investigar" a ver que hacen.

Menús y Submenús en libreoffice
Los usuarios que ya sabemos manejarnos y conocemos más  opciones que las "típicas", vemos que las cinta ribbon, nos "ocultan" las opciones no usuales, (y en el peor de los casos, nos "perdemos" al intentarlas buscar), y cuando las encontramos, por lo menos en OFFICE, aparacen los formularios "de toda la vida", osea, hemos dado un rodeo para encontrar lo mismo...  Además perdemos "parte de la pantalla", ya que la propia cinta ocupa mucho más que una linea de menus (mucho más que la barra de herramientas (iconos), de toda la vida).


Como experiencia personal, las primeras veces que intente trabajar con estas cintas ribbon, fué un total fracaso... llevo más de 30 años usando hojas de cálculos y me sentí que no sabía nada, que "tenia que empezar de cero", no encontraba las opciones.... si hubiera estado en un examen, seguro que lo hubiera suspendido...

Pienso que la mejor manera es que los dos sistemas estén activados, recuerdo que en OFFICE de microsoft, habia programas para "activar" de nuevo los  menús... en LibreOffice, por lo que he visto, ahora mismo, es una opción de "desarrollo" activar la cinta ribbon, espero que haya una opción para que convivan los dos sistemas de interfaz.



Referencias:
https://es.wikipedia.org/wiki/Cinta_(inform%C3%A1tica)
http://www.muylinux.com/2017/02/03/ribbon-en-libreoffice


miércoles, 11 de marzo de 2015

Diseño De Una Base de Datos: respondiendo a una pregunta



  Diseño De Una Base de Datos: respondiendo a una pregunta.



Os traigo otra perla, esta vez de Shordi, del foro de gambas-es.org.
Se trata de explicar como se debería diseñar una base de datos.


Para iniciar el diseño, no debes pensar en maneras de entrar los datos o en la cualidad de cada campo. Eso vendrá después.
Para diseñar una base de datos, escribir un programa, hacer un guiso o escribir una novela nuestro cerebro funciona de la misma manera.

Un cocinero no empieza pensando qué ingredientes se echan con los dedos y cuales con la cuchara. Empieza con identificar los ingredientes.
Un Escritor no empieza pensando qué corbatas llevarán los  personajes y de qué color. Empieza identificando los personajes que van a intervenir.
Una base de datos no se empieza pensando qué pantallas vas a rellenar o qué dato será obligatorio: Se empieza identificando las "Entidades" (Clases) que intervienen en ella.
Los Tipos de Entrada, los modos y formatos de salida, la cualidad de sus relaciones, etc. etc. eso vendrá después.

En otras palabras olvídate, de momento, de nada que no sea las propiedades de las Clases. Yo prefiero la palabra "Entidad" que implica que de lo que hablo tiene "existencia" por sí misma, dejando eso de "Clases" para la POO a la hora de diseñar el programa. Como norma general puedes identificar "Entidad" con "Tabla Maestra" (hay entidades complejas, pero eso es otra historia)

Por lo que cuentas en tu diseño hablas de manejar: Libros, Autores, Editoriales, Citas, Tesis.

Empieza por eso: Pregúntate Qué es y de Qué se compone un Libro, un Autor, una Cita, etc.
Eso te dará los campos y su tipo de una forma natural.
Es evidente que 
 -Un libro tiene: Título, Autor, editorial, Nº de páginas, etc.
 -Un Autor tiene: Un nombre, una fecha de nacimiento, un país de nacimiento, una biografía, una bibliografía, etc. etc.
 -Una Cita tiene: Un texto, un libro de referencia, una página donde aparece, un libro, o varios, donde es citada, etc. etc.

En el desarrollo de esto verás que el tipo de dato lo marca la naturaleza del mismo y empezarán a surgir las relaciones entre ellos. Por ejemplo el número de página donde aparece la cita no puede ser mayor que el número de páginas del libro, etc. También te encontrarás que, a lo mejor, te aparecen entidades en las que, de entrada, no habías pensado. Por ejemplo, una Tesis tiene un Autor, no confundir con el autor de los libros que se citan ¿Será necesario también una tabla de autores de Tesis? ¿Qué características tendría?, etc. etc.

Una vez que tengas diseñadas las características (campos) de tus "Entidades" (tablas maestras), tendrás que relacionarlas entre sí (esta es la esencia de las Bases de Datos Relacionales), de forma que se constituyan en una estructura de datos coherentes y eficaz. Para ello necesitas encontrar primero de todo la Clave Primaria de cada Entidad, es decir qué identifica cada fila de una forma única y definitiva entre todas las de su clase y construir los índices que apunten a esas claves.
Así una editorial tiene un Id del registro mercantil, Un libro un ISBN, etc. Esto es básico: Dos libros pueden tener el mismo título, dos Autores el mismo nombre, etc.
Puedes construir tus claves mediante la unión de varios campos, Título+Autor o puedes crear campos que sirvan de índice (autonuméricos) para ello.

Con los indices construidos estableceremos las relaciones entre las tablas. Así , en la tabla de libro, campo editorial, almacenaremos la clave de la tabla editoriales, para lo que crearemos una relación Padre-Hijo (Foreign key) y la base de datos misma se encargará de mantener la coherencia y de que no haya claves perdidas o referencias ciegas.
En este paso verás que no es posible, muchas veces, establecer una relación directa y sencilla, por ejemplo:
Un autor ha escrito varios libros. Un libro puede tener varios co-autores. La solución más sencilla entonces es la creación de una tabla de enlace intermedia. Una tabla que se componga exclusivamente de tres campos: índice de la relación, clave el autor, clave del libro.

Finalmente, una vez que tengas la estructura creada, es conveniente hacer una serie de vistas que simplifiquen las consultas más frecuentes que luego usaremos en el programa.
Por ejemplo: una vista que contenga todos los campos del libro y todos los de su autor (recordemos que en la tabla de libros sólo tenemos la clave de la tabla del autor).
Almacenando estas vista, seremos capaces de mostrar al usuario los datos que necesite de manera muy sencilla.

Hay mucho más, claro, pero más o menos estos son los pasos básicos para el diseño de una base de datos.
Todo el tiempo que dediques a esto, será tiempo ganado en la programación. Un error de programación se arregla, a las malas, en unas horas. Un error en el diseño de la base de datos puede costarte meses o, incluso, hacer inútil todo tu proyecto. (Créeme, me ha pasado)

El diseño de tu base de datos es la esencia de tu programa.

Mi cita favorita:
"Enséñame tu código y mantén ocultas tus estructuras de datos, y me seguirás engañando. Muéstrame tus estructuras de datos y normalmente no necesitaré que me enseñes tu código: resultará evidente." (Fred Books.)


Fuente:
http://www.gambas-es.org/viewtopic.php?f=3&t=4419

jueves, 18 de diciembre de 2014

Analisis y Diseño de una aplicación: Herramienta UML. Presentación en video

Análisis y Diseño de una aplicación: Herramienta UML. Presentaciones en video

UML significa Lenguaje Unificado de Modelado

Es un sistema que nos permite modelar los sistemas de software, mediante gráficos, para visualizar, especificar, construir y documentar un sistema.

Encontre en  http://prezi.com/,  una presentación sobre UML, realizada por Andres Leonardo Moreno Moreno, que me gustó mucho y la he convertido en video para que la veais


Otra que es más resumida y que se centra en los principales diagramas que existen, realizada por Martín Rasgado:


Enlace a las presentaciones en prezi.com:
https://prezi.com/fc8cpth0-dml/uml-lenguaje-unificado-de-modelado/
https://prezi.com/k5jsxqjvsovg/el-uml-lenguaje-unificado-de-modelado/


viernes, 7 de junio de 2013

Softwarelibre: Programa para crear Orlas (versión Beta para testear)


Creador de Orlas

(versión BETA para testear)


Para hacer las orlas de graduación, a  pesar de ser un tema conocido, apenas se pueden encontrar aplicaciones informáticas que las hagan o faciliten la tarea de realizarlas, solo encontré  un pluging para photoshop, y varios videos tutoriales para realizarlos con gimp.  

Antonio Sánchez de la distribución mininoPicarOS, me pidió que hiciera un programa para realizar Orlas para que los profesores de primaria pudieran  diseñar y realizar orlas de graduación de manera fácil y rápida...y que se pudiera añadir a su distribución mininoPicarOs 2013, que deriva directamente de Debian.

Bueno, y aquí está la versión BETA para testear, completamente funcional, desarrollada por supuesto en  Gambas3, sin lugar a dudas, se puede decir que esta es la primera aplicación de softwarelibre que realiza esta tarea:


El programa permite:
  •  Gestionar los datos de los alumnos (nombres, apellidos, ciudad,provincia) o profesores (nombres, apellidos  y asignatura)
  •  Gestionar las fotos de los alumnos y profesores (capturadas desde webcam o ficheros)
  • Colocar automáticamente o manualmente las fotos
  • Ordenar las fotos alfabeticamente o por un orden dato
  • Usar diversas plantillas (que se pueden editar con Inkscape)
  • Aplicar efectos a las fotos: marcos, elipses, V, cuna, marcos de imágenes
  • Generar un fichero .SVG (para que podamos seguir editandola con el Inkscape) o convertir directamente en una imagen .PNG
Y para ver algún video tutorial, lo podeis ver en el blog que he creado para el proyecto: http://creadordeorlas.blogspot.com.es/p/videotutoriales.html o en mi canal de youtube.


Os enseño algunas Orlas ya terminadas, generada por el programa y con algunos retoques con Inkscape:


Enlace del blog del proyecto Creador de Orlas: Enlace

Espero que os sea útil.

Saludos

Nota:
El propio blog del proyecto tiene un pequeño foro, para resolver vuestras dudas y preguntas.