• Programación

    No dejes que tu código decida

    O al menos no lo dejes decidir todo el tiempo 🙂 Una de las cosas más difícil de la Programación Orientada a Objetos es mantener el foco en generar un buen código y no perderse en la tentación de generar un mar de condicionales (a.k.a. if’s). Es este artículo la idea es mostrar al lector que es posible generar código que no contenga condicionales, o sea al menos que sean pocos. El problema con tener condicionales es que nos genera caminos alternos; cada camino puede tener su propia consecuencia; por lo que cada vez que queremos probar, debemos hacerlo por todos los caminos posibles. Si tenemos condicionales anidados la cantidad de…

  • Programación

    Métricas para mejorar nuestro código

    Unas de las tareas divertidas que me toca hacer durante el día es el Code Review de varios proyectos. Es una práctica que utilizamos a diario en Patagonian Tech porque nos permite ayudar a los más nuevos a crecer como programadores y a su vez a mantener los productos que desarrollamos para nuestros clientes con un nivel bajo de errores. Humor: posible métrica para evaluar el buen código. El otro día estaba haciendo un review a uno de mis compañeros, el código no tenía falencias en su lógica, tampoco en su sintaxis. Luego de mirarlo una y otra vez me puse a pensar que “sonaba complicado”. El fragmento de código en…

  • Android,  Programación

    Minimizando dependencias en Android

    Es común que cuando nos encontramos frente a un problema lo primero que atinamos es a buscar una biblioteca que ya provea una solución. Si bien es una buena práctica (Don’t repeat yourself) muchas veces esta solución trae más problemas a futuro que soluciones. Un caso particular que se suele ver mucho en Android es la necesidad de hacer la experiencia del usuario más rica, de darle más información en pantalla. Para ellos agregamos toda clase de detalles a nuestras UIs, y como escribir vistas desde cero suele ser complejo, terminamos incluyendo una biblioteca como dependencia seleccionada de alguna de las opciones populares. En general estoy de acuerdo con esa…

  • Agile,  Programación

    “Funciona” no es suficiente.

    No es raro en esta profesión, al revisar el trabajo de otro encontrarse con algo que no es del todo semánticamente correcto o que puede escribirse de mejor manera. Tampoco es raro que nos digan “pero así funciona”. Funciona no es, o no debería al menos, ser suficiente. En el desarrollo de software existen muchos otros factures a considerar a futuro que no siempre tienen que ver con el funcionamiento actual de la aplicación : ¿el código se entiende?, ¿es eficiente?, ¿es fácil de extender si debemos agregar funcionalidades?. Quizás el aspecto más importante desde el punto comercial es que tanto cuesta corregir un error detectado, ya que en códigos escritos…

  • Android,  Programación

    Hacer Aplicaciones Android Mantenibles

    Una de las cosas más complicadas a lo largo del tiempo es poder mantener el código fuente de una aplicación Android en un nivel de simplicidad que nos permita a futuro introducir nuevas mejoras, arreglar errores de manera más simple o solamente poder leer el código y decir “ah, si, esto es lo que hace acá”. No siempre lo logramos, ya sea por impericia (todavía no sabemos hacerlo mejor) o por tiempo (nos apuran y en lugar de pensar la mejor manera simplemente escribimos el primer código que se nos ocurre para lograr sacar en tiempo la aplicación). En general los problemas de impericia se solucionan con capacitación, lectura y…

  • Yo Estuve Ahí

    III Semana del Emprendedor Tecnológico Rionegrino 2015

    La semana que viene voy a estar en la III Semana del Emprendedor Tecnológico Rionegrino 2015 presentando un proyecto en el que venimos trabajando hace unos meses con mi primo y unos amigos. Lo que más me divierte de este proyecto es que no es software, sino un producto tangible, que por una vez en la vida se lo puedo tirar por la cabeza a quién lo critique 🙂 (con los DVDs podía hacerlo pero si justo tienen algo de filo puede ser mortal y no es la idea). Luego del encuentro la idea es publicar la experiencia en este tipo de eventos, comentar que cosas interesantes vimos y que…

  • Programación

    Tablas rápidas para Grails

    Si hay algo odioso cuando hay que hacer una interfaz de administración, es armar la lista para cada modelo del dominio para los AMBs. Esta semana me tocó mejorar el diseño para una aplicación grails, por lo que decidí ver como se podían generar «helpers» o TagLibs en nomenclatura grails. El siguiente código genera usando bootstrap3 una tabla con paginado, botón de editar y eliminar de forma genérica: package test class ResourceTableTagLib { /** * Creates a bootstrap3 compatible datatable. * * @emptyTag * * @attr list REQUIRED List of domain models to show * @attr count REQUIRED Total registers (for pagination) * @attr labels REQUIRED Comma-separated values for the…

  • General

    10 hechos sobre los programadores que deberías conocer

    El otro día leyendo el artículo «Ten hilarious programmers facts that only programmers can understand» me dí cuenta que muchas de las respuestas que doy siempre están reflejadas en estos simples hechos, por lo que decidí hacer una traducción libre y criolla del asunto. A continuación, mis «10 hechos sobre los programadores que deberías conocer» Hecho #0 Empezamos a contar desde 0, no desde 1. Desde nuestros primeros pasos nos encontramos que todo lo que tiene «posiciones» arranca de 0, es por eso que se nos hizo costumbre. Hecho #1 Los programas que usas, son como una cámara de una rueda de tu bicicleta. Anda, se infla, rueda. Pero puede…

  • Programación

    Volviendo a PHP

    Hace fácil 5 años que no hago nada serio en PHP, empezando desde cero. Mayormente me ha tocado retocar cosas andando o parchar bugs boludos. Sin embargo el otro día tuve que hacer un demo chiquitito en PHP. El principal limitante era el tiempo, por lo que tenía que hacerlo rápido. Al principio intenté el viejo HTML+PHP all-in-one con ifs $_GET, $_POST, etc. Una locura, no podía avanzar. Mi mente me decía «esto va en el controlador, esto en el view» :D. Borre todo y empecé de nuevo. Pensé dos segundos y dije «tiene que haber algo». No, CakePHP no es ese «algo». Era mucha config al pedo, bloated y…

  • Programación

    Mejorando el «Doble panel» en Android

    Siguendo con la serie de casos en mejorar las interfaces en Android, esta vez le toca al doble panel que solemos ver en las aplicaciones cuando las usamos en una tablet. No voy a entrar en detalle de cómo implementar un doble panel con Fragments ya que en la web hay más que suficiente información para hacerlo. De lo que si vamos a hablar es de cómo mejorar el aspecto y darle al usuario una mejor experiencia. Para lograr esto lo que vamos a hacer es copiar lo que hacen Google con sus aplicaciones, com Gmail o la misma aplicación de Contactos que viene en IceCream Sandwich y que se…