Archivo | programming workout RSS for this section

Proyecto maven para JavaScript

Estoy aprendiendo JavaScript. Creo que es uno de los lenguajes con más futuro, y no sólo por la web (que da de comer a mucha gente), sino por herramientas como PhoneGap (que te permite crear aplicaciones para iOS, Android, …), y también por la llegada del nuevo Windows 8, ya que se pueden desarrollar aplicaciones en JavaScript que acceden al hardware de la máquina donde esté instalado Windows 8.

Empecé aprendiéndolo gracias a Codecademy, que comenzó el año con unos cursos o clases online, y me llamó mucho la atención la posibilidad de poder ir practicando JavaScript sin tener que instalar nada. Y además, cada semana la herramienta me recordaría que tenía una nueva lección, así no dejaría de practicar.

Pero hace poco tropecé con un pequeño problema, y es que quería aportar una solución escrita en JavaScript al desafío de Compresión en RLE en Solveet (una plataforma donde la gente publica desafíos de programación y otra gente publica sus propias soluciones, muy recomendable y divertido). El problema era que no tenía instalado nada en mi ordenador que me permitiera hacer TDD (lo prefiero para resolver los desafíos, así practico doble: el desafío y la práctica TDD).

Una herramienta que me encanta para gestionar el ciclo de vida de mis proyectos es maven, así que me decidí a buscar algo que me permitiera escribir JavaScript y luego ejecutarlo con comandos de maven.

Y tuve la suerte de encontrar un post de akquinet donde explica cómo crear un proyecto maven para JavaScript. La verdad es que es realmente sencillo porque akquinet se ha currado un archetype para maven que te crea un esqueleto de proyecto para que escribas directamente JavaScript. Simplemente con este comando para ejecutar maven:

mvn archetype:generate \ 
  -DarchetypeArtifactId=javascript-quickstart \ 
  -DarchetypeGroupId=de.akquinet.javascript.archetypes \ 
  -DarchetypeVersion=1.0.0 \ 
  -DgroupId=<enter your groupId> \ 
  -DartifactId=<enter your artifactId>

Con el proyecto creado a partir del archetype de akquinet podrás:

  • Ejecutar tus tests JavaScript con Jasmine
  • Comprimir los ficheros .js y .css de tu proyecto
  • Generar la documentación con Jslint y Jsdoc

Además, al ser un proyecto maven, es muy fácil que lo integres en un servidor de Integración Contínua como Hudson.

Si quieres, puedes ver la solución que aporté en Solveet. El desafío es muy sencillo, y hay muy poco código JavaScript: Compresión RLE en JavaScript, el código completo con los tests.

Anuncios

Enlaces de los martes

En los enlaces de hoy he incluido un poco de autopromoción. No me gusta hacerlo, pero por otro lado creo que es muy bueno hacer públicos los pequeños logros que uno va consiguiendo, más que nada para recibir el máximo feedback posible y poder crecer en el ámbito personal.

Además, se nota que estamos en verano, y el ritmo de enlaces interesantes ha bajado bastante. O me estoy volviendo demasiado exigente, quien sabe.

Sin más, ahí van los enlaces:

My ten goals for programmingworkout.com

I don’t remember exactly, but I think I arrived to programmingworkout.com web through one person I follow on twitter (but I can’t remember who, sorry). The idea looked to me very interesting, and I decided just to sign in. I completely forgot about it, but last week I received an email from Michal Taszycki (@mehowte).

In this email, Michal challenges me (and 500 others) to complete three tasks:

  1. Collect at least 10 goals: write down anything you want to achieve
  2. Think about a vision: imagine a vision of your future self
  3. Connect with others: friend/follow/meet at least three strangers

So, to complete my first task, here there are the list of my ten goals I want to achieve in a near future. Some of them are not very specific or follow the SMART principles, but I have something to start with.

  1. Master command line tools (specially, *nix command line)
  2. Learn some shell scripting language: windows shell, unix shell, awk, whatever
  3. Proficiency with type writting
  4. Know more IDE shortcuts (I use eclipse in my daily basis)
  5. Learn more about design patterns
  6. Regular expressions
  7. Practice groovy/grails programming language
  8. OOP principles (SOLID, pdf summary)
  9. Practice TDD
  10. Learn how to use vim

The second task is to imagine a vision of my future self. I didn’t think about it too much, so I don’t have a clear idea. It should be something like being a good professional developer, contributing to open source projects, participating in an excelent team of professionals, or something related. But, it is still too vague to describe it.

Do you want to join programming workout initiative? Contact me through this blog, or contact Michal via his twitter, web or email.

You can watch a video which started all: video (~30min), slides