Instalar módulos de Node.js en servidores offline

Tras haber dormido pocas horas, nada más despertarme he pensado ¿por qué estoy de tan mal humor? Entonces he recordado lo que tuve que hacer ayer por la noche para instalar por npm el módulo forever en un servidor web sin acceso a los repositorios y me acordé. Y como buscando por los issuesStackOverflowses del planeta parece ser que no soy el único que se ha encontrado este problema, dejo aquí escrita esta handy-dandy-guide dirigida a todos los que la presente vieren y entendieren.

npm

Partimos de la base de que parece un poco tonto querer usar node.js en un servidor que no tiene acceso a prácticamente nada. En realidad no, el servidor es una máquina virtual que nos ha proporcionado la Escuela para la realización de la práctica y el único acceso al exterior que tiene es a un mirror de la propia Escuela de los repositorios oficiales de Ubuntu. Por lo demás, el cortafuegos tras el que está  no le deja ni resolver la IP de google.es. ¿Puertos disponibles? El 22 y el 80 (que son redirigidos a otros del servidor de acceso, pero eso ya nos es indiferente). ¿La tarea? Instalar el módulo de node.js forever. Sigue leyendo

Comunicando Node.js y Python (II – la mejor manera)

Como ya os he contado, necesitaba un Web Scraper que fuese disparado bajo demanda del usuario para recuperar de subtitulos.es los títulos de los distintos capítulos, y la manera más sencilla de hacerlo era en Python. Para ello, cada vez que el usuario pidiese al servidor Node.js un contenido, este lo buscaría primero en la BD, y, si no lo encontraba, lo pediría al scraper. De esta manera, si el contenido no existe en subtitulos.es, se pedirá siempre al scraper y este retornará un error, pero si sí existe, este será scrapeado solo la primera vez, encontrándose en veces sucesivas en la BD.

docs-dotcloud-logo

La primera solución consistía en comunicarse con el scraper Python mediante stdout, pero esto tenía varios inconvenientes. El primero, que el scraper debía encontrarse en la misma máquina que Node.js. El segundo, que para objetos más complejos se debía escoger una representación de datos intermedia como JSON. El tercero, que cada vez que se usase el scraper este debía abrir una nueva conexión con la base de datos, en vez de mantener una viva.

Sigue leyendo

Mi primer «pet project», subtiREST

Hubo un tiempo en el que tenía ganas de aprender PHP para poder hacer cosas web guay. Empecé con un libro y lo dejé. Hubo un tiempo en el que tenía ganas de aprender MySQL para poder hacer cosas en general guays. Empecé con un libro y lo dejé. Hubo un tiempo en el que tenía ganas de profundizar un poco más en otros lenguajes de programación como Python. ¿Adivináis lo que pasó? Bueno, en ese caso no cogí un libro, me apunté a un curso online. En cualquier caso, sí, lo dejé.

A pet project is a project, activity or goal pursued as a personal favorite, rather than because it is generally accepted as necessary or important.

El aprendizaje guiado sin goal está claro que no me motiva, así que hace unas semanas me dije, que le den. Pensé un proyecto pequeño que tocase varias cosas con las que tenía ganas de jugar y me puse a la tarea. Sigue leyendo