Mostrando entradas con la etiqueta Tutoriales. Mostrar todas las entradas
Mostrando entradas con la etiqueta Tutoriales. Mostrar todas las entradas

30 ago 2013

Ejercicios resueltos de programación en simatic S7 (bomba de agua)

Hola de nuevo a todos.
Después de una larga temporada sin escribir, me he decidido volver a la carga con unos ejercicios resueltos de programación de autómatas programables Siemens. La razón es que tenía de realizar unas modificaciones en un programa de un autómata y para ello tuve que recordar viejos conocimientos. El material principal del que he dispuesto para el estudio ha sido un tutorial de programación que encontré en la red bastante interesante. Lo podéis encontrar aquí. En dicho tutorial aparecen una serie de ejemplos resueltos, sin embargo, al final del tutorial se pueden encontrar ejercicios interesantes que no incluyen la solución. Pero no os preocupéis porque vamos a incluirla aquí.
El primer ejercicio se puede encontrar en la página 119 y aunque es bastante sencillo, me ha parecido bien empezar por él. Se trata de una bomba de agua. El enunciado y la solución, a continuación.
BOMBA DE AGUA
Las entradas del autómata  y los símbolos asignados son:
  • Servicio ON/OFF: E0.0 (ON)
  • Sensor de máximo: E0.1 (sensorMax)
  • Sensor de mínimo: E0.2 (sensorMin)
  • Una entrada adicional para simular el térmico: E0.3 (entradaTermico)
Las salidas del autómata son:
  • Electrobomba: E4.0 (electrobomba)
  • Servicio dispuesto: E5.0 (pilotoDispuesto)
  • Saltó térmico: E5.1 (termico)
Centrándonos en las salidas, vamos a determinar las condiciones de activación y desactivación de cada una de ellas:
1.- Electrobomba: 
Condiciones de activación son:
  • Que esté encendido el sensor de mínimo.
  • Que el servicio esté en ON.
  • Que esté apagado el sensor de máximo.
  • Que no haya saltado el térmico.
Se deben cumplir todas estas condiciones (Y lógica) para que se produzca la activación.
Las condiciones de desactivación son: 
  • Térmico encendido
  • Que el servicio esté en OFF.
  • Que esté encendido el sensor de máximo.
Cualquiera de estas condiciones (O lógica) produce la desactivación.
Así que el código asociado en step 7 sería:
//CONDICIONES DE SET
      U     sensorMin
      U     ON
      UN    sensorMax
      UN    termico
      S     electrobomba
//CONDICIONES DE RESET
      O     entradaTermico
      ON    ON
      O     sensorMax
      R     electrobomba

2.- Piloto servicio dispuesto:
Según el enunciado, este piloto debe estar encendido siempre que la electrobomba esté en funcionamiento, así que el código es:
U electrobomba
=pilotoDispuesto

3.- Piloto saltó térmico:
Este piloto estará encendido cuando el térmico (que es la entrada añadida E0.3) lo esté, así que:
U entradaTermico
=termico

Y esto es todo por hoy. Más adelante continuaremos resolviendo el resto de ejercicios.

5 may 2013

Caja registradora en Java con base de datos Access utilizando el IDE Netbeans

Después de prácticamente 2 meses sin publicar absolutamente nada os quiero hacer llegar este trabajo de un curso de programación Java que he estado realizando (de ahí mi baja frecuencia de publicación). Se basa en un programa que hace las veces de caja registradora moderna y que permite guardar datos de información de clientes y de pedidos en una base de datos Access. A continuación se muestra una memoria explicativa.



1.     Diseño de la base de datos

El objetivo es crear una aplicación que permita de información relacionada con los pedidos que en una compañía de comida rápida se hacen. Debe permitir la opción de registrar clientes y que estos tengan descuentos. Para el diseño de la base de datos hay que determinar primero cuáles serán las entidades y los atributos asociados a dichas entidades. Se han considerado como entidades los Clientes, los Pedidos y los Productos. Cada uno de ellos debe tener unos atributos, que representan la información sobre dichas entidades. Los atributos que se almacenan de cada entidad son:
·         Entidad Cliente: NIF, Nombre, PrimerApellido y SegundoApellido.
·         Entidad Pedidos: NúmeroPedido, Fecha e Importe.
·         Entidad Productos: NúmeroProducto, Precio y NombreProducto.
Decididas las entidades y atributos asociados, es necesario determinar los atributos claves, aquellos que no se repiten y no pueden estar vacíos. Se han elegido los siguientes:
·         Entidad Cliente: NIF.
·         Entidad Pedidos: NúmeroPedido.
·         EntidadProductos: NúmeroProducto. En este atributo clave hay que aclarar que aunque se vayan a servir productos iguales, no se estarán sirviendo los mismos productos. Es decir, si un cliente pide un capuccino, eso será un producto, y si justo después otro cliente pide de nuevo capuccino, está pidiendo otro capuccino nuevo, no el mismo que se entregó al cliente anterior, por lo que nunca habrá dos capuccinos con el mismo NúmeroProducto.
Llegados a este punto es hora de determinar las relaciones entre entidades. Se han considerado las siguientes:
·         Un Cliente realiza Pedidos, de forma que las entidades Cliente y Pedidos se relacionan y tienen una relación uno a muchos, ya que un cliente puede realizar muchos pedidos, pero un determinado pedido es realizado por un solo cliente.
·         Un Pedido estará formado por uno o varios Productos, teniéndose así una relación uno a muchos, ya que un Pedido puede tener varios Productos, pero cada Producto (NúmeroProducto) pertenece a un solo pedido.
Por último queda por determinar las claves foráneas, traspasando así el atributo clave de una entidad a otra, existiendo así elementos de unión entre entidades relacionadas. Las claves foráneas que se han determinado son:
·         Entidad Cliente: Ninguna.
·         Entidad Pedidos: NIF (procedente de la entidad Cliente).
·         Entidad Productos: NúmeroPedido (procedente de la entidad Pedidos).
Con toda esta información recabada, ya es posible generar el modelo E-R de forma gráfica, que se muestra en la imagen a continuación:

Modelo ER de la base de datos

2.     Diseño de la interfaz

Para el diseño de la interfaz se ha optado por buscar la simplicidad y facilidad de uso, tratando de crear un sistema Poka-Yoke que evite errores en la lectura-introducción de datos por parte del usuario de la aplicación.
Toda la aplicación parte de una ventana principal sobre la que aparecen-desaparecen paneles según se vaya indicando. Al arrancar el programa principal aparecerá esta ventana principal, que tiene el siguiente aspecto:
Aspecto de la ventana principal
En ella se puede observar lo que podría ser el logotipo de la compañía (evidentemente se ha escogido uno cualquiera), un título y un menú en la parte superior que permite acceder a todas las funcionalidades del programa.
Clicando en la opción Cliente podemos acceder al alta, baja y modificación de clientes. Las ventanas se muestran a continuación respectivamente:
Aspecto de la ventana AltaCliente
Aspecto de la ventana BajaCliente
Aspecto de la ventana ModificarCliente
Todas ellas están formadas por etiquetas, cajas de texto sobre las que introducir la información y botones que captarán eventos para ejecutar acciones.
Desde el menú Pedidos se puede acceder a las opciones Nuevo pedido, Fecha pedidos, Pedidos de clientes, cuyos nombres resultan autoexplicativos. Los aspectos de dichas ventanas son:
Apecto de la ventana AltaPedido
Esta es la parte de la interfaz más recargada. En la parte superior izquierda aparecen las etiquetas y cajas de texto que permiten introducir la fecha actual (en un programa real debiera captarlo automáticamente) e introducir el NIF de un cliente si está registrado, o bien realizar el pedido como un cliente no registrado. Debajo de estas opciones se encuentran los diferentes productos que componen el menú, cada uno de ellos con un botón que permite añadir al pedido el producto. En la parte derecha se muestra una tabla sobre la que irán apareciendo los productos que un cliente solicita, una opción de eliminar algún tipo de producto en caso de introducción por error y por último una caja de texto que muestra el importe total y el botón para imprimir o realizar el pago del pedido.
Aspecto de la ventana FechaPedidos
Esta es una ventana simple sobre la que introducir la fecha sobre la cuál queremos ver los pedidos realizados.
Aspecto de la ventana PedidosCliente
Muy similar a la anterior, esta ventana permite introducir el NIF del cliente sobre el que queremos ver los pedidos que ha solicitado.

3.     Diseño de la arquitectura de programación

Para la realización del programa se han generado los siguientes paquetes:
·         fastfoodcompany.principal: Contiene Aplicación y FastFoodCompany. Aplicación simplemente se encarga de cargar y visualizar la ventana principal, que está diseñada en FastFoodCompany.
·         fastfoodcompany.principal.acciones: Contiene la clase AccionesFastFoodCompany que se encarga de atender a los eventos que ocurran en la ventana FastFoodCompany y realizar las acciones necesarias.
·         fastfood.clientes: Contiene AltaCliente, BajaCliente y ModificarCliente que son las clases con los JPanel (paneles) vistos en las figuras 3, 4 y 5.
·         fastfood.clientes.acciones: Contiene las clases AccionesAltaCliente, AccionesBajaCliente y AccionesModificarCliente que, al igual que hace AccionesFastFoodCompany, se encarga de atender a los eventos que ocurran en las ventanas (que serán originados por el usuario) y ejecutar las respuestas.
·         fastfood.pedidos:Contiene AltaPedido, FechaPedidos y PedidosCliente.
·         fastfood.pedidos.acciones: Con AccionesAltaPedido, AccionesFechaPedidos y AccionesPedidosCliente.
·         fastfood.gestionBD: Contiene ServiceCliente, GestionSQLClientes, ServicePedidos y GestionSQLPedidos. Las clases GestionSQLXXX se encargan de gestionar la conexión con la base de datos, mientras que las clases ServiceXXX se encarga de generar las consultas SQL correspondientes que luego serán solicitadas desde GestionSQLXXX. Las clases XXXCliente se encargan de todo lo relacionado con el alta, baja y modificación de clientes, mientras que XXXPedidos gestionan lo relacionado con los pedidos.
Se ha desarrollado por tanto una arquitectura Model-View-Controller, donde:
  • View: FastFoodCompany, AltaCliente, BajaCliente, ModificarCliente, AltaPedido, FechaPedidos y PedidosCliente.
  • Model: AccionesFastFoodCompany, AccionesAltaCliente, AccionesBajaCliente, AccionesModificarCliente, AccionesAltaPedido, AccionesFechaPedidos, AccionesPedidosCliente, ServiceClientes y ServicePedidos.
  • Controller: GestionSQLClientes, GestionSQLPedidos.

4.     Manual de usuario interactivo

Véase:
Manual usuario interactivo

5.     Código fuente de la aplicación

Lo podéis descargar aquí





16 dic 2012

Añadir aplicación al menú de inicio en Lubuntu (LXDE)

En nuestra distribución Lubuntu, a pesar de tener muchas cosas buenas, hay algunas tareas que deberían ser sencillas y, sin embargo no lo son. Una de ellas es la de añadir un programa al menú de inicio. Existe mucha documentación sobre cómo realizar esto, pero trasteando y combinando diferentes tutoriales he encontrado el que para mí tiene que ser el procedimiento a seguir hasta que los desarrolladores incluyan algo nuevo que lo simplifique todo. El proceso consiste en primero crear un archivo con extensión ".desktop" que habrá que incluir en el directorio "/usr/share/applications". Para crear el archivo ".desktop" nos ayudaremos del "GUI Creator". En el ejemplo a continuación voy a añadir el programa Fritzing al menú. En un principio tengo en mi carpeta Downloads otra carpeta denominada fritzing-0.7.10b.linux.i386 que contiene el archivo ejecutable "Fritzing" (que será el que se deba ejecutar cuando sea llamado desde el lanzador del menú de inicio). Para utilizar el "GUI Creator" introducimos en un terminal el siguiente comando:

sudo lxshortcut -o /usr/share/applications/fritzing.desktop

En tu caso debes reemplazar fritzing por el nombre del programa que vayas a añadir al menú. Una vez lanzado este comando nos debe aparecer algo así 
Aspecto del Gui designer

Entonces procedemos a rellenar cada una de las casillas. Como nombre podemos darle el que queramos, evidentemente que sea representativo, el icono también podemos elegir uno cualquiera, mientras que lo más importante es el comando. Las aplicaciones ejecutables se encuentran en /usr/bin. Si por ejemplo quisiésemos añadir la aplicación Xmag, pues el comando sería /usr/bin/xmag. En mi caso, el ejecutable se encuentra en otro directorio, así que mi comando es

sh /home/paco/Downloads/fritzing-0.7.10b.linux.i386/Fritzing

Para el icono, en lugar de elegir alguno de los incluidos en el sistema, he descargado el propio de Fritzing, lo he guardado en la misma carpeta que el ejecutable y seleccionado. 
Entonces pulsamos OK y comprobaremos cómo nuestro programa aún no aparece en el menú de inicio. Esto es porque aún no lo hemos incluido en ninguna categoría. Y es aquí solía yo tener problemas, ya que desconocía la lista de posibles categorías. La lista total la podemos encontrar aquí, en la que separa las categorías registradas y las adicionales. En mi caso me interesa introducirla en Electronics, aunque podríamos haber elegido Education o cualquier otra. Por último añadimos la categoría a nuestro archivo .desktop creado. Para ello, de nuevo desde terminal:

sudo leafpad /usr/share/applications/fritzing.desktop

Y añadimos al final

Categories=Electronics

O lo que proceda. Guardamos el archivo, lo cerramos y ahora sí aparece el programa en el menú de inicio.

8 dic 2012

Abrir Pdf's, documentos de office y enlaces magnéticos directamente en Chromium en LXDE/Lubuntu

El navegador web incluido por defecto en Lubuntu es Chromium. Si bien he probado varios de ellos, puedo decir que éste es el que más me gusta, aunque tiene para mí el gran inconveniente de que cualquier enlace magnético, archivo PDF, documento de office, etc, no es abierto directamente desde el navegador, como sí que ocurre por ejemplo en Firefox. En mi caso tiendo a descargar archivos por torrent, utilizar listas de spotify o buscar documentos pdf y resulta bastante molesto no tener esa opción. Así que buscando he encontrado soluciones que pueden ser interesantes pero requieren de unos pequeños retoques. Veamos cómo hacerlo:
1.- Abrir enlaces magnéticos
La solución la he encontrado aquí. Básicamente consiste en, primeramente manipular la configuración del Gconf y posteriormente modificar el fichero xdg-open. Para esto, en una terminal introducimos los siguientes comandos:

gconftool-2 -t string -s /desktop/gnome/url-handlers/magnet/command "transmission %s"

gconftool-2 -s /desktop/gnome/url-handlers/magnet/needs_terminal false -t bool

gconftool-2 -t bool -s /desktop/gnome/url-handlers/magnet/enabled true

Y posteriormente, para modificar el xdg-open, introducimos en una terminal

sudo leafpad /usr/bin/xdg-open

Y modificamos la parte siguiente

#--------------------------------------
# Checks for known desktop environments
# set variable DE to the desktop environments name, lowercase
detectDE()
{
 if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
 elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
 elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;
 elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
 elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;
 else DE=""
 fi
}

Dejándola así

#--------------------------------------
# Checks for known desktop environments
# set variable DE to the desktop environments name, lowercase
detectDE()
{
# if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
# elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
# elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;
# elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
# elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;
# else DE=""
# fi
DE=gnome;
}

Con esto ya tenemos la opción de enlaces magnéticos activada. Si ahora por ejemplo intento abrir una lista spotify desde el navegador, aparece una ventana como la siguiente
Ventana de petición de uso de protocolo externo

Selecciona la opción lanzar aplicación y listo.
2.- Abrir documentos de pdf y office
Vamos ahora con los documentos pdf y de office. Para esto existen, dos alternativas, si bien la segunda en mi caso no ha funcionado (creo que si fuese una instalación limpia de Lubuntu sí lo haría). 
Opción 1:
La primera pasa por instalar una extensión denominada Visualizador de archivos PDF/PowerPoint. Esta extensión se encarga de abrir ese tipo de archivos con Google Docs. A mí personalmente no me gusta, de ahí que busqué otra opción, explicada a continuación.
Opción 2:
Pasa por utilizar las aplicaciones que por defecto se encargan de abrir ese tipo de archivos embebidas en nuestro navegador. Por ejemplo, abrir un pdf con evince o abrir un doc con libreoffice, todo sin salir del navegador. Para ello hay que instalar mozplugger y realizar algunas modificaciones. En un terminal

sudo apt-get install mozplugger

Si queremos utilizar evince para abrir los documentos pdf, según se explica aquí, hay que modificar el archivo mozpluggerrc. Para ello, desde terminal

sudo leafpad /etc/mozpluggerrc

Buscamos la parte de texto

### Acrobat Reader
define(ACROREAD, [repeat swallow(acroread) fill : acroread -openInNewWindow /a "$fragment" "$file"])

Y la modificamos, dejándola


### Acrobat Reader
# define(ACROREAD, [repeat swallow(acroread) fill : acroread -openInNewWindow /a "$fragment" "$file"])
define(ACROREAD, [repeat swallow(evince) fill needs_xembed : evince "$file"])

Si además tenemos libreoffice y queremos que utilice esa aplicación para documentos de office hay que, según se explica aquí, modificar la parte del archivo

### OpenOffice
define([OO],[swallow(VCLSalFrame) fill: ooffice2.0 -nologo -norestore -view $1 "$file"
swallow(VCLSalFrame) fill: ooffice -nologo -norestore -view $1 "$file"
swallow(VCLSalFrame) fill: soffice -nologo $1 "$file"])

dejándola así


### OpenOffice
define([OO],[swallow(VCLSalFrame) fill: libreoffice -nologo -norestore -view $1 "$file"
swallow(VCLSalFrame) fill: libreoffice -nologo -norestore -view $1 "$file"
swallow(VCLSalFrame) fill: libreoffice -nologo $1 "$file"])

Esta última opción de libreoffice es la que a mí no me ha funcionado. He realizado modificaciones en este archivo pero siempre obtengo el error 

Could not load MozPlugger 1.14.5 handles QuickTime and Windows Media Player Plugin

Lo cierto es que no sé muy bien el por qué de ese error, pero creo que puede ser alguna modificación previa que hice en el navegador. En Firefox funciona perfectamente. Trataré de informarme más al respecto y os mantengo informados.





19 nov 2012

Tweaks estéticos para Lubuntu. Efecto exposé, shadows, aerosnap...

Como hemos citado anteriormente, Lubuntu está enfocada a ser rápida, ligera y con poco consumo de recursos. Eso tiene sus ventajas (evidentes), pero también acarrea algunos inconvenientes, como puede ser el de no tener efectos de escritorio avanzados por defecto. Hablo de efectos tales como AeroSnap, Exposé o Shadows, que, a mi modo de ver, no solo son efectos estéticos sino que también pueden llegar a ser prácticos (especialmente AeroSnap).
Aunque los usuarios de Linux disponemos de Compiz, este requiere bastantes recursos y se sale un poco de la filosofía de Lubuntu. Por lo tanto aquí trataré de explicar tips para poder tener efectos de escritorio que consuman pocos recursos.

  • AEROSNAP

El primero de ellos y al que más utilidad le encuentro es el efecto AeroSnap, que consiste en que dos ventanas quedan divididas ocupando cada una de ellas la mitad, lo que permite trabajar en una mientras vemos la otra. La explicación de cómo instalarlo la podéis encontrar aquí. Básicamente consiste en modificar el archivo "lubuntu-rc.xml". Para ello, abrimos LXTerminal y ejecutamos:

gksu leafpad ~/.config/openbox/lubuntu-rc.xml

En el archivo de texto que aparece se encuentra básicamente la configuración de combinaciones de teclas que realizan alguna función en nuestro sistema. Encontraremos algunas de ellas, como subir y bajar el volumen, modificar el brillo de la pantalla, etc.
Con el editor de texto abierto, buscamos la línea que contiene el siguiente texto:

<chainQuitKey>C-g</chainQuitKey>

y debajo de ella pegamos el siguiente código:

<!-- Aero Snap for Openbox Begin Code-->
    <keybind key="W-Left">        # HalfLeftScreen
      <action name="UnmaximizeFull"/>
      <action name="MoveResizeTo">
        <x>0</x>
        <y>0</y>
        <height>97%</height>
        <width>50%</width>
      </action>
    </keybind>
    <keybind key="W-Right">        # HalfRightScreen
      <action name="UnmaximizeFull"/>
      <action name="MoveResizeTo">
        <x>-0</x>
        <y>0</y>
        <height>97%</height>
        <width>50%</width>
      </action>
    </keybind>
    <keybind key="W-Up">        # HalfUpperScreen
      <action name="UnmaximizeFull"/>
      <action name="MoveResizeTo">
        <x>0</x>
        <y>0</y>
        <width>100%</width>
        <height>50%</height>
      </action>
    </keybind>
    <keybind key="W-Down">        # HalfLowerScreen
      <action name="UnmaximizeFull"/>
      <action name="MoveResizeTo">
        <x>0</x>
        <y>-0</y>
        <width>100%</width>
        <height>50%</height>
      </action>
    </keybind>
<!-- Aero Snap for Openbox End Code-->

Guardamos el archivo, cerramos la ventana y volvemos al terminal, donde introducimos:

openbox --restart

Cerramos la terminal y ya podemos comprobar nuestra nueva funcionalidad pulsando la combinación de teclas windows y botón derecho, izquierdo, arriba o abajo, en función de dónde queramos colocar nuestra ventana.
Efecto aerosnap con ventanas separadas verticalmente

Efecto aerosnap con ventanas separadas horizontalmente

  • EXPOSÉ

El segundo efecto del que os hablo es Exposé. Podéis encontrar una explicación completa de instalación y configuración aquí. Básicamente consiste en instalar el paquete Skippy-XD y volvemos a modificar el archivo "lubuntu-rc.xml" que cambiamos para el efecto anterior. Para ello, de nuevo en una terminal

gksu leafpad ~/.config/openbox/lubuntu-rc.xml

Buscamos desde el editor de texto la línea que contiene

<chainQuitKey>C-g</chainQuitKey>

y debajo de ella pegamos el código siguiente


<!-- Start Expose for LXDE-->
<keybind key="A-grave">
     <action name="Execute">
       <command>skippy-xd</command>
     </action>
   </keybind>
<!-- End Expose for LXDE-->


Guardamos el archivo, cerramos la ventana y volvemos al terminal, donde ejecutamos

openbox --restart

Ahora si introducimos la combinación de teclas Alt y la tecla justo encima del tabulador izquierdo obtendremos el efecto exposé.
Efecto exposé

  • SOMBRAS Y TRANSPARENCIAS

Otro efecto que podemos aplicar y sin apenas consumo de recursos son las sombras de las ventanas y las transparencias de estas cuando se encuentran en segundo plano. Para ello usaremos compton, el cuál podemos encontrarlo en versiones de 32bits o de 64bits. Tras instalarlo podemos configurarlo siguiendo el tutorial de Gespadas. Si queremos incluirlo como una aplicación de inicio (para que cada vez que arranquemos el sistema se encuentre en ejecución), podemos hacerlo editando el archivo "/etc/xdg/lxsession/Lubuntu/autostart". Para ello, introduce en una terminal el siguiente comando:

sudo leafpad /etc/xdg/lxsession/Lubuntu/autostart

y añade la siguiente línea al final

@compton -cC -i 0.8 -e 0.7 -fF -I 0.065 -O 0.065 -D 6 -m 0.8

Estos parámetros son los que a mí me gustan, aunque lógicamente puedes ponerlos a tu gusto.
Efectos de sombras y transparencias

  • ZOOM

Otro efecto de escritorio que podemos utilizar, y me da la impresión que es bastante desconocido para Lubuntu, es el del zoom, que consiste en aumentar una zona determinada del escritorio. Esto lo podemos hacer con la aplicación xzoom, el cuál, si bien no es tan dinámico como el efecto lupa de compiz, puede darnos resultados bastante buenos, sobre todo si quieres hacer un screencast o simplemente necesitas hacer un zoom  para leer alguna letra pequeña. Para instalarlo basta con escribir en el terminal:

sudo apt-get install xzoom

O bien entrar en el Gestor de paquetes Synaptic, buscar xzoom e instalarlo.
Al ser un programa desde consola, que puede resultar incordioso, pero tenemos la posibilidad de hacer que se ejecute mediante una combinación de teclas, de forma idéntica a como lo hacíamos con el efecto exposé. Para ello, escribe en una terminal

gksu leafpad ~/.config/openbox/lubuntu-rc.xml

Buscamos desde el editor de texto la línea que contiene:

<chainQuitKey>C-g</chainQuitKey>

y debajo de ella pegamos el código siguiente:


    <!-- Zoom in the desktop using xzoom-->
    <keybind key="A-z">
      <action name="Execute">
        <command>xzoom -source 250x150 -mag 2</command>
      </action>
    </keybind>

Guardamos el archivo y ya podemos hacer un zoom utilizando la combinación Alt-z. Por supuesto la combinación de teclas que le asignamos, el zoom, o el tamaño de la porción a aumentar son modificables. Un tutorial lo puedes encontrar aquí.
Efecto zoom de la parte inferior derecha del escritorio

  • NOTIFICACIONES

Para terminar, un último pequeño tip que consiste en modificar las preferencias de las notificaciones en Lubuntu. Por defecto, las notificaciones aparecen durante 10 segundos, en la parte superior derecha y con un tema predeterminado. Si queremos cambiar todos estos parámetros, basta con ejecutar en un terminal:

xfce4-notifyd-config

Y ya os aparecerá la ventana de preferencias, que permite modificar el tema, la posición y el tiempo de las notificaciones. Mis preferencias son el tema Smoke, la posición abajo a la derecha y el tiempo de retardo de 4 segundos. La opacidad al 72%.
Notificaciones modificadas

En los vídeos a continuación muestro cada uno de los efectos en ejecución así como el procedimiento de instalación (para aquellos no muy familiarizados con la terminal).







15 nov 2012

Manejo avanzado de Microsoft Access 2007. Las consultas e informes con parámetros y el panel de control

Puede resultar raro que hable de temas relacionados con la suite ofimática de Microsoft en este blog, y es que ciertamente no la utilizo (utilizo libreoffice). Sin embargo, mi hermano me preguntó unas dudas sobre Access 2007 y traté de ponerme al día con esta aplicación. Si bien no conseguí resolver sus dudas (más bien me las resolvió el a mí), pudimos lograr alcanzar algunos de los objetivos fijados.
Los videotutoriales que muestro a continuación tratan de explicar diferentes aspectos de nivel medio-avanzado de Access, ya que no logré encontrar mucha información al respecto ni en Internet ni en tutoriales.
El primer videotutorial explica cómo crear consultas con parámetros y crear informes asociados a esas consultas.

El enlace al que hago referencia en el vídeo es éste

En este segundo videotutorial se explica cómo introducir los parámetros deseados en un formulario para posteriormente ejecutar la consulta


Y en este último se explica la herramienta de "panel de control" de Access.


Espero que os sirva y os haya resultado de interés.
¿Tienes linux y quieres utilizar la suite de Microsoft? Quizá te interese éste enlace o éste otro.

3 nov 2012

¿Algún visual basic para linux? Sí, Gambas

Llevo unos meses dedicando tiempo a la programación. Aunque ya tenía conocimientos previos, eran muy básicos, así que decidí dar un empujón al tema. Si has leído la entrada anterior, habrás observado que uno de los tutoriales que podemos encontrar en tecnum está dedicado a Visual Basic, que es para principiantes una de las opciones más adecuadas. Este software permite implementar aplicaciones gráficas en muy poco tiempo. Al estar dirigido a sistemas Windows, decidí buscar algún equivalente para Linux. La respuesta la encontré rápido: Gambas. Aunque hace un tiempo escuché acerca de este proyecto, pensé que estaría actualmente abandonado. Nada más lejos de la realidad, han sacado a la luz tres versiones en aproximadamente un mes. Así que me decidí a probarlo. Si bien la interfaz puede dejar mucho que desear visualmente hablando, cumple con el cometido que andaba buscando, crear programas básicos con facilidad. Sin embargo, gambas utiliza un lenguaje muy parecido a Basic, que era hasta ayer desconocido para mí. Así que se me ocurrió la idea de comenzar a adquirir conocimientos de Basic utilizando el tutorial de tecnum y combinarlo con Gambas. Los resultados me parecen interesantes, el ritmo de aprendizaje muy bueno. También busqué algún tipo de tutorial dedicado especialmente a gambas. Fruto de esta búsqueda encontré el portal Comunidad Gambas-es, en el cuál se incluye una sección de descargas de manuales, entre ellos uno de Daniel Campos y José Luis Redrejo más que interesante (puedes descargarlo desde aquí). Combinando toda esta información me propuse realizar un primer ejemplo. A continuación voy a explicar mi primer proyecto, basado en un ejemplo calculadora muy elemental  incluido en el curso de Visual Basic. Basta con arrancar la aplicación, seleccionar la opción de generar una nueva aplicación gráfica, dar un nombre a nuestro proyecto y ya nos encontramos con algo como esto
Que viene a ser una interfaz, si bien no muy buena estéticamente, con una estructura y opciones parecidas a las que nos podamos encontrar en Visual Basic de versiones antiguas. Añadiendo los elementos necesarios a la ventana principal obtenemos
Con la interfaz ya diseñada, resta por añadir un poco de código en el Main para hacer funcional el programa

' Gambas class file

Public Sub _new()
End

Public Sub Form_Open()
End

Public Sub btnSuma_Click()
  vlbResultado.Text = Val(vlbOperando1.Text) + Val(vlbOperando2.Text)
  txtOperacion.Text = "+"
End

Public Sub btnResta_Click()
  vlbResultado.Text = Val(vlbOperando1.Text) - Val(vlbOperando2.Text)
  txtOperacion.Text = "-"
End

Public Sub btnMultiplicacion_Click()
  vlbResultado.Text = Val(vlbOperando1.Text) * Val(vlbOperando2.Text)
  txtOperacion.Text = "*"
End

Public Sub btnDivision_Click()
  vlbResultado.Text = Val(vlbOperando1.Text) / Val(vlbOperando2.Text)
  txtOperacion.Text = "/"
End
El resultado obtenido es
Espero que les haya gustado...

Colección aprenda como si estuviera en primero de Tecnum, Universidad de Navarra

Para iniciarse en el mundo de la programación, unos tutoriales de calidad siempre ayudan. Una colección de apuntes como apoyo a la docencia fueron creados por profesores y colaboradores de la Escuela Superior de Ingenieros de San Sebastián. Como indican en el sitio web de tecnum, no se suponen conocimientos previos. Además esta colección puede ser descargada como ficheros .pdf. A mí no me queda más que agradecer el esfuerzo realizado, me parece simplemente genial. La colección la pueden encontrar aquí, existiendo tutoriales para herramientas tan utilizadas como Visual Basic o Java.

2 nov 2012

Videos explicativos para Lubuntu

Al ser Lubuntu una versión no tan extendida, la documentación que podemos encontrar sobre esta distro es, sino escasa, poco abundante. Sin embargo hay personas encargadas de hacer la vida más fácil. Éste es el caso de Leszek Lesner que decidió crear screencasts explicativos de configuraciones y aplicaciones (en inglés). Podéis encontrar toda su colección aquí, en la que también encontraréis tutoriales de kde. Algunos se encuentran un poco anticuados, pero en general son muy, muy buenos. De especial interés puede ser el que explica cómo hacer que una determinada aplicación arranque con el sistema, algo que suele dar muchos quebraderos de cabeza a los recién llegados. El enlace a este vídeo lo podéis encontrar aquí.

1 nov 2012

Comenzando desde cero. Documentación para principiantes.

Al ser Lubuntu una versión derivada de Ubuntu, tenemos la ventaja de que la casi totalidad de tutoriales e información que encontremos para Ubuntu van a ser perfectamente válidas para Lubuntu también. Como punto de partida creo interesante citar la wiki de documentación de Ubuntu en español, en la cuál podemos encontrar información muy variada relacionada con esta distro. De especial interés son la guía de instalación y la tabla de equivalencias entre aplicaciones Windows y Linux.
Y, si lo que prefieres son los vídeos, podeis visitar la entrada de ubuntulife en la que se muestra el proceso de preparación, particionado e instalación. Uno específico de Lubuntu, aunque en inglés, se puede encontrar aquí.