El HTML5 ya está aquí

Publicado el 12 Diciembre 2007 en trabajo

Falta muy poco para que el HTML 5 salga a la luz y ya está disponible prácticamente toda la documentación posible sobre su estándar.

Hace unos días que vengo leyendo cosas sobre el HTML… bueno, quien dice días dice meses, y me gustó principalmente lo que ya es vox pupuli con estos maravillosos gráficos comparativos…

Versión HTML 4 / XHTML 1

HTML 4

Versión HTML 5

HTML 5

Además de esto, hay una serie de cambios a tener en cuenta, entre los que cabe destacar:

  • El DOCTYPE se reduce a:
    <!doctype html>
  • La codificación se sustituye por:
    <meta charset="UTF-8">
  • Los DIV y LI podrán contener elementos estructurales como P
  • En las tablas con THEAD aparecerá TFOOT
  • Aparecen una serie de elementos nuevos:
    • SECTION: será una zona de un elemento
    • ARTICLE: zona independiente del documento (un post, una noticia…)
    • ASIDE: viene a ser la barra lateral donde hay contenido relacionado con la página
    • HEADER: lo dice todo
    • FOOTER: esto también habla por sí sólo
    • NAV: zona que indica la navegación de la web
    • DIALOG: se usará con DT y DD para agrupar una conversación (chat)
    • FIGURE: agrupará elementos “multimedia” (por ejemplo, una foto y su pie de foto, un vídeo y su explicación…)
    • AUDIO y VIDEO: para no necesitar de OBJECT ni EMBED al incrustar un multimedia.
    • M: “marked text” (entiendo que es para algo rollo texto con fondo amarillo y texto negro, como los rotuladores)
    • METER: para indicar medidas (distancias, tamaño de disco…)
    • TIME: indicar fechas y horas
    • CANVAS: ver Wikipedia (elementos generados al vuelo)
    • COMMAND: comandos (rollo texto que se ejecuta)
    • DATAGRID: datos tabulados, árboles de directorios…
    • DETAILS: elementos de ampliación de información de otro elemento.
    • DATALIST: viene a ser una mejora de los SELECT
    • EVENT-SOURCE: para “coger” eventos del servidor al vuelo
    • OUTPUT: muestra como un resultado (por ejemplo, el resultado de una suma en una calculadora)
    • PROGRESS: indica el progreso de algo, un porcentaje, un status.
  • Y se modifican algunos otros elementos (indico los más interesantes):
    • EMBED: sólo se usará para “plugins”
    • INPUT: tiene nuevas opciones en sus campos: datetime, datetime-local, date, month, week, time, number, range, email, url…
    • A: añade el atributo PING (cuando alguien haga clic, se llamará a esa URL… muy interesante para hacer tracking barato)
    • LI: recupera el VALUE y el START
    • INPUT (y otros): añade una opción AUTOFOCUS (así automáticamente irá el cursor ahí y no será necesario JavaScript)
    • INPUT (y otros): añaden la opción FORM para indicarle a qué formulario pertenecen, de forma que pueda haber dos elementos iguales en dos formularios distintos.
    • INPUT (y otros): añaden la opción REPLACE, para que al enviar un formulario se cambien los datos por otros de cara al usuario.
    • INPUT (y otros): se añade la opción REQUIRED.
    • SCRIPT: cambia su nombre por ASYNC (en clara referencia a AJAX)
    • HTML: tendrá la opción MANIFEST (para aplicaciones offline)
    • Para todo el HTML aparecen unos nuevos parámetros:
      • CONTENTEDITABLE: permite editar “al vuelo” la web
      • CONTEXTMENU
      • DRAGGABLE: “drag & drop”
      • IRRELEVANT: indica que eso no es relevante.
    • Cambian alguna de sus funciones “originales”: A (sin HREF), ADDRESS, B, HR, I, LABEL, MENU, SMALL, STRONG, ALT (opcional en IMG).
  • Desaparecen finalmente unos tantos:
    • basefont, big, center, font, s, strike, tt, u (principalmente por su posibilidad de uso con CSS)
    • frame, frameset, noframes (es obvio que ya no haya webs con frames, ¿verdad?)
    • acronym, applet, isindex, dir (principalmente por falta de uso…)

En fin, que por lo que he podido ver el HTML está más pensado para buscadores (llámese buscador, llámese posicionador, llámese SEO) que en muchos casos para los seres humanos… aunque hay que reconocer que elementos, principalmente los de estructura, van a ser muy últiles a la hora de diseñar sitios web.

Comentarios (0) - Etiquetas: , , ,

Calendarios ICS compartidos con PHP

Publicado el 11 Diciembre 2007 en trabajo

CalendarioHace unos días que vengo haciendo pruebas con algo que ya había visto, pero no sabía cómo conseguir “por mi cuenta”. Servicios como Google Calendar, Yahoo! Calendar y demás te permiten que, si tienes un calendario con ellos, obtengas una URL privada la cuál puedes usar en tu programa calendario (iCal, Mozilla Calendar…) de forma que puedas tener tu calendario en cualquier sitio. Digamos que viene a ser como un “calendario IMAP” ;)

La cuestión es que como ya no dependo de ninguno de estos servicios, ahora sólo tenía el calendario en mi portátil, pero no disponible en ningún otro lugar. Así que me decidí a investigar cómo podría tener calendarios en la red y que se pudieran modificar desde donde yo quisiera.

Es por esto que llegué al software phpiCalendar, que básicamente lo que hace es convertir un ICS (que lleva toda la información del calendario) a modo web/html.

La cuestión es que una vez tengamos instalado este software siguiendo sus instrucciones, podremos encontrar una carpeta donde se almacenan varios calendarios junto a un fichero llamado publish.php.

Tan simple como poner en la configuración la variable $phpicalendar_publishing a 1, guardar un calendario que ya tengas creado y subirlo por FTP a esa misma carpeta, darle permisos de escritura al fichero ICS (al calendario o calendarios que hayamos subido) y voilà.

Ahora, tenemos dos opciones:

  1. Modo Sólo Lectura:
    http://ejemplo.es/calendarios/calendars/calendario.ics
  2. Modo Lectura/Escritura:
    http://ejemplo.es/calendarios/calendars/publish.php/calendario.ics

¡Y ya está! Así de simple, sencillo y rápido. La única cosa de este sistema es que sólo permite un usuario y clave, por lo que sólo podremos tener los calendarios de una única persona… Aunque supongo que revisando el código fuente y haciendo unas mejoras se podría extraer del phpiCalendar un spin-off que sólo permita hacer esto: hosting de calendarios ICS.

Comentarios (0) - Etiquetas: , , ,

Expresiones regulares y otras barbaridades

Publicado el 18 Noviembre 2007 en trabajo

NavegadorÚltimamente estoy volviendo a programar cosas raras… cuando digo raras me refiero a esa forma de programar que se sale de lo habitual, normalmente por una necesidad concreta. En este caso estoy haciendo un experimento raro y necesitaba que un fichero se tragase todo lo necesario para poder trabajar con URL’s de lo más variopintas.

Al final lo que he hecho es revisar un poco de las expresiones regulares y montarme un .htaccess con este contenido:

RewriteEngine on
RewriteRule ^/?([^\.]*)[:;,\.]*$ /index.php [L,NS]

¿Qué consigo con esto? Que sin necesidad de redireciones ni parámetros internos ni nada, pueda recoger cualquier tipo de URL en un fichero (en este caso, index.php) de forma que luego pueda ver el subdominio, o el “request” que llega, y trabajar con todo ello y hacer varias cosillas…

Seguramente habrá formas más simples de hacer estas cosas, pero como a mi me gusta complicarme la vida, pues así me he pasado un rato haciendo esa expresión…

Comentarios (2) - Etiquetas: , , , ,

Frases que nunca dije (III)

Publicado el 25 Octubre 2007 en vida y milagros

Si buscas [google] en Google y “tienes suerte” entras en un bucle infinito…

Comentarios (2) - Etiquetas: , , ,

Traducciones de OJObuscador

Publicado el 19 Agosto 2007 en trabajo

Torre de BabelLlevo toda la tarde de ayer y toda la noche programando. Es algo que hacía bastante tiempo que no hacía, lo de quedarme por la noche programando…

La verdad es que lo que he estado desarrollando puede ser una ayuda impresionante para el crecimiento de OJObuscador, sobretodo porque el sistema permite de una forma semi-automática la traducción de OJObuscador en español a OJObuscador en catalán con un clic y, lógicamente, luego revisando que la traducción sea medianamente correcta.

Esto más adelante puede dar pie a poder lanzar OJObuscador a otros idiomas (hace un tiempo que tenía en mente traducirla al gallego, e incluso hubo un voluntario), aunque el planteamiento es más global, más europeo ya que lanzar una versión en inglés sería poco competitiva con Estados Unidos, pero lanzar una versión en francés, italiano, portugués o vete a saber creo que sería interesante…

En fin, fin de semana de trabajo, semana que viene de pruebas… :)

Comentarios (5) - Etiquetas: , , , , ,