Weblog de Victor Ramirez

Lunes, mayo 19, 2014

Atajos del teclado en NetBeans

Filed under: java, jdk, netbeans, tips, tutorial — Etiquetas: , , , , — vramirez @ 7:46 PM

NetBeans tiene decenas de atajos (shortcuts) en el teclado para un montón de tareas desde compilar, hasta darle formato a un texto e incluso plantillas (o Templates), que con solo digitar un par de letras puede generar toda una línea de código. Por ejemplo, al escribir “sout” y luego darle “Tab”, completará “System.out.println()”.

No todos podemos, ni queremos tener toda esta información memorizada en la cabeza. Es por eso que NetBeans incluye un archivo pdf con la lista completa de dichos atajos. Esta lista se encuentra dentro del directorio de instalación de NetBeans en una carpeta llamada “nb”. Allí encontraremos 2 pdfs:

  • shortcuts.pdf
  • shortcuts_mac.pdf

El primero contiene los atajos para PC (Windows/Linux), el segundo para nuestros queridos amigos que usan Mac. Espero que este pequeño tip les sea útil.

Sábado, febrero 15, 2014

Crear aplicaciones para Twitter desde NetBeans

Filed under: java, jdk, jdk7, netbeans, tutorial, Twitter — Etiquetas: , , , , , , , — vramirez @ 3:05 PM

En el siguiente post crearemos una aplicación ejemplo muy básica y sencilla (sin GUI, de hecho) en NetBeans para conectarnos a Twitter y leer nuestro timeline. Los siguientes son los prerequisitos para este tutorial:

  • Cuenta en Twitter
  • NetBeans IDE 7.x
  • JDK 1.7
  • Twitter4J

Lo primero es loguearnos en el sitio web de desarrolladores para Twitter https://dev.twitter.com/apps. Una vez allí le damos click en crear nueva aplicación. A continuación, diligenciamos un formulario con el nombre que tendrá la aplicación, una breve descripción (10 o más caracteres), y una URL de la App, la cual se supone apunta a una direccion en Internet con información sobre la App. Por ahora, pueden poner cualquiera como en mi ejemplo y cambiarla después (La URL debe ser completa, por ejemplo, debe empezar por http o https…).

Twitter new app

Formulario de creación nueva aplicación en Twitter

Una vez la hemos creado, Twitter nos muestra una serie de opciones de configuración de la aplicación, acá las vamos a repasar brevemente mostrando lo que nos interesa para el tutorial.

En la pestaña “Details” verificar que la opción “Access level” tenga “read-only”. En esta misma pestaña, al final, se encuentra la opción para borrar la aplicación.

En API Keys esta toda la info que necesitaremos darle a nuestra aplicación en NetBeans. En la sección “Your access token” dar click en “Create my access token”. Darle “Refresh” a la página. Ahora tenemos 4 parámetros MUY importantes para nuestra App:

  • API key
  • API Secret
  • Access token
  • Access token secret

Ya veremos porqué debemos tener estos 4 hashes muy presentes. Cabe destacar que dichos hashes son SECRETOS, pues si alguien los obtiene, puede suplantar tu aplicación, incluso tu cuenta de Twitter.

Lo siguiente es descargar la librería de Twitter4j entrando a http://twitter4j.org/ y en el link Download descargar el .zip. Una vez descargado, entrar a NetBeans y en Tools –> Libraries  –> New Library. En el nombre, ponerle nombre a la librería, por ejemplo, “Twitter4j” o algo que la identifique con Twitter. En classpath, darle Add Jar/Folder y buscar la carpeta previamente descomprimida de Twitter4J y en la subcarpeta “lib”, se pueden seleccionar todos los archivos jar, sin embargo, agregando solo el que tenga nombre “core”, bastará.

Libreria de Twitter Twitter4J creada en NetBeans

Libreria de Twitter4J creada en NetBeans

Ahora, con la librería ya creada, debemos crear un nuevo proyecto tipo “Java Aplication” de NetBeans. Al proyecto ya creado, agregarle la librería que se creó en el paso anterior. Sobre el proyecto hacer click derecho –> Properties. Luego hacer click en la categoría “Libraries”, en la pestaña “Compile” agregar la librería de Twitter4J. En la clase

public static void main(String[] args) throws TwitterException {
        ConfigurationBuilder cb = new ConfigurationBuilder();
        TwitterFactory tf = new TwitterFactory(cb.build());
        Twitter twitter = tf.getInstance();
        List<Status> statuses = twitter.getHomeTimeline();
        System.out.println("Mostrando el timeline...");
        for (Status status : statuses) {
            System.out.println("@" + status.getUser().getScreenName()+": "+ status.getText());
        }
    }

Ahora, debemos pasar los parámetros de la API de Twitter a nuestra aplicación. Para ello existen varias alternativas. Una de ellas, es mediante un archivo .properties:

Lo primero es dar click derecho sobre el proyecto New –> Other… –> Other –> Properties File. Al archivo llamarlo twitter4j. El archivo debe quedar en la raíz del proyecto, al mismo nivel de carpetas como “src” y “dist”.

El archivo debe ser completado con estas cuatro líneas, con la información (los hashs) provista por Twitter:

oauth.consumerKey=<La Api Key>
oauth.consumerSecret=<La Api Secret>
oauth.accessToken=<El token access>
oauth.accessTokenSecret=<El token access secret>

Desde luego, todo esto sin los signos de <>.

Ahora podemos ejecutar la aplicación y mostrará por consola nuestro timeline más reciente. O

Otra opción es pasarle los parámetros a través del código Java directamente, (eliminando primero el archivo .properties) así:

public static void main(String[] args) throws TwitterException {
        // TODO code application logic here
        ConfigurationBuilder cb = new ConfigurationBuilder();
         cb.setDebugEnabled(true)
         .setOAuthConsumerKey("<API key>")
         .setOAuthConsumerSecret("<API key secret>")
         .setOAuthAccessToken("<Access token>")
         .setOAuthAccessTokenSecret("<Access token secret>");
        TwitterFactory tf = new TwitterFactory(cb.build());
        Twitter twitter = tf.getInstance();
        List<Status> statuses = twitter.getHomeTimeline();
        System.out.println("Showing home timeline.");
        for (Status status : statuses) {
            System.out.println("@" + status.getUser().getScreenName()+ status.getText());
        }
    }

En la sección Code Examples de  http://twitter4j.org se pueden encontrar distintos ejemplos más avanzados de código Java para Twitter. Espero que este corto tutorial les sea de utilidad.

Notas:

  • Un error de “401:Authentication credentials” es que alguno de los 4 hash fueron mal ingresados.
  • Un error de “Authentication credentials are missing” indica que a la aplicación le faltan los 4 hashs. Si se le están pasando los hashs a la aplicación mediante archivo .properties, es probable que el archivo no esté en la raíz del proyecto (debe estar en el mismo nivel del archivo manifest.mf).

Sábado, septiembre 11, 2010

Manejo de Properties en Java

Filed under: java, netbeans, tips, tutorial — Etiquetas: , , , — vramirez @ 11:21 AM

Hace pocos días un compañero de la oficina estaba revisando una aplicación en la que tenía que cambiar un párametro debido a un nuevo requerimiento. Me comentó que para cambiar el valor debía modificar el código y luego recompilar la aplicación (cada vez que dicho valor cambiara) y entregar de nuevo al cliente. Le dije que por qué no hacía un archivo de propiedades y leía el valor desde ahí ya que es sencillo, pues solo tiene que cambiar dicho valor en el archivo sin recompilar. El me miró medio confundido y me pidió que le explicara un poco más, a lo cual respondí diabólicamente: “averígualo, googlealo” (muahahahaaa!).

Hoy que tengo un poco de tiempo libre explicaré con un breve ejemlo como crear un archivo “.properties”, leer y guardar en este, valores como parámetros, así en caso de que cambian las necesidades simplemente modificaremos el archivo. No es la solución ideal, pues si alguien borra (por accidente y sin ninguna mala intención ;) ) nuestro archivo, la aplicación (según lo que hayamos codificado) podría desintegrarse ante nuestros ojos. Lo recomendable es almacenar estos valores parámetricos en una base de datos. Sin embargo, es un muy buen método para “salir del paso”.

Basta de cháchara, empezemos. Lo que haremos es lo siguiente: crear un archivo y que la aplicación lea de este sin tanto complique, para ellos creemos un proyecto Java Application y llamémoslo “TestProperties”

Hacemos clik derecho en el proyecto damos click derecho “New”–> “Other” Seleccionamos de nuevo “Other” y “Properties File”. Damos “Next” y luego cambiamos solamente el nombre del archivo por “variables” y por último “Finish”. En la raíz del proyecto queda un archivo denominado “variables.properties” damos doble click en el archivo.

Ubicación archivo .properties

Hacemos doble click en este archivo. Debajo de las línes de comentario (que pueden borrar si gustan) colocan las siguientes líneas:

var1=Hello World

var2=Bye World

Algo asi:

Contenido del archivo .properties

Es recomendable que se deje una línea para cuando se agreguen (si se requieren) nuevas variables

Abrimos la clase Main y dentro del método main codificamos así:

public static void main(String[] args) {
        try {
            // TODO code application logic here
            Properties props = new Properties();
            props.load(new FileInputStream("variables.properties"));
            System.out.println(props.getProperty("val1"));
            System.out.println(props.getProperty("val2"));
        } catch (IOException ex) {
            System.out.println("Error: "+ex);
        }
    }
El resultado de esta ejecución debe ser:
De esta misma forma se pueden insertar en el código valores y asignarlos a variables dentro del código sin tener que reemplazar ni mucho menos compilar nuevamente la aplicación. También se puede guardar propiedades en el archivo, pero eso “averígüenlo, googleen!” (muahahahaaaaa). Pista: métodos setProperty y store de la clase Properties
Pd: no es necesario que el archivo tenga una extensión .properties, la extensión puede ser cualquiera. En este caso es cuestión de conveniencia, de este modo NetBeans sabrá como abrirlo y mostrarlo.

Domingo, septiembre 7, 2008

Usando MySQL Workbench para diseñar y crear una base de datos

Filed under: mysql, tutorial — Etiquetas: , , , — vramirez @ 8:15 PM
La compra de MySQL AB por parte de Sun Microsystems a comienzos de este año, es sin lugar a dudas un reconocimiento al buen trabajo hecho por la comunidad de MySQL, para llevar a esta base de datos a ser una de las mejores bases de datos open source que se encuentre en el mercado, y que hoy por hoy es la base de datos predilecta por los desarrolladores, e incluso grandes empresas como Suzuki, Sagem, o la misma Adobe o sitios como Yahoo! Finance, para bases de datos transaccionales o bodegas de datos (Data Warehousing).MySQL provee entre sus herramientas, una denominada MySQL Workbench la cual nos permite desde una ambiente gráfico, diseñar un modelo E-R de una base de datos y luego crear la base de datos, como tal en una base de datos MySQL. Para este tutorial es necesario tener instalado:

NOTA: En esta demo, solo se mostrará el funcionamiento de MySQL Workbench, mas no la instalación de éste ni la de MySQL Server. El servidor mysql puede estar instalado en cualquier equipo y/o sistema operativo soportado (Windows, Linux, Aix, etc). MySQL Workbench solo se encuentra disponible para Windows.

En el ejemplo crearemos una base de datos muy sencilla, la cual no representa un ejemplo real. Simplemente es para probar las características.
Primero creemos el esquema “test”, haciendo click en el símbolo “+”. Abajo se abre una pestaña en que nos pregunta el nombre del esquema (test) y el idioma del esquema, el cual se recomienda dejar por default como se muestra en la figura. Si la aplicación pregunta si desean renombrar todos los objetos, seleccionen “Si”.

Ya creado el esquema, procedemos a crear las tablas. Existen dos formas, aunque muy similares de crearlas. La primera es desde la pantalla en la que estamos, la otra es mediante la ventana visual, en la cual podremos además, realizar las relaciones entre las tablas. Pero primero lo primero; las tablas.
Verifica que estes en el esquema “test” y luego haz doble click en el icono de “Add Table”.

Al hacer click en esta opción, se despliega al lado un icono representando la nueva tabla, mientras que debajo se abre una nueva pestaña, en la cual podemos editar todo al respecto de las tablas haciendo (Columnas, llaves, triggers, etc) click en cada una de las pestañas ubicadas en la parte inferior de esta nueva pestaña.
Nota: los triggers solo estan disponibles a partir de MySQL 5. Cualquier tabla con triggers generada en Workbench arrojará un error cuando se corra en una versión inferior a MySQL 5.0
Agregaremos un par de columnas a la tabla:

Al hacer click en la pestaña “Columns”, podemos editar todas las columnas dela tabla indicada. Podemos alterar el nombre, el tipo de dato, si es nulo o no (NN) y si es Auto incremental (AI), obviamente este último es sólo para datos de tipo numérico, De igual forma podemos especificar un valor por default para la columna. En la parte derecha, inmediatamente podemos indicar si la columna seleccionada hace parte de la llave primaria (PRIMARY KEY), si es UNSIGNED o ZEROFILL para las variables numéricas y si la variable es de tipo caracter, podemos especificar si es BINARY.

Ahora pasemos a crear una tabla por medio de un diagrama E-R. En la parte superior observamos la opción “Add Diagram”. Hacemos doble click sobre ella.

Luego se abre una nueva pestaña en la cual encontramos un grid. A la izquierda, ecnontramos una barra de herramientas, desde la cual podremos crear tablas y vistas, además de relaciones (1:1,1:n,n:m…) y a la derecha un árbol con los objetos de nuestro esquema (tablas, vistas, etc). De esa ventana, seleccionamos la tabla que creamos y la arrastramos hasta el grid. Luego hacemos click derecho y seleccionamos “Edit table”, abajo nos muestra la pestaña para editar la tabla y crear columnas, llaves, etc.

Buscamos a la izquierda el ícono que nos permite crear una nueva tabla. Hacemos un click en el ícono y luego un click en el grid.

Editamos las segunda tabla y ahora haremos una relación muchos a uno.Seleccionamos el icono, y luego cada una de las tablas (primero la de muchos y luego la de uno). En mi caso, la tabla de “muchos” es table1. Quedaría algo asi:

Como ven el Workbench se apega a la teoría relacional, donde en este caso la llave de a relación “uno” pasa a la tabla de “muchos”. Igualmente si creamos una relacion M.N (muchos a muchos) generará una relación entre las dos tablas. A continuación viene la mejor parte de esta herramienta: la generación del script SQL.

Como ven, podemos exportar el diseño, incluso como una imagen en pdf, o en png, entre otros. La primera pantalla, nos muestra las opciones con las que queremos que se genere el script DDL. Luego seleccionamos la ubicacion destino del archivo que se creará.

Luego nos muestra un resumen de lo que creará; usuarios, tablas, vistas, rutinas y triggers. Incluso si seleccionamos el botón “Detailed Selection” de cada sección, podemos especificar aún más, por ejemplo, qué tablas deseo realmente exportar.

Luego finalizar, y en la ruta que le hallamos indicado estará un archivo .sql, con nuestro script. Como se podrán dar cuenta Workbench, resuelve algunas limitantes en la comunidad open source de un buen software front-end para MySQL, y sobre todo de una herramienta que provea Forward Engineering, de una manera tan sencilla y bien ilustrada. Digamos que la única limitante de Worlbench es su ausencia en otras plataformas, o sea, en Linux :p.

Blog de WordPress.com.