El Blog de Loretahur

Si lloras por haber perdido el sol, las lágrimas te impedirán ver las estrellas (R. Tagore)

Mostrando entradas de la categoría Software Libre

Septiembre, el mes de WordPress

a las 23:45

Septiembre es el mes de la vuelta. De la vuelta de vacaciones, de la vuelta al cole (y los corticoles), a la rutina, al malvado a la par que olvidado despertador, …

Pero este año, gracias al e-ghost y aprendices vamos a convertirlo también en el mes de WordPress.

Si estás interesado/a en este gestor de contenidos cada día más completo, apúntate estas fechas en rojo:

  • 10 de septiembre de 15:00 a 19:00 en la sala de videoconferencias de la Facultad de Ingeniería de la Universidad de Deusto: Iniciación a WordPress: este evento no es realmente una charla, sino un taller o ‘desconferencia’ en la que varios Aprendices pondremos en común lo que sabemos.
    El objetivo es hablar sobre lo siguiente:
    • ¿Qué es WordPress?
    • Cómo abrir un blog en wordpress.com
    • Breve repaso a funcionalidades básicas.
    • Comparación con otros sistemas de creación de blogs.
  • 13 y 14 de septiembre de 18:00 a 20:00 en la Facultad de Ingeniería de la Universidad de Deusto: Cómo usar WordPress para montar una página web sin que parezca un blog: Curso para conocer a fondo el funcionamiento del sistema de plantillas de WordPress y conseguir así presentar este CMS como algo más que un gestor de blogs. Se aprenderá la estructura y el funcionamiento de los themes, cómo cambiar la forma de mostrar la información, crear un widget propio, etc… Éste sí que lo imparto yo de una manera clásica y ¡¡ATENCIÓN!! Es necesario inscribirse (aunque sea gratuito). Como requisito previo serán necesarias unas nociones básicas de PHP.
  • 17 de septiembre de 15:00 a 19:00 en la sala de videoconferencias de la Facultad de Ingeniería de la Universidad de Deusto: Plugins, WordPress MU y BuddyPress. Al igual que el de introducción, se trata de una desconferencia en la que cada aprendiz pondrá sobre la mesa sus experiencias. Se hablará sobre:
    • Qué es un plugin y para qué sirve.
    • Repaso de plugins útiles.
    • Qué es WP MU y para qué sirve. Cómo instalar. Repaso funcionalidades básicas.
    • Qué es BuddyPress y para qué sirve. Cómo instalar. Repaso funcionalidades básicas.

Y por supuesto, no te pierdas el resto de cursos que organiza el e-ghost durante septiembre. Al final no va a ser tan mal mes ;-) .

Imagen de dannyrobinson (CC-by)

Cinco lecturas breves (IX)

a las 22:24

Estamos a punto de llegar al apunte décimo de esta sección, pero antes toca el noveno, que no por ello va a ser menos importante:

  • Arrancamos la lectura breve con un vídeo no breve. Vamos: toda una contradicción ;-) . Joseba me ha descubierto una interesante exposición de David Weinberger (co-autor del conocido Manifiesto Cluetrain) a través del recién estrenadito blog de la biblioteca de Deusto. Habla sobre uno de sus libros (que ya he añadido a mi lista de deseos): Everything is Miscellaneous y de cómo las clasificaciones tradicionales como CDU están limitadas en el mundo digital porque trabajaban sobre la premisa del mundo físico. Es decir, un libro en la biblioteca sólo estaba contemplado que fuera a un único espacio o división porque sus átomos no se podía separar en diferentes etiquetas. Y cómo con estas clasificaciones tendemos a llevar todo a la “carpeta” del misceláneo.
  • La lectura en Internet suele convertirse en algo más superficial de lo que nos gustaría. Parte de culpa reside en las muchas distracciones que rodean a los contenidos. Readability se presenta como la solución a esto: elimina lo que flota alrededor del texto y lo pone en el tipo de letra y con el tamaño que nosotros decidamos.
  • El camino de la lectura electrónica se bifurca en dos ramas: las plataformas que trabajan en la nube, siendo necesaria la conexión para acceder a los contenidos, y las que te permiten la descarga del e-book o la compra del libro físico. A la guarda del esperado Google Editions (que dicen los mentideros de la Red que está ya muy cerca) tenemos a los archiconocidos tacañones propietarios: Amazon con su Kindle como lector, la Ibookstore de Apple (la alimentación para el Ipad), la Sony Reader Store, con el mismo esquema que las dos anteriores pero del proveedor tecnológico Sony y, por último, Safari basada en contenido de carácter tecnológico, fruto de la unión de O’Reilly Media y Pearson Technology Group.
  • Web 2.0, software libre y bibliotecas académicas: se acaba de publicar un paper que habla del uso de las herramientas 2.0 y el software libre en tres bibliotecas de la Universidades de Puerto Rico.
  • Y el vídeo de regalo en esta ocasión es un anuncio del futuro de la revista Sports Illustrated en un Tablet. Por fin una publicación ha entendido que ser digital no es trasladarse a la red o a la cacharrería tal y cómo se era en papel. Si no que existe una nueva manera de leer y mostrar los contenidos aprovechándose al máximo de la multimedia:

» Más lecturas breves

WordPress for Dummies

a las 23:52

Hace unas semanas me tuve que preparar un mini-curso para los del departamento sobre WordPress, así que ya que el trabajo está hecho, lo mejor es compartirlo por si a más personas les puede ser de ayuda:

1. ¿Qué es WordPress?

Es un CMS (Sistema de Gestión de Contenidos) especialmente pensado en la publicación de bitácoras pero que puede ser usado para la creación de webs de edición fácil y rápida. Tiene una serie de funcionalidades que vienen en su núcleo (gestión de feeds, búsquedas, etiquetas, categorías, …) y luego se le pueden añadir otras muchas a través de plugins (por ejemplo, un detector de spam).

Con WordPress tenemos dos opciones: crearnos un blog en su plataforma comercial (wordpress.com) o en nuestro propio servidor gracias a su software bajo licencia GPL (wordpress.org). En ambos casos el gasto es cero pero con excepciones. En el primero, determinadas funcionalidades son de pago (por ejemplo, la posibilidad de editar el css de nuestra plantilla) y en el segundo, el coste estará en el servidor en el que decidamos montar nuestro blog.

En 2003, el proyecto b2\cafelog, que contaba con unos 2000 blogs, se dividió en dos ramas: b2evolution y WordPress. De la mano de Matt Mullenweg y Mike Little, la plataforma ganó muchos usuarios coincidiendo con el cambio de licencia de Movable Type.

Es de código abierto, está escrito en php y usa MySQL como gestor de base de datos. Uno de sus puntos más fuertes es la enorme comunidad de desarrolladores que tiene a sus espaldas. Al ser software libre, cualquiera puede escribir un plugin para agregar una funcionalidad determinada: desde la más rara (que nos aparezcan frases del musical Hello, Dolly! en nuestro panel de administración) a la más avanzada. Por esta razón tenemos un gran repositorio de plugins y plantillas para personalizar tanto como queramos nuestro site.

Como curiosidad queda que cada nueva versión recibe el nombre de una leyenda del jazz: Miles Davis, Art Blakey, Charles Mingus, Billy Strayhorn,…

1.1. Pros y contras de WordPress.com y WordPress.org

  • Pros de WordPress.org: es software libre, lo que nos aporta una transparencia de su funcionamiento. Además cuenta con una gran comunidad de desarrolladores que mantienen el sistema vivo y en continua evolución. El contenido es completamente tuyo dado que eres tú el que almacena los archivos y la base de datos del blog. Se tiene un control total sobre el diseño. Permite importar contenidos de otras plataformas como Blogger, LiveJournal, Movable Type,… Se puede ampliar fácilmente la funcionalidad de este gestor de contenidos mediante extensiones.
  • Contras de WordPress.org: somos los responsables de la instalación y del mantenimiento del software y WordPress se caracteriza por las continuas actualizaciones para mejorar versiones anteriores y arreglar los fallos que éstas pudieran tener. Se necesita disponer de alojamiento y de dominio. Las copias de seguridad corren de nuestra cuenta.
  • Pros de WordPress.com la plataforma evoluciona al mismo ritmo que su hermana libre (WordPress.org), lo que hace que sea un sistema que se adapta a las novedades que aparecen en la cambiante Red. Nos ahorramos los gastos de un servidor y un dominio propio, así como el trabajo que supone actualizar la versión del software.
  • Contras de WordPress.com: si deseamos instalar plugins o hacer modificaciones sobre el diseño de nuestra bitácora, deberemos tirar de cartera. Lo mismo que para ampliar los 3 GB de espacio para el almacenamiento de imágenes y ficheros subidos.

WordPress tiene una parte visible para todo el mundo (a no ser que lo hagamos privado mediante un plugin) y una parte desde la que se administra los contenidos. Normalmente, el acceso a esa parte de administración está en la dirección http://urldelblog/wp-admin/

1.2. Tipos de usuarios

Por defecto, en WP, está desactivada la opción de que cualquiera pueda registrarse. Esa opción se habilita desde el panel de control, en Opciones Generales. Allí, conjuntamente se añade el rol por defecto que tomarían esos nuevos usuarios.

En WordPress existen cinco perfiles con diferentes privilegios (si queremos crear otros roles con permisos distintos, tendremos que instalar un plugin que nos provea de esa funcionalidad):

  • Suscriptor: es un mero lector que puede configurar su avatar, su dirección de correo, su página web, …
  • Colaborador: puede crear entradas pero no las puede publicar.
  • Autor: puede crear entradas y publicarlas.
  • Editor: puede crear, eliminar, modificar y publicar entradas (tanto suyas como de otros). Lo mismo con las páginas, las categorías y los enlaces del blogroll.
  • Administrador: a lo que hace el editor, se le suma la administración de usuarios, gestión de plantillas y plugins, así como opciones generales del blog.
Tareas Admin Editor Autor Colaborador
Entradas : Crear nuevas
Entradas : Publicar No
Entradas : Modificar – Eliminar No No
Páginas : Crear No No
Páginas : Modificar – Eliminar No No
Categorías de Entradas : Crear No No
BlogRoll : Mantener No No
Presentacion ( Plantillas y Widgets ) : Modificar No No No
Usuarios : Mantener No No No
Opciones ( Generales, redacción, lecturas, etc ) : Mantener No No No

role-table.jpg
Roles vs. Capacidades de cada rol

2. Instalación

  • Bajamos el paquete de WordPress en castellano
  • Extraemos el .zip descargado y copiamos la carpeta en /var/www/blog (o el directorio desde donde se sirvan las páginas por el apache). La estructura de WordPress es la siguiente:
    • wp-config.php: fichero de configuración. Aquí está almacenado el usuario y el nombre de la base de datos, así como otros datos de seguridad. Es importante que este fichero no tenga lectura más que por el owner del mismo. Este archivo no se machaca con las actualizaciones de WP.
    • wp-admin y wp-includes: carpetas que guardan los ficheros php que hacen que funcione el blog. Ambas carpetas se machacan con las actualizaciones.
    • wp-content: esta carpeta guarda los datos y configuraciones propias del blog. No se toca nada en la actualizaciones de WP. La estructura interna es la siguiente:
      • uploads: todas las imágenes, vídeos y archivos que se suban a la librería de wordpress. Normalmente se organiza por años y luego por meses. Ejemplo: uploads/2009/12 (pero se puede configurar desde Opciones –> Misceláneas).
      • plugins: todos los plugins que tenemos disponibles para el blog (aunque no estén activos).
      • themes: todas las plantillas que tenemos disponibles para “vestir” al blog.
      • languages: aquí van los ficheros .mo de los idiomas en los que queremos tener WP (tanto la parte visible como la de administración). Para indicar luego que el blog esté en un idioma u otro, habrá que añadir una línea en wp-config.php como la que sigue: define (‘WPLANG’, ‘es_ES’); donde es_ES es el nombre del fichero .mo (tienen que coincidir en nombre).
  • Ponemos los permisos adecuados para la carpeta blog (como owner y group al usuario de apache):

chown -R www-data:www-data blog

  • Creamos una BD para wordpress ¡¡IMPORTANTE!! El nombre de la base de datos no puede tener guiones altos
  • mysqladmin -u root -p create nombrebd

  • Creamos un usuario con permisos para esa BD:
  • $ grant all on bd.* to user@localhost IDENTIFIED BY ‘pass’;
    $ flush privileges;

  • Lanzamos desde el navegador la instalación ¡¡IMPORTANTE!! Cambiar el prefijo de las tablas SQL por defecto (wp_) durante la instalación por razones de seguridad
  • Quitamos permisos al fichero wp-config.php
  • chmod o-w wp-config.php
    chmod o-r wp-config.php
    chmod g-w wp-config.php
    chmod g-r wp-config.php

  • Borramos los siguientes ficheros:
    1. wp-config-sample.php
    2. wp-admin/upgrade.php
    3. wp-admin/install.php
    4. wp-admin/installer-helper.php
    5. Si no vamos a importar ningún blog de otro sistema, borramos también: wp-admin/import/
  • 3. Configuración

    Tras la instalación es recomendable configurar las siguientes opciones:

    • Por razones de seguridad, cambiamos el nombre por defecto del usuario administrador (admin). Para ello, creamos un usuario con el rol de administrador, iniciamos sesión con esa nueva cuenta y borramos la de admin, asignando a ese nuevo usuario todo lo creado por admin.
    • Generamos una SECRET_KEY y unas Security Keys y las ponemos en wp-config.php
    • Cambiar los permalinks: en personalizada ponemos /%postname%/ o la forma que más nos guste. A poder ser, que sean url’s “bonitas”.
    • En Opciones –> Discusión dejar sólo marcada la opción “El autor del comentario debe rellenar el nombre y el e-mail” para que no estén todos los mensajes moderados por defecto.

    4. Plugins

    Como hemos comentado anteriormente, WP tiene un núcleo con funcionalidades básicas que pueden ser complementadas por plugins. A continuación vamos a describir algunos de los más interesantes, aunque podremos descargarnos muchos más desde el repositorio de WP, alimentado por todos los usuarios que van haciendo pequeños desarrollos.

    • Akismet: la mejor lucha contra el spam creada por el propio equipo de WP.
    • Contact Form 7: para crear formularios personalizados en múltiples idiomas, con múltiples campos y diferentes validaciones. Por ejemplo, el de contacto.
    • xlanguage: si queremos tener nuestro site en varios idiomas.
    • All in One SEO Pack: para optimizar al máximo nuestro site frente a los buscadores. El complemento ideal es Google XML Sitemaps, que genera de forma automática nuestro sitemap cada vez que se publica algo nuevo.
    • Si queremos que nuestros artículos puedan ser mandados de forma fácil a redes sociales como Facebook, twitter, menéame, etc… Sociable es nuestro plugin.
    • Subscribe To Comments: para permitir a nuestros lectores recibir notificaciones vía correo cuando alguien deje comentarios en determinadas entradas.
    • Members Only – Permite que el blog sólo sea accesible por usuarios registrados (tanto a posts como a la parte de administración).
    • wpDirAuth: si queremos que los usuarios del site se validen contra un LDAP.
    • Yet Another Related Posts: para obtener artículos relacionados con uno ya escrito en base a datos coincidentes como etiquetas, categorías o aparición de palabras en común.
    • Para “corporativizar” WP, se puede incluir un logo en la pantalla de login y en la zona de administración.
    • Para controlar la memoria empleada por WP: WP memory usage control.

    5. Themes

    En WordPress es sumamente sencillo cambiar la apariencia de nuestra página. Tenemos miles de plantillas para elegir, pero también podremos crear la nuestra. Además, desde el apartado de administración se podrá configurar la apariencia de una forma muy visual mediante widgets (en el apartado Apariencia –> Widgets). Aquí aparecen las barras laterales definidas y múltiples funcionalidades que se pueden colocar: comentarios recientes, posts recientes, buscador, una caja donde introducir nuestro propio código html, …

    La estructura básica de un theme es la siguiente:

    • header.php: aquí se define la cabecera de la página.
    • footer.php: aquí se define el pie de página.
    • sidebar.php: aquí se definen las diferentes barras laterales. Para que aparezcan en la sección de widgets para que puedan ser “alimentadas” desde el apartada de administración, hay que registrarlas en el fichero functions.php de la siguiente forma:

    if ( function_exists(‘register_sidebars’) )
    {
    register_sidebar(array(
    ‘name’ => ‘Barra Lateral Derecha’,
    ‘before_widget’ => ‘código html que queremos que se cargue al inicio de la barra’,
    ‘after_widget’ => ‘código html que queremos que se cargue al final de la barra’,
    ‘before_title’ => ‘código html que queremos que se cargue al inicio del título de la barra’,
    ‘after_title’ => ‘código html que queremos que se cargue al final del título de la barra’,
    ));
    register_sidebar(array(
    ‘name’ => ‘Barra Lateral Izquierda’,
    ‘before_widget’ => ‘código html que queremos que se cargue al inicio de la barra’,
    ‘after_widget’ => ‘código html que queremos que se cargue al final de la barra’,
    ‘before_title’ => ‘código html que queremos que se cargue al inicio del título de la barra’,
    ‘after_title’ => ‘código html que queremos que se cargue al final del título de la barra’,
    ));
    }

    • index.php: este es el fichero que carga de inicio del site. Desde aquí se invoca la carga de cabecera (get_header();), barras laterales (get_sidebar();) y footer (get_footer();).
    • single.php: este es el fichero que se interpreta cuando se carga un post concreto.
    • archive.php: igual que single.php pero para las páginas de categorías y etiquetas.
    • functions.php: aquí se recogerán funciones propias del theme. Por ejemplo, si queremos registrar varias barras laterales para que aparezcan en la sección de widgets, indicar a WP dónde están los ficheros de idiomas, quitar filtros, …
    • Templates: podemos crear plantillas con comportamientos propios a los que luego asignar a cada página. Desde el editor de páginas estáticas hay una opción para aplicar plantillas. Para que un fichero php sea interpretado por WP como una template, hay que incluir al inicio del mismo el siguiente código:

    /*
    Template Name: Nombre-plantilla
    */

    • style.css: fichero con los estilos.
    • 404.php: si creamos este fichero, cada vez que algo no se encuentre en el blog, se cargará esta página.

    6. Otros

    • Gestión de idiomas
    • Cómo hacer backup de los datos:

      Tanto en WordPress.com como en la versión instalada en nuestro servidor, la opción de exportar se encuentra en la sección de “Herramientas” de la columna lateral de configuración. Hay que pinchar en el botón “Descargar el archivo de exportación”, lo que nos genera un archivo XML con todos los posts, comentarios, campos personalizados, categorías y etiquetas. Este fichero se puede utilizar para ser importado en otro sitio creado con WordPress. También se puede importar desde otras plataformas, como Blogger, Posterous, LiveJournal y Movable Type, entre otros.

    7. Enlaces de interés

    Todo juntito y estructuradito en el wiki.

    Cinco lecturas breves (V)

    a las 1:19

    Estamos en el apunte capicúa: el quinto capítulo de las cinco lecturas breves. Así que pueden ustedes empezar por el principio o por el final (como más les plazca).

    • La Biblioteca Abierta (Open Library) es un proyecto de la organización sin ánimo de lucro Archive.org (esos que guardan el backup de Internet ;-) ), que pretende generar una página web a modo de registro por cada libro que se haya publicado jamás. Es un proyecto abierto: el software es libre, los datos son públicos, la documentación es pública y abierta, y el sitio es público.
    • Muchos se quieren liberar de la pesada carga que supone la tinta electrónica. Así que no extraña ver movimientos como el de la compra de Touchco (empresa especializada en pantallas táctiles) por parte de Amazon.
    • A través de Centinel llego a la plataforma YouKioske, un lugar donde leer online un montón de revistas (no preguntéis por la legalidad del lugar…): desde la Cosmopolitan hasta las mejores revistas de ciencia, pasando por el mundo del comic, el cine, los graffittis, … Yo me he echado un buen rato ojeando esta revista sobre Banksy.
    • Interesante la aplicación que me pasa la gente de Iradoki: Calibre. Es un programa para la gestión de bibliotecas de e-books: no sólo sirve como conversor; también descarga noticias de la web y las convierte al formato adecuado, funciona con muchos dispositivos, gestiona la colección de libros electrónicos, … y encima es open source.
    • Interesante infografía publicada por Consumer sobre la tinta electrónica. Para saber cómo funciona esa tecnología, qué limitaciones tiene (la velocidad de refresco) y qué ventajas (una vez cargada la imagen o el texto, no consume energía).

    Y como en la anterior ocasión, un vídeo de regalo. Ojito con cómo vienen los nativos digitales :-D :

    Gestionando varios idiomas con WordPress

    a las 23:23

    Ando embarcada en varios proyectos sustentados por el gestor de contenidos WordPress y uno de los requisitos imprescindibles es la navegación multi-idioma. Así que dejaré por aquí mi experiencia, por si a alguien le sirve de ayuda o puede ser enriquecida por otras personas (y a ver si así podemos devolver algo de todo lo que nos ofrece este tipo de paquetes de software libre).

    Lo primero de todo, necesitamos un plugin que consiga gestionar correctamente ese sistema multi-idioma. Para ello, y tras probar unos cuantos, el vencedor ha sido xlanguage. Las características que le hacen caballo ganador:

    • Se encarga de la administración de tantos idiomas como queramos manejar. Esa gestión afecta a los contenidos del blog (tanto posts como páginas estáticas), a las categorías, etiquetas, feeds, theme, etc, …
    • En el theme sólo será necesario contar con una carpeta donde almacenar los ficheros de idioma: un .mo con el nombre del idioma. Si tenemos plugins que generan contenidos, también podremos traducirlos y dejar aquí sus .mo.
    • Una funcionalidad muy interesante es que gestiona el cambio de idioma mediante cookies, así que si cambiamos el lenguaje que arranca por defecto, en próximas navegaciones recordará nuestra preferencia. También detecta el idioma del navegador, para mostrarnos directamente esa opción.
    • Por cada idioma genera una url diferente, lo que hace que los buscadores indexen los contenidos en todos los idiomas. Esa fue una de las razones por las que me decanté por xlanguage y no por qtranslate, que usa la misma dirección para todas las traducciones.

    ¿Y cómo conseguimos traducir nuestro theme y nuestros plugins? Sencillo: todas las llamadas php que muestren cadenas de texto, tendrán que ir con la función _e() o bien con la función __() (la diferencia entre ambas es que _e hace un echo de la cadena. Es decir, echo __(“Hola mundo”); es lo mismo que _e(“Hola Mundo”); ). De esta manera, con las herramientas que nos ofrece WordPress para la localización e internalización, podremos generar un .pot del theme donde introducir las traducciones pertinentes para luego generar el .mo que entenderá nuestro xlanguage.

    • .pot: este fichero se genera de manera automática y recoge todas las cadenas de texto que aparecen en nuestro site. Por cada una de ellas, aparece justo debajo el espacio donde se debe dejar su traducción. Este es un ejemplo donde aparece primero el lugar en el que está dentro del código, la cadena en sí y el espacio donde se dejará la traducción correspondiente:

      #: presentacion.php:36
      msgid “Hello World”
      msgstr “”

    • .po: es el fichero .pot con las traducciones ya incluidas. Siguiendo el ejemplo anterior:

      #: presentacion.php:36
      msgid “Hello World”
      msgstr “Hola Mundo”

    • .mo: fichero binario que entienden las máquinas generado a partir del .po.

    Expliquemos el proceso paso por paso.

    1. Instalamos xlanguage y configuramos todos los idiomas en los que queremos que funcione nuestro blog. Mi recomendación es que usemos el código ISO3166 para identificar a cada uno.
    2. Tendremos que repasar todos nuestros plugins y el theme para identificar dónde se generan cadenas de texto y comprobar que se usa o la función _e() o __(). WordPress usa la librería de internacionalización (i18n) gettext. Si dentro de una cadena de texto aparece una variable, no podemos usar sin más _e(“Tenemos $num amigos”); pero sí printf(__(“Tenemos %d amigos.”), $num);
    3. Después de marcar todas las cadenas a traducir, ahora toca generar el .pot con ellas. Para ello, nos bajamos el script add-textdomain.php de WordPress. Lo lanzamos de la siguiente manera:
      php add-textdomain.php -i domain phpfile.php

      El domain marca el ámbito de lo que traducimos. Podemos poner default, por ejemplo, para el theme y el nombre del plugin para cada uno de ellos. Luego generamos el .pot mediante makepot.php:

      php makepot.php wp-theme el-directorio-del-theme languages/traduccion.pot

      En el caso de un plugin ponemos wp-plugin en vez de wp-theme. Para usar todas estas herramientas tenemos que tener el paquete gettext en nuestro servidor.

    4. Para optener el .mo (fichero binario que entienden las máquinas) del .po (fichero con texto que entendemos las personas), lanzamos el siguiente conjuro desde bash:
      msgfmt fichero_idioma.pot -o fichero_idioma.mo

    5. Ahora sólo falta que el theme sepa dónde encontrar esos ficheros .mo. Para ello usaremos el fichero de funciones de los themes de wordpress: functions.php. Allí agregaremos lo siguiente, teniendo en cuenta que hemos dejado los ficheros .mo en la carpeta languages y que el domain del theme es default:

      function theme_init(){
      load_theme_textdomain(‘default’, get_template_directory() . ‘/languages’);
      }

      Si además queremos traducir algún plugin:

      function theme_init(){
      load_theme_textdomain(‘default’, get_template_directory() . ‘/languages’);
      //Aquí ponemos el plugin cuyo domain es plugin1:
      load_theme_textdomain(‘plugin1′, get_template_directory() . ‘/languages/plugin1′);
      }

    6. Para introducir contenidos, en el título, las categorías y las etiquetas, se separa cada idioma con un carácter definido en la parte de administración de xlanguage. Por defecto se usa el carácter | (el pipe que está en la tecla del uno y la exclamación). Por ejemplo, publicaríamos “Etiketak|Etiquetas” para crear un contenido cuyo título en euskera sería Etiketak y Etiquetas en castellano (siempre se usa el orden de creación de los idiomas). En los contenidos, en el editor de WordPress tenemos unos botones para marcar el idioma de cada parte. Y si lo queremos manejar desde la parte html, sólo tendremos que marcarlo con la etiqueta <span lang=”idioma”></span> (una etiqueta estandarizada por el W3C)

    Enlaces de interés:

    Imagen de ButterflySha (vía Flickr). Licencia CC-by

    De las Ondas a la Red: Educación 2.0 con Pablo Garaizar

    a las 16:35

    Qué mejor forma de celebrar el Software Freedom Day que colgando el audio del primer programa “De las Ondas a la Red“, en el que pudimos charlar con Pablo Garaizar “Txipi” sobre software libre y educación 2.0 (con los controvertidos portátiles que se implantarán en primaria). Una forma estupenda de inaugurar la nueva sección de Hoy por Hoy Bilbao, de la mano de Azul Tejerina.

    Gracias a la inestimable ayuda de Jon Laiseca, redactor de Radio Bilbao, podré ir colgando aquí todos los programas. Finalmente he seleccionado como plataforma para albergar este material ivoox, que me recomendaron los expertos en podcasting a través de Twitter. Desde aquí cualquiera podrá descargar el archivo mp3 para escucharlo en su reproductor. Si lo necesitáis en cualquier otro formato (ogg, wma, …), me lo pedís a través de los comentarios. Que ustedes disfruten del buen criterio de Pablo.

    Open significa abrir, no moldear

    a las 18:00

    ventanaLlevamos ya un tiempo pergeñando el proyecto de Open Deusto y una de las cosas que más me preocupa y que más nos va a marcar su trayectoria va a ser su propio nombre: Open; abriendo la Universidad a la Red.

    Y me preocupa precisamente el grado de esa apertura. Para mí es claro cuál tiene que ser: total. No me vale un agujerito a medida por el que sólo mostrar lo que nos interesa que se vea. Se trata de dejar todas tus vergüenzas al aire: las buenas, las no tan buenas y las peores. Ahora bien, para eso hay que estar preparado y tener una idea muy clara: que te critiquen no tiene por qué ser un problema. Tienes que convertirlo en una ventaja:

    • si te critican sin razón y estás a la escucha, podrás contestar (antes ya lo hacían y muchos terminarían creyendo eso porque nadie les corregía).
    • Si te critican con razón, acabas de descubrir que tienes un problema y podrás ponerle remedio. A veces, desde nuestros puestos de administración hay muchas cosas que pasan desapercibidas a nuestros ojos. Si yo no uso el coche para nada, nunca sabré si hay problemas en el tráfico.

    Y todo esto me viene ahora a la cabeza con la excelente crítica de Txipi tras el chasco que todos nos hemos llevado con la apuesta de humo de Patxi López hacia el software libre. Es una crítica impecable, pausada, con argumentos y sin intenciones partidistas. ¿Y cuál ha sido la respuesta desde el Open Gobierno Vasco? Ninguna. No se ha dado ni una sola explicación de por qué se han tomado las medidas que se han tomado. No pido una comparecencia pública, con una simple respuesta en forma de comentario me hubiese bastado para intentar entender la postura. El método avestruz ya no funciona: callar, meter la cabeza bajo la tierra y esperar a que el temporal pase. Tengo una mala noticia: a las palabras se las lleva el viento pero a los bytes no.

    Acompaño la lectura con este excelente post de Txetxu: crítica y gobierno.

    Foto de My Buffo (licencia CC-by-nc-sa)

    Web 2.0 y Software Libre: una relación de amor-odio

    a las 21:30

    El miércoles pasado, en la semana paréntesis de mis vacaciones, di la charla “Web 2.0 y Software Libre. Una relación de amor-odio“, dentro de los cursillos de julio del e-ghost. Las sensaciones tras la misma fueron muy positivas, dado que hubo un interesante debate entre los asistentes (Mario, muchas gracias por tu activa participación :D ).

    Como siempre, aquí tenéis la presentación y un poco de letra para que se entienda:

    Arrancamos poniendo cara a cara a dos de los baluartes de ambos mundos: Tim O’Reilly por la web 2.0 y Richard Stallman por el mundo del software libre, con dos posiciones bastante diferenciadas y extremistas.

    Por un lado Tim, que en la única conferencia en la que le he visto en directo, preguntó al auditorio si usaba software libre. Se trataba de un evento organizado por Empresa Digitala y los asistentes eran de lo más variopinto, así que pocos fueron los que levantaron la mano. Justo después preguntó quién usaba google para hacer búsquedas. Ahí sí se levantaron todas las manos. Entonces, dijo Tim, todos usáis software libre, porque los servidores de google están montados con herramientas libres. Es un planteamiento cogido con pinzas (es como decir que tú ayudas a los indígenas del Amazonas porque compras un producto que destina el 1% de sus ventas a ayudarles), pero viene genial para analizar las tripas de la Red. Por ejemplo, si miramos las estadísticas de netcraft de junio de 2009, vemos como Apache sigue siendo el servidor web más usado (a pesar de que, desde 2006, momento en que Goddady decidió cambiar sus servidores apache por IIS, no ha dejado de bajar).

    Y en el otro polo tenemos a Richard Stallman, que en septiembre de 2008, hizo unas declaraciones para The Guardian en las que indicaba:

    [...] “Una razón por la cual no deberían usar aplicaciones web es porque se pierde el control. Es tan malo como usar software propietario. Haz tu trabajo en tu propio ordenador con un programa que respete tus libertades. Si utilizas un software propietario o el servicio web de otra persona, estás sin defensas. Estás en las manos de la persona que desarrolló ese software.”

    Como decía antes, una posición un poco extremista pero no falta de razón (como indicó Mario, en ocasiones, necesitamos este tipo de tirones de orejas, que aunque son un poco alejados del realismo, nos hacen plantearnos cosas).

    Está claro que estamos ya metidos en el ciclón del cloud computing y es muy difícil salir de él. Nos reporta tremendas ventajas: acceso a nuestros datos desde cualquier parte, necesitando sólo una conexión a Internet y un navegador, usando servicios que son más fiables que nuestro propio ordenador (con su propio sistema de backups y mayor disponibilidad)… O al menos eso creemos, porque luego suceden casos como el de Magnolia, un sistema de marcadores sociales que hizo crack y perdió todos los datos de sus usuarios, dando de lado a los que tenían cuenta gratuita y devolviendo el dinero a los de pago (pero… ¿cómo se recompensa el tiempo y el conocimiento generado hasta entonces?). Además, siempre hablamos de cajas negras (nadie sabe cuál es el código fuente de google ni qué hace por debajo… igual que sucede con windows). Tampoco conocemos quiénes son los administradores de una plataforma ni cuáles son sus intenciones. Yo, como bofh de Nireblog, tengo acceso a los usuarios y contraseñas y estoy convencida de que más del 50% de ellos usarán ese mismo login y password en otros sitios. Por tanto, nadie nos puede asegurar que se monte una plataforma-trampa para recoger esos datos. Tampoco podemos cambiar esas plataformas y amoldarlas a nuestras necesidades (una de las razones que hicieron a Richard Stallman ponerse en pie de guerra e iniciar el proyecto GNU). La única libertad es la que nos otorgan las APIs. Por tanto, cada vez somos más esclavos de las plataformas: ¿y si cierran? ¿y si cambian de manos y por tanto, de filosofía? ¿y si pierden nuestros datos? ¿y si cambian las condiciones de uso? (bueno, de algunas plataformas, no hace falta que cambien porque ya hemos aceptado términos abusivos desde el inicio). No hay más que echar un vistazo a Twitter cuando se cae GMail para ser conscientes de nuestro nivel de dependencia. De hecho, es la mejor forma de ilustrar la diferencia de significado de la palabra inglesa free. El software libre es free como la libertad de expresión. La web 2.0 es free como la cerveza gratis. Aunque lo que es indudable es que ambos tienen la misma filosofía por detrás: la de generar conocimiento abierto y compartir con la comunidad.

    Y entonces, ¿cuál es la solución ante esto? Sólo hay una salida: los estándares abiertos que nos permitan la portabilidad de nuestros datos de un lugar a otro. De esta forma, seremos capaces de movernos de una plataforma a otra, sin tener ese yugo. Para hablar de esa portabilidad, tenemos que diferenciar entre tres tipos de información que generamos en la Red: los contenidos propiamente dichos, la identidad con la que nos autenticamos en los lugares y las interacciones o relaciones que establecemos. Aunque pudiera parecer que los tres nos pertenecen, casos como el de Robert Scoble nos alertan de lo contrario. A este conocido bloguero americano le cerraron su cuenta en Facebook por intentar exportar los nombres, emails y cumpleaños de SUS contactos a plaxo mediante un script. En un alegato a la incoherencia, Facebook puede rastrear la libreta de direcciones de tu cuenta de correo para buscar contactos pero te prohíbe que los saques de allí (es lo que se conoce como walled garden o jardín cerrado). Y es que el mejor truco del ilusionista 2.0 es hacernos creer que nuestros datos nos pertenecen. Por ejemplo, diariamente alimento mi cuenta de last.fm con las canciones que escucho, participando en una base de conocimiento global que ayudará a otros usuarios a descubrir grupos relacionados. Hasta ahora, todo muy bonito y con un lazo rosa. Pero, ¿puedo obtener mis datos para, por ejemplo, pasárselos a Amazon y que me muestre esos discos y así poder comprarlos? NO.

    DataPortability

    Se trata de una plataforma que trata de plantear una serie de estándares abiertos para generar redes sociales abiertas:

    • OpenID: sistema de autenticación descentralizada. Ya en un post anterior contaba los pros y contras de esta tecnología que nos evita volver a introducir nuestros datos cada vez que nos queremos dar de alta en un servicio.
    • OAuth: protocolo de autorización. Una aplicación web puede acceder a la información de un usuario en otra sin tener que informarle del login y contraseña. Twitter, recientemente, ha adoptado oauth para comunicarse con otras plataformas que usan su api. De esta manera, podemos usar servicios como el de twitterfeed sin pasarle nuestra contraseña de Twitter.
    • OPML: formato xml para esquemas que nos permite exportar colecciones de RSS. Por ejemplo, podemos exportar todos los blogs a los que estamos suscritos en nuestro bloglines y luego importar ese fichero a Google Reader.
    • APML: mapa de intereses de un usuario. Es decir, una forma de almacenar todo lo que nos resulta interesante en una web: una canción en blip.fm, un estado en facebook, un enlace en del.icio.us, …
    • Microformatos: agregando significado semántico a los contenidos. Una forma de que las máquinas puedan interpretar como lo haría una persona. Ejemplos: hCard, XFN, …

    Existen otras tecnologías como OpenSocial que, aunque en su nombre lleva la parte de Open, no nos puede llevar al engaño, puesto que no es un protocolo de comunicación entre redes, sino un estándar para el diseño de gadgets, de forma que si se crea uno, pueda funcionar en Google, LinkedIn, MySpace, Plaxo, Yahoo, … Pero como comentaba antes, lo de open lo limita luego cada plataforma. Por ejemplo, en LinkedIn se reservan el derecho de admisión de gadgets hechos con OpenSocial (por ahora sólo permiten una serie de aplicaciones).

    En la línea de la interoperabilidad también está el open cloud manifesto, firmado por grandes nombres como AMD, eyeOS, Sourceforge, Sun, IBM, … pero sin el apoyo de Google, Microsoft, Amazon, … Y es que el gigante Google suele darnos cal y arena. Está claro que lo que hace, lo hace muy bien. Y su aportación al mundo del software libre no se puede desdeñar: su navegador google chrome basado en chromium (licencias BSD y CC-by 2.5), el sistema operativo para móviles android (apache license 2.0 y GPLv2) y muchas otras aplicaciones que podemos encontrar en google code (gears, jaiku, …). Por no hablar del próximo tsunami de Internet: Google Wave, que nos indican que será libre (cualquiera lo podrá instalar en su servidor), usará un protocolo libre (cualquiera podrá hablar con él) y tendrá una api abierta para desarrollar gadgets usando OpenSocial. De hecho, harán una apuesta arriesgada apostando por el HTML5 (que ahora mismo no funciona en Internet Explorer). Pero a pesar de todos estos regalos que nos hacen los chicos de Mountain View, tenemos que ser conscientes de que un único dueño y señor de Internet es nefasto.

    Licencias en la web

    • GPL: es una licencia copyleft que está más pensada para el mundo del software que para el de la web. Lo que se cree derivado de algo con GPL tiene que mantener la misma licencia. Sin embargo, se pueden hacer modificaciones y no ponerlas a disposición del mundo, dado que al usuario final, lo que le llega es el código HTML. Paquetes con esta licencia: WordPress, MediaWiki, Drupal, Joomla, …
    • Affero Public License (AGPL): a diferencia de la GPL, todas las modificaciones que se hagan deben ser puestas a disposición de todo el mundo. Es curioso como Google tiene vetada esta licencia en Google Code (cada uno ate sus cabos ;-) ).
    • Apache License: es la que utiliza la Apache Foundation. No es copyleft (los productos derivados no tienen por qué tener esa licencia) y es mucho más laxa que las anteriores. Las obras se pueden modificar, se pueden redistribuir y se puede usar para cualquier propósito. Productos con esta licencia: Lucene, Android, …
    • MIT, BSD, … : licencias aún más laxas que permiten usar, copiar, modificar, integrar con otro software y sublicenciar.

    Alternativas web libres

    Excelentes enlaces recibidos a través de Twitter sobre el tema (gracias @txipi y @gallir :D ):

    love & hateOtro año más (y ya van diez), alumnos y profesores de la Universidad de Deusto amantes del software libre se arremangan para preparar unos jugosos cursillos gratuitos (Google Web Toolkit, Gimp, OpenVPN, Asterisk, …).

    Este año participaré dando una charla: “Web 2.0 y software libre: una relación de amor-odio“. Será el 22 de julio a las 16:00. La manida web 2.0 y el software libre tienen una relación un tanto curiosa: por un lado, muchos servicios sociales funcionan gracias al open source y el espíritu colaborativo que se respira recuerda mucho al que siempre ha impregnado a la comunidad del software libre. Por otro, muchas son las voces que claman contra la computación en la nube, la pérdida de protagonismo de las aplicaciones de escritorio abiertas donde sabíamos a ciencia cierta qué hacían y los peligros que tiene frente a nuestras libertades la web 2.0. Intentaré mostrar ambos lados de la moneda.

    Para asistir, no tenéis más que inscribiros aquí. ¿Nos vemos?

    Foto de Francis Storr (CC by-sa)

    Taller de Redes Sociales Virtuales – Presentación

    a las 13:00

    Justo en este preciso momento (bendito programador de posts de wordpress…), las 13:00 hora insular y las 12:00 hora canaria, daré comienzo al taller de redes sociales virtuales que ya os presenté en el pasado post.

    Y para los que siempre os quejáis de que pongo mucho dibujito y poca letra, no preocuparse. Aquí está todo bien contado.

    Categorías

    Archivo