Social

lunes, 28 de enero de 2013

Convertir a Base64

Base 64 es un sistema de numeración posicional que usa 64 como base. Es la mayor potencia de dos que puede ser representada usando únicamente los caracteres imprimibles de ASCII. Esto ha propiciado su uso para codificación de correos electrónicosPGP y otras aplicaciones. Todas las variantes famosas que se conocen con el nombre de Base64 usan el rango de caracteres A-Z, a-z y 0-9 en este orden para los primeros 62 dígitos, pero los símbolos escogidos para los últimos dos dígitos varían considerablemente de unas a otras.

Algunos ejemplos de las equivalencias que existen entre diferentes codificaciones se pueden ver ne la siguiente tabla:

En el siguiente cuadro de texto, pueden escribir una cadena o bien subir un archivo para obtener el código en Base64 correspondiente:




NOTA: Para ver el código detrás de esta aplicación pueden leer la siguiente entrada.


jueves, 24 de enero de 2013

Eclipse: Agregar Librería de Usuario

Agregar librerías de usuario es una de las diversas funcionalidades que nos ofrece Eclipse. Al configurar estas librerías es mas fácil administrar globalmente los Jars agrupándolos dentro librerías que luego pueden ser usadas en diversos proyectos.

El procedimiento es muy sencillo. Primero vamos a: 
    Windows -> Preferences

En la ventana que aparecerá nos dirigimos a:
    Java -> Build Path -> User Libraries


Oprimimos el botón "New" el cual nos desplegara una ventana para nombrar a la nueva librería y luego ya estamos listos para agregar Jars. Simplemente elegimos Add External JARS, donde podremos elegir los Jars que se deseen agrupar en esa librería. Al final se tendrá la librería armada, la cual puede ser editada luego, y lista para usarse. 

Para agregar la nueva librería de usuario a un proyecto basta con dar click derecho en el proyecto e ir a:
     Build Path -> Configure Build Path..

Acá un vídeo del proceso completo: 

viernes, 18 de enero de 2013

Agregar Página Web en JavaFX

En la versión 2+ de JavaFX existen elementos visuales que nos permite explorar una pagina web, estos elementos son el WebView y el WebEngine. La clase WebView nos permite visualizar un Html cargado mediante la clase WebEngine.

En el siguiente ejemplo usamos un WebView configurado para ser direccionado hacia la pagina de Google o la de Oracle.



En el script anterior simplemente usamos el metodo getEngine() del WebView para darle funcionalidad y luego podemos cargar la pagina de Oracle o Google dependiendo del botón precionado. Podemos usar google para explorar la web como normalmente lo hacemos.


Para descargar el programa funcional pueden usar este enlace: WebViewExample.jar

martes, 15 de enero de 2013

Dibujar dentro de un Google Map

El API Javascript de Google Maps permite mas que solo mostrar un mapa exprorable de cualquier parte del mundo. También ofrece un conjunto de utilidades que permiten dibujar figuras, realizar calculos, determinar lugares, etc.
 
En el siguiente ejemplo se demuestra el funcionamiento de los dibujos en los mapas. Lo principal es agregar la librería cuando se llama al script de google:
 
src="http://maps.google.com/maps/api/js?sensor=false&libraries=drawing"  type="text/javascript"


El código anterior define como las opciones del mapa, descritas en el siguiente post: Agregar GoogleMap. Lo importante viene luego al definir las acciones que deseamos que el DrawingManager de Google Maps realice. Definimos la posición del panel, las posibles opciones (rectangulo esta comentado, si se descomenta permitirá usar esa opción) y lo agregamos al mapa. También se definen las propiedades que tendran las figuras disponibles.
 
Al final tendremos lo siguiente:

lunes, 14 de enero de 2013

Agregar GoogleMaps (v3) en una página web

Google Maps ofrece una amplia matriz de APIs que permiten al usuario insertar las funciones más completas y la utilidad diaria de mapas en un sitio web y en aplicaciones, así como agregar sus propios datos sobre ellas. Entre los APIs que ofrecen estan:
  • JavaScript API
  • Flash API
  • Google Earth API
  • Static Maps API
  • Servicios Web
  • Maps Data API
Para el siguiente ejemplo se usará el API de JavaScript, el cual nos permite configurar un Mapa indicando los parametros iniciales y las funciones que incluira dentro del mapa. El siguiente script se encarga de ello.
 
 
 

 
Con el codigo que se observa hacemos la llamada al script de google que maneja los mapas, luego empezamos a definir la funcion el la cual tendremos la información necesaria para incializar el mapa. Primero definimos la posición incial del mapa, luego las funciones básicas del mapa y finalmente buscamos un elemento HTML en este caso un div para agregarlo. Luego se da un lector de eventos y tenemos lo siguiente:
 
 


Un Mapa de Google que usa la configuración para ser manipulado.

sábado, 12 de enero de 2013

Eclipse: DataNucleus Enhancer Error 206

Este error se da cuando se trabaja con Google AppEngine y JDO en Windows, basicamente se revisan muchos archivos y la consola de Windows no se da abasto para verificar la validez de los archivos con JDO. Dará un mensaje como el siguiente:

Cannot run program "D:\Program Files\Java\jre6\bin\javaw.exe" (in directory "C:\Users\user\workspace\project"): CreateProcess error=206, The filename or extension is too long. 

Para resolver el problema basta con dar click derecho en el proyecto y elegir:
Propiedades->Google->App Engine->ORM


Se remueven la o las opciones donde indique que revisa por JDOs, generalmente busca en todo el proyecto y se colocan los archivos, paquetes o carpetas especificas donde estén los JDOs.


Al realizar un luego de damos refresh al proyecto y debería correr sin problema.

jueves, 10 de enero de 2013

Usando FXML con controlador Java

FXML provee una estructura para construir interfaces de usuario separando lo visual de la lógica de la aplicación. Esta separación permite la creación de interfaces visualmente impresionantes sin la necesidad de usar código Java muy complejo. Esto puede tomarse como un Modelo Vista Controlador (MVC).
Al final se puede definir interfaces sencillas muy bien organizadas fácil y rápidamente. Como por ejemplo la siguiente:



Para realizar lo anterior solo se necesita definir la interfaz de la siguiente forma, en este caso se utilizo un BorderPane, el cual es un panel se divide en secciones (top, left, center, right, botton)



FXML es un XML a final definido con etiquetas que representan objetos visuales que pueden ser utilizados desde java. Al usar un controlador podemos usar una clase de java para definir la lógica detrás de la interfaz. El código fx:controller="blog.BorderController" se encarga de esto.

Una vez definido el controlador podemos usar los objetos definidos dentro del FXML para modificarlos y aplicar acciones cuando se usan, el ejemplo mas obvio es el Boton, cuya etiqueta tiene un onAction="#handleButton" que manda a llamar al método en el controlador. El siguiente código Java muestra el controlador.

Como se puede observar se usan las etiquetas @FXML sobre los objetos y métodos definidos en el FXML para lograr comunicarse con ellos. La clase FXMLLoader es la encargada de cargar el el FXML definido agregando lo a un Scene y luego al Stage dejandolo listo para ser usado.


Webstart: Click para lanzar el ejemplo


Eclipse: Agregar componentes

Eclipse es una gran entrono de desarrollo, ya que nos permite expandir nuestro pequeño espacio de trabajo en Java a otros diversos entornos o ampliar el de Java. Puede ampliar el de Java dando soporte a aplicaciones Web, JavaFX, Google AppEngine por mensionar algunas y nos permite desarrollar aplicaciones en php, python, etc. Si le instalamos el software correcto.

Simplemente nos vamos al menu: Help -> Install New Software...
Luego presionamos el boton Add para agregar un repositorio en la casilla Location y le damos un nombre.


Luego ya estamos listos para empezar a instlar los componentes necesarios, se eligen los que se tengan que usar y luego se sigue el wizard.


Para empezar pueden usar los siguiente repositorios:

miércoles, 9 de enero de 2013

JavaFX: FXML

FXML es un lenguaje basado en XML y utilizado para definir interfaces en JavaFX. Aunque java JavaFX permite crear interfaces mediante su codigo, al usar FXML es mucho mas sencillo adaptar las ventanas y paneles a los diferentes tamaños necesarios. Es ideal para diseñar cualquier interfaz de usuario ya que es compatible con la clase Scene de JavaFX.

Para ver un ejemplo integrando FXML y JavaFX pueden visitar el siguiente enlace: Ejemplo

Para crear un proyecto de JavaFX en Netbeans, las versiones mas recientes ya lo incluyen siempre y cuando se tenga un jdk 1.7.3 o mayor. Simplemente vamos a:
Archivo -> Nuevo Proyecto
Y elegimos el tipo de proyecto.
En eclipse se puede bajar e(fx)clipse de la pagina http://efxclipse.org/ que no es mas que un eclipse ya configurado o se puede configurar agregando el siguiente repositorio e instalando los compoenentes necesarios. Click aca para ver como

http://www.efxclipse.org/p2-repos/releases/latest/

Si ya contamos con nuestro ambiente configurado basta con seleccionar:
File -> New.. -> Project
Y elegimos el tipo de aplicacion JavaFx
Finalmente hacemos click derecho en el paquete de nuestro proyecto y seleccionamos
New.. -> Other
Y elegimos un archivo FXML
Y con esto ya se puede empezar a trabajar sobre FXML definiendo intefaces a nuestro gusto.

miércoles, 2 de enero de 2013

Usando JavaFX 2.0

JavaFX se trata de una nueva librería que tiene como principal objetivo permitir al desarrollador crear interfaces con alto contenido visual, aunque tiene otras utilidades. Los nuevos SDK de java a partir de la version 7 ya tienen incluido JavaFX como una libreria, se puede descargar y utilizar para la version 6.

JavaFX vendria a sustituir las librerías AWT y Swing, ya que ofrecen las mismas funcionalidades con efectos visuales mas llamativos y permite el uso patrones de diseño mas facilmente.

En el siguiente ejemplo se puede obserbar JavaFx en accion
Webstart: Click para lanzar como WebStart



Se debe instalar la ultima versión de java y que incluye fx para que se muestre sin ningun problema.

Para aprender como se agrego la aplicación en la página web puede visitar los siguietnes enlaces: Crear un JnlpEmbeber Jnlp en HTML.