Un lugar llamado Pacueco

“Al otro lado del puente de La Piedad Michoacán…” Muchos hemos escuchado la canción del Perro Negro, y la asociamos a La Piedad Michoacán y ¿Cómo no hacerlo? Si así empieza, pero en realidad, hace referencia al otro lado del puente, a Santa Ana Pacueco ¿PA’ QUÉ? PA-CUE-CO…

Un poco de historia, La Piedad Michoacán llegó a ser reconocida como la capital del cerdo, y es que, en algún momento de la historia, fue el mayor productor de cerdos en el país, la realidad es que Santa Ana Pacueco y La Piedad, siempre han ido juntos y en la producción de cerdos también fue lo mismo, había muchos cerdos en La Piedad, pero también, había muchos en Santa Ana, muchos de niños nos preguntábamos ¿Qué significa Pacueco? Y nuestra conculsión de niño era simple: Pacueco igual a pa’ Puercos; hoy en día las cosas han cambiado, ahora es tan fácil ir al Google y preguntarle ¿Qué significa Pacueco? Pacueco es una palabra purépecha y significa: donde corva (da vuelta) el río, el río Lerma, el río que separa y une a Michoacán y a Guanajuato, el río que separa y une a medio país (dato curioso, en La Piedad existen varios puentes que comunican a Santa Ana con La Piedad uno se llama: Michoacán y otro Guanajuato).

Cuando yo era un poco más joven, y estudiaba fuera me preguntaban ¿De dónde eres? Respondía de La Piedad, y cuándo me preguntaban ¿Dónde está eso? Decía, “Si ves un mapa con división política, La Piedad se encuentra donde se juntan Michoacán, Guanajuato y Jalisco”; a principios de este año, las oficinas de Girasolo se mudaron de La Piedad a Santa Ana, Santa Ana Pacueco, es una pequeña población que pertenece al municipio de Pénjamo Guanajuato, a principios de este año, también decidimos separar a Girasolo en dos divisiones: Girasolo todo lo relacionado a comunicación y BigPink todo lo relacionado a tecnologías de la información.

Captura de pantalla de la página http://www.brimalog.com (en producción).

Mientras hacíamos investigación para un proyecto nuevo, encontré que varias páginas y plataformas, en el footer decían “Made with love in NY” y surgió una idea ¿Por qué no poner un “Hecho con amor en Pacueco Mx” como firma a todos nuestros desarrollos?

Captura de pantalla de propuesta web para el proyecto de Safe-T

Pero ¿Por qué elegir Pacueco para firmar? Pues bien, más allá del significado literal  de Pacueco, Pacueco para mí significa esa unión (Guanajuato y Michoacán), pero representa también una palabra física, para darle nombre a ese espacio donde se unen diseño y programación, comunicación y funcionalidad, Pacueco, representa pues, un montón de sueños.

Y hablando de sueños, aprovechamos para desearte de parte del equipo de Girasolo y BigPink un grandísimo año, que sea el año para tus sueños. ¡Felicidades!

@ChenBrimac
chen@girasolo.com
www.girasolo.com
www.ThinkBigPink.com

Buenas prácticas de programación en BigPink

La mayoría hemos escuchado sobre la importancia del trabajo en equipo, cómo aumenta la eficacia y calidad de los resultados, cuando trabajas en equipo con programadores que tienen distintas habilidades y talentos, es de suma importancia buscar que la forma de programar se estandarice y no se convierta en una complicación innecesaria; para ello, es recomendable establecer y seguir una serie de buenas prácticas.

A continuación, te platicaré algunas de las buenas prácticas que implementamos en BigPink.

  • Legibilidad en el código.

La legibilidad es muy importante, debes escribir tu código, pensando que cualquier programador lo pueda comprender, además, ten en cuenta que entre más complejo sea tu código, más difícil resultara dar mantenimiento en el futuro.

  • Leer código fuente.

Escribir código fuente es mas fácil que entender el código escrito por otros, muchas veces nos encontramos con código desordenado, o con la documentación de código incompleta, por eso, leer código fuente te ayudará a entender la diferencia entre código de buena o mala calidad, también, te ayudará a mejorar tus habilidades de programación.

  • Estructuras de control e indentado.

Con tu equipo de trabajo, deberán acordar un estilo de sangría en su código, para tabular o delimitar bloques de código, con esto harán que su código sea más fácil de leer.

  • Valores fijos.

Cada vez que tengas un valor concreto en tu código, el valor debe ser almacenado en una constante, así, ayudarás a reducir el mantenimiento ante cualquier modificación que afecte la estructura.

  • Comentarios en el código.

Los comentarios en el código, deben ser para favorecer la comprensión del código y no para introducir mayor complejidad en su entendimiento, realiza los comentarios por bloques, cuando consideres importante reflejar la importancia de alguna línea en tu código, puedes agregar comentarios al final de esta.

  • Caracteres únicos del español.

Procura escribir código en inglés y que tu teclado esté configurado en este idioma, ya que caracteres como la ñ o las tildes pueden generar errores al no ser caracteres ASCII.

  • Testear el código.

Siempre debes estar realizando este paso, incluso, después de haber realizado un pequeño cambio en tu código, de esta manera, evitarás frustraciones futuras al momento buscar un error.

  • Tamaño del código.

La longitud de un método no debe exceder 100 líneas de código sin causa justificada, recuerda que siempre puedes hacer uso de un método dentro de otro. Por línea, evita la incorporación de más de una instrucción que rebase los 80 caracteres.

  • Compartir.

Compartir conocimientos ya sean técnicos o profesionales con tus compañeros, motiva a que se puedan ayudar mutuamente a mejorar y logra que el trabajo en equipo funcione mejor.

  • Investigar cosas nuevas.

Es muy importante que te intereses en los temas a aprender, que tengas inquietudes al respecto y que, fundamentalmente disfrutes programando. Existen muchas herramientas y plataformas que te pueden ayudar a expandir y mejorar tus conocimientos, siendo productivo(a) y de una forma divertida, sin generar estrés y aburrimiento.

La programación requiere de paciencia y resistencia a la frustración, tal vez, el trabajar con código ajeno o tratar con datos desactualizados puede dificultar tus tareas asignadas, pero debes perseverar y seguir adelante.

Andrea Adriana Hernández
www.girasolo.com
www.ThinkBigPink.com

Importancia de GIT

Dentro del desarrollo de software existen distintos tipos de herramientas que nos ayudan a solventar alguna necesidades específicas, las cuales facilitan la parte de desarrollo, implementación, despliegue, documentación, o testing. El día de hoy yo les hablaré de una herramienta para desarrollo de software profesional que nosotros internamente usamos en cada uno de nuestros proyectos, GIT.

Pero para poder hablar de git, primero tenemos que saber qué es, de dónde surge y cuál es su función.

Git es un sistema de control de versiones, el cual es distribuido, es decir, que bajo un mismo proyecto múltiples programadores pueden trabajar y desarrollar en conjunto. Es de código abierto así que es totalmente gratuito, se puede adaptar fácilmente a un proyecto pequeño así como a uno grande, cuenta con una gran documentación en la web y es muy usado por los programadores, es una herramienta muy útil a la hora de hacer correcciones a bugs y documentación de proyecto ya que cuenta con una línea del tiempo de desarrollo.

Git es un sistema multiplataforma, lo que quiere decir que podemos usarlo con Windows, Linux o Mac OS. Git también cuenta con plataformas de desarrollo colaborativo, o también llamadas red social de los desarrolladores, donde se alojan los repositorios, el código se almacena de forma pública pero se puede hacer privado con una cuenta de pago, algunos ejemplos de esto son github.com o gitlab.com.

En el caso de nuestra empresa, nosotros usamos git y lo combinamos con el uso de gitlab ya que este nos ayuda a hacer CI/CD (continuous integration / continuous delivery) que son terminos muy utilizados en el DevOps.

Para ponerlos un poco más en contexto CI es un proceso en donde cada cambio que realizamos en nuestro código debe ser testeado y verificado por las pruebas que hemos escrito con anterioridad.

CD es el mismo proceso anterior, solo que de una manera más automatizada y además nuestros tests de aceptación o acceptance tests deben ser de una gran calidad. Porque Continuous Delivery se asegura de que cada cambio realizado esté listo para ser lanzado a producción.

Para trabajar eficientemente con git es necesario tener un gitflow eficiente pero, ¿qué es un gitflow?, según la pagina oficial de Github https://github.com/doapps/software/wiki/Gitflow.

Gitflow es un flujo de trabajo de basado en git que fue publicado y popularizado por Vincent Driessen. El flujo de trabajo de Gitflow define un modelo de ramificación estricto, diseñado en torno a la versión del proyecto. Esto proporciona un marco robusto para la gestión de proyectos grandes.

¿Por qué usar Gitflow?

Por los siguientes motivos:

  1. Desarrollo Paralelo
  2. Colaboración
  3. Área de puesta en escena de la versión
  4. Soporte para reparaciones de emergencia

Nuestro gitflow es uno de los más estándares, comenzamos con dos ramas principales que son máster y develop, la rama máster está protegida y nunca se sube nada directamente a ninguna de estas cuando se va a realizar una nueva funcionalidad. Nunca se trabaja sobre ninguna de ellas lo que se hace es posicionarse en develop, actualizar con el repo remoto y después crear otra rama en la que se trabajará con el prefijo feature, una vez terminas la funcionalidad se sube esa nueva rama al repo remoto para ser revisada por medio de pipelines, y de ser aprobada, se integra con develop.

Cuando se va a corregir un bug el proceso es bastante parecido, solo que en lugar de feature se usa el prefijo Hot-fix, cuando el proyecto esté listo para mandarse a producción se hace un merge entre develop y máster para crear la primer versión o relace esto se repite conforme a los relace que son lanzados.

Como pueden ver, git es una herramienta muy útil para los desarrolladores que cuando es manejada debidamente, acorta tiempos de desarrollo y ayuda con la gestión de software, en el siguiente enlace les dejaré algunos de los comandos que son más usados en git por si les interesa.

https://github.com/miguel199529/Notas/blob/master/GIT.md

Miguel Ángel López
www.girasolo.com
www.ThinkBigPink.com

¿Qué es DevOps?

¿Alguna vez has escuchado hablar sobre DevOps? existen varios puntos de vista sobre el término DevOps ( Develop / Operations ), pero la gran mayoría coinciden en que es una cultura que promueve la comunicación entre el departamento de desarrollo (Development) y el departamento de Administración de sistemas (Operations). 

La cultura DevOps tiene como objetivo acelerar la entrega de software de manera ágil asegurando la calidad del software, todo esto, por medio de buenas prácticas, herramientas de integración de código, pruebas automatizadas, administración de infraestructura, etc.

Las prácticas más populares de la cultura DevOps son las siguientes:

Infraestructura como código: Infraestructura como código es un método de automatización que está basada en prácticas de desarrollo de software. Los cambios realizados a los sistemas y sus configuraciones específicas son bien definidas y capturadas en archivos de configuración (scripts, playbooks, manifests, módulos).

Integración continua ( CI ): La integración continua es una práctica de desarrollo de software mediante la cual los desarrolladores combinan los cambios en el código en un repositorio central de forma periódica, tras lo cual se ejecutan versiones y pruebas automáticas.

Entrega continua ( CD ): La entrega continua es una práctica de desarrollo de software mediante la cual se preparan automáticamente los cambios en el código y se entregan a la fase de producción.

Herramientas DevOps más populares: Red Hat Ansible, Jenkins,Terraform, Chef, Docker, GIt, GitLab, Kubernetes, Nagios, Puppet.

DevOps en BigPink

Nosotros en BigPink adoptamos una cultura DevOps que va desde la configuración de los proyectos, testing y pruebas de integración de código hasta entornos automatizados con despliegue continuo ( continuous delivery ), para ello, implementamos las siguientes practicas y herramientas:

Configuración de proyectos: Todos los proyectos son configurados con GIT como sistema de control de versiones de software, así como el uso estricto de linters para detectar errores de estilo y mantener el código limpio.

Infraestructura como código (IaC): Toda la infraestructura la manejamos como código por medio de configuración de plantillas cloud formation para Amazon Web Services. 

Integración continua (CI): Para la integración del código utilizamos GitLab como plataforma de repositorios privados en donde por medio de Pipelines ejecutamos varias pruebas (build, linters, testing, etc.) para asegurar la calidad antes de que el código sea integrado en el repositorio central.


Entrega continua (CD): Para lograr la entrega continua se automatiza el despliegue de nuestros proyectos por medio de Pipelines programadas en GitLab que se conectan a nuestra infraestructura previamente montada en Amazon Web Services, una vez pasadas las pruebas de integración del código.

Edgar Leyva
www.girasolo.com
www.ThinkBigPink.com

La paradoja de la creatividad

Cuando pensamos en alguien creativo, pensamos en alguien capaz de ir más allá, alguien que no tiene límites, alguien, incluso, que no tiene reglas, parece pues ilógico que, para generar ideas, sea necesario tener una frontera, marcarnos ciertos límites, para poder pensar fuera de la caja, necesitamos precisamente una caja.

Por segundo año consecutivo estamos realizando el Inktober en la oficina, como reto adicional, he decidido llevar uno paralelo en un blog personal de tiras cómicas que durante los últimos 3 años ha tenido solo 10 entradas, en otras palabras, ha estado abandonado  y es que, no he tenido la motivación, ni las ideas suficientes para poder actualizar más seguido, por lo tanto, tener 31 entradas durante un mes parece una misión imposible; la realidad, es que al día de hoy llevo más de 20 ideas, he podido tener ideas tanto para mi blog como para el blog de la oficina, ¿Cuál ha sido la diferencia entre este mes y los 3 años anteriores? Sencillo: tengo un tema, tengo una caja.

Cuando se está buscando una idea creativa para un proyecto, es común escuchar la frase: “Piensa fuera de la caja”, y ¿Qué es pensar fuera de la caja? ¿Lo que estoy pensando estará dentro de la caja o estará fuera de la caja? Resulta fascinante que, una vez teniendo una caja, el cerebro buscará examinar toda la caja, todas las posibilidades para ver que sus ideas realmente caigan fuera de la caja, pero ¿Qué es la caja? La caja son todos los antecedentes del proyecto a realizar, la caja, es también, una serie de reglas y compromisos.

Existe un experimento, donde llevaron a un grupo de niños a jugar en un parque grande, sin cercas ni barreras, los niños, únicamente jugaron en un área pequeña de todo el parque, no exploraron, después, ese mismo grupo de niños, fueron llevados a un parque de similar tamaño, los niños, esta ocasión, jugaron por todo el parque, exploraron cada rincón, se divirtieron más, incluso, generaron más ideas para jugar, ¿Cuál fue la diferencia? El segundo parque tenía cercas.

Parece ilógico, pero, las reglas o las barreras nos hacen en realidad más creativos, y esa es la paradoja de la creatividad, ¿Quieres tener un equipo más creativo? ¿Quieres generar más ideas? Entonces comienza definiendo la caja, las reglas.

@ChenBrimac
chen@girasolo.com
www.girasolo.com
www.ThinkBigPink.com

Resiliencia

La RAE define esta palabra de la siguiente manera:

Definición de resiliencia (fuente RAE)

Y más que enterarles de la definición, voy a hacer spoiler del inktober número trece que me tocó realizar para este reto de ilustración al que varios de Girasolo entramos. Solo espero que de aquí a entonces no se generen altas expectativas porque, en realidad, es un sencillo sketch. El tema era ceniza (de la lista oficial en inglés, ash), había varias opciones en mi mente pero decidí quedarme con la idea de representar  el famoso Ave Fénix, que renace de sus propias cenizas.

A esta criatura de fuego, cuyo origen se encuentra en la mitología griega, se le atribuían dones tales como, poseer lágrimas curativas, fuerza sorprendente, control sobre el fuego y sabiduría infinita. Al autor Carl Jung esta criatura le resultaba muy parecida al ser humano y era también desde su perspectiva, la descripción gráfica de la palabra resiliencia, pues representa la capacidad de renovarnos y convertirnos en una nueva versión más poderosa e iluminada.

Considero muy acertada la comparación de Jung y como con este mito ejemplifica a lo adverso, que aparentemente te deshace, como una oportunidad para terminar siendo una versión potenciada de ti mismo. Y pues nada, gracias por pasar a leer, deseo que vuelen por la vida como estas aves de fuego.

Eva Gómez | Dirección de arte
eva@girasolo.com
www.girasolo.com
www.ThinkBigPink.com

Año del Cerdo 2019

Como cada año la Expo Pecuaria se encarga de organizar la única feria promocional al consumo de carde de cerdo y nosotros somos orgullosamente los encargados de darle imagen a este tradicional evento.

Año con año Girasolo y el equipo de diseño tiene la tarea de hacer que tú como consumidor, conozcas un poco más de toda la industria porcícola. El 2019 es un año tiene un particular evento cultural, el Año del Cerdo en el horóscopo Chino.  

En la antigua China, para enumerar los años se aplicaba el uso de los títulos de los emperadores y del sistema celeste ganzhi, así en el año 2937 a.C. se elaboró el primer calendario lunar chino, según el cual cada signo consta de 60 años –tiempo del reinado del Emperador Amarillo-, distribuidos en cinco ciclos de doce años cada uno. Fue a partir de la dinastía Han del Este (25-220), cuando los chinos comienzan a usar los doce signos de animales en orden –Rata, Buey, Tigre, Conejo, Dragón, Serpiente, Caballo, Cabra, Mono, Gallo, Perro y Cerdo–.

Según cuenta una leyenda, Buda mandó llamar ante su presencia a todos los animales de la Tierra, sin embargo, únicamente doce aparecieron ante él. El primero en hacerlo fue la rata, ya que al ir posada sobre el lomo de un buey, nada más ver a Buda, dio un salto y corrió hacia él.

La rata representa, pues, el primer año y los demás tienen las características del resto de animales que llegaron tras ella. Como es lógico, el buey fue el segundo, siendo el cerdo el último.

Los chinos creen que el horóscopo influye configurando el carácter y el cerdo  es un animal sincero, honesto, confiado, educado, cariñoso, servicial, valiente, decidido, con gran fuerza de voluntad. Son muy agradables, tienen buen gusto y buenos modales. A parte consumir carne de cerdo te aporta minerales esenciales como el potasio, fósforo, zinc y hierro, así como vitaminas del grupo B.

Entonces, si el 2019 es el Año del Cerdo y esto sólo pasa cada 12 años,  te aporta un chorro de beneficios y sobre todo es el animal más reconocido por los piedadences. ¿por qué no darle a nuestro cerdito de la Expo Pecuaria la oportunidad de celebrarlo?

Para conmemorarlo, se utilizaron diferentes texturas que nos hacen referencia al papel y como todos sabemos, se inventó en China por Ts`ai Lun, el primero en organizar la producción el papel a gran escala y se las arreglo para conseguir las patentes exclusivas. También  se usa una tipografía que si bien no es china, te recuerda definitivamente a esta amplia y hermosa cultura.

Sabemos que estamos en nuestro precioso México pero no queríamos dejar pasar esta oportunidad de disfrutar y conocer el Año del Cerdo.

Lú C. Carbajal
C. O. Comunicación
lu@girasolo.com
http://www.girasolo.mx