lunes, 30 de diciembre de 2019

Mi 2019 en graficos

¿Como me fue en el 2019? Me gusta documentar mis objetivos para ir evaluando cada año, así fue mi 2019

Soy un hombre que busca el equilibrio entre el presente, pasado y futuro. Te explico, del pasado se aprende, con el presente se construye el futuro.

Inversiones en Chile

Inversiones en México

Entrenamiento, Carrera

Unadm, TSU en Desarrollo de Software. ¡Terminado!


Predicciones económicas para el 2020

Ha sido un 2019 de claro oscuro para México, un año de aciertos y errores, de buena voluntad pero incompetencia. El dolar no llegó a los 22, la inflación no se disparó, las inversiones no se esfumaron. Pero es un año sin crecimiento económico, México está al precipicio de perder el grado de inversión, si lo pierde se desencadenará una serie de eventos que nos puede llevar a una crisis económica.

Me encanta las predicciones, me emocionan, aquí les dejo las predicciones para el 2020, ya después analizaremos como nos va, claro, si el Dios todopoderoso nos concede un año más de vida.

Los 10 principales cisnes negros para el 2020:
1. La guerra comercial de EU con China se sale de control, y termina con la gravación al 100 por ciento del comercio entre ambos países.
2. El déficit fiscal en Estados Unidos aumenta más de lo previsto. Las tasas de los T-Bills se disparan, ante la demanda de recursos prestables del Tesoro norteamericano.
3. El mercado laboral en la unión americana llega a generar una importante presión salarial, causando una aceleración de la inflación, que a su vez provoca un incremento en las tasas de la FED.
4. Los mercados emergentes podrían sufrir una salida generalizada de capital financiero mayor que la que se vivió en el pasado, ante los incrementos en tasas de interés y la menor propensión al riesgo.
5. La generación de una guerra de divisas generalizada: Ante los embates proteccionistas del presidente Trump, los incrementos en los aranceles en el mundo, se podrían compensar con devaluaciones de las monedas.
6. La desconfianza de los agentes económicos se acelera y genera una recesión prolongada más profunda en México.
7. México pierde el grado de inversión: Lo que nos lleva a un círculo vicioso de mayores costos financieros, mayor déficit fiscal, menor crecimiento, menores calificaciones.
8. La inseguridad o la corrupción se salen de control afectando a la actividad económica y a la estabilidad de los mercados financieros mexicanos.
9. El Congreso norteamericano rechaza el T-MEC y exige una reapertura de las negociaciones.
10. El presidente Trump decide imponer sanciones al Gobierno de México por el narcotráfico.
Los 10 principales cisnes blancos:
1. El juicio de impeachment avanza y el presidente Trump es obligado a renunciar o es destituido.
2. La economía de los Estados Unidos continúa acelerándose sin inflación, lo que beneficia al sector exportador de México.
3. Después del Brexit, en el Reino Unido se propone un nuevo referéndum y gana la opción de regresar a la Unión Europea.
4. La guerra comercial entre EU y China se resuelve con rapidez y las medidas proteccionistas de Trump se revierten.
5. Las tendencias nacionalistas, proteccionistas y antidemocráticas en el mundo desaparecen, o se revierten.
6. El presidente López Obrador decide abandonar el proyecto del aeropuerto de Santa Lucía y decide concesionar al sector privado el proyecto del aeropuerto de Texcoco. También decide reabrir la inversión privada en energía eléctrica y en hidrocarburos sin restricciones, de acuerdo a la reforma vigente.
7. México encuentra yacimientos de petróleo y gas en aguas someras similares al potencial que tuvo Cantarell.
8. La superestructura del Estado de derecho se fortalece en tal grado que es suficiente para inyectar confianza.
9. México y China deciden iniciar negociaciones para un Tratado de Libre Comercio de gran envergadura.
10. La corrupción y la inseguridad se frenan significativamente.
¡Que nervios, 2020 ahí te vamos.!

jueves, 26 de diciembre de 2019

El protocolo HTTP

¿Por qué debo conocer el protocolo el HTTP?

En Java es muy común usar la tecnología Servlets y RESTful para crear aplicaciones Cliente-Servidor, estas tecnologías usan el protocolo HTTP, para nosotros es transparente y podríamos pasar por alto este protocolo. Sin embargo, tener conocimientos del protocolo HTTP no está de más, y si eres curioso como yo, estarás deseoso de saber como funciona este protocolo.

El protocolo HTTP (Hypertext Transfer Protocol) es un estandard que define como un cliente web se comunica con un servidor y como la información es transferida desde el servidor hacía el cliente. Aunque HTTP es usualmente usado para transferir documentos HTML e imágenes embebidos en el documento HTML, HTTP es agnóstico al formato de los datos. HTTP puede ser usado para transferir imágenes, documentos Word, programas .exe, o cualquier cosa que pueda ser representado en bytes. Para escribir programas que usen HTTP, tu necesitas entender HTPP a un nivel de profundidad mucho mayor que el de un diseñador de paginas web. Escribiré una serie de entradas con el fin de mostrarte lo que pasa detrás del telón cuando tu ingresas un dirección web en la barra de tu navegador web.

HTTP es el protocolo estandard para la comunicación entre navegadores web y servidores web. HTTP especifica como un cliente y un servidor establecen una conexión, como el cliente solicita datos al servidor, como el servidor responde a esta petición, y finalmente, como la conexión es cerrada. 

martes, 26 de noviembre de 2019

¿Cómo ser el mejor programador?

Llevo casi 10 años en esta industria, con altibajos, por momentos siento que soy buen programador pero los retos nunca terminan. Presentas una prueba por aquí otra por allá y en algunas te rechazan, entonces te vuelves a preguntar, ¿Qué tengo que hacer para ser un gran programador?, ¿Cómo se que lo estoy haciendo bien?

La mayoría de los que llevamos la programación en la sangre tenemos esa ansiedad por ser cada día mejores programadores, resolver problemas complejos, hacer maravillas, magia. Y hay que sobrellevar esta ansiedad porque si no terminará por consumirte. Por esta razón he creado una guía para ayudarte en este proceso de mejora.

Voy a darte una serie de consejos para que te conviertas en el mejor programador, desde luego, es pre condición que te guste la programación, que sientes pasión por ella  y que el desarrollo de software  sea tu camino.

1.- Empieza a programar desde muy joven.
Me hubiese encantado haber conocido esta ciencia cuando era niño, desde los 8-10 años. Las ciencias de la computación es un área muy extensa porque se apoya en otras áreas, como las matemáticas, física, lógica, teoría de conjuntos etc,. Por ello, insisto, si puedes empezar a programar cuando antes mejor.

2.- Encuentra un mentor
Un mentor te ayudará a estar motivado, te compartirá su experiencia, te ayudará a reducir años de aprendizaje. Hay mucho conocimiento que uno aprende a base de experimentar, analizar, observar y prueba/error. Pero experimentar consume mucho tiempo, por eso es mejor contar con un buen mentor que te ayude en el desarrollo de tu carrera.

4.- Domina el área de Físico-Matemático
La matemáticas y física te ayudan a desarrollar el pensamiento abstracto, el razonamiento y capacidad de solucionar problemas. Por ello, aprovecha estos cursos, no los desestimes, álgebra, trigonométrica, teoría de conjuntos, probabilidad, calculo integral, calculo diferencial y física.

5.- Domina las estructuras de datos
Tienes que dominar las estructuras de datos, arreglos, listas, colas, pilas, arboles, grafos.

6.- Algoritmos
Trata de conocer los algoritmos más famosos, algunos algoritmos son constantes, como búsqueda y ordenamiento. Pero año con año salen nuevos algoritmos, otros se mejoran y así. En Internet existen muchos algoritmos que puedes estudiar. O porque no, diseñar tus propios algoritmos. La otra habilidad que debes desarrollar es la de traducir la solución de un problema en un algoritmo. Hay que gente muy inteligente que logra encontrar la mejor solución a un problema, pero para programar la solución hay que definir el algoritmo. Si no eres muy inteligente para resolver problemas pero se te da bien definir el algoritmo, ahí tendrás un campo de trabajo.

7.- Desarrollar algunas habilidades
Para ser el mejor programador debes desarrollar las siguientes habilidades: observación, intuición.

8.- Lógica, Teoría de conjuntos, sucesiones y series

9.- Ingles
Los mejores artículos, tesis, e investigaciones relacionadas con las ciencias de la computación se encuentran en ingles. Por ello debes aprender Ingles.

10.- Practicar, practicar y practicar
Aprovechar el opensource, descarga código fuente, lee código fuente, debugea(depura) código fuente. En Internet hay muchas paginas donde puedes buscar problemas a resolver, practica mucho.,



domingo, 17 de noviembre de 2019

Como transferir dinero de Chile a México con Paypal

Llevo varios años usando Paypal para transferir dinero de Chile a México, es cómodo, seguro aunque el costo si es un poco elevado, la comisión ronda el 5%, es decir, si envías 1000 USD en México recibirás 950 USD. La transferencia demora en promedio 3 días hábiles desde que haces la transferencia Paypal hasta que tengas los fondos en tu cuenta bancaria de México

¿Que se necesita?

En México

  1. Tener una cuenta bancaria con cuenta Clabe, generalmente todas las cuentas tienen el número Clabe. Yo tengo una cuenta perfiles en Banamex.
  2. Tener una cuenta Paypal, cuenta que debiste de haber seleccionado México como país de origen.
  3. Necesitas tener asociado tu cuenta bancaria en tu cuenta Paypal
En Chile
  1. Tener una tarjeta de crédito
  2. Tener una cuenta Paypal, cuenta que debiste de haber seleccionado Chile como país de origen.
  3. Tener asociado tu tarjeta de crédito en tu cuenta Paypal.
¿Como hacerlo?
  1. Desde tu computador, ingresarás a tu cuenta Paypal de Chile, haces un Pago a tu cuenta Paypal de México
  2. Desde tu computador, cierras la sesión de tu cuenta Paypal de Chile, e ingresas a tu cuenta Paypal de México y retiras los fondos a tu cuenta Bancaria
  3. Esperas unos 3 días hábiles aprox y ya deberías tener el dinero, una vez me demoró hasta 15 días, pero fue solo una vez.
Es muy cómodo, pero la comisión es algo elevado a mi parecer.

Como transferir dinero de Chile a Mexico con Bitcoins

Alterno mi residencia entre México y Chile, por varios años he usado Paypal para transferir dinero, hacerlo desde Chile a México es muy fácil, demora en promedio 3 días y el costo es de una comisión del 5%.
Transferir de México a Chile es más complicado, la complejidad radica en el monopolio de Transbank, demora en promedio 10 días y el costo es de una comisión del 5% más 10 USD por transferencia, pero en Chile hay que convertir los USD a CLP y aquí te vuelven a joder ya que te pagan muy por debajo de lo que realmente vale un dolar. Por esta razón casi no transfiero de México a Chile.

Si quieres conocer más sobre como enviar de Chile a México puedes revisar mi entrada Transferir de Chile a México

Ahora que está muy de moda el Bitcoin he decidido probar si es posible mover dinero de Chile a México, y pues sí, sí es posible, demora en promedio 3 horas y la comisión en promedio es de 1.5%, mucho más barato que Paypal. La desventaja es la alta volatilidad, en horas el monto transferido se puede incrementar o disminuir.

¿Qué se necesita?
En México

  1. Tener una en Bitso, bitso es una plataforma para comprar, vender, recibir y enviar Bitcoins. Aquí el enlace https://bitso.com/ Debes tener verificada tu cuenta, se te envía un código a tu celular.
  2. Tener una cuenta Bancaria, yo tengo la cuenta perfiles de Banamex, necesitas tu cuenta Clabe
En Chile
  1. Tener una cuenta en Orionx, https://orionx.com/
  2. Tener una cuenta Bancaria, una que te permita hacer transferencias electrónicas

¿Como se hace?


  1. Transfieres dinero de tu cuenta Bancaria a tu cuenta en Orionx
  2. Comprar Bitcoins
  3. Enviar Bitcoins, para enviar bitcoins necesitas tener la dirección Bitcoin de tu cuenta en Bitso. Esto lo obtienes ingresando a Bitso, vas a Wallet, BTC, Fondear, Mostrar dirección.
  4. Después de unas 3 horas aprox. tendras los bitcoins en tu cuenta Bitso
  5. Vender los bitcoins
  6. Transferir a tu cuenta bancaria
Aquí encontré un vídeo muy didáctico




sábado, 21 de septiembre de 2019

Integrar Bootstrap en aplicaciones JSF 2.2

Después de meses de investigar, practicar e involucrarme en el paraguas de la tecnología Java EE, me he encontrado con la necesidad de integrar el framework Bootstrap. Bootstrap es un framework para la parte front end de una aplicación web, contiene elementos como menús, formularios, barras de navegación, y muchos otros componentes incluyendo la posibilidad de usar plantillas.

Mi técnica de auto aprendizaje consiste en investigar un ejemplo, reproducirlo y luego estudiar en detalle su funcionamiento, sus reglas y principios. En el caso de Bootstrap y en la mayoría de la tecnología Java EE, hay que tener mucho olfato e intuición porque rara vez los ejemplos funcionan. Esto se debe principalmente a que lo rápido que evolucionan las tecnologías, por ello la importancia de tener conocimientos sólidos de la tecnología Java EE.

En esta entrada voy a compartirles lo que a mi me ha funcionado para poder integrar Bootstrap en un proyecto Java EE para Wildfly 12, Wildfly 12 soporta la versión 2.2 de Java Server Faces. Encontré dos formas de hacerlo, les compartiré ambas.

Pre Requisitos

Java 8
Wildfly 12
Netbeans 8.2 con soporte para JEE
Bootstrap 3.4.1

Pasos para integración, primera opción

1.- Crear un proyecto Maven -> Web Application, llamado test-bootstrap

2.- Descargar Bootstrap 3.4.1  https://getbootstrap.com/docs/3.4/

3.- En el proyecto test-bootstrap. Crear un directorio resources dentro de webapp


4.- Dentro de resources crear un directorio llamado bootstrap

5.- Descomprimir la versión descargada de bootstrap en el paso 3.

6.- Copiar las carpetas css, fonts y js a bootstrap


7.- Renombrar index.html por index.xhtml y copia lo siguiente



Para integrar Bootstrap solo hay que agregar los recursos css y js a nuestros componentes xhtml.

<!-- Bootstrap core CSS -->
  <h:outputScript name="bootstrap/js/bootstrap.js" />
  <h:outputStylesheet name="bootstrap/css/bootstrap.css"/>

Estuve un tiempo confundido con los recursos css y js, se supone que la ruta de estos recursos, en relación al directorio del proyecto es 'recursos/bootstrap/js/bootstrap.js' y 'recursos/bootstrap/css/bootstrap.css'. Sin embargo, debemos verlo como un recurso de java, como si el directorio resources estuviera en nuestro classpath. Hay variantes sobre como leer y cargar los recursos css y js. Esta es la forma que a mi me funciona.

8.- También deberás editar el archivo web.xml, debemos agregar lo siguiente para que el servlet pueda procesar los documentos xhtml




9.- Ejecutar la aplicación, debes algo similar a mi pagina.

Pasos para integración, segunda opción

La segunda opción consiste en tener los arhicos css, js de Bootstrap en un jar y agregarlo como una dependencia mas de nuestro proyecto.

1.- Seguimos  todos los pasos anteriores

2.- Editamos nuestro archivo pom.xml y en la sección de dependencias agregamos lo siguiente


3.- Editamos nuestro archivo index.xhtml, especificamente la sección donde cargamos los recursos css y js de Bootstrap



He agregado el atributo library y el name lo obtuve desde la pagina de webjars, pero el name lo podemos construir analizando la estructura del jar bootstrap webjar.

Con esta opción podemos borrar el directorio resources

Referencia


domingo, 8 de septiembre de 2019

Animales Nocturnos la pelicula

Hace más de una año que un conocido me platicó sobre la película Animales Nocturnos. No soy mucho de ir al cine, mas por falta de tiempo que por falta de ganas o de dinero. El día de ayer entre a Netflix y me alegré de ver que la película está disponible. Una película que ha pasado desapercibido para la mayoría de las personas.
Me he reflejado en la historia, de hecho escribí una entrada hace años Deja de ser un hombre debil Enterarme de que existe una película que aborda parte de mi percepción de la vida me hace sospechar que muchos hombres hemos sido débiles en algún momento de nuestras vidas.

Recomiendo ver la película, poner atención en los detalles hay mucho aprendizaje sobre la vida , mujeres, y relaciones.

Resultado de imagen para animales nocturnos pelicula

La complejidad del desarrollo de Software

Los programadores descubrimos rápidamente que diseñar y construir software es una tarea compleja y muy propensa a errores. Una y otra vez los proyectos de software fallan porque los equipos no están preparados para enfrentar la complejidad del software.

Como resultado, los proyectos no se terminan a tiempo, el costo sobrepasa lo presupuestado, y lo mas lamentable es que muchas veces no entregan valor al negocio.

Si miramos hacía atrás, el desarrollo de software como profesión tiene solo unas cuantas décadas de vida, la demanda ha ido creciendo, el software se hace presente cada día en varias áreas: educación, finanzas, salud, minería, petroleo, gastronomía, banca, seguridad, milicia, automatización, etc,.

Pero... ¿Por qué es tan complejo desarrollar software? Voy a mencionar los puntos que yo consideró que hacen complejo el software, trataré de ordenarlos lo más que pueda.

1.- Se está creando un Software Innovador, Visionario
El desarrollo de Software ha sido la punta de lanza de la innovación de los últimos 60 años. Al construir un Software nuevo uno se adentra en un terreno desconocido, hay limitaciones técnicas y no existe un marco teórico definido, no hay estado del arte. En este escenario no se tiene muy claro lo que se desea o se tiene muy claro lo que se desea pero la tecnología (algoritmos, poder de procesamiento, hardware) existente no satisface al 100%.

2.- No se hace uso de la Ingeniería de Software
xxxxxx

Hace 4 años decidí estudiar un TSU en desarrollo de Software, ha sido un viaje intenso que ya estoy a punto de concluir, en este viaje he conocido múltiples procesos de desarrollo de software y descubierto algunas buenas practicas.

He aprendido como los procesos de desarrollo han estado evolucionando constantemente, el software también evoluciona todo el tiempo. He descubierto también que el desarrollo de software es un proceso colaborativo, varias personas trabajan en diferentes partes del desarrollo del software con el fin de entregar algo que cubra las necesidades del cliente.
El proceso que hoy esta de moda es el Desarrollo Ágil, un proceso que nos permite entregar constantemente mejoras y requerimientos, hoy sabemos que la única constante en el software es el cambio. 

El desarrollo orientado a pruebas (TDD) es una de las buenas practicas que estoy empezando a poner en practica. Aquí una entrada que escribí Usar TDD con criterio


sábado, 27 de julio de 2019

Curso de Java Server Faces

Este año me he metido de fondo en el desarrollo de aplicaciones Web, usando las tecnologías de Java EE. He investigado y practicado mucho, y para mi practica profesional he desarrollado una aplicación Web.
No quiero que todo el esfuerzo que he realizado se desaproveche, lograr mi proyecto terminal fue todo un reto por desconocer la tecnología Java EE, así que estaré documentando todo lo aprendido en este curso de Java Server Faces. Disfrútalo.


lunes, 27 de mayo de 2019

¿Como tramitar el Carnet de Identidad en México?

La digitalización en México va por buen rumbo, hay cambios lentos pero al fin son cambios. Hace 10 años tramitar el Carnet de Identidad era un proceso muy engorroso y burocrático,  tenías que presentarte en un modulo especifico y presentar documentos originales.

Hoy es posible tramitarlo desde cualquier lugar de la república (con excepción si es la primera vez que se tramita).

¿Que documentos se necesitan?

  1. Acta de Nacimiento. Lo puedes descargar e imprimir en linea en https://www.gob.mx/ActaNacimiento/ Hay que realizar un pago eso sí.
  2. Comprobante de Domicilio. Puedes descargar e imprimir el recibo CFE desde el portal de la CFE https://www.cfe.mx/
  3. Pasaporte
Luego debes de solicitar una cita en tu modulo más cercano, puedes llamar al 01 800 433 2000 para agendar la cita.

El día de la cita debes presentarte al menos 10 minutos antes, entregar tus documentos, esperar turno, pasar a tomarte la fotografía y captura de huellas digitales.

Y eso es todo, en unos 10 días más te presentas a recogerla.


miércoles, 22 de mayo de 2019

¿Como subir una aplicacion Java EE a un servidor gratuito?

En la Universidad para mi proyecto de practica me han pedido subir mi prototipo a un servidor en Internet. No tenía idea de como hacerlo, el proceso me tomo al menos un día. Como siempre, me gusta documentar estos procesos que en un principio parecen complicados, documentación que me sirve para reforzar lo aprendido y al mismo tiempo que les sea útil al resto.

He descartado opciones como Google Cloud y Amazon Cloud, ya que mis cuentas de pruebas gratuitas están expiradas. La opción mas practica que encontré fue Servnet Telecomunicaciones  https://app.jl.serv.net.mx/


sábado, 18 de mayo de 2019

¿Como sobrevivir en la CDMX?

Es un hecho que la CDMX es una ciudad caótica, violenta y hostil. Donde impera la ley del más fuerte o donde hay que ser astuto e inteligente para sobrevivir. Aquí algunas de mis recomendaciones para sobrevivir en esta gran ciudad.

Nunca lleves tu billetera en los Pantalones
En lugares donde hay mucha multitud evita llevar la billetera en los pantalones, estos lugares se prestan para que alguien te meta mano y se lleve tu billetera. Recomiendo salir con una Cangurera por delante y ahí guardar la billetera.

No confíes en Nadie
Si alguien se te acerca a brindarte ayuda desconfía de esa persona, muchos se acercan como personas empáticas que desean ayudarte pero llevan una intención oculta. Es preferible que antes de salir investigues lo más que puedas en Internet.

No caigas en provocaciones
Otra técnica de los malandros es provocarte para iniciar una pelea, te pueden provocar dando empujones y es lógico querer ponerse a la defensiva. Recomiendo no caer en provocación, mantener la calma y evitar una confrontación, algunos malandros llevan armas y puedes poner en riesgo tu vida.

No hay respeto por el Peatón
No esperes que te respeten como Peatón, porque no lo van hacer, y no te desgastes haciendo rabia, antes de cruzar una calle aunque el semáforo este en verde para ti, es mejor estar seguro de que se puede cruzar, y si un auto se pasa el rojo, no vas a ganar nada confrontandole, algunos conductores llevan armas y puedes poner en riesgo tu vida.

Evita los lugares peligrosos
La ciudad de México tiene lugares seguros así también lugares muy peligrosos. No te expongas innecesariamente, evita los lugares peligroso. Evita salir después de las 10 de la noche, si quieres rumbear hacedlo en zonas seguras y regresa a casa en Uber.

domingo, 21 de abril de 2019

La Arquitectura del Software

En la industria del desarrollo del Software, en las últimas décadas los conceptos de Arquitectura de Software y Arquitecto de Software ha cobrado relevancia. La ingeniería en Desarrollo de Software es una ingeniería joven y por ello busca similitudes en otras ingenierías, de ahí que haya adoptado los conceptos de la Arquitectura.

Comprender el concepto de la Arquitectura de Software, su importancia y el rol del Arquitecto de Software es fácil. Lo complejo es hacer Arquitectura, es complejo porque es un proceso creativo, abstracto y subjetivo.

¿Qué es la Arquitectura del Software?
La arquitectura del Software es el diseño fundamental de todo el sistema de software. Este diseño define los elementos que componen el sistema, que funciones realiza cada elemento, y como estos elementos se relacionan unos con otros. Es una representación de toda la estructura del sistema y de como cada uno de los elementos trabajan en conjunto.
La arquitectura del software forma parte del diseño del sistema, al definir una arquitectura de software se debe considerar los siguientes factores:

- EL propósito y objetivo del sistema,
- La evolución del sistema en el tiempo
- La audiencia y usuarios finales del sistema
- Las características que sean más relevantes para los usuarios, y
- El lugar o contexto donde el sistema estará funcionando.

Los elementos que componen el sistema dependerá del tipo de sistema y de la dimensión del sistema, así los elementos de un sistema pueden ser:

- Bases de datos
- Archivos de Configuración
- Modulos
- Librerias (jars, ddl, jni)
- APIs (commons, utils, persistencia, colecciones)
- Web Services (REST, SOAP)
- Otros sistemas, sistemas legados
- Clases e Interfaces

Una arquitectura de software debe ser documentada, evaluada y probada.

Referencias
MacCormack, A., Rusnak, J., & Baldwin, C. (2007). Exploring the duality between product and organizational architectures: A test of the “mirroring” hypothesis. [Working paper 08-039]. Boston, MA: Harvard Business School. Retrieved from http://www.hbs.edu/faculty/Publication%20Files/08-039_1861e507-1dc1-4602-85b8-90d71559d85b.pdf

Van der Linden, F. J., Schmid, K., & Rommes, E. (2007). Software product lines in action: The best industrial practice in product line engineering. Berlin, DE: Springer. [Books24x7 version]. Available from http://common.books24x7.com/toc.aspx?bookid=31005

miércoles, 10 de abril de 2019

Mi regreso a Mexico

Después de 10 años regreso a México, con otra perspectiva, y por supuesto que se me ha pegado una que otra costumbre foránea. Encuentro un país con una economía monstruosa que avanza muy lento pero avanza, un país en donde las oportunidades se están dando más que nunca, y mas nos vale saber aprovecharlas porque quizás sea la ultima oportunidad.
Se nota la calidez del Mexicano, aun hay personas alegres a pesar de la terrible inseguridad que se está viviendo. Siempre lo he dicho, lo bueno y malo de México es la gran diversidad que tienen...espero recorrer todo México.



Lo bueno,


La telefonía está muy muy barato, por menos de 10 USD tengo Internet para todo el mes. Aaaah y ya hay portabilidad

La calidez de las personas... se siente bien realizar un tramite, ir al supermercado, o ir a la tiendita de la esquina y que te reciban con una sonrisa y que te miren a los ojos (obvio si es una chiquilla :P)

Salir a rumbear es muy muy barato, por unos 50 USD me puedo ir de rumba :P, alcanza para las chelas, el uber y el cover.

El ambiente de las rumbas es contagiosa, uno sale a pasarla bien, incluso si se anda solo.

Me asombra lo practico que es comer, tienes muchas opciones, barato, caro, tacos, platos, etc,. Mucha mucha comida, cuidado porque se puede subir rápidamente de peso.

El metro y metrobus funciona y es barato.

Museos, museos muchos museos.

Lo malo

La mayoría de los Mexicanos siguen siendo unos huevones, esperando a que el gobierno les venga a solucionar la vida.

Hay muchas empresas que aun son muy muy ineficientes, no tienen planes de contingencia, no se preocupan por el cliente, no mejoran sus procesos y asi...

Aun hay mucha pobreza, vendedores ambulantes en el metro,

Falta mucha organización de la sociedad, organizarse para construir un mejor lugar en el que vivir, para los nuestros y para nuestros hijos.

El pago con Tarjetas encuentra mucha resistencia, los servicios bancarios aun son caros, hay mucho por avanzar aquí.

Después les daré algunos tips para ahorrar y sacarle provecho a todo.


domingo, 10 de febrero de 2019

Errores Comunes con JPA

En los últimos meses he estado depurando una aplicación Swing que hace uso de JPA para la persistencia de datos. La integración presenta múltiples violaciones a las reglas de uso impactando en el rendimiento y confiabilidad de la aplicación.
En esta entrada voy a compartirles algunos errores muy comunes en el uso de JPA, conocerlos te ayudará a ser un mejor Ingeniero de Desarrollo de Software, creando aplicaciones de calidad, que siempre estén disponibles, haciendo más felices a los usuarios finales.

El ciclo de Vida de un EntityManager

Debes tener muy claro cual será el ciclo de vida de un EntityManager, recuerda que un EntityManager tiene asociado una cache (JPA First Cache). Un EntityManager es un objeto ligero, crear instancias no consumen mucho recurso, así que puedes crear tantas instancias de EntityManager requieras.
Una vez que termines de usar tu instancia EntityManager debes de cerrarlo explicita mente llamando al método close. No hacerlo puede dejar conexiones abiertas y no liberar la memoria ocupada por el cache. Algunos servidores tienen un máximo de conexiones permitido, al alcanzarlo el servidor se puede bloquear.
En cuanto a la cache, la aplicación se puede quedar sin memoria disponible causando una excepción del tipo Java Heap Space, cerrar el EntityManager libera el espacio ocupado por el cache.
No hay una regla especifica para decir el ciclo de vida de un EntityManager, pero ten presente la cache asociada y cerrar el EntityManager una vez que decidas terminar el ciclo de vida.
En una aplicación Web es un poco distinto porque es el contenedor Web quien gestiona el ciclo de vida de forma automática, el decide cuando crearlos y cuando cerrarlos.

Continuará...