Catalina




Hoy a mis 43 años les presento a mi madre Catalina Diaz Baca. Literalmente en este mundo terrenal le debo mucho a ella y paso a contarles algunas "pastillas" al respecto. Luego de la muerte de mi Padre en el año 1995, ella decidió trabajar duro y parejo como lo hizo desde que tengo yo uso de razón: a vender comida, a apoyarme a limpiar baños en el colegio "Victor Andres Belaunde" Nro. 5053 de Ventanilla, a cubrirme si venían cansado de dar examenes en la universidad o cubrirme cuando tenía trabajos en grupo y me ausentaba varios días de mi centro de labores. 
Catalina la grande  no es rusa, es de Huarmey, es bien peruana y es mi Madre. 

Siempre la vi metida en su negocio (turno mañana y tarde) de comedor en el colegio, si bien mi Padre me hablaba siempre de los estudios, de ser un buen alumno, ella siempre me inyectó el deseo de tener algo propio, de ser ahorrativo. Por ella forme mi primer local de video juegos en el año 91, ya que me aconsejo que ahorre en el Banco y con ese dinero pagarme mi academia para poder postular a la universidad que quisiera. Le atino tremendamente. 

De ella nunca he escuchado, tu no puedes hijo, orale al Señor, a la Virgen y te lo va a conceder. Nosotros fuimos bien pobres, pero, me la creí, le ore a Dios para estudiar en la PUCP y termine estudiando ahí aún cuando mi padre falleció cuando estaba en el primer ciclo.

Desde niño me inspiro tanto, que he vendido marcianos, comida, chicles y cigarrillos en los estadios o campeonatos de futbol de barrio no porque ella me lo exiga, sino porque yo quería imitarla y ser como ella en los negocios. Siempre me decía, tienes que tener talento e inteligencia para vender. 

Anecdota: Mi madre me mandaba a vender cigarrillos DUCAL que son fuertotes, generalmente antes de iniciar un partido nadie me compraba. Me decian "chibolo ese cigarro es muy fuerte, traete Hamilton". Pero, yo recordaba las palabras de mi madre, paciencia y constancia; luego me decía, mejor me espero que empiece el partido y ahí seguro me compraran mis cigarros. Efectivamente, el partido empezaba y la gente me llamaba "chibolo ven para aca, dame 10 cigarrillos y  así mis DUCAL se acababan". Un exito. 

Mi madre siempre me decía, que si voy a vender algo tengo que saber que es lo que vendo y como se hace, a ayudar a prepararlo para que aprenda todo el proceso y sea un experto. Así yo miraba como hervía las mazorcas moradas para la chicha, o la fresa, o el tamarindo, todo con agua hervida, y el resultado eran "marcianos" (chupetes para refrescarse del calor) deliciosos para vender en la playa o en la casa. 
Me enseñaba  a comprar las bolsas resistentes y a armar los "marcianos" para meterlos a la refrigeradora. Me sirvio? pues, claro que sí. Había gente que me decía, "chibolo a ver como se que no es colorante?". Yo les contaba el proceso, y así vendía muchos porque confiaban en el producto.

Lo malo es que yo amaba la playa, me bañaba y a veces regresaba a mi sitio donde dejaba mi canasta de marcianos y todos erans refresco o los amigos del ajeno se fiaban solos y no me dejaban la plata de la venta.  

Saben, creo que mi madre me probaba o me entrenaba, porque a veces llegaba y le decía, Mamá me los comí todo, se me hicieron agua y ella sólo me decía: "Deja lo que hayas ganado en la mesa, tranquilo y anda vete a jugar que ya te estan llamando los Olaya o los Munive (tenía mas amgios, pero ellos eran los que me llamaban siempre)".

Les cuento esto, porque si bien los estudios son muy buenos, siempre es bueno tener entrenamiento en ventas y cultura financiera sino pues a invertir en un MBA o alguna PAD, etc, etc.

Animen a sus hijos a estudiar, todos los grandes que seguimos han estudiado en buenas universidades, si bien algunos como Bill Gates, Steve Jobs, Mark Zuckerberg,  etc. dejaron la universidad, ellos no  dejaron cualquier universidad, dejaron Standford, Hardvard; así que cuando escucho a  un muchacho que ha ganado un startup perú o que tiene su empresa y ya facturo sus primeros 10k que no es importante la universidad, me decepciona totalmente y no le veo mucho futuro, seguira facturando los 10k mensuales y lo único que habrá conseguido es un trabajo donde el solamente se da a si mismo trabajo.

Para terminar, mi madre siempre me hablaba de que los negocios tienen buenas epocas y otras no, no te decepciones hijo, tu eres capaz y solo retrocede para dar impulso. Yo orare por ti. Y vaya que lo hace, es una ferviente católica y reza el rosario todos los dias. 

Ella es mi Madre. Doy gracias a Dios por tener como madre a una gran mujer como es la madre de todos los que me leen. Sólo le pido a Dios tenerla muchos años más conmigo y que siga disfrutando a sus 6 nietos y cuando toque la hora viva con nosotros, por ahora, que se pasee y disfrute su vejez con sus amigos, con su comunidad de fe. 

Nos leemos.

José















Share:

Mi primera aplicación con ASP.NET Core

Hola amigos, en esta oportunidad vamos a crear nuestra primera aplicación ASP.NET Core siguiendo esta agenda:

1. Generate - Crear la aplicación base desde un template para iniciar.
2. Restore – Restaura todos los paquetes y dependencias en el proyecto usando NuGet.
3. Build – Compila la aplicación y genera todos los activos necesarios.
4. Run – Ejecuta la aplicación compilada.

Mis recursos

Quiero aclarar que hare este aplicación bajo estas condiciones:

1. MacBook PRO con estas características.



2. Si bien tengo VS Code, instale tambien Visual Studio para MAC ya que es gratuito.



Empezando con un template

Vamos a seguir el wizard despues de dar Next a la pantalla anterior.



Como es la primera vez espera unos minutos que descargue lo necesario.

Al finalizar de descargar las dependencias con Nuget, tenemos lo siguiente:


Si hubiese querido usar el NET CLI sería de esta manera  dotnet new mvc -o WebApplication2:


Compilando la aplicación

Cuando use el BUILD ALL obtuve este error:


Así que si obtienes ese error aplica:



Y se supera el problema.


Desde linea de comandos sería así  dotnet build:



Ejecutando la aplicación

Presionar F5



o desde la linea de comandos con dotnet run:



La estructura del proyecto

La estructura creada ya sea por el IDE o linea de comandos es la siguiente.



El archivo .csproj revela información del proyecto. Que tipo de proyecto es app web, app de consola o librería.  Para que plataforma destino el proyecto será aplicado: NET Core, NET Framework 4.5, Mono.  De que paguetes Nuget el proyecto depende. 

Si vemos el archivo nos muestra lo descrito. 



El program.cs

Es la clase con la que iniciamos la aplicación. En ASP.NET Core es usada para construir y ejecutar una instancia IWebHost.  El IWebHost es el core de tu aplicación ASP.NET Core, contiene la configuración de la aplicación y el servidor Kestrel que escucha requests y envía responses. 


Pero, se necesita otra clase, Startup.cs, donde configuraras tus servicios, defines el pipeline de tu middleware, componentes y características que tu aplicación usará. 


En resumen, una vez que toda la configuración de el WebHostBuilder es completo, la llamada a Build produce la instancia IWebHost, pero, la aplicación aún no esta manejando requests HTTP. Es la llamada a Run  la que inicia que el servidor HTTP escuche. Ya en este punto la aplicación es funcional y puede responder al primer request.

La clase Startup

Aquí configuraremos:
1. Registro de servicios
2. Middleware y MVC


El Middleware MVC y el Home Controller


El Middleware resuelve que Controller y action manejará el request. 


- Los controllers MVC pueden heredar de una clase base helper si lo desean
- La action retorna un ViewResult despues de llamar al método View()
- Si no se específica el nombre de la vista, este se tmoa del nombre del metodo action. 
- La data puede ser pasada a la vista usando el diccionario ViewData.
- La data puede tambien ser pasada a una vista usando el view model.

Esto es muy similar a Spring MVC u otros frameworks.  Ahora leyendo en la documentación si usas async o await puedes hacer programación asincrona, en ese caso el tipo de retorno será Task.


Generando HTML con Razor 


Cuando se retorna ViewResult, el MVC middleware busca un template Razor para generar la vista apropiada. La resolución de nombre se puede dar por convención de nombres.

Veamos el contenido de About.cshtml


Y gracias a Razor tenemos un template para About que originará el html.  

Y eso es todo por ahora, como desarrollador Java veo una gran similitud a framework como Spring MVC, así que no será para nada dificil que lo aprendas si has visto algo parecido antes.

Enjoy! y hasta la próxima. 







Share:

Introducción a ASP.NET Core



Introducción a ASP.NET Core


Este post tiene como objetivo revisar el nuevo framework de Microsoft, ASP.NET Core que funciona tanto en windows, linux y mac. 


Diferencias entre ASP.NET Core y ASP.NET 4.5



Modelo de una aplicación ASP.NET Core

Si tienes un servidor web, tu aplicación .NET Core se podrá ejecutar como una aplicación web.


Muchas de las librerías a usar en ASP.NET Core están en GitHub https://github.com/aspnet.

Sitios web hechos con ASP.NET Core


Como buen ejemplo tenemos que el CMS Orchard 2.0 usa ASP.NET Core y puedes hacer sitios web cómo https://weblogs.asp.net  

También puedes crear tu servidor REST y tus SPAs con Angular, Ember, React, Vue, etc.


¿Que necesito saber para usar ASP.NET Core?


ASP.NET Core es open source así que puedes ver su código en https://github.com/aspnet/Home, debes estar familiarizado con patrones de diseño y paradigmas, conocer C# (o VB.NET o F#) y recuerda ahora puedes trabajar en windows, linux o mac (este último será mi elección).

Bienvenido a nuestro arsenal de herramientas LINQ (Language Integrated Query), closures y constructores para programación asincrona. 

Nota: Para linuxeros las distribuciones soportadas son RHEL, Ubuntu, Debian, CentOS, Fedora y openSUSE,  Alpine, etc. Si tu distro no esta en la lista, pues, a averiguar y a hacer un post genial sobre ello.  

Con Alpine podríamos habilitar y tener ASP.NET Core en contenedores docker. 



¿Codear una sola vez y ejecutar Anywhere?


He oído eso antes jajajaja. La aplicación .NET core en realidad es compilada a código Intermediate Language (IL) el cual es independiente de la plataforma. Si tu sistema tiene instalada la plataforma .NET Core, entonces esta puede ejecutar el IL compilado. 

Es decir podré codear en Mac o windows y desplegar los mismos archivos en Linux. 


Azure


Ahora con Azure puedes tener tu VM en Linux y usar contenedores docker para integración continua. Desde mi mac podré desplegar en mi VM de Azure.  Lo que promete es que ya no mas IIS puesto que tu aplicación ASP.NET Core es simplemente una aplicación de consola que tiene un servidor web embebido y maneja sus requests directamente. Esto me parece genial para probar y depurar desde la linea de comandos.


Entorno de Desarrollo


Necesitamos el .NET Core SDK que nos dará el .NET command Line Interface (CLI). Para editar código ver http://www.omnisharp.net que trae una lista completa de alternativas. 

Si tienes Visual Studio no dudes que tienes todo integrado y listo. Pero, la buena noticia es que hay un Visual Studio Community que es libre y open source que nos dará el plus de plantillas, wizards, y facilidades para depuración y publicación.

Yo usaré Visual Studio Code y Visual Studio para MAC en mis siguientes posts, la idea es ver que ventajas me da uno del otro.

Bueno a instalar el SDK:


Pesa alrededor de 150 MB. 


Luego invoco al CLI para ver que templates puedo usar para crear aplicaciones:



Y bueno para empezar esta bueno, en los siguientes posts seguire compartiendo con uds. este nuevo framework de Microsoft que ahora está más cross que antes.

Enjoy!

Joe







Share:

Java Day Perú 2017


Hoy quiero compartir con ustedes la experiencia del desarrollo de este evento que organizo @PeruJUG el pasado 18 de noviembre en el auditorio de la FISI de la UNMSM de Lima-Perú.

¿Cómo nacio la idea?

En el JavaOne que se dió en San Francisco en Octubre del 2017 nos encontramos con varios representantes de JUGs como Alexis Lopez de Cali JUG, Jorge Vargas de México, Cesar Hernandez y Victor Orozco de GuateJUG y Mercedes Wyss de XelaJUG. De todas las reuniones a las que fuimos definitivamente la que dió el impuso a este evento fue el que organizo Microsoft, ya que conocimos a Jessica Perez (@j3ss1kP) evangelista de @Azure que nos animo a hacer eventos con el soporte de ellos.
Como buen peruano se me vino a la mente en ese instante la frase "no se diga mas" y posteriormente al evento se coordino con todos los mencionados realizar el evento para Noviembre. La fecha seleccionada fue finalmente el 18 de noviembre. Lamentablemente por temas burocraticos la ayuda económica no llego y no se pudo comprar los pasajes para los ponentes extranjeros, así que decidimos hacerlo todo vía hangout.
Mercedes, para suerte nuestra, tramito con Auth0 para venir a Perú, así que al menos ella si estaría con nosotros y le daría ese toque que tienen las grandes conferencias de tener expositores extranjeros.


El Local

Confirmados todos los speakers locales e internacionales, solo nos faltaba el local.
Por suerte el grupo LDS de la FISI en la UNMSM dió respuesta a nuestro llamado y nos consiguió el auditorio de la FISI para el 18 de noviembre de 9am a 9pm. De esta forma el evento sería totalmente GRATUITO para todos.

Punto Aparte: PERU JUG esta sumamente agradecido con el apoyo de este grupo y estoy seguro que lo harían de la misma manera con otras comunidades. Así que ahí les paso el dato si deciden contactarlos y armar algo con ellos.

Los chicos de LDS nos hicieron video promocional y les quedo super cool:

https://web.facebook.com/EquipoLDS/videos/720102951521058/

La agenda

A una semana del evento tomamos la decisión de hacer sesiones vía hangout con los que estaban fuera del país  por medio del canal de Youtube de JEspañol. Así que la agenda finalmente quedo así:


A 24 horas del evento por la mañana todo iba bien hasta que llegó esta noticia como a las 4pm, de que no habría luz en toda la facultad de sistemas.


Para suerte nuestra, el viernes como a las 10pm nos avisaron con  100% de seguridad que el corte de luz fue cancelado.

Igual nos quedamos con la duda , pero, no habia de otra, sólo,  ir a dormir e ir al evento bien temprano.
Las actividades empezaron desde las 8am, que era la hora en que llegaba Mercedes por el aereopuerto Jorge Chavez y teníamos que recogerla.


El día del evento

Despues de recoger a Mercedes en el aereopuerto, tomamos rumbo a la FISI y siendo las 9:05 am llegamos,  de ahí pasamos al  auditorio y ya había alrededor de 15 personas esperando el inicio del evento. Por suerte LDS designo a Camilo al que estamos sumamente agredecidos porque ya tenía listo el microfono y todo lo necesario para dar la bienvenida a los asistentes y comenzar con las conferencias.






Luego de dar la bienvenida a los asistentes, les invite a subir sus fotos, comentarios y todo con el hashtag #javadayperu y  esperamos unos minutos para empezar con la primera charla con Cesar Hernandez ya que Eddu Melendez (@eddumelendez) por pase en un Banco Local se tuvo que quedar y no pudo estar a las 9am con nosotros.

Sesiones


Introducción a Java EE con Tomitribe

Ponente: Cesar Hernandez (@cesarhqt)

Slides: goo.gl/tQJi2G

Online Lab:
goo.gl/c77y1P






Novedades de Java EE 8

 Ponente: Diego Silva @apuntesdejava




El código presentado lo encuentran aquí en su blog Apuntes de Java.

JMoordb para NoSQL con Java

 Ponente: Aristides Villareal
 Slides: https://goo.gl/wnTHnX
Github: https://github.com/avbravo/jmoordb

 Esta sesión fue online, pero, no pudimos grabarla por problemas técnicos. Queda pendiente para una sesión adicional.

Desarrollo Frontend para Desarrolladores Backend

 Esta sesión era la mía y  fue cancelada por temas de tiempo, Mercedes merecía ser llevada a degustar nuestros ricos potajes, así que nos fuimos a la cevichería Mateo que queda frente a Tottus de la Av. La Marina y ahí degustamos con otros miembros del JUG un buen ceviche mixto, conchitas a la chalaca, chaufa de pescado y la infaltable Inka Kola y Chicha morada. Para chuparse los dedos.


Punto aparte: El ceviche estuvo muy picante para Mercedes. Así que hay que tomar en cuenta esto para futuros eventos.

 Criterios para desarrollo de apps móviles

Ponente:  Jorge Vargas


REST Services con Play Framework y seguridad con JWT

 Ponente: Mercedes Wyss (@itrjwyss)
Slides: https://goo.gl/nKF2vu



40 novedades de Java SE 9

Ponentes: Alexis Lopez (@aa_lopez)



Agile Devops, cloud, containers y otras hierbas.

Ponentes: Eddu Melendez (@eddumelendez)

¿Porqué Eddu expuso por la tarde?.
Pues, se recupero y me confirmo que estaría por la tarde para exponer su charla.
Yo antes de saber eso, pensando que Eddu no vendría al evento invite a Edson Chavez (@grubhart) para apoyarnos y dictar una conferencia que ya había dado anteriormente en nuestro JUG en mi segundo turno.
Así que tenía 2 charlas y decidí cancelar mi segundo turno y darselo a Eddú y pedir al grupo LDS que me de una hora mas para incluir a Edson.  Al final se dió todo bien, gracias a Dios.

Eddu y Edson pasaron al frente durante la sesión de Eddu y en lugar de conferencia, hicieron una discusión con los asistentes sobre micro servicios e integración continua, etc. La platica estuvo más que interesante.



 

OAUTH 2.0

Ponentes: Edson Chavez (@grubhart)

Al final vino el turno de Edson. Esta fue nuestra última charla presencial.






Microservicios con Payara Micro

Ponentes: Victor Orozco (@tuxtor)



Esta sesión termino 9:15 pm , de ahí cerramos con sorteos de libros entre los asistentes y la foto final del evento. 
Se quedaron muchos chicos todo el día y en el fondo valió la pena el dolor de espalda, la inversión personal económica para pasar un día con la comunidad al estilo de un evento como se da en otros países.

Hasta la próxima, y animate a ir a las conferencias de @PeruJUG.




Share:

Lo nuevo de Java EE 8

Java EE 8 está ahora disponible. Oracle ha publicado el SDK Java EE 8 y su documentación para que sea descargada por los desarrolladores.

La JCP (Java Community Process) es la que ha aprobado esta versión y lo ha enfocado en el soporte a HTML5 y el estándar HTTP/2, en la simplificación e integración de beans manejados y una mejorada infraestructura para aplicaciones en el cloud. Java EE es construido sobre la base de la plataforma, edición estándar (Java SE) que ahora esta en la versión Java SE 9 y su JDK 9

Nuevas características en Java EE 8


Java EE 8 soporta nuevas especificaciónes entre las que destacan:

  • JSON-B (JavaScript Object Notation Binding),  dandanos una capa biding para convertir objetos Java a JSON y viceversa.
  • Actualizaciones a JSON-P (JSON Processing API), haciendo mejoras en el modelo de objetos.
  • JAX-RS (Java API para RESTful Web Services) 2.1 que incluye un API cliente reactivo.
  • JAX-RS soporta para eventos enviados desde el servidor, ofreciendonos un canal de una dirección entre el servidor y el cliente.
  • HTTP/2 ahora es soportado en Servlet Java ofreciendonos un modelo de programación de clases para extender las capacidades del servidor.
  • Java EE Security API, con soporte a clous y paradigmas PaaS.
  • Bean Validation 2.0, ahora permite el uso de constructores Java 8 en validación. 
  • JavaServer Faces 2.3, para construir interfaces de usuario desde el lado del servidor.
  • CDI (Context and Dependency Injection) 2.0, con enfasis en eventos asincronos.


MicroProfile


En paralelo la comunidad e importantes empresas junto con los Java EE Guardians han impulsado la iniciativa de Microprofile.io.  El objetivo de esta iniciativa es proveer una plataforma base para definir los microservicios. La fundación eclipse lidera ahora esta iniciativa y Java EE que fue cedido por Oracle como estrategia para impulsar la adopción de Java EE 8.

La actual versión 1.1 de microprofile nos provee un stack que incluye CDI, JSON, JAX-RS y un API de configuración.


Actualizaciones de Java EE


Se espera que la versión Java EE 9 sea el próximo año como parte del esfuerzo de modernizar la plataforma para despliegue cloud y microservicios. Java EE 8 esta centrado en facilitar la configuración de servicios y en monitorear la salud de los mismos. 

La siguiente versión Java EE 9, va a promover el despliegue de pequeñas unidades de servicios y un modelo de programación reactiva para construir sistemas a gran escala, basada en eventos.

Como parte del desarrollo del proceso de desarrollo Java EE 8, Oracle ha estado trabajando en GlassFish 5, el servidor de aplicaciones open source que ha servido como una implementación de referencia para Java EE.  Este ha sido oficialmente liberado en este link


Imagenes Docker GlassFish 5


El full profile puede ser bajado como imagen docker así:

docker pull oracle/glassfish:nightly

El web profile puede ser bajado así:

docker pull oracle/glassfish:nightly-web


Bueno por ahora toca revisar su documentación y tutoriales. 


Espero que el empuje de la plataforma sea de beneficio para todos los que estamos trabajando con Java. En la semana de octubre de JavaOne espero enterarme de mas novedades y compartirla con todos.

Enjoy!


Joe











Share:

JavaCloudDay México 2017

El 31 de agosto del 2017 fue el evento JavaCloudDay 2017 en la CDMx gracias a CertificaTIC y Oracle.

Se logró gracias a CertificaTIC que los miembros de JEspañol podamos por fin estar todos juntos en un evento. Estuvimos Jorge Vargas de México, Victor Orozco de Guatemala, Cesar Hernandez de Guatemala, Alexis López de Colombia y este servidor de Perú.  Si desea que su JUG o evento cuenten con este grupo de locos muchachos puede obtener nuestros datos de este LINK.



Comparto mi presentación.




La verdad fue un gran evento, donde hubo mucha participación y auditorio lleno.

Igual nos dimos con Miryan Ramirez una oportunidad para conocer Teotihuacan y subir a las piramides.

Hasta el próximo año.




Joe.








Share:

Primer combo de cursos online en JoeDayz




En Agosto iniciamos un pack de 4 cursos online:

  • Angular 4 con Cesar Alvarado
  • Java 8 con Edwin Farfan
  • Oracle PLSQL con Oswaldo Bardales
  • Spring Boot y Cloud con Jose Diaz

La verdad ha sido un exito rotundo porque hemos tenido aula llena, los participantes han estado muy atentos y pendientes de cada clase. Los profesores salvo algunas clases han dictado de forma puntual y sin contratiempos.

Esperamos en Octubre lanzar el último pack del año sobre desarrollo móvil: Xamarin, Android con Kotlin, IOS, Ionic, NativeScript y Reactive Native. Ya estamos en coordinación con los profesores. Con fe. 


JoeDayz




Share: