Los tuitlinks de la semana (24)

Edición breve y tardía (la semana de los tres viernes, ya se sabe), de los mejores enlaces aparecidos por mi cuenta de Twitter (@chechar) la semana pasada…

Ideas para regalar

RT @_rser Nerd Holiday – Gift ideas for the nerd in your life: http://nerdholiday.tumblr.com

luego que nadie diga que no sabía qué regalarme :P http://j.mp/vWgPMC

el Optimus Aux de Art Lebedev, en pre-order. 367 euros de nada (a 24 la tecla). #quiero (¿o era #necesito?) http://j.mp/w4Eroq

Los de diseño y desarrollo web

pretty close to my feelings on current UI design: «The condescending UI» http://j.mp/syuumh

Y el «especial Bruce Lawson». Primero, dos sobre las limitaciones (filosóficas y tecnológicas) del ‘responsive design’:

un ‘rant’ anti-Responsive Design de hace año y medio con bastantes puntos interesantes (via @brucel) http://j.mp/uHuQT9

Notes on Adaptive Images (yet again!), by @brucel http://j.mp/vATCAL

…y después uno de privacidad.

RT @brucel Know your elements: The top 100 third party elements that watch what you visit on the web http://www.knowyourelements.com/ #privacy

Finalmente, la amenaza de Chrome (para los desmemoriados, recordar que el advenimiento de Internet Explorer 6, en su momento, fue celebrado como una lluvia de maná divino):

lectura obligatoria: Is Google Chrome the New IE6? http://j.mp/rONhJN

Y los audiovisuales para cerrar

The Fundamental Elements of Design http://j.mp/tN6kac

Black Keys + Colbert… http://j.mp/rIuUJf

por si tenéis prisa. un año de hits musicales. en cuatro minutos ocho segundos

[youtube]http://www.youtube.com/watch?v=HcMsGX855zo[/youtube]

Mi primera plantilla WordPress. ¡Chispas!

(Si no habéis pillado la cita del título de la entrada, dad gracias. Si la habéis pillado, disimulad.)

Captura de la página web laiablasco.com
Simple. Que suele ser un elogio.

Pues sí, después de años de hacer «chapucillas WordPress» (pequeños apaños a las plantillas que ha lucido este blog a lo largo de estos últimos ocho años, y a algún otro sitio por el camino), tras unas cuantas (bastantes, de hecho, que uno es lento) horas de trabajo ha salido del horno laiablasco.com, portafolio para la diseñadora del mismo nombre… El diseño no es mío, pero la implementación sí :-). Afortunadamente para un WordPressero sin mucha experiencia como yo, la propietaria del sitio opina que un portafolio debería esconderse y dejar sitio a su contenido, o sea que la cosa ha resultado relativamente sencilla de montar. Aún así, dejo un par de anotaciones que me han resultado importantes…

Maquetado, con Boks

Ya había hablado de Boks hace un tiempo. Y desde entonces no he encontrado ninguna herramienta que supere su combinación de simplicidad y facilidad de uso, ubicuidad (multiplataforma gracias a correr sobre Adobe Air) y precio (gratis, difícil de batir)…

Captura de pantalla de Boks con un esbozo del diseño de laiablasco.com
(Las imágenes 'placeholder', por cortesía de dummyimage.com)

Tres cosas más a destacar:

  • Me incliné por una parrilla de 24 columnas de 40 píxels de ancho, sin ‘gutters’ (los canales de separación entre columnas). Un error: los ‘gutters’ son muy importantes y ahorran bastante trabajo. No me volverá a pasar. Espero.
  • Cada vez que te casas con una parrilla predefinida te casas también con su familia, que suele componerse de clases poco o nada semánticas que suponen, a la larga, un riesgo de código espagueti poco mantenible. Queda en la lista de cosas por hacer una limpieza de clases, por tanto. Para cuando toque, un recurso: Blueprint’s compress.rb.
  • De momento, ni código ‘responsive’ ni leches. 960 píxels y tira millas. Diré en mi defensa que los navegadores móviles, en general, sacan algo bastante digno del maquetado tal y como está. Pero queda también en la lista de deberes, al menos, un diseño linealizado a una sola columna de la ‘home’ al bajar de, pongamos, 720 píxels de ancho. Si el CSS es más semántico cuando me ponga (ver punto anterior) no deberia ser complicado.

Alguna cosilla de código

La parrilla tres por tres imágenes implica algún pequeño cambio al bucle de WordPress para poner las clases necesarias a cada primer y tercer ítem. Bastante trivial, de hecho (aunque muy probablemente exista una solución más inteligente). Basta mantener una variable orden_post (o similar) y fijarse en si es 1 o 3 módulo 3 (¿veis como las congruencias servían para algo?):

  <?php 

  $orden_post=0;
  while ( have_posts() ) : the_post(); ?>
  
   <?php $orden_post++; ?>
   <div class="span-8 item 
		<?php if ($orden_post%3==1) echo 'clear '; 
		      if ($orden_post%3==0) echo 'last '; ?>
	">

	...

   </div>

   <?php endwhile; ?>
Captura de pantalla correspondiente a un solo ítem del portafolio
La última errata siemre se esconde en un título...

Otro punto frecuente al personalizar WordPress es la necesidad de sacar una imagen de cada entrada como destacada a la portada. En este caso (comparad la captura anterior con la que primera de este nanoartículo) podemos querer que en portada aparezca un recorte de la imagen principal, y no un mero escalado. El truco, curiosamente, es no hacer nada, dado que WordPress ya viene preparado por defecto para esta eventualidad (de haberlo sabido antes, la de horas que me habría ahorrado). Sólo hace falta indicar en el functions.php que, por ejemplo, queremos

   set_post_thumbnail_size( 310, 230, true );
   add_image_size( 'imagen_entrada', 960, 9999);

y después usar adecuadamente las herramientas de edición de imagen de WordPress para indicarle que en el ‘thumbnail’ queremos un recorte diferente:

Captura de pantalla de la herramienta de edición de imágenes de WordPress
Fijaos en dos cosas: primero, podemos especificar numéricamente el tamaño del recorte (aunque WordPress ya se encarga de forzar las dimensiones que hayamos establecido); segundo, y más importante, podemos especificar que el recorte sea sólo para la miniatura.

Otro detalle que quizás merece atención es el hacer que tanto el nombre de categoría del h2 como los enlaces de cada ítem vayan en el color de la categoría (diseñadores… (-: ). tanto una cosa como la otra están hechas con parches bastante poco bonitos que buscan sustitutos más elegantes (si sabéis de alguno, para eso están los comentarios ;-) ). Para el título, por ejemplo,

<h2>
<?php if (is_single()) {
 echo ('&gt; ');
 foreach((get_the_category()) as $category) {
  echo '<span class="' . $category->slug . 
       '"><a href="http://www.laiablasco.com/portfolio/cat/' . 
       $category->slug . '">' . $category->cat_name . 
       '</a></span> ';
 }
 }; if (is_category()) {
  echo '<span class="generic">&gt;</span> '; single_cat_title();
 }
?>
</h2>

(y definimos, además, en el CSS, clases ‘alineadas’ con los ‘slugs’ de cada categoría, como .category-graphicdesign h2, por ejemplo).

Finalmente, apuntar que los metadatos de cada ítem (técnica, medidas, enlaces y demás) están hechos usando los campos personalizados de WordPress, una solución, que, me da a mí, a la larga será mejor reemplazar con taxonomías o alguna otra solución…

En fin, espero que a alguien le resulte de utilidad en algún momento el tostón. De momento, a mí me ha servido para organizar ideas :-).

Educación en estándares web, en abierto. ¿Te apuntas?

Como sabéis los que seguís este blog, uno de mis intereses personales y profesionales es el de la educación en estándares web. Tengo la suerte de ser el responsable de la asignatura de Lenguajes y estándares web del grado de Multimedia de la UOC, en la que pretendemos formar a nuestros estudiantes en el buen uso del HTML y el CSS, respetuoso con los estándares, la accesibilidad y demás.

Cuando comenzábamos a desarrollar la asignatura (de esto ya hace una buena temporada…) comenzaba a circular por la web una iniciativa de Opera, el Web Standards Curriculum, que ha ido creciendo desde entonces hasta convertirse en el Web Standards Curriculum del W3C. Si seguís el enlace podéis ver que un buen montón de los artículos cuenta con traducciones al español y al catalán. Si se me (nos) permite colgarnos la medalla, muchas de ellas son mérito de la UOC, que se encargó de ello y las publicó, en abierto, como curriculum de estándares web Opera hace un año y medio ya (hace unos meses añadimos la traducción de unos cuantos artículos sobre HTML5).

A través de la traducción tuve el gustazo de conocer a Chris Mills, evangelista de los estándares web para Opera (y mejor persona (-:), «culpable» máximo de la existencia del curriculum y, además, actualmente, uno de los «chairs» del Web Education Community Group del W3C que pretende, ya os lo habréis imaginado, mejorar la todavía tristemente pobre educación web disponible para todo aquel (no son pocos) que quiera dedicarse a esto del diseño y el desarrollo web.

Al grano

Una de las cosas de las que son conscientes en el grupo es que es muy necesario un esfuerzo de internacionalización y localización para cruzar las barreras del inglés. Y es por ello que se han dedicado a lanzar un Spanish and Catalan education project cuyo primer objetivo es llevar todas las traducciones existentes al wiki del W3C y, después, actualizarlas y, sobre todo, añadir nuevos y mejores contenidos y ponerse en contacto con la comunidad de formadores y estudiantes para mejorar en la medida de lo posible el estado de la cuestión.

Por aquellas cosas de la vida, ahora mismo figuro como ‘coordinador’ (un cargo del que me encantaría abdicar cuanto antes, por cierto…) del proyecto. Que quiere decir que…

Se buscan voluntarias y voluntarios

Interesante proyecto, ¿no? Las barreras de entrada son mínimas. En una primera fase se busca gente capaz de copiar y pegar desde Mosaic y el resto de traducciones al wiki del W3C. Después necesitaremos a quien quiera y pueda revisar todos esos contenidos, cruzarlos con las actualizaciones que se han hecho en inglés para ponerlos al día, voluntarios de traducción y creación de materiales y lo que vaya saliendo.

¿Y cómo me apunto? Esa es la pregunta que quería oir :-). Las instrucciones (en inglés, que resultará útil aunque, como decía, hay tareas que se pueden realizar sin dominar el idioma de Shakespeare). ¡Nos vemos por allí!

CSS para impresión: saltos de página y control de viudas y huérfanos

(De vez en cuando uno se encuentra con algo que apenas conoce, se pone a profundizar y no encuentra un recurso en dos segundos en Google que resuma de manera efectiva y eficiente lo que hay que saber sobre el tema. Seguramente porque no he buscado bien, pero ese ha sido el caso después de leer 6 Things I Learned About Print Stylesheets From HTML5 Boilerplate. Por tanto, dejo mi resumen aquí.)


Uno de los puntos en los que casi nunca pensamos cuando hacemos el CSS de una página es el de los estilos para impresión. Es posible que en un futuro cercano, de dispositivos móviles ubicuos y acceso a internet bueno-bonito-y-barato (podemos soñar, ¿no? :-P) dejemos de imprimir páginas web, pero hasta que eso llegue de-verdad-de-la-buena, pasa con frecuencia que imprimimos páginas web con resultados que dejan bastante que desear. No hablaré ahora de @media, sino de cinco propiedades CSS (CSS2, además, especificadas aquí) que, me da la impresión, son unas grades desconocidas y nos permiten mejorar algunas cosas sin mucho esfuerzo.

Las tres primeras de dichas propiedades son page-break-before, page-break-after y page-break-inside que, como su propio nombre indica, impiden saltos de página antes, después o dentro del elemento HTML que especifiquemos, respectivamente. Así, por ejemplo, podríamos usar h2 { page-break-after: avoid; } para evitar que un título de segundo nivel fuese lo último impreso en una página, cosa que lo separaría del párrafo que siempre viene a continuación en nuestro diseño, si fuera el caso. O, en caso que usemos títulos de tercer nivel muy largos, también nos podría interesar h3 { page-break-inside: avoid; }. Los valores permitidos para estas tres propiedades son auto, always (útil para elementos que queremos como final de página), avoid, inherit y left o right, que fuerzan uno o dos saltos de página antes o después del elemento, de forma que la siguiente página sea par (left) o impar (right).

Las otras dos propiedades son orphans y widows que, respectivamente controlan la aparición de huérfanos y viudas en el texto impreso (un huérfano es una línea que se queda sola al inicio de una página, mientras que una viuda es una línea que se queda sola al final). Por ejemplo, p { orphans: 3; widows: 3; } indica al navegador que debe hacer todo lo posible para que un párrafo no tenga menos de tres líneas ‘colgadas’ al inicio o final de una página.

¿Y el soporte de los navegadores? Uno esperaría que algo que es parte de CSS2 ya sería universal desde hace eones. Casi. Según la wikipedia, quedan los siguientes problemas:

  • Firefox y los navegadores Webkit (esto es Chrome y Safari), para page-break-before y page-break-after, sólo soportan los valores always y auto. No servirán de nada, por tanto, avoid, inherit y left o right. A ver si algún día implementan, al menos, avoid. Sirva como acicate el recordatorio de que que Internet Explorer lo tiene desde la 4.0 (allá por el jurásico superior) y que Opera lo tiene también desde hace unos cuantos eones.
  • Firefox, además, no implementa ni page-break-inside ni widows ni orphans :-(.

Aún a pesar de la falta de soporte de algunos de los navegadores más populares, no deja de ser un detalle tener en cuenta el CSS para paginación para los usuarios que disfrutan de navegadores más conscientes de la importancia de la impresión, especialmente en sitios en que anticipamos que los usuarios se van a llevar el contenido con ellos en papel.


Yapordiós. Es publicar la entrada y aparecer How To Set Up A Print Style Sheet

Los tuitlinks de la semana (21)

Los de mirar atrás

sensacional reportaje de 1979 sobre informática en RTVE. back to the futurehttp://j.mp/vUCvBA

10 años de historia de @mosaicUOC en una foto. faltan @albaladejo, @roserrr, @_rser, @davidguerrero y algunos más, pero… http://j.mp/w0Du8x

a punto de perderse otro trocito de la historia de Yahoo :-( http://j.mp/tIpe3n

Los de desarrollo web

#wtf Mozilla Adds Flash to Firefox for Android http://j.mp/vMzfeZ

RT @scottmcmillan A new direction for web applications http://bit.ly/o73Irx

#imprescindible HTML5Weekly http://j.mp/u03TM9

The differences between IE9 on the desktop and IE9 on WP7 http://j.mp/vlwwyP

Andy Baio: Think You Can Hide, Anonymous Blogger? Two Words: Google Analytics http://j.mp/vWgNLn

encomiable propósito. veremos qué da de sí: W3C Announces First Draft of Standard for Online Privacy http://j.mp/rsVa4E

Y el visual para cerrar

por si alguien no ha visto aún el timelapse en paralelo del Exploratorium de San Francisco. imperdible

[youtube]http://www.youtube.com/watch?v=PNln_me-XjI[/youtube]