• DevOps

    HAProxy, enrutar por host de dominio

    A lo largo del año, suelo construir muchas aplicaciones, ya sean soluciones trabajadas o pruebas para aprender algo nuevo. En muchas ocasiones, necesito disponer de un servidor web para alojar estas aplicaciones y la verdad es que como cualquier mortal no quiero gastar mucho dinero. Por este motivo tengo un servidor económico (de 5 o 6 Euros), y voy publicando aquí todos estos proyectos web accesibles desde diferentes dominios. Cuando comencé a hacer esto me encontré con el problema de que necesitaba poder enrutar diferentes dominios/hosts a los diferentes puertos de cada proyecto, ya que por defecto todo lo que entra al servidor web accede por el puerto 80. A…

  • DevOps

    Ejecutar un proceso de Java como un servicio en Linux

    Por necesidades de un proyecto en el que estoy trabajando, debía ejecutar un proceso de Java como un servicio en Linux (ubuntu 16.04.2 – xenial). No es complicado, pero seguramente se me olvidará cuando pase el tiempo, y es por eso que lo voy a compartir aquí. Crear un fichero en /etc/init.d/ y pegar el código de ejemplo que hay más abajo. Modificar las variables SERVICE_NAME, JAR_PARAMS, PATH_TO_JAR y seleccionar un PID_PATH_NAME que almacenará el servicio de forma temporal. Modificar los permisos de ejecucuón del fichero creado: sudo chmod +x /etc/init.d/myservice Probamos la ejecución: sudo service myservice start Probamos la detención: sudo service myservice stop Probamos el reinicio: sudo service myservice restart…

  • DDD,  Producto

    El Product Owner, ese gran desconocido.

    Los nuevos tiempos traen nuevas profesiones, nuevos puestos y la modificación de perfiles y posiciones ya existentes. Es indudable de que hay que adaptarse constantemente, incorporando nuevos conocimientos que nos permitan seguir siendo competitivos profesionalmente. UX Researcher, Visual Designer,  Interaction Designer, Product Optimizator… relacionado en el contexto de User Experience. Business Developer, Product Manager, Product Owner… relacionado en el contexto de Producto y un largo etcétera. Hoy quiero hablaros del Product Owner. No existe un perfil predeterminado y cerrado que defina al Product Owner, depende del tipo de proyecto, la misión/visión y las necesidades de la compañía. No obstante voy a intentar hacer una radiografía según un criterio muy personal de algunos aspectos que considero debería tener el…

  • Clean Code,  Java,  OOP

    Object Calisthenics

    Desde finales de 2015 comencé a interesarme mucho por escribir código más limpio y comprensible, esto me llevó a leer diferente bibliografía al respecto, libros, artículos, opiniones. Durante este proceso descubrí que existen infinidad de conceptos y reglas que ayudan a los desarrolladores a conseguir que su código sea bello. Aunque todos los conceptos que he ido descubriendo se basan en el sentido común, la realidad es que poco se aplican en el mundo real, lo que me lleva a pensar que el sentido común es el menos común de los sentidos. Hoy os hablaré de la Calistenia de objetos (Object Calisthenics), si, suena raro, ¿qué es la calistenia?. Según wikipedia: La calistenia es…

  • Clean Code,  Java,  OOP

    Tell, don’t ask!

    “Tell, don’t ask” nos recuerda que no debemos usar los objetos para pedirles cosas y tomar decisiones después, lo que debemos hacer es decirles a los objetos que hagan cosas para que éstos internamente tomen sus propias decisiones según su estado. Si lo hacemos bien, evitaremos un acoplamiento entre objetos, conseguiremos sistemas mas robustos y escalables. Y es que un objeto se define por su comportamiento. Por lo tanto, cuando hablamos de «Tell, don’t ask» hablamos de cohesión, y se refiere principalmente al grado de cercanía entre los elementos de una clase (objeto). Una cohesión alta se asocia con aspectos como la robustez, la fiabilidad, la reutilización y la comprensión. Por el contrario, una cohesión débil…

  • Clean Code,  OOP

    Law Of Demeter (LoD)

    Si buscamos en google «ley de demeter» el primer resultado que nos encontramos nos indica: La ley de Demeter es un principio básico de la programación orientada a objetos. Sorprende al conocerlo su gran utilidad, sus resultados en proyectos de todos los tamaños y el poco conocimiento que la comunidad de desarrolladores tiene de su existencia. 7 ene. 2008 Curioso, ciertamente estos principios no son todavía muy conocidos en la comunidad de desarrolladores, por este motivo, hace unas semanas decidimos hacer un pequeño workshop en el equipo en el que trabajo para dejar claro de qué se trata y cuales son éstos principios. Si buscamos la definición de «ley de demeter»…