sábado, 29 de mayo de 2010

Full Circle #37 - Mayo de 2010

Está disponible la edición #37 de FullCircle.

Luego de una primera hojeada al contenido de esta edición, destaco:

  • El How-To dedicado a los Screenlets (páginas 12 y 13).

  • La Review sobre Lubuntu,la versión de Ubuntu con el escritorio LXDE (página 20).

Visto en Ubuntu Life

miércoles, 26 de mayo de 2010

Para tener a mano (XIV)

Las recomendaciones de hoy tienen un tinte "educativo". Son varios recursos útiles para quienes se estén formando (o ayudando a formarse a otros) en temas de diseño gráfico y web con software libre:

sábado, 22 de mayo de 2010

Respaldar un sitio SPIP

Estas son las entradas publicadas hasta ahora relacionadas al gestor de contenido web SPIP:

Si bien las pruebas que he hecho hasta ahora con Spip fueron simples, insumieron tiempo y ya generé bastante contenido (la "transferencia" de las primeras 50 entradas de este blog), por lo que es un buen momento para encarar una tarea fundamental: respaldar el sitio.

Para ello vamos al Espacio Privado y allí vamos a Configuración del sitio / Mantenimiento del sitio.

Aquí podemos elegir qué es lo que queremos respaldar (Raíz del sitio para respaldar toda la base de datos) y el respaldo se hace (comprimido o no, según la opción elegida) en el directorio tmp/dump del mismo sitio.

Yo elegí la versión comprimida y luego di Crear una copia de respaldo en la base:

En la siguiente pantalla ("Copia de respaldo"), me permitió elegir de una lista qué tablas de la base respaldar y cuáles no. Por las dudas, elegí todas (hasta las que estaban vacías) y luego di Validar.

Casi inmediatamente mostró una pantalla avisando que había terminado la tarea, dando el nombre y el tamaño del archivo de respaldo y listando las tablas respaldadas.

Para completar el respaldo, descargué este archivo a mi PC y además, descargué la carpeta IMG. Todo el respaldo (el de la base de datos comprimida y el de la carpeta IMG) ocupó unos 3,8 Mb.

En cuanto a la apariencia, y en caso que se utilice un tema (como el Ahuntsic) sin modificar, no sería necesario respaldar nada, ya que luego se podría reinstalar, sin más. Pero, en caso de haber realizado modificaciones sobre el tema (cambios en las imágenes, en las hojas de estilo y/o en los propios archivos html, como cuando los editamos para mostrar los últimos comentarios en la página principal y en las páginas de las secciones) también habría que respaldar estos archivos (por ejemplo, el directorio plugins/auto/ahuntsic del sitio) para luego poder recuperar, también, la apariencia personalizada.

Más adelante probaremos cómo levantar este respaldo, pero hay que tener en cuenta que sólo sirve para ser utilizado con la misma versión de SPIP.

miércoles, 19 de mayo de 2010

Como modificar el Grub en Lucid Lynx

Cuando se realiza una instalación dual, Ubuntu instala el Grub, un gestor de arranque que permite elegir, enseguida de encender la PC, el sistema operativo que se desea utilizar.

En los casos en que a una PC con Microsoft Windows se le agrega una instalación de Ubuntu, en el Grub queda como opción predefinida el arranque en Ubuntu. Si se quiere modificar esto, para que el arranque predefinido sea en Windows, hasta la versión 9.10 de Ubuntu, que usa el Grub, había que editar el archivo boot/grub/menu.lst. Pero, desde la versión más reciente (la 10.04, Lucid Lynx), que usa el Grub 2, hay que abrir el archivo /boot/grub/grub.cfg. En él hay que buscar la entrada (las líneas que empiezan con "menuentry") que corresponde al sistema operativo cuyo arranque se desea que sea el predefinido (teniendo en cuenta que a la primera opción le corresponde el número 0, a la segunda el 1 y así sucesivamente).

Luego, hay que abrir el archivo /etc/default/grub y modificar la línea que dice GRUB DEFAULT=0 al número que corresponda. Finalmente, en una terminal, hay que escribir:
sudo update-grub.


También puede interesarte:

domingo, 16 de mayo de 2010

Para tener a mano (XIII)

Aquí van más sitios recomendados:

  • La Bitácora de jEsuSdA es uno de mis sitios preferidos (y, obviamente, integra "mi lista de blogs"). De este sitio, hoy les recomiendo:

    Pero, más allá de estos dos recursos, lo más interesantes es que ¡le podemos escuchar la voz a jEsuSdA! En una muy interesante entrevista sobre linux, diseño gráfico, linux en la empresa, etc. que le hizo la gente del Podcast Conexión Libre. La entrevista está publicada (y la pueden escuchar) en la Conexión Extra 02. Está realmente muy bien (enterado vía el mismo blog de jEsuSdA).

  • Aquí van unos proyectos en desarrollo sobre los que es interesante mantener un ojo encima:

    • Gnome Nanny: como dice en su sitio, es una sencilla manera de controlar lo que tus niños están haciendo en la computadora. Puedes limitar cuánto tiempo jpor día cada uno de ellos navega por la web, chatea o revisa correos electrónicos. También puedes decidir en qué momento del día pueden hacer esas cosas. Gnome Nanny filtra qué páginas web son vistas por cada usuario, de manera que puedes bloquear las webs no deseadas y tener a los niños disfrutando de internet sin más preocupaciones.
      La versión más reciente, inestabel, es la 2.29.3 (visto en UbuntuLife).

    • Blue Griffon es el muy esperado editor web creado por Daniel Glazman (de la empresa Disruptive Innovations). Aún está en versiones de prueba y, por ahora, solo para Microsoft Windows. Pero, la verdad, es que se ve muy prometedor.

    • ¡Qimo 2.0 Beta 1 disponible!

      Se viene la versión 2 de este sistema operativo para niños, basado en Ubuntu.

    • Se viene lo que se espera sea una revolución en la web: html 5. Así que hay que empezar a prepararse:


  • Un interesante manual de Gimp 2.6 (de José Sánchez Rodríguez y Julio Ruiz Palmero de la Universidad de Málaga).


  • Pdf-tuts.com: muchísimos tutoriales en pdf (visto en el blog de jaar).


jueves, 13 de mayo de 2010

Sin palabras...

Aleti campeón de la Europa League, con dos goles más de Diego Forlán. ¡Qué decir! (Marca.com lo llamó "el uruguayo inmortal").

Para completar la alegría, más tarde, Nacional ganó el clásico.

¡Salú!

miércoles, 12 de mayo de 2010

SPIP: Moviendo el esqueleto (II)

Continúo ejercitando en el tema de los esqueletos de Spip. Resumiendo lo visto en el artículo anterior sobre este tema: había probado cómo hacer para mostrar el título de un artículo específico de los que se encuentran en la base de datos, luego el título y el texto, después una cantidad dada de títulos de distintos artículos. Más adelante, probamos hacer que esos títulos fueran vínculos a las páginas de los artículos completos y, finalmente, vimos cómo mostrar los títulos de los artículos de una sección dada.

En la presente entrada intentaré hacer una especie de resumen de los artículos Bucles y balizas, La sintaxis de los bucles y La sintaxis de las balizas SPIP. Es altamente recomendable que se lean esos artículos originales.

Cómo escribir un bucle

Para entender un poco más lo ejercitado en el artículo anterior sobre Spip, veamos cómo se escribe un BOUCLE. La sintexis del mismo es la siguiente:

<BOUCLEn(TYPE){criterio1}{criterio2}...{criteriox}>
* Código HTML + balizas SPIP
</BOUCLEn>

Todos los bucles de Spip comienzan con la instrucción BOUCLE. Luego viene el nombre del bucle (n) que es a elección del administrador: puede ser un número (BOUCLE6) o una(s) palabra(s). En el caso de usar palabras, es necesario anteponer un guión bajo, por ejemplo:

<BOUCLE_subsecciones...>
...
</BOUCLE_subsecciones>

Después del nombre del bucle, corresponde colocar el tipo de bucle (TYPE). Este elemento es muy importante: indica qué tipo de elementos se desea recuperar de la base de datos. El TYPE se indica entre paréntesis (sin espacios), en mayúsculas, y debe corresponder obligatoriamente a uno de los tipos admitidos por SPIP: ARTICLES, RUBRIQUES, AUTEURS, BREVES, etc. Por ejemplo:

<BOUCLE_subsecciones(RUBRIQUES)...>
...
</BOUCLE_subsecciones>

Los criterios ({criterio1}{criterio2}...{criteriox}) indican simultáneamente:

  • según qué criterios se desea seleccionar los elementos de la base de datos,

  • la manera en la cual se clasificarán o seleccionarán los elementos (por ejemplo: según su fecha, según su título... publicar solamente los tres primeros artículos, mostrar la mitad de los artículos...).

Como los criterios se pueden combinar, es posible generar muy fácilmente peticiones muy potentes a la base de datos. Por ejemplo, para mostrar la lista de los 5 artículos más recientes escritos por tal autor:

<BOUCLE_mismo_autor(ARTICLES){id_auteur}{par date}{inverse}{0,5}>
...
</BOUCLE_mismo_autor>

Algunos criterios funcionan con todos los tipos de bucle, otros son específicos para ciertos bucles.

¿Qué hacer si no hay resultados?

Ante cualquiera de estas consultas hechas en un bucle, puede pasar que no haya resultados. Veamos cómo le decimos a Spip que queremos que haga en este caso:

<B1>
Esta secci&oacute;n contiene los elementos siguientes:
<ul>
<BOUCLE1(ARTICLES){id_rubrique}>
<li>#TITRE</li>
</BOUCLE1>
</ul>
</B1>
Esta secci&oacute;n no contiene art&iacute;culos.
<//B1>

El código opcional anterior (el precedido por <Bn>, en este caso Esta secci&oacute;n contiene los elementos siguientes: <ul>) y el código opcional posterior (el que termina en </Bn>, en este caso </ul>) se ubican antes y después del bucle propiamente dicho y solo se muestran si el bucle extrae por lo menos una respuesta.

El código alternativo (que acaba por <//Bn>) se muestra en el lugar del bucle (y remplazando también los códigos opcionales anterior y posterior) si el bucle no encontró ningún resultado.

Criterios de entorno en cascada

Cada bucle realiza la selección de los elementos extraídos de la base de datos en función de criterios que corresponden al entorno en el cual se encuentra el bucle.

Este entorno se puede definir:

  • por el URL

    Generalmente para acceder a una página de un sitio Spip, junto con la dirección del sitio se debe(n) escribir una(s) variable(s). Por ejemplo: spip.php?page=tutorial&id_rubrique=7.

    Estas variables definen así un primer entorno: el bucle que podríamos llamar "Mostrar cierta página con la información de esta sección" debe entenderse entonces como la "Mostrar la página tutorial, con la información de la sección 7".

  • El entorno proporcionado por los demás bucles.

    Dentro de un bucle, el entorno se modifica para cada elemento del mismo. Al colocar bucles unos en el interior de otros, se heredan así entornos unos a otros.

En suma, mediante el anidamiento de bucles, se obtienen bucles distintos, incluidos unos en otros, que dependen de los resultados de los bucles en los que están situados. Y finalmente, el bucle inicial (el que contiene a todos los demás) depende de un parámetro fijado en la dirección de la página.

También se pueden definir los bucles uno a continuación del otro (y no dentro del otro como en el ejemplo anterior) de manera que bucles sucesivos no se influyan unos sobre otros.

Las balizas

Cada tipo de bucle permite seleccionar cierto tipo de elementos de la base de datos de Spip (artículos, secciones, breves, etc). A su vez, estos elementos están compuestos por otros elementos: título, fecha, texto, etc. Para poder identificar estos elementos dentro de un bucle, es preciso utilizar las balizas.

En un código Spip, a una baliza siempre le precede el signo de numeral (#). Por ejemplo: #TITRE.

Para la siguiente prueba, necesitaremos que en la base de datos algunos artículos tengan colgado o antetítulo (baliza #SURTITRE). Para ello (si no se había hecho antes ya) en el Espacio Privado hay que ir a Configuración del sitio / Contenido del sitio y en el apartado Contenido de los artículos hay que marcar la opción Antetítulo y Validar. Luego hay que ir a editar algunos de los artículos y agregarles antetítulo.

Hecho esto, podríamos modificar el archivo tutorial.html de la siguente manera:

<ul>
<BOUCLE_secciones(RUBRIQUES){id_rubrique}>
<BOUCLE_articulos(ARTICLES){id_rubrique}>
<li>#_secciones:TITRE [<ul><li>[(#SURTITRE*|majuscules)<br>]<a href=#URL_ARTICLE>(#TITRE*)</a></li></ul>]</li>
</BOUCLE_articulos>
</BOUCLE_secciones>
</ul>

El resultado de llamar a la sección 7 en el navegador web (http://www.tusitio.net/spip.php?page=tutorial&id_rubrique=7), se vería así:

Analicemos el código precedente, que es un poquito más complejo que los vistos hasta ahora:

  • El código empieza y termina con las etiquetas de html: <ul> y </ul>, que lo que hacen es abrir y cerrar, respectivamente, la lista desordenada principal.

  • Con <BOUCLE_secciones(RUBRIQUES){id_rubrique}> y </BOUCLE_secciones>, se abre y cierra, respectivamente, el bucle que, en este caso, lleva como nombre secciones. Con esto se selecciona de la base de datos de Spip la sección (RUBRIQUES) que, en este caso y gracias a la variable de entorno proporcionada por la url (id_rubrique=7) corresponde, como ya habíamos establecido, a la sección "Octubre".

  • A continuación, y con <BOUCLE_articulos(ARTICLES){id_rubrique}> y </BOUCLE_articulos>, se abre y cierra, respectivamente, un nuevo bucle, incluido en el anterior, de nombre artículos. Este bucle selecciona de la base de datos todos los artículos de la sección "Octubre".

  • Finalmente, la línea que hace el trabajo interesante: <li>#_secciones:TITRE [<ul><li>[(#SURTITRE*|majuscules)<br>]<a href=#URL_ARTICLE>(#TITRE*)</a></li></ul>]</li>

    • Comienza con <li> y termina con </li>. Con esto se logra que por cada artículo de la sección elegida, se muestre un ítem de la lista desordenada principal abierta desde la primera línea del código.

    • El contenido de cada ítem de la lista se divide en dos partes:
      la primera es la baliza #_secciones:TITRE. Esta baliza hace referenia al título (TITRE) de la sección. Se escribe de esta manera para poder mostrar dentro del bucle incluido en otro, una baliza del bucle de nivel superior. Esto es, si aquí se escribiera la baliza solo como #TITRE, estaría llamando a los títulos de los artículos, ya que estamos dentro del bucle <BOUCLE_articulos(ARTICLES)...>. Entonces, para llamar a los títulos de la sección (que fue invocada en el bucle en el que está incluido el bucle actual) hay que avisarle al bucle que lo que queremos son los títulos cargados en el bucle anterior, por eso se escribe de esta manera: #_bucle:BALIZA, donde _bucle es el nombre del bucle de nivel superior y BALIZA es el nombre de la baliza perteneciente a ese bucle que queremos mostrar.

    • La segunda parte del contenido de cada ítem de la lista se encuentra entre corchetes rectos: [ ... ]. Esto quiere decir que estamos ante un código opcional. Dentro de este par de corchetes se encuentra una baliza entre paréntesis (en este caso #TITRE*).

      El asterisco es para eliminar las transformaciones tipográficas que, por defecto, hace Spip (por ejemplo, espacios insacables antes de las comas, los dos puntos, etc., que se utilizan en la gramática francesa).

      Spip procesa el código opcional y si existe contenido devuelto por la baliza (en este caso, si existe algún artículo en la sección, carga el título y no le aplica las transformaciones por defecto), muestra el código opcional anterior (lo que está entre el corchete recto de apertura y la baliza), el contenido de la baliza (el título del articulo) y el contenido opcional posterior (lo que está entre la baliza y el corchete recto de cierre). De esta manera, en este ejemplo, por cada artículo que encuentre Spip en la sección, generará una nueva lista desordenada con un único elemento (<li> ... </li>) que tendrá el título del artículo como vínculo (<a href=#URL_ARTICLE> ... </a>) a la página del artículo completo.

      Además, como ya deben haber notado, dentro del código opcional anterior aparece, a su vez, otro código opcional: [(#SURTITRE*|majuscules)<br>]. Este código opcional se analiza si el código en el que está incluido dio previamente algún resultado (o sea, para que analice si la baliza #SUSTITRE -colgado o antetítulo- tiene contenido), Spip primero debió haber encontrado el título correspondiente. Además, al antetítulo se le aplica el filtro majuscules, que, como pueden inducir, hace que el texto del antetítulo se muestre todo en mayúsculas.

sábado, 8 de mayo de 2010

Hoy vamos a jugar

Speed Dreams

Uno de los blog que sigo (ver Mi lista de blogs) es Linux for designers de Eckhard M. Jäger, que es un diseñador alemán, que dedica su blog a varios temas relacionados con el diseño y Linux. También nos cuenta en su blog los avances de Speed Dreems, un juego de simulación de carreras de autos, que es un fork de Torcs y de cuyo equipo de desarrollo y mantenimiento él forma parte. En una entrada del 17 de abril anunciaba que la versión 1.4.0 estaba finalmente disponible.

Así que fui al sitio de Speed Dreams (que está diseñado por el propio Eckhard M. Jäger) y de la sección de descargas bajé los dos paquetes .DEB para Ubuntu Karmic de 64 bits (que es lo que corresponde en mi caso): speed-dreams_1.4.0-1~getdeb1_amd64.deb y speed-dreams-data_1.4.0-1~getdeb1_all.deb. Éste último ocupa 1,2 Mb y hay que instalarlo primero (basta hacer doble clic en el archivo) y luego lo mismo con el primero, que ocupa 315,2 Mb. Con esto ya queda instalado el juego, al que se puede acceder vía Aplicaciones / Juegos / Speed Dreams.

Al usar el juego, es evidente que es un fork de Torcs, pero con un feeling más moderno. En cuanto a la jugabilidad, quizás en un tiempo, luego de varias millas, la comente.

Aquí va un video de Speed Dreams en acción:

Omnitux

Vía Ubuntu Life me entero de la existencia de Omnitux. Es una suite educativa muy interesante para niños pequeños. En casa ha tenido un gran éxito.

El instalador, que se puede bajar del sitio, es un archivo .DEB de 129,4 Mb. Les dejo un video de un gringo probándolo (que, evidentemente, no sabe mucho de geografía):

miércoles, 5 de mayo de 2010

Para tener a mano (XII)

De todo, "como en botica":

domingo, 2 de mayo de 2010

Linux+ #65 (#5 on line), mayo de 2010




Actualización (29 de octubre de 2011): Como al sitio de Linux+ le han dado de baja, algunos de los vínculos de esta entrada ya no funcionan. Para que sigan disponibles los interesantísimos artículos de esta revista es que subí esta edición al servicio de issuu.com.
A diferencia de Full Circle, que salió el último día del mes, Linux+ sale al comienzo del mes (le toca el turno a la edición #5 desde su liberación y a la #65 de toda la serie). En esta oportunidad se trata de un PDF de 62 páginas (12,6 Mb).
Del contenido para este mes de mayo, destaco:
  • Entre las páginas 22 a 29: Cómo elegir un buen hosting. Un artículo de Francisco Javier Carazo Gil, que hace una interesante compartativa de servicios de hosting.
  • En el tema de los sistemas de gestión de contenido (CMS) yo, de momento, he optado por Spip, pero no hay que sacarle un ojo de encima a las dos potencias de esta área: Drupal y Joomla!. Entre las páginas 30 a 41, Francisco Ramón Torrado Bea escribe sobre Joomla! en su artículo Moderniza tu web con Joomla!.
  • Y, aunque no he tenido tiempo de leerlo aún, se ve muy interesante (como el mismo autor ya me había avisado) el artículo de Antonio Gómez y María Dolores Noguera: "Menores en redes sociales: software libre para un movimiento social". Va entre las páginas 48 a 54.
Visto en Blog de Jaar.

sábado, 1 de mayo de 2010

Full Circle #36 - Abril 2010




A través de Ubuntu Life me entero que está disponible desde ayer, como se está haciendo habitual los últimos días de mes, la edición 36 de Full Circle, que además, en esta oportunidad y festejando sus 3 años, rediseñó su sitio web.
Del contenido de esta edición, además de las secciones habituales, se destacan:
  • las noticias del lanzamiento de la nueva versión de Ubuntu y de su manual oficial.
  • la tercera y última parte del artículo sobre retoque de imágenes en Gimp
  • Un interesante How-to para usar más eficientemente la herramienta de búsqueda de Google.
  • Y, finalmente, en la sección Top 5, comparan cinco aplicaciones de escaneo: Xsane, Scan Tailor, GOCR, GnomeScan y gscan2pdf.