Otro año toca a su fin y las vacaciones Navideñas señalan el preludio de su ocaso. Este ha sido un año especialmente duro para mí, repleto de cambios en el ámbito personal y profesional, y no siempre con el tiempo que me hubiera gustado tener para poder publicar. Aunque mi actividad no se ha detenido, sí que he tenido que aminorar bastante el tema de la publicación en detrimento de ciertos proyectos software en GitHub.
Agradezco especialmente el aumento de comentarios durante este año, que me hacen ver que hay gente al otro lado, y especialmente agradecer aquellos comentarios que simplemente eran de agradecimiento por la utilidad de alguna de las entradas. Se agradece un montón y me anima a seguir ahí aunque sea a un ritmo mucho menor 🙂 .
Quizás la canción más representativa de lo que ha sido este año para mí, pueda ser la de Karma que os dejo a continuación:
A veces nos vemos afectados por muchas cosas y parece que el Karma no está por ningún lado, pero solo hay una forma correcta de hacer las cosas y es hacerlas bien 😉 .
Sólo me resta desearos con mis mejores deseos ¡Felices Fiestas! (para los agnósticos y atéos), ¡Feliz Navidad! (para los creyentes) y ¡Feliz Año 2019! (para TODOS 😉 ). ¡Nos vemos a la vuelta!
Firefox es un excelente navegador que ha mejorado bastante desde su resurgimiento con la versión 54 que traía un increíble rediseño que por fin permitía quitarse a Firefox los años de desarrollo que tenía a sus espaldas y así limpiar su factura técnica completamente con el lanzamiento de Firefox Quantum (versión 57). Desde entonces no ha parado de correr hacia adelante para intentar arrebatarle el trono a Chrome.
Desde esa versión 54 con la que Firefox llamó mi atención en junio de 2017, fue desplazando a Chrome como mi navegador predeterminado, tanto en mis equipos personales como móviles. No me he desprendido de Chrome, ya que sigue siendo el navegador más extendido, pero ahora ocupa el número dos de mi lista de preferencias.
Una de las cosas que recientemente eché en falta es el tener un corrector ortográfico, sobre todo cuando escribes en otros idiomas que no es el tuyo materno, y reconozcámoslo, para el materno también viene bien porque te ahorra alguna que otra vez pasar vergüenza por ir corriendo como vamos siempre 😉 . Por ello hoy os traigo cómo instalar diccionarios en Firefox y cómo cambiar entre los diccionarios instalados para la revisión ortográfica.
Lo primero comprueba que tienes la revisión ortográfica activada mientras escribes. Ve a al desplegable de opciones de las 3 rayas en la parte superior derecha de Firefox, selecciona Opciones y busca la sección Idiomas y selecciona la opción "Revisar la ortografía según escribe".
Una vez activado sólo nos queda poner los diccionarios que queramos. Para ello vamos a la siguiente página que nos lista generosamente todos los diccionarios:
La columna que nos interesa es la de Diccionarios, no la de Paquetes de Idiomas. Buscamos el diccionario, lo seleccionamos y nos llevará a otra página donde habrá un botón que pone "+ Agregar a Firefox". Le damos a dicho botón.
Le damos a "Aceptar" y ya tendremos instalado el diccionario. De esta forma podemos instalar tantos diccionarios como queramos. Podremos siempre gestionar los diccionarios desde la sección de complementos, si por ejemplo queremos borrarlos, que está disponible desde el desplegable de opciones de las 3 rayas en la parte superior derecha de Firefox, Complementos y Diccionarios.
Ahora ya sólo resta usarlo y su funcionamiento es extremadamente sencillo. En cualquier entrada de texto del navegador veréis que marca en rojo cualquier palabra con error ortográfico que podremos corregir dando con el botón derecho sobre la palabra y seleccionando la opción correcta de las propuestas, o incluso añadirla al diccionario si no estuviera.
Desde el botón derecho es posible si se desea desactivar la corrección de ortografía o cambiar el idioma contra el que se comprueba la ortografía, seleccionado entre los que tienes añadidos o añadiendo un diccionario nuevo si fuera necesario.
Ahora ya tenemos nuestro Firefox preparado para revisar fallos ortográficos mientras escribimos un email, un comentario en tu red social favorita o una entrada en tu blog.
En esta segunda parte, Jorge nos amplía y completa un poco más la anterior entrada sobre la Integración Continua con AppVeyor, para mostrarnos cómo generar y publicar una release automáticamente.
Generación del artefacto
Lo primero que será necesario es configurar un "artifact", que sera lo que se haga "push" hacia GitHub, para ello, en la pestaña "SETTINGS" en el menú "Build", haremos que los resultados que nos interesen se añadan a un .zip, creando un "After build script", en el cual meteremos los binarios que nos interese. Previamente a eso, vamos a indicarle en la parte superior, que queremos que la compilación utilice "debug" y "release".
El script:
7z a PostAppVeyor_%configuration%.zip %APPVEYOR_BUILD_FOLDER%\%APPVEYOR_PROJECT_NAME%\bin\%configuration%\*.exe
Añadirá todos los .exe que haya en la carpeta al fichero que indicamos, en caso de necesitar añadir otros ficheros o librerías, se podría indicar cambiando el patrón de búsqueda o poniendo rutas absolutas.
Con esto, AppVeyor va a generar el .zip, ahora sólo queda hacer que sea público como resultado de la compilación. Para eso, en la pestaña "SETTINGS", en el menú "Artifacts", lo creamos mediante el botón "Add artifact".
Seleccionando el .zip que se ha generado mediante el script, se le pone un nombre con el cual publicarlo en AppVeyor (hay que tener en cuenta que AppVeyor borra todos estos archivos a los 6 meses).
Publicación del artefacto
Después de todo lo anterior, sólo nos queda publicar los binarios en el apartado de "Release" de GitHub cuando nos interese. Para ello, lo primero de todo, necesitamos generar un token en GitHub para AppVeyor. Esto se hace desde el perfil , en el apartado "Settings/Developer Settings/Personal Access Tokens" pulsando en "Generate new token".
Tras darle un nombre, los permisos que necesitamos asignarles son simplemente "public_repo" y pulsar en "Generate token".
Esto nos genera un código alfanumérico, que debemos copiar, ya que lo necesitaremos en AppVeyor para configurarlo.
Una vez tenemos el token, nos vamos a AppVeyor y en la pestaña "SETTINGS" en el menú "Deployment", seleccionamos "Add deployment".
En el desplegable, hay que seleccionar "GitHub Releases". Cabe destacar que vamos a configurarlo para que sólo se publiquen como release los "Tags" del repositorio en la rama master. Para eso, vamos a configurar los parámetros de publicación que se ofrecen, teniendo especial cuidado en añadir una condición que sera "APPVEYOR_REPO_TAG" = true, para que sólo las etiquetas se suban a GitHub Release. Un ejemplo de como configurarlo seria el siguiente:
Una vez todo listo, solo nos queda crear un tag en nuestro proyecto, y pushear el tag a Github, esto iniciará el proceso, y cuando acabe, se podrá ver el resultado en el apartado "releases" del repositorio de GitHub.
Con esto queda cerrado el ciclo de despligue que junto a la entrada anterior sobre integración y testeo continuo, nos permite llevar nuestro código a cotas de calidad de desarrollo muy altas, preparando a su vez el proyecto sofware para poder gestionarlo cómodamente y de manera segura ante eventuales contribuyentes.
En esta ocasión tengo el gusto de presentar a Jorge, un excelente compañero de trabajo y un grandísimo profesional. En su día a día siempre anda buscando la mejor forma de hacer las cosas y en esta ocasión nos trae un detallado tutorial de Integración Continua, ámbito en el que recientemente se ha sumergido, y del que hoy nos presenta unas pildoritas de sabiduría y buen hacer.
GitHub, con todo el revuelo que ha provocado la compra por parte de Microsoft, es uno de los mayores repositorios de código que existen, y el mayor de código libre. Dispone de múltiples herramientas que ayudan al desarrollo de aplicaciones y testeo de aplicaciones que en muchos casos no son explotadas, lo cual es una lástima ya que son gratuitas (siempre que tu repositorio sea público) y aportan una gran ayuda.
En esta entrada vamos a hablar sobre una de esas herramientas llamada AppVeyor, ¿y que es AppVeyor? Es una herramienta de integración continua que permite realizar compilaciones, ejecutar teses, y publicar binarios, todo ello con unos pocos clicks gracias a su alta integración en GitHub (y encima gratuito si tu repositorio es público).
Llegados a este punto, se puede pensar, ¿qué me puede aportar a mi todo eso? La respuesta es sencilla, si tienes algún repositorio en el que colaboras con más gente, siempre sabréis que los cambios van a compilar, y en el caso de que tengáis test unitarios, que los ha pasado, y además de todo eso, publicar las "release" si así lo queréis. Vale, ahora pensarás, yo soy un desarrollador independiente, que no comparte repositorios, y tampoco me preocupo en sacar ninguna "release", ¿en qué puede ayudarme a mi? Fácil, puedes configurar diferentes "build" para diferentes entornos, y probar que tu código es perfectamente funcional en varias plataformas y versiones sin necesitar disponer de esas máquinas para compilar en ellas.
Compilación
¿Te he convencido? Pues vamos a ver como podemos configurar esta herramienta para nuestro repositorio. Lo primero es registrarnos en su web (algo muy fácil usando nuestra cuenta de GitHub).
Con sólo eso, ya estamos registrados, y llegamos a nuestro "dashboard", que por el momento estará vacío, pero vamos a solucionarlo pulsando en "NEW PROJECT" .
Para este ejemplo, he creado un repositorio en mi perfil llamado PostAppVeyor, el cual aparece automáticamente, y simplemente hay que pulsar en "ADD".
Ya tenemos nuestra integración lista, aunque de momento no haya hecho nada, veamos qué pasa si pulsamos en "NEW BUILD".
Pulsando esto, se lanzará una compilación que se puede seguir desde "LATEST BUILD".
Un detalle importante, es que al haber añadido AppVeyor al repositorio, se establecen automáticamente los WebHooks para notificar a GitHub los resultados, y si miramos el historial de commits del repositorio, se puede ver el resultado.
Esto también se aplica automáticamente para los "Pull Request", de modo que siempre se comprobarán las modificaciones que haya sobre el repositorio.
Test unitarios
Vale, el repositorio compila, ¿cómo añado los teses? Otra respuesta fácil, AppVeyor es capaz de detectarlos automáticamente. Añadamos un test al proyecto y veamos que pasa al "pushearlo" a GitHub. Automáticamente se inicia una compilación pero... ha fallado, ¿por qué?, si en Visual Studio pasaba el test sin problemas...
Vale, esto es debido a que los teses unitarios de Visual Studio, necesitan descargar paquetes NuGet. Vamos a solucionar esto yendo a la pestaña "SETTINGS" y al menu "Build". Hay que buscar "Before build script" para añadir un evento previo a la compilación, que haga un "nuget restore", tras esto, basta con pulsar en "Save" y ya estaría listo.
Ahora que tenemos todo lo necesario, vamos a volver a probar (Mediante el botón "RE-BUILD" del resultado que ha fallado) y ¡sopresa!, ya funciona correctamente.
Pero espera... a mi no me dice eso. Mis teses no se ejecutan, ¿qué pasa? Bueno, es posible que tu proyecto este hecho en un Visual Studio superior al que usa por defecto (2015), y el descubrimiento de teses unitarios no haya funcionado del todo bien, esto podemos solucionarlo rápidamente seleccionando la versión de Visual Studio que vamos a utilizar (en mi caso 2017). Volviendo a la pestaña "SETTINGS", pero esta vez en el menú "Environment", seleccionando Visual Studio 2017 y damos a "Save".
Veamos el resultado ahora pulsando en "RE-BUILD".... ¡¡¡Premio, nuestros teses ya se ejecutan!!!
Con todo lo que hemos hecho hasta ahora, tenemos un repositorio que comprueba automáticamente si el código compila correctamente, y ademas ejecuta los teses unitarios para comprobar que sigue cumpliendo con el funcionamiento esperado.
En la próxima entrada veremos cómo generar y publicar las "releases" a partir de nuestro código compilado y testeado.