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:



miércoles, 20 de noviembre de 2013

MiniNo PicarOS "Diego": Actualización a Gambas3.5.1

 

MiniNo PicarOS "Diego": 

Actualización a Gambas3.5.1

  

 Minino PicarOS "Diego", es una de las pocas distribuciones que viene de "fábrica" con Gambas3.4.2. Osea que cuando bajamos un DVD de la distribución, ya viene instalado y podemos programar o correr programas gambas3 inmediatamente.

Acaba de salir la versión de Gambas3.5.1 y Antonio Sánchez nos ha explicado como se puede actualizar la versión de Gambas, para estar a la "última" en gambas:

1) Usaremos synaptic:

$sudo synaptic

2) Tenemos que ir a Configuracion/Respositorios, y desactivar los repositorios que tengas de debian sid y de wheezy.

3) Activar los repositorios de squeeze


4) Añadir el  repositorio de gambas3: (ver datos en el pantallazo)

5) Recargamos los repositorios en synaptic

Nota:
Puede que nos salte un error del que el paquete no esta firmado, pero eso no es importante y le damos a continuar.


6)  A continuación reinstalamos gambas que puede hacerse:

  • Desde el mismo synaptic: buscando el paquete "gambas3", lo seleccionamos e instalamos (se instalaran varios paguetes más). De esta forma podemos ver el número de versión que tenemos instalada y el número de la versión que se va a instalar.


  • O salimos de synaptic y en la consola le ponemos el comando de instalar gambas:
    • sudo apt-get  install gambas3


7) Y ya tendremos la última versión de gambas3 en nuestro ordenador:

Saludos


sábado, 16 de noviembre de 2013

Patrón MEDIATOR: Ejemplos: Chat y Conferencia

Patrón MEDIATOR

Ejemplos: Chat y Conferencia



 Intención:

  • Gestionar la comunicación entre distintos objetos, sin que éstos necesiten conocerse entre sí.


 Consecuencias:

  • Incrementa la reusabilidad de los objetos soportados por el mediador desacoplándolos del sistema en el cual se encuentran inmersos.
  • Simplifica el mantenimiento del sistema centralizando la lógica de control.
  • El mediador es comúnmente utilizado para coordinar componentes de la interfaz gráfica de usuario (GUI) relacionados.
  • El objeto mediador en sí mismo puede empezar a ser bastante complejo.

Este patrón debe ser utilizado en casos donde convenga utilizar un procesador central, en vez de que cada objeto tenga que conocer la implementación de otro.

A diferencia del patron Observer, el patrón Mediator se usa cuando los objetos saben con quien se tienen que comunicarse, conocen el destinatario del mensaje. Funciona como si fuera un "cartero".

Nota: Con el patrón Observer lo que hacíamos es como si publicaramos en tablón de anuncios nuestro mensaje, y todo el que leyera ese tablón quedaba informado.




IMediator: define una interface para comunicarse con los objetos colegas.
ConcretoMediator: implementa la interface y define como los colegas se comunican entre ellos. Además los conoce y mantiene, con lo cual hace de procesador central de todos ellos.
Colega: define el comportamiento que debe implementar cada colega para poder comunicarse el mediador de una manera estandarizada para todos.
ColegaConcreto: cada colega conoce su mediador, y lo usa para comunicarse con otros colegas.
Los colegas envían y reciben requerimientos de un objeto Imediador. El Imediador gestiona cada mensaje y se lo comunica a otro colega si fuese necesario.

Ejemplo de Chat:
Nuestro ejemplo será un chat: donde habrá usuarios que se comunicaran entre sí en un salón de chat. Para ellos se define una interface llamada IUsuarioChat que todos los objetos que quieran participar de un chat deberán implementar. La clase Ususario representa un usuario que quiera chatear.
Estructura del proyecto:

Empezamos con la interface IUsuarioChat


Clase Usuario:

Interface ISalorDeChat

Clase SalonDeChat

Cuando creamos el salon (en el método constructor _new), le pasamos el TextLabel, donde vamos a escribir los textos de la conversacion.
Ademas se ha añadido un método "cierra", que se encargaria de anular la lista de usuarios cuando termine de usarse la sala de chat, para evitar que se creen referencias circulares.

El programa (Fmain):







Ejemplo de la aplicación funcionando:


Enlace de descarga del ejemplo: ejemplo chat

Ejemplo de Conferencia:
Otro ejemplo, parecido al del Chat, se trata de una conferencia, donde hay un presentador y varios asistentes que hacen preguntas y el presentador las responde enseñando una diapositiva explicativa.



Esquema del proyecto:
La interface  IMiembroConferencia
La clase Asistente
La clase Conferenciante
La interface IsalonDeConferencia:
La clase SalonDeconferencia
Programa Principal:

Aplicación funcionando:





Enlace de descarga: codigo fuente

Fuentes:
http://migranitodejava.blogspot.com.es/2011/06/mediator.html
http://informaticapc.com/patrones-de-diseno/mediator.php
http://adrysmodelos.blogspot.com.es/
http://wwwswt.informatik.uni-rostock.de/deutsch/Lehre/Uebung/Beispiele/PatternExamples/patexamples.htm

martes, 12 de noviembre de 2013

Patron Visitor: Ejemplo Cliente y Operador


Patron Visitor:  

Ejemplo Cliente y Operador



Este patrón permite definir una nueva operación sin cambiar las clases de los elementos sobre los cuales éste opera. Proporciona un marco genérico para soportar operaciones sobre un grupo de clases


Esquema de http://adrysmodelos.blogspot.com.es/

Ejemplo:
Tenemos varios tipos de usuario en una agencia de viaje: los operadores y los clientes.
Los operadores tienen un descuento del 30 % y los clientes tienen un 10 %.
Además reciben un regalo cuando se apuntan a la agencia, que es una Caja de Vino, Jamón y Queso para los operadores y una botella de vino para los clientes.
Añadir métodos,  como nueva operación, a la clases para poder aplicar descuentos y regalos.

Esquema del Proyecto, siguiendo el patron Visitor:

- Clase UsuarioVisitor (Visitor):
A continuación las clases que heredan de visitor, y donde se desarrolla el codigo de los métodos:
-Clase UsuarioDescuentoVisitor

-Clase UsuarioPrintVisitor

-Clase UsuarioRegaloVisitor


Ahora definimos la parte de los Elementos y Elementos Concretos:
Clase Usuario (Element):
->

Clase Operador:
->
Clase Cliente:
->

-Programa Principal
-
Salida por pantalla:




Fuente: enlace de descarga codigo de ejemplo


Referencias:
http://www.codeproject.com/Articles/12508/Dude-are-you-still-programming-using-if-then-else
http://adrysmodelos.blogspot.com.es/