• Desarrollo

    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…

  • Desarrollo

    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…

  • Desarrollo

    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…

  • Desarrollo

    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…

  • Desarrollo

    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 Es curioso que estos principios no sean todavía muy conocidos en la comunidad de desarrolladores, por este motivo, hace unas semanas decidimos hacer un pequeño workshop con 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…