Jose Juan MontielJose Juan Montiel

Es hora de empezar un blog sobre programacion

La verdad es que conforme pasa el tiempo, te das cuenta que compartir es ganar. Algunos se dan cuanta antes, pero aunque yo ya lo intuia, han tenido que pasar mas de 10 años en esto de la programacion para darme cuenta. Compartir es ganar, es conocer otras opiniones, maneras de hacer las cosas y como no, conocer a otras personas…​ networking le llaman.

Yo ya tenia un blog, es mas una lista de cosas que te vas encontrando y apuntas para tener en algugn sitio, que realmente una manera de compartir informacion y opinar sobre ella. Luego llego el twitter pero al final, es una mezcla de retweets, y poca informacion original.

Asi que, por que no, un blog serio, como esos que estas acostumbrado a leer, de esos donde la gente termina dejando una gran cantidad de comentarios, de esos que añades a tu lector RSS para estar al tanto de lo que se comenta en ellos, y si ademas aprendes algo al montandolo, pues que mas se puede pedir.

Por tanto, los elementos que voy a usar para este blog son:

  • Ingles (Español)

  • GitHub Pages

  • AsciiDoctor

  • Groovy

  • Jbake

  • Gradle

  • Freemarker (Thymeleaf)

  • Discus (Discourse)

Vemos en un poco en detalle cada punto.

Ingles

Lo primero que voy aprovechar es para mejorar mi ingles. Asi que, aunque lo redacte en español, mi lengua nativa, lo publicare en ingles (y supongo que ya que los redacto en español, estos tambien los publicare, ya vere como lo implemento).

Github Pages

Ya hace algun tiempo que GitHub empezo a permitir publicar paginas estaticas para todos sus proyectos. Si buscas por Github Pages podras ver amplia informacion al respecto, ademas, mucha gente que usa ya github a aprovechado la funcionalidad para montar pequeños sites estaticos.

Basicamente es que, todo lo que subas a la rama gh-pages de tu repositorio github, sera visible en el dominio http://username.github.io/repo/file donde username, es tu usuario de github, repo es el nombre del repo donde estas subiendo los ficheros a la rama gh-pages y file, es el fichero, que si es un index.html el navegador lo visualiza, y lo mismo para los css y js, con lo que ya tienes listo la web.

Ademas, proveen de un generador por defecto, Jekyll, para generar esas paginas estaticas, a partir de un texto en formato markdown, pero nosotros no vamos a usarlo, veremos la alternativa.

AsciiDoctor

Preferimos usar algo que esta entre, markdown y latex, y eso se llama AsciiDoctor que por cierto tambien esta soportado por GitHub.

Groovy

Igual que mi lenguaje nativo es el español, mi lenguaje nativo en esto de la programacion es Java, y como se trata de aprender, ya llevo unos años jugando con groovy, y no voy a desaprovechar la oportunidad para montar el blog usandolo. Ya contare en otra ocasion, como me inicie en esto de groovy, y cuales son los lugares donde yo, aprendo.

Jbake

Y ya hemos dicho que no ibamos a usar Jekyll que esta hecho en Ruby, porque lo que nos mola es Groovy ;) Pero necesitamos que nuestros txt escritos en AsciiDoctor se transformen en HTML (o XML ya veremos como), y sobre todo que lo que escribimos se inserte en esos HTML, para ello usaremos Jbake.

Gradle

Pero bueno, esto necesita automatizarse, al final son una serie de pasos que porque no usar gradle, y como bien cuenta el creador del plugin, es la combinacion perfecta.

Un par de apuntes, pues ha quedado algo desactualizado…​ que hace Ornay y el plugin que se encara de subir las paginas a la rama, tambien ha sido actualido, aqui esta.

Freemarker (Thymeleaf)

Y esta herramienta es capaz de usar distintos sistemas de templating (en concreto empezaremos con Freemarker, y mas adelante lo migraremos a Thymeleaf) para inyectarles los valores obtenidos del txt en asciidoctor, junto con algunas variables mas que ayudaran a construir un sistema de blogging que no tiene que enviadiar nada a Jeklly, Wordpress o lo que se ponga por delante.

Disqus (Discourse)

Pero por ultimo, que es un sistema de blog sin la posibilidad de comentarios, pues nada. Para ello todos estos sistmas usan Discus que se intera perfectamente con una linea (casi). Como opcion, intentare migrar a Discourse pero eso sera mas adelante.

Bola extra. Analitica.

Como bola extra, recordar añadir la analitica.

Keep on Groovying!