Contenido

Parche XSS para WordPress 2.1.2

27 Mar

+ 12

Parece que la nueva versión de WordPress empieza a parecer un colador y se detectan pequeños descuidos que podrían comprometer nuestro blog.

Problema

El problema radica en el tratamiento del parametro que indica el año a la hora de filtrar y compromete directamente la función wp_title() mediante XSS.

http://www.yourdomain.com/?year=xss%3C/title%3E%3Cbody%20onmousemove=document.write(document.cookie);%3E%3C/body%3E

Solución

 Editamos la función wp_title() del fichero wp-includes/general-template.php

Buscamos:
if(!empty($year)){
$title = $year;
}
Reemplazamos:
if(!empty($year)){
$year = (int)$year;
$title = $year;
}

Habari, ¿developer release?

27 Mar

+ 2

Al parecer, los chicos de Habari se están acercando a la primera developer release, que será una versión muy básica y pensada exclusivamente para los desarrolladores, de Habari. La gente tiene puestas en Habari grandes esperanzas como sucesor de WordPress, pero aún está muy verde.

Convierte textmate en tu editor de blogs

27 Mar

+ 14

Para desarrollar en el mac he probado varias aplicaciones, Textmate es una de las que más me gusta, aunque no le he cogido el punto todavía. Apesar de ello, soy consciente del potencial de este software y por ello me obligo a usarlo para que con el tiempo pueda defenderme con él.

Además de para desarrollar, Textmate está pensado para muchas cosas más, entre ellas como editor de blogs. Si gracias a la interacción con el xmlrpc de WordPress (y otros sistemas de blogs y CMS’s) podremos insertar, editar los posts de nuestro blog.

Configuración

Para poder acceder a nuestro blog debemos configurarlo. Para ellor iremos a Bundles > Blogging > Setup Blogs

imagen-1.png

Una vez alli nos abrirá un fichero que tendremos que editar para añadir nuestro blog. Añadiremos nuestro blog de la siguiente forma.

imagen-2.png

nombre_blog       http://dirección_de_tu_blog (o http://autor@dirección_de_tu_blog).

La configuración ha concluido :D. Fácil no?

Postear en el blog 

Para postear únicamente tendremos que dirigirnos a la ruta Bundles > Blogging > Post to Blog.

imagen-9.png

Recuperar los posts

Quizas la opción más interesante es la posibilidad de modificar los posts antiguos directamente desde el editor. Para ello se encargar de recuperar ultimos posts permitirte descargarlos para ser modificados y posteriormente ser subido al servidor.

Para ello iremos a Bundles > Blogging > Fetch Post

imagen-8.png

Y despues de indicar la contraseña de acceso, seleccionaremos el post a modificar.

imagen-7.png

Una vez seleccionado veremos los datos referentes a esa entrada, ya podremos editarla a nuestra voluntad.

Crear un artículo desde una plantilla

imagen-4.png

Tambien nos es posible crear una plantilla para nuestros artículos en File > New from template > Blogging > Blog Post (Textfile)

imagen-6.png

Entonces nos aparecerá el metadata necesario para la creación del artículo,  por defecto aparece únicamente el title, y podemos conseguir el resto de metadatas desde Bundles > Blogging > Headers > …

imagen-5.png

Añadir imagenes 

Textmate dispone de la posibilidad de arrastrar imagenes directamente al editor y este se encarga de subirlas directamente al servidor… una maravilla.

Previsualización

Mientras estás editando tus artículos puedes ver como ván quedando directamente desde el editor. Para ello basta con dirigirte a Bundles > Blogging > Preview.

imagen-10.png

Una verdadera maravilla. Por cierto, este post está creado desde Textmate 😉

 

frase #55

26 Mar

+ 5

¡Espartanos! ¡Esta noche cenaremos en el INFIERNO!

Leónidas I, 300

Nace Blog de Blogs

26 Mar

+ 3

Logo BlogdeBlogs

BlogdeBlogs es una nueva de red de blogs españoles que se ha formado poco a poco y en silencio, creando un grupo de blogs que ya están dando de que hablar en la blogosfera.

Disponemos de un abanico de 5 blogs temáticos dedicados a lo que creemos que es más interesante para nuestros lectores, posiblemente alguno ya lo conozcáis.

BdB está formado por un gran equipo de profesionales del que tú puedes formar parte.

La verdad es que no sé cómo ha sucedido, pero poco a poco Rebeca y yo hemos ido creando blogs, y sin darnos cuenta ya tenemos 5 y otros 2 que saldrán próximamente. Y a raíz de querer unificarlos todos un poco más y de autopromocionar unos con los otros decidimos montar la red de blogs.

Estos son los afortunados:

  • BCNHoy. Metroblog sobre Barcelona. Ir.
  • HighMotor. El mundo del motor a un click. Ir.
  • TengounMac. Blog de nuevos maqueros. Ir.
  • LoHeVisto. De todo un para pasar un buen rato. Ir.
  • GuiaMaximin. Guia de restaurantes españoles. Ir.

Si tenéis alguna sugerencia o queréis decirnos algo sobre nuestro pequeño proyecto, podéis poneros en contacto con nosotros a través de este formulario.

Invito a todos los que queráis a que promocionéis esta nueva red de blogs con un post en vuestros respectivos blogs, con un simple copy-paste vale. Gracias de antemano 😛

Visto en Inkilino

Aclaración:

No tengo nada que ver con Blog de Blogs, las preguntas por favor enviarlas a inkilino

Twitter hace amigos

26 Mar

+ 10

Cada vez más twitter aparece en los posts de la blogosfera y la verdad es que tiene algo que engancha… aunque haya gente que no opine lo mismo. Personalmente me parece un proyecto chorra que gusta, y lo más importante, crea comunidad.

Una muestra de que twitter hace amigos 😉

Matt me  añade al Twitter

Manual de buenas tablas semánticas

25 Mar

+ 18

Introducción

En un mundo en el que el CSS ha ganado la batalla a las tablas como técnica de diseño, en un mundo en el que la semántica se ha antepuesto al diseño aparecen tablas semánticas, un concepto que apesar de ser lo más normal y obvio del mundo mucha gente desconoce.

Antes de seguir, hay que comentar que son las tablas y para que se han de usar. Lamentablemente mientras navegas por internet te encuentas páginas que en apariencia son bonitas pero al mirar el código sientes unas nauseas tan profundas que recuerdas aquellas papillas que te dieron cuando eras un enano. Generalmente esto no es culpa del desarrollador que como todo en esta vida se deja corruptar y sucumbe a las demandas del cliente… su estomago.

Entre estas aberraciones te encuentras de todo, pero quizas lo más sangrante sean los diseños basados en tablas…tablas anidadas y demás engendros que hacen que las úlceras de cualquiera sangren. Diseños en los que una tabla gigante engloba a centenares de tablas menores que a su vez engloban otras y así infinitamente.

Apesar de estos usos denigrantes las tablas deben existir. ¿Por que? Por que tienen una utilidad definida, tabular datos. El usar <div />, <span />, o cualquier otro tag para tabular datos lo considero (ojo, opinión personal) la misma aberración que usar tablas para maquetar. Cada cosa se ha de usar para lo que se ha de usar… he ahi la primera ley de la web semántica.

Apesar de servir para tabular datos las tablas del pleistoceno siguen siendo poco semánticas y por consecuente poco útiles en el nuevo mundo de la maquetación web. Para solventar este problema la mejor y más óptima forma de hacerlo es conocer los tags que podemos usar con las tablas y aprender cuando es el mejor momento para usarlos.

Simulación práctica 

Intentemos imaginar que somos un robot, no uno como bender, sinó uno que trabaja para cualquiera de los buscadores web que ahora mismo están preparando una nueva revisión a la lectura de datos, adaptándose a las exigencias de la web semántica. Imaginemos tambien que llegamos a una página y nos encontramos algo así.

 <table width="100%" border="0">
 <tr>
 <td> Contenido realmente interesante que el usuario puede necesitar.</td>
 </tr>
 </table>

Si somos un robot listo, probablemente nos saltaremos los tags he iremos directamente al texto, esto solo demostraría que somos demasiados listos, por que estamos obviando tags que pueden contener datos importantes para el contenido, se trata del contexto del contenido. Este contexto debe ser tratado por ese motivo un robot no debe olvidar que lee texto.

Entonces, ¿que hemos leido al entrar en la página? Tabla de 100% y borde 1 tiene un TR y un TD.. parece alemán…. y no lo vas a entender ni leyendoló varias veces. Si el desarrollador te hubiera ayudado a entender lo que estabas leyendo quizas ahora podrías conocer el alemán de una forma fluida y podrías, quien sabe,… ligarte alguna por aqui en la playa… 😀

Por el bien del robot, y de su vida sexual, debemos plantearnos el hacer las cosas bien. Esto al final nos reportará mejores resultados a la hora de indexar nuestro sitios y en un futuro los usuarios de estos buscadores obtendrán resultados más exactos gracias al granito de arena que podemos ir colocando cada uno de nosotros.

Tablas semánticas

Tags

<caption>

Este tag nos ayudará a indicar el nombre de la tabla que estamos implementado, aportando información acerca del contenido de la tabla.

<table>
 <caption>Nombre de la tabla</caption>
 <tr>
  <td>DATOS 1</td>
 </tr>
 <tr>
  <td>DATOS 2</td>
 </tr>
</table>

<th>

Nos indica que se trata de un encabezado,  y debemos indicar mediante el atributo scope el tipo de encabezado del que se trata, siendo posible usar col (Columna) o row (Fila).

<table>
 <caption>Nombre de la tabla</caption>
  <tr>
  <th scope="col">COLUMNA 1</th>
 </tr>
 <tr>
  <td>DATOS 1</td>
  <td>DATOS 2</td>
 </tr>
</table>

<thead>

Este tago nos ayudará a mejorar la estrutura de nuestra página e indicaremos que fila ha de ser tratada como el encabezado de la tabla. Similar a <th>; pero orientado a toda la fila.

<table>
 <caption>Nombre de la tabla</caption>
 <thead>
  <tr>
   <th scope="col">COLUMNA 1</th>
   <th scope="col">COLUMNA 2</th>
  </tr>
 </thead>
...
</table>

<tfoot>

Al igual que <thead> nos ayuda a indicar que esta fila corresponde al pié de la página. Curiosamente se ha de escribir antes del <tbody> ¿alguien sabe por que?.

<table>
 <caption>Nombre de la tabla</caption>
 <thead>
  <tr>
   <th scope="col">COLUMNA 1</th>
   <th scope="col">COLUMNA 2</th>
  </tr>
 </thead>
 <tfoot>
  <tr>
   <th scope="col">PIE 1</th>
   <th scope="col">PIE 2</th>
  </tr>
 </tfoot>
 <tbody>
....
 </tbody>
</table>

<tbody>

Este tag nos indica el contenido de toda la tabla y nos aporta la información de que en su interior se encuentran los datos tabulados.

<table>
 <caption>Nombre de la tabla</caption>
 ....
 <tbody>
  <tr>
   <td>DATOS 1</td>
   <td>DATOS 2</td>
  </tr>
  <tr>
   <td>DATOS 3</td>
   <td>DATOS 4</td>
  </tr>
 </tbody>
</table>

<colgroup> y <col>

Se encargan de crear un grupo de columnas, este grupo puede ser especificado de dos formas, mediante el atributo span que especifica el número de columnas, o mediante el tag <col> para cada columna en concreto.
<col> se encarga de especificar atributos a una columna detérminada.

<colgroup span="40" width="20">
   </colgroup>

<colgroup> <col width="20"> <col width="20"> ...un total de cuarenta elementos COL... </colgroup> 

Atributos

scope="col|row"

Este atributo ha sido el elegido para indicar los tipos de datos que representan las celdas de una tabla pudiendo ser columna (col) o fila(row).

<table>
 <tr>
 <th scope="col">Food</th>
 <th scope="col">Calories</th>
 <th scope="col">Fat</th>
 <th scope="col">Carbs</th>
<th scope="col">Protein</th>
 </tr>
 <tr>
 <td scope="row">McDonald's Big Mac</td>
 <td>600</td>
 <td>33</td>
 <td>50</td>
 <td>25</td>
 </tr>
 ...
</table>

colspan y rowspan

Son los encargados de definir el tamaño de una celda. Funcionan indicando el número de celdas que van a usar. Si indicamos que una celda tiene un rowspan de 2 estaremos indicando que se trata de una celda que va a ocupar 2 celdas dentro de esa fila.

<table>
<caption>Nombre de la tabla</caption>
<tr>
<td colspan="2">2 columnas</td>
</tr>
<tr>
<td rowspan="2">2 Filas</td>
<td>Fila</td>
</tr>
</table>

sumary

Este atributo nos ayuda a indicar información no visual a los navegadores acerca de los datos indexados a continuación.

<table sumary = "Resumen del contenido de una tabla">

headers

Este atributo especifica un listado de cabeceras para las celdas, de esta forma podemos sobrecargar de información cada celda con contenido no visual que los lectores de pantalla (nuestro querído robot) podrá interpretar mejor.

<table>
<tr>
<th id="food">Food</th>
<th id="calories">Calories</th>
<th id="fat">Fat</th>
<th id="carbs">Carbs</th>
<th id="protein">Protein</th>
</tr>
<tr>
<td id="wendys">Wendy's Big Bacon Classic</td>
<td headers="calories wendys">580</td>
<td headers="fat wendys">29</td>
<td headers="carbs wendys">45</td>
<td headers="protein wendys">33</td>
</tr>
<tr>
<td id="bun1" headers="wendys">bun</td>
<td headers="calories bun1 wendys">200</td>
<td headers="fat bun1 wendys">2.5</td>
<td headers="carbs bun1 wendys">38</td>
<td headers="protein bun1 wendys">7</td>
</tr>
...
</table>

Diseño de tablas 

Creo que no hace falta decir que todo el diseño de las tablas debén siempre estár definidos en nuestros CSS, de esta manera podremos modificar el aspecto siempre que nos apetezca sin tener que modificar la estructura de nuestro HTML. El atributo border… daña la vista 😀 

El futuro de las tablas

Aún es un poco pronto para hablar del futuro de las tablas, pero lo que está claro es que seguirán ahi y tendremos que vivir con ellas. Nuevos tags, nuevos atributos nos ayudarán a hacerlas cada vez más semánticamente correctas y poder facilitar el trabajo a nuestros amigos los robots dando unos resultados más fiables.

Información

WordPress integrará soporte para slideshow y mapas

23 Mar

+ 3

Esta mañana leyendo los feeds me encuentro con esta noticia que creo que hará las delicias de más de un usuario de WordPress. Al parece en la nueva versión se integrará un soporte para facilitar la insercción de slideshows apartir de los creados en RockYou, un sitio como flickR pero orientado a la creación de slideshows. Y tambien podremos disfrutar de la posibilidad de insertar mapas gracias a la integración Platial.com.

slideshow-tab.PNG

Los usuarios de WordPress.com ya pueden disfrutar de estas mejoras y lo pueden hacer de una forma fácil y cómoda.

Forma de uso

Supongamos que el enlace a nuestro slideshow en RockYou es el siguiente.

http://www86.rockyou.com/show_my_gallery.php?instanceid=39325435&s_pindex=4

Pues en nuestro código deberíamos insertar algo parecido a esto.

[rockyou id=39325435]

Siendo el id igual al instanceid que aparece en la url de nuestras imagenes.

Tambien podemos definir un tamaño para nuestro slide indicandolo como parametros en el contenido de nuestros posts/páginas.

[rockyou id=39325435&w=400&h=300]

Menú circular en CSS

22 Mar

+ 11

Un pingback me muestra un curioso menú desarrollado en CSS que te permite darle un aspecto diferente a cualquier web.

menu_css.jpg

En un primer momento me recordó el menú del juego «Secret of Mana» de la Super Nintendo (si mal no recuerdo).

9.jpg

Despues viendo la demo, ves que está muy currado, aunque le queda un detallito para ser perfecto… que aparezca al pasar por encima de alguna opción… osea hacer que el menú se convierta en un submenú.

En la página del autor teneis un tutorial de como conseguir el fantástico menú radial.

frase #53

22 Mar

+ 0

Si quiere trabajadores creativos, dales tiempo suficiente para jugar.

John Cleese