Error con ssh2 en Node-Webkit

nodewebkitPongamos que quieres desarrollar rápidamente una aplicación cliente-servidor en node-webkit, y que precisamente por la parte de “rápidamente” quieres centrarte en el cliente sin liarte con la comunicación con el servidor.

Una opción sencilla es usar ssh, ejecutando de forma remota en el servidor lo que necesitemos y capturando y parseando las respuestas.

Además querremos que nuestro cliente sea multiplataforma, así que buscando librerías de ssh en javascript encontraremos el módulo ssh2 de npm. Todo perfecto, estás a cinco minutos de tecleo de tener tu aplicación funcionando…

…Y entonces resulta que la conexión falla 4 de cada 5 veces sin tener ni idea de por qué.

Sigue leyendo

Programando con Node-Webkit. 2: build

nodewebkitEn el artículo anterior sobre node-webkit nos habíamos quedado con una aplicación de prueba sin más contenido que una cadena de texto, pero que ya podíamos ejecutar a través de nw y ver que efectivamente la cosa funcionaba.

Bien, pongamos que ya le hemos echado unas horas a nuestro programa y queremos distribuirlo a más gente… lo de decirles que se descarguen el node-webkit y usen “nw ./” desde la carpeta no es muy atractivo, mucho mejor si les damos un ejecutable sobre el que sólo necesitan hacer click para arrancarlo, verdad?

Para ayudarnos con esto está Grunt.

Sigue leyendo

Creando un script de envío de correo con attachment binario en Vugen

HPUno de los tipos de script incluidos en Vugen es precisamente un script SMTP que permite enviar correos a través del servidor SMTP que indiquemos para crear un monitor que compruebe su funcionamiento o que forme parte de un monitor más complejo extremo a extremo.

El problema es que este script no aporta mucho más que unas pocas funciones con las que construir y enviar nuestro correo, y estas funciones no aportan ninguna funcionalidad más avanzada que si estuviésemos componiendo a mano nuestro correo con (por ejemplo) perl.

Nos encontramos por tanto con el mismo problema a la hora de intentar enviar un correo con archivos binarios adjuntos: podemos efectivamente indicar Content-Type y Content-Transfer-Encoding del archivo adjunto pero no tenemos forma de incluir dicho archivo en sí sin que sea leyéndolo como texto plano (y por tanto volviéndolo inservible).

Si alguien conoce alguna forma de hacer esto con la funcionalidad propia del script SMTP de Vugen que levante la mano, yo por mi parte opté por la siguiente alternativa.

Sigue leyendo

Programando con Node-Webkit. 1: empezando

nodewebkitPodría inventarme excusas más técnicas sobre por qué me ha dado por probar a desarrollar con node-webkit, pero la realidad se reduce a “porque puedo”.

Por eso, y porque siempre me ha picado la curiosidad de diseñar interfaces de escritorio con CSS, y aunque node-webkit no es la única opción para ello (ni seguramente la mejor) sí tiene un cierto interés particular por lo rebuscada que es.

A fin de cuentas programar una aplicación de escritorio con funciones asíncronas es un poco como partir el filete con el tenedor y comerlo con el cuchillo: un desafío absurdo de consecuencias potencialmente interesantes.

Sigue leyendo

Haciendo Gimp visualmente más parecido a Photoshop

Gimp 2.8Suelo ser de la opinión de que cuando dos cosas son diferentes, el tratar de asemejarlas superficialmente a lo único que lleva es a la confusión.

Por mucho que modifiquemos el interfaz, Gimp sigue siendo Gimp y Photoshop sigue siendo Photoshop, aunque sí es cierto que para los que estén habituados a trabajar con el programa de Adobe les resultará mucho más intuitivo trastear con GIMP si las herramientas, los paneles y los atajos de teclado son iguales (o al menos muy parecidos).

Sea como sea, porque conozcas bastante el Photoshop o simplemente porque te apetezca probar, he aquí como darle un lavado de cara al GIMP.

Sigue leyendo

El F2P bien hecho es posible

Encontré hace tiempo en Google Play un juego llamado Giant Boulder of Death, de Adult Swim (el canal de televisión con series tan estrafalarias como Metalocalipsis).

No voy a hablar sin embargo de que sea un juego entretenido (que lo es) ni de que esté bien hecho (que lo está) ni de que tenga una mecánica de juego absurdamente simple que sin embargo es capaz de engancharte durante horas (que la tiene).

De lo que quiero hablar es de que este juego es F2P (Free to Play) y paradójicamente, en contra de todo a lo que estamos acostumbrados, no es un sacacuartos en el que intenten exprimir tu bolsillo para conseguir progresar en el juego.

Sigue leyendo

Google Now Launcher disponible en Google Play

Desde que salió el Nexus 5 con su nuevo launcher propio (que no venía incluido en la actualización a Kitkat para los demás dispositivos) se ha venido rumoreando que antes o después se publicaría en Google Play para que cualquiera pudiese instalarlo en su móvil.

Lo de “cualquiera” todavía no ha llegado, porque de momento el Google Now Launcher todavía no es compatible con todos los móviles, pero algo es algo.

De todas formas ahora que (algunos) podemos instalarlo la pregunta es: ¿merece la pena?.

Sigue leyendo

Gigantismo en Gnome-Shell

GnomeDespués de la última actualización de Gnome-Shell 3.10 me quedé un poco así como con la boca abierta cuando vi que la siguiente vez que arranqué el ordenador todo el interfaz era… gigante.

El caso es que al final tiene su explicación y puede que hasta no sea realmente culpa de la gente de Gnome: está previsto que para Gnome-Shell 3.12 se soporten las pantallas HIDPI, para las cuales al tener mayor número de píxeles por pulgada se puede duplicar el tamaño del interfaz manteniendo el mismo aspecto.

Ahora bien, ¿qué pasa si los valores EDID de tu monitor hacen pensar a Gnome que puedas tener una pantalla HIDPI sin tenerla en realidad?

Sigue leyendo

Usando un chroot para arreglar un sistema que no arranca

recoveryMe acaba de pasar que haciendo un dist-upgrade en el portátil de repente se ha quedado la pantalla en negro, y por alguna razón ni siquiera me dejaba hacer login desde una consola (tty1).

Encima conectando por ssh cualquier cosa que hiciese me daba una violación de segmento, y ya en el intento a la desesperada de reiniciar ni siquiera llegaba a arrancar.

En este momento lo primero que se te pasa por la cabeza es “ME CAGO EN LA P***!!!!!” y ya te ves haciendo backup desde un LiveCD y reinstalando todo.

Pero espera! Aun queda una última esperanza: chroot.

Sigue leyendo

Explicación interactiva de comandos de shell

shebangAsí como por casualidad me he topado con una web bastante curiosa que al introducir cualquier línea de shell te la desglosa explicando qué hace cada parte, y además puedes hacer click en los comandos que la componen para ver la lista de opciones que permite el mismo (extraído de su página man).

La web es explainshell.com, y además de ser curiosa en si misma tiene el extra de que puedes descargar su código fuente de GitHub y usarla localmente.

Mis felicitaciones al chef.