lunes, 20 de julio de 2015

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

Un vistazo a jshell: Read Eval Print Loop (REPL)
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:



Prueben haciendo las siguientes instrucciones:

import java.util.*;

List lista=new ArrayList<>();
lista.add(100);
lista.add(200);
lista.add(021);
lista.stream().forEach((item) -> {
    System.out.println(item);
});

También podemos crear funciones. Escribamos:

double cubo(double x){
   return x*x*x;
}

double volumen(double radio){
  return 4.0 / 30 * PI * cubo(radio);
}

volumen(2); //el resultado aparecerá en pantalla

Esto fue un pequeño vistazo de jshell.

sábado, 11 de julio de 2015

NetBeans con Node.js

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

lunes, 22 de junio de 2015

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

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.


jueves, 18 de junio de 2015

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

Aquí dejo un snippet que me sirve y también les podrá ser de ayuda para manipular Cadenas con Fechas.
Snippet: Conversión de String a LocalDate y a Date, y visceversa


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 gustó, dale un +1.
Si te es útil, compártelo... es gratis

lunes, 15 de junio de 2015

Java Web MVC - Sesión 01

Java Web MVC - Sesión 01
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.

miércoles, 10 de junio de 2015

Revisión libro: CoffeeScript Application Development Cookbook


Revisión libro: CoffeeScript Application Development Cookbook
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 el libro en: https://www.packtpub.com/web-development/coffeescript-application-development-cookbook


martes, 9 de junio de 2015

JPA con Stored Procedures

JPA con Stored Procedures
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.

jueves, 21 de mayo de 2015

Java cumple 20 años

Celebrating 20 Years of Java
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.

jueves, 7 de mayo de 2015

DBF2Java Library mudado

dbf 2 java
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 tienen más de 94 campos. (Hijito! en mish tiemposh máshimo ushábamos 60 camposh! cof cof cof!)

En fin, ese código ya toca su repintada, peinada, despulgada y ponerlo bonito para que aún sirva.

Si alguien quiere ayudar en mantener el código, encantado estaré en recibir su apoyo.


jueves, 26 de marzo de 2015

Autenticación y Autorización de aplicaciones Java Web

Autenticación y Autorización de aplicaciones Java Web
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.

miércoles, 18 de febrero de 2015

Conociendo RegEx (Parte 1/2)

Conociendo RegEx
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)


martes, 17 de febrero de 2015

Maven: Crear app .jar ejecutable con bibliotecas dependientes

Maven: Crear app .jar ejecutable con bibliotecas dependientes
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!.

jueves, 29 de enero de 2015

Spring MVC Beginner’s Guide

Spring MVC Beginner’s Guide
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.

jueves, 18 de diciembre de 2014

Tutorial JSF 2.2 - Sesión 10: Usando Converters, Listeners, y Validators

Tutorial JSF 2.2 - Sesión 10: Usando Converters, Listeners, y Validators
Siguiendo por nuestro viaje por el mundo del JSF (y ya estando cerca al fin), aprenderemos a usar los Converters, Listeners y Validators.

Recordemos que:

  • Los converters son usados para convertir que es recibida desde un componente de entrada (como el inputText). 
  • Los Listeners son usados para que escuchen los eventos que sucedan en una página para realizar acciones definidas.
  • Los validators son usados para validar que el dato que es recibido por un componente de entrada cumpla con los requisitos necesarios antes de que sea procesado en la aplicación.
Con esta pequeña introducción, comenzaremos...

miércoles, 3 de diciembre de 2014

Conociendo Spring MVC

En este post veremos de qué se trata el Spring MVC (como para descansar un poco de JSF). No es que sea JSF mejor que MVC ni viceversa. Sino es para conocer ambas propuestas. Además, en el nuevo Java EE 8 aparecerá un framework llamado MVC 1.0 que lucirá mucho al Spring MVC. (Igual que JPA a Hibernate)