martes, 27 de diciembre de 2011

Tutorial: Ventana con Java Swing

El paquete Swing es parte de "Java Foundation Classes" que provee facilidades a los programadores a la hora de construir una interfaz gráfica o GUI. Swing abarca componentes como tablas, marcos, etiquetas, botones... Se les llama componentes Swing porque pertenecen al paquete javax.swing. Antes de la JDK 1.1 las interfaces gráficas se realizaban a través de AWT o Abstract Window Toolkit, de donde Swing ha heredado todo el manejo de eventos. 



Una aplicación Swing se consigue mezclando componentes que siguen estas reglas:
  • Debe existir, al menos, un contenedor de alto nivel (Top-Level Container), que provee el soporte a los componentes Swing para que estas se pinten y puedan manejar eventos.
  • Habrá más componentes colgando de este contenedor de alto nivel, bien sean contenedores o componentes simples.

lunes, 19 de diciembre de 2011

Tutorial Hibernate y JavaServer Faces (JSF)

En este tutorial usaremos NetBeans para crear una aplicación web que recoja datos de una base de datos y los enseñe en una página web mediante java Server faces (JSF). La aplicación web usa el Framework Hibernate como capa de persistencia para la recuperación y el almacenamiento de Plain Old Java Objects (POJO).

Requerimientos mínimos:


Creando la base de datos

Creamos una base de datos con el dump “sakila”, un ejemplo gratuito que esta disponible en la página de MySQL. Podéis usar cualquier herramienta para administrar la base de datos como phpMyAdmin, MySQL Administrator, Emma…

Creando el proyecto de la aplicación web

Ahora crearemos una aplicación web. Añadiremos las librerías de Hibernate y JSF.

lunes, 28 de noviembre de 2011

Ganar dinero con Google AdSense y Admob

Google AdSense Admob
La forma más normal de ganar dinero en Internet es poniendo publicidad en tus sitios web. Se pueden publicar anuncios de todo tipo pero cada vez es más normal utilizar los servicios de Google AdSense y Google Admob.

Google AdSense

Google AdSense es un servicio de Google donde el webmaster inserta anuncios basados en texto o con imágenes y recibe una cantidad de dinero por cada click que el visitante haga en el anuncio o visite la página con el anuncio.

Para empezar ha ganar dinero hay que hacer una petición al equipo de Google e insertar un código Javascript que te ofrecerán. Tu página no puede tener contenido pornográfico ni "pop-up"s o "dialers". Si tu web ha sido aceptado en unos instantes podrás empezar a poner anuncios y ha ganar dinero. Si los anuncios no son visibles no hay que alarmarse, hay que darles tiempo. 

viernes, 25 de noviembre de 2011

Error Ubuntu. No init fount. Try passing init = bootarg.

El anterior día al iniciar Ubuntu me apareció el siguiente error antes de iniciar el sistema operativo:
No init fount. Try passing init = bootarg.

Esto error puede surgir por apagar o hibernar de malas maneras el ordenador. Busqué en internet para ver como se solucionaba e hice lo siguiente:
Para empezar necesitamos un live cd o un usb con la ISO de Ubuntu. Para conseguir el usb nos bajamos el programa "unetbootin", lo ejecutamos y elegimos la imagen ISO de nuestra versión de Ubuntu. Ésto lo podemos hacer bien en Windows o Linux. Al grabar la imagen reiniciamos el ordenador e iniciamos desde el el live cd o presionando f12 o f10 iniciamos desde el usb.

jueves, 24 de noviembre de 2011

Leer un archivo property desde Java

Los ficheros .properties de Java son unos ficheros que nos permiten almacenar variables de configuración de nustra aplicación. Son ficheros de texto que almacenan un par clave valor, de esta forma:

###################################################
# Configuración Aplicación                        #
###################################################
#Esta variable en blanco para pruebas en local:
APP.PRUEBA=
#Ruta donde se encuentra el fichero de topología
APP.RUTA_FICHERO_TOPOLOGIAS=D:/MisProyectos/lecturapuertos

Para cargar un fichero y leer una propiedad haremos lo siguiente:

Tutorial rápido de Python

Lo primero que debemos de hacer es descargarnos el interprete de Python e instalarlo. Lo podemos conseguir desde la página oficial de Python. El Ubuntu actual trae por defecto Python, pero si no es así podemos instalarlo desde la linea de comandos. Abrimos el terminal y tecleamos:

sudo apt-get install python

Ya tenemos instalado la última versión de Python.
Es recomendable que instalemos PIP, una herramienta para instalar y administrar paquetes de Python, para ello tecleamos en la linea de comandos:

sudo apt-get install python-pip

Para usarlo escribimos esto:

pip install SomePackage

Donde "SomePackage" sería la librería a instalar.

miércoles, 23 de noviembre de 2011

Pasar una variable de JavaScript a Jsp

Hace unos días, mientras programaba tuve un escenario inusual. Si buscamos en internet sobre el asunto, llegamos a la conclusión de que para pasar una variable de JavaScript a Jsp necesitamos AJAX. Ésto es debido a que la página Jsp se interpreta en el servidor y el JavaScript se interpreta en el lado del cliente, es imposible asignar una variable de JavaScript a una de Jsp, puesto que la respuesta del servidor al cliente ya llegó y el código que se ejecuta en el servidor ya terminó, por eso, la única forma es hacerlo vía AJAX.

Dicho esto pongámonos en situación: Necesitaba pasar un objeto Java creado en una Jsp a otra Jsp vía AJAX para generar contenido dinámico y devolver a la página principal. Ésto quiere decir que el objeto Java lo tendría que pasar a JavaScript y mandarlo por AJAX para que luego volviera a convertirlo en objeto Java. Para pasar el objeto Java a Javascript no hay problema. Por ejemplo, podemos hacer:

y después:
Y conseguimos asignar los datos de la variable Jsp a una de JS. Pero el problema reside en generar el objeto Java desde una variable en JS. 

Después de investigar mucho llegué a a conclusión de que no hay una forma bonita de hacerlo.

lunes, 21 de noviembre de 2011

Desarrollando aplicaciones con Python

Python es un lenguaje de programación de alto nivel. Es un lenguaje de scripting independiente de plataforma y multiparadigma puesto que soporta programación orientada a objetos, programación imperativa y programación funcional.
Python
Podemos programar cualquier tipo de programas como aplicaciones de escritorio, servidores de red o páginas web. Es un lenguaje interpretado, no se necesita
compilar el código fuente para poder ejecutarlo. Es más rápido a la hora de desarrollar pero tiene menor velocidad a la hora de ejecutar. Tiene una sintaxis muy limpia y se caracteriza por su código legible.

jueves, 17 de noviembre de 2011

Libros y documentación sobre JSF, Spring e Hibernate

JSF, Spring e Hibernate son las tres tecnologías que voy a usar en mi siguiente proyecto web programado en Java. He estado documentándome y son 3 tecnologías que se integran muy bien.

Spring Hibernate JSF

JSF o Java Server Faces es un framework escrito en java para la interfaz de usuario en páginas web. Para la parte gráfica se usan librerías como IceFaces, PrimeFaces, RichFaces...

Spring es otro framework que da facilidad a la hora de programar aplicaciones en Java, y por consecuencia, aplicaciones web realizadas en java.

Hibernate es otro framework que facilita la obtención de datos desde una base de datos, se ocupa de la persistencia de datos.

miércoles, 16 de noviembre de 2011

GIT vs Subversion

A estas alturas todo el mundo sabrá lo que es un sistema de control de versiones, pero siempre queremos usar la mejor tecnología para nuestros proyectos. Por eso voy comparar GIT y Subversion.

GIT Subversion

GIT es un sistema de control de versiones diseñado por Linus Torvalds y que su principal ventaja es que trabaja de forma distribuida, es decir, cada usuario es su propio repositorio y no necesita una máquina centralizada, puede intercambiar versiones con otros usuarios y mezclar versiones. Mercurial es otro sistema que trabaja de forma distribuida.

Subversion es otro sistema de control de versiones que actualmente está muy extendido y trabaja de forma centralizada, con un repositorio central, donde necesitas su aprobación para cualquier transacción.

Node.js

Node.js es un entorno JavaScript del lado del servidor que usa un modelo asíncrono dirigido por eventos. Esto posibilita a Node.js que obtenga un rendimiento excelente basándose en las arquitectura de diferentes aplicaciones de Internet. El entorno está basado en V8, el motor JavaScript de Google que usa Google Chrome: uno de los intérpretes más rápidos en la actualidad para lenguajes dinámicos.
No es el único. Existen otros entornos escritos en otros lenguajes de programación como Twisted de Python, Perl Object Environment de Perl, Libevent de C y EventMachine de Ruby. A diferencia de la mayoría de JavaScript, no se ejecuta en el navegador web, es por el contrario un JavaScript del lado del servidor.

martes, 15 de noviembre de 2011

Google AdWords

Google AdWords es el método de google para mostrar anuncios patrocinados. Son los anuncios que se muestran en los resultados de la búsqueda del usuario. Google cobra al cliente por cada clic que se ha hecho en su anuncio. De esta forma, mientras más buscada sea la palabra, más competencia hay, y por ende, más cobra Google al cliente por clic en el anuncio patrocinado.

Google AdWords

Google AdWords es la principal fuente de ingresos de Google y es un método dinámico de publicidad para google, puesto que varía dependiendo del tráfico de ese ámbito o palabra.

lunes, 14 de noviembre de 2011

SEO y Directorios de enlaces

Posicionamiento WEB
Al crear una página web, nos interesa que google y los demás buscadores recorran nuestra página web para que lo evalúen y lo publiquen en sus servidores. Ésto lo hacen automáticamente pero podemos ahorrarnos tiempo si les decimos que una nueva página está en la red de redes. Lo logramos publicando la página en los siguientes enlaces:

Monitorizando componentes usando JMX

 JMX o Java Managemente eXtensions es una tecnología que nos da la posibilidad de cambiar el comportamiento de los componentes de nuestra aplicación JAVA en caliente. Podemos activar o desactivar el nivel de auditoría, modificar el nivel de trazas o cambiar cualquier parámetro de un fichero de configuración. En resumen, JMX sería un paquete que contendría, entre otras muchas cosas, una API (Application Programming Interface) para poder usar los servicios de monitorización/administración de aplicaciones basadas en Java. 

JMX