Funciones

Una función o método en Java, es un subprograma que, es llamado desde el programa principal o desde otro subprograma y, antes de finalizar su ejecución, devuelve un resultado en la linea de código desde la que se llamó.

En el siguiente esquema se representa un programa principal que actúa como calculadora llamando a las funciones suma, resta y producto, pasándole los valores de cálculo x, y. Cada una de estas funciones devolverá (return) el correspondiente resultado: TOTAL-SUMA, TOTAL-RESTA, TOTAL-PRODUCTO:

Tipos de datos, variables y la Entrada/Salida en Java

Iniciamos el tema 2 de la asignatura programación, del primer curso del Ciclo Formativo de Desarrollo de Aplicaciones Web, con los iniciales conceptos relativos al desarrollo de programas mediante el empleo de un determinado lenguaje de programación, en el caso de esta asignatura nos limitaremos al lenguaje Java aunque, por extensión, lo comentado a continuación podría ser aplicable a cualquier otro lenguaje de programación.

Un programa informático es un conjunto de lineas de código en las que el programador va indicando los pasos que debe realizar la aplicación en aras de lograr un determinado objeto.

Muy probablemente el programa deberá guardar datos para posteriormente utilizarlos con una finalidad u otra. Estos datos son almacenados en lo que comúnmente se conoce en programación como variable. Una variable es una sección de la memoria RAM de nuestro ordenador identificada por una dirección, dentro de la cual se podrá guardar, durante el tiempo que funcione el programa, un determinado valor que podrá ir variando (de hay procede el nombre de variable) en el transcurso de la ejecución del programa. Si por contra, el dato a guardar en una dirección de la memoria RAM no puede variar o alterarse mientras dure la ejecución de la aplicación, en lugar de variable tendremos que referirnos al concepto de constante.

Dependiendo del tipo de dato (número entero, número real, carácter, texto, etc) a guardar, en una sección de la memoria RAM (variable) se reservará más o menos espacio en la misma con el objetivo de dar cabida a ese dato. Es por este motivo que en este tema que iniciamos haremos referencia a los diferentes tipos de datos que podemos hacer uso en Java a la hora de declarar variables en el programa.

Otro punto a tratar en el tema 2 de la asignatura de programación es la Entrada/Salida de la información en un programa.

En la mayoría de las situaciones, en todo programa informático debe de haber una comunicación bidireccional entre este y el usuario del mismo. Es por ello que todos los lenguajes de programación ofrecen instrucciones para, por una parte, mostrar al usuario algún tipo de mensajes o información que le pueda interesar (flujo de salida) y, por otra, posibilitar que el usuario pueda aportar información o datos al programa (flujo de entrada). Sin estos dos tipos de instrucciones no sería posible la comunicación entre programa y usuario y por lo tanto no se podrían crear aplicaciones como las que actualmente utilizamos.

A lo largo de este tema trataremos estos dos bloques de información:

1. Tipos de datos, variables y constantes.

2. La entrada y salida de la información.

Y nada más. A partir de ahora empezáis a iniciaros en el mundo de la programación. Con ilusión y esfuerzo os iréis adentrando en un conocimiento que deseo y espero os cautive.

Saludos a todos.

Jesús Albert Magro

Profesor de programación en el Ciclo Formativo de Grado Superior de DAW

Taxonomía en Drupal

Posiblemente la palabra taxonomía nos suene extraña y debamos recurrir a un diccionario para averiguar su significado. Su origen etimológico, como muchas otras palabras, proviene del Griego como composición de los términos Taxo (Clasificar) y nomia (orden, reglas).

Mucho más recientemente, Linneo realizó una clasificación de las especies animales a la cual denominó taxonomía.

Extrapolando al espacio de la tecnología de la información, cuando hablamos de taxonomía nos referimos también a la idea de clasificar conceptos. Por ejemplo, en un CMS como Drupal, esta palabra adquiere una gran importancia dada la necesidad imperiosa de clasificar y categorizar el gran alud de contenidos que con el devenir del tiempo se irán acumulando en él.

Cuando diseñamos una página web con HTML o, cuando elaboramos un sitio web con un determinado CMS, en cada artículo o página del mismo podemos especificar las etiquetas, tags o términos que ayudarán al buscador en su tarea de encontrar el contenido pertinente peticionado por un cliente cualquiera. En Drupal vamos a dar una nueva vuelta de tuerca a esta idea:

Drupal ofrece la posibilidad de categorizar todo el contenido de nuestra web de forma que al buscar una determinada información a partir de un término ya clasificado, no solamente obtendremos artículos con dichos términos sino también otros con palabras afines o sinónimas que ampliarán y complementarán la información que a priori deseábamos obtener.

Por este motivo, para clasificar adecuadamente la información de nuestro sitio web Drupal, vamos a tener que estudiar, practicar y comprender con los conceptos de vocabulario, término, sinónimo, a partir de los cuales iremos ahondando en las amplias posibilidades de la supuestamente consabida, nombrada pero poco entendida Web Semántica.

En el tema 4 de la asignatura Implantación de Aplicaciones Web del del ciclo formativo de ASIX vais a tener que realizar prácticas sobre la taxonomía en Drupal, espero que con la realización de las mismas adquiráis un solido conocimiento sobre este concepto, muy útil en el espacio de las tecnologías de la información donde el acceso rápido y coherente a la información son y serán un valor en alza ahora y en el próximo futuro venidero.

Saludos a todos.

Jesús Albert Magro

Servidor proxy

Para la definición de un servidor proxy me remito a la explicación que nos ofrece la Wikipedia:

«Un proxy, o servidor proxy, en una red informática, es un servidor —programa o dispositivo—, que hace de intermediario en las peticiones de recursos que realiza un cliente (A) a otro servidor (C). Por ejemplo, si una hipotética máquina A solicita un recurso a C, lo hará mediante una petición a B, que a su vez trasladará la petición a C; de esta forma C no sabrá que la petición procedió originalmente de A. Esta situación estratégica de punto intermedio le permite ofrecer diversas funcionalidades: control de acceso, registro del tráfico, restricción a determinados tipos de tráfico, mejora de rendimiento, anonimato de la comunicación, caché web, etc. Dependiendo del contexto, la intermediación que realiza el proxy puede ser considerada por los usuarios, administradores o proveedores como legítima o delictiva y su uso es frecuentemente discutido.»

Con otras palabras, la función de un servidor proxy es hacer de intermediario entre las peticiones de un cliente a un servidor web de forma que mediante la configuración del servidor proxy resulta posible controlar y restringir el acceso a determinados contenidos que por determinadas razones no conviene que el usuario deba acceder: contenidos pornográficos, violencia, etc.

En la asignatura de Servicios de Internet trataremos el tema de los servidores proxy desde el punto de vista de su instalación y configuración.

Jesús Albert Magro

Router

Un router es un dispositivo de capa 3 de red del nivel OSI. Su función principal es encaminar paquetes de datos entre diferentes redes buscando para ello el camino más corto o eficiente entre el ordenador origen (emisor) y el ordenador destino (receptor).

Aunque no sea su única función, la mayoría de routers utilizados hoy en día son para encaminar paquetes de dos entre nuestro ordenador personal y la red de redes Internet.

Repositorios en Moodle

El concepto de repositorio hace referencia al lugar donde se guarda información necesaria para un curso de una Aula Virtual Moodle.

La idea en la utilización de repositorios en Moodle estriba en el hecho que la información deje de pertenecer de forma exclusiva a un curso y, pueda ser utilizada por el resto de cursos en Moodle de una forma compartida.

Hasta la versión 1.9x de Moodle, cuando un curso precisaba de un archivo, se subía a dicho curso y desde él se hacia referencia al mismo; si en otro curso se precisaba el mismo archivo había que volver a subirlo al espacio de carpetas propio de este segundo curso (moodledata/identificados-del-curso) con lo que no se aprovechaba la información o archivos ya existentes en otro curso con la consiguiente duplicación de la información, del espació y del tiempo necesario para subir nuevamente estos archivos de datos a un determinado curso del Aula Virtual.

A partir de la versión 2.0 de Moodle se emplean los repositorios con el objetivo de crear un espacio común de gestión y acceso a la información evitando entre otras cosas, la duplicación de la información en los cursos de una misma Aula Virtual.

Creando un repositorio en Moodle, a los archivos en él almacenados, se podrá acceder desde cualquiera de los cursos del Aula Virtual. No cabe decir que esto supone una sustancial ventaja respecto a la no existencia de repositorios en versiones de Moodle anteriores a la 2.0.

Otra ventaja que ofrece el empleo de repositorios es la de que algunos de ellos hacen referencia a espacio de almacenamiento de archivos externos a Moodle como por ejemplo Google Docs de gmail, Alfresco, DropBox. De esta forma, se ahorra mucho espacio en el disco del servidor de Moodle ya que en lugar de almacenarse los archivos en este lugar se guardan en otro servidor externo (gmail, alfresco, dropbox)  y Moodle, únicamente se limita a hacer referencia a dichos archivos.

Esta última posibilidad es de suma importancia no solamente por el ahorro de espacio en disco sino también por el hecho de poder guardar archivos de elevada capacidad en otro lugar externo y de esta forma evitar problemas de funcionamiento en Moodle como por ejemplo en las copias de seguridad de cursos con archivos grandes.

Primeros pasos con PostgreSQL

Una vez instalado postgresql se van a ver las primeras acciones a realizar desde el modo comandos de este Sistema Gestor de Base de Datos:

Por defecto, una vez finalizada la instalación, existe un usuario linux y de postgresql administrador denominado postgres. Desde el shell de Linux nos conectamos como dicho usuario:

sudo -i -u postgres

Como usuario postgres solicitamos el acceso al interprete de comandos psql mediante la orden

psql

En este momento ya tenemos el nuevo shell de postgres y como tal ya podemos proceder a ejecutar comandos de administración propios de psotgresql.

Con el siguiente comando vamos a poder ver todas las bases de datos de postgresql accesibles por el usuario con derechos de administrador postgres (todas):

\l

Si pretendemos crear una nueva base, denominada empresa, de datos escribiremos la siguiente instrucción SQL (siempre finalizada con un ;):

CREATE DATABASE empresa;

Nuevamente, si escribimos el comando \l vamos a ver que en el listado de bases de datos existentes, tenemos una nueva base de datos de nombrer empresa.

Para seleccionar una nueva base de datos (por ejemplo empresa) con el fin de usarla (por ejemplo para ver sus tablas, crear nuevas tablas, dar de alta nuevos registros, etcétera) escribiremos el siguiente comando:

\c empresa

Una vez usada o seleccionada dicha base de datos, si pretendemos listar todas las tablas que contiene, debemos escribir el comando:

\d

Para, en esta tabla empresa, crear una nueva tabla denominada producto,  habrá que escribir la correspondiente sentencia SQL que crea una nueva tabla en una base de datos (siempre finalizada con un ;):

CREATE TABLE productos (
    nref varchar(50) NOT NULL,
    precio INT NOT NULL,
    fecha_caducidad date,
primary
key(nref) );

Nuevamente, si escribimos el comando que muestra las tablas de la base de datos empresa (la que se encuentra en uso este momento)
\d
Veremos la existencia de la nueva tabla productos.

pgadmin

Pgadmin es una herramienta gráfica que permite administrar nuestro servidor postgresql sin necesidad de trabajar con comandos.

Para la instalación de esta herramienta en un entorno ubuntu se requiere la ejecución de la sentencia siguiente:

sudo apt-get install pgadmin3

Una vez instalado, tendréis que modificar el parámetro

 listen_addresses = ‘localhost’

del archivo postgresql.conf para que, al menos, acepte peticiones  localesde localhost.

Finalmente para ejecutar dicha aplicación, deberéis escribir el comando:

pgadmin3 &

Y, a continuación, establecer una nueva conexión.

Modelizar una base de datos haciendo uso del Diagrama Entidad Relación

Modelizar una Base de Datos es realizar un diseño en aras de obtener finalmente unas tablas perfectamente relacionadas sin errores en el proceso de la realización de altas, bajas y modificaciones en las mismas.

Existen varios sistemas modelizadores de Base de Datos, el más aplicado de todos ellos es el Modelo Entidad Relación (E/R), el cual estudiaremos en este curso.

Este tema, que hoy iniciamos, va a quedar claramente dividido en tres secciones: El diseño E/R, el paso a tablas y la normalización de las mismas.

En el Diseño E/R, mediante el empleo de una serie de elementos gráficos asociados a diferentes conceptos del esquema E/R, vamos a representar la información especificada o narrada procedente de los requerimientos de un cliente.

Mediante el Paso a Tablas, a partir del esquema E/R ya creado, desde un plano teórico, se van a obtener las tablas de una futura Base de Datos con sus atributos, claves y propiedades.

Obtenidas las tablas, van a pasar por un proceso de depuración para optimizar en un futuro su uso evitando posibles errores en su manejo. Este proceso de optimización de las tablas se denomina Normalización, existiendo varias formas normales que deberá cumplir cualquier tabla en su camino de mejora y optimización.

Transcurrido el proceso de diseño y analisis de una Base de Datos, estaremos dispuestos a utilizar  cualquier Sistema Gestor de Base de Datos (SGBD) para completar la creación de una Base de Datos. No obstante, este último punto lo vamos a delegar para los siguientes temas del curso.

Y nada más, os emplazo a todos a estudiar y practicar con ahínco estos conceptos que a bien seguro repercutirán positivamente en vuestra formación como futuros analistas y diseñadores de Bases de Datos.