Tuesday, March 3, 2015

Ant, Ivy, Maven, Gradle, ..., qué y por qué?

Los desarrolladores provenientes del mundo .Net suelen esgrimir varios argumentos en contra de Java, algunos con razón y otros simplemente por mera pereza.

Uno de los argumentos más comunes en contra de Java es la cantidad de tecnologías y bibliotecas que lo rodean, muchas para hacer lo mismo, y cuando deseas comenzar te encuentras a ti mismo perdido en un mar de información muchas veces bastante desorganizado, prácticamente en un caos.

Pero es bueno o malo tener tantas bibliotecas para hacer lo mismo?

Lo positivo desde la perspectiva de los nativos de Java:

- La diversidad de opciones para lograr un objetivo.
- Casi siempre es código Open Source, puedes corregirlo si lo necesitas.

Lo negativo desde la perspectiva de los nativos .Net?

- No sabes por donde comenzar.
- No sabes cual de las tantas es la mejor. Pongamos por ejemplo esta lista de Plantillas para Vistas MVC: JSP/JSTL, Thymeleaf, Tiles, Freemarker, Velocity. Quiere decir que incluso dentro del mismo mundo Java puede ser alta la curva de aprendizaje para incluir un nuevo miembro al equipo.
- Documentación poco centralizada.
- El tiempo de caducidad de las tecnologías es relativamente mucho más corto que en .Net.
- Y finalmente un árbol de dependencias entre bibliotecas con muchísimos niveles, una historia sin fin muchas veces.

Están equivocados los nativos .Net? - No, no lo creo.

Recuerdo perfectamente que años atras trabaje en un proyecto para hacer un sitio web de juegos. El líder del proyecto (una de las personas con más conocimiento de Java que existen) se decantó o por una sería de bibliotecas bastante avanzadas y complejas. Un par de años después le pedí montar el sitio en un server de pruebas para mostrarselo a un cliente y saben que?
1- Necesitaba de un tiempo enorme para poder instalar todo desde cero. Al final, nunca se instaló nuevamente.
2- La principal biblioteca que usabamos, el core de todo, ya no se desarrollaba más. Quedaría por siempre en el olvido. Además que la enorme lista de dependencias ya corrían la misma suerte.

Entonces, en medio de todo este caos se necesitaba algo o alguien que pusiera orden y simplificará todos estos procesos. Allí es donde surgen estas herramientas de manejo de proyectos, administración de dependencias, actualizaciones automáticas, empaquetado y distribución de las mismas.

He aqui por qué a los nativos .Net les resulta tan complejo entrar al mundo Java, porque en honor a la verdad nunca han tenido ese desorden: siempre han contado con MSDN con toda la documentación bien centralizada, lo mismo online que offline.

Entonces en el mundo Java surge Ant, Ivy, Maven, Gradle, etc., y queda solucionado uno de los problemas, pero volvemos a lo mismo: y cual de los tantos manejadores de proyectos uso?

Realmente es irónico pero aún lo que se creó para organizar el caos crea aún más caos, ja ja.

Bueno, el más famoso y utilizado es Maven, creo yo, pero se esta potenciando últimamente con mucha fuerza a Gradle. No obstante, Gradle es un partner de Maven porque hace uso de sus repositorios y de todo su conocimiento acumulado durante años.

Gradle es hoy utilizado por Android Studio. También Gradle está hoy a la par de Maven en los tutoriales de Spring Framework.

Aqui les dejo una lista de recursos para profundizar en el tema:

http://maven.apache.org/what-is-maven.html
http://maven.apache.org/maven-features.html
http://spring.io/guides/gs/maven/
https://gradle.org/
https://gradle.org/learn
http://spring.io/guides/gs/gradle/




Tuesday, February 17, 2015

Podcast #1: Básicamente... ¿Cómo vendemos un proyecto Scrum?

Episodio 1   —  noviembre 2 de 2014
En una segunda toma del primer episodio (porque el primero no fue lo que esperábamos) hablamos de cómo vender proyectos de Scrum a pesar de que los clientes esperan presupuestos y tiempos de entrega fijos.
En este episodio:
  • Santiago repite 400 veces la palabra "básicamente" (de allí el título del episodio)
  • El podcast no tiene nada que ver con béisbol
  • Esta es la segunda toma del primer episodio porque el anterior no funcionó (muchas gracias a los que nos ayudaron a darnos cuenta)
  • ¿Qué es Scrum? (en 48 segundos)
  • Hay una realidad: los requerimientos en el desarrollo de un producto van a cambiar
  • Hay otra realidad: los clientes quieren conocer de antemano cuánto les va a costar y qué tiempo va a demorar
  • La paradoja es que Scrum no está preparado para proyectos con presupuesto y tiempo de entrega fijos
  • Deisbel se empeña en explicar para qué se puede usar un televisor (qué locura lo que hace el nerviosismo)
  • ¿Qué variantes hay para vender un proyecto de Scrum y hacer feliz a todos?
  • La moraleja final: nunca mastiques chicle si te acaban de poner una corona en la boca


En 3 y 2: nuestro nuevo Podcast, que ya no es tan nuevo

A inicios de Noviembre del 2014 comenzamos una nueva aventura mi amigo +Santiago L. Valdarrama y yo: un podcast de tecnología, con el nombre "En 3 y 2".




Desde el inicio me agrado su propuesta de llenar un espacio bastante desocupado aún: los podcast de tecnología en idioma español.


Valga aclarar que de momento la idea no es ofrecer tutoriales específicos sino propiciar el mero debate de todo lo que rodea al mundo del desarrollo de software, usando siempre un lenguaje ligero, informal y alegre.


Como todo lo que se comienza, este podcast no estuvo exento de problemas, de errores, de inexperiencia, pero con el paso del tiempo hemos comenzado a disfrutar más cada uno de los capítulos y a hacerlos mucho más naturales que los primeros.


Para comenzar tuvimos que adquirir bastante equipamiento profesional, a un costo bastante alto para ser esto un “pasatiempo”. Pero si íbamos a hacer algo lo queríamos hacer bien, con buena calidad de audio al menos.


Si algo quisiéramos mejorar es la duración de los mismos que ronda más o menos una hora cada uno. En teoría esta es una duración adecuada pero creo que con menos duración tendremos una audiencia más grande: la que realmente no dispone de una hora completa.


No obstante una hora a la semana, escuchándolo mientras se viaja, o se descansa en casa, no es tanto. Quizas lo mejor sea mantener este formato y entonces abrir otra línea de podcast más cortos, de unos 15 a 30 minutos, donde se traten temas más específicos.


Aunque en la web del podcast (https://en3y2.svpino.com) se puede consultar un resumen de los temas que se tratan en cada uno, también duplicare aquí dicho contenido para que sea accesible desde más de un lugar.


Los comentarios los pueden enviar por aquí o a través de nuestras cuentas en twitter: @svpino o @deisbel.

Monday, December 8, 2014

Primeras impresiones del Nexus 6 (review)

Hace dos días tuve finalmente el primer contacto con un Nexus 6. A pesar de mi disgusto personal sobre su tamaño, cosa que a otros puede no molestarle, es justo dar una opinión sincera sobre el mismo.

Aunque no lo pude probar a fondo pues era apenas un teléfono de exhibición si tuve muy buenas impresiones iniciales.

1- El look and feel es muy bueno. El acabado del teléfono es robusto y a la vez de muy buen gusto estético: con clase.

2- El grosor del teléfono es confortable.

3- Incluso me atrevo a asegurar que luce mucho mas robusto y seguro que el iPhone 6 Plus, de casi similar tamaño, aunque creo que es poquito mas pesado (de hecho lo es pero solo 12 gramos).

4- La calidad de la pantalla muy buena.

5- Como es de esperar con Android 5 Lollipop instalado.

Para los que les guste el tamaño del mismo es evidentemente la mejor opción de teléfono con Android, como mencionaba hace dos meses en el artículo: iPhone 6, Nexus 6, Moto X2, LG G3, Sony Xperia Z3, HTC One (M8), Samsung Galaxy S5, ..., Cual teléfono escoger?


MuteCalendar.com para poner en mute su teléfono con antelación y planificación (entre otras cosas)

Hace ya unas semanas publiqué en Google Play una aplicación (evidentemente para Android). Realmente la aplicación llevo bastante tiempo en desarrollo pero mucho más aun en su publicación. Por razones a veces inexplicables demoramos la distribución de un producto mas de lo esperado.

Creo que mas bien es en la espera de algo perfecto y lo perfecto no existe. El resultado es que cuando finalmente publique ya habían otros que habían tenido la misma idea y casi con el mismo nombre, joder! je je.

Pero bueno, esta tiene muchísimas cosas que la hacen particular y útil.

Aquí les brindo el mismo resumen que pueden encontrar en la portada de su propia web:
http://www.mutecalendar.com/ en Inglés
http://www.mutecalendar.com/es en Español.

Igualmente esta disponible en dos idiomas ajustable según el del teléfono donde este instalado.

Por qué Mute Calendar?

Usar el teléfono móvil donde no está permitido puede traerle serios problemas. Con Mute Calendar usted puede evitarlos. Es tan simple como planificar cuando no quiere ser molestado por su propio teléfono.
Se sorprenderá de cuán fácil una simple aplicación puede mejorar su vida de ahora en adelante.
Imagínese que está en uno de esos lugares donde explícitamente se prohíbe el uso del teléfono celular —podría ser en medio de una clase, en una reunión con su jefe o quizás impartiendo una conferencia— y de pronto recibe una llamada: El sonido de alerta resuena a todo volumen.
¿El efecto inmediato? Una multitud de miradas reprobatorias fijas en usted. En muchos casos habrá consecuencias acordes a lo que haya interrumpido.
Por supuesto, usted podría argumentar:
—Sí, pero para evitar esta situación basta con poner el teléfono en modo de Silencio o Vibración!
Pero… ¿ha pensado en los inconvenientes de esta “solución”?
¿Y si la llamada entrante es realmente importante y usted necesita, al menos, hacer saber a quien lo llama que estará ocupado hasta la siguiente media hora y dónde se encuentra en ese preciso instante?
¿Y si al salir de su cita, clase, o conferencia olvida restablecer el modo Sonoro en su teléfono y llegan llamadas importantes de las cuales no se percata?
Peor aún, ¿y si, durante el tiempo en que no puede usar el teléfono, necesita enviar un SMS a su pareja recordándole recoger al niño en la escuela o tiene que avisarle a su jefe que por circunstancias imprevistas llegará tarde a la oficina?
Quizás es mucho más sencillo y, simplemente, ha deseado muchas veces ser el primero en felicitar a un ser querido por su cumpleaños, justo cuando llega la media noche, pero ya está dormido a esa hora y ha perdido la oportunidad. Quizás ha necesitado enviar un aviso, a una hora específica, a algún familiar y lo ha pasado por alto justo en el momento que debía hacerlo porque tenía la mente ocupada en otras tareas importantes.
Este ciclo de eventos puede repetirse una y otra vez durante todo el día y, en consecuencia, convertirse en un contratiempo, tanto si es usted un estudiante, un profesor o un seminarista como si es alguien que se reúne constantemente con subordinados y jefes o, simplemente, trabaja en un negocio donde no le permiten usar el móvil durante gran parte del horario laboral.
Mute Calendar le ayudará a eliminar muchos inconvenientes de su vida asociados al uso de su teléfono móvil.

Artículo previo:
Y sucedió lo que tenia que suceder

Y sucedió lo que tenia que suceder


Como tantos otros tenia como plan cambiar el teléfono en este último cuarto del año. La disyuntiva de cual comprar es algo que a más de uno les generó y aun les genera dolor de cabeza porque cada vez la competencia en calidad se estrecha más.

Hace dos años estaba usando iPhone y mi meta era cambiar para algún Android esta vez preferiblemente con una versión pura del sistema operativo, en particular el esperado Nexus 6.

Hace unas semanas atrás escribí un articulo hablando precisamente sobre como deberíamos decantarnos por uno o otro fabricante. En aquel momento aun era un rumor el nuevo y gigantesco tamaño del Nexus 6. Aun cuando ya era prácticamente una realidad siempre me quedo la esperanza de que Google no cometería un error tan absurdo como el suponer que a todo el mundo le acomodaría su diseño.

Casi dos meses después quede convencido que al menos por esta vez no sucedería y debía decidirme pues cada mes que pasara estaría pagando alrededor de 30 USD de mas en la factura telefónica Verizon (al acabar el contrato de pago del equipo ellos te siguen cobrando el mismo dinero que cuando lo pagabas, muy graciosos!). Visité cada store, revise cada modelo Android y ninguno llegaba a lo que yo esperaba. Si no era por el tamaño era por la bateria, o porque no me gustan los Samsung, etc.

Hasta que me volví a hacer la pregunta:
Si no puedo tener lo mismo que el Nexus 6 en un tamaño adecuado que me queda?

Me di a la tarea de ir al Apple Store y probar el iPhone 6 y realmente el "look and feel" fue excelente.

En una cosa Google tiene razón: 
Una vez que pruebas un teléfono de mayor tamaño lo prefieres, como norma general. 

Pero eso es una cosa y otra bien deferente la "soberbia" de pretender dictar cual es el tamaño que debemos usar. Vuelvo y lo repito, no pasara un año sin que Google corrija este error garrafal. Me parece hasta ingenuo y tonto no haber tenido la misma precaución de Apple de ofrecer dos modelos en tamaños diferente. Lo que ha hecho Google es tirar hacia los brazos de su competidor a una gran parte de sus fans.

Así que, sucedió lo que tenia que suceder: Me decidí por el iPhone 6. 

Pero incluso, para corroborar mi teoría del error de Google podemos revisar las ventas del iPhone 6 contra las de su hermano "más grande" el iPhone 6 Plus. Las ventas del más pequeño son muchísimo mayores. Revisando algunos sitios la relación de ventas va lo mínimo de 3 a 1 a favor del clásico iPnone 6 contra la versión Plus.

A lo mejor Google pensó que seria suficiente para las personas como yo adquirir algunas de las versiones puras de Android de "HTC One M8" o "Moto X" pero no, no fue así.

Pero incluso, mas allá de ese error ha cometido otro peor: llegar tarde a la fiesta!

Ya estamos pasando la primera semana de Diciembre y ayer fue que pude tocar un Nexus 6 de exhibición en T-Mobile. Ni siquiera para el Ciber Monday hubo disponibilidad en Stores como Best Buy. Todo un desastre!

Y para que el cambio no fuera solo de equipo lo rematé cambiando también de proveedor: me fui de Verizon para T-Mobile.

A lo mejor me arrepiento de este cambio porque es cierto que la mejor red LTE es de Verizon, pero es una forma de estimular a los que están haciendo las cosas bien. Creo que T-Mobile se merece la oportunidad de que siga creciendo como lo esta haciendo, y por supuesto, que ese crecimiento se re-invierta en ampliar su red LTE.

Entonces, suerte a Google con las ventas de su Nexus 6. Ya escribiré de ello a su momento.

Articulo relacionado:
iPhone 6, Nexus 6, Moto X2, LG G3, Sony Xperia Z3, HTC One (M8), Samsung Galaxy S5, ..., Cual teléfono escoger?

Saturday, November 29, 2014

Cuan difícil es tener un bebé recién nacido y continuar dando soporte a proyectos y clientes?

La respuesta es simple:

- muy difícil y muy duro!

Máxime cuando vives en un país donde no tienes cerca a toda tu familia: mamá, papá, tíos, hermanos, primas, etc.

Dormir apenas 4 o 5 horas a intervalos irregulares y levantarte e ir a solucionar problemas con la misma eficiencia que antes se convierte en una hazaña al nivel de los 10 trabajos de Hércules, e incluso puedo apostar que se queda corta la comparación, je je.

Normalmente no me quedaban muchos minutos libres al día pero la llegada del bebe hace que el tiempo libre y de descanso me quede totalmente en negativo. No obstante la primera semana fue la peor, creo que la segunda la sortee con mas éxito del esperado y esperemos que cada cosa vaya re-ubicándose en las siguientes. Incluso logré volver a mi rutina de jugar fútbol y tenis de mesa entre semana.

Es innegable, la llegada de un hijo te cambia la vida, pasa a ser el centro de todas las preocupaciones. No se hasta que punto eso sea o no una desventaja, al menos para alguien que es adicto al trabajo: como yo. Es estresante tener mas preocupaciones en el mismo espacio de tiempo pero a la vez relajante poder sacar el trabajo de tu mente durante tanto rato.

Es real que es un regalo de la vida que se disfruta muchísimo, así que no queda mas remedio que ajustarlo todo. Si al final sales airoso de la contienda pues resultaras en una persona mas fuerte y mejor preparada aun para lo que venga.

Quiero agradecer profundamente a las personas que me ayudaron en estas dos semanas, a Jeysel, a Melquiades, a mi hermano Dioneidy, a la gente de la oficina que me permitió ser flexible con el tiempo, y los amigos en general.

Pero quiero dejar un párrafo aparte, un agradecimiento especial, para Yeni. Miles de gracias por tu apoyo durante la primera semana, haciendo tiempo del que no tenias, saliendo de tu trabajo o de tu universidad y pasando aunque sea dos horas a quedarte en casa ayudando a Marlita y al bebe. No tienes idea de cuan importante fueron esas horas para mi, que me permitieron sortear con éxito mis responsabilidades profesionales.