Informática



Os dejo un pequeño tutorial que acabo de preparar de cómo integrar y usar JMesa en Struts 2.
[Más Info]

Aqui os presento mi nueva caja: Cooler Master Storm Sniper.

A destacar los 2 ventiladores de 20 cms que trae de serie. Uno en el frontal y otro en la parte superior.

Colocados de forma que favorece la recirculación del aire en el interior de la caja.

Otro punto a destacar es la amplitud de su interior. Aquí una simple comparación con una semitorre normal y corriente:

La instalación de discos duros, lectores o grabadoras es muy rápida ya que se hace sin necesidad de tornillos.

En la parte superior los indispensables botones de encendido y reseteo. 2 Led’s azules muy resultones que sustituyen a los clásicos led verde y led rojo.

A parte tenemos conectores para unidades externas SATA, IEEE1394, 4 USB, micrófono, salida estéreo y una rueda que nos permite controlar la velocidad de los ventiladores y el encendido o apagado de los LED’s de estos.

En cuanto a temas de sonoridad, el cambio ha sido abismal. Ya no hay vibraciones de ningún tipo, y es que la calidad de los materiales es palpable. Cada pieza encaja perfectamente, sin holguras, sin vibraciones y lo mejor es que además la temperatura del interior se ve reducida.

Una de los detalles importantes en la reducción de la temperatura de la CPU, es que la fuente va en la parte inferior, quedando lejos del procesador y la memoria.

PROS:
- Excelente calidad en el acabado.
- Gran amplitud.
- Muy buena refrigeración.
- Diseño sobrio e imponente.
- Nivel de sonoridad reducido drásticamente.
- Montaje y extracción de unidades rápido y cómodo.
- Precio

CONTRAS:
- … ¿?

Aqui tenéis una review mucho más detallada

Un nuevo blog dedicado exclusivamente al mundo de la programación está en marcha.

Con un presupuesto infinitamente más modesto que el de www.pollodegomaconpolea.net (5€/0€ = infinito) arranca Pollo de goma Orientado a Objetos.

Después de más de 2 años en el mercado me he decidido a instalar Windows Vista. Las principales razones:

- Mejor versión de 64bits que Windows XP.
- “Sacarle partido” al procesador de 64bits.
- Soporte para los 4GB de RAM (los OS de 32 bits se quedan sobre los 3 GB).
- Ver si en Bioshock se notan las DirectX10 o es simple marketing
- Curiosidad…

Antes de instalarlo ya había toqueteado un poco el Vista en otros PC’s; y al igual que pasó en 2001 y XP, no me gustó nada.
Sin embargo XP con el paso del tiempo mejoró mucho, se hizo un sistema muy estable y rápido. Así que he pensado que al igual que XP me acabó gustando, Vista podría ser más de lo mismo. ¿por qué no darle una oportunidad?

Empezamos por la instalación. Si dejamos de lado las numerosas versiones desatendidas no oficiales que circulan por la red del XP; la instalación de Vista es más sencilla, más cómoda, más… desatendida xD. Aunque no pienso darle puntos por ello; un sistema operativo no es algo que se esté quitando y poniendo frecuentemente.

Los primeros pantallazos que nos encontramos nada más iniciar Vista por primera vez van sobre una tal “Experiencia de usuario” que te dirá con un número cuán viejo es tu ordenador y las piezas que tienes que cambiar. Afortunadamente, cualquier ordenador actual tendrá una puntuación rondando el 5.9 (es lo máximo); con lo cual tu experiencia será casi religiosa.
Algo positivo frente a XP es que no ha hecho falta instalar el driver de mi tarjeta de sonido integrada en placa; cosa que en XP tenía que hacer. Para la gráfica me he tenido que bajar un paquete de drivers de 130 megas (¿estamos locos?)… en fin, supongo que serán todos iguales.
Read the rest of this entry »

Dada la poca información que hay en internet sobre CRE (Content Relation Engine) y menos aún en castellano; me he decidido a escribir un pequeño tutorial sobre su utilización que espero pueda servir a alguien.

Esta miniguía está pensada para gente que tenga conocimientos básicos de OpenCms.

CRE permite a OpenCms relacionar contenido de un mismo tipo que se encuentran en diferentes carpetas del VFS de OpenCms de manera fácil y rápida. Supongo que tendrá otras utilidades, lo desconozco; pero sin duda ésta es una de las más importantes.

Para poder hacer uso de CRE lo primero es crear las categorías que necesitemos. Para ello nos situamos en el directorio /system/categories/ del VFS y creamos por ejemplo la siguiente estructura:

/system/categories/contenido/
–>/system/categories/contenido/noticias
–>/system/categories/contenido/eventos

Hecho esto, tenemos que modificar nuestros XSD donde tenemos la definición de nuestros XMLCONTENT y añadir las siguientes líneas:

Una vez tenemos nuestros XSD editados, y quizás sea recomendable reinicializar el entorno de trabajo, en las opciones de Administración. Podemos empezar a dar de alta nuevo contenido en cualquier lugar de nuestro VFS. Veremos que al editar contenido tenemos un nuevo campo con un desplegable:

Seleccionamos “Eventos” en nuestro caso; y repetimos el proceso con todos los contenidos que tengamos que dar de alta en la web.

Por último, tendremos que utilizar un collector especial para CRE en nuestra JSP que lista los “eventos”: allKeyValuePairFiltered.

Un ejemplo de su uso para nuestro caso sería:

Donde:
- resourceType es el nombre del tipo del XMLCONTENT o contenido estructurado a “colectar”.
- categoryTypes es la ruta completa de la categoría.

Sin duda, una gran herramienta que está disponible desde la versión 7.0 de OpenCms.

Un saludo, en especial a la gente de OpenCmsHispano por su impagable ayuda. :)

Código Fuente

He visto que hay problemas para escribir en la cabecera de una ALV Grid en ABAP/4 y dado que en castellano no he encontrado nada; dejo este ejercicio por si a alguien le sirve de ayuda.

Código Fuente

PD: cualquier error detectado o sugerencia son bienvenidas.

Después de practicar un poco con iReport me he animado a dejar un básico tutorial para todo aquel que se enfrente por primera vez con este programa.

iReport es una herramienta visual para construir y/o diseñar informes. En un principio creada para utilizar bajo Microsoft Windows; ahora también existe una versión JAVA. Aquí usaré la primera.

Un informe no es más que un conjunto de registros de una base de datos listos para su uso.

En este caso trabajaremos con una base de datos de Microsoft Access 2003 que tengo en mi ordenador desde hace un tiempo.

La base de datos cuenta con varias tablas, entre ellas una llamada: “Peliculas“. Ésta a su vez cuenta con varios campos, aunque sólo utilizaremos dos de ellos: “Pelicula” y “Registro“. En el primero se almacena el nombre de la película, y en el segundo el número del disco en la que se encuentra.

Quiero imprimir un informe en un PDF con el listado de películas y su correspondiente número de registro, ordenado por el título de ésta.

Para empezar debemos crear un origen de datos ODBC.

1º Panel de control -> Herramientas Administrativas -> Orígenes de datos ODBC.
2º Agregar -> Microsoft Access Driver
3º Nombre: Peliculas2007 y seleccionamos el fichero.

Ya tenemos nuestro origen de datos creado. Es muy importante no renombrar el fichero ahora, si no, el origen de datos ODBC no funcionará.

Hecho esto, pasamos a la descarga e instalación de iReport. La cual es totalmente asistida y no presenta mayor complicación.

Una vez listo, lanzamos la aplicación y creamos un nuevo documento.

Nos aparece la plantilla del informe:

- title: sólo aparece al inicio; una única vez.
- pageHeader: aparece en la cabecera de cada página.
- columnHeader: se utilizar para listar el nombre de los campos de los registros de las tablas.
- detail: aquí se imprimirán los registros.
- columnFooter: se utiliza para presentar información relevante a todos los registros de un mismo campo.
- pageFooter: aparece al final de cada página.
- summary: aparece al final del informe.

Con nuestro básico ejemplo nos bastará con mostrar un título general para el informe; el nombre de los campos a mostrar, todos los registros y un pequeño sumario al final.

Para empezar debemos crear una conexión que la base de datos. Para ello entramos en el menú “Datos” -> “Conexiones/Fuentes de Datos“.
1º Seleccionamos una conexión JDBC.
2º Nombre: Peliculas
3º Controlador JDBC: sun.jdbc.odbc.JdbcOdbcDriver
4º JDBC URL: jdbc:odbc:Peliculas2007

Hacemos una prueba y si todo ha ido bien se nos informará de ello. Salvamos los cambios y continuamos.

Ahora necesitamos especificar cual será la consulta para generar el informe. En éste tutorial no vamos a explicar nada de SQL.

Nos vamos de nuevo al menú “Datos” -> “Consulta de informe” e introducimos la siguiente consulta SQL:

Ya sólo nos queda moldear la plantilla a nuestro gusto.

Insertaremos el título en la sección de tittle haciendo clic en el icono con forma de T de la barra de herramientas.

A su vez, haremos lo mismo en columnHeader para el título de los campos de nuestro informe y en summary incluiremos una pequeña información a modo de curiosidad.

Finalmente insertaremos en details los dos campos de nuestra tabla de la base de datos: “Pelicula” y “Registro” haciendo clic en el icono con forma de F situado en la barra de herramientas.

Desde el menú Construir elegimos el tipo de vista (yo he elegido PDF); y ejecutamos el informe usando la conexión activa.

El resultado, un bonito PDF.

Espero que os haya sido útil.

Un saludo.

PD: No me hago responsable de los errores que se hayan podido cometer en la realización de este tutorial. En caso de que tengas algo que corregir o añadir contacta conmigo a través de la dirección de correo situada en el pie de esta web.

Recordando un poco algo de ODBC visto el año pasado me he propuesto hacer un pequeño tutorial de como consultar una base de datos (BDD) MS Access desde JAVA.

Para empezar necesitaremos crearla desde la conocida suite ofimática. Yo voy a coger una que empecé allá por el 2000 donde tengo clasificada toda mi música, peliculas, etc… (espero que ningún miembro de la $GAE le dé por entrar aquí xD).

En Access cada fichero representa una BDD, y en mi caso, mi BDD contiene 3 tablas: “Juegos PC”, “Peliculas” y “Varios MP3″. Usaremos la tabla “Peliculas”.

Un tabla está compuesta por una serie de campos (columnas):

En este caso, cada película de la tabla sería una tupla.

Crear una base de datos simple en Access es algo muy sencillo y no precisa de muchos conocimientos.

Una vez construida la BDD debemos agregar un “Origen de datos ODBC”; para ello hacemos clic en “Inicio” -> “Panel de Control” -> “Herramientas Administrativas” -> “Orígenes de datos (ODBC)”

Tenemos que añadir un controlador para Microsoft Access (”Microsoft Access Driver”) y asignarle la base de datos que hemos creado.
** Es importante después de esto no renombrar el fichero ni modificar su ruta en el disco duro.

Lo siguiente es realizar la aplicación JAVA que use el driver ODBC para conectar con Access. La API de JAVA ya incorpora las librerías necesarias, por tanto tan sólo tendremos que tirar código:

El IDE nos puede ayudar mucho para la parte gráfica de la aplicación; pero lo más interesante de se concentra en este método:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver”);
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
DefaultTableModel modelo = new DefaultTableModel();
this.jTable1.setModel(modelo);
modelo.addColumn(”Nº”);
modelo.addColumn(”Pelicula”);
modelo.addColumn(”Prestado”);
modelo.addColumn(”Registro”);
Connection con;
try {
con = DriverManager.getConnection(”jdbc:odbc:Peliculas2007″);
Statement stm= con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs= stm.executeQuery(”select Pelicula,Prestado,Registro from Peliculas”);
int contador=1;
while (rs.next()) {
Object [] fila = new Object[4];
for (int i=0;i<3;i++)
fila[i+1] = rs.getObject(i+1);
fila[0]= contador;
contador++;
modelo.addRow(fila);
}
} catch (SQLException ex) {
ex.printStackTrace();
}

this.setVisible(true);
this.jTable1.setVisible(true);
}

Una vez creada la aplicación podemos crear un fichero BAT para facilitar su ejecución. Para ello abrimos el bloc de notas y copiamos lo siguiente:

echo off
cd\
cd C:\JAVA\Peliculas2007\build\classes\
java CD2007/Vista

Guardamos el fichero con extensión BAT (no TXT) y lo ejecutamos:

Descargar código fuente

Espero que os haya gustado u_u’ y un biquiño para mi nena que ha dudado de la utilidad de este artículo mientras lo escribía. xD

boomp3.com

Tenemos una idea de lo que es Java. Tenemos el entorno preparado para empezar a programar… y si pensabas que en este capítulo ya ibamos a tirar código estás muy equivocad@. :P

Intentaré no extenderme mucho, ya que éste capítulo tiene un montón de detalles en los que se podría profundizar más; pero no es el objetivo.

Todos tenemos una idea de lo que es un ordenador; pero pocas personas son conscientes de todo lo que ocurre en su interior cuando estamos abriendo un correo, escuchando música o ejecutando un juego.

Hablaremos, y muy poco, de la CPU. La CPU es el “cerebro” de nuestra máquina. Es la encargada de procesar toda la información que llega a nuestro ordenador, tratarla y dar un resultado. El ser humano utiliza el lenguaje para transmitir información. Para ello contamos con un léxico, reglas gramáticales, etc. Un ordenador es más sencillo que todo eso; nuestro ordenador sólo entiende de “1″ y “0″ (binario). Evidentemente esto es una forma cómoda para nosotros. Por nuestro ordenador lo que circula son impulsos eléctricos y su ausencia o no hará que se determine si ha llegado un “1″ o un “0″. Cada uno de estos valores se le denomina bit. Los bits se agrupan en grupos de 8 para formar un byte. 1024 bytes = 1 kilobyte; 1024 kilobytes = 1 Megabyte; …

En los comienzos de la informática se programaba en código máquina. Más tarde se facilitaron un poco las cosas gracias al lenguaje ensamblador. Un lenguaje de bajo nivel y específico al diseño de la CPU (registros, instrucciones, etc). Lo cual quiere decir que un programa escrito para una máquina A probablemente no funcionaría para una máquina B.

Vamos a pegar un gran salto… por arte de mágia los lenguajes fueron evolucionando hasta llegar a los lenguajes de alto nivel.

La sintaxis se asemeja mucho a la forma de hablar del hombre y con la Programación Orientada a Objetos, además, copia su realidad, su forma de pensar y de entender las cosas.

La Programación Orientada a Objetos es una forma de entender la programación. Toda entidad del mundo real queda reflejada en forma de objeto en nuestro programa. Todo objeto existe independientemente de los demás, es autosuficiente. Sólo él es dueño de su estado.

Un objeto, además de existir, tiene unas propiedades o atributos que definen su estado. También cuenta con una serie de métodos que le permite realizar ciertas acciones.

Pongamos como ejemplo a una persona llamada Ramón.

Ramón tiene 34 años, pesa 71 Kg y mide 179 cms.
Además, como buen andaluz, Ramón sólo sabe comer, cantar y bailar.

Es muy fácil determinar cuáles son los atributos y los métodos de Ramón.
Atributos
Nombre: Ramón
Edad: 34
Peso: 71
Altura: 179

Al igual que sus métodos.
Métodos
comer();
cantar();
bailar();

Podríamos decidir que el método “comer()” modifique el “Peso” de Ramón.
Que el método “cantar()” haga que Ramón le cante a la Virgen de la Esperanza es lo último que se pierde.
Y que el método “bailar()” haga que Ramón levante los brazos y se ponga a girar sobre si mismo.

Si nos fijamos bien, hemos creado a Ramón a partir de un patrón. Ese patrón es lo que se conoce por Clase. Una clase no existe en el mundo real. Podemos encontrar millones de personas en el mundo, cada una de ellas será una instancia de la clase “Persona”; es decir, existen millones de objetos del tipo “Persona” en el mundo.

En nuestro mundo, las personas solo tienen nombre, edad, altura y peso. Y lo único que saben hacer es comer, cantar y bailar. Teniendo la Clase definida podremos crear cuantos objetos queramos. Es más, no podíamos crear a Ramón si no hemos definido antes la clase “Persona”.

Un ejemplo más para que quede claro.

Clase “Coche”:
Atributos
Nombre
Color
Cilindrada
Velocidad Actual

Métodos
Acelerar();
Frenar();

Creémonos un coche (Objeto del tipo de la Clase Coche):
Atributos
Nombre: SEAT León :D
Color: Negro
Cilindrada: 2000
Velocidad actual: 0

Como podeis ver los atributos son datos que se almacenarán de una forma u otra. Y que no es lo mismo la forma que tiene de almacenarse el “Nombre” del coche a su “Velocidad actual”. Por ello se introduce el concepto de tipo de dato. Cuando creemos nuestro objeto “Seat León” necesitaremos lo que se denominan variables para almacenar sus atributos. Una variable en programación se asemeja mucho al concepto de variable matemática. Una variable no es más que una referencia a cierta información que se encuentra en la memoria de nuestro ordenador.

Para poder acceder correctamente al contenido de esa variable debemos conocer el tipo de la misma. Por ejemplo:

Si queremos almacenar la cilindrada de nuestro coche necesitaremos una variable de tipo “entero”. Si queremos almacenar el nombre del coche, necesitaremos una “cadena de carácteres”.
La velocidad actual, al contar con decimales, podríamos usar un variable de tipo “entero con decimales”.

Tampoco nos vamos a preocupar demasiado por el asunto de cómo almacenar los atributos y qué debemos hacer exactamente. Lo importante es saber la diferencia entre Objeto y Clase. Saber para qué sirven los atributos y para qué sirven los métodos.

En cuanto a éste último concepto. Ya hemos dicho que los métodos son “acciones” que pueden realizar los objetos. Nuestro coche tiene 2: “acelerar()” y “frenar()”. Se adivina que cuando hagamos uso de ellos modificaremos la “Velocidad actual” del mismo.

<-- Descanso -->

Recopilando.

Hemos visto y entendido (espero) por qué Java es un lenguaje Orientado a Objetos. Hemos creado en nuestra mente nuestra 2 primeras Clases.

Vamos a suponer que conocemos la forma de pasar la Clase “Coche” a Java. Que ya sabemos escribir la sintaxis y además nos hemos creado un coche para acelerar y frenar con él.

Nuestra CPU no entenderá nada de lo que hemos escrito. La CPU no entiende el Código Fuente. Dijimos al principio que la CPU sólo entiende el código máquina. ¿Qué hacemos con nuestras flamantes 30 líneas de código escritas en Java?

Tenemos que convertirlas en el lenguaje que entiende nuestro microprocesador (CPU). Este proceso se llama compilación. Es realizado por el compilador de Java. Una vez compilado tendremos un fichero entendible por nuestra CPU….

¡FALSO!

Esto es lo que ocurre en la mayoría de lenguajes como C, C++, Pascal,… Dijimos en el primer capítulo que los programas de Java eran portables. Una misma aplicación funcionaría en una PDA, un sistema Unix, un PC con Windows, … Esto es porque el compilador de Java no genera archivos compilados en código máquina. Si no en bytecodes. Los bytecodes son interpretados por la Máquina Virtual de Java (JVM) o cómpilados a código máquina nativo en tiempo de ejecución. No es la CPU quien ejecuta las aplicaciones Java directamente. Es la JVM quien se encarga de hacer de CPU y traducirle a su lenguaje los bytecodes. Cómo existen JVM en muchos sistemas nuestra aplicación funcionará en todos ellos.

Y se acabó este tema. Es importante entender los conceptos aquí introducidos. Se irán haciendo referencias a ellos constantemente y en el próximo capítulo (como en las series xD) pondremos a prueba lo que se ha explicado con un par de ejemplos prácticos.

Próximo cápitulo: 4. Nuestro primer programa.

Tutorial propiedad de www.pollodegomaconpolea.net de libre distribución siempre que se haga referencia a éste sitio.

Hasta aquí tenemos una idea de que es Java y para qué puede servir. Aún no sabemos cuántas posibilidades tiene pero tenemos claro que queremos empezar a programar.

Lo principal cuando quieres desarrollar en una determinada plataforma es tener el SDK (Software Development Kit o Kit de Desarrollo de Software). Como su nombre indica, el SDK es un conjunto de herramientas, libres o de pago, que proporciona el desarrollador de la plataforma. En el caso de Java, Sun distribuye gratuitamente el SDK, y lo que es también de mucha ayuda, el código fuente (en el próximo capítulo se explicarán algunos terminos como éste).

A parte del SDK, y aunque es opcional, es muy interesante el uso de un IDE. Un IDE es un Entorno Integrado de Desarrollo.
Para hacer un programa en Java puedes usar el mismo bloc de notas de Windows. Una vez tengas el programa escrito tendremos que crear el archivo “ejecutable” (en java no se llaman así). Dicho de forma simple, convertiremos nuestro texto escrito en JAVA en un bonito programa listo para usar. Un IDE además de hacerte ésto con un sólo clic de ratón, te ayuda a detectar fallos de sintáxis, a buscar errores lógicos, etc…

Es conveniente no acostumbrarse demasiado a la ayuda del IDE, sobre todo en los primeros pasos en el mundillo de la programación, así que intentaremos no exprimirlo demasiado al principio.

Bueno, a lo que importa. Tenemos muchas ganas de ver nuestra mega-aplicación funcionando que nos lanzará a la fama y desbancará a Google y Microsoft de la cumbre informática.

Nos descargaremos el SDK junto con el IDE de NetBeans. Podriamos haber elegido otro como Eclipse o Jdeveloper.

http://java.sun.com/j2se/1.5.0/download-netbeans.html

Instalación de NetBeans Instalación de NetBeans

El archivo pesa bastante así que tardará un rato, dependiendo de tu conexión.

Una vez bajado pasamos a la instalación. Es muy sencilla y nuestra presencia sólo se requerirá para ir pulsando NEXT NEXT NEXT….

Una vez instalado se nos creará un acceso directo en el escritorio a NetBeans. Y aunque hoy no vamos a hacer nada, antes de terminar la instalación es importante cuidar un aspecto del entorno.

Como dije al principio, el IDE no es más que una herramienta que nos facilita el trabajo, pero sin el SDK no sirve de nada. Nos hemos bajado una versión donde todo viene “junto” y no nos tenemos que preocupar de nada. Pero podría darse el caso de que instalamos el SDK y el IDE por separado, o, por ejemplo, sacan una versión más actualizada del SDK y queremos instalarla en nuestro ordenador. Para que el IDE (NetBeans en nuestro caso) hago uso de un SDK específico deberemos acceder al Manager de Plataformas de Java:

Pulsando ADD PLATFORM accederemos a esta pantalla donde buscaremos los SDK instalados en nuestro ordenador. Al principio, presumiblemente tendreis sólo uno.

Free Image Hosting at www.ImageShack.us

En cada actualización del SDK se corrigen errores, se añaden funcionalidades; por ello es importante estar actualizado y vincular la nueva versión del SDK al IDE como se acaba de explicar.

Y pim pam pum, bocadillo de atún. Ya tenemos el entorno de desarrollo listo para tirar código en JAVA.

Próximo cápitulo: 3. Conceptos básicos de la programación.

Tutorial propiedad de www.pollodegomaconpolea.net de libre distribución siempre que se haga referencia a éste sitio.

Next Page »