Ghost, innovación con límites

Ghost

La niña bonita de la modernez del software libre. Ghost promete retomar el encanto del blog: escribir por escribir, sin artefactos, sin sofisticación ni tipos de contenido que complican la existencia. En general, sin toda esa batería de funciones que tiene ahora mismo cualquier editor web, por supuesto también los gestores web libres más habituales como Drupal o WordPress.

Ghost es software libre, y lo puedes instalar en tu servidor. Tiene licencia permisiva, MIT para más inri, frente a la tradicional licencia GPL usada por otros gestores más conocidos. (Hemos dedicado un par de posts a la instalación y configuración final de Ghost.)

Ghost no tiene la alta cuna emprendedora de Medium, pero casi. Lo cierto es que han hinchado el globo del hype sobre todo a través de su petición en Kickstarter. Está hecho con NodeJS y tiene como gran novedad un editor a dos pantallas muy parecido al que ya tiene el software con el que están hechos los foros de este blog, y el uso de Markdown para la escritura, algo que lo que Drupal 6 (publicado en 2008) ya permitía hacer.

El valor por tanto no hay que buscarlo en la propuesta técnica, sino en la propuesta misma: el valor de Ghost es el toque de atención mismo, esa llamada a la sencillez. Lo cierto es que Ghost no tiene nada en sí mismo que no tenga, sin ir más lejos, WordPress. Pero es una espiral que se repite cada cierto tiempo, como debatíamos precisamente en el foro hace ya un tiempo.

En un plano fundamental soy escéptico respecto de la capacidad de Ghost de desarrollar una comunidad a su alrededor. La licencia permisiva que posee no es la mejor para desarrollar software libre con garantías de que el código va a seguir siendo libre, y esto es fundamental para construir comunidad de desarrolladores y usuarios. Todo es posible, pero de entrada la licencia MIT escogida para el proyecto supone un handicap.

Adicionalmente, Ghost tiene ahora mismo limitaciones importantes que no se pueden resolver sin hacerle un guiño a la paradoja. Ghost no permite comentarios, así que los comentarios hay que añadirlos dependiendo de un servicio externo, típicamente un SaaS privativo como Disqus. Eso es inadmisible si el valor del sistema es que es libre y te da autonomía. «Bueno, pero más adelante podrán añadir comentarios» dirán los abogados del diablo. Cierto, y así comenzará la reinvención de la rueda de un CMS libre que sea igual que los que ya existen desde hace 10 años. Con una interfaz de gestión igual de compleja que la de éstos, cuando la propuesta de Ghost (como dije antes, lo único verdaderamente valioso del proyecto) es precisamente la de una sencilla interfaz de administración.

Mientras tanto ya hay quien intenta trasladar lo novedoso (el dashboard de edición) a WordPress via plugin. Personalmente, me agrada la idea y veo más realista terminar usando Gust dentro de mi blog que migrando por completo a Ghost.

En cualquier caso, no perdamos de vista una cosa: escribir texto puro y duro, dejando el protagonismo a las ideas y no a lo visual ya es posible. Siempre fue posible. Qué digo, es y sigue siendo la opción por defecto de todos los CMS más utilizados.

La diversidad es buena, Ghost tiene buena pinta y yo me alegro de su existencia. Pero ni su propuesta es tan innovadora como la pintan, ni va a resultar en una revolución como sí fue el caso de WordPress o Drupal hace unos años. Por cierto, que el tema por defecto de Ghost es muy bonito, muy à la Medium, pero al igual que éste, tampoco es en absoluto revolucionario desde la óptica de lo que ofrece una web.

Pocket amenaza legalmente al proyecto Poche

Poche

Poche

Poche es una de mis aplicaciones libres preferidas de los últimos tiempos, un clon libre de todas estas aplicaciones/servicio tipo Read it Later (actualmente conocido como Pocket), y a la que ya he dedicado algún post en este blog.

Pues bien, leemos en el blog de Poche que hace dos días el desarrollador que impulsa el proyecto recibió un Cease & Desist por parte de Pocket a raiz de «violación de marca» al usar este proyecto libre la marca In the poche.

Me parece un movimiento harto agresivo por parte de Pocket, contra un proyecto libre apenas conocido, y que (quizá me equivoque) denota una voluntad de litigiar muy poco habitual en empresas pequeñas. Tendemos a pensar que las batallas de propiedad intelectual y de patentes son cosa de Apple contra Samsung contra Google contra Microsoft, pero esto demuestra que nadie jamás puede sentirse seguro en este contexto. La amenaza de demanda te puede llegar en cualquier momento, por inocente que sea tu proyecto.

Por buscar una explicación, se me ocurre que alguien en Pocket debe sentir que su propuesta de valor añadido es tan pequeña que este proyecto libre es una alternativa más que suficiente, y por tanto están dispuestos a impedir (aunque sea en los juzgados) todo desarrollo competitivo.

Por supuesto, recomiendo leer la carta abierta del desarrollador de Poche. Y por supuesto deseo que esto termine en un Streisand de los que te explotan en la cara; pero mucho me temo que esto es (casi) soñar despierto.

Actualizado (unos minutos después de la publicación): hay respuesta de Pocket a la carta abierta. Increíble pero van a forzar a un proyecto a cambiar el nombre porque en francés el nombre del proyecto significa lo mismo que el suyo en inglés. ¿Se imaginan a Calacanis demandando a Julio Alonso y Antonio Ortiz hace unos años y obligándoles a cambiar el nombre de su empresa? ¿A Apple demandando a Apfel GmbH? Es ridículo.

Actualización (2014-01-29): El proyecto cambia de nombre a Wallabag.

Medium y la aristocracia emprendedora

Medium

Medium

Para dejar las cosas claras: Medium no es nada innovador. Es un refrito de toda la lógica recentralizadora y reintermediadora, que lleva un paso más allá los tics que ya hemos criticado en otras compañías de Internet tantas veces. Adicionalmente, no es software libre.

Medium no tiene nada que no tenga un blog normal, salvo el factor cool, claro. Porque Medium es el último hijo de la aristocracia entrepreneur, con Ev Williams (Blogger, Twitter) a la cabeza. En lugar de innovar de verdad han apostado por lanzar una especie de HuffingtonPost cool generando un poquito de hype limitando inicialmente quién podía publicar en su sitio a personas más o menos conocidas. Salvo ese elitismo inicial, no hay nada que lo diferencie de otras muchas propuestas que hemos analizado en el pasado, citándome a mí mismo:

No creo que el Huff sea peor que Blogger. O que Blogger sea peor que WordPress.com. O éste peor que Tumblr. Todos te abren una ventana a un público y todos te exigen un precio: el precio de producir contenidos en su jardín

Medium no es mejor, ni peor. Es más de lo mismo. La narrativa web no va a dar un giro revolucionario. Ni no revolucionario. Si de Medium depende, se quedará exactamente igual que antes.

Por supuesto, este tipo de servicios son cautivadores para los medios. A los periodistas les encantan porque representan una nueva piel para la vocación de medio e intermediario que poseen la mayoría de ellos. Adicionalmente, el pedigree de su fundador les asegura que ahí hay y habrá inversión, posiblemente millonaria. Y el relato del dinero es algo ante lo que los informadores profesionales sucumben con gran facilidad.

Los límites del debate permitido

«La forma más inteligente de mantener a las personas pasivas y obedientes es limitar estrictamente el espectro de temas en el que se puede opinar, pero permitir debates muy acalorados dentro de ese espectro.»

Noam Chomsky, en The Common Good.

Hace unos días, en el metro que va del aeropuerto de Barajas a casa, un grupo de personas discutían intensamente. No pude evitar prestar atención a la conversación, y descubrí que el tema por el que parecían estar dispuestos a hacer rodar cabezas era sobre si un tertuliano cualquiera de esos de televisión tiene derecho o no a enfrentarse a los paparazzi tras haber cobrado voluntariamente y hacer el juego a esos mismos paparazzi.

Y entonces recordé esta cita de Chomsky.

Cómo arrancar una aplicación en NodeJS como servicio en Ubuntu

Ghost

Hace unos días hablábamos de cómo echar a andar Ghost en un servidor Ubuntu. Ya avisaba al final del post de que nos faltaba un detalle aún para tener nuestro blog 100% operativo: que el mismo se arranque automáticamente al encender el PC.

Para ello echamos mano de Upstart, que viene de serie en Ubuntu, y que aunque no es difícil de utilizar, utilizaremos a través del paquete upstarter para NodeJS que nos hará la vida aún más sencilla.

Puede que aún así, al reiniciar el servidor el servicio no arranque normalmente, si es vuestro caso, haciendo caso a la recomendación que encontramos en Ask Ubuntu ya lo tendríamos listo. Como estamos usando un Proxy en Apache, iniciamos la aplicación cuando ya tengamos interfaz de red cambiando el punto de inicio a

start on started network-interface INTERFACE=eth0

Listo. Este upstart, por cierto, nos servirá para arrancar como servicio cualquier otra cosa que necesitemos.

Cómo instalar Ghost en un servidor Ubuntu

Ghost

Ghost

Ghost es una nueva herramienta libre para gestionar blogs. Tiene licencia permisiva (lo cual no me agrada) pero está hecho en NodeJS y como no había instalado ninguna otra aplicación hecha en este lenguaje, y sé que es algo particular, he decidido instalarla en uno de mis servidores. Aquí detallo el proceso de instalación de Ghost en la raiz de un dominio, para tenerlo recopilado y que le sirva a quien intente hacer esta tarea en el futuro. Algo que para empezar me incluye a mí mismo, que si no lo anoto ahora seguro que en el futuro vuelvo a atascarme en algún paso.

  1. Lo primero es preparar el sistema. Ghost está programado usando el lenguaje NodeJS, así que necesitarás este software en tu servidor. En Ubuntu hay una versión antigua de NodeJS (necesitamos una versión >0.10), así que para instalarla añadimos a nuestro sources.list el siguiente repositorio disponible en Launchpad. Luego instalamos nodejs normalmente: # apt-get install nodejs La versión de NodeJS que estamos instalando ya incluye npm (Node Package Manager, una cli para instalar dependencias y paquetes de Node, al estilo de Ruby Version Manager para Ruby y Ruby on Rails).
  2. En Ubuntu 13.04 necesitaremos compilar las extensiones de sqlite para Node, si ya tenemos un entorno de desarrollo (incluido build-essential) configurado sólo necesitamos teclear: npm install -g node-gyp
    npm install sqlite3 --build-from-source
    Si nos hace falta preparar el sistema hay algunos pasos más.
  3. También necesitaremos algunas cosas de Python, las instalamos: # apt-get install python-software-properties
  4. Mi servidor ya tiene Apache funcionando como servicio, y no iba a configurar un servidor entero únicamente para esto, así que toca configurar el sistema para que nuestra aplicación NodeJS se lleve bien con el servidor Apache. Esto lo hacemos configurando un proxy entre ambos. En dos pasos:
    1. Habilitamos los módulos de apache deseados y reiniciamos el servidor Apache:
      # ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled
      # ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled
      # /etc/init.d/apache2 restart
    2. En el archivo en el que estamos declarando el vhost (también podemos hacerlo en la configuración de Apache) añadimos esta orden: ProxyPass / http://localhost:8000/ De esta forma redirigirimos toda petición a través del puerto 80 de Apache para el dominio completo al puerto 8000 de nuestro localhost.
  5. Por fin podemos ahora instalar nuestra aplicación, descomprimimos la última versión de Ghost y copiamos los ficheros donde vayamos a tenerlos en el disco duro. Por ejemplo /var/www/ghost/.
  6. Abrimos una terminal y hacemos nos movemos hasta el interior de ese directorio.
  7. Si hemos instalado bien todas las dependencias (Python, NodeJS, sqlite bindings para Node), podemos proceder directamente a ejecutar el siguiente comando desde la terminal situada en el directorio raiz de nuestro Ghost: # npm install --production.
  8. Copiamos config.example.js a config.js y editamos la configuración del entorno de producción, para indicar la URL de nuestro nuevo blog en Ghost, y el puerto interno en el que queremos que la aplicación «escuche». Cambiamos la URL del blog y, si nos hace falta, también el puerto en el que estamos escuchando. En mi caso esta sección queda con el siguiente aspecto:

    production: {
    url: 'http://ghost.local',
    mail: {},
    database: {
    client: 'sqlite3',
    connection: {
    filename: path.join(__dirname, '/content/data/ghost.db')
    },
    debug: false
    },
    server: {
    // Host to be passed to node's `net.Server#listen()`
    host: '127.0.0.1',
    // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
    port: '8000'
    }
    },

    De ahí, en nuestro caso sólo necesitamos cambiar la línea que comienza por «url:» y la de «port:», el resto lo dejamos tal cual. Tened en cuenta que aunque en la plantilla de este blog no muestre bien la indentación, hay que ser cuidadosos con los espacios, y los tabuladores en estos archivos :)
  9. Finalmente, levantamos la aplicación usando:
    # npm start --production

Parecen muchos pasos, pero que no os asuste. Todo esto se hace en unos 30 minutos. Menos si todo os sale bien a la primera (a mí me faltaron algunas dependencias y perdí un ratillo buscando un mensaje de error).

¿Qué faltaría por hacer? Pues será de mucha comodidad crear una tarea para que se ejecute automáticamente durante el reinicio de servidor, de forma que cada vez que reiniciemos nuestra aplicación en NodeJS se inicie automáticamente. Por lo demás, éstas son todas las notas rápidas que he tomado en el proceso de instalar Ghost en un servidor Ubuntu en producción que ya tenía Apache y algunas aplicaciones funcionando con este servidor. Lo haré cuando lo instale en el servidor definitivo, de momento esto es suficiente.

Espero que os resulte útil, es viernes, así que hay por delante un fin de semana que puede aprovechar para hackear y divertirse con esto. Para los que quieran sacar matrícula, si queréis instalar directamente desde el repositorio Git podéis seguir este tutorial, pero tendréis que instalar Ruby, bajar algunas gemas vosotros mismos, y además compilar todos los assets de Javascript antes de tener el dashboard operativo. Por eso es sólo para los que quieran la nota más alta :)

La precompra de bienes digitales, ¿qué sentido tiene?

Bitcoins

Hoy tengo una pregunta sobre comercio electrónico que puede parecer insignificante, pero es que es algo que me inquieta desde el punto de vista de la lógica del comprador.

En ausencia de descuento, ¿Cuál es el sentido del pre-order en una compra digital que igualmente podrás descargar el primer día?

Entiendo la precompra tradicional, te garantizas acceso a un producto limitado. Entiendo la precompra de ediciones limitadas, siempre que sea un producto digital pensado con la especulación y el mercado secundario en mente y por tanto con «copias limitadas» de forma artificial.

Pero no entiendo que en ausencia de esa escasez diseñada ni de otro tipo de descuentos existan motivos para hacer la precompra de un bien digital que igualmente el día que salga a la venta podrás comprar sin más y descargarte inmediatamente. Ejemplos de este tipo de precompra de artículos no limitados y sin descuento (como digo, algo que no entiendo) hay de diferente naturaleza: desde videojuegos a música, no termino de verlo en ningún caso.

Iba a abrir un mensaje en el foro, y de hecho es posible que terminemos debatiendo allí acabo de abrir un hilo por si por allí alguien responde, pero de momento dejo la pregunta aquí colgando.

Este blog usa cookies para su funcionamiento.    Más información
Privacidad