<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8738574</id><updated>2011-08-17T05:06:28.205+02:00</updated><category term='Libre mercado'/><category term='DTD'/><category term='Sistemas de citación'/><category term='Windows XP'/><category term='Libros'/><category term='Talibanes de Linux'/><category term='Internet Explorer 7'/><category term='Debian Etch'/><category term='China'/><category term='Feria del Libro'/><category term='bug'/><category term='Formatos electrónicos'/><category term='Madrid'/><category term='Editoriales'/><category term='floor'/><category term='Acerca de'/><category term='Propiedad intelectual'/><category term='canon'/><category term='Windows'/><category term='Números pares'/><category term='Apple'/><category term='Declaración de tipo de documento'/><category term='Vigo'/><category term='Formación'/><category term='ANSI'/><category term='documentación'/><category term='Internet Explorer 6'/><category term='Etiqueta NOSCRIPT'/><category term='Software libre'/><category term='Dirección General de Tráfico'/><category term='Normas UNE'/><category term='AENOR'/><category term='CEDRO'/><category term='Aplicaciones ofimáticas'/><category term='Inteco'/><category term='Difusión de la información'/><category term='Persuabilidad'/><category term='Humor'/><category term='Microformatos'/><category term='Google Patent'/><category term='Apache'/><category term='Keteke'/><category term='xhtml'/><category term='preg_match_all'/><category term='Tablas HTML'/><category term='Datación'/><category term='Diseño de interacción'/><category term='Windows Vista'/><category term='Cartografía'/><category term='Lenguaje natural'/><category term='Exalead'/><category term='Telefónica'/><category term='Revista Tráfico y Seguridad Vial'/><category term='Patrimonio histórico'/><category term='bibliotecas'/><category term='Investigación'/><category term='Yahoo Pipes'/><category term='Patentes'/><category term='Atributos HTML'/><category term='Opera'/><category term='Reducción de gasto público'/><category term='Universidad de Vigo'/><category term='robots-nocontent'/><category term='Universidad de La Coruña'/><category term='Números impares'/><category term='Acer'/><category term='Topónimos'/><category term='Accesibilidad'/><category term='agere'/><category term='Weblogs'/><category term='Slax'/><category term='LSHW'/><category term='Linko'/><category term='Música'/><category term='legislación'/><category term='Unicode'/><category term='Piratería'/><category term='Elemento OBJECT'/><category term='Europa'/><category term='Firefox'/><category term='Opera Mobile'/><category term='z-index'/><category term='Nubes de etiquetas'/><category term='Listas'/><category term='Mashups'/><category term='delicious'/><category term='Lexxe'/><category term='CMS'/><category term='DOM Ready'/><category term='Netscape'/><category term='Internet Explorer'/><category term='Normas ISO'/><category term='Middlebury College'/><category term='accesskey'/><category term='Empresas públicas'/><category term='PSOE'/><category term='Webkit'/><category term='Sitel'/><category term='Enciclopedias'/><category term='ucfirst'/><category term='Publicaciones periódicas'/><category term='HPH'/><category term='Unix'/><category term='Dictadura del progresimo'/><category term='Sistemas de gestión de contenidos'/><category term='Microsoft'/><category term='Front Page'/><category term='Maquetación web'/><category term='españa'/><category term='Conservación'/><category term='Hardware Lister'/><category term='strip_tags'/><category term='Negocios'/><category term='Pestañas'/><category term='Diccionarios'/><category term='Windows Explorer'/><category term='Sociedades de gestión'/><category term='Cadenas de texto'/><category term='Inclasificable'/><category term='ISP'/><category term='Galicia'/><category term='Separación de presentación y contenido'/><category term='Certificados SSL'/><category term='Censura'/><category term='Document Type Declaration'/><category term='Wikipedia'/><category term='Adblock'/><category term='Gasto público'/><category term='Scripts BAT'/><category term='La Coruña'/><category term='Notepad++'/><category term='Publicidad'/><category term='Atributo id'/><category term='SSL'/><category term='Idiomas'/><category term='cellspacing'/><category term='Jquery'/><category term='Bandas sonoras'/><category term='Spam'/><category term='insertBefore'/><category term='Cuotas de mercado'/><category term='hardware'/><category term='Diseño web'/><category term='RDP'/><category term='Configuración de hardware'/><category term='Administración Pública'/><category term='Access keys'/><category term='Biblioteca Virtual Miguel de Cervantes'/><category term='Documentación científica'/><category term='TVE a la carta'/><category term='Google Co-op'/><category term='Atributo class'/><category term='Clases PHP'/><category term='Ortografía'/><category term='OpenDocument'/><category term='Elementos HTML'/><category term='Debian'/><category term='Universidad de Santiago de Compostela'/><category term='Gestión de la información'/><category term='WCAG'/><category term='XHMTL'/><category term='Think Free'/><category term='Decálogos'/><category term='number_format'/><category term='Derechos de autor'/><category term='Japón'/><category term='Línea de comando'/><category term='Estándares web'/><category term='Prototype'/><category term='RAE'/><category term='Calendario'/><category term='Equium 3200M'/><category term='Servidores web'/><category term='Google'/><category term='Redondeo'/><category term='Adobe Photoshop'/><category term='Gobierno de España'/><category term='PHP'/><category term='historia'/><category term='Internet Explorer 8'/><category term='Google Chrome'/><category term='Atributo hreflang'/><category term='Joomla'/><category term='Tortoise CVS'/><category term='CSS3'/><category term='IVA'/><category term='Año 2008'/><category term='Archivo de Simancas'/><category term='htaccess'/><category term='Ubuntu'/><category term='Usabilidad'/><category term='Intervencionismo'/><category term='Rastro de migas'/><category term='LiveCD'/><category term='Neutralidad de Internet'/><category term='NoFollow'/><category term='TDT'/><category term='Profesiones'/><category term='strtoupper'/><category term='strtolower'/><category term='outbook'/><category term='Javascript obstrusivo'/><category term='WCAG 2.0'/><category term='Novell'/><category term='Feeds'/><category term='Google Docs'/><category term='Technorati'/><category term='Cervantes'/><category term='Atributo start'/><category term='Service Pack 3'/><category term='Web design'/><category term='Extensiones de archivo'/><category term='Seguridad informática'/><category term='Flash'/><category term='Biblioteconomía y documentación'/><category term='DOM'/><category term='css'/><category term='Edición de imagen'/><category term='Noxtrum'/><category term='cultura'/><category term='QTTabBar'/><category term='rediseño'/><category term='Safari'/><category term='Bélgica'/><category term='Librerías Javascript'/><category term='Progresismo'/><category term='Uso del lenguaje'/><category term='unión europea'/><category term='Propaganda'/><category term='Atributo lang'/><category term='Buscadores'/><category term='Atributo longdesc'/><category term='PHP GD'/><category term='SMS'/><category term='htpasswd'/><category term='Ericsson'/><category term='MySQL'/><category term='Gestión de proyectos'/><category term='Tabs'/><category term='Final Fantasy VII'/><category term='Indización'/><category term='Editores XHTML'/><category term='CVS'/><category term='Egoismo'/><category term='URL'/><category term='Correo electrónico'/><category term='XML'/><category term='Navegadores web'/><category term='Universidades'/><category term='text-transform'/><category term='winmodem'/><category term='Comentarios condicionales'/><category term='Blogger'/><category term='Writely'/><category term='Ministerio del Interior'/><category term='Geografía'/><category term='Archivos'/><category term='uxtheme'/><category term='HTC Diamond'/><category term='Nobuo Uematsu'/><category term='split'/><category term='Sesiones PHP'/><category term='RTVE'/><category term='Codificación de caracteres'/><category term='Congreso de los Diputados'/><category term='Animación a la lectura'/><category term='Wifi'/><category term='HTML'/><category term='SeaMonkey'/><category term='Bath Picture Resize'/><category term='Firefox 3'/><category term='Tecnología'/><category term='Experiencia de usuario'/><category term='Suse'/><category term='Final Fantasy'/><category term='Dinero público'/><category term='Redimensionamiento'/><category term='Gecko'/><category term='Telefonía móvil'/><category term='Dispositivos móviles'/><category term='Propiedades CSS'/><category term='Windows Mobile'/><category term='uxtheme.dll'/><category term='linuxant'/><category term='javascript'/><category term='ceil'/><category term='background-position'/><category term='CMS Made Simple'/><category term='conexant'/><category term='Santiago de Compostela'/><category term='Programación'/><category term='Fotos'/><category term='Windows Vista 64'/><category term='Biblioteconomía'/><category term='Recomendaciones'/><category term='Monopolios'/><category term='The Simpsons'/><category term='Xenocode'/><category term='GTK'/><category term='1984'/><category term='GRUB'/><category term='Matemáticas'/><category term='Editores de texto'/><category term='lucent'/><category term='Slideshow'/><category term='Usuarios'/><category term='Traducciones'/><category term='Comunismo'/><category term='Mozilla'/><category term='CSS sprites'/><category term='Paginación'/><category term='Alineación vertical'/><category term='Netscape 9'/><category term='Ordenadores portátiles'/><category term='Bucles'/><category term='Software'/><category term='Indra'/><category term='chmod'/><category term='Lecturas'/><category term='Números decimales'/><category term='Yahoo'/><category term='ucwords'/><category term='MIX 2008'/><category term='Selectores CSS'/><category term='Maquetadores web'/><category term='linux'/><category term='Televisión'/><category term='Empresas'/><category term='Arquitectos de semántica y cognitividad de interfaces web'/><category term='Digitalización'/><category term='Estadísticas'/><category term='Agregadores'/><category term='Internet'/><category term='target-new'/><category term='Net neutrality'/><category term='Medios de comunicación'/><category term='kubuntu'/><category term='OpenXML'/><category term='VEGAP'/><category term='modem'/><category term='Universidad Complutense'/><category term='Semántica'/><category term='ASP'/><category term='Espionaje'/><category term='Recursos y fuentes de información'/><category term='Dublin Core'/><category term='Impuestos'/><category term='Privacidad'/><category term='Mandriva'/><category term='Métodos Javascript'/><category term='Especificidad'/><category term='WTAI'/><category term='Mootools'/><category term='Firebug'/><category term='Feisty Fawn'/><category term='Remote Desktop Protocol'/><category term='Ojobuscador'/><category term='COLGROUP'/><category term='Sistemas operativos'/><category term='appendChild'/><category term='RFID'/><category term='Recuperación de información'/><category term='Nivel de contraste'/><category term='Protocolo WTAI'/><category term='Comunidad de Madrid'/><category term='Expresiones regulares'/><title type='text'>Outbook</title><subtitle type='html'>Tecnología, documentación, diseño web, usabilidad, libros, historia y muchas otras cosas.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default?start-index=101&amp;max-results=100'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>367</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8738574.post-5216812691700134255</id><published>2009-12-05T21:33:00.000+01:00</published><updated>2009-12-05T21:34:04.090+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='outbook'/><title type='text'>Cambio de ubicación: Outbook se renueva</title><content type='html'>&lt;p&gt;Llevaba tres años sin lavarle la cara al blog, y ya era hora. Lo he cambiado a una nueva ubicación (&lt;a href="http://blog.outbook.es" rel="nofollow"&gt;http://blog.outbook.es&lt;/a&gt;, también accesible mediante &lt;a href="http://outbook.es" rel="nofollow"&gt;http://outbook.es&lt;/a&gt;) y lo he migrado a Wordpress.&lt;/p&gt;

&lt;p&gt;El feed de Outbook también cambia de ubicación, a &lt;a href="http://blog.outbook.es/feed"&gt;http://blog.outbook.es/feed&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5216812691700134255?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5216812691700134255/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5216812691700134255' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5216812691700134255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5216812691700134255'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/12/cambio-de-ubicacion-outbook-se-renueva.html' title='Cambio de ubicación: Outbook se renueva'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5152093960749513865</id><published>2009-12-02T14:38:00.001+01:00</published><updated>2009-12-02T14:39:52.686+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Selectores CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Maquetación web'/><title type='text'>CSS hacks: filter by selectors</title><content type='html'>&lt;div lang="en"&gt;

 &lt;p&gt;All selectors provided here are valid for CSS 2.1 unless otherwise stated.&lt;/p&gt;

 &lt;p&gt;Internet Explorer 6, Internet Explorer 7 (Non standard mode), Internet Explorer 8 (Non standard mode):&lt;/p&gt;
 &lt;pre&gt;&lt;code class="css"&gt;* html {}&lt;/code&gt;&lt;/pre&gt;

 &lt;p&gt;Internet Explorer 7, Internet Explorer 8 (IE7 standard mode):&lt;/p&gt;
 &lt;pre&gt;&lt;code class="css"&gt;*:first-child+html {}
 * + html/*/ * /**/ body {}&lt;/code&gt;&lt;/pre&gt;

 &lt;p&gt;Internet Explorer 8 (Ids are examples):&lt;/p&gt;
 &lt;pre&gt;&lt;code class="css"&gt;#ie_80 {} /* IE8 */
 #ie_80, #ie8#fix {} /* other browsers */&lt;/code&gt;&lt;/pre&gt;

 &lt;p&gt;It's not Internet Explorer 6:&lt;/p&gt;
 &lt;pre&gt;&lt;code class="css"&gt;html&gt;body {}&lt;/code&gt;&lt;/pre&gt;

 &lt;p&gt;It's not Internet Explorer 6, It's not Internet Explorer 7:&lt;/p&gt;
 &lt;pre&gt;&lt;code class="css"&gt;html&gt;/**/body {}&lt;/code&gt;&lt;/pre&gt;

 &lt;p&gt;It's not Internet Explorer (&lt;strong&gt;only valid for CSS3&lt;/strong&gt;):&lt;/p&gt;
 &lt;pre&gt;&lt;code class="css"&gt;:root {}&lt;/code&gt;&lt;/pre&gt;

 &lt;p&gt;Safari 3, other Webkit browsers (&lt;strong&gt;only valid for CSS3&lt;/strong&gt;):&lt;/p&gt;
 &lt;pre&gt;&lt;code class="css"&gt;body:not(:root:root)&lt;/code&gt;&lt;/pre&gt;

 &lt;p&gt;It's not Internet Explorer, It's not Opera 9.2x or earlier:&lt;/p&gt;
 &lt;pre&gt;&lt;code class="css"&gt;head~body {}&lt;/code&gt;&lt;/pre&gt;

 &lt;p&gt;It's not Internet Explorer, It's not Opera 9.2x or earlier (&lt;strong&gt;only valid for CSS3&lt;/strong&gt;):&lt;/p&gt;
 &lt;pre&gt;&lt;code class="css"&gt;body:only-of-type {}&lt;/code&gt;&lt;/pre&gt;

 &lt;p&gt;Opera between 7.2x-9.2x:&lt;/p&gt;
 &lt;pre&gt;&lt;code class="css"&gt;html:first-child {}&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5152093960749513865?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5152093960749513865/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5152093960749513865' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5152093960749513865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5152093960749513865'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/12/css-hacks-filter-by-selectors.html' title='CSS hacks: filter by selectors'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-4991409094118016521</id><published>2009-11-18T17:17:00.005+01:00</published><updated>2009-11-18T17:25:38.169+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='htpasswd'/><category scheme='http://www.blogger.com/atom/ns#' term='Servidores web'/><category scheme='http://www.blogger.com/atom/ns#' term='htaccess'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Apache: proteger directorios con contraseña mediante htpasswd</title><content type='html'>&lt;p&gt;Con el siguiente comando:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;htpasswd -nb usuario contraseña&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nos devolverá:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Automatically using MD5 format.
usuario:$apr1$v55Iklr1$K8xj83k6NxMPXeHXfdnRu/&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;La segunda línea es la que habrá que copiar.&lt;/p&gt;

&lt;p&gt;En Windows será &lt;em&gt;htpasswd.exe&lt;/em&gt;, precedido de la ruta en la que esté ubicado.&lt;/p&gt;

&lt;p&gt;La contraseña va convertida a un MD5 especial de Apache. Habrá que hacer esto por cada usuario que se quiera insertar, y cada uno de esos usuarios irá en una línea del archivo .htpasswd.&lt;/p&gt;

&lt;p&gt;Al archivo con los usuarios y contraseñas se le llamará desde el .htaccess:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;AuthUserFile /ruta/a/.htpasswd
AuthType Basic
AuthName "Frase que saldrá en el cuadro de diálogo"
Require valid-user&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Ver más en &lt;a href="http://www.cristalab.com/tutoriales/proteger-carpetas-con-.htaccess-y-.htpasswd-c213l/"&gt;Proteger carpetas con .htaccess y .htpasswd&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-4991409094118016521?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/4991409094118016521/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=4991409094118016521' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4991409094118016521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4991409094118016521'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/11/apache-proteger-directorios-con.html' title='Apache: proteger directorios con contraseña mediante htpasswd'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-157696848556643681</id><published>2009-11-12T00:25:00.002+01:00</published><updated>2009-11-12T00:27:54.518+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Progresismo'/><category scheme='http://www.blogger.com/atom/ns#' term='Topónimos'/><category scheme='http://www.blogger.com/atom/ns#' term='Ortografía'/><category scheme='http://www.blogger.com/atom/ns#' term='Dictadura del progresimo'/><category scheme='http://www.blogger.com/atom/ns#' term='Idiomas'/><title type='text'>Topónimos: lo que los progresistas no quieren que sepas</title><content type='html'>&lt;p&gt;¿Por que esa manía progresista de utilizar topónimos en idiomas distintos del español cuando existen traducciones?&lt;/p&gt;
&lt;p&gt;He aquí una tabla con algunos ejemplos de topónimos de España situados en regiones con idioma propio y, que en lugar de utilizar la forma en español cuando se habla o escribe español, se empeñan en que se use la forma en el idioma regional. Los he mezclado con topónimos de otros países, para resaltar un poco más el absurdo de la situación:&lt;/p&gt;

&lt;table width="200" border="1"&gt;
 &lt;thead&gt;
 &lt;tr&gt;
  &lt;th scope="col"&gt;Forma incorrecta&lt;/th&gt;
  &lt;th scope="col"&gt;Sería correcta usando idioma...&lt;/th&gt;
  &lt;th scope="col"&gt;Forma correcta usando Español&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
  &lt;td lang="gl"&gt;A Coruña&lt;/td&gt;
  &lt;td&gt;Gallego&lt;/td&gt;
  &lt;td&gt;La Coruña&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td lang="gl"&gt;Ourense&lt;/td&gt;
  &lt;td&gt;Gallego&lt;/td&gt;
  &lt;td&gt;Orense&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td lang="ca"&gt;Lleida&lt;/td&gt;
  &lt;td&gt;Catalán&lt;/td&gt;
  &lt;td&gt;Lérida&lt;/td&gt;
 &lt;/tr&gt;
 
 &lt;tr&gt;
  &lt;td lang="ca"&gt;Girona&lt;/td&gt;
  &lt;td&gt;Catalán&lt;/td&gt;
  &lt;td&gt;Gerona&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td lang="ca"&gt;Illes Balears&lt;/td&gt;
  &lt;td&gt;Catalán&lt;/td&gt;
  &lt;td&gt;Islas Baleares&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td lang="ca"&gt;Eivissa&lt;/td&gt;
  &lt;td&gt;Catalán&lt;/td&gt;
  &lt;td&gt;Ibiza&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td lang="eu"&gt;Euskadi&lt;/td&gt;
  &lt;td&gt;Vascuence&lt;/td&gt;
  &lt;td&gt;Vasconia (o País Vasco, aunque no sea un páis)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td lang="fr"&gt;Strasbourg&lt;/td&gt;
  &lt;td&gt;Francés&lt;/td&gt;
  &lt;td&gt;Estrasburgo&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td lang="fr"&gt;Bordeaux&lt;/td&gt;
  &lt;td&gt;Francés&lt;/td&gt;
  &lt;td&gt;Burdeos&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td lang="de"&gt;Aachen&lt;/td&gt;
  &lt;td&gt;Alemán&lt;/td&gt;
  &lt;td&gt;Aquisgrán&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td lang="de"&gt;Köln&lt;/td&gt;
  &lt;td&gt;Alemán&lt;/td&gt;
  &lt;td&gt;Colonia&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td lang="de"&gt;München&lt;/td&gt;
  &lt;td&gt;Alemán&lt;/td&gt;
  &lt;td&gt;Munich&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td lang="en"&gt;London&lt;/td&gt;
  &lt;td&gt;Inglés&lt;/td&gt;
  &lt;td&gt;Londres&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td lang="da"&gt;København&lt;/td&gt;
  &lt;td&gt;Danés&lt;/td&gt;
  &lt;td&gt;Copenhague&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td lang="it"&gt;Torino&lt;/td&gt;
  &lt;td&gt;Italiano&lt;/td&gt;
  &lt;td&gt;Turín&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Yo le digo a aquellas personas que hablando en español usan el topónimo en catalán, gallego, vascuence o el idioma regional que corresponda, que en lugar de decir &lt;em&gt;Londres&lt;/em&gt; digan &lt;em lang="en"&gt;London&lt;/em&gt;, en lugar de decir &lt;em&gt;Aquisgrán&lt;/em&gt; digan &lt;em lang="de"&gt;Aachen&lt;/em&gt;, para que sean coherentes en su forma de usar el lenguaje. ¿A que ahora les empieza a resultar raro?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-157696848556643681?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/157696848556643681/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=157696848556643681' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/157696848556643681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/157696848556643681'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/11/toponimos-lo-que-los-progresistas-no.html' title='Topónimos: lo que los progresistas no quieren que sepas'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5937587839388907346</id><published>2009-11-11T12:19:00.004+01:00</published><updated>2009-11-11T12:24:18.705+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='Elementos HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Elemento OBJECT'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Maquetación web'/><title type='text'>Que hacer cuando el elemento OBJECT tapa una capa posicionada</title><content type='html'>&lt;p&gt;Suele pasar que cuando hay capas emergentes y animaciones flash la capa se queda por debajo del Flash.&lt;/p&gt;

&lt;p&gt;Basta con añadir esto dentro del elemento &lt;code class="xhtml"&gt;OBJECT&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;param name=&amp;quot;wmode&amp;quot; value=&amp;quot;transparent&amp;quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Un ejemplo completo:&lt;/p&gt;

&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;object type=&amp;quot;application/x-shockwave-flash&amp;quot; data=&amp;quot;fichero.swf&amp;quot;&amp;gt;
 &amp;lt;param name=&amp;quot;wmode&amp;quot; value=&amp;quot;transparent&amp;quot; /&amp;gt;
 &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;fichero.swf&amp;quot; /&amp;gt;
 &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;
 &amp;lt;p&amp;gt;No dispone del plugin Flash Player, si lo desea puede &amp;lt;a href=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;descargar el plugin&amp;lt;/a&amp;gt;. [Resto de contenido alternativo].&amp;lt;/p&amp;gt;
&amp;lt;/object&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Este método tiene una pega: &lt;strong&gt;no funciona en sistemas Linux&lt;/strong&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5937587839388907346?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5937587839388907346/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5937587839388907346' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5937587839388907346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5937587839388907346'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/11/que-hacer-cuando-el-elemento-object.html' title='Que hacer cuando el elemento OBJECT tapa una capa posicionada'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-1771273271844851620</id><published>2009-11-05T12:48:00.001+01:00</published><updated>2009-11-05T12:48:50.085+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><title type='text'>Javascript: Click fuera de un elemento</title><content type='html'>&lt;p&gt;Una sencilla función para detectar si se clica fuera de un elemento:&lt;/p&gt;
&lt;pre&gt;&lt;code class="javascript"&gt;document.onclick = function (e) {
 e = e || event
 var target = e.target || e.srcElement
 var elemento = document.getElementById('id_elemento');
 do {
  if (elemento == target) {
   // El click se ha producido dentro del elemento, no se hace nada.
   return;
  }
  target = target.parentNode;
 } while (target)
 // Se ha clicado fuera del elemento, se realiza una acci&amp;oacute;n.
 elemento.style.display = &amp;#39;none&amp;#39;;
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Visto en &lt;a href="http://www.webdeveloper.com/forum/showthread.php?t=148252" hreflang="en" lang="en"&gt;Closing a floating div layer Webdeveloper.com&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-1771273271844851620?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/1771273271844851620/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=1771273271844851620' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1771273271844851620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1771273271844851620'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/11/javascript-click-fuera-de-un-elemento.html' title='Javascript: Click fuera de un elemento'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5780210900190924644</id><published>2009-11-05T12:47:00.000+01:00</published><updated>2009-11-05T12:48:17.129+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Web design'/><title type='text'>Javascript: Click outside element</title><content type='html'>&lt;div lang="en"&gt;

&lt;p&gt;Simply function to detect click event outside desired element:&lt;/p&gt;
&lt;pre&gt;&lt;code class="javascript"&gt;document.onclick = function (e) {
 e = e || event
 var target = e.target || e.srcElement
 var element = document.getElementById('id_element');
 do {
  if (element == target) {
   // When clicked inside element, does nothing
   return;
  }
  target = target.parentNode;
 } while (target)
 // When clicked outside element, makes an action.
 element.style.display = &amp;#39;none&amp;#39;;
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Read at &lt;a href="http://www.webdeveloper.com/forum/showthread.php?t=148252"&gt;Closing a floating div layer Webdeveloper.com&lt;/a&gt;.&lt;/p&gt;

&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5780210900190924644?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5780210900190924644/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5780210900190924644' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5780210900190924644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5780210900190924644'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/11/javascript-click-outside-element.html' title='Javascript: Click outside element'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-1251158327099723136</id><published>2009-10-20T13:09:00.003+02:00</published><updated>2009-10-20T13:15:19.028+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Accesibilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Accesibilidad: Cuidado con los colores en textos e imágenes de fondo</title><content type='html'>&lt;p&gt;Un problema que se presenta en algunas ocasiones y que suele olvidarse bastante es la utilización de imágenes de fondo CSS en áreas de texto, y cuando se desactivan las imágenes no se ve el texto.&lt;/p&gt;

&lt;p&gt;Hoy he visto un ejemplo en la &lt;a href="http://tienda.vodafone.es/movil/vodafone"&gt;web de Vodafone&lt;/a&gt;. En las páginas de productos tienen un enlace con un fondo que simula un botón. El fondo del área de contenido es blanco. El fondo del botón es una imagen de color rojo y el texto de dicho botón es blanco.&lt;/p&gt;

&lt;p&gt;Así sale con imágenes:&lt;/p&gt;
&lt;p class="imagen centrado"&gt;&lt;a href="http://sites.google.com/site/buhardillaoscura2/imagenes/fondos_texto_02.png"&gt;&lt;img src="http://sites.google.com/site/buhardillaoscura2/imagenes/fondos_texto_02.jpg" alt="Vista con imágenes" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Así sale con las imágenes desactivadas, no se ve el texto de &lt;em&gt;Ver más&lt;/em&gt; de los botones rojos:&lt;/p&gt;
&lt;p class="imagen centrado"&gt;&lt;a href="http://sites.google.com/site/buhardillaoscura2/imagenes/fondos_texto_01.png"&gt;&lt;img src="http://sites.google.com/site/buhardillaoscura2/imagenes/fondos_texto_01.jpg" alt="Vista sin imágenes" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Y aquí se ve en Firebug que es texto dentro de un SPAN a su vez dentro de un A (enlace):&lt;/p&gt;
&lt;p class="imagen centrado"&gt;&lt;a href="http://sites.google.com/site/buhardillaoscura2/imagenes/fondos_texto_01.png"&gt;&lt;img src="http://sites.google.com/site/buhardillaoscura2/imagenes/fondos_texto_03.jpg" alt="Vista de código en Firebug" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Habría bastado con darle al SPAN que contiene el texto un fondo de color rojo para que el texto se siguiese viendo aun con las imágenes desactivadas. Y por cierto, &lt;a href="http://www.torresburriel.com/weblog/2009/10/08/caso-de-exito-vodafonees-accesible-aa/"&gt;esta web ha sido certificada como doble A (AA)&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-1251158327099723136?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/1251158327099723136/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=1251158327099723136' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1251158327099723136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1251158327099723136'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/10/accesibilidad-cuidado-con-los-colores.html' title='Accesibilidad: Cuidado con los colores en textos e imágenes de fondo'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-222802008723531193</id><published>2009-10-03T01:57:00.002+02:00</published><updated>2009-10-03T01:59:42.164+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Librerías Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Jquery'/><title type='text'>Jquery 1.3: Guía rápida</title><content type='html'>&lt;p&gt;&lt;a href="http://woork.blogspot.com/2009/09/jquery-visual-cheat-sheet.html" hreflang="en"&gt;Cheatsheet de Jquery 1.3 con lo esencial&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-222802008723531193?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/222802008723531193/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=222802008723531193' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/222802008723531193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/222802008723531193'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/10/jquery-13-guia-rapida.html' title='Jquery 1.3: Guía rápida'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-8799579227379777673</id><published>2009-09-27T02:15:00.001+02:00</published><updated>2009-09-27T02:27:38.358+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gobierno de España'/><category scheme='http://www.blogger.com/atom/ns#' term='PSOE'/><category scheme='http://www.blogger.com/atom/ns#' term='Reducción de gasto público'/><category scheme='http://www.blogger.com/atom/ns#' term='IVA'/><category scheme='http://www.blogger.com/atom/ns#' term='Gasto público'/><category scheme='http://www.blogger.com/atom/ns#' term='Impuestos'/><category scheme='http://www.blogger.com/atom/ns#' term='españa'/><title type='text'>Gobierno de España: manirrotos desbocados</title><content type='html'>&lt;p&gt;La fiesta ha empezado. A ver si los votantes fijos lo ven de una vez. &lt;a href="http://www.elmundo.es/mundodinero/2009/09/26/economia/1253963774.html"&gt;Se sube el IVA del 16% al 18%&lt;/a&gt;. Se supone que son productos prescindibles a los que se aplica esta subida. Y también se sube el IVA reducido al 8%.&lt;/p&gt;

&lt;p&gt;A ver. En una época en la que hay menos poder adquisitivo, o menos ganas de gastar debido a que la previsión de futuro no es la mejor, es obvio que el gasto se reduce, y las empresas, sobre todo las pequeñas (el 90% de la generación de riqueza) lo pasan mal: tienen que bajar precios y reducir margen de beneficios. Al subir el IVA y seguir en la situación de poca predisposición al consumo, no van a poder subir los precios: menos margen de beneficio, o si este andaba cercano a cero, pues mal asunto. Y si los precios suben pues habrá quien reduzca aun más el consumo.&lt;/p&gt;

&lt;p&gt;Los productos esenciales (comida) les suben el IVA un 1%. La gente que no haga gastos superfluos y aun así tenga que hacer malabarismos con su presupuesto estarán dando palmas de alegría con las orejas.&lt;/p&gt;

&lt;p&gt;Parece que quieren tapar algún agujerillo, que debe haber algún ligero déficit.&lt;/p&gt;

&lt;p&gt;Pues es muy sencillo, antes de subir los impuestos hay otras medidas más interesantes:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;Aumentar la tributación de las SICAV ¿Que pasa? ¿Que le molan las SICAV a los políticos y meten allí su dinero?&lt;/li&gt;
 &lt;li&gt;Anular el Ministerio de la Vivienda (¿Tiene alguna competencia de verdad o están todas transferidas a las autonomías?).&lt;/li&gt;
 &lt;li&gt;Anular el Ministerio de Igualdad: la igualdad ya está garantizada en la Constitución de forma gratuita.&lt;/li&gt;
 &lt;li&gt;Quitar las subvenciones a los sindicatos&lt;/li&gt;
 &lt;li&gt;Quitar las subvenciones a las ONG (así dejarían de ser Organizaciones Gubernamentales), que la solidaridad pase a ser algo de cada persona.&lt;/li&gt;
 &lt;li&gt;Nada de ayudas internacionales ni de condonación de deudas: si no lo pueden pagar que no lo hubieran comprado.&lt;/li&gt;
 &lt;li&gt;Quitar las subvenciones al cine: si el cine español fuese bueno (no quiero decir que no haya excepciones, alguna película buena hay) tendría espectadores.&lt;/li&gt;
 &lt;li&gt;Quitar las subvenciones a las religiones&lt;/li&gt;
 &lt;li&gt;Quitar subvenciones a sectores económicos.&lt;/li&gt;
 &lt;li&gt;Quitar subvenciones a los partidos políticos.&lt;/li&gt;
 &lt;li&gt;Privatizar las Cajas de Ahorros, y mientras no lo hayan sido que no se les permita prestar dinero a partidos políticos: deben ser neutrales.&lt;/li&gt;
 &lt;li&gt;Que una empresa grande caiga es impactante (se van al paro de golpe muchas personas), pero no es motivo para darle ayudas: si cae es por que no vende suficiente, el mercado ya no necesita de sus servicios.&lt;/li&gt;
 &lt;li&gt;No darle dinero a los bancos y banqueros. Y a las cajas de ahorros menos aun, que hay algunas que meten mucha pasta en las Obras Sociales: ¿como lo hacen si están en situaciones económicas desfavorables? ¡Por que hay dinero! No les hacen falta las ayudas.&lt;/li&gt;
 &lt;li&gt;Quitar el PER.&lt;/li&gt;
 &lt;li&gt;Recuperar las competencias transferidas a las Comunidades Autónomas y quitarle a éstas el parlamento (quitarles el poder legislativo): dejar que gestionen ciertas áreas como centros de salud de atención primaria, carreteras locales que no estén en la red del estado, etc.&lt;/li&gt;
 &lt;li&gt;El Ministerio de Cultura debería quedar como gestor del Patrimonio Histórico, dejando en manos privadas todo lo que se pueda. Eliminar del presupuesto todo lo que suponga mantenimiento de arte moderno (digo arte por poder llamarlo de algún modo).&lt;/li&gt;
 &lt;li&gt;No poner dinero en un solo acto cultural.&lt;/li&gt;
 &lt;li&gt;Que los políticos coticen a la Seguridad Social como cualquier otro trabajador (con esto no quiero decir que los políticos sean trabajadores), y que cuando dejen el cargo no tengan ninguna pensión, que esperen a jubilarse.&lt;/li&gt;
 &lt;li&gt;Quitar subvenciones variadas: dejar lo imprescindible para casos extremos (minusvalías graves y similares). Cero subvenciones a empresas.&lt;/li&gt;
 &lt;li&gt;Desincentivar la entrada y permanencia de inmigrantes, sobre todo de los que tienen baja cualificación: cobrarán poco y por lo tanto aportarán poco.&lt;/li&gt;
 
 &lt;li&gt;Erradicar las viviendas de protección oficial: quitan viviendas del mercado libre, haciendo que los precios suban. Si hay dos personas que cumplen de igual forma los requisitos para una de estas viviendas, ¿por que no se hacen dos viviendas en lugar de una? Se hace un sorteo a ver quien se la queda: es injusto. A una de esas personas le dan una vivienda a precio muy ventajoso: tiene la posibilidad de cierto desahogo económico. La otra persona tendrá que comprar en el mercado libre (si es que puede) y no tendrá ese desahogo. &lt;strong&gt;Es un sistema injusto&lt;/strong&gt;.&lt;/li&gt;
 &lt;li&gt;Eliminar los liberados sindicales en el sector público: si tanto interés tienen en los trabajadores y trabajadoras seguro que pueden dedicarles parte de su tiempo libre (y ese tiempo que se lo paguen los sindicatos). En la empresa privada, que decida la empresa si los hay o no (que va a ser que no).&lt;/li&gt;
 &lt;li&gt;Quitar universidades: hay demasiadas, y hay titulaciones, como Documentación, en las que hay un exceso de gente. Mucha gente que acaba la universidad no trabaja despues en cosas relacionadas con lo que estudiaron: una parte importante de lo que aprendieron no ha servido de nada, pero costó dinero al contribuyente.&lt;/li&gt;
 &lt;li&gt;Eliminar la gratuidad de los servicios básicos como sanidad y educación para los inmigrantes (sin cobrar grandes cantidades) que no provengan de la Unión Europea. ¿Como puede ser que en un centro de salud el 50% de la gente que está en la sala de espera sean inmigrantes, y que en la zona a la que atiende dicho centro el porcentaje de inmigrantes sea muy inferior? Parece que hay un ligero abuso de la gratuidad: si se paga una pequeña cantidad, se piensa antes de usar el servicio.&lt;/li&gt;
 &lt;li&gt;Quitar todo tipo de impuestos a la educación privada y sanidad privada y fomentar que supongan una alternativa real a las opciones públicas (sobre todo en lo referido a sanidad): son recursos que la administración ahorraría.&lt;/li&gt;
 &lt;li&gt;O ponemos un transporte público de calidad (que no vaya totalmente atestado de gente en la hora punta y que no obligue a pasarse tres horas diarias en él) y rentable o quitamos impuestos de hidrocarburos e impuesto de matriculación: mucha gente se ve obligada a coger el coche para no desperdiciar su vida en el transporte público, o directamente por que donde vive no hay transporte público.&lt;/li&gt;
 &lt;li&gt;Esta va para la Unión Europea: quitar las subvenciones a la agricultura y dejar de fijar cuotas de producción o precios. Cada uno que produzca lo que quiera o pueda vender a un precio que le interese.&lt;/li&gt;
 &lt;li&gt;Los coche oficiales de los políticos: si quieren un Audi A8 blindado y con un motor potente por mi no hay problema. Pero que lo encarguen con interiores más sencillitos y mas económicos. Elegancia por fuera, que es lo que se ve, y por dentro austeridad.&lt;/li&gt;
 &lt;li&gt;Reducir el número de funcionarios, y que éstos tengan un horario comercial: si yo tengo que comprar a las ocho de la tarde encuentro muchas tiendas abiertas. Si la administración está al servicio del ciudadano, debe esforzarse por adaptarse a sus necesidades. Pero esto sin subidas de sueldo. Y al que no le guste, que busque trabajo en el sector privado.&lt;/li&gt;
 &lt;li&gt;Privatizar las televisiones y radios públicas.&lt;/li&gt;
 &lt;li&gt;Quitar la publicidad de las administraciones en los medios de comunicación: son subvenciones encubiertas (y cuestan dinero al Contribuyente). Si un medio de comunicación habla mal del gobierno seguro que no le compran espacios publicitarios para campañas institucionales.&lt;/li&gt;
 &lt;li&gt;Vigilar los fraudes con el paro, que hay gente que lo cobra y al mismo tiempo trabaja en negro.&lt;/li&gt;
 &lt;li&gt;No dar los 420 euros: desincentivan en muchos casos la búsqueda de empleo.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Y lo más importante: no gastar el dinero que no se tiene. Cuando se contrae deuda hay que devolverla con intereses, y eso son más gastos para el futuro.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hay muchas, pero muchas cosas, y las que pongo son solo algunos ejemplos, que se pueden hacer no solo para evitar una subida de impuestos, sino para reducir de forma muy importante la presión fiscal, y que la gente decida libremente que hacer con el &lt;strong&gt;dinero que obtiene con su trabajo&lt;/strong&gt;, y que no lo decida un burócrata &lt;strong&gt;vago e improductivo&lt;/strong&gt; (o &lt;em&gt;manos muertas&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Al estado no le interesa la resolución de problemas: le interesa que haya problemas, y decir: &lt;em&gt;Aquí estoy para salvarte, ciudadano, si yo no te salvo nadie lo hará ¡Dame más poder (y dinero) para poder ayudarte!&lt;/em&gt;. Y el problema en España es que hay muchas personas con poco raciocinio y se creen esas cosas.&lt;/p&gt;

&lt;p&gt;A seguir votando PSOE.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-8799579227379777673?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/8799579227379777673/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=8799579227379777673' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8799579227379777673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8799579227379777673'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/09/gobierno-de-espana-manirrotos.html' title='Gobierno de España: manirrotos desbocados'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-7433184436943784870</id><published>2009-09-18T14:29:00.000+02:00</published><updated>2009-09-18T14:30:51.138+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='Accesibilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Nubes de etiquetas'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><title type='text'>XHTML: Nube de etiquetas accesible</title><content type='html'>&lt;p&gt;Las nubes de tags suelen estar conformadas por un grupo de palabras que aparecen en distintos tamaños según la importancia que tengan. Pueden ir en un solo párrafo o bien en elementos de lista.&lt;/p&gt;

&lt;p&gt;Para darles los tamaños es necesario darles una clase (no vale el atributo &lt;code class="xhtml"&gt;style&lt;/code&gt;, ya que supone mezclar presentación y contenido) o utilizar etiquetas &lt;code class="xhtml"&gt;EM&lt;/code&gt; y &lt;code class="xhtml"&gt;STRONG&lt;/code&gt; anidadas. En el segundo caso, en cuanto haya unas cuantos niveles de importancia habrá un montón de etiquetas anidadas dentro de otras, y el usuario no podrá distinguir adecuadamente cual tiene mayor importancia salvo por su aspecto visual.&lt;/p&gt;

&lt;p&gt;Si la etiqueta más grande es la más importante, ¿por que no ponerla la primera?&lt;/p&gt;

&lt;p&gt;En conclusión:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;Da lo mismo utilizar un párrafo o una lista.&lt;/li&gt;
 &lt;li&gt;Se deben utilizar clases para definir los tamaños.&lt;/li&gt;
 &lt;li&gt;Las etiquetas deben ir en orden de mayor a menor importancia&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Un ejemplo:&lt;/p&gt;

&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;p&amp;gt;
 &amp;lt;strong&amp;gt;Etiquetas&amp;lt;span class=&amp;quot;oculto&amp;quot;&amp;gt; (de mayor a menor importancia)&amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt;
 &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;s5&amp;quot;&amp;gt;Etiqueta 1&amp;lt;/a&amp;gt;,
 &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;s4&amp;quot;&amp;gt;Etiqueta 2&amp;lt;/a&amp;gt;,
 &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;s3&amp;quot;&amp;gt;Etiqueta 3&amp;lt;/a&amp;gt;,
 &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;s2&amp;quot;&amp;gt;Etiqueta 4&amp;lt;/a&amp;gt;,
 &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;s1&amp;quot;&amp;gt;Etiqueta 5&amp;lt;/a&amp;gt;,
 &amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Etiqueta 6&amp;lt;/a&amp;gt;,
&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Enlace relacionado: &lt;a href="http://24ways.org/2006/marking-up-a-tag-cloud" lang="en" hreflang="en"&gt;Marking Up a Tag Cloud (24 Ways)&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-7433184436943784870?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/7433184436943784870/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=7433184436943784870' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7433184436943784870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7433184436943784870'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/09/xhtml-nube-de-etiquetas-accesible.html' title='XHTML: Nube de etiquetas accesible'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5607584579068947563</id><published>2009-09-09T22:06:00.004+02:00</published><updated>2009-09-09T22:16:31.012+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gobierno de España'/><category scheme='http://www.blogger.com/atom/ns#' term='1984'/><category scheme='http://www.blogger.com/atom/ns#' term='Espionaje'/><category scheme='http://www.blogger.com/atom/ns#' term='PSOE'/><category scheme='http://www.blogger.com/atom/ns#' term='Progresismo'/><category scheme='http://www.blogger.com/atom/ns#' term='Gestión de la información'/><category scheme='http://www.blogger.com/atom/ns#' term='Ericsson'/><category scheme='http://www.blogger.com/atom/ns#' term='Dictadura del progresimo'/><category scheme='http://www.blogger.com/atom/ns#' term='Telefonía móvil'/><category scheme='http://www.blogger.com/atom/ns#' term='españa'/><category scheme='http://www.blogger.com/atom/ns#' term='Sitel'/><category scheme='http://www.blogger.com/atom/ns#' term='Ministerio del Interior'/><title type='text'>Sitel: cuidado con lo que hablas por el teléfono móvil</title><content type='html'>&lt;p&gt;El Gobierno de España, cuando estaba presidido por José María Aznar compró Sitel, un software para espiar las conversaciones de móviles. El Gobierno del PP no se atrevió a usarlo, parece que por su difícil encaje con la ley, pero &lt;abbr title="José Luis Rodríguez Zapatero"&gt;ZP&lt;/abbr&gt; que no tiene escrúpulos si que lo usa:&lt;/p&gt;
&lt;blockquote cite="http://www.gaceta.es/09-09-2009+sitel_programa_que_escucho_al_pp,noticia_1img,1,1,65792"&gt;
 &lt;p&gt;El Gobierno de José Luis Rodríguez Zapatero utiliza desde 2004 un software fabricado por Ericsson capaz de pinchar todos los teléfonos de España al mismo tiempo. El programa permite a la Policía rastrear a una velocidad inédita hasta ahora todo tipo de llamadas. Los agentes tienen acceso a las conversaciones en tiempo real, pero también a datos tan sensibles como la identidad de los comunicantes, el lugar desde donde llaman, la operadora que utiliza e incluso el tipo de contrato que tienen.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;De ahí viene la obligatoriedad de que las tarjetas prepago estén asociadas a personas. Pero es una medida inútil: el que quiera hablar sin que le identifiquen robará un móvil y ya está.&lt;/p&gt;

&lt;p&gt;Esto es el progresismo cuando se quita la careta: la cruel dictadura de &lt;a href="http://www.bibliopolis.org/articulo/1984.htm"&gt;1984&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Por cierto, ¿necesitarán documentalistas para indizar la información de las conversaciones?&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.gaceta.es/09-09-2009+sitel_programa_que_escucho_al_pp,noticia_1img,1,1,65792"&gt;Ver la noticia&lt;/a&gt;. Visto a través de &lt;a href="http://www.outono.net/elentir/?p=15474"&gt;Elentir&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5607584579068947563?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5607584579068947563/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5607584579068947563' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5607584579068947563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5607584579068947563'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/09/sitel-cuidado-con-lo-que-hablas-por-el.html' title='Sitel: cuidado con lo que hablas por el teléfono móvil'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-2615281650367401800</id><published>2009-08-26T21:47:00.002+02:00</published><updated>2009-08-26T22:25:30.991+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuración de hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='TDT'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Mandriva'/><title type='text'>DVB-T USB en Mandriva 2009</title><content type='html'>&lt;p&gt;Parece que hay dispositivos de TDT que parecen no funcionar en Mandriva 2009.1, que curiosamente en Ubuntu 8.04 si que funcionaban sin tener que hacer nada. La solución está en &lt;a href="http://rpm.pbone.net/index.php3?stat=26&amp;dist=66&amp;size=868214&amp;name=dvb-firmware-usb-20061120-1plf2007.1.noarch.rpm"&gt;bajarse e instalar el firmware&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Y si se usa Kaffeine, habrá que instalar &lt;em&gt;phono-xine&lt;/em&gt; para que termine de funcionar.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-2615281650367401800?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/2615281650367401800/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=2615281650367401800' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2615281650367401800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2615281650367401800'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/08/dvb-t-usb-en-mandriva-2009.html' title='DVB-T USB en Mandriva 2009'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5192841790484610420</id><published>2009-08-17T23:34:00.003+02:00</published><updated>2009-08-17T23:37:42.170+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software libre'/><category scheme='http://www.blogger.com/atom/ns#' term='Mandriva'/><title type='text'>Mandriva 2009.1 Spring: password en MySQL</title><content type='html'>&lt;p&gt;Antes de utilizar el servidor MySQL parece que hay que crear el password. Ejecutar como superusuario:&lt;/p&gt;
&lt;pre&gt;&lt;code class="comando"&gt;mysqladmin -u root password sqladmin&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Donde &lt;em&gt;sqladmin&lt;/em&gt; sería el password.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5192841790484610420?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5192841790484610420/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5192841790484610420' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5192841790484610420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5192841790484610420'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/08/mandriva-20091-spring-password-en-mysql.html' title='Mandriva 2009.1 Spring: password en MySQL'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-1451943181924687937</id><published>2009-08-13T11:29:00.007+02:00</published><updated>2009-10-03T00:06:07.949+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Slideshow'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Jquery'/><title type='text'>Javascript: Slideshow con Jquery</title><content type='html'>&lt;p class="actualizacion"&gt;&lt;strong&gt;Actualizado 2009-10-02:&lt;/strong&gt; Se le añade botón de pausa (vaya fallo el no haberlo puesto anteriormete) y comentarios útiles sobre el funcionamiento de cada parte del código.&lt;/p&gt;

&lt;p&gt;He creado un &lt;a href="http://labs.outbook.es/slide/slide_v1.html"&gt;slideshow sencillo con Jquery&lt;/a&gt; (probado en versión 1.3.2):&lt;/p&gt;

&lt;pre&gt;&lt;code class="javascript"&gt;jQuery.noConflict(); // Así podemos convivir con otras librerías JS como Prototype o Motools (y las que utilicen $) sin ningún conflicto

jQuery(document).ready(function(){
 var slides1 = new Slides();
  slides1.inicia();
  
 /*
 // Ejemplo de uso
 var slides1 = new Slides();
 slides1.inicia();
 slides1.caja = &amp;#39;#slides&amp;#39;; // id del contenedor de los destacados
 slides1.numero = 1; // Número de destacados que se muestran
 slides1.tiempo = 2.5; // Segundos entre cambio de destacado
 slides1.velocidadMostrar = &amp;#39;fast&amp;#39;;
 */
});

function Slides () {
 this.caja = &amp;#39;#slides&amp;#39;; // id del contenedor de los destacados
 this.slide = &amp;#39;.slide&amp;#39;; // destacado
 this.numero = 1; // Número de destacados que se muestran
 this.tiempo = 2.5; // Segundos entre cambio de destacado
 this.milisegundos = this.tiempo*1000; // No editar
 this.velocidadMostrar = &amp;#39;fast&amp;#39;;
 
 this.inicia = function () {
  
  numDestacados = jQuery(this.caja+&amp;#39; &amp;#39;+this.slide).length; // Número de destacados
  i=this.numero;
  k=0;
  
  // Se activa la primera tanda de destacados
  while (k&amp;lt;this.numero) {
   jQuery(this.caja+&amp;#39; &amp;#39;+this.slide).eq(k).addClass(&amp;#39;activo&amp;#39;);
   k++;
  }
  while (i&amp;lt;numDestacados) {
   jQuery(this.caja+&amp;#39; &amp;#39;+this.slide).eq(i).hide();
   i++;
  }
  
  // Se da ID a los destacados
  j=0;
  while (j&amp;lt;numDestacados) {
   jQuery(this.caja+&amp;#39; &amp;#39;+this.slide).eq(j).attr(&amp;#39;id&amp;#39;,&amp;#39;slide-&amp;#39;+(j+1));
   j++;
  }
  
  this.paginacion(); // Se generan los controles de pausa y paginación
  
  // Se inicia el slideshow
  var that = this;
  this.intervalo = setInterval(function(){that.cambiar();}, this.milisegundos);
  
  // Al clicar una página se detiene el proceso y se va a la página
  jQuery(&amp;#39;#paginadorSlide li a&amp;#39;).click(function () {
   clearInterval(that.intervalo);
   that.controlPausar();
   that.irPagina(parseInt(jQuery(this).parent().attr(&amp;#39;id&amp;#39;).split(&amp;#39;-&amp;#39;)[1]));
   jQuery(&amp;#39;#paginadorSlide li&amp;#39;).removeClass(&amp;#39;activo&amp;#39;);
   jQuery(this).parent().addClass(&amp;#39;activo&amp;#39;);
   return false;
  });
  
  // Al clicar el botón de pausar/continuar se alterna detener/continuar el proceso
  jQuery(&amp;#39;#pausarContinuar a&amp;#39;).eq(0).click(function () {
   if (jQuery(this).hasClass(&amp;#39;moviendo&amp;#39;)) {
    that.controlPausar();
   } else {
    that.intervalo = setInterval(function(){that.cambiar();}, that.milisegundos);
    that.controlContinuar();
   }
   return false;
  });
  
 }
 
 // Modificar botón de pausar/reanudar
 this.controlPausar = function () {
  clearInterval(this.intervalo);
  jQuery(&amp;#39;#pausarContinuar a&amp;#39;).eq(0).html(&amp;#39;Reanudar&amp;#39;);
  jQuery(&amp;#39;#pausarContinuar a&amp;#39;).eq(0).removeClass(&amp;#39;moviendo&amp;#39;);
 }
 this.controlContinuar = function () {
  jQuery(&amp;#39;#pausarContinuar a&amp;#39;).eq(0).html(&amp;#39;Pausar&amp;#39;);
  jQuery(&amp;#39;#pausarContinuar a&amp;#39;).eq(0).addClass(&amp;#39;moviendo&amp;#39;);
 }
 
 // Cambiar de slide
 this.irPagina = function (pagina) {
  elUltimo = pagina*this.numero;
  el = (elUltimo)-this.numero;
  jQuery(this.caja+&amp;#39; &amp;#39;+this.slide).removeClass(&amp;#39;activo&amp;#39;);
  while (el&amp;lt;elUltimo) {
   jQuery(this.caja+&amp;#39; &amp;#39;+this.slide).eq(el).addClass(&amp;#39;activo&amp;#39;);
   jQuery(this.caja+&amp;#39; &amp;#39;+this.slide).eq(el).addClass(&amp;#39;activo activoPausa&amp;#39;);
   el++;
  }
  
  jQuery(this.caja+&amp;#39; &amp;#39;+this.slide+&amp;#39;:not(.activo)&amp;#39;).hide();
  jQuery(this.caja+&amp;#39; &amp;#39;+this.slide+&amp;#39;.activo&amp;#39;).fadeIn(this.velocidadMostrar);
  
 }
 
 // Cambio automático de slide
 this.cambiar = function () {
  activos = jQuery(this.caja+&amp;#39; &amp;#39;+this.slide+&amp;#39;.activo&amp;#39;).length-1;
  ultimoActivo = jQuery(this.caja+&amp;#39; &amp;#39;+this.slide+&amp;#39;.activo&amp;#39;).eq(activos);
  numeroUltimoActivo = parseInt(jQuery(this.caja+&amp;#39; &amp;#39;+this.slide+&amp;#39;.activo&amp;#39;).eq(activos).attr(&amp;#39;id&amp;#39;).split(&amp;#39;-&amp;#39;)[1])+this.numero;
  proximaPagina = (numeroUltimoActivo/this.numero)-1;
  numDestacados = jQuery(this.caja+&amp;#39; &amp;#39;+this.slide).length;
  
  if (numeroUltimoActivo&amp;gt;numDestacados) {proximoActivo=jQuery(this.caja+&amp;#39; &amp;#39;+this.slide).eq(0);proximaPagina=0;} else {proximoActivo = ultimoActivo.next(this.slide);}
  jQuery(this.caja+&amp;#39; &amp;#39;+this.slide+&amp;#39;.activo&amp;#39;).removeClass(&amp;#39;activo&amp;#39;);
  i=0;
  while (i&amp;lt;this.numero) {
   proximoActivo.addClass(&amp;#39;activo&amp;#39;);
   proximoActivo = proximoActivo.next();
   i++;
  }
  jQuery(this.caja+&amp;#39; &amp;#39;+this.slide+&amp;#39;:not(.activo)&amp;#39;).hide();
  jQuery(&amp;#39;#paginadorSlide li&amp;#39;).removeClass(&amp;#39;activo&amp;#39;);
  jQuery(&amp;#39;#paginadorSlide li&amp;#39;).eq(proximaPagina).addClass(&amp;#39;activo&amp;#39;);
  jQuery(this.caja+&amp;#39; &amp;#39;+this.slide+&amp;#39;.activo&amp;#39;).fadeIn(this.velocidadMostrar);
 }
 
 
 this.paginacion = function () {
  numPaginas = Math.ceil((jQuery(this.caja+&amp;#39; &amp;#39;+this.slide).length)/this.numero);
  jQuery(this.caja).after(&amp;#39;&amp;lt;div id=&amp;quot;controlesSlide&amp;quot;&amp;gt;&amp;lt;ul class=&amp;quot;paginadorSlide&amp;quot; id=&amp;quot;paginadorSlide&amp;quot;&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&amp;#39;); // Se crea el contenedor de paginación
  jQuery(&amp;#39;#paginadorSlide&amp;#39;).before(&amp;#39;&amp;lt;p id=&amp;quot;pausarContinuar&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;moviendo&amp;quot;&amp;gt;Pausar&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;#39;); // Se crea el párrafo para el botón de detener/continuar en su estado predeterminado (Pausar)
  
  i=0;j=1;
  while (i&amp;lt;numPaginas) {
   jQuery(&amp;#39;#paginadorSlide&amp;#39;).append(&amp;#39;&amp;lt;li id=&amp;quot;paginaSlide-&amp;#39;+j+&amp;#39;&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;&amp;#39;+j+&amp;#39;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#39;);
   i++; j++;
  }
  jQuery(&amp;#39;#paginadorSlide li&amp;#39;).eq(0).addClass(&amp;#39;activo&amp;#39;);
 }
 
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Para iniciarlo con los id y clases predeterminados:&lt;/p&gt;
&lt;pre&gt;&lt;code class="javascript"&gt;var slides1 = new Slides();
 slides1.inicia();&lt;/code&gt;&lt;/pre&gt;
 
&lt;p&gt;En ese caso el HTML podría ser:&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;div id=&amp;quot;slides&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;slide&amp;quot;&amp;gt;
  [Contenido del slide]
 &amp;lt;/div&amp;gt;
 &amp;lt;div class=&amp;quot;slide&amp;quot;&amp;gt;
  [Contenido del slide]
 &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Un contenedor que lleve el id &lt;em&gt;slide&lt;/em&gt; y elementos dentro del mismo con la clase &lt;em&gt;slides&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://labs.outbook.es/slide/slide_v2.html"&gt;Ver demostración&lt;/a&gt; o &lt;a href="http://sites.google.com/site/buhardillaoscura2/archivos/Slide.zip"&gt;descargar el ejemplo&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-1451943181924687937?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/1451943181924687937/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=1451943181924687937' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1451943181924687937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1451943181924687937'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/08/javascript-slideshow-con-jquery.html' title='Javascript: Slideshow con Jquery'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-7333295374879088685</id><published>2009-07-15T12:45:00.004+02:00</published><updated>2009-07-15T13:01:01.285+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Maquetación web'/><title type='text'>Abandonemos de una vez el soporte a IE6</title><content type='html'>&lt;p&gt;&lt;a href="http://barrapunto.com/articles/09/07/15/0911230.shtml"&gt;Ya hay sitios importantes que dejan de lado navegadores obsoletos, como Youtube&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;La maquetación adaptada a IE6 es un quebradero de cabeza y una fuente de gastos. En algunas ocasiones el tiempo dedicado a IE6 en una maquetación puede acercarse al 80%, y las decisiones de incluir determinados elementos en un diseño quedan vinculadas al potencial (decepcionante) de IE6.&lt;/p&gt;

&lt;p&gt;Lo de IE6 es el pez que se muerde la cola. Lo soportamos porque hay usuarios, y hay usuarios porque lo soportamos. Yo personalmente insisto en que hay que dejar de soportarlo, dejando una advertencia a los usuarios que lo utilicen para que se actualicen a un navegador mejor.&lt;/p&gt;

&lt;p&gt;Pero no se debe dejar de soportar de golpe, al principio debe cuidarse de que el sitio mas o menos se vea bien y que funcione adecuadamente, solo se dejarían los pequeños detalles sin importancia. Posteriormente se podría abandonar el soporte de IE6 por completo. Al ser progresivo se da tiempo a los usuarios habituale del sitio a actualizar y no los perderiamos.&lt;/p&gt;

&lt;p&gt;¿Que significaría el fin generalizado del soporte a IE6 en las empresas grandes adictas al IE6? Pues que los usuarios que acceden desde su trabajo con el IE6 verían mal (o no podrían utilizar) muchos sitios que visiten. Probablemente los visitan no por motivos de trabajo, sino como ocio. ¿Y cuando los visitan por razones de trabajo? Pues esa empresa tiene un Problema que debió solucionar allá por finales de 2006 (cuando salió IE7).&lt;/p&gt;

&lt;p&gt;Lo patético son las empresas que compran una maquetación y lo que más les preocupa es que se vea bien en IE6, de forma que los peces gordos de la organización la vean perfecta. &lt;strong&gt;Lo más importante es que la vean bien los clientes y los potenciales clientes&lt;/strong&gt; que es de donde la empresa va a sacar &lt;strong&gt;beneficios&lt;/strong&gt;. Y si es para la típica aplicación interna, maquetando solo para IE6 se ahorra dinero, pero, ¿no es mejor maquetar bien y que cuando se cambie de navegador que nadie tenga que ponerse histérico por que la aplicación no funciona?&lt;/p&gt;

&lt;p&gt;Creo que los maquetadores no deben dedicarse a resolver bugs de Internet Explorer (ni de ninguna otra aplicación), de eso se debe encargar Microsoft.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-7333295374879088685?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/7333295374879088685/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=7333295374879088685' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7333295374879088685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7333295374879088685'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/07/abandonemos-de-una-vez-el-soporte-ie6.html' title='Abandonemos de una vez el soporte a IE6'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-8914726453250302342</id><published>2009-06-25T23:30:00.004+02:00</published><updated>2009-06-30T16:49:12.482+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Elementos HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Usabilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño de interacción'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Enmascaramiento de contraseñas en los formularios</title><content type='html'>&lt;p&gt;&lt;strong&gt;Actualizado 2009-06-30&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a hreflang="en" href="http://www.useit.com/alertbox/passwords.html"&gt;Según Jakob Nielsen&lt;/a&gt; Ocultar los caracteres de un campo de contraseña (mediante &lt;code class="xhtml"&gt;&amp;lt;input type=&amp;quot;password&amp;quot; id=&amp;quot;ejemplo&amp;quot; name=&amp;quot;ejemplo&amp;quot; /&amp;gt;&lt;/code&gt;) puede ocasionar algunos problemas. Considero que se pasa un poco, de modo que expongo los que creo que son más importantes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;El usuario no ve lo que está escribiendo, lo que facilita que se equivoque.&lt;/li&gt;
&lt;li&gt;Utilización de contraseñas más sencillas a la vez que inseguras o uso del copiar-pegar para introducir la contraseña.&lt;/li&gt;
&lt;li&gt;En dispositivos móviles, en los que &lt;strong&gt;la escritura es más incómoda e imprecisa&lt;/strong&gt; el usuario puede desesperarse, pensando si habrá tecleado bien.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;He de aclarar que en bastantes dispositivos móviles en los campos de contraseña el caracter introducido está visible durante un breve espacio de tiempo, pero puede que no sea suficiente.&lt;/p&gt;

&lt;p&gt;Nielsen también menciona que ocultar los caracteres de contraseña puede hacer que los usuarios se desanimen a entrar en un sitio web. Esto me parece un poco exagerado.&lt;/p&gt;

&lt;p&gt;Puede que sea interesante dejar visibles los caracteres de los campos de contraseña, pero, si nos decantamos por esa opción habrá usuarios que no se sientan seguros, ya que la contraseña será visible por otras personas (imaginemos punto de acceso a Internet en un lugar público). Aquí Nielsen sugiere el uso de un checkbox para activar o desactivar la ocultación de los caracteres.&lt;/p&gt;

&lt;h2&gt;Ejemplo en Winzip&lt;/h2&gt;
&lt;p&gt;Capturas de la pantalla de encriptación de WinZip 12, en las que se puede apreciar la casilla que alterna la contraseña visible u oculta:&lt;/p&gt;
&lt;p class="imagen centrado"&gt;&lt;img src="http://sites.google.com/site/buhardillaoscura2/imagenes/pass_winzip_01.png" alt="Ventana de encriptación de WinZip 12 con contraseña oculta" /&gt;&lt;/p&gt;
&lt;p class="imagen centrado"&gt;&lt;img src="http://sites.google.com/site/buhardillaoscura2/imagenes/pass_winzip_02.png" alt="Ventana de encriptación de WinZip 12 con contraseña visible" /&gt;&lt;/p&gt;

&lt;h2&gt;Enlaces relacionados&lt;/h2&gt;

&lt;ul lang="en"&gt;
&lt;li&gt;&lt;a hreflang="en" href="http://www.useit.com/alertbox/passwords.html"&gt;Stop Password Masking (Jakob Nielsen's Alertbox, June 23, 2009)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hreflang="en" href="http://leaverou.me/2009/06/on-password-masking-and-usability/"&gt;On password masking and usability (Lea Verou)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-8914726453250302342?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/8914726453250302342/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=8914726453250302342' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8914726453250302342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8914726453250302342'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/06/enmascaramiento-de-contrasenas-en-los.html' title='Enmascaramiento de contraseñas en los formularios'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-443185834317156095</id><published>2009-06-17T17:45:00.003+02:00</published><updated>2009-06-17T17:51:02.904+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Opera Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Opera'/><category scheme='http://www.blogger.com/atom/ns#' term='HTC Diamond'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>Opera Mobile 9.7 beta</title><content type='html'>&lt;p&gt;Opera ha lanzado la &lt;a href="http://www.opera.com/mobile/download/"&gt;beta de la versión 9.7 para Windows Mobile&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Trae novedades como &lt;em&gt;&lt;a href="http://www.opera.com/business/solutions/turbo/"&gt;Opera Turbo&lt;/a&gt;&lt;/em&gt;, aceleración por Open GL y mejor renderizado de las páginas.&lt;/p&gt;

&lt;p&gt;Yo lo he instalado en un HTC Diamond, en el que como ya traía una versión integrada en el sistema no la sobreescribe, y los accesos directos siguen apuntando a dicha versión. Para ejecutar la 9.7 habría que ir con el explorador al directorio donde se haya instalado y ejecutar &lt;em&gt;OperaL.exe&lt;/em&gt;. En este dispositivo, la nueva versión tiene un rendimiento notablemente superior al de la 9.5.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-443185834317156095?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/443185834317156095/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=443185834317156095' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/443185834317156095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/443185834317156095'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/06/opera-mobile-97-beta.html' title='Opera Mobile 9.7 beta'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-212278690985919688</id><published>2009-06-01T14:52:00.000+02:00</published><updated>2009-06-01T14:53:25.858+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Libre mercado'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Comunismo'/><category scheme='http://www.blogger.com/atom/ns#' term='unión europea'/><category scheme='http://www.blogger.com/atom/ns#' term='Intervencionismo'/><title type='text'>Unión Europea: la nueva URSS</title><content type='html'>&lt;p&gt;&lt;a href="http://arstechnica.com/microsoft/news/2009/05/eu-may-force-windows-users-to-choose-a-browser.ars" hreflang="en"&gt;Ya está otra vez la Unión Europea con que Microsoft no incluya el Internet Explorer en Windows&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Es que es absurdo. Internet Explorer viene con Windows igual que Firefox viene con Ubuntu o Konqueror con Kubuntu (y a los Linux nadie les está diciendo que no dejan elegir al usuario).&lt;/p&gt;

&lt;p&gt;Microsoft ha cedido en lo que debía, &lt;a href="#"&gt;en la posibilidad de desactivar Internet Explorer&lt;/a&gt; (en Windows 7). ¿Pero por que no puede incluir lo que le de la gana en su sitema operativo?&lt;/p&gt;

&lt;p&gt;Yo le sugiero a ese nido de ratas burócratas-intervencionistas que es la Unión Europea que vaya un pasito más allá: creen ustedes un navegador de la Unión Europea, cobren a los usuarios un impuesto por usarlo (a todos los ciudadanos, lo usen o no lo uses, que así sería más injusto, tal como a ustedes les gusta) y que el navegador descargue desde un servidor central de la UE una lista de sitios prohibidos (ya saben, todos aquellos que sean contrarios a la Unión Europea, el intervencionismo el islam, el progresismo, el ecologismo o la masonería, grupos con el que ustedes se identifican plenamente).&lt;/p&gt;

&lt;p&gt;La UE cada vez se parece más a la &lt;abbr title="Unión de Repúblicas Socialistas Soviéticas"&gt;URSS&lt;/span&gt;:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;Planificación de la economía al más puro estilo soviético (¡Muérete de envidia Stalin!)&lt;/li&gt;
 &lt;li&gt;Ausencia de democracia en el poder ejecutivo. ¿Quien elige al gobierno de la UE?&lt;/li&gt;
 &lt;li&gt;Si en un referendum la población dice NO, volvemos a convocar una y otra vez hasta que digan SI (véase Irlanda y el Tratado de Lisboa). Y si vemos que van a seguir diciendo NO, pues les amenazamos y ya está.&lt;/li&gt;
 &lt;li&gt;Un parlamento elegido en elecciones democráticas pero que solo sirve como fachada democrática (pura apariencia).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La caída del muro de Berlín no fue la derrota del comunismo. El comunismo dejó el cuerpo muerto e inerte que era la URSS y se reencarnó en la que por entonces erá la Comunidad Económica Europea.&lt;/p&gt;

&lt;p&gt;El muro de Berlín no protegía a la URSS del mundo libre, sino que protegía al mundo libre de la URSS. Y hoy lo vemos demostrado.&lt;/p&gt;

&lt;p&gt;La UE huele muy mal.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-212278690985919688?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/212278690985919688/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=212278690985919688' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/212278690985919688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/212278690985919688'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/06/union-europea-la-nueva-urss.html' title='Unión Europea: la nueva URSS'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5036263586651853756</id><published>2009-05-11T16:35:00.003+02:00</published><updated>2009-05-12T09:44:01.020+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Accesibilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Decálogos'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Maquetación web'/><title type='text'>Decálogo de maquetación web</title><content type='html'>&lt;p&gt;Diez consejos útiles que mejorarán ostensiblemente la accesibilidad de un sitio web:&lt;/p&gt;

&lt;ol&gt;
 &lt;li&gt;&lt;strong&gt;Utilización de encabezados (&lt;code class="xhtml"&gt;H1&lt;/code&gt;-&lt;code class="xhtml"&gt;H6&lt;/code&gt;) para estructurar el documento y utilizar adecuadamente los párrafos y listas&lt;/strong&gt;. En los encabezados no se saltan niveles. Cuando una lista tiene un solo elemento no es una lista: es un párrafo.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Los textos de los enlaces habrán de ser descriptivos de la acción que realizan&lt;/strong&gt;, y deberán avisar si se abren en ventana nueva.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Maquetar con capas&lt;/strong&gt; (elementos &lt;code class="xhtml"&gt;DIV&lt;/code&gt;), en lugar de con tablas.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Utilizar Javascript no intrusivo y que su presencia no sea obligatoria&lt;/strong&gt;: todo el contenido y la funcionalidad del sitio deberá estar disponible sin necesidad de Javascript. No utilizar atributos HTML (&lt;code class="xhtml"&gt;onclick&lt;/code&gt;, &lt;code class="xhtml"&gt;onmouseover&lt;/code&gt;, etc.) para eventos de Javascript.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Utilizar colores de fondo y de texto que hagan un buen contraste&lt;/strong&gt;.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;No utilizar imágenes con texto, salvo en logotipos&lt;/strong&gt;. Utilizar fuentes de sistema para evitar ese mal uso de las imágenes.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Toda imagen que tenga contenido informativo deberá llevar texto alternativo&lt;/strong&gt; (atributo &lt;code class="xhtml"&gt;alt&lt;/code&gt;). El atributo irá vacío en caso contrario. Si es una imagen que se repite en diversas páginas, no es informativa, y no es publicable, debería ir como fondo mediante CSS.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Estructurar bien los formularios&lt;/strong&gt;: grupos de campos dentro de elementos &lt;code class="xhtml"&gt;FIELDSET&lt;/code&gt; con sus correspondientes &lt;code class="xhtml"&gt;LEGEND&lt;/code&gt;, elementos &lt;code class="xhtml"&gt;INPUT&lt;/code&gt;, &lt;code class="xhtml"&gt;SELECT&lt;/code&gt; y &lt;code class="xhtml"&gt;TEXTAREA&lt;/code&gt; contenidos dentro del elemento LABEL&lt;/code&gt; (asociación implícita), y atributo &lt;code class="xhtml"&gt;for&lt;/code&gt; en el LABEL y atributo &lt;code class="xhtml"&gt;id&lt;/code&gt; en el elemento de campo con el mismo valor (asociación explícita).&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Uso del elemento &lt;code class="xhtml"&gt;OBJECT&lt;/code&gt; para añadir contenido en Flash o en Java&lt;/strong&gt;, incluyendo el contenido alternativo correspondiente para aquellos usuarios que no dispongan del plugin.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Separación de contenido (HTML), presentación (CSS) y comportamiento (Javascript)&lt;/strong&gt;. En el documento HTML solo se mete HTML, y no se utilizan atributos para controlar la presentación. No se mete código Javascript en el elemento &lt;code class="xhtml"&gt;SCRIPT&lt;/code&gt; (que solo ha de incluirse dentro del elemento &lt;code class="xhtml"&gt;HEAD&lt;/code&gt; y nunca fuera de él), ni código CSS en el elemento &lt;code class="xhtml"&gt;STYLE&lt;/code&gt; (de hecho a la CSS se la llama con el elemento &lt;code class="xhtml"&gt;LINK&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5036263586651853756?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5036263586651853756/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5036263586651853756' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5036263586651853756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5036263586651853756'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/05/decalogo-de-maquetacion-web.html' title='Decálogo de maquetación web'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-3440097594452517828</id><published>2009-04-02T12:43:00.000+02:00</published><updated>2009-04-02T12:44:24.539+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Maquetación web'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>CSS: problema de doble margen en IE6</title><content type='html'>&lt;p&gt;Cuando un elemento está flotado dentro de un contenedor y tiene definido un margen, nos podemos encontrar con la desagradable sorpresa de ver como Internet Explorer 6 duplica dicho margen.&lt;/p&gt;

&lt;p&gt;Supongamos que tenemos esta regla CSS:&lt;/p&gt;
&lt;pre&gt;&lt;code class="css"&gt;div.capa p.parrafo {float:left; margin-left:10px;}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Internet Explorer 6 sacará un margen de 20px.&lt;/p&gt;

&lt;p&gt;Se puede solucionar con un hack CSS, que valida pero es un poco chapuza:&lt;/p&gt;
&lt;pre&gt;&lt;code class="css"&gt;div.capa p.parrafo {float:left; margin-left:10px;}
* html div.capa p.parrafo {margin-left:5px;}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;O &lt;a href="http://www.positioniseverything.net/explorer/doubled-margin.html"&gt;como dicen en Position is Everything&lt;/a&gt; añadir un &lt;code class="css"&gt;display:inline;&lt;/code&gt; a la regla CSS:&lt;/p&gt;
&lt;pre&gt;&lt;code class="css"&gt;div.capa p.parrafo {display:inline; float:left; margin-left:10px;}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;De esta forma el elemento sigue siendo bloque, ya que tiene el float, y sale con el margen definido en Internet Explorer.&lt;/p&gt;

&lt;h2&gt;Saber más&lt;/h2&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;a href="http://www.positioniseverything.net/explorer/doubled-margin.html" lang="en" hreflang="en"&gt;The IE5/6 Doubled Float-Margin Bug (Position is Everything)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-3440097594452517828?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/3440097594452517828/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=3440097594452517828' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/3440097594452517828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/3440097594452517828'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/04/css-problema-de-doble-margen-en-ie6.html' title='CSS: problema de doble margen en IE6'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-6580392427487535202</id><published>2009-03-23T12:21:00.001+01:00</published><updated>2009-03-23T12:23:30.325+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xenocode'/><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><title type='text'>Versión portable de IE</title><content type='html'>&lt;p&gt;Están disponibles para &lt;a href="http://www.xenocode.com/browsers/"&gt;descargar varias versiones portables de Internet Explorer y otros navegadores en Xenocode&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-6580392427487535202?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/6580392427487535202/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=6580392427487535202' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/6580392427487535202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/6580392427487535202'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/03/version-portable-de-ie.html' title='Versión portable de IE'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-18989495497285732</id><published>2009-03-23T12:04:00.003+01:00</published><updated>2009-03-23T12:09:37.390+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer 8'/><title type='text'>IE8 funcionando como IE7</title><content type='html'>&lt;p&gt;Hace poco que salió IE8 (el 19 de marzo), y parece que ahora soporta CSS (¡Ya era hora!). Y como las versiones anteriores necesitaban muchos hacks CSS y otras cosas, para que las páginas se vieran bien, e IE8 los pilla, a veces hará falta que funcione como IE7.&lt;/p&gt;

&lt;p&gt;Para que IE8 renderice la página como si de IE7 se tratase:&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;meta http-equiv=&amp;quot;X-UA-Compatible&amp;quot; content=&amp;quot;IE=EmulateIE7&amp;quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Así, cualquier sitio que se veía bien en IE7, se verá bien en IE8, sin necesidad de adaptarlo (aunque esto es una chapuza).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-18989495497285732?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/18989495497285732/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=18989495497285732' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/18989495497285732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/18989495497285732'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/03/ie8-funcionando-como-ie7.html' title='IE8 funcionando como IE7'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-4905668972622807710</id><published>2009-03-22T20:50:00.003+01:00</published><updated>2009-03-22T20:58:08.574+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='kubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Chrome'/><title type='text'>Google Chrome en Debian/Ubuntu</title><content type='html'>&lt;p&gt;Codeweavers ha creado un &lt;a href="http://www.codeweavers.com/services/ports/chromium/"&gt;paquete de instalación del navegador Chrome&lt;/a&gt; preparado para instalarse y ejecutarse en sistemas Debian, utilizando Wine (con instalar el paquete es suficiente, no hay que instalar Wine).&lt;/p&gt;

&lt;p&gt;De esta forma, si maquetas en sistemas Linux, podrás probar lo que hagas en un navegador con Webkit.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-4905668972622807710?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/4905668972622807710/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=4905668972622807710' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4905668972622807710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4905668972622807710'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/03/google-chrome-en-debianubuntu.html' title='Google Chrome en Debian/Ubuntu'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5119570664299054245</id><published>2009-03-12T20:19:00.001+01:00</published><updated>2009-03-12T20:20:40.719+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wifi'/><category scheme='http://www.blogger.com/atom/ns#' term='Configuración de hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Instalar Intel 3945 en Ubuntu 8.04</title><content type='html'>&lt;p&gt;Tan sencillo como seguir los siguientes pasos:&lt;/p&gt;
&lt;ol&gt;
 &lt;li&gt;&lt;em&gt;sudo modprobe -r iwl3945&lt;/em&gt;&lt;/li&gt;
 &lt;li&gt;Crear un archivo de texto llamado &lt;em&gt;iwl3945&lt;/em&gt; en &lt;em&gt;/etc/modprobe.d&lt;/em&gt;&lt;/li&gt;
 &lt;li&gt;En ese archivo introducir las siguientes dos líneas:&lt;br /&gt;&lt;em&gt;alias wlan0 iwl3945&lt;/em&gt;&lt;br /&gt;&lt;em&gt;options iwl3945 disable_hw_scan=1&lt;/em&gt;&lt;/li&gt;
 &lt;li&gt;&lt;em&gt;sudo modprobe iwl3945&lt;/em&gt;&lt;/li&gt;
 &lt;li&gt;&lt;em&gt;sudo ifconfig wlan0 up&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5119570664299054245?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5119570664299054245/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5119570664299054245' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5119570664299054245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5119570664299054245'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/03/instalar-intel-3945-en-ubuntu-804.html' title='Instalar Intel 3945 en Ubuntu 8.04'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-7113506546291944933</id><published>2009-02-25T00:37:00.002+01:00</published><updated>2009-02-25T00:42:36.504+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nivel de contraste'/><category scheme='http://www.blogger.com/atom/ns#' term='Accesibilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='WCAG'/><category scheme='http://www.blogger.com/atom/ns#' term='WCAG 2.0'/><title type='text'>Accesibilidad: Analizador de nivel de contraste</title><content type='html'>&lt;p&gt;Como hace no mucho salió la &lt;a href="http://www.w3.org/TR/WCAG20"&gt;versión 2 de las WCAG&lt;/a&gt;, me dispuse a crear una serie de herramientas útiles para análisis de accesibilidad, y por fin he terminado una de ellas, la referida a los niveles de contraste.&lt;/p&gt;

&lt;p&gt;Espero que sea de utilidad: &lt;a href="http://wcag2.outbook.es/contraste"&gt;Analizador de nivel de contraste&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-7113506546291944933?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/7113506546291944933/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=7113506546291944933' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7113506546291944933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7113506546291944933'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/02/accesibilidad-analizador-de-nivel-de.html' title='Accesibilidad: Analizador de nivel de contraste'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-4954000569155932149</id><published>2009-02-09T11:23:00.000+01:00</published><updated>2009-02-09T11:25:13.740+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Línea de comando'/><category scheme='http://www.blogger.com/atom/ns#' term='Scripts BAT'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Generación de fecha y hora en scripts BAT</title><content type='html'>&lt;p&gt;Es muy sencillo introducir fechas y horas en los scripts bat. Ejemplos:&lt;/p&gt;
&lt;pre&gt;&lt;code class="bat"&gt;@ECHO.%date:~0,10% (fecha entera)
@ECHO.%time:~0,8% (hora entera)
@ECHO.%date:~6,4%-%date:~3,2%-%date:~0,2% %time:~0,8% (fecha y hora en ISO 8601)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Se ponen los términos &lt;em&gt;date&lt;/em&gt; o &lt;em&gt;time&lt;/em&gt; entre símbolos de porcentajes y se le dice en que caracter de la fecha o de la hora debe empezar a mostrar y cuantos caracteres mostrar.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-4954000569155932149?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/4954000569155932149/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=4954000569155932149' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4954000569155932149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4954000569155932149'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/02/generacion-de-fecha-y-hora-en-scripts.html' title='Generación de fecha y hora en scripts BAT'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-2437778968721258775</id><published>2009-02-03T20:22:00.005+01:00</published><updated>2009-02-03T20:30:06.145+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Egoismo'/><category scheme='http://www.blogger.com/atom/ns#' term='TVE a la carta'/><category scheme='http://www.blogger.com/atom/ns#' term='Propiedad intelectual'/><category scheme='http://www.blogger.com/atom/ns#' term='RTVE'/><category scheme='http://www.blogger.com/atom/ns#' term='Televisión'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='Empresas públicas'/><title type='text'>Descargar vídeos de TVE a la Carta</title><content type='html'>&lt;p&gt;TVE tiene los programas que produce disponibles durante 15 días para verlos en su sitio web (&lt;a href="http://www.rtve.es/alacarta/index.html"&gt;TVE a la CARTA&lt;/a&gt;). Pero no deja descargarlos. Todas las administraciones públicas y empresas públicas en España suelen ser así de egoistas: generan información y después no la ponen a plena disposición del Ciudadano, a quien deben lealtad.&lt;/p&gt;

&lt;p&gt;Pero vamos a ver como se puede enmendar el fallo de TVE siguiendo los pasos que se exponen a continuación:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Abrir el enlace al vídeo en pestaña nueva&lt;/li&gt;
&lt;li&gt;Una vez abierta ver el código fuente.&lt;/li&gt;
&lt;li&gt;Buscar la línea con el valor &lt;code&gt;so.addVariable("file","/alacarta/player/111111.xml");&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Donde pone &lt;em&gt;111111.xml&lt;/em&gt; puede haber cualquier combinación de números. Añadir ese nombre de archivo XML a &lt;em&gt;"http://www.rtve.es/alacarta/player/"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Eso abrirá un XML, en el que hay una ruta a un archivo FLV, por ejemplo: &lt;em&gt;/resources/flv/1/1/1111111111111.flv&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Añadirle a &lt;em&gt;"http://www.rtve.es"&lt;/em&gt; lo del paso anterior, y a descargar.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Visto en &lt;a href="http://solognu.wordpress.com/2008/07/02/descargar-videos-de-rtvees/"&gt;Descargar vídeos de rtve.es (Solo GNU y otras cosas)&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-2437778968721258775?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/2437778968721258775/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=2437778968721258775' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2437778968721258775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2437778968721258775'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/02/descargar-videos-de-tve-la-carta.html' title='Descargar vídeos de TVE a la Carta'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-1726757535878635200</id><published>2009-01-30T12:10:00.001+01:00</published><updated>2009-01-30T12:11:29.788+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='WTAI'/><category scheme='http://www.blogger.com/atom/ns#' term='Protocolo WTAI'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Dispositivos móviles'/><title type='text'>Web móvil: el protocolo WTAI</title><content type='html'>&lt;p&gt;El &lt;a href=""&gt;protocolo WTAI&lt;/a&gt; sirve para insertar enlaces en páginas y que al activarlos el dispositivo móvil ofrzca realiza una llamada al número de teléfono especificado en el enlace o guardarlo en la lista de contactos.&lt;/p&gt;

&lt;p&gt;El valor del atributo &lt;code&gt;href&lt;/code&gt; del enlace tiene el siguiente formato:&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;wtai://wp/mc;##########&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Ejemplo de enlace para realizar llamada:&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;a href=&amp;quot;wtai://wp/mc;911234567&amp;quot;&amp;gt;Llamar al n&amp;uacute;mero 91 123 45 67&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Ejemplo de guardar en contactos:&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;a href=&amp;quot;wtai://wp/ap;911234567;Nombre Contacto&amp;quot;&amp;gt;Guardar en contactos el n&amp;uacute;mero 91 123 45 67&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Saber más&lt;/h2&gt;
&lt;ul lang="en"&gt;
 &lt;li&gt;&lt;a hreflang="en" href="http://www.102degrees.com/blog/2009/01/19/dialing-phone-numbers-from-a-webpage/"&gt;Dialing Phone Numbers from a Webpage (102degrees.com)&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a hreflang="en" href="http://www.wapforum.org/what/technical/wtai-30-apr-98.pdf"&gt;WAP WTAI (Documento PDF)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-1726757535878635200?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/1726757535878635200/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=1726757535878635200' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1726757535878635200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1726757535878635200'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/01/web-movil-el-protocolo-wtai.html' title='Web móvil: el protocolo WTAI'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5111253943429363562</id><published>2009-01-22T11:22:00.002+01:00</published><updated>2009-01-22T11:34:41.346+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Servidores web'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='HPH'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>Pocket HPH: Servidor con PHP para Windows Mobile</title><content type='html'>&lt;p&gt;Tras mucho tiempo buscando lo he encontrado: &lt;a href="http://mobileleap.net/hph/" hreflang="en"&gt;un servidor que tenga PHP para Windows Mobile&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Funciona bien en Windows Mobile 6.1, pero está un poco limitado.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5111253943429363562?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5111253943429363562/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5111253943429363562' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5111253943429363562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5111253943429363562'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/01/pocket-hph-servidor-con-php-para.html' title='Pocket HPH: Servidor con PHP para Windows Mobile'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-3563938691015652028</id><published>2009-01-19T17:46:00.003+01:00</published><updated>2009-01-19T17:50:31.624+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Telefónica'/><category scheme='http://www.blogger.com/atom/ns#' term='Censura'/><category scheme='http://www.blogger.com/atom/ns#' term='Neutralidad de Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='Keteke'/><category scheme='http://www.blogger.com/atom/ns#' term='Intervencionismo'/><category scheme='http://www.blogger.com/atom/ns#' term='Net neutrality'/><title type='text'>Neutralidad en la Red: Telefónica, Keteke y tarifas de internet móvil</title><content type='html'>&lt;p&gt;Estaba leyendo un &lt;a href="http://www.genbeta.com/2008/12/23-keteke-haciendo-hamijos-segunda-parte"&gt;artículo acerca de los errores en el lanzamiento de Keteke&lt;/a&gt; por parte de Telefónica (los normales en organizaciones enormes y burocratizadas hasta el tuétano, en las que hay que mostrar constantemente nuevas ideas con una fachada sorprendente pero huecas por dentro para sorprender a los superiores), y hay un párrafo que me ha llamado la atención:&lt;/p&gt;

&lt;blockquote cite="http://www.genbeta.com/2008/12/23-keteke-haciendo-hamijos-segunda-parte"&gt;
 &lt;p&gt;Lo que más miedo me da es que Telefónica ha declarado que planean sacar tarifas de datos especiales y permanentes para los usuarios de Keteke. Eso sí sería un valor añadido bastante importante, ya que usar Keteke en el móvil costaría menos que usar otras redes sociales o servicios (sí, hasta Google sería más caro). En el dudoso caso de que triunfe, sería a costa de perder la neutralidad en la red. Bienvenidos a la Telefónica del siglo XXI.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Todo un torpedo en la línea de flotación de la neutralidad de la red (con muchos granitos de arena se hace la montaña, y este es uno, ni el primero ni el último): Telefónica te va a cobrar más por la conexión si accedes a Facebook o Tuenti que si accedes a Keteke.&lt;/p&gt;

&lt;p&gt;¿Donde está la binomio del intervencionismo (Gobierno de España&lt;sup&gt;&amp;reg;&lt;/sup&gt; y Unión Europea)? ¿A que esperan para proteger a los ciudadanos que les sostienen económicamente de la ruptura de la neutralidad de la Red?&lt;/p&gt;

&lt;p&gt;Ah, no recordaba que quitando la neutralidad de la red nos quitamos de encima &lt;strong&gt;contenidos perniciosos&lt;/strong&gt; que hablan de la corrupción del binomio anteriormente mencionado, se deja de hablar de la intromisión inmoral de los gobiernos en la vida de los ciudadanos (&lt;abbr title="Educación para la ciudadanía"&gt;EpC&lt;/abbr&gt;, imposición hostil de las lenguas autonómicas, nuevos estatutos de autonomía), de la islamización de Europa (asunto que, desafortunadamente, ya solo puede solucionarse mediante la violencia), de los gastos supérfluos e inútiles de las Administraciones Públicas (como la famosa cúpula de Barceló, de valor incalculable) que nos quitan el &lt;strong&gt;50%&lt;/strong&gt; de nuestros ingresos y otros asuntos igual de jugosos.&lt;/p&gt;

&lt;p&gt;Os doy gracias, burócratas, por protegernos de los contenidos perniciosos de la Red, por darnos la felicidad de la ignorancia. ¡Vivan las cadenas!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-3563938691015652028?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/3563938691015652028/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=3563938691015652028' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/3563938691015652028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/3563938691015652028'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/01/neutralidad-en-la-red-telefnica-keteke.html' title='Neutralidad en la Red: Telefónica, Keteke y tarifas de internet móvil'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-4871686901600875470</id><published>2009-01-19T16:15:00.001+01:00</published><updated>2009-01-19T16:17:14.378+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Dispositivos móviles'/><category scheme='http://www.blogger.com/atom/ns#' term='Propiedades CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>CSS: propiedades a evitar en dispositivos móviles</title><content type='html'>&lt;p&gt;Algunas propiedades CSS que deben evitarse o utilizarse con cuidado al crear una hoja de estilo para dispositivos móviles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class="css"&gt;float&lt;/code&gt; y &lt;code class="css"&gt;display&lt;/code&gt;: estas propiedades se utilizan para crear presentar la página en varias columnas, algo que no se va a hacer (y que no se debe), en dispositivos móviles.&lt;/li&gt;
&lt;li&gt;&lt;code class="css"&gt;padding&lt;/code&gt; y &lt;code class="css"&gt;margin&lt;/code&gt;: dependiendo de la función que cumplan habrá que retirarlas o disminuir el área que ocupan.&lt;/li&gt;
&lt;li&gt;&lt;code class="css"&gt;background-image&lt;/code&gt;: es recomendable evitar su utilización, y si se mantiene asegurarse que se adapta bien al dispositivo móvil.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mas en &lt;a href="http://www.alistapart.com/articles/returnofthemobilestylesheet"&gt;A List Apart: Return of the Mobile stylesheet&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-4871686901600875470?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/4871686901600875470/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=4871686901600875470' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4871686901600875470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4871686901600875470'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/01/css-propiedades-evitar-en-dispositivos.html' title='CSS: propiedades a evitar en dispositivos móviles'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-7495835998160611401</id><published>2009-01-13T09:39:00.003+01:00</published><updated>2009-01-13T09:49:24.972+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Año 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Mozilla'/><category scheme='http://www.blogger.com/atom/ns#' term='Usuarios'/><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Estadísticas'/><category scheme='http://www.blogger.com/atom/ns#' term='Safari'/><category scheme='http://www.blogger.com/atom/ns#' term='Cuotas de mercado'/><category scheme='http://www.blogger.com/atom/ns#' term='Opera'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Estadísticas de uso de navegadores web: evolución en 2008</title><content type='html'>&lt;p&gt;Según W3Schools está es la &lt;a href="http://www.w3schools.com/browsers/browsers_stats.asp"&gt;forma en que se reparten los usuarios los diferentes navegadores&lt;/a&gt; en diciembre de 2008, y la evolución desde diciembre de 2007:&lt;/p&gt;

&lt;!-- Pendiente de modificación de la CSS, se introduce STYLE para corregir el margen --&gt;
&lt;table style="margin:0;"&gt;
 &lt;caption&gt;Navegadores web: evolución en 2008&lt;/caption&gt;
 &lt;thead&gt;
  &lt;tr&gt;
   &lt;th scope="col"&gt;Fechas&lt;/th&gt;
   &lt;th scope="col" abbr="Internet Explorer 6 y 7" title="Internet Explorer 6 y 7"&gt;IE 6/7&lt;/th&gt;
   &lt;th scope="col" abbr="Internet Explorer 7" title="Internet Explorer 7"&gt;IE7&lt;/th&gt;
   &lt;th scope="col" abbr="Internet Explorer 6" title="Internet Explorer 6"&gt;IE6&lt;/th&gt;
   &lt;th scope="col" abbr="Firefox" title="Firefox"&gt;FF&lt;/th&gt;
   &lt;th scope="col" abbr="Chrome" title="Chrome"&gt;CHR&lt;/th&gt;
   &lt;th scope="col" abbr="Safari" title="Safari"&gt;SAF&lt;/th&gt;
   &lt;th scope="col" abbr="Opera" title="Opera"&gt;OP&lt;/th&gt;
   &lt;th scope="col" abbr="Mozilla" title="Mozilla"&gt;MZ&lt;/th&gt;
  &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
  &lt;tr&gt;
   &lt;th scope="row" abbr="Diciembre de 2007" title="Diciembre de 2007"&gt;12/2007&lt;/th&gt;
   &lt;td&gt;54,2%&lt;/td&gt;
   &lt;td&gt;21%&lt;/td&gt;
   &lt;td&gt;33,2%&lt;/td&gt;
   &lt;td&gt;36,3%&lt;/td&gt;
   &lt;td&gt;0%&lt;/td&gt;
   &lt;td&gt;1,7%&lt;/td&gt;
   &lt;td&gt;1,4%&lt;/td&gt;
   &lt;td&gt;1,4%&lt;/td&gt;
  &lt;/tr&gt;
  
  &lt;tr&gt;
   &lt;th scope="row" abbr="Diciembre de 2008" title="Diciembre de 2008"&gt;12/2008&lt;/th&gt;
   &lt;td&gt;45,7%&lt;/td&gt;
   &lt;td&gt;26,1%&lt;/td&gt;
   &lt;td&gt;19,6%&lt;/td&gt;
   &lt;td&gt;44,4%&lt;/td&gt;
   &lt;td&gt;3,6%&lt;/td&gt;
   &lt;td&gt;2,7%&lt;/td&gt;
   &lt;td&gt;2,4%&lt;/td&gt;
   &lt;td&gt;0,4%&lt;/td&gt;
  &lt;/tr&gt;
  
  &lt;tr&gt;
   &lt;th scope="row" abbr="Evolución en 2008" title="Evolución en 2008"&gt;Evolución&lt;/th&gt;
   &lt;td&gt;-8,5%&lt;/td&gt;
   &lt;td&gt;+5,1%&lt;/td&gt;
   &lt;td&gt;-13,6%&lt;/td&gt;
   &lt;td&gt;+8,1%&lt;/td&gt;
   &lt;td&gt;+3,6%&lt;/td&gt;
   &lt;td&gt;+1%&lt;/td&gt;
   &lt;td&gt;+1%&lt;/td&gt;
   &lt;td&gt;-1%&lt;/td&gt;
  &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-7495835998160611401?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/7495835998160611401/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=7495835998160611401' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7495835998160611401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7495835998160611401'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/01/estadsticas-de-uso-de-navegadores-web.html' title='Estadísticas de uso de navegadores web: evolución en 2008'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-4815309823701903981</id><published>2009-01-09T22:54:00.002+01:00</published><updated>2009-01-09T23:01:25.551+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista 64'/><category scheme='http://www.blogger.com/atom/ns#' term='Firebug'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Instalación de Firebug 1.3 en Firefox 3.0 y Windows Vista 64</title><content type='html'>&lt;p&gt;Hace poco instalé Windows Vista 64, en el que, entre otras cosas, instalé &lt;a href="http://www.mozilla-europe.org/es/firefox/"&gt;Firefox&lt;/a&gt;. Y una extensión absolutamente indispensable es &lt;a href="http://getfirebug.com/" hreflang="en"&gt;Firebug&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;La instalación de Firebug se realizaba correctamente. Pero tras reiniciar Firefox no aparecía por ninguna parte.&lt;/p&gt;

&lt;p&gt;Tras mirar en el directorio en el que se almacena el perfil de Firefox observé que no habia ningún directorio para Firebug, mientras que cada extensión tenía el suyo.&lt;/p&gt;

&lt;p&gt;La solución fue sencilla: dar con el botón derecho al acceso directo de Firefox y ejecutarlo como administrador. Se abre Firefox, se instala la extensión y al reiniciar ya aparece Firebug.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-4815309823701903981?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/4815309823701903981/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=4815309823701903981' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4815309823701903981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4815309823701903981'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2009/01/instalacin-de-firebug-13-en-firefox-30.html' title='Instalación de Firebug 1.3 en Firefox 3.0 y Windows Vista 64'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5622396626322739945</id><published>2008-12-30T10:41:00.001+01:00</published><updated>2008-12-30T10:43:44.897+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Accesibilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='WCAG'/><category scheme='http://www.blogger.com/atom/ns#' term='WCAG 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Semántica'/><title type='text'>WCAG 2.0: Accesibilidad de títulos de páginas</title><content type='html'>&lt;p&gt;El &lt;a href="http://www.w3.org/TR/WCAG20/#navigation-mechanisms"&gt;punto 2.4.2 de la WCAG 2.0&lt;/a&gt; define que los títulos de las páginas deben describir su tema o propósito:&lt;/p&gt;
&lt;blockquote cite="http://www.w3.org/TR/WCAG20/#navigation-mechanisms" lang="en"&gt;
 &lt;p&gt;2.4.2 Page Titled: Web pages have titles that describe topic or purpose. (Level A) &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Este punto se refiere al elemento &lt;code class="xhtml"&gt;TITLE&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;El contenido del elemento &lt;code class="xhtml"&gt;TITLE&lt;/code&gt; no debe limitarse al título del sitio, sino que además debe describir de forma breve el contenido de la página a la que pertenece&lt;/p&gt;

&lt;p&gt;La W3C propone &lt;a href="http://www.w3.org/TR/UNDERSTANDING-WCAG20/navigation-mechanisms-title.html"&gt;el siguiente ejemplo&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote lang="en" cite="http://www.w3.org/TR/UNDERSTANDING-WCAG20/navigation-mechanisms-title.html"&gt;
 &lt;p&gt;The title of Web Content Accessibility Guidelines 2.0 is "Web Content Accessibility Guidelines 2.0.&lt;/p&gt;
 &lt;ul&gt;
  &lt;li&gt;The introduction has the title "Introduction to Web Content Accessibility Guidelines 2.0."&lt;/li&gt;
  &lt;li&gt;The main body has the title "WCAG 2.0 Guidelines."&lt;/li&gt;
  &lt;li&gt;Appendix A has the title "Glossary to Web Content Accessibility Guidelines 2.0."&lt;/li&gt;
  &lt;li&gt;Appendix B has the title "Checklist for Web Content Accessibility Guidelines 2.0."&lt;/li&gt;
  &lt;li&gt;Appendix C has the title "Acknowledgements for Web Content Accessibility Guidelines 2.0."&lt;/li&gt;
  &lt;li&gt;Appendix D has the title "References for Web Content Accessibility Guidelines 2.0." &lt;/li&gt;
 &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2&gt;Beneficios&lt;/h2&gt;
&lt;p&gt;Algunos de los beneficios de la aplicación de este punto serían:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;El usuario podrá identificar con mayor rapidez si la información de la página le es relevante a sus necesidades.&lt;/li&gt;
 &lt;li&gt;Los usuario con deficiencias visuales podrán diferenciar las páginas de un mismo sitio cuando tenga varias abiertas simultaneamente.&lt;/li&gt;
 &lt;li&gt;Mejor indexación y visibilidad en buscadores.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5622396626322739945?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5622396626322739945/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5622396626322739945' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5622396626322739945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5622396626322739945'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/12/wcag-20-accesibilidad-de-ttulos-de.html' title='WCAG 2.0: Accesibilidad de títulos de páginas'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-1139613133766415497</id><published>2008-12-15T15:40:00.003+01:00</published><updated>2009-01-20T12:33:42.999+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Atributo longdesc'/><category scheme='http://www.blogger.com/atom/ns#' term='Accesibilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Elementos HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Atributos HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><title type='text'>HTML y Accesibilidad: el atributo longdesc en imágenes</title><content type='html'>&lt;p&gt;Cuando se utilizan imágenes en una web la práctica habitual es darles un texto alternativo mediante el atributo &lt;code class="xhtml"&gt;alt&lt;/code&gt;, o dejar vacío dicho atributo en el caso de que la función de la imagen sea meramente decorativa.&lt;/p&gt;

&lt;p&gt;Pero nos podemos encontrar con el caso de tener una imagen a la que haya que asociarle un texto alternativo, pero dicho texto sea excesivamente largo. Para esas ocasiones está el atributo &lt;code class="xhtml"&gt;longdesc&lt;/code&gt;.&lt;/p&gt;
&lt;p class="centrado imagen"&gt;&lt;img src="http://sites.google.com/site/buhardillaoscura2/Home/imagenes_contenido_complejo.png" alt="Ejemplo de imagen con textos largos" /&gt;Ejemplo de imagenes con texto largo&lt;/p&gt;

&lt;p&gt;El atributo &lt;code class="xhtml"&gt;longdesc&lt;/code&gt; &lt;a href="http://www.w3.org/TR/REC-html40/struct/objects.html#adef-longdesc-IMG"&gt;ha de ser siempre una URL que lleve a una descripción de la imagen, en la misma o en otra página&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote lang="en" cite="http://www.w3.org/TR/REC-html40/struct/objects.html#adef-longdesc-IMG"&gt;
 &lt;p&gt;longdesc = uri [CT]&lt;br /&gt;This attribute specifies a link to a long description of the image. This description should supplement the short description provided using the alt attribute. When the image has an associated image map, this attribute should provide information about the image map's contents. This is particularly important for server-side image maps. Since an IMG element may be within the content of an A element, the user agent's mechanism in the user interface for accessing the "longdesc" resource of the former must be different than the mechanism for accessing the href resource of the latter.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Se puede dar una URL externa o, como en el ejemplo expuesto más adelante, un marcador de página. En ese caso bastaría con dar un atributo &lt;code class="xhtml"&gt;id&lt;/code&gt; que haga de marcador al párrafo con la descripción. Ejemplo de como podría quedar el código HTML&lt;/p&gt;

&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;p&amp;gt;&amp;lt;img src=&amp;quot;imagen1.jpg&amp;quot; alt=&amp;quot;Promoci&amp;oacute;n&amp;quot; longdesc=&amp;quot;#descripcion1&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p id=&amp;quot;descripcion1&amp;quot;&amp;gt;Descripci&amp;oacute;n de la primera imagen.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;&amp;lt;img src=&amp;quot;imagen2.jpg&amp;quot; alt=&amp;quot;Promoci&amp;oacute;n&amp;quot; longdesc=&amp;quot;#descripcion2&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p id=&amp;quot;descripcion2&amp;quot;&amp;gt;Descripci&amp;oacute;n de la segunda imagen.&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Lectores de pantalla&lt;/h2&gt;
&lt;p&gt;Se supone que el &lt;code class="xhtml"&gt;longdesc&lt;/code&gt; es para lectores de pantalla, pero resulta que los hay que no dejan elegir al usuario si quieren ir o no a la descripción, y les llevan directamente.&lt;/p&gt;
&lt;p&gt;Una solución podría ser un enlace oculto (pero no mediante &lt;code class="css"&gt;display:none;&lt;/code&gt;, que si no los lectores de pantalla no lo pillan) que llevase a la URL de la descripción.&lt;/p&gt;

&lt;h2&gt;Enlaces relacionados&lt;/h2&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;a href="http://www.w3.org/TR/REC-html40/struct/objects.html#adef-longdesc-IMG" lang="en" hreflang="en"&gt;Including an image: the IMG element (W3.org)&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://www.w3schools.com/TAGS/att_img_longdesc.asp"&gt;HTML img longdesc Attribute (W3Schools.com)&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://accesibilidadenlaweb.blogspot.com/2006/04/el-atributo-longdesc.html"&gt;El atributo longdesc (Accesibilidad en la Web)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.stuffandnonsense.co.uk/archives/accessibility_footnotes.html" hreflang="en" lang="en"&gt;Accessibility footnotes (An all that Mallarkey)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-1139613133766415497?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/1139613133766415497/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=1139613133766415497' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1139613133766415497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1139613133766415497'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/12/html-y-accesibilidad-el-atributo.html' title='HTML y Accesibilidad: el atributo longdesc en imágenes'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-7743858101501802495</id><published>2008-12-02T16:23:00.000+01:00</published><updated>2008-12-02T16:24:43.748+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maquetadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Profesiones'/><category scheme='http://www.blogger.com/atom/ns#' term='Arquitectos de semántica y cognitividad de interfaces web'/><title type='text'>Maquetador Web versus Arquitecto de semántica y cognitividad de interfaces web</title><content type='html'>&lt;h2&gt;Maquetador web&lt;/h2&gt;
&lt;p&gt;Individuo/a que se dedica a transformar diseños de sitios web a HTML. Para ello hará lo que sea necesario:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;Mezclar presentación y contenido&lt;/li&gt;
 &lt;li&gt;Maquetación con tablas (y si se pueden anidar unas dentro de otras, mejor). Y si las tablas son para datos tabulares no espere encontrar elementos &lt;code class="xhtml"&gt;TH&lt;/code&gt;, &lt;code class="xhtml"&gt;THEAD&lt;/code&gt; y otro marcado semántico para tablas.&lt;/li&gt;
 &lt;li&gt;Utilizar elementos HTML desaconsejados (&lt;code class="html"&gt;FONT&lt;/code&gt;, &lt;code class="html"&gt;B&lt;/code&gt;, &lt;code class="html"&gt;U&lt;/code&gt;, etc.)&lt;/li&gt;
 &lt;li&gt;Javascript intrusivo, desde atributos &lt;code class="html"&gt;onclick&lt;/code&gt;, &lt;code class="html"&gt;onmouseover&lt;/code&gt;, a enlaces que solo funcionan con Javascript activado.&lt;/li&gt;
 &lt;li&gt;Accesibilidad, ¿para qué? ¿qué es?&lt;/li&gt;
 &lt;li&gt;Semántica del marcado HTML, ¿para qué? ¿qué es?&lt;/li&gt;
 &lt;li&gt;Recomendaciones de la W3C, ¿para qué? ¿qué son?&lt;/li&gt;
 &lt;li&gt;En muchas ocasiones no ve más allá de Internet Explorer&lt;/li&gt;
 &lt;li&gt;Dispositivos móviles, ¿para qué? ¿qué son?&lt;/li&gt;
 &lt;li&gt;Etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Arquitecto de semántica y cognitividad de interfaces web&lt;/h2&gt;

&lt;p&gt;Profesional que se dedica a transformar diseños para sitios web a (X)HTML+CSS con Javascript no intrusivo.&lt;/p&gt;
&lt;p&gt;Características:&lt;/p&gt;
 &lt;ul&gt;
  &lt;li&gt;Las tablas no se usan para maquetar: solo se usan para presentación de datos tabulares.&lt;/li&gt;
  &lt;li&gt;Genera un marcado HTML todo lo semántico que le sea posible: secuencias de encabezados, listados, etc. Se usa cada elemento en el cometido para el que fue ideado. De esta forma la página se entiende aunque se prescinda de CSS y Javascript.&lt;/li&gt;
  &lt;li&gt;Sigue escrupulosamente las recomendaciones de la W3C&lt;/li&gt;
  &lt;li&gt;Ve a Internet Explorer (sobre todo al 6) como su peor enemigo, pero aun así su actitud es noble y le tiende la mano en cada maquetación realizada.&lt;/li&gt;
  &lt;li&gt;Genera sitios web accesibles, de modo que personas con discapacidades o que accedan desde dispositivos móviles puedan disfrutar de los contenidos con las menores limitaciones posibles.&lt;/li&gt;
  &lt;li&gt;Separación impecable de la presentación y el contenido.&lt;/li&gt;
  &lt;li&gt;El Javascript no es intrusivo, y sus páginas no pierden la funcionalidad a pesar de que Javascript esté desactivado.&lt;/li&gt;
 &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-7743858101501802495?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/7743858101501802495/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=7743858101501802495' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7743858101501802495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7743858101501802495'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/12/maquetador-web-versus-arquitecto-de.html' title='Maquetador Web versus Arquitecto de semántica y cognitividad de interfaces web'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-4965413270803631115</id><published>2008-12-02T00:41:00.010+01:00</published><updated>2009-02-02T11:50:32.563+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Accesibilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Semántica'/><category scheme='http://www.blogger.com/atom/ns#' term='Calendario'/><title type='text'>PHP: función para crear calendario accesible y semántico</title><content type='html'>&lt;p&gt;He aquí una función en PHP para generar un calendario con XHTML semántico y accesible, y con clases e identificadores adecuados para aplicarle rápidamente el CSS.&lt;/p&gt;

&lt;p&gt;La función lleva cuatro parámetros, todos ellos opcionales, en el siguiente orden:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;strong&gt;A&amp;ntilde;o ($year):&lt;/strong&gt; Define el a&amp;ntilde;o que se va a mostrar, siendo un valor de 4 dígitos. Se predetermina al a&amp;ntilde;o actual.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Mes ($mes):&lt;/strong&gt; Define el mes a mostrar, con valores de &lt;em&gt;1&lt;/em&gt; a &lt;em&gt;12&lt;/em&gt;. Se predetermina al mes actual.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Estado fines de semana ($finDeSemana=1):&lt;/strong&gt; Define si los días de los fines de semana llevan o no enlace. Se le da valor &lt;em&gt;1&lt;/em&gt; para mostrarlos con enlace, o valor &lt;em&gt;0&lt;/em&gt; para quitar el enlace. Se predetermina a &lt;em&gt;1&lt;/em&gt;.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Estado de días nulos ($mostrarDiasNulos=1):&lt;/strong&gt; Define si se muestran los días de la primera semana que pertenecen al mes anterior y los días de la última semana que pertenecen al mes posterior. Se le da valor &lt;em&gt;1&lt;/em&gt; para mostrarlos, o valor &lt;em&gt;0&lt;/em&gt; para ocultarlos. Se predetermina a &lt;em&gt;1&lt;/em&gt;.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Nivel de encabezado ($nivelH=2):&lt;/strong&gt; Nivel del encabezado del bloque de calendario. Ha de terner un valor de entre &lt;em&gt;1&lt;/em&gt; y &lt;em&gt;6&lt;/em&gt;. Se predetermina en &lt;em&gt;2&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Ejemplo de llamada a la función con el mes de febrero de 2009, los fines de semana desactivados, los días nulos activados y un encabezado de nivel 3:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;calendario(2009,2,0,1,3);&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://sites.google.com/site/buhardillaoscura2/Home/calendario_php.zip"&gt;Descargar archivo con ejemplo funcional&lt;/a&gt; o &lt;a href="http://calendario.outbook.es/calendario.php" target="_blank"&gt;verlo en acción (abre en ventana nueva)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Funciones para generar el calendario (para mayor seguridad, utilizar el código del ejemplo descargable):&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;function calendario ($year,$mes,$finDeSemana=1,$mostrarDiasNulos=1,$nivelH=2) {
 
 if (strlen($year)!=4) {$year=date(&amp;apos;Y&amp;apos;);}
 if (($mes&amp;lt;1 or $mes&amp;gt;12) or (strlen($mes)&amp;lt;1 or strlen($mes)&amp;gt;2)) {$year=date(&amp;apos;n&amp;apos;);}
 
 // Listados: días de la semana, letra inicial de los días de la semana, y meses
 $dias = array(&amp;apos;Lunes&amp;apos;,&amp;apos;Martes&amp;apos;,&amp;apos;Mi&amp;eacute;rcoles&amp;apos;,&amp;apos;Jueves&amp;apos;,&amp;apos;Viernes&amp;apos;,&amp;apos;S&amp;aacute;bado&amp;apos;,&amp;apos;Domingo&amp;apos;);
 $diasAbbr = array(&amp;apos;L&amp;apos;,&amp;apos;M&amp;apos;,&amp;apos;M&amp;apos;,&amp;apos;J&amp;apos;,&amp;apos;V&amp;apos;,&amp;apos;S&amp;apos;,&amp;apos;D&amp;apos;);
 $meses = array(&amp;apos;Enero&amp;apos;,&amp;apos;Febrero&amp;apos;,&amp;apos;Marzo&amp;apos;,&amp;apos;Abril&amp;apos;,&amp;apos;Mayo&amp;apos;,&amp;apos;Junio&amp;apos;,&amp;apos;Julio&amp;apos;,&amp;apos;Agosto&amp;apos;,&amp;apos;Septiempre&amp;apos;,&amp;apos;Octubre&amp;apos;,&amp;apos;Noviembre&amp;apos;,&amp;apos;Diciembre&amp;apos;);
 
 // Se sacan valores que se utilizarán más adelante
 $diaInicial = gmmktime(0,0,0,$mes,1,$year);  // Primer día del mes dado
 $diasNulos = (date(&amp;quot;N&amp;quot;,$diaInicial))-1; // Con &amp;apos;N&amp;apos; la semana empieza en Lunes. Con &amp;apos;w&amp;apos;, en domingo
  if($diasNulos&amp;lt;0){$diasNulos = 7-abs($diasNulos);}
 $diasEnMes = date(&amp;quot;t&amp;quot;,$diaInicial); // Número de días del mes dado
 
 // Se abre la capa contenedora y se genera el encabezado del bloque de calendario
 $html .= &amp;apos;&amp;lt;div id=&amp;quot;calendario&amp;quot;&amp;gt;&amp;apos;;
 $html .= &amp;apos;&amp;lt;h&amp;apos;.$nivelH.&amp;apos; class=&amp;quot;encabezadoCalendario&amp;quot;&amp;gt;Calendario&amp;lt;/h&amp;apos;.$nivelH.&amp;apos;&amp;gt;&amp;apos;;
 
 // Párrafos con la fecha actual y la fecha seleccionada
 $html .= &amp;apos;&amp;lt;p&amp;gt;Fecha actual: &amp;apos;.date(&amp;apos;j&amp;apos;).&amp;apos; de &amp;apos;.$meses[(intval(date(&amp;apos;n&amp;apos;))-1)].&amp;apos; de &amp;apos;.date(&amp;apos;Y&amp;apos;).&amp;apos;&amp;lt;/p&amp;gt;&amp;apos;;
 $html .= &amp;apos;&amp;lt;p&amp;gt;Fecha seleccionada: &amp;apos;;
 if (isset($_GET[&amp;apos;dia&amp;apos;])) {$html .= &amp;apos;&amp;apos;.$_GET[&amp;apos;dia&amp;apos;].&amp;apos; de &amp;apos;;} // El día solo sale si se ha definido previamente en el parámetro &amp;apos;dia&amp;apos; de la URL
 $html .= &amp;apos;&amp;apos;.$meses[($mes-1)].&amp;apos; de &amp;apos;.$year.&amp;apos;&amp;lt;/p&amp;gt;&amp;apos;;
 $html .= &amp;apos;&amp;lt;div class=&amp;quot;tabla&amp;quot;&amp;gt;&amp;apos;;
 
 
 // Enlaces al mes anterior y al siguiente
 $html .= &amp;apos;&amp;lt;p&amp;gt;Navegación por meses:&amp;lt;/p&amp;gt;&amp;apos;;
 $html .= &amp;apos;&amp;lt;ul id=&amp;quot;calNavMeses&amp;quot;&amp;gt;&amp;apos;;
 $enlaceAnterior1 = gmmktime(0,0,0,($mes-1),1,$year);
 $mesAnterior = date(&amp;apos;n&amp;apos;,$enlaceAnterior1);
 $yearMesAnterior = date(&amp;apos;Y&amp;apos;,$enlaceAnterior1);
 $enlaceSiguiente1 = gmmktime(0,0,0,($mes+1),1,$year);
 $mesSiguiente = date(&amp;apos;n&amp;apos;,$enlaceSiguiente1);
 $yearMesSiguiente = date(&amp;apos;Y&amp;apos;,$enlaceSiguiente1);
 $html .= &amp;apos;&amp;lt;li class=&amp;quot;anterior&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;?mes=&amp;apos;.$mesAnterior.&amp;apos;&amp;amp;ano=&amp;apos;.$yearMesAnterior.&amp;apos;&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Mes anterior (&amp;apos;.$meses[($mesAnterior-1)].&amp;apos;)&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;apos;;
 $html .= &amp;apos;&amp;lt;li class=&amp;quot;siguiente&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;?mes=&amp;apos;.$mesSiguiente.&amp;apos;&amp;amp;ano=&amp;apos;.$yearMesSiguiente.&amp;apos;&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Mes siguiente (&amp;apos;.$meses[($mesSiguiente-1)].&amp;apos;)&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;apos;;
 $html .= &amp;apos;&amp;lt;/ul&amp;gt;&amp;apos;;
 
 // Enlaces al a&amp;ntilde;o anterior y al siguiente
 $html .= &amp;apos;&amp;lt;p&amp;gt;Navegación por a&amp;ntilde;os:&amp;lt;/p&amp;gt;&amp;apos;;
 $html .= &amp;apos;&amp;lt;ul id=&amp;quot;calNavYears&amp;quot;&amp;gt;&amp;apos;;
 $enlaceAnterior2 = gmmktime(0,0,0,$mes,1,($year-1));
 $yearAnterior = date(&amp;apos;Y&amp;apos;,$enlaceAnterior2);
 $enlaceSiguiente2 = gmmktime(0,0,0,$mes,1,($year+1));
 $yearSiguiente = date(&amp;apos;Y&amp;apos;,$enlaceSiguiente2);
 $html .= &amp;apos;&amp;lt;li class=&amp;quot;anterior&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;?mes=&amp;apos;.$mes.&amp;apos;&amp;amp;ano=&amp;apos;.$yearAnterior.&amp;apos;&amp;quot;&amp;gt;&amp;lt;span&amp;gt;A&amp;ntilde;o anterior (&amp;lt;/span&amp;gt;&amp;apos;.$yearAnterior.&amp;apos;&amp;lt;span&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;apos;;
 $html .= &amp;apos;&amp;lt;li class=&amp;quot;siguiente&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;?mes=&amp;apos;.$mes.&amp;apos;&amp;amp;ano=&amp;apos;.$yearSiguiente.&amp;apos;&amp;quot;&amp;gt;&amp;lt;span&amp;gt;A&amp;ntilde;o siguiente (&amp;lt;/span&amp;gt;&amp;apos;.$yearSiguiente.&amp;apos;&amp;lt;span&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;apos;;
 $html .= &amp;apos;&amp;lt;/ul&amp;gt;&amp;apos;;
 
 // Se abre la tabla que contiene el calendario
 $html .= &amp;apos;&amp;lt;table&amp;gt;&amp;apos;;
 
 // Título mes-a&amp;ntilde;o (elemento CAPTION)
 $mesLista = $mes-1;
 $html .= &amp;apos;&amp;lt;caption&amp;gt;&amp;apos;.$meses[$mesLista].&amp;apos;&amp;lt;span&amp;gt; de&amp;lt;/span&amp;gt; &amp;apos;.$year.&amp;apos;&amp;lt;/caption&amp;gt;&amp;apos;;
 
 // Se definen anchuras en elementos COL
 $cl=0; $anchoCol=100/7; while ($cl&amp;lt;7) {$html .= &amp;apos;&amp;lt;col width=&amp;quot;&amp;apos;.$anchoCol.&amp;apos;%&amp;quot; /&amp;gt;&amp;apos;; $cl++;}
 
 // Fila de los días de la semana (elemento THEAD)
 $html .= &amp;apos;&amp;lt;thead&amp;gt;&amp;lt;tr&amp;gt;&amp;apos;;$d=0;
 while ($d&amp;lt;7) {$html .= &amp;apos;&amp;lt;th scope=&amp;quot;col&amp;quot; abbr=&amp;quot;&amp;apos;.$dias[$d].&amp;apos;&amp;quot;&amp;gt;&amp;apos;.$diasAbbr[$d].&amp;apos;&amp;lt;/th&amp;gt;&amp;apos;;$d++;}
 $html .= &amp;apos;&amp;lt;/tr&amp;gt;&amp;lt;/thead&amp;gt;&amp;apos;;
 
 // Se generan los días nulos (días del mes anterior o posterior) iniciales, el TBODY y su primer TR
 $html .= &amp;apos;&amp;lt;tbody&amp;gt;&amp;apos;;
 if ($diasNulos&amp;gt;0) {$html .= &amp;apos;&amp;lt;tr&amp;gt;&amp;apos;;} // Se abre el TR solo si hay días nulos
 if ($diasNulos&amp;gt;0 and $mostrarDiasNulos==0) {$html .= &amp;apos;&amp;lt;td class=&amp;quot;nulo&amp;quot; colspan=&amp;quot;&amp;apos;.$diasNulos.&amp;apos;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;apos;;} // Se hace un TD en blanco con el ancho según los día nulos que haya
 if ($mostrarDiasNulos==1) { // Generación de los TD con días nulos si está activado que se muestren
  $dni=$diasNulos;$i=0;
  while ($i&amp;lt;$diasNulos) {
   $enSegundosNulo = gmmktime(0,0,0,$mes,(1-$dni),$year);
   $dmNulo = date(&amp;apos;j&amp;apos;,$enSegundosNulo);
   $idFechaNulo = &amp;apos;cal-&amp;apos;.date(&amp;apos;Y-m-d&amp;apos;,$enSegundosNulo);
   $html .= &amp;apos;&amp;lt;td id=&amp;quot;&amp;apos;.$idFechaNulo.&amp;apos;&amp;quot; class=&amp;quot;diaNulo&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;dia&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;enlace&amp;quot;&amp;gt;&amp;apos;.$dmNulo.&amp;apos;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;apos;;
   $dni--;
   $i++;
  }
 }
 
 
 
 // Se generan los TD con los días del mes
 $dm=1;$x=0;$ds=$diasNulos+1;
 while ($dm&amp;lt;=$diasEnMes) {
  if(($x+$diasNulos)%7==0 and $x!=0) {$html .= &amp;apos;&amp;lt;/tr&amp;gt;&amp;apos;;} // Se evita el cierre del TR si no hay días nulos iniciales
  if(($x+$diasNulos)%7==0) {$html .= &amp;apos;&amp;lt;tr&amp;gt;&amp;apos;;$ds=1;}
  $enSegundosCalendario = gmmktime(0,0,0,$mes,$dm,$year); // Fecha del día generado en segundos
  $enSegundosActual = gmmktime(0,0,0,date(&amp;apos;n&amp;apos;),date(&amp;apos;j&amp;apos;),date(&amp;apos;Y&amp;apos;)); // Fecha actual en segundos
  $enSegundosSeleccionada = gmmktime(0,0,0,$_GET[&amp;apos;mes&amp;apos;],$_GET[&amp;apos;dia&amp;apos;],$_GET[&amp;apos;ano&amp;apos;]); // Fecha seleccionada, en segundos
  $idFecha = &amp;apos;cal-&amp;apos;.date(&amp;apos;Y-m-d&amp;apos;,$enSegundosCalendario);
  
  // Se generan los parámetros de la URL para el enlace del día
  $link_dia = date(&amp;apos;j&amp;apos;,$enSegundosCalendario);
  $link_mes = date(&amp;apos;n&amp;apos;,$enSegundosCalendario);
  $link_year = date(&amp;apos;Y&amp;apos;,$enSegundosCalendario);
  
  // Clases y etiquetado general para los días, para día actual y para día seleccionado
  $claseActual=&amp;apos;&amp;apos;;$tagDia=&amp;apos;span&amp;apos;;
  if ($enSegundosCalendario==$enSegundosActual) {$claseActual=&amp;apos; fechaHoy&amp;apos;;$tagDia=&amp;apos;strong&amp;apos;;}
  if ($enSegundosCalendario==$enSegundosSeleccionada and isset($_GET[&amp;apos;dia&amp;apos;])) {$claseActual=&amp;apos; fechaSeleccionada&amp;apos;;$tagDia=&amp;apos;em&amp;apos;;}
  if ($enSegundosCalendario==$enSegundosActual and $enSegundosCalendario==$enSegundosSeleccionada and isset($_GET[&amp;apos;dia&amp;apos;])) {$claseActual=&amp;apos; fechaHoy fechaSeleccionada&amp;apos;;$tagDia=&amp;apos;strong&amp;apos;;}
  
  // Desactivación de los días del fin de semana
  if (($ds&amp;lt;6 and $finDeSemana==0) or $finDeSemana!=0) { // Si el fin de semana está activado, o el día es de lunes a viernes
   $tagEnlace=&amp;apos;a&amp;apos;;
   $atribEnlace=&amp;apos;href=&amp;quot;?dia=&amp;apos;.$link_dia.&amp;apos;&amp;amp;mes=&amp;apos;.$link_mes.&amp;apos;&amp;amp;ano=&amp;apos;.$link_year.&amp;apos;&amp;quot;&amp;apos;;
  } if ($ds&amp;gt;5 and $finDeSemana==0) { // Si el fin de semana está desactivado y el día es sábado o domingo
   $tagEnlace=&amp;apos;span&amp;apos;;
   $atribEnlace=&amp;apos;&amp;apos;;
   $paramFinde=&amp;apos;0&amp;apos;;
  }
  
  // Con las variables ya definidas, se crea el HTML del TD
  $html .= &amp;apos;&amp;lt;td id=&amp;quot;&amp;apos;.$idFecha.&amp;apos;&amp;quot; class=&amp;quot;&amp;apos;.calendarioClaseDia($ds).$claseActual.&amp;apos;&amp;quot;&amp;gt;&amp;lt;&amp;apos;.$tagDia.&amp;apos; class=&amp;quot;dia&amp;quot;&amp;gt;&amp;lt;&amp;apos;.$tagEnlace.&amp;apos; class=&amp;quot;enlace&amp;quot; &amp;apos;.$atribEnlace.&amp;apos;&amp;gt;&amp;apos;.$dm.&amp;apos;&amp;lt;/&amp;apos;.$tagEnlace.&amp;apos;&amp;gt;&amp;lt;/&amp;apos;.$tagDia.&amp;apos;&amp;gt;&amp;lt;/td&amp;gt;&amp;apos;;
  
  $dm++;$x++;$ds++;
 }
 
 // Se generan los días nulos finales
 $diasNulosFinales = 0;
 while((($diasEnMes+$diasNulos)%7)!=0){$diasEnMes++;$diasNulosFinales++;}
 if ($diasNulosFinales&amp;gt;0 and $mostrarDiasNulos==0) {$html .= &amp;apos;&amp;lt;td class=&amp;quot;nulo&amp;quot; colspan=&amp;quot;&amp;apos;.$diasNulosFinales.&amp;apos;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;apos;;} // Se hace un TD en blanco con el ancho según los día nulos que haya (si no se activa mostrar los días nulos)
 if ($mostrarDiasNulos==1) { // Generación de días nulos (si se activa mostrar los días nulos)
  $dnf=0;
  while ($dnf&amp;lt;$diasNulosFinales) {
   $enSegundosNulo = gmmktime(0,0,0,($mes+1),($dnf+1),$year);
   $dmNulo = date(&amp;apos;j&amp;apos;,$enSegundosNulo);
   $idFechaNulo = &amp;apos;cal-&amp;apos;.date(&amp;apos;Y-m-d&amp;apos;,$enSegundosNulo);
   $html .= &amp;apos;&amp;lt;td id=&amp;quot;&amp;apos;.$idFechaNulo.&amp;apos;&amp;quot; class=&amp;quot;diaNulo&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;dia&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;enlace&amp;quot;&amp;gt;&amp;apos;.$dmNulo.&amp;apos;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;apos;;
   $dnf++;
  }
 }
 
 // Se cierra el último TR y el TBODY
 $html .= &amp;apos;&amp;lt;/tr&amp;gt;&amp;lt;/tbody&amp;gt;&amp;apos;;
 
 // Se cierra la tabla
 $html .= &amp;apos;&amp;lt;/table&amp;gt;&amp;apos;;
 
 // Se cierran la capa de la tabla y la capa contenedora
 $html .= &amp;apos;&amp;lt;/div&amp;gt;&amp;apos;;
 $html .= &amp;apos;&amp;lt;/div&amp;gt;&amp;apos;;
 
 // Se devuelve la variable que contiene el HTML del calendario
 return $html;
}

function calendarioClaseDia ($dia) {
 switch ($dia) {
  case 1: $clase = &amp;apos;lunes semana&amp;apos;; break;
  case 2: $clase = &amp;apos;martes semana&amp;apos;; break;
  case 3: $clase = &amp;apos;miercoles semana&amp;apos;; break;
  case 4: $clase = &amp;apos;jueves semana&amp;apos;; break;
  case 5: $clase = &amp;apos;viernes semana&amp;apos;; break;
  case 6: $clase = &amp;apos;sabado finDeSemana&amp;apos;; break;
  case 7: $clase = &amp;apos;domingo finDeSemana&amp;apos;; break;
 }
 return $clase;
}&lt;/code&gt;&lt;/pre&gt;


&lt;h2&gt;Actualizaciones&lt;/h2&gt;
&lt;p class="actualizacion"&gt;&lt;strong&gt;Actualizado 2008-12-03:&lt;/strong&gt; Se a&amp;ntilde;ade la posibilidad de desactivar los fines de semana.&lt;/p&gt;
&lt;p class="actualizacion"&gt;&lt;strong&gt;Actualizado 2008-12-04:&lt;/strong&gt; Se a&amp;ntilde;ade la posibilidad de desactivar o activar los días de la primera semana que son del mes anterior y los de la última que son del mes siguiente (denominados como días nulos). Se explican los parámetros a introducir al llamar a la función.&lt;/p&gt;
&lt;p class="actualizacion"&gt;&lt;strong&gt;Actualizado 2008-12-05:&lt;/strong&gt; Mejoras de accesibilidad.&lt;/p&gt;
&lt;p class="actualizacion"&gt;&lt;strong&gt;Actualizado 2009-02-01:&lt;/strong&gt; Corregido el fragmento de código expuesto en la página.&lt;/p&gt;

&lt;h2&gt;Licencia&lt;/h2&gt;
&lt;p&gt;A diferencia de otros contenidos la licencia para este artículo y el ejemplo adjunto es &lt;a href="http://creativecommons.org/licenses/by-sa/3.0/es/"&gt;Reconocimiento-Compartir bajo la misma licencia 3.0 Espa&amp;ntilde;a&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-4965413270803631115?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/4965413270803631115/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=4965413270803631115' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4965413270803631115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4965413270803631115'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/12/php-funcin-para-crear-calendario.html' title='PHP: función para crear calendario accesible y semántico'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-1983475310852501025</id><published>2008-12-01T16:18:00.000+01:00</published><updated>2008-12-01T16:19:17.951+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Programación'/><title type='text'>PHP: Partir una variable en varias líneas</title><content type='html'>&lt;p&gt;En ocasiones al escribir el contenido de una variable PHP se emplean líneas distintas que pueden no ser consecutivas, por ejemplo:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;$html = $html.&amp;#39;&amp;lt;p&amp;gt;Primer elemento&amp;lt;/p&amp;gt;&amp;#39;;
$html = $html.&amp;#39;&amp;lt;p&amp;gt;Segundo elemento&amp;lt;/p&amp;gt;&amp;#39;;
$html = $html.&amp;#39;&amp;lt;p&amp;gt;Tercer elemento&amp;lt;/p&amp;gt;&amp;#39;;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Cuando sería más correcto:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;$html .= &amp;#39;&amp;lt;p&amp;gt;Primer elemento&amp;lt;/p&amp;gt;&amp;#39;;
$html .= &amp;#39;&amp;lt;p&amp;gt;Segundo elemento&amp;lt;/p&amp;gt;&amp;#39;;
$html .= &amp;#39;&amp;lt;p&amp;gt;Tercer elemento&amp;lt;/p&amp;gt;&amp;#39;;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;En el segundo ejemplo se ha sustituido la variable después del símbolo &amp;quot;igual&amp;quot; por un punto justo antes de dicho símbolo.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-1983475310852501025?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/1983475310852501025/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=1983475310852501025' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1983475310852501025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1983475310852501025'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/12/php-partir-una-variable-en-varias-lneas.html' title='PHP: Partir una variable en varias líneas'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-2762569447349760466</id><published>2008-11-30T01:26:00.000+01:00</published><updated>2008-11-30T01:27:11.136+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Paginación'/><title type='text'>PHP: Crear una paginación de resultados para una consulta MySQL</title><content type='html'>&lt;p&gt;No es necesario copiar todos estos fragmentos de código: al final del artículo se muestra completo.&lt;/p&gt;

&lt;p&gt;El primer paso es definir cuantos registros se quieren mostrar en cada página, en este caso se deja en 10:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;// Registros a mostrar en cada p&amp;aacute;gina
$regVistos = 10;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Se define una consulta que recupere todos los registros que se vayan a mostrar, con los parámetros mínimos imprescindibles:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;// Consulta que devuelve todos los registros
$lista0 = mysql_query(&amp;quot; SELECT * FROM registros&amp;quot;);&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Se cuentan los registros recuperados por la consulta MySQL:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;// Se cuentan los registros devueltos por la consulta SQL $lista0
$totalSql = mysql_num_rows($lista0);&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Con los registros que salen divididos por los que se quiere que se vean por cada página, se obtienen las páginas en las que se dividirá el listado de resultados. Se redondea &lt;strong&gt;siempre&lt;/strong&gt; hacia arriba con &lt;a href="http://outbook.blogspot.com/2008/04/php-redondeo-de-nmeros-decimales-hacia.html"&gt;&lt;code class="php"&gt;ceil&lt;/code&gt;&lt;/a&gt;, ya que si, por ejemplo, salen 3,4 páginas, ese 0,4 que queda suelto, debe ocupar una página entera:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;// P&amp;aacute;ginas que van a aparecer, redondeando los decimales siempre hacia arriba
$pagTotal = ceil($totalSql/$regVistos);&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Son también necesarios los datos de la página actual, la anterior y la siguiente. En este ejemplo la página actual se recoge del parámetro de la URL &lt;em&gt;pag&lt;/em&gt;. Si ese parámetro no está definido, se predetermina en 1. Las páginas anterior y siguiente se obtienen restando o sumando 1 según sea necesario:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;// Se definen la p&amp;aacute;gina actual (desde el par&amp;aacute;metro &amp;#39;pag&amp;#39; de la URL) y las p&amp;aacute;ginas anterior y siguiente
if (!isset($_GET[&amp;#39;pag&amp;#39;])) {$pagActual=1;} else {$pagActual=$_GET[&amp;#39;pag&amp;#39;];}
$pagAnterior = $pagActual-1;
$pagSiguiente = $pagActual+1;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Es el momento de realizar la consulta MySQL para mostrar los registros. En este caso la consulta devolverá los mismos registros que en la anterior, pero se le ha añadido ordenación descendente (es opcional) y el parámetro &lt;code class="mysql"&gt;LIMIT&lt;/code&gt;. El parámetro LIMIT contiene dos números separados por comas: el primero es que el registro por el que se empieza el listado (la página actual menos 1 por los registros a mostrar en cada página), y el segundo el número de registros a mostrar. Ejemplo:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;// Consulta SQL con la que se sacar&amp;aacute; el listado de registros
$lista1 = mysql_query(&amp;quot; SELECT * FROM registros ORDER BY campo DESC LIMIT &amp;quot;.(($pagActual-1)*$regVistos).&amp;quot;,&amp;quot;.$regVistos.&amp;quot;&amp;quot;);
// Bucle para generar el listado de registros
while($fila = mysql_fetch_assoc($lista1)) {
 // Aqu&amp;iacute; ir&amp;aacute; el c&amp;oacute;digo PHP que escriba los registros
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Finalmente se genera el listado de páginas mediante una lista desordenada (&lt;code class="xhtml"&gt;UL&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;El primer elemento de la lista será el enlace a la página anterior, mostrándose con la condición de que la página actual no sea la primera.&lt;/p&gt;
&lt;p&gt;Se mostrarán los números de página mediante un bucle, destacando la página actual mediante un elemento &lt;code class="xhtml"&gt;strong&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Y el último elemento de la lista será el enlace a la página siguiente.&lt;/p&gt;
&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;// Se inicia el listado de p&amp;aacute;ginas
echo &amp;#39;&amp;lt;ul&amp;gt;&amp;#39;;

// Si la p&amp;aacute;gina actual no es la primera, se muestra el enlace a la p&amp;aacute;gina anterior
if ($pagAnterior&amp;gt;0) {echo &amp;#39;&amp;lt;li class=&amp;quot;anterior&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;lista.php?pag=&amp;#39;.$pagAnterior.&amp;#39;&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;oculto&amp;quot;&amp;gt;P&amp;aacute;gina &amp;lt;/span&amp;gt;Anterior&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#39;;}

// Se saca el listado de p&amp;aacute;ginas mediante un bucle
$pgIntervalo = 3; // P&amp;aacute;ginas que aparecen antes y despu&amp;eacute;s de la actual
$pgMaximo = ($pgIntervalo*2) 1; // M&amp;aacute;ximo de p&amp;aacute;ginas en el listado
$pg=$pagActual-$pgIntervalo;$i=0;
while ($i&amp;lt;$pgMaximo) {
 if ($pg==$pagActual) {$strong=array(&amp;#39;&amp;lt;strong&amp;gt;&amp;#39;,&amp;#39;&amp;lt;/strong&amp;gt;&amp;#39;);} else {$strong=array(&amp;#39;&amp;#39;,&amp;#39;&amp;#39;);}
 if ($pg&amp;gt;0 and $pg&amp;lt;=$pagTotal) {
  echo &amp;#39;&amp;lt;li&amp;gt;&amp;#39;.$strong[0].&amp;#39;&amp;lt;a href=&amp;quot;admin.php?p=&amp;#39;.$_GET[&amp;#39;p&amp;#39;].&amp;#39;&amp;amp;amp;pag=&amp;#39;.$pg.&amp;#39;&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;oculto&amp;quot;&amp;gt;P&amp;aacute;gina &amp;lt;/span&amp;gt;&amp;#39;.$pg.&amp;#39;&amp;lt;/a&amp;gt;&amp;#39;.$strong[1].&amp;#39;&amp;lt;/li&amp;gt;&amp;#39;;
  $i  ;
 }
 if ($pg&amp;gt;$pagTotal) {$i=$pgMaximo;} // Si la p&amp;aacute;gina que se va a mostrar se pasa de la cantidad de p&amp;aacute;ginas definidas en $pagTotal se para la generaci&amp;oacute;n de elementos de lista
 $pg  ;
}

// Si la p&amp;aacute;gina actual no es la &amp;uacute;ltima, se muestra el enlace a la p&amp;aacute;gina siguiente
if ($pagSiguiente&amp;lt;=$pagTotal) {echo &amp;#39;&amp;lt;li class=&amp;quot;siguiente&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;admin.php?p=&amp;#39;.$_GET[&amp;#39;p&amp;#39;].&amp;#39;&amp;amp;amp;pag=&amp;#39;.$pagSiguiente.&amp;#39;&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;oculto&amp;quot;&amp;gt;P&amp;aacute;gina &amp;lt;/span&amp;gt;Siguiente&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#39;;}

// Se finaliza el listado de p&amp;aacute;ginas
echo &amp;#39;&amp;lt;/ul&amp;gt;&amp;#39;;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Y de esta forma se obtiene una paginación en PHP.&lt;/p&gt;

&lt;h2&gt;Ejemplo completo&lt;/h2&gt;

&lt;pre&gt;&lt;code class="php"&gt;&amp;lt;?

// Registros a mostrar en cada p&amp;aacute;gina
$regVistos = 10;

// Consulta que devuelve todos los registros
$lista0 = mysql_query(&amp;quot; SELECT * FROM registros&amp;quot;);

// Se cuentan los registros devueltos por la consulta SQL $lista0
$totalSql = mysql_num_rows($lista0);

// P&amp;aacute;ginas que van a aparecer, redondeando los decimales siempre hacia arriba
$pagTotal = ceil($totalSql/$regVistos);

// Se definen la p&amp;aacute;gina actual (desde el par&amp;aacute;metro &amp;#39;pag&amp;#39; de la URL) y las p&amp;aacute;ginas anterior y siguiente
if (!isset($_GET[&amp;#39;pag&amp;#39;])) {$pagActual=1;} else {$pagActual=$_GET[&amp;#39;pag&amp;#39;];}
$pagAnterior = $pagActual-1;
$pagSiguiente = $pagActual 1;

// Consulta SQL con la que se sacar&amp;aacute; el listado de registros
$lista1 = mysql_query(&amp;quot; SELECT * FROM registros ORDER BY campo DESC LIMIT &amp;quot;.(($pagActual-1)*$regVistos).&amp;quot;,&amp;quot;.$regVistos.&amp;quot;&amp;quot;);
// Bucle para generar el listado de registros
while($fila = mysql_fetch_assoc($lista1)) {
 // Aqu&amp;iacute; ir&amp;aacute; el c&amp;oacute;digo PHP que escriba los registros
}

// Se inicia el listado de p&amp;aacute;ginas
echo &amp;#39;&amp;lt;ul&amp;gt;&amp;#39;;

// Si la p&amp;aacute;gina actual no es la primera, se muestra el enlace a la p&amp;aacute;gina anterior
if ($pagAnterior&amp;gt;0) {echo &amp;#39;&amp;lt;li class=&amp;quot;anterior&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;lista.php?pag=&amp;#39;.$pagAnterior.&amp;#39;&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;oculto&amp;quot;&amp;gt;P&amp;aacute;gina &amp;lt;/span&amp;gt;Anterior&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#39;;}

// Se saca el listado de p&amp;aacute;ginas mediante un bucle
$pgIntervalo = 3; // P&amp;aacute;ginas que aparecen antes y despu&amp;eacute;s de la actual
$pgMaximo = ($pgIntervalo*2) 1; // M&amp;aacute;ximo de p&amp;aacute;ginas en el listado
$pg=$pagActual-$pgIntervalo;$i=0;
while ($i&amp;lt;$pgMaximo) {
 if ($pg==$pagActual) {$strong=array(&amp;#39;&amp;lt;strong&amp;gt;&amp;#39;,&amp;#39;&amp;lt;/strong&amp;gt;&amp;#39;);} else {$strong=array(&amp;#39;&amp;#39;,&amp;#39;&amp;#39;);}
 if ($pg&amp;gt;0 and $pg&amp;lt;=$pagTotal) {
  echo &amp;#39;&amp;lt;li&amp;gt;&amp;#39;.$strong[0].&amp;#39;&amp;lt;a href=&amp;quot;admin.php?p=&amp;#39;.$_GET[&amp;#39;p&amp;#39;].&amp;#39;&amp;amp;amp;pag=&amp;#39;.$pg.&amp;#39;&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;oculto&amp;quot;&amp;gt;P&amp;aacute;gina &amp;lt;/span&amp;gt;&amp;#39;.$pg.&amp;#39;&amp;lt;/a&amp;gt;&amp;#39;.$strong[1].&amp;#39;&amp;lt;/li&amp;gt;&amp;#39;;
  $i  ;
 }
 if ($pg&amp;gt;$pagTotal) {$i=$pgMaximo;} // Si la p&amp;aacute;gina que se va a mostrar se pasa de la cantidad de p&amp;aacute;ginas definidas en $pagTotal se para la generaci&amp;oacute;n de elementos de lista
 $pg  ;
}

// Si la p&amp;aacute;gina actual no es la &amp;uacute;ltima, se muestra el enlace a la p&amp;aacute;gina siguiente
if ($pagSiguiente&amp;lt;=$pagTotal) {echo &amp;#39;&amp;lt;li class=&amp;quot;siguiente&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;admin.php?p=&amp;#39;.$_GET[&amp;#39;p&amp;#39;].&amp;#39;&amp;amp;amp;pag=&amp;#39;.$pagSiguiente.&amp;#39;&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;oculto&amp;quot;&amp;gt;P&amp;aacute;gina &amp;lt;/span&amp;gt;Siguiente&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#39;;}

// Se finaliza el listado de p&amp;aacute;ginas
echo &amp;#39;&amp;lt;/ul&amp;gt;&amp;#39;;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-2762569447349760466?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/2762569447349760466/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=2762569447349760466' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2762569447349760466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2762569447349760466'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/11/php-crear-una-paginacin-de-resultados.html' title='PHP: Crear una paginación de resultados para una consulta MySQL'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-8082407147796692439</id><published>2008-11-30T00:16:00.003+01:00</published><updated>2008-12-02T00:45:18.933+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Redondeo'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Programación'/><category scheme='http://www.blogger.com/atom/ns#' term='Números decimales'/><category scheme='http://www.blogger.com/atom/ns#' term='floor'/><title type='text'>PHP: redondeo de números decimales hacia abajo (floor)</title><content type='html'>&lt;p&gt;La función PHP &lt;code class="php"&gt;floor&lt;/code&gt; permite eliminar la parte decimal de un número redondeándolo hacia abajo. Por ejemplo, 11.22 se redondearía a 11, 11.9999 se redondearía a 11:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;echo floor(11.22); // 11
echo floor(11.9999); // 11&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://outbook.blogspot.com/2008/04/php-redondeo-de-nmeros-decimales-hacia.html"&gt;Para realizar el redondeo hacia arriba se usa &lt;code class="php"&gt;ceil&lt;/code&gt;&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://es.php.net/floor"&gt;Saber más&lt;span class="oculto"&gt; sobre &lt;em&gt;floor&lt;/em&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-8082407147796692439?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/8082407147796692439/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=8082407147796692439' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8082407147796692439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8082407147796692439'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/11/php-redondeo-de-nmeros-decimales-hacia.html' title='PHP: redondeo de números decimales hacia abajo (floor)'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-8443834811745353497</id><published>2008-10-26T16:53:00.002+01:00</published><updated>2008-10-26T16:57:56.249+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Accesibilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Telefónica'/><category scheme='http://www.blogger.com/atom/ns#' term='Indra'/><category scheme='http://www.blogger.com/atom/ns#' term='Dinero público'/><category scheme='http://www.blogger.com/atom/ns#' term='Congreso de los Diputados'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Web del Congreso de los Diputados: calamitosa</title><content type='html'>&lt;p&gt;Hace más de un año &lt;a href="http://www.kriptopolis.org/el-espectro-de-hispahack-planea-otra-vez-sobre-el-congreso"&gt;saltó el escándalo del aberrante sitio web del Congreso de los Diputados&lt;/a&gt; (no por el aspecto, sino por el código y la accesibilidad).&lt;/p&gt;

&lt;p&gt;En aquel momento se podían ver varias declaraciones de DTD a lo largo del código fuente, varias aperturas del elemento BODY y aberraciones similares.&lt;/p&gt;

&lt;p&gt;En este momento parece que han solucionado algunos problemas. Pero está maquetada en tablas y tiene Javascript intrusivo. En el HEAD tiene elementos STYLE llenitos de reglas CSS (todo eso es mejor meterlo en un documento externo CSS y vincularlo al HTML con el elemento LINK). El sitio dispone de una página de accesibilidad, y al menos tienen la decencia de no colgarse medallas y decir que están en ello.&lt;/p&gt;

&lt;p&gt;Han pasado 16 meses desde que se vio el asunto: ¿no es suficiente tiempo para arreglar un problema de maquetación?&lt;/p&gt;

&lt;p&gt;&lt;a href="http://sites.google.com/site/buhardillaoscura2/Home/html_congreso_20081026.rtf"&gt;Documento RTF (se abre con cualquier procesador de textos) con el HTML de la página de inicio del Congreso en el 26 de octubre de 2008&lt;/a&gt; (este documento puede herir su sensibilidad y/o dañarle la vista: lo abre bajo su propia responsabilidad).&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.kriptopolis.org/cuanto-ha-costado"&gt;Otro detalle&lt;/a&gt;. Parece que el engendro ha sido puesto en marcha por Indra y por Telefónica. Son empresas mas o menos poderosas. ¿No tienen en sus filas ni un solo maquetador cualificado? Si no lo tienen, ¿no pueden subcontratarlo? ¿No hay nadie del Congreso supervisando la calidad del sitio web que han montado (y viendo si han tirado el dinero)?&lt;/p&gt;

&lt;p&gt;Pagadores de impuestos, como bien dijo &lt;a href="http://www.congreso.es/portal/page/portal/Congreso/Congreso/Diputados/BusqForm?_piref73_1333155_73_1333154_1333154.next_page=/wc/fichaDiputado&amp;idDiputado=114&amp;idLegislatura=9"&gt;&lt;acronym title="Camarada Carmen Calvo Poyato"&gt;CCCP&lt;/acronym&gt;&lt;/a&gt; diputada en el Congreso:&lt;/p&gt;
&lt;blockquote cite="http://es.wikiquote.org/wiki/Carmen_Calvo"&gt;
 &lt;p&gt;&lt;a href="http://es.wikiquote.org/wiki/Carmen_Calvo"&gt;Estamos manejando dinero público, y el dinero público no es de nadie.&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-8443834811745353497?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/8443834811745353497/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=8443834811745353497' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8443834811745353497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8443834811745353497'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/10/web-del-congreso-de-los-diputados.html' title='Web del Congreso de los Diputados: calamitosa'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-4130290473378230898</id><published>2008-10-20T13:04:00.003+02:00</published><updated>2008-10-20T13:08:43.583+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sistemas de gestión de contenidos'/><category scheme='http://www.blogger.com/atom/ns#' term='Gestión de proyectos'/><category scheme='http://www.blogger.com/atom/ns#' term='Accesibilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Elementos HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Atributos HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Estándares web'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Personal dedicado a la gestión de contenidos: ¿Qué deben saber?</title><content type='html'>&lt;p&gt;Un aspecto que debe cuidar una empresa cuando dispone de un sitio web es el del mantenimiento y creación de contenidos. Se suelen utilizar gestores de contenido, lo que facilita dicha tarea.&lt;/p&gt;

&lt;p&gt;Y es ahí donde pueden surgir problemas. ¿Quién se dedica a introducir y modificar los contenidos? Hay ocasiones, incluso en compañías enormes que son la cabeza visible de su sector, que esa tarea se encarga a personas sin el más mínimo conocimiento de HTML.&lt;/p&gt;

&lt;p&gt;Esto ocasiona que a veces un portal que se ha elaborado respetando estándares y accesibilidad acabe perdiendo dichas características, de modo que la inversión extra realizada para ello resulta un desperdicio.&lt;/p&gt;

&lt;p&gt;Las personas que se dediquen a realizar estas funciones no tienen por que saber de maquetación HTML-CSS, pero si deben tener unos conocimientos básico de HTML que no es muy complicado de aprender:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;Concepto de etiqueta HTML.&lt;/li&gt;
 &lt;li&gt;Etiquetas y atributos básicos:
  &lt;ul&gt;
   &lt;li&gt;&lt;code class="xhtml"&gt;DIV&lt;/code&gt;, &lt;code class="xhtml"&gt;SPAN&lt;/code&gt;.&lt;/li&gt;
   &lt;li&gt;&lt;code class="xhtml"&gt;H1-H6&lt;/code&gt;, &lt;code class="xhtml"&gt;P&lt;/code&gt;, &lt;code class="xhtml"&gt;BR&lt;/code&gt;, &lt;code class="xhtml"&gt;STRONG&lt;/code&gt;, &lt;code class="xhtml"&gt;EM&lt;/code&gt;.&lt;/li&gt;
   &lt;li&gt;&lt;code class="xhtml"&gt;BR&lt;/code&gt;.&lt;/li&gt;
   &lt;li&gt;&lt;code class="xhtml"&gt;DL&lt;/code&gt;, &lt;code class="xhtml"&gt;UL&lt;/code&gt;, &lt;code class="xhtml"&gt;OL&lt;/code&gt;, &lt;code class="xhtml"&gt;DL&lt;/code&gt;: las etiquetas para listados.&lt;/li&gt;
   &lt;li&gt;&lt;code class="xhtml"&gt;TABLE&lt;/code&gt;, &lt;code class="xhtml"&gt;CAPTION&lt;/code&gt;, &lt;code class="xhtml"&gt;COL&lt;/code&gt;, &lt;code class="xhtml"&gt;COLGROUP&lt;/code&gt;, &lt;code class="xhtml"&gt;THEAD&lt;/code&gt;, &lt;code class="xhtml"&gt;TBODY&lt;/code&gt;, &lt;code class="xhtml"&gt;TFOOT&lt;/code&gt;, &lt;code class="xhtml"&gt;TR&lt;/code&gt;, &lt;code class="xhtml"&gt;TH&lt;/code&gt;, &lt;code class="xhtml"&gt;TD&lt;/code&gt; etiquetas para tablas. Debe también saber hacer uso del atributo &lt;code class="xhtml"&gt;scope&lt;/code&gt;.&lt;/li&gt;
   &lt;li&gt;&lt;code class="xhtml"&gt;IMG&lt;/code&gt;: debe conocer al menos el atributo &lt;code class="xhtml"&gt;alt&lt;/code&gt;.&lt;/li&gt;
   &lt;li&gt;Los atributos &lt;code class="xhtml"&gt;id&lt;/code&gt; y &lt;code class="xhtml"&gt;class&lt;/code&gt;.&lt;/li&gt;
  &lt;/ul&gt;
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Además deben saber en que momento utilizar cada etiqueta y como hacer que el contenido que están generando sea mínimamente accesible.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-4130290473378230898?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/4130290473378230898/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=4130290473378230898' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4130290473378230898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4130290473378230898'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/10/personal-dedicado-la-gestin-de.html' title='Personal dedicado a la gestión de contenidos: ¿Qué deben saber?'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-2960596640983356505</id><published>2008-10-18T01:00:00.001+02:00</published><updated>2008-10-18T01:04:09.048+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Dispositivos móviles'/><category scheme='http://www.blogger.com/atom/ns#' term='HTC Diamond'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>HTC Diamond: Características</title><content type='html'>&lt;p&gt;Listado de características del HTC Diamond:&lt;/p&gt;

&lt;ul&gt;
 &lt;li&gt;Sistema operativo Windows Mobile 6.1.&lt;/li&gt;
 &lt;li&gt;Procesador de 512Mhz, 192MB de RAM y 4GB de almacenamiento. Tiene la pega de no tener ranura para tarjetas de memoria.&lt;/li&gt;
 &lt;li&gt;Solo un conector para carga, movimiento de datos y auriculares: ExtUSB. Para poner unos auriculares normaleshay que utilizar un adaptador. Es compatible con cables Mini-USB.&lt;/li&gt;
 &lt;li&gt;Pantalla táctil: puede utilizarse con o sin puntero, ya que los menús se pueden manejar bien directamente con los dedos. En cuanto al teclado (el que aparece en pantalla, evidentemente), trae uno  de HTC más adecuado para los dedos que el predeterminado de Windows Mobile, para el que hay que usar el puntero.&lt;/li&gt;
 &lt;li&gt;Acelerómetro que detecta la posición del móvil. Sirve para que determinadas aplicaciones gieren al cambiar la orientación de la pantalla. Existe una aplicación llamada &lt;a href="http://forum.xda-developers.com/showthread.php?t=403939"&gt;GSEN&lt;/a&gt; que permite el cambio de orientación de pantalla en todas las aplicaciones que se quiera.&lt;/li&gt;
 &lt;li&gt;Conectividad: Wi-Fi, GPRS/WCDMA/HSDPA (HSDPA hasta 7,2Mb), Bluetooth y ActiveSync (que utiliza la conexión del PC al que se le enchufe). Además se puede usar como modem en un ordenador, aunque la forma de realizar la conexión puede resultar un poco engorrosa, ya que hay que abrir una aplicación de conexión compartida en el móvil.&lt;/li&gt;
 &lt;li&gt;Navegación web: Internet Explorer y Opera 9.5. El Opera 9.5 es una maravilla, tiene pestañas y detecta la orientación de pantalla. Parec que el &lt;a href="http://outbook.blogspot.com/2008/10/nuevo-internet-explorer-para-windows.html"&gt;Internet Explorer va a ser actualizado&lt;/a&gt;.&lt;/li&gt;
 &lt;li&gt;Windows Media Player: escaso de formatos (le faltan OGG Vorbis, DivX, XVid). Se puede utilizar en su lugar el Core Player, que está en la sección de descargas de &lt;a href="http://www.htcmania.com"&gt;HTC Mania&lt;/a&gt; (requiere registro).&lt;/li&gt;
 &lt;li&gt;GPS: funciona bastante bien, aunque algunas veces parece que le cuesta pillar los satélites. Trae una aplicación Google Maps que puede usarse conjuntamente con el GPS, con la desventaja de que tiene que descargar los mapas, lo que supone un desembolso de dinero si no se tiene una buena tarifa de datos. Yo le he instalado el TomTom 7 y va muy bien: se puede encontrar en &lt;a href="http://www.vagos.es"&gt;Vagos&lt;/a&gt;, y hay que fijarse bien que sea la versión para resolución VGA.&lt;/li&gt;
 &lt;li&gt;Aplicaciones Java, como en cualquier otro móvil.&lt;/li&gt;
 &lt;li&gt;Outlook para Windows Mobile: muy fácil de configurar las cuentas de Gmail.&lt;/li&gt;
 &lt;li&gt;Cámara de 3.2Mpx. Saca bastante bien las fotos, aunque tiene la pega de no tener flash, lo que hace que cuando hay poca luz la calidad se resienta un poco.&lt;/li&gt;
 &lt;li&gt;TouchFlo 3D: reune diversas funciones en unas pestañas en mi opinión bastante útiles:
  &lt;ul&gt;
   &lt;li&gt;Mensajes SMS&lt;/li&gt;
   &lt;li&gt;Correo electrónico&lt;/li&gt;
   &lt;li&gt;Internet: Acceso directo a Opera y a los favoritos almacenados en dicho navegador.&lt;/li&gt;
   &lt;li&gt;Imagen y vídeo: accesos directos a la camara y vista previa de las fotos y vídeos realizados.&lt;/li&gt;
   &lt;li&gt;Música: reproductor de música muy cómodo. Adolece del mismo problema de formatos que el Windows Media Player.&lt;/li&gt;
   &lt;li&gt;Predicción meteorológica: temperatura y estado climatológico actual y para los próximos cinco días. Solo para grandes ciudades.&lt;/li&gt;
   &lt;li&gt;Configuración: fondo de pantalla, interfaces de comunicación, etc.&lt;/li&gt;
   &lt;li&gt;Listado de accesos directos de aplicaciones configurable.&lt;/li&gt;
   &lt;li&gt;&lt;a href="http://forum.xda-developers.com/showpost.php?p=2373839&amp;postcount=1"&gt;TF3D Config&lt;/a&gt;: para configurar algunos aspectos del TF3D.&lt;/li&gt;
  &lt;/ul&gt;
 &lt;/li&gt;
 &lt;li&gt;En Linux solo funciona adecuadamente el modo de memoria USB. Para que funcione el ActiveSync hay que seguir un procedimiento muy engorroso.&lt;/li&gt;
 &lt;li&gt;Si se compra libre cuesta una pasta, pero se evitan las pesadas permanencias con operadores de móvil y tener que reflashear para quitar las &amp;quot;mejoras&amp;quot; introducidas por dichos operadores.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-2960596640983356505?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/2960596640983356505/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=2960596640983356505' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2960596640983356505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2960596640983356505'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/10/htc-diamond-caractersticas.html' title='HTC Diamond: Características'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-7447750505499032848</id><published>2008-10-07T12:24:00.000+02:00</published><updated>2008-10-07T12:25:07.841+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>PHP: recuperar la URL completa de la página actual</title><content type='html'>&lt;p&gt;Se puede realizar mediante esta sencilla función:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;function averiguaUrl() {
 $protocolo = $_SERVER[&amp;#39;HTTPS&amp;#39;] == &amp;#39;on&amp;#39; ? &amp;#39;https&amp;#39; : &amp;#39;http&amp;#39;; // Se extrae el protocolo (http o https)
 return $protocolo.&amp;#39;://&amp;#39;.$_SERVER[&amp;#39;HTTP_HOST&amp;#39;].$_SERVER[&amp;#39;REQUEST_URI&amp;#39;]; // Se devuelve la URL completa
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Visto en &lt;a lang="en" hreflang="en" href="http://www.phpro.org/examples/Get-Full-URL.html"&gt;PHP Tutorials Examples: Get Full URL&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-7447750505499032848?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/7447750505499032848/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=7447750505499032848' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7447750505499032848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7447750505499032848'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/10/php-recuperar-la-url-completa-de-la.html' title='PHP: recuperar la URL completa de la página actual'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-350772745745638222</id><published>2008-10-06T11:49:00.001+02:00</published><updated>2008-10-06T11:50:59.784+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Accesibilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript obstrusivo'/><category scheme='http://www.blogger.com/atom/ns#' term='Etiqueta NOSCRIPT'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='XHMTL'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Evitar el uso de la etiqueta NOSCRIPT</title><content type='html'>&lt;p&gt;En algunas ocasiones al crear un comportamiento Javascript se necesita, por accesibilidad, que haya un contenido alternativo en el caso de tener Javascript deshabilitado.&lt;/p&gt;

&lt;p&gt;Esto puede conseguirse mediante la etiqueta &lt;code class="xhtml"&gt;NOSCRIPT&lt;/code&gt;. Aunque tiene un inconveniente. Supongamos un navegador que tiene Javascript activado pero no soporta el Javascript que se ha creado. No obtendrá ni el contenido resultante de ejecutar el Javascript ni el contenido de la etiqueta &lt;code class="xhtml"&gt;NOSCRIPT&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;¿No sería mejor que el HTML tenga de inicio el contenido que va en &lt;code class="xhtml"&gt;NOSCRIPT&lt;/code&gt;  y que mediante Javascript ese contenido se elimine al cargar la página en el caso de que el navegador sea compatible con el Javascript realizado?&lt;/p&gt;

&lt;p&gt;Idea sacada de &lt;a href="http://dev.opera.com/articles/view/replacing-noscript-with-accessible-un/" lang="en" hreflang="en"&gt;Replacing &amp;lt;noscript&amp;gt; with accessible, unobtrusive DOM/JavaScript&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-350772745745638222?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/350772745745638222/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=350772745745638222' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/350772745745638222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/350772745745638222'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/10/evitar-el-uso-de-la-etiqueta-noscript.html' title='Evitar el uso de la etiqueta NOSCRIPT'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-1989428087584534217</id><published>2008-10-02T16:02:00.001+02:00</published><updated>2008-10-02T16:04:10.389+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>Nuevo Internet Explorer para Windows Mobile</title><content type='html'>&lt;p&gt;Parece que proximamente va a aparecer una nueva versión de Internet Explorer para Windows Mobile 6.1, incluyendo como principal novedad el poder mostrar las páginas como si se estuviesen viendo en una pantalla grande con un navegador normal, y hacer zoom en la parte que se quiera visualizar (Igual que Safari para Iphone, Opera 9.5 para Windows Mobile o la última versión de Opera Mini).&lt;/p&gt;

&lt;p&gt;La pega es que ese nuevo navegador está basado en el exitoso Internet Explorer 6 (si, ese que soporta tan maravillosamente los estándares web). Aun así es un avance, ya que la versión actual está basada en Internet Explorer 4.&lt;/p&gt;

&lt;p&gt;Dicen que soportará Flash. Solo así podrá superar en algo a Opera 9.5 Mobile.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.theunwired.net/?item=browser-microsoft-s-internet-explorer-mobile-6-aka-6-on-6-is-real-and-shows-its-face&amp;category=02-pocket-pc-news&amp;category=02-pocket-pc-news" hreflang="en"&gt;Más información y capturas de pantalla en the::unwired&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-1989428087584534217?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/1989428087584534217/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=1989428087584534217' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1989428087584534217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1989428087584534217'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/10/nuevo-internet-explorer-para-windows.html' title='Nuevo Internet Explorer para Windows Mobile'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-775621988883044622</id><published>2008-09-30T14:02:00.000+02:00</published><updated>2008-09-30T14:03:15.390+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Acerca de'/><category scheme='http://www.blogger.com/atom/ns#' term='Usabilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><title type='text'>Secciones "Acerca de": como distribuir bien el contenido</title><content type='html'>&lt;p&gt;Jakob Nielsen nos da unas cuantas pistas en su &lt;a href="http://www.useit.com/alertbox/about-us-pages.html"&gt;Alertbox de 29 de septiembre de 2008&lt;/a&gt; para distribuir los contenidos del &lt;em&gt;Acerca de&lt;/em&gt; en un sitio web de forma útil para el usuario:&lt;/p&gt;

&lt;blockquote cite="http://www.useit.com/alertbox/about-us-pages.html"&gt;
 &lt;ol&gt;
  &lt;li&gt;Tagline on the homepage: A few words or a brief sentence summarizing what the organization does.&lt;/li&gt;
  &lt;li&gt;Summary: 1-2 paragraphs at the top of the main About Us page that offer a bit more detail about the organization's goal and main accomplishments.&lt;/li&gt;
  &lt;li&gt;Fact sheet: A section following the summary that elaborates on its key points and other essential facts about the organization.&lt;/li&gt;
  &lt;li&gt;Detailed information: Subsidiary pages with more depth for people who want to learn more about the organization.&lt;/li&gt;
 &lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;No hay que crear una sola página específica para el &lt;em&gt;Acerca de&lt;/em&gt;, sino que hay que distribuir el contenido en determinadas partes del sitio:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;Una breve descripcion (no más de una línea) del cometido del sitio organización en la página de inicio.&lt;/li&gt;
 &lt;li&gt;Ya en la página del &lt;em&gt;Acerca de&lt;/em&gt; uno o dos párrafos que detallen un poco más lo del punto anterior: algo así como un resumen.&lt;/li&gt;
 &lt;li&gt;Una tabla con los puntos que describan la actividad del sitio u organización justo después del resumen.&lt;/li&gt;
 &lt;li&gt;Si fuese necesario crear páginas de detalle jerárquicamente por debajo de la del &lt;em&gt;Acerca de&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-775621988883044622?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/775621988883044622/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=775621988883044622' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/775621988883044622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/775621988883044622'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/09/secciones-acerca-de-como-distribuir.html' title='Secciones &quot;Acerca de&quot;: como distribuir bien el contenido'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-7816462503758436485</id><published>2008-09-30T13:12:00.001+02:00</published><updated>2008-09-30T14:04:54.872+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='Certificados SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='kubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Apache SSL con certificado en Ubuntu/Kubuntu</title><content type='html'>&lt;p&gt;Parece que en el Apache de Ubuntu es un poco más complicado crear un certificado para el SSL (falta el script &lt;em&gt;apache2-ssl-certificate&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;En Launchpad &lt;a href="https://launchpad.net/ubuntu/+source/apache2/+bug/77675"&gt;han abierto una página para este bug&lt;/a&gt;, en la que hay un comentario que ayuda bastante a crear el certificado y activar el SSL. Reproduzco a continuación dicho comentario:&lt;/p&gt;


&lt;blockquote cite="https://launchpad.net/ubuntu/+source/apache2/+bug/77675/comments/47"&gt;
&lt;pre style="border:0;background:none;font-size:11px"&gt;maraja wrote on 2008-04-30: (permalink)

setup

   1. sudo apt-get install apache2
   2. sudo apt-get install openssl
   3. sudo apt-get install ssl-cert

create ssl certificate:
sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/localhost.pem

switch to apache sites configuration:
cd /etc/apache2/sites-available/

bakup the default configuration:
sudo cp default default.backup.date

be sure to listen the port 80 for the default:
sudo sed -i &amp;#39;1,2s/\*/*:80/&amp;#39; default

create the ssl configuration:
sudo cp default ssl

set the ssl port:
sudo sed -i &amp;#39;1,2s/\*:80/*:443/&amp;#39; ssl
sudo sed -i &amp;quot;3a\\\tSSLEngine On\n\tSSLCertificateFile /etc/ssl/private/localhost.pem&amp;quot; ssl

enable ssl:
sudo a2ensite ssl
sudo a2enmod ssl

restart apache2:
sudo /etc/init.d/apache2 restart

=)&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://launchpad.net/ubuntu/+source/apache2/+bug/77675/comments/47"&gt;Enlace permanente al comentario&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-7816462503758436485?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/7816462503758436485/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=7816462503758436485' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7816462503758436485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7816462503758436485'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/09/apache-ssl-con-certificado-en.html' title='Apache SSL con certificado en Ubuntu/Kubuntu'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-4332155296854774057</id><published>2008-09-25T09:46:00.000+02:00</published><updated>2008-09-25T09:50:34.997+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chmod'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux: hacer ejecutable un fichero mediante chmod</title><content type='html'>&lt;p&gt;Tan solo hay que añadir el parámetro &lt;code&gt;+x&lt;/code&gt;. En el siguiente ejemplo se hace al archivo escribible por cualquiera y ejecutable:&lt;/p&gt;

&lt;pre&gt;&lt;code class="comando linux"&gt;chmod 777 +x /home/usuario/carpeta/archivo.sh&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-4332155296854774057?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/4332155296854774057/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=4332155296854774057' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4332155296854774057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4332155296854774057'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/09/linux-hacer-ejecutable-un-fichero.html' title='Linux: hacer ejecutable un fichero mediante chmod'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-3677229784698204702</id><published>2008-09-22T09:24:00.000+02:00</published><updated>2008-09-22T09:25:07.900+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Javascript: hallar el número de caracteres de una cadena</title><content type='html'>&lt;p&gt;Sencillo:&lt;/p&gt;
&lt;pre&gt;&lt;code class="javascript"&gt;cadena = &amp;#39;texto de la cadena&amp;#39;;
longitud = cadena.length;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Como si se tratase de un array.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-3677229784698204702?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/3677229784698204702/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=3677229784698204702' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/3677229784698204702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/3677229784698204702'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/09/javascript-hallar-el-nmero-de.html' title='Javascript: hallar el número de caracteres de una cadena'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-2611020207453169610</id><published>2008-09-06T16:50:00.003+02:00</published><updated>2008-09-06T16:55:25.781+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Música'/><category scheme='http://www.blogger.com/atom/ns#' term='Final Fantasy VII'/><category scheme='http://www.blogger.com/atom/ns#' term='Nobuo Uematsu'/><category scheme='http://www.blogger.com/atom/ns#' term='Bandas sonoras'/><category scheme='http://www.blogger.com/atom/ns#' term='Final Fantasy'/><title type='text'>Banda sonora de Final Fantasy VII</title><content type='html'>&lt;p&gt;Sacada de Youtube&lt;/p&gt;

&lt;h2&gt;Tour de Japon - Main Theme of Final Fantasy VII&lt;/h2&gt;

&lt;div class="youtube"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/jzz5cVt70j8&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/jzz5cVt70j8&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;

&lt;h2&gt;Tour de Japon - Aerith's Theme&lt;/h2&gt;

&lt;div class="youtube"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/7UODCxAtyDo&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/7UODCxAtyDo&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;

&lt;h2&gt;Final Fantasy VII One Winged Angel (Eminence Symphony)&lt;/h2&gt;

&lt;div class="youtube"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Yn71hIsm0U8&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Yn71hIsm0U8&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-2611020207453169610?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/2611020207453169610/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=2611020207453169610' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2611020207453169610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2611020207453169610'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/09/banda-sonora-de-final-fantasy-vii.html' title='Banda sonora de Final Fantasy VII'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-864956621967684412</id><published>2008-09-02T23:20:00.003+02:00</published><updated>2008-09-02T23:26:21.497+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Webkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Chrome'/><title type='text'>Google Chrome</title><content type='html'>&lt;p&gt;Tras un día entero de rumores y tras conocer el &lt;a href="http://www.google.com/googlebooks/chrome/index.html"&gt;comic del navegador de Google&lt;/a&gt;, ya está disponible para Windows, no así para Linux (de momento), &lt;a href="http://www.google.com/chrome"&gt;Google Chrome&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Tras la descarga de un ligero ejecutable que descargará los archivos de la Red, comienza la instalación:&lt;/p&gt;

&lt;p class="imagen centrado"&gt;&lt;img src="http://sites.google.com/site/buhardillaoscura2/imagenes/chrome_01.png" alt="Instalación de Google Chrome (1)" /&gt;&lt;/p&gt;

&lt;p class="imagen centrado"&gt;&lt;img src="http://sites.google.com/site/buhardillaoscura2/imagenes/chrome_02.png" alt="Instalación de Google Chrome (2)" /&gt;&lt;/p&gt;

&lt;p&gt;Y una vez instalado, ya en acción:&lt;/p&gt;

&lt;p class="imagen centrado"&gt;&lt;a href="http://sites.google.com/site/buhardillaoscura2/imagenes/chrome_03.png"&gt;&lt;img src="http://sites.google.com/site/buhardillaoscura2/imagenes/tn_chrome_03.jpg" alt="Página inicial de Google Chrome" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p class="imagen centrado"&gt;&lt;a href="http://sites.google.com/site/buhardillaoscura2/imagenes/chrome_03.png"&gt;&lt;img src="http://sites.google.com/site/buhardillaoscura2/imagenes/tn_chrome_04.jpg" alt="Outbook en chrome" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A primera vista parece simplón, pero es rápido, sencillo y cómodo, al tiempo que tiene una interfaz agradable a la vista.&lt;/p&gt;

&lt;p&gt;Está basado en Webkit, igual que Safari, por lo que será otro navegador que trata de respetar los estándares. Estuve navegando un buen rato y no observé que ninguno de los sitios que visité se viera mal.&lt;/p&gt;

&lt;p&gt;Un detalle curioso es la &lt;em&gt;Ventana de navegación de incógnito&lt;/em&gt;. Todo lo que se abra en esa ventana no será registrado en el historial, ni se dejarán rastros de cookies:&lt;/p&gt;

&lt;p class="imagen centrado"&gt;&lt;img src="http://1183357667751635790-a-1802744773732722657-s-sites.googlegroups.com/site/buhardillaoscura2/imagenes/chrome_05.png" alt="Outbook en chrome" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.google.com/chrome"&gt;Descargar Google Chrome&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-864956621967684412?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/864956621967684412/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=864956621967684412' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/864956621967684412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/864956621967684412'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/09/google-chrome.html' title='Google Chrome'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-8667365819343151998</id><published>2008-09-01T18:15:00.002+02:00</published><updated>2008-10-18T01:02:44.989+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Dispositivos móviles'/><category scheme='http://www.blogger.com/atom/ns#' term='HTC Diamond'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>HTC Diamond: características, impresiones y pegas</title><content type='html'>&lt;p class="destacado"&gt;&lt;strong&gt;Actualización:&lt;/strong&gt; &lt;a href="http://outbook.blogspot.com/2008/10/htc-diamond-caractersticas.html"&gt;lo he reescrito&lt;/a&gt;.&lt;/p&gt;

&lt;div class="oculto"&gt;
&lt;p&gt;Hace unos días sustituí mi viejo móvil (un NEC e242) por un HTC Diamond. La diferencia entre ambos, como puede suponerse, es abismal.&lt;/p&gt;

&lt;p&gt;El HTC Diamond tiene características muy interesantes:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;Pantalla táctil y Windows Mobile (a pesar que que no me guste mucho Windows)&lt;/li&gt;
 &lt;li&gt;Navegación web: incluye Opera 9.5 para Windows Mobile (es maravilloso). También lleva Internet Explorer, pero teniendo Opera...&lt;/li&gt;
 &lt;li&gt;Conectividad de red: Wi-fi, GPRS/WCDMA/HSDPA (hasta 7,2Mb!!) y ActiveSync (que utiliza la conexión del PC al que se le enchufe). Además se puede usar como modem en un ordenador, aunque la forma de realizar la conexión puede resultar un poco engorrosa, ya que hay que abrir una aplicación de conexión compartida en el móvil.&lt;/li&gt;
 &lt;li&gt;Capacidad multimedia: MP3/WMA (le falta Ogg Vorbis), cámara fotográfica y de vídeo (calidad aceptable), reproducción de vídeo (no soporta Divx, aunque &lt;a href="http://mobile.divx.com/divx"&gt;hay una aplicación que lo solventa&lt;/a&gt;).&lt;/li&gt;
 &lt;li&gt;GPS: se supone, según el vendedor, que incluía una versión de prueba de TomTom, pero en el que yo compré no había nada de eso. Me lo he bajado del Rapidshare y le he puesto un mapa de la península Ibérica. Va bastante bién, aunque se merienda una batería totalmente cargada en dos horas y media. También se puede utilizar el GPS con la aplicación que trae para Google Maps, aunque sin voz.&lt;/li&gt;
 &lt;li&gt;Trae una aplicación para ver vídeos de YouTube y otra para RSS.&lt;/li&gt;
 &lt;li&gt;Aplicaciones Java: aun no lo he probado, pero parece que se le pueden meter aplicaciones Java como las de los móviles normales.&lt;/li&gt;
 &lt;li&gt;Correo: gran facilidad para configurar Gmail.&lt;/li&gt;
 &lt;li&gt;TouchFlo 3D: le da un toque alegre a la interfaz del móvil.&lt;/li&gt;
 &lt;li&gt;Capacidad de memoria: 4GB, suficientes, aunque podrían haber incluido una ranura de memoria.&lt;/li&gt;
 &lt;li&gt;Teclado: no lleva, pero da igual, por que aparece uno en la pantalla táctil, que se puede configurar como el de un móvil normal, QWERTY abreviado (como en la Blackberry Pearl) y QWERTY sin abreviar. A pesar de lo que pueda parecer se maneja bastante bien.&lt;/li&gt;
 &lt;li&gt;Lleva acelerómetro (creo que se llama así), de forma que al ver imágenes (en el TouchFlo) o al visitar un sitio web en Opera, si se cambia la orientación de la pantalla a horizontal, cambia también la orientación de la aplicación (aunque en Opera no parece que vaya demasiado bien).&lt;/li&gt;
 &lt;li&gt;Incluye un puntero, que proporciona mayor precisión que los dedos en la pantalla táctil.&lt;/li&gt;
 &lt;li&gt;En cuanto a lo que es hablar por teléfono resulta cómodo y la calidad del sonido es mejor que en el móvil que tenía antes.&lt;/li&gt;
 &lt;li&gt;Se puede comprar libre, pero a un precio que deja el bolsillo un poco dolorido.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Algunas pegas:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;Falta de compatibilidad con Linux. En modo de almacenamiento masivo si es reconocido sin problemas, pero en modo ActiveSync parece que hay dificultades (pero es reconocido).&lt;/li&gt;
 &lt;li&gt;El enchufe para cargador/cable de datos y auriculares no es estándar (aunque hay un cable que adapta dicho enchufe a conectores estándar).&lt;/li&gt;
 &lt;li&gt;La cámara no tiene flash, y no destaca mucho su calidad en ambientes oscuros.&lt;/li&gt;
 &lt;li&gt;Trae un plástico para proteger la pantalla, pero si se coloca mal y se despega para colocarlo bien, van a quedar zonas despegadas. Es complicado hacerse con esos plásticos (aunque no es imposible).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-8667365819343151998?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/8667365819343151998/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=8667365819343151998' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8667365819343151998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8667365819343151998'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/09/htc-diamond-caractersticas-impresiones.html' title='HTC Diamond: características, impresiones y pegas'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-7632855411928650154</id><published>2008-08-28T09:53:00.000+02:00</published><updated>2008-08-28T09:54:29.957+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer 8'/><title type='text'>Internet Explorer 8 Beta 2</title><content type='html'>&lt;p&gt;Ya está disponible la &lt;a href="http://www.microsoft.com/windows/internet-explorer/beta/worldwide-sites.aspx"&gt;segunda beta de la octava versión de Internet Explorer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;En esta ocasión parece que se aceran más a la versión final, ya que incluye nuevas opciones de privacidad, el autocompletado de direcciones como en Firefox 3 y Opera 9.5, etc.&lt;/p&gt;

&lt;p class="imagen centrado"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/ie8b2_01.png" alt="Captura de pantalla de Internet Explorer 8 Beta 2" /&gt;&lt;/p&gt;

&lt;p&gt;Lo más interesante es el cambio del botón de emulación de Explorer 7 por un botón &lt;em lang="en"&gt;Compatibility view&lt;/em&gt; para ver bien sitios diseñados para navegadores antiguos (Explorer 6-7):&lt;/p&gt;

&lt;p class="imagen centrado"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/ie8b2_02.png" alt="Botón de compatibilidad en Internet Explorer 8 Beta 2" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.microsoft.com/windows/internet-explorer/beta/worldwide-sites.aspx"&gt;Descargar la beta 2 de Internet Explorer 8&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-7632855411928650154?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/7632855411928650154/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=7632855411928650154' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7632855411928650154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7632855411928650154'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/08/internet-explorer-8-beta-2.html' title='Internet Explorer 8 Beta 2'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-7942560001311668250</id><published>2008-08-27T09:39:00.001+02:00</published><updated>2008-08-27T09:42:21.104+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Gecko'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Javascript: Detectar la versión de Firefox (y otros navegadores equivalentes)</title><content type='html'>&lt;p&gt;Es tan sencillo como esto:&lt;/p&gt;

&lt;pre&gt;&lt;code class="javascript"&gt;if (/rv[\:\s](\d \.\d )/.test(navigator.userAgent)){
 ffversion=new Number(RegExp.$1);
 if (ffversion&amp;gt;=1.9) {var ffVer = 3;}
 else if (ffversion&amp;gt;=1.8) {var ffVer = 2;}
 else if (ffversion&amp;gt;=1.7) {var ffVer = 1;}
} else {var ffVer = 0;}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Se utiliza una expresión regular para extraer la versión de Gecko y después, con las condiciones, se sacan las equivalencias a versiones de Firefox.&lt;/p&gt;

&lt;p&gt;Visto en &lt;a href="http://www.javascriptkit.com/javatutors/navigator.shtml" hreflang="en" lang="en"&gt;Using the navigator object to detect client's browser&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-7942560001311668250?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/7942560001311668250/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=7942560001311668250' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7942560001311668250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7942560001311668250'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/08/javascript-detectar-la-versin-de.html' title='Javascript: Detectar la versión de Firefox (y otros navegadores equivalentes)'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-422845968767795679</id><published>2008-08-25T10:40:00.001+02:00</published><updated>2008-08-25T12:49:32.341+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM Ready'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Prototype'/><category scheme='http://www.blogger.com/atom/ns#' term='Jquery'/><title type='text'>Ejecución de funciones Javascript a la carga del DOM (DOM Ready)</title><content type='html'>&lt;p&gt;Para activar los comportamientos Javascript cuando se haya cargado el DOM es más sencillo utilizar algún framework, como &lt;a href="http://www.prototypejs.org"&gt;Prototype&lt;/a&gt; o &lt;a href="http://jquery.com"&gt;Jquery&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;En estos ejemplos se pretende lanzar la función &lt;em&gt;prueba&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;Prototype&lt;/h2&gt;
&lt;p&gt;Primera variante:&lt;/p&gt;
&lt;pre&gt;&lt;code class="javascript"&gt;document.observe("dom:loaded", prueba);&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Segunda variante:&lt;/p&gt;
&lt;pre&gt;&lt;code class="javascript"&gt;document.observe("dom:loaded", function() {
 prueba();
});&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://www.prototypejs.org/api/document/observe"&gt;Prototype: document.observe&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Jquery&lt;/h2&gt;

&lt;pre&gt;&lt;code class="javascript"&gt;$(document).ready(function(){
 prueba();
});&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://docs.jquery.com/Events/ready#fn"&gt;Jquery: evento ready&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-422845968767795679?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/422845968767795679/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=422845968767795679' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/422845968767795679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/422845968767795679'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/08/ejecucin-de-funciones-javascript-la.html' title='Ejecución de funciones Javascript a la carga del DOM (DOM Ready)'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5657884057470821736</id><published>2008-07-12T14:24:00.001+02:00</published><updated>2008-07-12T14:27:51.990+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Javascript: deshabilitar scroll vertical de la ventana del navegador</title><content type='html'>&lt;p&gt;Tan sencillo como aplicar la propiedad CSS &lt;code class="css"&gt;overflow&lt;/code&gt; al elemento &lt;code class="xhtml"&gt;html&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code class="js"&gt;document.getElementsByTagName("html")[0].style.overflow = "hidden";
document.getElementsByTagName("html")[0].style.overflow = "auto";
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Resulta bastante útil cuando tienen que aparecer ventanas modales.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5657884057470821736?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5657884057470821736/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5657884057470821736' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5657884057470821736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5657884057470821736'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/07/javascript-deshabilitar-scroll-vertical.html' title='Javascript: deshabilitar scroll vertical de la ventana del navegador'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-7004613240041285316</id><published>2008-07-11T22:29:00.000+02:00</published><updated>2008-07-11T22:30:20.958+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='number_format'/><category scheme='http://www.blogger.com/atom/ns#' term='Programación'/><title type='text'>PHP: number_format (formateo de numeros)</title><content type='html'>&lt;p&gt;Cuando se hacen operaciones aritméticas en PHP pueden salir números con un montón de decimales, no llevan el punto (o la coma si se está escribiendo en inglés) para separar los miles, ni la coma para los decimales.&lt;/p&gt;

&lt;p&gt;Pero la gente del PHP ha pensado en ello y nos proporcionan una función para solventar con facilidad estos ligeros inconvenientes: &lt;code class="php"&gt;number_format()&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Su uso es muy sencillo, solo han de introducirse los párametros en el siguiente orden:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;Variable que represente al número.&lt;/li&gt;
 &lt;li&gt;Número de decimales.&lt;/li&gt;
 &lt;li&gt;Lo que se quiera que aparezca para separar los decimales (punto o coma).&lt;/li&gt;
 &lt;li&gt;Lo que se quiera que aparezca para separar los miles (punto o coma).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Un ejemplo de uso:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;$numero = 7219091.429939281617
number_format($numero, 2, &amp;quot;,&amp;quot;,&amp;quot;.&amp;quot;);
/* Devuelve: 7.219.091,43 */&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Enlaces relacionados&lt;/h2&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;a href="http://www.desarrolloweb.com/articulos/formato-numeros-php.html"&gt;Formato de números en PHP (Desarrolloweb.com)&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://es.php.net/number_format" hreflang="en"&gt;PHP.net: number_format&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-7004613240041285316?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/7004613240041285316/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=7004613240041285316' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7004613240041285316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7004613240041285316'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/07/php-numberformat-formateo-de-numeros.html' title='PHP: number_format (formateo de numeros)'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-6642296145410041450</id><published>2008-06-18T23:11:00.002+02:00</published><updated>2008-06-18T23:15:52.977+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Netscape 9'/><category scheme='http://www.blogger.com/atom/ns#' term='Software libre'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox 3'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Netscape'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firefox 2 y Firefox 3 abiertos al mismo tiempo</title><content type='html'>&lt;p&gt;Si hay que maquetar un HTML y hay que probarlo en ambas versiones de Firefox puede ser un engorro tener que andar abriendo y cerrando una y otra.&lt;/p&gt;

&lt;p&gt;La solución sería tener instalado Firefox 3 y otro navegador distinto que sea totalmente equivalente a Firefox 2. La última versión del difunto Netscape (la 9) es Firefox 2 con unos pocos retoques, compatible con todas las extensiones y temas que había para Firefox 2. Y puede estar abierto al mismo tiempo que Firefox 3.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://browser.netscape.com/releases"&gt;Sitio de descarga de Netscape&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-6642296145410041450?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/6642296145410041450/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=6642296145410041450' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/6642296145410041450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/6642296145410041450'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/06/firefox-2-y-firefox-3-abiertos-al-mismo.html' title='Firefox 2 y Firefox 3 abiertos al mismo tiempo'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5888531531613482761</id><published>2008-06-17T21:20:00.002+02:00</published><updated>2008-06-17T21:25:48.575+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Software libre'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox 3'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Gecko'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firefox 3</title><content type='html'>&lt;p&gt;Y &lt;a href="http://outbook.blogspot.com/2008/06/opera-95.html"&gt;una semana después que Opera 9.5&lt;/a&gt;, aparece &lt;a href="http://www.firefox.com"&gt;Firefox 3&lt;/a&gt;.&lt;/p&gt;

&lt;p class="imagen centrado"&gt;&lt;a href="http://buhardillaoscura.googlepages.com/firefox3_winxp.png"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/tn_firefox3_winxp.jpg" alt="Captura de pantalla de Firefox" /&gt;&lt;/a&gt;&lt;br /&gt;Firefox 3 en Windows XP&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5888531531613482761?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5888531531613482761/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5888531531613482761' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5888531531613482761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5888531531613482761'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/06/firefox-3.html' title='Firefox 3'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5771936701396714981</id><published>2008-06-13T00:44:00.003+02:00</published><updated>2008-06-17T21:27:01.313+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Clases PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Edición de imagen'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP GD'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Programación'/><title type='text'>PHP: clase para recortar imágenes</title><content type='html'>&lt;p&gt;Hoy me he encontrado con una &lt;a href="http://www.talkphp.com/advanced-php-programming/1709-cropping-images-using-php.html"&gt;clase PHP para recortar imágenes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;He aquí el código para la clase (solo le he añadido un pequeño detalle para poder elegir el tamaño de la imagen resultante):&lt;/p&gt;

&lt;pre&gt;&lt;code class="php"&gt;class cropImage {
 var $imgSrc,$myImage,$cropHeight,$cropWidth,$x,$y,$thumb;

 function setImage($image) {

  //Your Image
  $this-&amp;gt;imgSrc = $image;

  //getting the image dimensions
  list($width, $height) = getimagesize($this-&amp;gt;imgSrc);

  //create image from the jpeg
  $this-&amp;gt;myImage = imagecreatefromjpeg($this-&amp;gt;imgSrc) or die(&amp;quot;Error: Cannot find image!&amp;quot;);
  if($width &amp;gt; $height) $biggestSide = $width; //find biggest length
  else $biggestSide = $height;

  //The crop size will be half that of the largest side
  $cropPercent = .5; // This will zoom in to 50% zoom (crop)
  $this-&amp;gt;cropWidth   = $biggestSide*$cropPercent;
  $this-&amp;gt;cropHeight  = $biggestSide*$cropPercent;

  //getting the top left coordinate
  $this-&amp;gt;x = ($width-$this-&amp;gt;cropWidth)/2;
  $this-&amp;gt;y = ($height-$this-&amp;gt;cropHeight)/2;
}

 function createThumb($size) {
  $thumbSize = $size; // will create a 250 x 250 thumb
  $this-&amp;gt;thumb = imagecreatetruecolor($thumbSize, $thumbSize);
  imagecopyresampled($this-&amp;gt;thumb, $this-&amp;gt;myImage, 0, 0,$this-&amp;gt;x, $this-&amp;gt;y, $thumbSize, $thumbSize, $this-&amp;gt;cropWidth, $this-&amp;gt;cropHeight);
 }

 function renderImage() {
  header(&amp;#39;Content-type: image/jpeg&amp;#39;);
  imagejpeg($this-&amp;gt;thumb);
  imagedestroy($this-&amp;gt;thumb);
 }

}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Y se utiliza con el siguiente código:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;$image = new cropImage;
$image-&gt;setImage($img);
$image-&gt;createThumb($size);
$image-&gt;renderImage();&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;La variable &lt;code class="php"&gt;$img&lt;/code&gt; es la url de la imagen original, y la variable &lt;code class="php"&gt;$size&lt;/code&gt; es el tamaño de imagen (sale con forma de cuadrado), tanto de anchura como de altura (ha de ser un número entero).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5771936701396714981?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5771936701396714981/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5771936701396714981' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5771936701396714981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5771936701396714981'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/06/php-clase-para-recortar-imgenes.html' title='PHP: clase para recortar imágenes'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-2203041377517728170</id><published>2008-06-12T21:47:00.005+02:00</published><updated>2008-06-12T21:58:51.347+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Estándares web'/><category scheme='http://www.blogger.com/atom/ns#' term='Opera'/><title type='text'>Opera 9.5</title><content type='html'>&lt;p&gt;Por fin ha salido Opera 9.5, navegador ligero, con soporte de estándares y multiplataforma (Windows, Linux, Mac, Solaris).&lt;/p&gt;

&lt;p class="imagen centrado"&gt;&lt;a href="http://buhardillaoscura.googlepages.com/opera_95.png"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/tn_opera_95.jpg" alt="Captura de pantalla de Opera 9.5 en Fedora 8" /&gt;&lt;/a&gt;&lt;br /&gt;Opera 9.5 en Fedora 8 con KDE 3.5.9&lt;/p&gt;

&lt;p&gt;Aparte de las novedades en soporte de estándares, la versión de Linux añade compatibilidad con la versión 9 de Adobe Flash Player.&lt;/p&gt;

&lt;p&gt;Puede ser descargado en el &lt;a href="http://www.opera.com"&gt;sitio web de Opera&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Y la semana que viene (17 de junio de 2008) Firefox 3.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-2203041377517728170?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/2203041377517728170/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=2203041377517728170' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2203041377517728170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2203041377517728170'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/06/opera-95.html' title='Opera 9.5'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-718583506486633863</id><published>2008-06-12T11:10:00.002+02:00</published><updated>2008-06-12T11:10:01.735+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><title type='text'>Javascript: Reemplazo de varios caracteres en una cadena</title><content type='html'>&lt;p&gt;Se utilizará un sistema parecido al de &lt;a href="http://outbook.blogspot.com/2008/06/javascript-reemplazo-de-caracteres.html"&gt;reemplazo de fragmentos de una cadena&lt;/a&gt;, añadiendo un par de arrays con los caracteres que hay que quitar y los que los van a sustituir, un &lt;a href="http://outbook.blogspot.com/2008/06/javascript-convertir-cadena-maysculas-o.html"&gt;método &lt;code class="javascript"&gt;toLowerCase&lt;/code&gt;&lt;/a&gt; para sustituir mayúsculas por minúsculas y un while para hacer los reemplazos uno a uno:&lt;/p&gt;


&lt;pre&gt;&lt;code class="javascript"&gt;function convierteAlias (nuevoAlias) {

 especiales = new Array('á','é','í','ó','ú','ñ',' ','´',':',',',';','.');
 normales = new Array('a','e','i','o','u','n','_','_','_','_','_','_');
 
 nuevoAlias = nuevoAlias.toLowerCase();
 
 i=0;
 while (i&amp;lt;especiales.length) {
  //nuevoAlias = nuevoAlias.replace(especiales[i], normales[i]);
  nuevoAlias = nuevoAlias.split(especiales[i]).join(normales[i]);
  i++
 }

 return nuevoAlias;

}&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-718583506486633863?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/718583506486633863/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=718583506486633863' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/718583506486633863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/718583506486633863'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/06/javascript-reemplazo-de-varios.html' title='Javascript: Reemplazo de varios caracteres en una cadena'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-1364375863265182693</id><published>2008-06-10T23:12:00.000+02:00</published><updated>2008-06-10T23:13:31.813+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><title type='text'>Javascript: reemplazo de fragmentos en una cadena</title><content type='html'>&lt;p&gt;Cuando se quiere cambiar caracteres o fragmentos de una cadena se recurre al método &lt;code class="javascript"&gt;replace&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code class="javascript"&gt;cadenaInicial = 'Texto de la cadena inicial';
cadenaResultante = cadenaInicial.replace('inicial','resultante');
// De forma que obtenemos &amp;quot;Texto de la cadena resultante&amp;quot;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Pero esto tiene el inconveniente de reemplazar solo la primera &lt;em&gt;&amp;quot;inicial&amp;quot;&lt;/em&gt; que aparezca:&lt;/p&gt;

&lt;pre&gt;&lt;code class="javascript"&gt;cadenaInicial = 'Texto inicial de la cadena inicial';
cadenaResultante = cadenaInicial.replace('inicial','resultante');
// De forma que obtenemos &amp;quot;Texto resultante de la cadena inicial&amp;quot;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Esto puede resultar inconveniente.&lt;/p&gt;

&lt;p&gt;Pero hay solución, utilizando los métodos &lt;code class="javascript"&gt;split&lt;/code&gt; y &lt;code class="javascript"&gt;join&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code class="javascript"&gt;cadenaInicial = 'Texto inicial de la cadena inicial';
cadenaResultante = cadenaInicial.split('inicial').join('resultante');
// De forma que obtenemos &amp;quot;Texto inicial de la cadena inicial&amp;quot;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Lo que se ha hecho es partir la cadena por el fragmento &lt;em&gt;&amp;quot;inicial&amp;quot;&lt;/em&gt; y volver a unirlas, metiendo entre cada parte el fragmento &lt;em&gt;&amp;quot;resultante&amp;quot;&lt;/em&gt;. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-1364375863265182693?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/1364375863265182693/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=1364375863265182693' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1364375863265182693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1364375863265182693'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/06/javascript-reemplazo-de-fragmentos-en.html' title='Javascript: reemplazo de fragmentos en una cadena'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-957802117579559741</id><published>2008-06-10T23:10:00.000+02:00</published><updated>2008-06-10T23:20:10.062+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><title type='text'>Javascript: convertir cadena a mayúsculas o a minúsculas</title><content type='html'>&lt;p&gt;Para convertir una cadena a mayúsculas:&lt;/p&gt;
&lt;pre&gt;&lt;code class="javascript"&gt;cadena = 'Texto De Prueba';
cadena = cadena.toUpperCase();
//Devolvería &amp;quot;TEXTO DE PRUEBA&amp;quot;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Y para convertir una cadena a minúsculas:&lt;/p&gt;
&lt;pre&gt;&lt;code class="javascript"&gt;cadena = 'Texto De Prueba';
cadena = cadena.toLowerCase();
//Devolvería &amp;quot;texto de prueba&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-957802117579559741?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/957802117579559741/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=957802117579559741' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/957802117579559741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/957802117579559741'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/06/javascript-convertir-cadena-maysculas-o.html' title='Javascript: convertir cadena a mayúsculas o a minúsculas'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-2360686647703855814</id><published>2008-06-05T11:54:00.000+02:00</published><updated>2008-06-05T11:54:01.033+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sesiones PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Programación'/><title type='text'>PHP: manejo de sesiones</title><content type='html'>&lt;p&gt;Siempre que  se vaya a hecer algo con sesiones debe añadirse este fragmento en el código (antes de cualquier otra cosa que envíe datos al navegador):&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;session_start();&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Posteriormente se pueden definir (o redefinir) variables de sesión, en este caso si el usuario está registrado y el idioma de preferencia:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;$_SESSION['logado'] = 'si';
$_SESSION['idioma'] = 'ingles';&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;O destruir las variables de sesión anteriormente definidas:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;$_SESSION = array();
session_destroy();&lt;/code&gt;&lt;/pre&gt;

&lt;!--p&gt;Se puede definir el tiempo que durará la sesión, en este caso 30 minutos:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;session_cache_expire(30);&lt;/code&gt;&lt;/pre--&gt;
&lt;p&gt;Se puede definir el tiempo que durará la sesión (hay que ponerlo antes del &lt;code class="php"&gt;session_start();&lt;/code&gt;), en este caso 1 hora (3600 segundos):&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;session_set_cookie_params(3600);&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://es2.php.net/session"&gt;Saber más sobre sesiones en PHP&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-2360686647703855814?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/2360686647703855814/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=2360686647703855814' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2360686647703855814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2360686647703855814'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/06/php-manejo-de-sesiones.html' title='PHP: manejo de sesiones'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5565896788266778379</id><published>2008-05-23T22:46:00.000+02:00</published><updated>2008-05-22T22:55:27.037+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Joomla'/><title type='text'>Joomla: modificación de la salida HTML en listados de navegación</title><content type='html'>&lt;p&gt;Para Joomla 1.0.15&lt;/p&gt;

&lt;p&gt;En ocasiones hay listados de navegación en los que uno o más elementos tienen un aspecto diferente al predeterminado, y necesitan una clase o identificador para poder llamarlos en un slector CSS, o se quiere introducir cualquier otra modificación en la salida de HTML.&lt;/p&gt;

&lt;p&gt;Para modificar el listado hay que modificar el archivo &lt;em&gt;modules/mod_mainmenu.php&lt;/em&gt;. En la línea 347 (aproximadamente) encontramos el siguiente código:&lt;/p&gt;

&lt;pre&gt;&lt;code class="php"&gt;echo &amp;#39;&amp;lt;ul id=&amp;quot;&amp;#39;. $menuclass .&amp;#39;&amp;quot;&amp;gt;&amp;#39;;
foreach ($links as $link) {
 echo &amp;#39;&amp;lt;li class=&amp;quot;lista&amp;quot;&amp;gt;&amp;#39; . $link . &amp;#39;&amp;lt;/li&amp;gt;&amp;#39;;
}
echo &amp;#39;&amp;lt;/ul&amp;gt;&amp;#39;;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Y sustituirlo el &lt;code class="php"&gt;foreach&lt;/code&gt; por un &lt;code class="php"&gt;while&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code class="php"&gt;$numl=0;
while ($numl &amp;lt; count( $links )) {
echo &amp;#39;&amp;lt;li class=&amp;quot;lista-&amp;#39;.$numl.&amp;#39;&amp;quot;&amp;gt;&amp;#39; . $links[$numl] . &amp;#39;&amp;lt;/li&amp;gt;&amp;#39;;
 $numl  ;
}
echo &amp;#39;&amp;lt;/ul&amp;gt;&amp;#39;;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5565896788266778379?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5565896788266778379/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5565896788266778379' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5565896788266778379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5565896788266778379'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/05/joomla-modificacin-de-la-salida-html-en.html' title='Joomla: modificación de la salida HTML en listados de navegación'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-2009826064788584050</id><published>2008-05-22T12:59:00.000+02:00</published><updated>2008-05-22T12:59:01.021+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenXML'/><category scheme='http://www.blogger.com/atom/ns#' term='Normas ISO'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenDocument'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>¿Ha ganado OpenDocument la batalla contra OOXML?</title><content type='html'>&lt;p&gt;Pues parece que por ahí va la cosa, ya que Microsoft dice que Office 2007 soportará de forma nativa OpenDocument en detrimento de su propio estándar con la salida del SP2 en 2009.&lt;/p&gt;

&lt;p&gt;Pero, ¿será un soporte adecuado? ¿Los documentos OpenDocument creados en MS Office se podrán abrir, por ejemplo, en OpenOffice?&lt;/p&gt;

&lt;p&gt;Más en:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;a href="http://barrapunto.com/article.pl?sid=08/05/22/083237"&gt;Microsoft Office 2007 incluirá soporte para ODF pero no para OOXML (Barrapunto)&lt;/a&gt;&lt;/li&gt;
 &lt;li lang="en"&gt;&lt;a href="http://www.consortiuminfo.org/standardsblog/article.php?story=20080521092930864" hreflang="en"&gt;Microsoft Office 2007 to Support ODF - and not OOXML (Standar Blog)&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href=""&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-2009826064788584050?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/2009826064788584050/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=2009826064788584050' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2009826064788584050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2009826064788584050'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/05/ha-ganado-opendocument-la-batalla.html' title='¿Ha ganado OpenDocument la batalla contra OOXML?'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-641304256946223008</id><published>2008-05-08T12:39:00.001+02:00</published><updated>2008-05-08T12:39:01.529+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='uxtheme'/><category scheme='http://www.blogger.com/atom/ns#' term='Service Pack 3'/><category scheme='http://www.blogger.com/atom/ns#' term='uxtheme.dll'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><title type='text'>uxtheme.dll en Windows XP Service Pack 3</title><content type='html'>&lt;p&gt;Tras la instalación del Service Pack 3 de Windows XP el archivo uxtheme.dll es sustituido por uno nuevo. Si lo teniamos parcheado para poder aplicar temas no aprobados por Microsoft ese parche se pierde y no aparecen esos temas.&lt;/p&gt;

&lt;p&gt;Pero, afortunadamente, ya hay solución: &lt;a href="http://fileforum.betanews.com/detail/SP3_UxTheme_Patcher/1209580756/1"&gt;SP3 UxTheme Patcher 1.1&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-641304256946223008?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/641304256946223008/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=641304256946223008' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/641304256946223008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/641304256946223008'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/05/uxthemedll-en-windows-xp-service-pack-3.html' title='uxtheme.dll en Windows XP Service Pack 3'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-506878573677763494</id><published>2008-05-07T18:03:00.001+02:00</published><updated>2008-05-08T13:56:42.506+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Usabilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Persuabilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><title type='text'>Persuabilidad</title><content type='html'>&lt;p class="actualizado"&gt;&lt;strong&gt;Actualizado:&lt;/strong&gt; 2008-05-08 14:00.&lt;/p&gt;

&lt;p&gt;La persuabilidad es algo así como un complemento a la usabilidad de un sitio web. Se trata de crear un sitio que además de ser usable atraiga usuarios: la usabilidad no es el único factor que atraerá la atención de los usuarios.&lt;/p&gt;

&lt;p&gt;La persuabilidad consiste en insertar contenidos y servicios útiles y acordes con las necesidades de los usuarios, que tengan credibilidad, que &lt;strong&gt;conviertan al usuario en cliente&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;Saber más&lt;/h2&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;a href="http://www.metriplica.com/4_0_0_articulo.asp?buscar=&amp;id=350"&gt;Tú no quieres tener usuarios (Metriplica)&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://www.malisa.cl/persuabilidad-la-segunda-derivada-del-diseno-web"&gt;PERSUABILIDAD: ¿La segunda derivada del Diseño Web? (Malisa.cl)&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Persuadability"&gt;Persuadability (Wikipedia)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.persuabilidad.com/"&gt;Persuabilidad.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-506878573677763494?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/506878573677763494/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=506878573677763494' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/506878573677763494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/506878573677763494'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/05/persuabilidad.html' title='Persuabilidad'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-643032452340593365</id><published>2008-04-22T16:16:00.003+02:00</published><updated>2008-04-22T16:39:04.409+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programación'/><category scheme='http://www.blogger.com/atom/ns#' term='Expresiones regulares'/><title type='text'>Tabla para generar expresiones regulares</title><content type='html'>&lt;table style="margin-top:16px;"&gt;
 &lt;tr&gt;
  &lt;th scope="col"&gt;Expresión&lt;/th&gt;
  &lt;th scope="col"&gt;Descripción&lt;/th&gt;
 &lt;/tr&gt;
 
 &lt;tr&gt;
  &lt;td&gt;.&lt;/td&gt;
  &lt;td&gt;Cualquier caracter&lt;/td&gt;
 &lt;/tr&gt;
 
 &lt;tr&gt;
  &lt;td&gt;\&lt;/td&gt;
  &lt;td&gt;Indica que el caracter que le sigue ha de ser interpretado como tal, y no como parte de la sintaxis de la expresión regular. Por ejemplo, &amp;quot;\.&amp;quot; indica que debe interpretarse como punto.&lt;/td&gt;
 &lt;/tr&gt;
 
 &lt;tr&gt;
  &lt;td&gt;()&lt;/td&gt;
  &lt;td&gt;Para agrupar operadores&lt;/td&gt;
 &lt;/tr&gt;
 
 &lt;tr&gt;
  &lt;td&gt;{n}&lt;/td&gt;
  &lt;td&gt;Busca la cadena especificada n veces. Por ejemplo, a{2} devuuelve 'aa'.&lt;/td&gt;
 &lt;/tr&gt;
 
 &lt;tr&gt;
  &lt;td&gt;{n,m}&lt;/td&gt;
  &lt;td&gt;Busca la cadena especificada entre n y m veces. Por ejemplo: a{2,4} devuelve 'aa', 'aaa', or 'aaaa'.&lt;/td&gt;
 &lt;/tr&gt;
 
 &lt;tr&gt;
  &lt;td&gt;{n,}&lt;/td&gt;
  &lt;td&gt;Busca la cadena especificada n o más veces.&lt;/td&gt;
 &lt;/tr&gt;
 
 &lt;tr&gt;
  &lt;td&gt;*&lt;/td&gt;
  &lt;td&gt;Devuelve 0 o más veces la cadena especificada.&lt;/td&gt;
 &lt;/tr&gt;
 
 &lt;tr&gt;
  &lt;td&gt;+&lt;/td&gt;
  &lt;td&gt;Devuelve 1 o más veces la cadena especificada.&lt;/td&gt;
 &lt;/tr&gt;
 
 &lt;tr&gt;
  &lt;td&gt;?&lt;/td&gt;
  &lt;td&gt;Devuelve 0 o 1 vez la cadena especificada.&lt;/td&gt;
 &lt;/tr&gt;
 
 &lt;tr&gt;
  &lt;td&gt;|&lt;/td&gt;
  &lt;td&gt;Devuelve o bien la cadena que haya a la izquierda o la que haya a la derecha (como un operador booleano OR).&lt;/td&gt;
 &lt;/tr&gt;
 
 &lt;tr&gt;
  &lt;td&gt;[aeiou]&lt;/td&gt;
  &lt;td&gt;Devuelve la cadena que contenga caracteres entre los especificados.&lt;/td&gt;
 &lt;/tr&gt;
 
 &lt;tr&gt;
  &lt;td&gt;[a-z]&lt;/td&gt;
  &lt;td&gt;Similar al anterior, pero ahora se especifica un intervalo (de la &amp;quot;a&amp;quot; a la &amp;quot;z&amp;quot;)&lt;/td&gt;
 &lt;/tr&gt;
 
 &lt;tr&gt;
  &lt;td&gt;[^aeiou]&lt;/td&gt;
  &lt;td&gt;Excluye las cadenas con caracteres entre los especificados.&lt;/td&gt;
 &lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;$&lt;/td&gt;
&lt;td&gt;Se pone al final, señalando el final de la línea. De esta forma se busca línea por línea, y ninguna de las cadenas que devuelve estará en más de una línea.&lt;/td&gt;
&lt;/tr&gt;
 
&lt;/table&gt;


&lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa833197(VS.80).aspx"&gt;Saber más&lt;span class="oculto"&gt; sobre las expresiones regulares&lt;/span&gt; en MSDN&lt;/a&gt; y &lt;a href="http://www.regular-expressions.info/quickstart.html"&gt;&lt;span class="oculto"&gt;saber más &lt;/span&gt;en Regular-Expressions.info&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-643032452340593365?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/643032452340593365/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=643032452340593365' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/643032452340593365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/643032452340593365'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/04/tabla-para-generar-expresiones.html' title='Tabla para generar expresiones regulares'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-2864347643275169685</id><published>2008-04-21T11:10:00.003+02:00</published><updated>2008-12-01T12:09:03.143+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='ceil'/><category scheme='http://www.blogger.com/atom/ns#' term='Redondeo'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Programación'/><category scheme='http://www.blogger.com/atom/ns#' term='Números decimales'/><title type='text'>PHP: redondeo de números decimales hacia arriba (ceil)</title><content type='html'>&lt;p class="actualizacion"&gt;&lt;strong&gt;Actualizado:&lt;/strong&gt; 2008-11-30&lt;/p&gt;
&lt;p&gt;La función PHP &lt;code class="php"&gt;ceil&lt;/code&gt; permite eliminar la parte decimal de un número redondeándolo hacia arriba. Por ejemplo, 11.22 se redondearía a 12, 11.9999 se redondearía a 12:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;echo ceil(11.22); // 12
echo ceil(11.9999); // 12&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://outbook.blogspot.com/2008/11/php-redondeo-de-nmeros-decimales-hacia.html"&gt;Para realizar el redondeo hacia abajo se usa &lt;code class="php"&gt;floor&lt;/code&gt;&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://es.php.net/ceil"&gt;Saber más&lt;span class="oculto"&gt; sobre &lt;em&gt;ceil&lt;/em&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-2864347643275169685?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/2864347643275169685/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=2864347643275169685' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2864347643275169685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2864347643275169685'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/04/php-redondeo-de-nmeros-decimales-hacia.html' title='PHP: redondeo de números decimales hacia arriba (ceil)'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-6253380819434298066</id><published>2008-04-16T10:17:00.000+02:00</published><updated>2008-04-16T10:18:54.464+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Redimensionamiento'/><category scheme='http://www.blogger.com/atom/ns#' term='Bath Picture Resize'/><category scheme='http://www.blogger.com/atom/ns#' term='Edición de imagen'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Redimensionar imagenes con Batch Picture Resize</title><content type='html'>&lt;p&gt;&lt;a href="http://www.rw-designer.com/picture-resize"&gt;Batch Picture Resize&lt;/a&gt; es una sencilla aplicación para realizar cambios de tamaño de imágenes.&lt;/p&gt;

&lt;p&gt;Tan solo hay que arrastrar la imagen o las imágenes que se desee redimensionar sobre el icono de la aplicación (inicialmente con el nombre &lt;em&gt;&amp;quot;PhotoResize400.exe&amp;quot;&lt;/em&gt;) y automáticamente se creará una copia redimensionada de las imágenes en el directorio donde se encuentren las originales.&lt;/p&gt;

&lt;p&gt;Además se puede seleccionar el nuevo tamaño de las imágenes simplemente renombrando a la aplicación:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;strong&gt;PhotoResize[maximo].exe&lt;/strong&gt; cambiará el tamaño de la imagen de forma que la altura o la anchura máxima sea el número que se defina. Por ejemplo, para una imagen con una dimensión máxima en altura o anchura de 400px se renombraría la aplicación a &lt;em&gt;PhotoResize400.exe&lt;/em&gt;. Se conservan las proporciones de la imagen.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;PhotoResize[ancho por alto].exe&lt;/strong&gt; establece tanto la anchura como la altura. Por ejemplo, para una imagen con una anchura de 400px y una altura de 300px se renombraría la aplicación a &lt;em&gt;PhotoResize400x300.exe&lt;/em&gt;. Podría no conservar la proporción original.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;PhotoResizeW[ancho].exe&lt;/strong&gt; establecerá el ancho a las dimensiones dadas  conservando la proporción. Por ejemplo para conseguir una imagen de 360px de ancho se renombraría la aplicación a &lt;em&gt;PhotoResizeW360.exe&lt;/em&gt;.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;PhotoResizeH[alto].exe&lt;/strong&gt; establecerá el alto a las dimensiones dadas conservando la proporción. Por ejemplo para conseguir una imagen de 160px de alto se renombraría la aplicación a &lt;em&gt;PhotoResizeW160.exe&lt;/em&gt;.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;PhotoResizeK[tamaño en KB].exe&lt;/strong&gt; cambia el tamaño de la imagen para que su tamaño en KB coincida con el valor dado. Por ejemplo, para conseguir una imagen de 100KB habría que renombrar la aplicación a &lt;em&gt;PhotoResizeK100.exe&lt;/em&gt;.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;PhotoResizeP[porcentaje].exe&lt;/strong&gt; redimensionará la imagen a un porcentaje dado. Por ejemplo, para redimensionar la imagen al 50% habría que renombrar la aplicación a &lt;em&gt;PhotoResizeP50.exe&lt;/em&gt;. El valor de porcentaje puede ir de 1 a 1000.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tiene soporte multiprocesador y versión 64 bits.&lt;/p&gt;

&lt;p class="centrado destacado"&gt;&lt;a href="http://www.rw-designer.com/picture-resize"&gt;Descargar Batch Picture Resize&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-6253380819434298066?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/6253380819434298066/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=6253380819434298066' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/6253380819434298066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/6253380819434298066'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/04/redimensionar-imagenes-con-batch.html' title='Redimensionar imagenes con Batch Picture Resize'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-8819371614117401297</id><published>2008-04-11T14:55:00.001+02:00</published><updated>2009-02-02T18:07:22.642+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Comentarios condicionales'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>HTML: Comentarios condicionales en Internet Explorer</title><content type='html'>&lt;p&gt;Los comentarios condicionales solo funcionan en Internet Explorer de Windows (el basado en &lt;a href="http://en.wikipedia.org/wiki/Trident_(layout_engine)"&gt;Trident&lt;/a&gt;), y sirven para insertar fragmentos de HTML que solo funcionarán en la versión que se indique, de forma que se excluya al resto de versiones y a otros navegadores.&lt;/p&gt;

&lt;p&gt;Se puede acotar la versión de Internet Explorer de las siguientes formas:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;Escogiendo una sola versión.&lt;/li&gt;
 &lt;li&gt;Escogiendo una versión y las superiores&lt;/li&gt;
 &lt;li&gt;Escogiendo versiones superiores a la versión dada.&lt;/li&gt;
 &lt;li&gt;Escogiendo una versión y las inferiores&lt;/li&gt;
 &lt;li&gt;Escogiendo versiones inferiores a la versión dada.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Escoger una sola versión&lt;/h2&gt;

&lt;p&gt;Se escogerá solamente la versión especificada:&lt;/p&gt;

&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;!--[if IE 5.5]&amp;gt;Para internet explorer 5.5&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if IE 6]&amp;gt;Para internet explorer 6&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if IE 7]&amp;gt;Para internet explorer 7&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if IE 8]&amp;gt;Para internet explorer 8&amp;lt;![endif]--&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Escoger una versión y las superiores&lt;/h2&gt;

&lt;p&gt;Se escoge la versión especificada y las que sean superiores:&lt;/p&gt;

&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;!--[if gte IE 5.5]&amp;gt;Para internet explorer 5.5 y superiores&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if gte IE 6]&amp;gt;Para internet explorer 6 y superiores&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if gte IE 7]&amp;gt;Para internet explorer 7 y superiores&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if gte IE 8]&amp;gt;Para internet explorer 8 y superiores&amp;lt;![endif]--&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Escoger las versiones superiores&lt;/h2&gt;

&lt;p&gt;Se escogen las versiones que sean superiores a la especificada:&lt;/p&gt;

&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;!--[if gt IE 5.5]&amp;gt;Para versiones superiores a internet explorer 5.5&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if gt IE 6]&amp;gt;Para versiones superiores a internet explorer 6&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if gt IE 7]&amp;gt;Para versiones superiores a internet explorer 7&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if gt IE 8]&amp;gt;Para versiones superiores a internet explorer 8&amp;lt;![endif]--&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Escoger una versión y las inferiores&lt;/h2&gt;

&lt;p&gt;Se escoge la versión especificada y las que sean inferiores:&lt;/p&gt;

&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;!--[if lte IE 5.5]&amp;gt;Para internet explorer 5.5 e inferiores&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if lte IE 6]&amp;gt;Para internet explorer 6 e inferiores&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if lte IE 7]&amp;gt;Para internet explorer 7 e inferiores&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if lte IE 8]&amp;gt;Para internet explorer 8 e inferiores&amp;lt;![endif]--&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Escoger las versiones inferiores&lt;/h2&gt;

&lt;p&gt;Se escogen las versiones que sean inferiores a la especificada:&lt;/p&gt;

&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;!--[if lt IE 5.5]&amp;gt;Para versiones inferiores a internet explorer 5.5&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if lt IE 6]&amp;gt;Para versiones inferiores a internet explorer 6&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if lt IE 7]&amp;gt;Para versiones inferiores a internet explorer 7&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if lt IE 8]&amp;gt;Para versiones inferiores a internet explorer 8&amp;lt;![endif]--&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Aclaración final&lt;/h2&gt;

&lt;ul&gt;
 &lt;li&gt;&lt;code class="xhtml"&gt;gt&lt;/code&gt;: &lt;span lang="en"&gt;greater than&lt;/span&gt; (mayor que).&lt;/li&gt;
 &lt;li&gt;&lt;code class="xhtml"&gt;gte&lt;/code&gt;: &lt;span lang="en"&gt;greater than equal&lt;/span&gt; (igual o mayor que).&lt;/li&gt;
 &lt;li&gt;&lt;code class="xhtml"&gt;lt&lt;/code&gt;: &lt;span lang="en"&gt;lower than&lt;/span&gt; (menor que).&lt;/li&gt;
 &lt;li&gt;&lt;code class="xhtml"&gt;lte&lt;/code&gt;: &lt;span lang="en"&gt;lower than equal&lt;/span&gt; (igual o menor que).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Actualizado 2009-02-02:&lt;/strong&gt; Corregido error en la selección de versiones inferiores.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-8819371614117401297?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/8819371614117401297/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=8819371614117401297' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8819371614117401297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8819371614117401297'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/04/html-comentarios-condicionales-en.html' title='HTML: Comentarios condicionales en Internet Explorer'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-2172120856103999932</id><published>2008-04-02T00:36:00.003+02:00</published><updated>2008-04-04T11:24:04.868+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Accesibilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Rastro de migas'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Accesibilidad en los rastros de migas</title><content type='html'>&lt;p class="imagen centrado"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/rastro_de_migas.png" alt="Ejemplo de rastro de migas" /&gt;&lt;/p&gt;

&lt;p&gt;Es algo habitual ver rastros de migas creados mediante listas ordenadas:&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;div id=&amp;quot;migas&amp;quot;&amp;gt;
 &amp;lt;p&amp;gt;Est&amp;aacute;s en:&amp;lt;/p&amp;gt;
 &amp;lt;ol&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Inicio&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Secci&amp;oacute;n A&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Secci&amp;oacute;n B&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Secci&amp;oacute;n C&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
 &amp;lt;/ol&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;




&lt;p&gt;O parecido, como lista desordenada (cambiamos solo el &lt;code class="xhtml"&gt;OL&lt;/code&gt; por el &lt;code class="xhtml"&gt;UL&lt;/code&gt;):&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;div id=&amp;quot;migas&amp;quot;&amp;gt;
 &amp;lt;p&amp;gt;Est&amp;aacute;s en:&amp;lt;/p&amp;gt;
 &amp;lt;ul&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Inicio&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Secci&amp;oacute;n A&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Secci&amp;oacute;n B&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Secci&amp;oacute;n C&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
 &amp;lt;/ul&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Pero estos dos ejemplos no expresan la jerarquia de una forma semántica. Este otro si:&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;div id=&amp;quot;migas&amp;quot;&amp;gt;
 &amp;lt;p&amp;gt;Est&amp;aacute;s en:&amp;lt;/p&amp;gt;
 &amp;lt;ul&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Inicio&amp;lt;/a&amp;gt;
   &amp;lt;ul&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Secci&amp;oacute;n A&amp;lt;/a&amp;gt;
     &amp;lt;ul&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Secci&amp;oacute;n B&amp;lt;/a&amp;gt;
       &amp;lt;ul&amp;gt;
        &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Secci&amp;oacute;n C&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
       &amp;lt;/ul&amp;gt;
      &amp;lt;/li&amp;gt;
     &amp;lt;/ul&amp;gt;
    &amp;lt;/li&amp;gt;
   &amp;lt;/ul&amp;gt;
  &amp;lt;/li&amp;gt;
 &amp;lt;/ul&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;




&lt;p&gt;Listas anidadas que &lt;strong&gt;si reflejan&lt;/strong&gt; la jerarquía de la navegación. Para una máquina (un buscador que indexe el sitio) está muy bien, pero para un humano puede no estar tan bien. Una persona que vea bien le va a dar igual como esté hecho para entenderlo (solo le influye como esté presentado visualmente). Alguien que use un lector de pantalla, con cualquiera de los tres ejemplos puede que no se entere muy bien de la jerarquía que hay.&lt;/p&gt;

&lt;p&gt;Pero veamos ahora un ejemplo que en principio no parece accesible:&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;div id=&amp;quot;migas&amp;quot;&amp;gt;
 &amp;lt;p&amp;gt;Est&amp;aacute;s en: &amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Inicio&amp;lt;/a&amp;gt; &amp;lt;img src=&amp;quot;#&amp;quot; alt=&amp;quot;que engloba a&amp;quot; /&amp;gt; &amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Secci&amp;oacute;n A&amp;lt;/a&amp;gt; &amp;lt;img src=&amp;quot;#&amp;quot; alt=&amp;quot;que engloba a&amp;quot; /&amp;gt; &amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Secci&amp;oacute;n B&amp;lt;/a&amp;gt; &amp;lt;img src=&amp;quot;#&amp;quot; alt=&amp;quot;que engloba a&amp;quot; /&amp;gt; &amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Secci&amp;oacute;n C&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;




&lt;p&gt;Es un párrafo. Los símbolos &amp;quot;mayor que&amp;quot; en este caso no son fondo, sino imagen, con un texto alternativo que encadena los enlaces. Este párrafo nos explica con mayor detalle que los anteriores ejemplos en que parte de la estructura del sitio nos encontramos.&lt;/p&gt;

&lt;p&gt;A un usuario que necesite un lector de pantalla probablemente le sirva mejor esta última forma de hacer un rastro de migas.&lt;/p&gt;

&lt;p&gt;Entonces, ¿cual de estas formas de crear un rastro de migas es más accesible?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Actualización:&lt;/strong&gt; &lt;a href="http://es.groups.yahoo.com/group/accesoweb/message/13007"&gt;Lo pregunté en AccesoWeb&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Saber más&lt;/h2&gt;

&lt;ul&gt;
 &lt;li class="favorito"&gt;&lt;strong&gt;&lt;a href="http://lists.w3.org/Archives/Public/w3c-wai-ig/2004JulSep/0197.html"&gt;Re: Breadcrumbs (Phil Jenkins en la lista de distribución de WAI-W3C)&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://www.simplebits.com/notebook/2004/02/04/sqxii.html"&gt;SimpleQuiz › Part XII: Breadcrumbs (en Simplebits)&lt;/a&gt; y &lt;a href="http://www.simplebits.com/notebook/2004/02/23/sqxii_conclusion.html"&gt;la conclusión&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-2172120856103999932?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/2172120856103999932/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=2172120856103999932' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2172120856103999932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2172120856103999932'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/04/accesibilidad-en-los-ratros-de-migas.html' title='Accesibilidad en los rastros de migas'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-4745209203677527277</id><published>2008-03-26T16:06:00.000+01:00</published><updated>2008-03-26T16:07:20.361+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='preg_match_all'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Programación'/><title type='text'>PHP: recoger fragmentos de una cadena mediante preg_match_all</title><content type='html'>&lt;p&gt;Supongamos que tenemos un texto largo en HTML que forma una cadena de texto:&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;p&amp;gt;Listado de elementos&amp;lt;/p&amp;gt;
&amp;lt;ul&amp;gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Elemento 1&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
 &amp;lt;li class=&amp;quot;elegido&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Elemento 2&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Elemento 3&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Elemento 4&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
 &amp;lt;li class=&amp;quot;elegido&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Elemento 5&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Elemento 6&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Y queremos sacar únicamente los elementos &lt;code class="xhtml"&gt;LI&lt;/code&gt; con &lt;code class="xhtml"&gt;class=&amp;quot;elegido&amp;quot;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Esto es posible con la funcion PHP &lt;a href="http://uk.php.net/manual/en/function.preg-match-all.php"&gt;&lt;code class="php"&gt;preg_match_all&lt;/code&gt;&lt;/a&gt;, que nos devolverá un array con los fragmentos que haya encontrado:&lt;/p&gt;

&lt;pre&gt;&lt;code class="php"&gt;&amp;lt;?
$htmlOriginal = &amp;#39;&amp;lt;p&amp;gt;Listado de elementos&amp;lt;/p&amp;gt;
&amp;lt;ul&amp;gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Elemento 1&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
 &amp;lt;li class=&amp;quot;elegido&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Elemento 2&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Elemento 3&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Elemento 4&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
 &amp;lt;li class=&amp;quot;elegido&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Elemento 5&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Elemento 6&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;&amp;#39;;

$htmlABuscar = &amp;#39;/&amp;lt;li class=\&amp;quot;elegido\&amp;quot;.*li&amp;gt;/&amp;#39;;

preg_match_all($htmlABuscar, $htmlOriginal, $htmlFinal);

echo $htmlFinal[0]; // &amp;lt;li class=&amp;quot;elegido&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Elemento 2&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
echo $htmlFinal[1]; // &amp;lt;li class=&amp;quot;elegido&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Elemento 5&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://uk.php.net/manual/en/function.preg-match-all.php"&gt;Saber más sobre preg_match_all&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-4745209203677527277?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/4745209203677527277/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=4745209203677527277' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4745209203677527277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4745209203677527277'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/03/php-recoger-fragmentos-de-una-cadena.html' title='PHP: recoger fragmentos de una cadena mediante preg_match_all'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-3427589516838402494</id><published>2008-03-25T14:08:00.000+01:00</published><updated>2008-03-25T14:09:17.662+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>CSS: bug de Internet Explorer 6 y 7 en imágenes de fondo para listas</title><content type='html'>&lt;p&gt;En algunas ocasiones al crear un estilo con imagen de fondo para un elemento HTML destinado a listas (&lt;code class="xhtml"&gt;DL&lt;/code&gt;, &lt;code class="xhtml"&gt;UL&lt;/code&gt;, &lt;code class="xhtml"&gt;LI&lt;/code&gt;, etc.) nos podemos encontrar con que esa imagen no se muestra en Internet Explorer, tanto en la versión 6 como en la 7.&lt;/p&gt;

&lt;p&gt;Para solucionar este inconveniente hay un par de apaños:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;Darle posición relativa a los elementos afectados por el problema (&lt;code class="css"&gt;position: relative;&lt;/code&gt;).&lt;/li&gt;
 &lt;li&gt;Si el anterior no funciona, darles también anchura (propiedad &lt;code class="css"&gt;width&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Visto en &lt;cite&gt;&lt;a href="http://www.positioniseverything.net/explorer/ie-listbug.html"&gt;The IE/Win Disappearing List-Background Bug (Position is Everything)&lt;/a&gt;&lt;/cite&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-3427589516838402494?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/3427589516838402494/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=3427589516838402494' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/3427589516838402494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/3427589516838402494'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/03/css-bug-de-internet-explorer-6-y-7-en.html' title='CSS: bug de Internet Explorer 6 y 7 en imágenes de fondo para listas'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-177614558796548905</id><published>2008-03-24T15:49:00.000+01:00</published><updated>2008-03-24T15:51:03.793+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='strtoupper'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='ucfirst'/><category scheme='http://www.blogger.com/atom/ns#' term='strtolower'/><category scheme='http://www.blogger.com/atom/ns#' term='Programación'/><category scheme='http://www.blogger.com/atom/ns#' term='ucwords'/><category scheme='http://www.blogger.com/atom/ns#' term='Cadenas de texto'/><title type='text'>PHP: convertir cadena de texto a mayúsculas o a minúsculas</title><content type='html'>&lt;p&gt;Para &lt;a href="http://es.php.net/manual/en/function.strtolower.php"&gt;pasar a minúsculas&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;$resultado = strtolower($origen)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Para &lt;a href="http://es.php.net/manual/en/function.strtoupper.php"&gt;pasar a mayúsculas&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;$resultado = strtoupper($origen)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Para &lt;a href="http://es.php.net/manual/en/function.ucwords.php"&gt;pasar a mayúsculas solo la primera letra de cada palabra&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;$resultado = ucwords($origen)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Para &lt;a href="http://es.php.net/manual/en/function.ucfirst.php"&gt;pasar a mayúsculas solo la primera letra de la cadena de texto&lt;/a&gt; (como la anterior pero solo para la primera palabra):&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;$resultado = ucfirst($origen)&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Saber más&lt;/h2&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;a href="http://es.php.net/manual/en/function.strtolower.php"&gt;strtolower&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://es.php.net/manual/en/function.strtoupper.php"&gt;strtoupper&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://es.php.net/manual/en/function.ucwords.php"&gt;ucwords&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://es.php.net/manual/en/function.ucfirst.php"&gt;ucfirst&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-177614558796548905?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/177614558796548905/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=177614558796548905' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/177614558796548905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/177614558796548905'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/03/php-convertir-cadena-de-texto-maysculas.html' title='PHP: convertir cadena de texto a mayúsculas o a minúsculas'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-4192404232938299253</id><published>2008-03-24T13:48:00.002+01:00</published><updated>2008-03-24T13:52:06.873+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Bucles'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Programación'/><title type='text'>PHP: Hallar múltiplos para las iteraciones de un bucle</title><content type='html'>&lt;p&gt;Hay ocasiones en las que al hacer un bucle en PHP es necesario que la salida de una de las iteraciones tenga alguna peculiaridad, como que por ejemplo cada tres elementos de lista haya un atributo &lt;code class="xhtml"&gt;class&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Supongamos que tenemos el siguiente bucle:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;$i=0;
while ($valor &amp;lt; $numero) {
 echo &amp;#39;&amp;lt;li&amp;gt;&amp;#39;.$elemento[$i].&amp;#39;&amp;lt;/li&amp;gt;&amp;#39;
 $i  ;
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Supongamos que queremos que aparezca una clase cada tres elementos de lista, tendremos que meter esa clase en los elementos en los que la variable &lt;code class="php"&gt;$i&lt;/code&gt; sea múltiplo de tres:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;$i=0;
while ($valor &amp;lt; $numero) {
 $k = $i-1; //Para corregir el problema de que se empieza a contar de 0 
 if ($k % 3 == 0) {$clase = &amp;#39; class=&amp;quot;tercero&amp;quot;&amp;#39;;}
 echo &amp;#39;&amp;lt;li&amp;#39;.$clase.&amp;#39;&amp;gt;&amp;#39;.$elemento[$i].&amp;#39;&amp;lt;/li&amp;gt;&amp;#39;
 $i  ;
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;De esta forma el elemento de lista que sea múltiplo de 3 llevará la clase &lt;em&gt;tercero&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_PHP/Bucles"&gt;Saber más en &lt;strong&gt;Programación en PHP/Bucles (Wikilibros)&lt;/strong&gt;&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-4192404232938299253?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/4192404232938299253/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=4192404232938299253' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4192404232938299253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4192404232938299253'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/03/php-hallar-mltiplos-para-las.html' title='PHP: Hallar múltiplos para las iteraciones de un bucle'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-6728770168249028773</id><published>2008-03-06T01:24:00.000+01:00</published><updated>2008-03-06T01:26:17.828+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='MIX 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer 8'/><title type='text'>Internet Explorer 8 Beta 1</title><content type='html'>&lt;p&gt;Esta vez Microsoft parece que se está dando más prisa en sacar nueva versión de su navegador, y &lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/ie8/readiness/Install.htm"&gt;ya está disponible para descargar la primera beta de la versión 8 de Internet Explorer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;No me ha dado tiempo a probarlo en profundidad, pero dejo unas cuantas capturas de pantalla y algunos enlaces.&lt;/p&gt;

&lt;h2&gt;Capturas de pantalla&lt;span class="oculto"&gt;/Screenshots de Internet Explorer 8&lt;/span&gt;&lt;/h2&gt;

&lt;p&gt;Un par de capturas de la instalación:&lt;/p&gt;
&lt;p class="imagen centrado"&gt;&lt;a href="http://buhardillaoscura.googlepages.com/ie8_01.png"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/tn_ie8_01.jpg" alt="Captura/Screenshot Internet Explorer 8" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="imagen centrado"&gt;&lt;a href="http://buhardillaoscura.googlepages.com/ie8_02.png"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/tn_ie8_02.jpg" alt="Captura/Screenshot Internet Explorer 8" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No deja utilizar la IE Developer Toolbar:&lt;/p&gt;
&lt;p class="imagen centrado"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/ie8_03.png" alt="Captura/Screenshot Internet Explorer 8" /&gt;&lt;/p&gt;

&lt;p&gt;Página de inicio por defecto, y Outbook:&lt;/p&gt;
&lt;p class="imagen centrado"&gt;&lt;a href="http://buhardillaoscura.googlepages.com/ie8_05.png"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/tn_ie8_05.jpg" alt="Captura/Screenshot Internet Explorer 8" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="imagen centrado"&gt;&lt;a href="http://buhardillaoscura.googlepages.com/ie8_06a.png"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/tn_ie8_06a.jpg" alt="Captura/Screenshot Internet Explorer 8" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por supuesto, no me he arriesgado y lo he instalado en una máquina virtual:&lt;/p&gt;
&lt;p class="imagen centrado"&gt;&lt;a href="http://buhardillaoscura.googlepages.com/ie8_06.png"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/tn_ie8_06.jpg" alt="Captura/Screenshot Internet Explorer 8" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Emulación de Internet Explorer 7&lt;/h2&gt;
&lt;p&gt;Una característica muy interesante es la capacidad de emular el comportamiento de IE7 (si se activa requiere reiniciar el navegador), de forma que es como tener dos versiones de Internet Explorer en la misma máquina, aunque no puedan ejecutarse al mismo tiempo.&lt;/p&gt;

&lt;h2&gt;Enlaces relacionados&lt;/h2&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;a href="http://www.anieto2k.com/2008/03/06/probando-internet-explorer-8-beta-1/"&gt;Probando Internet Explorer 8 Beta 1 (aNieto2k)&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://softwareblogs.intel.com/2008/03/05/microsoft-mix-2008-ie-80-and-silverlight-20/"&gt;Microsoft MIX 2008, IE 8.0 and Silverlight 2.0 (Intel Software Network Blogs)&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://www.unintentionallyblank.co.uk/2008/03/05/ie8-team-change-their-mind-then-release-first-beta/"&gt;IE8 Team Change Their Mind, Then Release First Beta (Unintentionally Blank)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-6728770168249028773?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/6728770168249028773/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=6728770168249028773' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/6728770168249028773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/6728770168249028773'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/03/internet-explorer-8-beta-1.html' title='Internet Explorer 8 Beta 1'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-2780786712664265559</id><published>2008-02-28T13:24:00.000+01:00</published><updated>2008-02-28T13:25:50.281+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Programación'/><title type='text'>PHP: codificación UTF-8 de una cadena mediante utf8_encode</title><content type='html'>&lt;p&gt;A veces las páginas generadas por PHP con cofificación UTF-8 devuelven algunos caracteres (acentos, interrogaciones, eñes, etc) con mal aspecto, debido a que la codificación de algunos de los fragmentos del texto no coinciden con la del documento, y eso hace que el navegador no los interprete adecuadamente.&lt;/p&gt;

&lt;p&gt;Pero PHP provee una solución a este inconveniente: &lt;code class="php"&gt;utf8_encode&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code class="php"&gt;$cadena = 'valor';
echo $cadena; //Sin pasar a UTF-8
echo utf8_encode($cadena); //pasada a UTF-8&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://es2.php.net/utf8_encode"&gt;Saber más sobre &lt;code class="php"&gt;utf8_encode&lt;/code&gt;&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-2780786712664265559?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/2780786712664265559/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=2780786712664265559' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2780786712664265559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2780786712664265559'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/02/php-codificacin-utf-8-de-una-cadena.html' title='PHP: codificación UTF-8 de una cadena mediante utf8_encode'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-6124973968736774158</id><published>2008-02-26T09:50:00.001+01:00</published><updated>2008-02-26T09:54:06.078+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sistemas de gestión de contenidos'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>CSS: miniaturas de imágenes en gestores de contenido</title><content type='html'>&lt;p&gt;En algunos gestores de contenido existen módulos para gestión de galerías de imagen en los que no hay más que subir las imágenes, dar título y descripción y el gestor se encarga del resto, incluyendo el redimensionado de la imagen.&lt;/p&gt;

&lt;p&gt;Pero a veces ese redimensionado no es el adecuado. Supongamos que solo se redimensiona por anchura , guuardando la proporcion de la imagen original, y que lo que queremos es, por ejemplo, una imagen con forma de cuadrado de 110x110 px.&lt;/p&gt;

&lt;p&gt;En este caso concreto el gestor redimensiona la imagen, pero no la recorta, por lo que o le damos una imagen cuadrada o la miniatura no ocupará todo su espacio.&lt;/p&gt;

&lt;p&gt;Hay dos soluciones. La primera y más rápida darle a la imagen las dimensiones por CSS, pero quedará deformada o incluso pixelada.&lt;/p&gt;

&lt;p&gt;Y la segunda solución, más adecuada, utilizar la propiedad CSS &lt;code class="css"&gt;overflow: hidden;&lt;/code&gt; en el contenedor de la imagen y que dicha imagen tenga siempre unas dimensiones superiores a 110px, tanto en altura como en anchura (sin pasarse mucho).&lt;/p&gt;

&lt;p&gt;Supongamos que tenemos este código HTML (para dos miniaturas):&lt;/p&gt;

&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;div&amp;gt;
 &amp;lt;div class=&amp;quote;thumb&amp;quote;&amp;gt;
  &amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;imagen1.jpg&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;div class=&amp;quote;thumb&amp;quote;&amp;gt;
  &amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;imagen1.jpg&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;
 &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Se utilizaría el siguiente CSS:&lt;/p&gt;

&lt;pre&gt;&lt;code class="css"&gt;div.thumb {width:110px;height:110px;}
div.thumb a {width:110px;height:110px;display:block;position:relative;overflow:hidden;}
div.thumb a img {display:block;position:absolute;top:0;left:0;}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Atención a las propiedades &lt;code class="css"&gt;position&lt;/code&gt;: son para que esto funcione en Internet Explorer (versiones 6 y 7).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-6124973968736774158?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/6124973968736774158/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=6124973968736774158' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/6124973968736774158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/6124973968736774158'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/02/css-miniaturas-de-imgenes-en-gestores.html' title='CSS: miniaturas de imágenes en gestores de contenido'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-7261974079826881408</id><published>2008-02-20T15:49:00.001+01:00</published><updated>2008-02-20T15:51:03.543+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Mootools'/><category scheme='http://www.blogger.com/atom/ns#' term='Librerías Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Prototype'/><category scheme='http://www.blogger.com/atom/ns#' term='Jquery'/><title type='text'>Javascript: evitar conflictos entre Jquery y otras librerías</title><content type='html'>&lt;p&gt;si en un sitio web se usan varias librerías Javascript (&lt;a href="http://www.prototypejs.org/"&gt;Prototype&lt;/a&gt;, &lt;a href="http://mootools.net/"&gt;Mootools&lt;/a&gt;) junto con Jquery podemos encontrarnos con incompatibilidades, ya que la función que Jquery utiliza para los selectores CSS se denomina igual que la que usa Prototype para seleccionar por identificador.&lt;/p&gt;

&lt;p&gt;La solución es más sencilla de lo que parece:&lt;/p&gt;
&lt;pre&gt;&lt;code class="javascript jquery"&gt;var q = jQuery.noConflict();&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;La variable, en este caso la letra &amp;quot;&lt;em&gt;q&lt;/em&gt;&amp;quot; será lo que se utilice en lugar del símbolo &amp;quot;&lt;em&gt;$&lt;/em&gt;&amp;quot;.&lt;/p&gt;

&lt;p&gt;Sin aplicar la variable de eliminación de conflictos:&lt;/p&gt;
&lt;pre&gt;&lt;code class="javascript jquery"&gt;&lt;strong&gt;$&lt;/strong&gt;("div p").hide();&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Y aplicando la variable:&lt;/p&gt;
&lt;pre&gt;&lt;code class="javascript jquery"&gt;&lt;strong&gt;q&lt;/strong&gt;("div p").hide();&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Existen &lt;a href="http://docs.jquery.com/Core/jQuery.noConflict"&gt;más formas de evitar conflictos explicadas con detalle en la documentación de Jquery&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-7261974079826881408?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/7261974079826881408/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=7261974079826881408' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7261974079826881408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7261974079826881408'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/02/javascript-evitar-conflictos-entre.html' title='Javascript: evitar conflictos entre Jquery y otras librerías'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-6961675420990916948</id><published>2008-02-18T16:39:00.001+01:00</published><updated>2008-02-18T16:42:03.425+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux: cambiar el nombre de la máquina</title><content type='html'>&lt;p&gt;El nombre se puede cambiar de forma permanente editando el fichero &lt;code class="bash"&gt;/etc/hostname&lt;/code&gt; y ejecutando &lt;code class="bash"&gt;/etc/init.d/hostname.sh&lt;/code&gt;. En lugar de ejecutar esto último, se puede reiniciar el sistema.&lt;/p&gt;

&lt;p&gt;También se puede hacer el cambio de forma temporal, hasta el siguiente inicio del sistema, habría que ejecutar &lt;code class="bash"&gt;/bin/hostname nuevo-nombre-de-la-maquina&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.experts-exchange.com/OS/Linux/Distributions/Debian/Q_22781274.html"&gt;Supersencillo&lt;/a&gt;&lt;span class="oculto"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-6961675420990916948?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/6961675420990916948/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=6961675420990916948' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/6961675420990916948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/6961675420990916948'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/02/linux-cambiar-el-nombre-de-la-mquina.html' title='Linux: cambiar el nombre de la máquina'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-8499362655154706375</id><published>2008-02-13T12:43:00.006+01:00</published><updated>2008-02-16T01:40:44.343+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Números pares'/><category scheme='http://www.blogger.com/atom/ns#' term='Números impares'/><category scheme='http://www.blogger.com/atom/ns#' term='Programación'/><title type='text'>PHP: Averiguar cuando un número es impar</title><content type='html'>&lt;p&gt;Con esta sencilla función se podrá averiguar si un número es o no impar:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;function is_odd($number)) {
 return $number &amp; 1; // 0 = par, 1 = impar
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Sencillo ejemplo de uso:&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;if(is_odd($numero) {
 echo 'El número '.$numero.' es impar';
} else {
 echo 'El número '.$numero.' es par';
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Una de las aplicaciones más interesantes de esta función es la creación de tablas que alternen filas de dos colores&lt;span class="oculto"&gt; (efecto conocido como &lt;em&gt;pijama&lt;/em&gt;)&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;Encontrado en: &lt;a href="http://www.php-scripts.com/20051104/57/" lang="en" hreflang="en"&gt;Is number odd or even? (PHP-Scripts Blog)&lt;/a&gt;&lt;/p&gt;

&lt;p class="actualizacion"&gt;Editado 13 de febrero de 2008 (16:44)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-8499362655154706375?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/8499362655154706375/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=8499362655154706375' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8499362655154706375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8499362655154706375'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/02/php-averiguar-cuando-un-nmero-es-impar.html' title='PHP: Averiguar cuando un número es impar'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5437839796871202162</id><published>2008-02-11T16:28:00.001+01:00</published><updated>2008-02-11T16:28:42.293+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='strip_tags'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>PHP: eliminar marcado HTML de una cadena de texto</title><content type='html'>&lt;p&gt;Eliminar las etiquuetas HTML junto con sus atributos en una cadena de texto en PHP es muy sencillo. Solo hay que utilizar la función &lt;code class="php"&gt;strip_tags&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;Tenemos este fragmento de HTML:&lt;/p&gt;

&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;p&amp;gt;P&amp;aacute;rrafo de &amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;prueba&amp;lt;/a&amp;gt; al que se &amp;lt;strong&amp;gt;le van a quitar&amp;lt;/strong&amp;gt; las etiquetas HTML.&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Y lo queremos convertir a texto plano&lt;/p&gt;

&lt;pre&gt;&lt;code class="txt"&gt;Párrafo de prueba al que se le van a quitar las etiquetas HTML.&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Aquí está el código PHP:&lt;/p&gt;

&lt;pre&gt;&lt;code class="php"&gt;$HTML = &amp;lt;p&amp;gt;P&amp;aacute;rrafo de &amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;prueba&amp;lt;/a&amp;gt; al que se &amp;lt;strong&amp;gt;le van a quitar&amp;lt;/strong&amp;gt; las etiquetas HTML.&amp;lt;/p&amp;gt;

$txt = strip_tags($HTML); //Devuelve el texto sin etiquetas HTML&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://es.php.net/manual/en/function.strip-tags.php"&gt;PHP.net: strip_tags&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5437839796871202162?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5437839796871202162/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5437839796871202162' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5437839796871202162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5437839796871202162'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/02/php-eliminar-marcado-html-de-una-cadena.html' title='PHP: eliminar marcado HTML de una cadena de texto'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-4378618701153982387</id><published>2008-02-11T11:45:00.000+01:00</published><updated>2008-02-11T11:49:39.571+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM'/><category scheme='http://www.blogger.com/atom/ns#' term='insertBefore'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='appendChild'/><category scheme='http://www.blogger.com/atom/ns#' term='Métodos Javascript'/><title type='text'>Inserción de elementos en Javascript: insertBefore y appendChild</title><content type='html'>&lt;h2&gt;Método appendChild&lt;/h2&gt;

&lt;p&gt;El método &lt;code class="javascript"&gt;appendChild&lt;/code&gt; permite insertar un elemento al final de otro.&lt;/p&gt;

&lt;p&gt;Supongamos que tenemos este HTML:&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;div&amp;gt;
 &amp;lt;p id=&amp;quot;existente&amp;quot;&amp;gt;Elemento existente&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Y queremos que pase a ser así:&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;div id=&amp;quot;contenedor&amp;quot;&amp;gt;&amp;gt;
 &amp;lt;p id=&amp;quot;existente&amp;quot;&amp;gt;Elemento existente&amp;lt;/p&amp;gt;
 &amp;lt;p id=&amp;quot;nuevo&amp;quot;&amp;gt;Elemento nuevo&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;No habría más que utilizar el siguiente código Javascript:&lt;/p&gt;

&lt;pre&gt;&lt;code class="javascript"&gt;elemento1 = document.createElement('p');
elemento1.appendChild(document.createTextNode('Elemento nuevo'));
elemento1.id = 'nuevo';
elemento2 = document.getElementById('contenedor');
elemento2.appendChild(elemento1);&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Método insertBefore&lt;span class="oculto"&gt; (o insert before)&lt;/span&gt;&lt;/h2&gt;

&lt;p&gt;El método &lt;code class="javascript"&gt;insertBefore&lt;/code&gt; tiene una función similar a &lt;code&gt;appendChild&lt;/code&gt;, solo que no inserta el elemento hijo justo al final del elemento padre, sino antes de un elemento concreto que hay que especificar.&lt;/p&gt;

&lt;p&gt;Supongamos que tenemos este HTML:&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;div&amp;gt;
 &amp;lt;p id=&amp;quot;existente&amp;quot;&amp;gt;Elemento existente&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Y queremos que pase a ser así:&lt;/p&gt;
&lt;pre&gt;&lt;code class="xhtml"&gt;&amp;lt;div&amp;gt;
 &amp;lt;p id=&amp;quot;nuevo&amp;quot;&amp;gt;Elemento nuevo&amp;lt;/p&amp;gt;
 &amp;lt;p id=&amp;quot;existente&amp;quot;&amp;gt;Elemento existente&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;No habría más que utilizar el siguiente código Javascript:&lt;/p&gt;

&lt;pre&gt;&lt;code class="javascript"&gt;elemento1 = document.createElement('p');
elemento1.appendChild(document.createTextNode('Elemento nuevo'));
elemento1.id = 'nuevo';
elemento2 = document.getElementById('existente');
elemento2.parentNode.insertBefore(elemento1,elemento2);&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Saber más&lt;/h2&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;a href="http://diveintogreasemonkey.org/patterns/insert-before.html"&gt;Inserting content before an element (Dive into Greasemonkey)&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://www.w3schools.com/dom/met_node_insertbefore.asp"&gt;XML DOM insertBefore() Method (W3Schools)&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://www.byteclub.net/wiki/Javascript_appendChild"&gt;Javascript appendChild (ByteClub)&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://www.w3schools.com/dom/met_element_appendchild.asp"&gt;XML DOM appendChild() Method (W3Schools)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-4378618701153982387?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/4378618701153982387/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=4378618701153982387' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4378618701153982387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4378618701153982387'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/02/insercin-de-elementos-en-javascript.html' title='Inserción de elementos en Javascript: insertBefore y appendChild'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-6387360078709518268</id><published>2008-02-10T15:31:00.000+01:00</published><updated>2008-02-10T15:32:38.465+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Usabilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño de interacción'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><title type='text'>Duplicación de elementos de la interfaz en sitios web</title><content type='html'>&lt;h2&gt;Enlace &amp;quot;Volver&amp;quot;&lt;/h2&gt;
&lt;p&gt;Una práctica muy habitual al diseñar un sitio web es la de introducir botones o enlaces con los textos &amp;quot;Atrás&amp;quot;, &amp;quot;Volver&amp;quot; o cualquier otro cuyo significado sea el de volver a la página anterior.&lt;/p&gt;
&lt;p&gt;Este tipo de enlace probablemente sea un poco redundante, ya que todos los navegadores web disponen en su interfaz de un botón para ir atrás, incluso los de los móviles.&lt;/p&gt;
&lt;h2&gt;Enlace o botón &amp;quot;Imprimir&amp;quot;&lt;/h2&gt;
&lt;p&gt;Más de lo mismo. Todos los navegadores disponen en su interfaz de un botón para imprimir.&lt;/p&gt;
&lt;p&gt;Tiene más sentido si lo que hace es abrir una página optimizada para la impresión.&lt;/p&gt;
&lt;h2&gt;Enlace &amp;quot;Enviar esta página por email&amp;quot;&lt;/h2&gt;
&lt;p&gt;Y otra vez. Los navegadores también coinciden en incorporar esta opción.&lt;/p&gt;
&lt;h2&gt;Conclusión&lt;/h2&gt;
&lt;p&gt;Este tipo de enlaces y botones tiene como objetivo, consciente o inconsiente, sustituir a la interfaz del navegador para determinadas acciones, lo cual puede resultar redundante y ayuda a que los usuarios no se molesten en aprender a utilizar minimamente el navegador web que hayan (&lt;a href="http://www.microsoft.com/spain/windows/ie/default.mspx"&gt;o les hayan&lt;/a&gt;) elegido.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-6387360078709518268?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/6387360078709518268/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=6387360078709518268' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/6387360078709518268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/6387360078709518268'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/02/duplicacin-de-elementos-de-la-interfaz.html' title='Duplicación de elementos de la interfaz en sitios web'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-4804138726999060219</id><published>2008-02-08T14:44:00.000+01:00</published><updated>2008-02-08T14:45:03.830+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Codificación de caracteres'/><category scheme='http://www.blogger.com/atom/ns#' term='ANSI'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Unicode'/><title type='text'>Caracteres especiales en Javascript</title><content type='html'>&lt;p&gt;Si un archivo en el que hay código Javascript está en codificación ANSI podemos encontrarnos con que al poner acentos por ejemplo en un &lt;code class="javascript"&gt;alert&lt;/code&gt; salga algo como esto:&lt;/p&gt;
&lt;p class="centrado img"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/acentos_mal.png" alt="Acentos en ANSI" /&gt;&lt;/p&gt;

&lt;p&gt;El código del alert:&lt;/p&gt;
&lt;pre&gt;&lt;code class="javascript"&gt;alert('prueba de ácéntós');&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;La solución que he encontrado es la siguiente: utilizar los &lt;a href="http://www.unicode.org/charts/PDF/U0080.pdf" class="pdf" title="Documento PDF"&gt;códigos Unicode&lt;/a&gt; de esos caracteres acentuados:&lt;/p&gt;
&lt;pre&gt;&lt;code class="javascript"&gt;alert('prueba de \u00E1c\u00E9nt\u00F3s');&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;De esta forma ahora saldría esto:&lt;/p&gt;
&lt;p class="centrado img"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/acentos_bien.png" alt="Acentos en ANSI" /&gt;&lt;/p&gt;

&lt;h2&gt;Tabla de equivalencias Unicode&lt;/h2&gt;

&lt;p&gt;En el Javascript habrá que añadir antes del código Unicode correspondiente el siguiente fragmento: &lt;code class="javascript"&gt;\u&lt;/code&gt;.&lt;/p&gt;

&lt;table&gt;
 &lt;thead&gt;
  &lt;tr&gt;
   &lt;th scope="col"&gt;Caracter especial&lt;/th&gt;
   &lt;th scope="col"&gt;Código Unicode&lt;/th&gt;
  &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
  &lt;td&gt;Á&lt;/td&gt;
  &lt;td&gt;00C1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td&gt;á&lt;/td&gt;
  &lt;td&gt;00E1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td&gt;É&lt;/td&gt;
  &lt;td&gt;00C9&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td&gt;é&lt;/td&gt;
  &lt;td&gt;00E9&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td&gt;Í&lt;/td&gt;
  &lt;td&gt;00CD&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td&gt;í&lt;/td&gt;
  &lt;td&gt;00ED&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td&gt;Ó&lt;/td&gt;
  &lt;td&gt;00D3&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td&gt;ó&lt;/td&gt;
  &lt;td&gt;00F3&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td&gt;Ú&lt;/td&gt;
  &lt;td&gt;00DA&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td&gt;ú&lt;/td&gt;
  &lt;td&gt;00FA&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;&lt;a href="http://www.unicode.org/charts/PDF/U0080.pdf" class="pdf" title="Documento PDF"&gt;Lista completa de equivalencias en formato PDF&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-4804138726999060219?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/4804138726999060219/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=4804138726999060219' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4804138726999060219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/4804138726999060219'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/02/caracteres-especiales-en-javascript.html' title='Caracteres especiales en Javascript'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-421878063899787522</id><published>2008-02-07T10:55:00.000+01:00</published><updated>2008-02-07T10:57:02.126+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Programación'/><title type='text'>PHP: Limitar el número de caracteres de una cadena</title><content type='html'>&lt;p&gt;Se pueden limitar los caracteres a mostrar de una cadena (o &lt;em lang="en"&gt;string&lt;/em&gt;) mediante la función &lt;strong&gt;substr&lt;/strong&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code class="php"&gt;$cadena = 'abdefghijk'; //Esta es la cadena que se quiere acortar
echo substr($cadena, 0, 4); //con esto se cogen los 4 primeros caracteres
//Habría devuelto: abcd&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://es.php.net/substr"&gt;Saber más&lt;span class="oculto"&gt; sobre la función substr en PHP&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-421878063899787522?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/421878063899787522/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=421878063899787522' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/421878063899787522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/421878063899787522'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/02/php-limitar-el-nmero-de-caracteres-de.html' title='PHP: Limitar el número de caracteres de una cadena'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-8203107869698921248</id><published>2008-01-25T22:22:00.000+01:00</published><updated>2008-01-25T22:10:56.453+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Propiedades CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Javascript: establecer el valor de la propiedad float de CSS</title><content type='html'>&lt;p&gt;En Javascript es muy fácil establecer propiedades CSS, como en este ejemplo las propiedades de anchura, color y z-index:&lt;/p&gt;

&lt;pre&gt;&lt;code class="javascript"&gt;elemento.style.width = '50%';
elemento.style.color = '#0c0';
elemento.style.zIndex = '1';&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Pero con la propiedad &lt;code class="css"&gt;float&lt;/code&gt; no es tan sencillo:&lt;/p&gt;
&lt;blockquote cite="http://safari.oreilly.com/0975240269/Ichap_jscss"&gt;
 &lt;p&gt;Because the word "float" is already reserved in JavaScript, it's not possible to access an object's floatCSS property using style.float. In fact, browsers use different terms for the float property: Internet Explorer uses style.styleFloat, while all other browsers use the W3C-specified style.cssFloat.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;La palabra &lt;em&gt;float&lt;/em&gt; es una palabra reservada en el lenguaje Javascript, por lo que no se puede usar para definir la propiedad &lt;code class="css"&gt;float&lt;/code&gt;. Por ello hay que utilizar la siguiente alternativa especificada por la &lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code class="javascript"&gt;elemento.style.&lt;strong&gt;cssFloat&lt;/strong&gt; = 'left';&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Pero aun queda un escollo. Internet Explorer (&lt;span class="sarcasmo"&gt;que es muy especial&lt;/span&gt;) no soporta esta alternativa, por lo que habrá que usar al mismo tiempo lo siguiente:&lt;/p&gt;

&lt;pre&gt;&lt;code class="javascript"&gt;elemento.style.&lt;strong&gt;styleFloat&lt;/strong&gt; = 'left';&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Saber más&lt;/h2&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;a href="http://safari.oreilly.com/0975240269/Ichap_jscss" hreflang="en" lang="en"&gt;O'Reilly - Saari Books Online 0975240269 - The Javascript Anthology&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://www.iamseree.com/aspnet/use-javascript-to-change-float-style/" lang="en" hreflang="en"&gt;Use Javascript to change &amp;#034;float&amp;#034; style (Seree's Blog)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-8203107869698921248?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/8203107869698921248/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=8203107869698921248' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8203107869698921248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8203107869698921248'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/01/javascript-establecer-el-valor-de-la.html' title='Javascript: establecer el valor de la propiedad float de CSS'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-1024532401629383785</id><published>2008-01-23T12:03:00.000+01:00</published><updated>2008-01-23T12:06:28.502+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sistemas de gestión de contenidos'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS Made Simple'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><title type='text'>Inclusión de PHP en plantillas de CMS Made Simple</title><content type='html'>&lt;p&gt;Es muy sencillo, en lugar de &lt;code class="php"&gt;&amp;lt;?&lt;/code&gt; se utilizaría &lt;code class="php"&gt;{/php}&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code class="php"&gt;{php} echo 'Texto en PHP'; {/php}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://wiki.cmsmadesimple.org/index.php/Developers_FAQ#Q:_How_do_I_Include_External_PHP_in_my_Page_or_Template"&gt;Saber más&lt;span class="oculto"&gt; sobre la inclusión de PHP en plantillas de CMS Made Simple&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-1024532401629383785?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/1024532401629383785/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=1024532401629383785' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1024532401629383785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1024532401629383785'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/01/inclusin-de-php-en-plantillas-de-cms.html' title='Inclusión de PHP en plantillas de CMS Made Simple'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-2372087987031726112</id><published>2008-01-22T17:34:00.000+01:00</published><updated>2008-01-22T17:43:43.611+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Elementos HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Atributos HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Estándares web'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>HTML: cuando se puede usar el atributo alt en el elemento input</title><content type='html'>&lt;p&gt;El atributo &lt;code class="xhtml"&gt;alt&lt;/code&gt; en el elemento &lt;code class="xhtml"&gt;input&lt;/code&gt; solo debe usarse si el atributo &lt;code class="xhtml"&gt;type&lt;/code&gt; contiene el valor &lt;code class="xhtml"&gt;image&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://htmlhelp.com/reference/html40/forms/input.html"&gt;Saber más sobre el elemento &lt;code class="xhtml"&gt;input&lt;/code&gt;&lt;/a&gt; y &lt;a href="http://www.w3.org/WAI/GL/WCAG20/tests/test58.html"&gt;sobre la obligatoriedad de la inclusión del atributo alt&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-2372087987031726112?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/2372087987031726112/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=2372087987031726112' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2372087987031726112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2372087987031726112'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/01/html-cuando-se-puede-usar-el-atributo.html' title='HTML: cuando se puede usar el atributo alt en el elemento input'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5154685595568093905</id><published>2008-01-18T00:01:00.000+01:00</published><updated>2008-01-17T22:28:39.538+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores web'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Humor'/><title type='text'>¿Para que sirve Internet Explorer?</title><content type='html'>&lt;p&gt;Pues muy sencillo, &lt;a href="http://www.hachemuda.com/2008/01/14/internet-explorer-solo-sirve/"&gt;según HacheMuda&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote cite="http://www.hachemuda.com/2008/01/14/internet-explorer-solo-sirve"&gt;
&lt;p class="destacado"&gt;Internet Explorer sólo sirve para bajarse Firefox.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Aunque yo creo que también puede servir para &lt;a href="http://www.opera.com/download/"&gt;bajarse Opera&lt;/a&gt;, al que considero bastante superior a Firefox.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5154685595568093905?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5154685595568093905/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5154685595568093905' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5154685595568093905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5154685595568093905'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/01/para-que-sirve-internet-explorer.html' title='¿Para que sirve Internet Explorer?'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-5043974325325643261</id><published>2008-01-17T11:26:00.000+01:00</published><updated>2008-01-17T11:46:31.631+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='split'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='Métodos Javascript'/><title type='text'>Javascript: el método split()</title><content type='html'>&lt;p&gt;El método &lt;code class="javascript"&gt;split()&lt;/code&gt; en Javascript permite dividir en varios bloques una cadena de texto, formando un array.&lt;/p&gt;

&lt;p&gt;Ejemplo:&lt;/p&gt;

&lt;pre&gt;&lt;code class="javascript"&gt;cadenaTexto = &amp;#39;palabras-de-la-cadena-de-texto&amp;#39;
fragmentoTexto = cadenaTexto.split(&amp;#39;-&amp;#39;);&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;En el ejemplo las palabras en la cadena de texto (la variable &lt;code class="javascript"&gt;cadenaTexto&lt;/code&gt;)  están separadas por guiones. Al utilizar el método &lt;code class="javascript"&gt;split()&lt;/code&gt; la separación viene dada por esos guiones.&lt;/p&gt;

&lt;p&gt;Saldrían los siguientes fragmentos:&lt;/p&gt;

&lt;pre&gt;&lt;code class="javascript"&gt;fragmentoTexto[0];// palabras
fragmentoTexto[1];// de
fragmentoTexto[2];// la
fragmentoTexto[3];// cadena
fragmentoTexto[4];// de
fragmentoTexto[5];// texto&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Saber más&lt;/h2&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;a href="http://www.w3schools.com/jsref/jsref_split.asp"&gt;JavaScript split() Method (W3Schools)&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://www.tizag.com/javascriptT/javascript-string-split.php"&gt;Javascript String Split Function (Tizag)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-5043974325325643261?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/5043974325325643261/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=5043974325325643261' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5043974325325643261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/5043974325325643261'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/01/javascript-el-mtodo-split.html' title='Javascript: el método split()'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-2790465729583954535</id><published>2008-01-13T18:05:00.000+01:00</published><updated>2008-01-13T17:58:07.643+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Debian Etch'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software libre'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Sistemas operativos'/><category scheme='http://www.blogger.com/atom/ns#' term='Equium 3200M'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><title type='text'>Reciclaje de un ordenador viejo</title><content type='html'>&lt;p&gt;Este fin de semana he dedicado un ratillo a terminar el reciclaje de un ordenador antiguo que tengo por casa (un Toshiba Equium 3200M):&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;abbr title="Pentium 3"&gt;PIII&lt;/abbr&gt; 450Mhz (Katmai)&lt;/li&gt;
 &lt;li&gt;256 MB SDRAM 100Mhz&lt;/li&gt;
 &lt;li&gt;Discos duros: 8,4GB y 20GB.&lt;/li&gt;
 &lt;li&gt;Lector DVD&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anteriormente ya le había instalado un Windows XP SP2 ocupando todo el disco de 8,4GB, optimizándolo para que consumiera el mínimo posible de memoria&lt;/p&gt;

&lt;p&gt;A pesar de la optimización y de que la máquina cumple los requisitos recomendados para mover Windows XP, no es que vaya muy bien, sobre todo en lo referido a consumo de memoria.&lt;/p&gt;

&lt;p&gt;En el disco duro de 20GB he creado una partición de 4GB en la que he instalado un Debian Etch 4.0r2 con KDE. Y la verdad es que va bastante mejor que &lt;span class="oculto"&gt;Windows &lt;/span&gt;XP.&lt;/p&gt;

&lt;p class="centrado imagen"&gt;&lt;a href="http://buhardillaoscura.googlepages.com/debian4.0r2_kde.jpg"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/tn_debian4.0r2_kde.jpg" alt="Captura de Debian 4.0 con KDE" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El consumo de memoria al iniciar el sistema es de 128 MB en &lt;span class="oculto"&gt;Windows &lt;/span&gt;XP, y de 64 MB en Debian.&lt;/p&gt;

&lt;p&gt;En cuanto a microprocesador se queda un poco corto en ambos sistemas, quizá un poco menos en Debian, pero la diferencia no es muy apreciable.&lt;/p&gt;

&lt;p&gt;Debian 4.0 va mejor en esta máquina que Windows XP, a pesar de ser un sistema operativo bastante más reciente y con una interfaz (KDE) muchísimo más atractiva y personalizable.&lt;/p&gt;
&lt;p&gt;He de decir que también probé con otros sistemas operativos:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;strong&gt;Windows 98:&lt;/strong&gt; Un rendimiento excepcional (es el sistema que venía preinstalado). En contra la falta de determinadas aplicaciones recientes y una ligera inestabilidad (explorer.exe peta mucho.).&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Windows ME:&lt;/strong&gt; Un rendimiento casi a la par que Windows 98. Muy inestable.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Windows 2000 SP4:&lt;/strong&gt; un rendimiento similar a &lt;span class="oculto"&gt;Windows &lt;/span&gt;XP. Carece de Internet Explorer 7.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Kubuntu Feisty 7.04:&lt;/strong&gt; como ventajas que está basado en Debian y lleva KDE. Muy recargado, muy lento y un consumo excesivo de memoria (casi como XP).&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Ubuntu Dapper 6.06:&lt;/strong&gt; imposible de utilizar con un mínimo de soltura. Lento, recargado.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Debian Woody 3.0:&lt;/strong&gt; tiene un rendimiento excelente, pero las aplicaciones suelen estar bastante anticuadas, aunque funcionan las últimas versiones de Firefox, Seamonkey, Opera y OpenOffice.org.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Slax 5:&lt;/strong&gt; un rendimiento excepcional con KDE. El lado malo es que es unsistema operativo de juguete.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-2790465729583954535?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/2790465729583954535/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=2790465729583954535' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2790465729583954535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/2790465729583954535'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/01/reciclaje-de-un-ordenador-viejo.html' title='Reciclaje de un ordenador viejo'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-8746907983549936074</id><published>2008-01-02T23:00:00.000+01:00</published><updated>2008-01-02T23:01:57.389+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Atributo id'/><category scheme='http://www.blogger.com/atom/ns#' term='Especificidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Atributos HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><category scheme='http://www.blogger.com/atom/ns#' term='Atributo class'/><title type='text'>HTML y CSS: diferencias entre clases (class) e  identificadores (id)</title><content type='html'>&lt;h2&gt;El atributo id&lt;/h2&gt;
&lt;p&gt;El atributo id sirve para identificar de forma única a un elemento dentro de un documento  HTML.&lt;/p&gt;

&lt;p&gt;El valor del atributo id de un elemento no puede repetirse en ningún otro atributo id del mismo documento.&lt;/p&gt;

&lt;p&gt;El id es la parte del selector CSS que más &lt;a href="http://outbook.blogspot.com/2007/07/css-especificidad-de-los-selectores-2.html"&gt;especificidad&lt;span class="oculto"&gt; CSS&lt;/span&gt;&lt;/a&gt; da: un valor de 100.&lt;/p&gt;

&lt;h2&gt;El atributo class&lt;/h2&gt;

&lt;p&gt;El valor del atributo class puede repetirse cuantas veces sea necesario, incluso puede llevar más de una clase:&lt;/p&gt;

&lt;pre&gt;&lt;code class="xhtml"&gt;class=”claseUnica” -&gt; atributo class con una sola clase
class=”clase1 clase2” -&gt; atributo class con más de una clase&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;El valor del atributo class no tiene ningún valor identificativo del elemento que lo contiene, únicamente sirve para asociarle los estilos al elemento.&lt;/p&gt;

&lt;p&gt;En cuanto a especificidad CSS tiene un valor de 10.&lt;/p&gt;

&lt;h2&gt;Saber más&lt;/h2&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;a href="http://www.w3.org/TR/html4/struct/global.html#h-7.5.2" lang="en" hreflang="en"&gt;Element identifiers: the id and class attributes&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://www.htmldog.com/guides/cssintermediate/classid/" lang="en" hreflang="en"&gt;Class and ID Selectors&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://www.devguru.com/technologies/xhtml/QuickRef/xhtml_attribute_id.html" lang="en" hreflang="en"&gt;DevGuru.com: ATTRIBUTE id&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://buhardillaoscura.googlepages.com/dif_id_class.odt"&gt;Este documento está disponible en formato OpenDocument&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-8746907983549936074?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/8746907983549936074/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=8746907983549936074' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8746907983549936074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/8746907983549936074'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2008/01/html-y-css-diferencias-entre-clases.html' title='HTML y CSS: diferencias entre clases (class) e  identificadores (id)'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-7307869981952356739</id><published>2007-12-29T19:53:00.000+01:00</published><updated>2007-12-29T19:54:44.278+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño web'/><title type='text'>Javascript: Secciones desplegables</title><content type='html'>&lt;p&gt;He montado un ejemplo de secciones de página desplegables.&lt;/p&gt;

&lt;p&gt;Al cargar la página esas secciones se pliegan automáticamente, y el encabezado que las precede adquiere forma de enlace para poder desplegarlas y plegarlas. Si Javascript no está disponible, no habrá enlace en el encabezado ni se plegarán las secciones.&lt;/p&gt;

&lt;p&gt;El bloque de secciones es precedido por un menú con dos enlaces: uno para plegar todas las secciones y otro para desplegarlas todas. Este menú se inserta mediante Javascript, por lo que en ausencia de Javascript no se mostrará.&lt;/p&gt;

&lt;p&gt;Su funcionamiento se ha comprobado en Internet Explorer (versiones 5.5, 6 y 7), Firefox 2.0.0.11 (Windows XP), Iceweasel 2.0.0.8 (Debian 4.0), Opera 9.25 (Windows XP), Opera 9.24 (Debian 4.0), Konqueror 3.5.5 (Debian 4.0) y Safari 3.0.4 (Windows XP).&lt;/p&gt;

&lt;h2&gt;Ejemplos&lt;/h2&gt;

&lt;p&gt;Ver ejemplos de funcionamiento:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;a href="http://buhardillaoscura.googlepages.com/desplegables.html" target="_blank"&gt;Ejemplo con Javascript activado (abre en ventana nueva)&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://buhardillaoscura.googlepages.com/desplegables_no_js.html" target="_blank"&gt;Ejemplo con Javascript desactivado (abre en ventana nueva)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="oculto"&gt;Descarga&lt;/h3&gt;
&lt;p class="centrado destacado"&gt;&lt;a href="http://buhardillaoscura.googlepages.com/desplegables.zip"&gt;Descargar ejemplos (archivo ZIP)&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-7307869981952356739?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/7307869981952356739/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=7307869981952356739' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7307869981952356739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/7307869981952356739'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2007/12/javascript-secciones-desplegables.html' title='Javascript: Secciones desplegables'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8738574.post-1071449206554904671</id><published>2007-12-24T12:21:00.001+01:00</published><updated>2007-12-24T21:24:23.138+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pestañas'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='QTTabBar'/><title type='text'>QTTabBar: añade pestañas a Windows Explorer</title><content type='html'>&lt;p&gt;&lt;a href="http://qttabbar.wikidot.com/download"&gt;QTTabBar&lt;/a&gt; añade funcionalidad de pestañas a Windows Explorer, algo habitual en navegadores pero no en aplicaciones de exploración de archivos. La única aplicación de ese tipo en la que lo había visto es &lt;a href="http://www.konqueror.org/"&gt;Konqueror&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Parece que funciona para XP y Vista, necesitando en XP el &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&amp;displaylang=es"&gt;.NET Framework 2.0&lt;/a&gt;.&lt;/p&gt;

&lt;p class="centrado imagen" rel="amplia"&gt;&lt;a href="http://buhardillaoscura.googlepages.com/qttabbar.png"&gt;&lt;img src="http://buhardillaoscura.googlepages.com/tn_qttabbar.jpg" alt="Captura de pantalla de QtTab Bar" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Descargar &lt;a href="http://qttabbar.wikidot.com/qttabbar"&gt;QTTabBar&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738574-1071449206554904671?l=outbook.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://outbook.blogspot.com/feeds/1071449206554904671/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8738574&amp;postID=1071449206554904671' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1071449206554904671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8738574/posts/default/1071449206554904671'/><link rel='alternate' type='text/html' href='http://outbook.blogspot.com/2007/12/qttabbar-aade-pestaas-windows-explorer.html' title='QTTabBar: añade pestañas a Windows Explorer'/><author><name>jervert</name><uri>http://www.blogger.com/profile/05188602208912198241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
