Entradas

Mostrando las entradas de 2015

Midiendo el rendimiento con JMH - Java Microbenchmark Harness

Imagen
JMH es una herramienta tipo arnés de Java que permite medir el rendimiento en la construcción, ejecución, y análisis de aplicaciones hechas Java y otros lenguajes hechos para JVM El proyecto se encuentra aquí: http://openjdk.java.net/projects/code-tools/jmh/ En este post veremos un poco de su funcionamiento

UML en NetBeans

Imagen
NetBeans permite programación orientada a objetos como Java y C++. Ahora bien, siendo un IDE muy bueno, debería permitirnos manejar UML para modelar nuestros objetos ¿cierto? Pues bien, aquí les muestro como instalar un plugin en NetBeans que nos permita escribir UML de una manera no convencional. (Mejor que arrastrar y soltar los artefactos en el lienzo.. ya verán)

Conociendo RegEx (Parte 2/2)

Imagen
Continuamos con las Expresiones Regulares, esta vez veremos ejemplos un poco más complejo. El anterior post lo puedes ver aquí Conociendo RegEx (Parte 1/2)

Convertidor de tipo de atributo con JavaPersistence API

Imagen
Java nos permite crear muchos tipos de datos. Pero cuando queremos guardarlo en la base de datos, necesitamos hacer una conversión. Y de manera inversa, cuando queremos obtener un valor de la base de datos, necesitamos convertirlo a nuestro tipo de valor especial. Menudo trabajo. Optamos o por hacer un convertidor de datos a nivel de DAO, o no usamos nuestra estructura de datos especial. ¿Y si usamos JPA? Calma, calma. La versión JPA 2.1 (que viene incluido en Java EE 7 - JSR 338 ) tiene un convertir de tipos para ayudarnos con este problema.

Encuesta para conocernos mejor

Estimad[a|o]s seguidor[a|e]s. Como Java es bastante extenso, me gustaría conocer qué tanto tienen en experiencia en Java para poder preparar más contenido de acuerdo a su perfil. Así que agradeceré que respondan esta pequeña encuesta. http://goo.gl/forms/nSosfMUEOy

Convirtiendo Aplicaciones Java EE monolíticos a Microservicios

Imagen
(Traducción libre de Monolithic to Microservices Refactoring for Java EE Applications de   +Arun Gupta  ) ¿Te has preguntado qué se necesita para convertir una aplicación Java EE monolítica a uno basado en microservicios? Este post explica cómo hacerlo usando un ejemplo trivial de carrito de compras, y cuáles son algunas de las preocupaciones el hacer utilizar microservicios.

NetBeans Portable + Java Portable [+ GlassFish Portable + Tomcat Portable...]

Imagen
Lo más requerido de una aplicación es que sea portable, y - según viendo algunas estadísticas - existen programadores que quieren tener el NetBeans también portable. Qué significa que una aplicación sea portable? Bueno, que se pueda ejecutar sin que se instale en el sistema operativo. Así que en este post explicaré un truco para que tengas tu NetBeans IDE de manera portable.

Ejemplo básico de API JSON e Java EE7

Imagen
Aquí les muestro un vídeo, con código explicado del API de JSON que viene en Java EE 7.

Un vistazo a jshell: Read Eval Print Loop (REPL)

Imagen
Una de las novísimas características que tendrá Java 9, es la de permitir evaluar expresiones Java pero como rutinas. Me explico: Con JavaEE 7 se pueden crear cadenas y permitirlas evaluar y obtener resultados, pero con jshell, se podrán crear rutinas, con for, if, try/catch, import, etc y poderlas ejecutar como si fuera un Java dentro de otro java. Existe una implementación de Java REPL (Read-Eval-Print Loop) llamada Proyecto Kulla . Podemos ver una implementación en línea de este característica aquí mismo:

NetBeans con Node.js

Imagen
La nueva versión de NetBeans 8.1 permitirá desarrollar HTML5 con Node.

Java Web MVC - Sesión 01.01: Cargando un archivo

Imagen
Si vieron el vídeo y post anterior, habrán visto que propongo cargar la foto del usuario que se está registrando.. pero no aparece en el tutorial. Y si no lo han visto, ahora ya lo saben. Pues bien, este post es un anexo a la sesión anterior sobre Java Web MVC.

Snippet: Conversión de String a LocalDate y a Date, y viceversa

Imagen
Aquí dejo un snippet que me sirve y también les podrá ser de ayuda para manipular Cadenas con Fechas. Resulta que, por cosas de la vida, es necesario agregar días o meses a una fecha que fue ingresada en una cadena, y que debe ser guardada como tipo java.util.Date ¡A que no te pasa lo mismo! Pues bien, la manipulación de días, meses, semanas, etc es más efectivo y cómodo con el nuevo tipo de Java 8 llamado java.time.LocalDate como lo mencioné en un post anterior: Paquete java.time de Java 8: Fechas y Horas . En este snippet (fragmento de código) hice un pequeño ejemplo de cómo convertir desde una cadena, a un tipo java.time.LocalDate . Una vez en este tipo, se puede manipular las fechas como mayor se plazca, y luego se puede convertir a java.util.Date . La segunda parte del código es al revés: se tiene un objeto java.util.Date , y queremos convertirlo a java.time.LocalDate para poderlo manipular, y luego lo convertimos a cadena para mostrárselo al usuario. Si te

Java Web MVC - Sesión 01

Imagen
Con este tutorial comienzo una nueva serie en este humilde blog. Aprenderemos a conocer todas las funcionalidades de Java EE en una aplicación. En este primer post haremos una aplicación MVC básico, usando las siguientes tecnologías de Java EE7: JSP (para la capa de presentación) Servlet (para la controladora) EJB (Para el manejo del modelo) JPA (La persistencia de datos) La base de datos es indiferente, podemos usar PostgreSQL, MySQL, Oracle, etc. Pero para este ejemplo estoy usando Apache Derby.

Revisión libro: CoffeeScript Application Development Cookbook

Imagen
Impresionante manera de mostrar esta extensión de JavaScript, volviéndolo totalmente potente para aplicaciones de todo tipo. El libro comienza enseñando el lenguaje y la sintaxis de CoffeeScript, con ejemplos básicos y poderosos. Luego, poco a poco se va haciendo más y más complejo: Aplicaciones Cliente con JQuery, Backbone y AngularJS, seguido de aplicaciones desktop, conexiones a bases de datos como SQLite y MongoDB. Además muestra la construcción de servicios REST.  Me quedé con la boca abierta cuando muestra la simpleza para enviar correos electrónicos, y acceder a servicios como Amazon S3 y FTP de una manera natural. La organización de capítulo es como una receta: Introducción, Getting Ready, How to do it, How it works, There's more. Así cubre lo básico, lo importante, y todas las cosas adicionales que se puede hacer. La cereza del helado fueron los comandos para DevOps, así, nadie se puede escapar para implementar CoffeeScript en producción. Pueden adquirir

JPA con Stored Procedures

Imagen
JPA es el API que nos permite manejar la persistencia en Java de una manera transparente. No debemos preocuparnos cuál es el DBMS que está guardando los registros, simplemente lo invocamos como si fueran objetos en Java. En la versión 2.1 de JPA, dentro el JavaEE 7, se puso una nueva característica que es la de invocar Stored Procedures. Hice un pequeño tutorial, y aquí lo muestro el código fuente, y la ejecución en un vídeo.

Java cumple 20 años

Imagen
Celebramos 20 años desde que salió a la luz la primera versión de Java y puesta para uso público. Desde entonces más de 9 millones de desarrolladores de Java lo trabajan en la mayoría de las industrias. La comunidad Java constantemente está innovando y cambiando nuestros días normales.

DBF2Java Library mudado

Imagen
Hace muchos años (si son más de 5, ya son muchos) hice una biblioteca para manejar archivos DBF en Java. Esto fue porque necesita importar archivos DBF creados por FoxPro (¿alguien recuerda ese programa?). Como yo venía de una cantera que todo se trabajaba con DBF, entonces mi idea era hacer una biblioteca en Java que hiciera los mismos comandos de Fox en Java... bueno, casi todos. Así que solo hice la versión de leer registros, mas no terminé la parte de escribir registros. Lo publiqué en un post anterior ( http://www.apuntesdejava.com/2007/09/dbf-2-java-library.html ) y el código fuente estaba publicado en esta dirección: https://code.google.com/p/dbf2java-library ...y, por los cambios que están haciendo en Google, lo he mudado acá: https://bitbucket.org/apuntesdejava/dbf2java-lib Sinceramente no pensé que tendría acogida esta biblioteca. Hay usuarios que les gustaba y les iba bien... y también hay usuarios que actualmente reportan fallas, sobretodo cuando son tablas que

Autenticación y Autorización de aplicaciones Java Web

Imagen
Autenticación es el proceso de asegurar que un usuario es quien dice ser. Comúnmente se le da la seguridad usando un id de usuario y su respectiva contraseña. Autorización es el proceso de asegurar que ciertos usuarios tengan un perfil específico para acceder a ciertos recursos autorizados. En este vídeo veremos cómo implementar la autenticación y autorización en una aplicación web típica. Pero ... nosotros no programaremos a la base de datos, tampoco cómo deberá acceder ciertas páginas usando alguna condición "if", nada de eso. Lo que haremos será configurar el GlassFish para que se encarga de buscar en la base de datos, y permitir el acceso a recursos (o carpetas) de nuestra página web.

Conociendo RegEx (Parte 1/2)

Imagen
Este post tiene por objetivo aprender un poco sobre las expresiones regulares. Conoceremos al menos lo más básico como para que uno pueda dar el examen de certificación, y - con la práctica y experiencia - pueda uno llegar a ser tan experto como este tipo: (Indios)

Maven: Crear app .jar ejecutable con bibliotecas dependientes

Imagen
Lo que me gusta de NetBeans es que - al usar su propia creación de proyectos basado en Apache Ant  - es que crea una carpeta llamada dist que tiene todo lo necesario para que pueda ser distribuido y ejecutado en cualquier computador que tenga JVM. Hace un tiempo hice un post que ampliaba esta funcionalidad para que al final quedara todo empaquetado en un archivo zip: Empaquetar una aplicación para distribuir, desde NetBeans . Ahora que estoy usando un poco más de Maven , noté que eso prepara los archivos como lo hacía con Ant. No los culpo... pero quiero hacer algo igual!.

Spring MVC Beginner’s Guide

Imagen
Si quieres aprender a programar en web como debe ser, usando el patrón MVC, no hay nada mejor que hacerlo con Spring MVC. Y este libro será de gran ayuda.