<?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-2112907815937797445</id><updated>2012-01-25T18:22:40.142+01:00</updated><category term='eliminar'/><category term='iphone'/><category term='e-mailing'/><category term='jQuery'/><category term='javascript'/><category term='SEO'/><category term='CSS'/><category term='metatags'/><category term='posicionamiento'/><category term='adsense'/><category term='formularios'/><category term='spam'/><category term='HTML'/><category term='body'/><category term='windows'/><category term='diseño'/><category term='pagerank'/><category term='ganar dinero'/><category term='blog'/><category term='wordpress'/><category term='bloquear'/><category term='explorer8'/><category term='google'/><title type='text'>sin programar</title><subtitle type='html'>Diseño y programación Web para todos los públicos</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rober</name><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>46</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-6965064295476205603</id><published>2012-01-25T18:07:00.000+01:00</published><updated>2012-01-25T18:07:57.551+01:00</updated><title type='text'>Tipografias por comunes en Windows, Mac OS, Ubuntu y smartphones</title><content type='html'>Lista de fuentes tipográficas por defecto y comunes que encontraremos en la mayoría de sistemas operativos Windows, Mac OS y Ubuntu (Linux). Listado muy útil a la hora de elegir la tipografía para desarrollar nuestra web y que se vea igual en todos los navegadores y sistemas operativos.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Fuentes comunes en la mayoría de versiones de Windows, Mac OS y Ubuntu:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Arial&lt;/li&gt;&lt;li&gt;Comic Sans MS &lt;/li&gt;&lt;li&gt;Georgia&lt;/li&gt;&lt;li&gt;Trebuchet MS&lt;/li&gt;&lt;li&gt;Verdana&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;En móviles no hay fuentes comunes para todos, sino que depende del sistema que utilicen.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Fuentes instaladas por defecto en iPhone:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Helvetica&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;b&gt;Fuentes instaladas por defecto en Android&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Droid Sans&lt;/li&gt;&lt;/ul&gt;&lt;div style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-TikcLaVU-yc/TyA2WdaowcI/AAAAAAAAAJ8/WzQx8vF9Q14/s1600/fuentes-comunes.gif" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-6965064295476205603?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/6965064295476205603/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2012/01/tipografias-por-comunes-en-windows-mac.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/6965064295476205603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/6965064295476205603'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2012/01/tipografias-por-comunes-en-windows-mac.html' title='Tipografias por comunes en Windows, Mac OS, Ubuntu y smartphones'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-TikcLaVU-yc/TyA2WdaowcI/AAAAAAAAAJ8/WzQx8vF9Q14/s72-c/fuentes-comunes.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-7028001840358644941</id><published>2011-11-10T18:46:00.000+01:00</published><updated>2011-11-10T18:51:39.173+01:00</updated><title type='text'>Crear gráficos con CANVAS III - Círculos y arcos</title><content type='html'>Siguiendo con los casos prácticos, vamos a ver como dibujar arcos, circunferencias y círculos.&lt;br /&gt; &lt;br&gt;&lt;strong&gt;arc(x, y, radio, angulo-inicio, angulo-fin, sentido-giro[true o false])&lt;/strong&gt;&lt;br&gt;&lt;img src="http://2.bp.blogspot.com/-BvjyuF_1m4w/TrwKDddqf_I/AAAAAAAAAH8/mpx6vD1GKH4/s320/arco.gif" /&gt;&lt;br /&gt;El angulo de inicio y fin no se expresan en grados sino en radianes. 6,2831853 radianes (PI*2) equivalen a 360 grados. Podemos obtener los radianes a partir de los grados con este cálculo:&lt;br /&gt;&lt;br /&gt;radianes = (Math.PI/180)*grados&lt;br /&gt;&lt;b&gt;Ejemplo:&lt;/b&gt;    &lt;code&gt;    &lt;pre style="background:#FFF;color:#333;padding:5px;"&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt; &lt;br /&gt;function dibujo(){&lt;br /&gt;    var canvas = document.getElementById(&amp;quot;dibujo&amp;quot;).getContext('2d');&lt;br /&gt;            &lt;br /&gt;    var calculoRadian = Math.PI/180;&lt;br /&gt;    var gradoInicio1 = 0;&lt;br /&gt;    var gradoFin1 = calculoRadian * 360;&lt;br /&gt;    var gradoInicio2 = 0;&lt;br /&gt;    var gradoFin2 = calculoRadian * 360;&lt;br /&gt;    var gradoInicio3 = 0;&lt;br /&gt;    var gradoFin3 = calculoRadian * 90;&lt;br /&gt;    &lt;br /&gt;    //Circulo&lt;br /&gt;    canvas.beginPath();&lt;br /&gt;    canvas.arc(360,150,50,gradoInicio1,gradoFin1,false);&lt;br /&gt;    canvas.fill();&lt;br /&gt;    &lt;br /&gt;    //Arco relleno&lt;br /&gt;    canvas.beginPath();&lt;br /&gt;    canvas.arc(120,150,50,gradoInicio2,gradoFin2,false);&lt;br /&gt;    canvas.stroke();&lt;br /&gt;    &lt;br /&gt;    //Circulo relleno&lt;br /&gt;    canvas.beginPath();&lt;br /&gt;    canvas.arc(200,120,80,gradoInicio3,gradoFin3,false);&lt;br /&gt;    canvas.fill();&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body onLoad=&amp;quot;dibujo()&amp;quot;&amp;gt; &lt;br /&gt;&amp;lt;canvas id=&amp;quot;dibujo&amp;quot; width=&amp;quot;500&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&amp;lt;/canvas&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;    &lt;/pre&gt;    &lt;/code&gt; Resultado:&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/-Jw95n7wAkQ0/TrwKCnun9RI/AAAAAAAAAH0/EV2L6W1h2Y8/s320/canvas-3.gif" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-7028001840358644941?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/7028001840358644941/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2011/11/crear-graficos-canvas-iii-circulos-y.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7028001840358644941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7028001840358644941'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2011/11/crear-graficos-canvas-iii-circulos-y.html' title='Crear gráficos con CANVAS III - Círculos y arcos'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-BvjyuF_1m4w/TrwKDddqf_I/AAAAAAAAAH8/mpx6vD1GKH4/s72-c/arco.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-1390405574468433074</id><published>2011-10-07T09:00:00.000+02:00</published><updated>2011-10-07T09:00:02.298+02:00</updated><title type='text'>Crear gráficos con CANVAS - II</title><content type='html'>Las funciones básicas para dibujar formas son:    &lt;strong&gt;beginPath()&lt;/strong&gt; - &lt;em&gt;Inicio de nueva figura&lt;/em&gt;&lt;br&gt;    &lt;strong&gt;closePath() &lt;/strong&gt;- &lt;em&gt;Cerrar figura&lt;/em&gt;&lt;br&gt;    &lt;strong&gt;stroke() &lt;/strong&gt;- &lt;em&gt;Dibujar contorno&lt;/em&gt;&lt;br&gt;    &lt;strong&gt;fill()&lt;/strong&gt; - &lt;em&gt;Dibujar figura con relleno. Cuando se utiliza no es necesario cerrar la figura&lt;/em&gt;&lt;br&gt;    &lt;strong&gt;moveTo(x, y)&lt;/strong&gt; - &lt;em&gt;Punto de inicio de dibujo o salto en el dibujo&lt;/em&gt;&lt;br&gt;    &lt;strong&gt;lineTo(x,y)&lt;/strong&gt; - &lt;em&gt;Linea recta&lt;/em&gt;&lt;br&gt;    &lt;strong&gt;arc(x, y, radio, angulo-inicio, angulo-fin, sentido-giro[true o false])&lt;/strong&gt; - &lt;em&gt;Arco&lt;/em&gt;&lt;br&gt;    &lt;strong&gt;quadraticCurveTo(cx, cy, x, y)&lt;/strong&gt; - &lt;em&gt;Curva cuadr&amp;aacute;tica (&amp;quot;cx&amp;quot; y &amp;quot;cy&amp;quot; son las posiciones x-y de punto de control de la curva)&lt;/em&gt;&lt;br&gt;    &lt;strong&gt;bezierCurveTo(cx1, cy1, cx2, cy2, x, y)&lt;/strong&gt; - &lt;em&gt;Curva beizer (&amp;quot;cx1&amp;quot;, &amp;quot;cy1&amp;quot;, &amp;quot;cx2&amp;quot; y &amp;quot;cx2&amp;quot;  son las posiciones x-y de los puntos de control 1 y 2)&lt;/em&gt;    &lt;br&gt;    &lt;br&gt;    &lt;strong&gt;Ejemplo triangulo:&lt;/strong&gt;    &lt;br&gt;&lt;code&gt;&lt;pre style="background:#FFF;color:#333;"&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;    function dibujo(){&lt;br /&gt;    var canvas = document.getElementById(&amp;quot;dibujo&amp;quot;).getContext('2d');&lt;br /&gt;    &lt;br /&gt;    //Contorno triangulo&lt;br /&gt;    canvas.beginPath();&lt;br /&gt;    canvas.moveTo(100,50);&lt;br /&gt;    canvas.lineTo(150,150);&lt;br /&gt;    canvas.lineTo(50,150);&lt;br /&gt;    canvas.lineTo(100,50);&lt;br /&gt;    canvas.stroke();&lt;br /&gt;    &lt;br /&gt;    //Triangulo relleno&lt;br /&gt;    canvas.beginPath();&lt;br /&gt;    canvas.moveTo(250,50);&lt;br /&gt;    canvas.lineTo(350,200);&lt;br /&gt;    canvas.lineTo(150,200);&lt;br /&gt;    canvas.lineTo(250,50);&lt;br /&gt;    canvas.fill();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body onLoad=&amp;quot;dibujo()&amp;quot;&amp;gt; &lt;br /&gt;	&amp;lt;canvas id=&amp;quot;dibujo&amp;quot; width=&amp;quot;500&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&amp;lt;/canvas&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;Resultado:&lt;img border="0" height="192" src="http://3.bp.blogspot.com/-W1hrXvZwNHs/ToNNO_2Y_9I/AAAAAAAAAHo/pPJHccsJioQ/s320/triangulos.gif" width="320" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-1390405574468433074?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/1390405574468433074/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2011/10/crear-graficos-con-canvas-ii.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/1390405574468433074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/1390405574468433074'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2011/10/crear-graficos-con-canvas-ii.html' title='Crear gráficos con CANVAS - II'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-W1hrXvZwNHs/ToNNO_2Y_9I/AAAAAAAAAHo/pPJHccsJioQ/s72-c/triangulos.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-7838195358372521113</id><published>2011-10-05T09:00:00.000+02:00</published><updated>2011-10-05T09:00:02.414+02:00</updated><title type='text'>Crear gráficos con CANVAS - I</title><content type='html'>    El elemento &amp;quot;canvas&amp;quot; de HTML crea un area donde mediante javascript se puede crear gr&amp;aacute;ficos de forma din&amp;aacute;mica.    &lt;br&gt;    &lt;div style="margin-left:25px;color:#00F;"&gt;&lt;strong&gt;&amp;lt;canvas&amp;gt;&amp;lt;/canvas&amp;gt;&lt;/strong&gt;&lt;/div&gt;    &lt;br&gt;    &lt;br&gt;    Los atributos permitidos son &amp;quot;width&amp;quot; y &amp;quot;height&amp;quot;, de forma predeterminada tiene un tama&amp;ntilde;o de 300 x 150 pixels.&lt;br&gt;    &lt;br&gt;    &lt;div style="margin-left:25px;color:#00F;"&gt;&amp;lt;canvas  &lt;strong&gt;width=&amp;quot;500&amp;quot; height=&amp;quot;300&amp;quot;&lt;/strong&gt;&amp;gt;&amp;lt;/canvas&amp;gt;&lt;/div&gt;    &lt;br&gt;    &lt;em&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Asignar el tama&amp;ntilde;o de canvas mediante CSS distorsiona los gr&amp;aacute;ficos de su interior.&lt;/em&gt;    &lt;br&gt;    &lt;br&gt;    El contenido que se a&amp;ntilde;ada dentro de canvas se puede utilizar como contenido alternativo para los navegadores que no lo soporten.&lt;br&gt;&lt;div style="margin-left:25px;color:#00F;"&gt;&amp;lt;canvas  width=&amp;quot;500&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&lt;strong&gt;Texto alternativo para navegadores antiguos&lt;/strong&gt;&amp;lt;/canvas&amp;gt;&lt;/div&gt;    &lt;br&gt;    &lt;br&gt;&lt;h3&gt;Empezar a dibujar&lt;/h3&gt;    Mediante una funci&amp;oacute;n javascript y el m&amp;eacute;todo &amp;quot;getContext&amp;quot; prepararemos el elemento &amp;quot;canvas&amp;quot; para crear gr&amp;aacute;ficos en su interior. &lt;br&gt;var canvas = document.getElementById('dibujo').&lt;strong&gt;getContext&lt;/strong&gt;('2d');&lt;br&gt;    &lt;br&gt;    &lt;strong color="#000"&gt;Ejemplo:&lt;/strong&gt;&lt;code&gt;&lt;pre style="background:#FFF;color:#333;"&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;script&amp;gt;&lt;br /&gt;    function dibujar(){&lt;br /&gt;    var canvas = document.getElementById('dibujo').&lt;strong&gt;getContext&lt;/strong&gt;('2d');&lt;br /&gt;    }&lt;br /&gt;&amp;lt;script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body onload=&amp;quot;dibujar();&amp;quot;&amp;gt;&lt;br /&gt;    &amp;lt;canvas id=&amp;quot;dibujo&amp;quot;&amp;gt;&amp;lt;/canvas&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;	Para generar los diferentes      gr&amp;aacute;ficos iremos a&amp;ntilde;adiendo las funciones que los crean de esta manera:&lt;br&gt;&lt;code&gt;&lt;pre style="background:#FFF;color:#333;"&gt;	&lt;br /&gt;function dibujo(){&lt;br /&gt;    var canvas = document.getElementById(&amp;quot;dibujo&amp;quot;).getContext('2d');&lt;br /&gt;    &lt;br /&gt;    //grafico 1&lt;br /&gt;    &lt;strong&gt;canvas.fillRect(10,10,100,100);&lt;/strong&gt;&lt;br /&gt;    &lt;br /&gt;    //grafico 2&lt;br /&gt;    &lt;strong&gt;canvas.fillRect(50,50,100,50);&lt;/strong&gt;&lt;br /&gt; }&lt;br /&gt;     &lt;/pre&gt;&lt;/code&gt;&lt;h4&gt;Dibujar cuadrados y rect&amp;aacute;ngulos&lt;/h4&gt;    Se pueden crear 3 tipos distintos de rect&amp;aacute;ngulos:    &lt;br&gt;&lt;br&gt;    &lt;strong&gt;fillRect&lt;/strong&gt;(x,y,ancho,alto) - Rect&amp;aacute;ngulo&lt;br&gt;    &lt;strong&gt;strokeRect&lt;/strong&gt;(x,y,ancho,alto) - Borde rectangular &lt;br&gt;    &lt;strong&gt;clearRect&lt;/strong&gt;(x,y,ancho,alto) - Agujero rectangular&lt;br&gt;    &lt;br&gt;    Hay que definir la posici&amp;oacute;n &lt;strong&gt;x&lt;/strong&gt;, &lt;strong&gt;y&lt;/strong&gt;, el &lt;strong&gt;ancho&lt;/strong&gt; y el &lt;strong&gt;alto&lt;/strong&gt;. Por defecto la posici&amp;oacute;n es respecto a la esquina superior izquierda.    &lt;br&gt;    &lt;br&gt;    Ejemplo:&lt;br&gt;&lt;code&gt;&lt;pre style="background:#FFF;color:#333;"&gt;	&lt;br /&gt;function dibujo(){&lt;br /&gt;    var canvas = document.getElementById(&amp;quot;dibujo&amp;quot;).getContext('2d');&lt;br /&gt;    &lt;br /&gt;    //grafico 1&lt;br /&gt;    canvas.strokeRect(10,10,100,100);&lt;br /&gt;    &lt;br /&gt;    //grafico 2&lt;br /&gt;    canvas.fillRect(50,50,100,50);&lt;br /&gt;    &lt;br /&gt;    //grafico 23&lt;br /&gt;    canvas.clearRect(55,55,30,30);&lt;br /&gt;}&lt;br /&gt;    &lt;/pre&gt;&lt;/code&gt;Resultado:&lt;img border="0" height="241" width="400" src="http://1.bp.blogspot.com/-ugCmgRR9sTE/ToNQco7t-rI/AAAAAAAAAHw/jKMqbq-zz3c/s400/canvas.gif" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-7838195358372521113?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/7838195358372521113/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2011/10/crear-graficos-con-canvas-i.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7838195358372521113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7838195358372521113'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2011/10/crear-graficos-con-canvas-i.html' title='Crear gráficos con CANVAS - I'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ugCmgRR9sTE/ToNQco7t-rI/AAAAAAAAAHw/jKMqbq-zz3c/s72-c/canvas.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-1665242415233425596</id><published>2011-10-02T19:15:00.000+02:00</published><updated>2011-10-02T19:15:51.548+02:00</updated><title type='text'>Formatos de vídeo HTML5 soportados por los navegadores</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;b&gt;Firefox:&lt;/b&gt; OGV&lt;/li&gt;&lt;li&gt;&lt;b&gt;Google Chrome:&lt;/b&gt; MP4 y OGV&lt;/li&gt;&lt;li&gt;&lt;b&gt;Safari:&lt;/b&gt; MP4&lt;/li&gt;&lt;li&gt;&lt;b&gt;Internet Explorer 9:&lt;/b&gt; MP4&lt;/li&gt;&lt;li&gt;&lt;b&gt;Opera:&lt;/b&gt; OGV&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Conversor convertidor vídeo gratuito: &lt;a href="http://www.mirovideoconverter.com/"&gt;Miro video converter&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-1665242415233425596?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/1665242415233425596/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2011/10/formatos-de-video-html5-soportados-por.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/1665242415233425596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/1665242415233425596'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2011/10/formatos-de-video-html5-soportados-por.html' title='Formatos de vídeo HTML5 soportados por los navegadores'/><author><name>Rober</name><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-2112907815937797445.post-5590716129801114641</id><published>2011-09-28T10:57:00.000+02:00</published><updated>2011-10-30T21:59:42.347+01:00</updated><title type='text'>Estructura básica de HTML5</title><content type='html'>Ejemplo de construcción de una web con los nuevos elementos incorporados a HTML5.&lt;br /&gt;&lt;br /&gt;&lt;div style="color: #666666; font-style: italic; margin-left: 25px;"&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/b&gt; &lt;br /&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;body&amp;gt;&lt;/b&gt; &lt;br /&gt;&lt;div style="margin-left: 25px;"&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;header&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="margin-left: 25px;"&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;hgroup&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="margin-left: 25px;"&gt;&amp;lt;h1&amp;gt;Titulo 1&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;lt;h2&amp;gt;Titulo 2&amp;lt;/h2&amp;gt;&lt;/div&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;/hgroup&amp;gt;&lt;/b&gt;&lt;/div&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;/header&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;nav&amp;gt;&lt;/b&gt;menu de navegación&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;/nav&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;section&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="margin-left: 25px;"&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;article&amp;gt;&lt;/b&gt;Bloque de texto&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;/article&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;article&amp;gt;&lt;/b&gt;Bloque de texto&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;/article&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;article&amp;gt;&lt;/b&gt;Bloque de texto&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;/article&amp;gt;&lt;/b&gt;&lt;/div&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;/section&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;aside&amp;gt;&lt;/b&gt;Barra lateral, publicidad, citas, información secundaria.&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;/aside&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;footer&amp;gt;&lt;/b&gt;Pie de pagina&lt;br /&gt;&lt;div style="margin-left: 25px;"&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;address&amp;gt;&lt;/b&gt;Autor, fecha creación o contacto&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;/address&amp;gt;&lt;/b&gt;&lt;/div&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;/footer&amp;gt;&lt;/b&gt;&lt;/div&gt;&lt;b style="color: blue; font-style: normal;"&gt;&amp;lt;/body&amp;gt;&lt;/b&gt;&lt;/div&gt;Estos elementos sustituyen al método de maquetación mediante &amp;lt;div&amp;gt;. La ventaja es un código mas limpio y semántico que a su vez mejora los resultados SEO. En todo caso el elemento "div" sigue vigente en HTML5.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-5590716129801114641?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/5590716129801114641/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2011/09/estructura-basica-de-html5.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5590716129801114641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5590716129801114641'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2011/09/estructura-basica-de-html5.html' title='Estructura básica de HTML5'/><author><name>Rober</name><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-2112907815937797445.post-569403300450714666</id><published>2011-09-06T18:52:00.000+02:00</published><updated>2011-09-06T18:52:24.870+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Problema anchura input button en IE6 y 7</title><content type='html'>Hoy me he percatado de que los input type ="button" aparecen con una especie de padding lateral que aumenta en función de la longitud del texto que contenga el botón. Este problema sólo sucede en Internet Explorer 6 y 7 (que raro) y no forzar el margin o padding no funciona.&lt;br /&gt;&lt;br /&gt;La solución:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;input.boton{&lt;br /&gt;&amp;nbsp;&lt;b&gt;overflow: visible;&lt;/b&gt;&lt;br /&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-569403300450714666?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/569403300450714666/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2011/09/problema-anchura-input-button-en-ie6-y.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/569403300450714666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/569403300450714666'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2011/09/problema-anchura-input-button-en-ie6-y.html' title='Problema anchura input button en IE6 y 7'/><author><name>Rober</name><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-2112907815937797445.post-2751517677248985276</id><published>2011-08-31T13:59:00.000+02:00</published><updated>2011-08-31T13:59:43.299+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='body'/><title type='text'>Detectar navegador con javascript y jQuery</title><content type='html'>Con &lt;b&gt;$.browser&lt;/b&gt; de jQuery podemos averiguar rápidamente y sin complicaciones el navegador y la versión.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;$.browser&lt;/b&gt; = navegador&lt;br /&gt;&lt;b&gt;$.browser.version&lt;/b&gt; = versión del navegador&lt;br /&gt;&lt;br /&gt;Navegadores soportados:&lt;br /&gt;webkit&lt;br /&gt;safari&lt;br /&gt;msie&lt;br /&gt;mozilla&lt;br /&gt;opera&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;div style="color: red;"&gt;if(&lt;b&gt;$.browser.msie&lt;/b&gt;){&lt;/div&gt;&lt;div style="color: red;"&gt;alert("Internet Explorer");&lt;/div&gt;&lt;div style="color: red;"&gt;}&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-2751517677248985276?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/2751517677248985276/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2011/08/detectar-navegador-con-javascript-y.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/2751517677248985276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/2751517677248985276'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2011/08/detectar-navegador-con-javascript-y.html' title='Detectar navegador con javascript y jQuery'/><author><name>Rober</name><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-2112907815937797445.post-8769022251698373071</id><published>2011-08-29T19:11:00.004+02:00</published><updated>2011-08-30T17:41:56.192+02:00</updated><title type='text'>Cuenta atrás en PHP</title><content type='html'>Sencillo pero práctico script de php que cuenta cuantos días faltan para la fecha indicada. Para usarlo sólo debemos modificar las variables &lt;i&gt;$hora&lt;/i&gt;, &lt;i&gt;$dia&lt;/i&gt;, &lt;i&gt;$mes&lt;/i&gt; y &lt;i&gt;$ano&lt;/i&gt; con la fecha final y la variable &lt;i&gt;$cuenta_atras&lt;/i&gt; devuelve el resultado en días. Si la fecha ya ha pasado devolverá en 0.&lt;br /&gt;&lt;br /&gt;&lt;div style="color: orange;"&gt;//fecha fin (sin ceros delante y las horas en formato 24 h)&lt;/div&gt;&lt;div style="color: blue;"&gt;$hora = &lt;span style="color: red;"&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div style="color: blue;"&gt;$dia = &lt;span style="color: red;"&gt;21&lt;/span&gt;;&lt;/div&gt;&lt;div style="color: blue;"&gt;$mes = &lt;span style="color: red;"&gt;12&lt;/span&gt;;&lt;/div&gt;&lt;div style="color: blue;"&gt;$ano = &lt;span style="color: red;"&gt;2012&lt;/span&gt;;&lt;/div&gt;&lt;div style="color: red;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;$fin = mktime($hora,0,0,$mes,$dia,$ano);&lt;/div&gt;&lt;div style="color: blue;"&gt;$hoy = mktime(date('H,0,0,m,d,Y')); &lt;/div&gt;&lt;div style="color: red;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;b style="color: black;"&gt;$cuenta_atras&lt;/b&gt; = floor(($fin - $hoy) / 86400);&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;if($cuenta_atras &amp;lt;= 0){&lt;/div&gt;&lt;div style="color: blue;"&gt;$cuenta_atras = 0;&lt;/div&gt;&lt;div style="color: blue;"&gt;}&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-8769022251698373071?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/8769022251698373071/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2011/08/cuenta-atras-en-php.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/8769022251698373071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/8769022251698373071'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2011/08/cuenta-atras-en-php.html' title='Cuenta atrás en PHP'/><author><name>Rober</name><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-2112907815937797445.post-2279677496567627472</id><published>2011-07-21T18:01:00.003+02:00</published><updated>2011-07-21T18:03:25.727+02:00</updated><title type='text'>Tipografías originales en tu web usando font-face</title><content type='html'>Hace algunas semanas os conté como insertar tipografías de google en nuestro site, en está ocasión os hablaré de como hacerlo con cualquier tipografía y sin necesidad de javascript.&lt;br /&gt;La propiedad &lt;b&gt;@font-face&lt;/b&gt; de CSS3 es la que hace posible que el navegador recoja la fuente directamente del servidor. Actualmente, lo soportan casi todos los navegadores, incluido Explorer 6, aunque añadiéndole algunas variantes.&lt;br /&gt;Primero de todo, si queremos que la fuente sea soportada por todos los navegadores, la necesitaremos en formatos: eot (para internet explorer), ttf (para firefox, safari y chrome), svg (otros navegadores). Para generar estos formatos podemos hacer uso de herramientas como la que nos ofrecen en &lt;a href="http://www.fontsquirrel.com/fontface/generator"&gt;http://www.fontsquirrel.com/fontface/generator&lt;/a&gt;.&lt;br /&gt;Una vez tenemos la fuente en todos los formatos, las guardamos en una carpeta de nuestro site, por ejemplo dentro de de la carpeta de los CSS.&lt;br /&gt;A continuación tenemos que crear una hoja de estilos que contenga la propiedad font-face. Font-face le indica al navegador la ruta donde se encuentra la fuente tipográfica:&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;b&gt;@font-face {&lt;/b&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; font-family: &lt;span style="color: #274e13;"&gt;'ChunkFiveRegular'&lt;/span&gt;;&lt;/div&gt;&lt;div style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; src: url(&lt;span style="color: #274e13;"&gt;'../fonts/Chunkfive.eot'&lt;/span&gt;);&lt;/div&gt;&lt;div style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; src: local(&lt;span style="color: #274e13;"&gt;'ChunkFive Regular'&lt;/span&gt;), &lt;/div&gt;&lt;div style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; local(&lt;span style="color: #274e13;"&gt;'ChunkFive'&lt;/span&gt;), &lt;/div&gt;&lt;div style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; url(&lt;span style="color: #274e13;"&gt;'fonts/Chunkfive.woff'&lt;/span&gt;) format(&lt;span style="color: #274e13;"&gt;'woff'&lt;/span&gt;), &lt;/div&gt;&lt;div style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; url(&lt;span style="color: #274e13;"&gt;'fonts/Chunkfive.ttf'&lt;/span&gt;) format(&lt;span style="color: #274e13;"&gt;'truetype'&lt;/span&gt;), &lt;/div&gt;&lt;div style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; url(&lt;span style="color: #274e13;"&gt;'fonts/Chunkfive.svg'&lt;/span&gt;) format(&lt;span style="color: #274e13;"&gt;'svg'&lt;/span&gt;);&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;b&gt;}&lt;/b&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;/div&gt;&lt;br /&gt;Si hacemos uso de generadores, es posible que también nos genere el archivo css.&lt;br /&gt;&lt;i style="color: red;"&gt;Atención, @font-face no funciona si lo ponemos en el HEAD del documento.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Por último creamos otra hoja de estilos donde llamamos a la fuente de la misma forma que lo hariamos con cualquier otra:&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;b&gt;body{&lt;/b&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;font-family:&lt;span style="color: #274e13;"&gt;'ChunkFiveRegular'&lt;/span&gt;;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;b&gt;}&lt;/b&gt;&lt;/div&gt;En el documento deberá enlazarse primero los estilos del font-face y a continuación el resto:&lt;br /&gt;&lt;div style="color: blue;"&gt;&amp;lt;link href="css/fonts.css" rel="stylesheet" type="text/css"&amp;gt;&lt;br /&gt;&amp;lt;link href="css/estilos.css" rel="stylesheet" type="text/css"&amp;gt;&lt;/div&gt;&lt;br /&gt;Cuidado, no abuséis de está propiedad, las tipografías pueden llegar a pesar bastante y el navegador puede trabajar más lentamente de lo habitual.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-2279677496567627472?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/2279677496567627472/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2011/07/tipografias-originales-en-tu-web-usando.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/2279677496567627472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/2279677496567627472'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2011/07/tipografias-originales-en-tu-web-usando.html' title='Tipografías originales en tu web usando font-face'/><author><name>Rober</name><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-2112907815937797445.post-2356436048053690311</id><published>2011-06-27T17:12:00.000+02:00</published><updated>2011-11-24T16:54:39.234+01:00</updated><title type='text'>Estadísticas de google analytics en nuestros e-mailings</title><content type='html'>¿como averiguar la efectividad de una campaña de e-mailing? Sencillo, simplemente añadiendo unos parámetros a los enlaces del e-mailing para que Google Analytics los procese. Previamente, debemos tener una cuenta en &lt;a href="http://www.google.com/intl/es/analytics/"&gt;Google Analytics&lt;/a&gt; con nuestra pagina web de destino activa y su correspondiente script.&lt;br /&gt;Para registrar el origen de los enlaces de entrada a nuestra web, Google nos facilita una &lt;a href="http://www.google.com.uy/support/googleanalytics/bin/answer.py?answer=55578"&gt;herramienta para crear las URL&lt;/a&gt; con los parámetros.&lt;br /&gt;Se admiten hasta 5 parámetros, 3 de ellos obligatorios:&lt;br /&gt;&lt;b&gt;utm_source&lt;/b&gt; (obligatorio) Identificación de la campaña, por ej.: boletin_semanal&lt;br /&gt;&lt;b&gt;utm_medium&lt;/b&gt; (obligatorio) Medio de publicación, por ej.: emailing&lt;br /&gt;&lt;b&gt;utm_term &lt;/b&gt;Palabras clave de la campaña, por ej.: portatil+consolas&lt;br /&gt;&lt;b&gt;utm_content&lt;/b&gt; Contenido de la campaña, por ej.: promocion_navidad&lt;br /&gt;&lt;b&gt;utm_campaign&lt;/b&gt; Nombre de la campaña, por ej.: navidades2011&lt;br /&gt;&lt;br /&gt;Una vez generada la URL sólo queda añadirlas a nuestro e-maling. Si por ejemplo queremos estadísticas de los enlaces que han tenido más clicks, bastará con modificar el parámetro &lt;b&gt;utm_content&lt;/b&gt; o &lt;b&gt;utm_term&lt;/b&gt; para identificar cada uno de los enlaces. Si por ejemplo se trata de un boletín donde se muestran 3 ordenadores, pondremos tres enlaces así:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Ordenador pentium 4&lt;/i&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;span style="color: #666666;"&gt;http://misito.com/pentium4.html&lt;/span&gt;?utm_source=boletin&amp;amp;utm_medium=mailing&amp;amp;utm_term=&lt;b style="color: red;"&gt;pentium&lt;/b&gt;&amp;amp;utm_content=ordenadores&amp;amp;utm_campaign=promo_navidad&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Ordenador Core 2 Duo&lt;/i&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;span style="color: #666666;"&gt;http://misito.com/pentium4.html&lt;/span&gt;?utm_source=boletin&amp;amp;utm_medium=mailing&amp;amp;utm_term=&lt;b&gt;&lt;span style="color: red;"&gt;core_duo&lt;/span&gt;&lt;/b&gt;&amp;amp;utm_content=ordenadores&amp;amp;utm_campaign=promo_navidad&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Ordenador i5&lt;/i&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;span style="color: #666666;"&gt;http://misito.com/pentium4.html&lt;/span&gt;?utm_source=boletin&amp;amp;utm_medium=mailing&amp;amp;utm_term=&lt;b&gt;&lt;span style="color: red;"&gt;i5&lt;/span&gt;&lt;/b&gt;&amp;amp;utm_content=ordenadores&amp;amp;utm_campaign=promo_navidad&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Los resultados, aparecerán de forma automática en tu cuenta de Google Analytics, en el apartado "&lt;b&gt;Campañas&lt;/b&gt;" que está dentro de "&lt;b&gt;Fuentes de tráfico&lt;/b&gt;". Recordar que los resultados no se muestran inmediatamente.&lt;br /&gt;&lt;br /&gt;&lt;img border="0" height="213" src="http://3.bp.blogspot.com/-qkUu5b_wboE/Ts5l3byNyxI/AAAAAAAAAII/4etKNMf4Kd0/s400/analytics.gif" width="400" /&gt;&lt;br /&gt;&lt;br /&gt;Los resultados se pueden clasificar según tipo de campaña, contenido, términos... todo depende de cuantos parámetros tengamos en los enlaces. Esto es especialmente útil si estamos realizando diferentes campañas o incluso si tenemos banners o publicidad en otros sitios que apunten a nuestra web.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-2356436048053690311?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/2356436048053690311/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2011/06/estadisticas-de-google-analytics-en.html#comment-form' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/2356436048053690311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/2356436048053690311'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2011/06/estadisticas-de-google-analytics-en.html' title='Estadísticas de google analytics en nuestros e-mailings'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-qkUu5b_wboE/Ts5l3byNyxI/AAAAAAAAAII/4etKNMf4Kd0/s72-c/analytics.gif' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-1453944176638596796</id><published>2011-06-23T12:08:00.000+02:00</published><updated>2011-06-23T12:08:42.024+02:00</updated><title type='text'>Unificar las URL con o sin www para optimizar resultados SEO</title><content type='html'>Muchos servidores admiten las URL con las www o sin ellas (www.sitio.com o sitio.com), la web mostrada en ambos casos será la misma, sin embargo para los buscadores puede tratarse de 2 paginas distintas. La solución para obtener unos resultados de indexación optimos es unificar en un solo formato de URL.&lt;br /&gt;&lt;br /&gt;Para que la navegación por el site sea siempre con el mismo formato hay que redireccionar a uno de los formatos elegidos.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Redirección de URL con www a URL sin www desde cabecera de archivo PHP:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ($_SERVER["HTTP_HOST"] == '&lt;span style="color: #0b5394;"&gt;www.tusitio.com&lt;/span&gt;') &lt;/span&gt;&lt;br style="color: red;" /&gt;&lt;span style="color: red;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/span&gt;&lt;br style="color: red;" /&gt;&lt;span style="color: red;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;header( "HTTP/1.1 301 Moved Permanently" );&lt;/span&gt;&lt;br style="color: red;" /&gt;&lt;span style="color: red;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;header( "Location: &lt;span style="color: #0b5394;"&gt;http://tusitio.com&lt;/span&gt;".$_SERVER['REQUEST_URI'] ); &lt;/span&gt;&lt;br style="color: red;" /&gt;&lt;span style="color: red;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Desde archivo .htacces:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RewriteEngine On&lt;/span&gt;&lt;br style="color: red;" /&gt;&lt;span style="color: red;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RewriteCond %{HTTP_HOST} ^www.(.*)$&lt;/span&gt;&lt;br style="color: red;" /&gt;&lt;span style="color: red;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RewriteRule ^(.*)$ http://%1/$1 [R=301,L]&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-1453944176638596796?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/1453944176638596796/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2011/06/unificar-las-url-con-o-sin-www-para.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/1453944176638596796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/1453944176638596796'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2011/06/unificar-las-url-con-o-sin-www-para.html' title='Unificar las URL con o sin www para optimizar resultados SEO'/><author><name>Rober</name><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-2112907815937797445.post-3977589550041493507</id><published>2010-12-02T10:52:00.011+01:00</published><updated>2010-12-02T12:23:33.262+01:00</updated><title type='text'>Imágenes PNG con transparencia alpha en Internet Explorer 6</title><content type='html'>Como algunos ya sabréis, Internet Explorer 6 no renderiza correctamente las transparencias alpha de las imágenes PNG 24. Afortunadamente, el propio Microsoft nos ofrece una solución: un filtro CSS. Los filtros CSS sólo funcionan en Explorer, e incluso varían según la versión, pero en este caso sólo nos interesa el Explorer 6.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;div{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/imagen.png', sizing='scale');&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_E31ePWN5DwQ/TPd_YIBKbuI/AAAAAAAAAHM/FlNWj2pOrJE/s400/png-alpha.jpg" alt="Imagen PNG alpha IE 6" id="BLOGGER_PHOTO_ID_5546041070207483618" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Este filtro se puede aplicar en los estilos en linea o en la hoja de estilos, pero cuidado, la ruta a la imágen debe ser absoluta o relativa al documento desde donde se ve la imagen, no relativa a la hoja de estilos como sucede con las imágenes de fondo.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A tener en cuenta&lt;/strong&gt;&lt;br /&gt;La manera que he conseguido que funcione es aplicandola cómo imagen de fondo en un div y después crear una clase para IE6 que elimine la imagen de fondo y aplique el filtro.&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;div{&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;background:url(../imagen.png) no-repeat;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; width:100px;&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;height:100px;&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;}&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;*html div{&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;background:none;&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='imagen.png', sizing='scale');&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-3977589550041493507?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/3977589550041493507/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/12/imagenes-png-con-transparencia-alpha-en.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/3977589550041493507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/3977589550041493507'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/12/imagenes-png-con-transparencia-alpha-en.html' title='Imágenes PNG con transparencia alpha en Internet Explorer 6'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_E31ePWN5DwQ/TPd_YIBKbuI/AAAAAAAAAHM/FlNWj2pOrJE/s72-c/png-alpha.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-4915268536144531197</id><published>2010-11-19T13:32:00.002+01:00</published><updated>2010-11-19T13:46:51.879+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='e-mailing'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Solución problema interlineado en Outlook 2007</title><content type='html'>Los que diseñan y maquetan emails quizás se hallan percatado de que el interlineado en Outlook es mucho mayor del originalmente definido, provocando un descuadre en la maquetación si los textos están muy ajustados al diseño.&lt;br /&gt;&lt;br /&gt;Hace algún tiempo estuve intentando encontrar una solución y no la encontré, hoy finalmente vi la luz.&lt;br /&gt;&lt;br /&gt;Existe una regla de estilo nativa de Microsoft Office que mantiene los altos de linea tal y como los tengamos definidos. Unicamente tendremos el siguiente estilo dentro del "head":&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;style type="text/css"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&amp;lt;!--&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;p{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;mso-line-height-rule:exactly;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;--&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El resto de los estilos los definiremos en linea (la mayoría de gestores no procesan ni hojas de estilos ni los estilos de la cabecera.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-4915268536144531197?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/4915268536144531197/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/11/solucion-problema-interlineado-en.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/4915268536144531197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/4915268536144531197'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/11/solucion-problema-interlineado-en.html' title='Solución problema interlineado en Outlook 2007'/><author><name>Rober</name><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-2112907815937797445.post-2523337798170172888</id><published>2010-10-24T19:27:00.003+02:00</published><updated>2010-10-24T20:55:52.276+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Cambiar icono de blogger en el navegador</title><content type='html'>Para cambiar el icono de blogger por un icono personalizado hay que hacer algunas "trampillas" que sobreescriban el que ya existe. Lo explicaré paso a paso para que lo puedan entender los usuarios sin conocimientos de HTML.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;El logo debe tener extensión "ico" con un tamaño de 16x16 pixels. Se pueden utilizar imágenes jpg o gif directamente cómo icono, pero  algunos navegadores no los soportan, así que no lo recomiendo. Si no tienes ningún programa para crear iconos puedes utilizar herramientas gratuitas online, por ejemplo el generador online de &lt;a href="http://www.genfavicon.com/es/"&gt;genfavicon.com&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Una vez tenemos el gráfico creado, tenemos que subirlo a un hosting propio u otro alternativo distinto al de blogger, porque blogger no nos dejará subir imágenes con este tipo de extensión. Una posibilidad es crearte un sitio en "google sites", es gratis y tardarás un minuto (si tienes hosting propio salta directamente al paso 3):&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cómo crear un sitio en "google sites" y subir un archivo&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Entra a &lt;a href="https://sites.google.com/"&gt;sites.google.com&lt;/a&gt; con tu cuenta de blogger, crea un nuevo sitio, dale el nombre que quieras (la plantilla es lo de menos).&lt;br /&gt;&lt;br /&gt;Entra al sitio que has creado, en la parte superior aparecen los botones de edición, despliega "Más acciones" y pulsa en "Administrar sitio".&lt;br /&gt;&lt;br /&gt;En el menú de la izquierda ves a "Archivos Adjuntos" y por último pulsa en el botón "subir". Te aparecerá un botón de "examinar" donde deberás cargar tu logo con extensión "ico" de 16x16 pixels (puedes subirlo al nivel superior o a otro).&lt;br /&gt;&lt;br /&gt;Una vez cargado te aparecerá en la lista con un enlace directo (Ver y descargar), copia la url de destino de "Ver" (botón derecho del ratón sobre el enlace, y en el desplegable busca copiar acceso directo o copiar ruta del enlace o similar).&lt;br /&gt;&lt;br /&gt;Pega la url copiada en algún editor de texto. Obtendremos algo parecido a esto:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;https://sites.google.com/site/sinprogramar2/favicon.ico?attredirects=0&lt;/span&gt;&lt;br /&gt;Hay que borrar de la url el interrogante y todo lo que viene después, en mí caso queda así:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;https://sites.google.com/site/sinprogramar2/favicon.ico&lt;/span&gt;&lt;br /&gt;Pues este será nuestro enlace a el icono.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Copia el siguiente código y sustituye las "xxx" por la url del icono:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;link href='&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;xxx&lt;/span&gt;' rel='shortcut icon' type='image/x-icon'/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En mí caso queda así:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;link href='&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;https://sites.google.com/site/sinprogramar2/favicon.ico&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;' rel='shortcut icon' type='image/x-icon'/&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Sólo queda añadir este código resultante a nuestra plantilla de blogger en modo HTML (Panel del blog &gt; Diseño &gt; Edición de HTML) justo por encima de la línea que pone &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;. Quedaría así:&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&amp;lt;link href='https://sites.google.com/site/sinprogramar2/favicon.ico' rel='shortcut icon' type='image/x-icon'/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;..&lt;br /&gt;&lt;br /&gt;Guardas los cambios y si vas a ver el blog el icono del navegador debería haber cambiado.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-2523337798170172888?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/2523337798170172888/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/10/cambiar-icono-de-blogger-en-el.html#comment-form' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/2523337798170172888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/2523337798170172888'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/10/cambiar-icono-de-blogger-en-el.html' title='Cambiar icono de blogger en el navegador'/><author><name>Rober</name><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-2112907815937797445.post-6683657874077247856</id><published>2010-09-16T11:53:00.006+02:00</published><updated>2010-09-16T16:05:35.034+02:00</updated><title type='text'>Tipografías libres para tu web con Google Fonts</title><content type='html'>CSS3 permite entre otras cosas utilizar tipografías especiales directamente en el texto sin uso de javascript ni Flash. Para hacerlo posible debemos subir la fuente al servidor y enlazarla desde nuestra hoja de estilos.&lt;br /&gt;&lt;br /&gt;Google nos lo pone aun más fácil y ha creado un directorio de fuentes libres que podemos enlazar directamente desde nuestra web.&lt;br /&gt;&lt;br /&gt;Las tipografías actualmente disponibles:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/_E31ePWN5DwQ/TJH-l49SD8I/AAAAAAAAAG0/xn4pqDttLr8/s400/tipografias-google.gif" alt="Tipografías disponibles de Google Fonts" id="BLOGGER_PHOTO_ID_5517470945403604930" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Os voy a explicar brevemente como enlazar las tipografías de Google para que las podáis utilizar en vuestros proyectos:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Vamos al directorio de &lt;a href="http://code.google.com/webfonts"&gt;Google Fonts&lt;/a&gt; y elegimos la fuente deseada.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;En el menú de opciones de la tipografía pulsamos "Get the code".&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Dentro de "Get the code" podemos seleccionar el estilo de la tipo (no todas tienen esta opción) y justo debajo se genera el "link" que necesitamos.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Copiamos el link generado y lo pegamos en  el "HEAD" de nuestra web, por encima del CSS:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;lt;link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&amp;lt;link href='estilos.css" rel='stylesheet' type='text/css'&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Por último desde la hoja de estilos o desde los estilos en linea hacemos uso de la nueva fuente, en mi caso la "Lobster" y le añado 2 fuentes alternativas para los navegadores que no soporten CSS3 (por ejemplo Internet Explorer 8 e inferiores):&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;body{&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;font-family: 'Lobster', arial, serif;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El ejemplo terminado:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_E31ePWN5DwQ/TJH_bNrceaI/AAAAAAAAAG8/_o8XBHjo5oA/s400/ejemplo-fuentes.gif" id="BLOGGER_PHOTO_ID_5517471861499001250" border="0" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;Si queremos utilizar varias tipografías simultáneamente sólo tenemos que añadir tantos "link" de las fuentes como queramos y crear nuevas clases.&lt;br /&gt;&lt;br /&gt;Por último recordar que sólo los navegadores más modernos tienen soporte para CSS3 (Firefox 3, Safari 4, Google Chrome, Opera 10).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-6683657874077247856?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/6683657874077247856/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/09/tipografias-libres-para-tu-web-con.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/6683657874077247856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/6683657874077247856'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/09/tipografias-libres-para-tu-web-con.html' title='Tipografías libres para tu web con Google Fonts'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_E31ePWN5DwQ/TJH-l49SD8I/AAAAAAAAAG0/xn4pqDttLr8/s72-c/tipografias-google.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-7589101108314440205</id><published>2010-09-15T09:29:00.002+02:00</published><updated>2010-09-15T10:48:21.042+02:00</updated><title type='text'>Cargar CSS distintos según versión de Internet Explorer</title><content type='html'>Si llevas tiempo maquetando ya sabrás que las reglas HTML/CSS no son iguales para todos los navegadores. El asunto es especialmente escandaloso en Internet Explorer 6, un navegador que pese a los años que han pasado desde su lanzamiento, sigue teniendo un considerable número de usuarios. Cuando hablamos de versiones posteriores de Explorer las diferencias respecto a otros  navegadores siguen siendo notables, incluso de una versión a otra hay distintos comportamientos.&lt;br /&gt;&lt;br /&gt;Para corregir diferencias, una de las opciones que tenemos son los condicionales que sólo leen los Internet Explorer. Los condicionales se pueden utilizar tanto para cargar hojas de estilos especificas o estilos en linea. Se añaden dentro del  "HEAD" después de los estilos comunes.&lt;br /&gt;&lt;br /&gt;Ejemplo de condicional para todos los Internet Explorer que carga una hoja de estilo complementaria:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;&amp;lt;!--[if &lt;span style="color: rgb(0, 0, 0);"&gt;IE&lt;/span&gt;]&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&amp;lt;link href="css/explorer.css" rel="stylesheet" type="text/css"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;&amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ejemplo de condicional con estilo en linea para Explorer 6: &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;!--[if &lt;span style="color: rgb(0, 0, 0);"&gt;IE 6&lt;/span&gt;]&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;    &lt;style type="text/css"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        body{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        background-color:#FF0000;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;    &lt;/style&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;&lt;![endif]--&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;&amp;lt;!--[if &lt;span style="color: rgb(0, 0, 0);"&gt;IE 6&lt;/span&gt;]&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&amp;lt;style type="text/css"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;body{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;background-color:#000;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;&amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ejemplo completo:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&amp;lt;title&amp;gt;CSS para explorer&amp;lt;/title&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&amp;lt;link href=&amp;quot;css/estilos.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;lt;!--[if IE]&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;body{&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;background-color:#000;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;lt;/style&amp;gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&amp;lt;p&amp;gt;Contenido&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-7589101108314440205?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/7589101108314440205/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/09/cargar-css-distintos-segun-version-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7589101108314440205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7589101108314440205'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/09/cargar-css-distintos-segun-version-de.html' title='Cargar CSS distintos según versión de Internet Explorer'/><author><name>Rober</name><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-2112907815937797445.post-7595270780992312250</id><published>2010-09-09T17:43:00.002+02:00</published><updated>2010-09-09T18:08:53.957+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Forzar actualización hoja de estilos CSS del usuario</title><content type='html'>A menudo los estilos CSS se quedan almacenados en el cache del navegador durante días o meses, provocando que los cambios posteriores en los mismos no se muestren hasta que el archivo haya sido eliminado de los temporales.&lt;br /&gt;&lt;br /&gt;Una solución sería cambiar el nombre a la hoja de estilos, pero existen otras soluciones  aun es mejores, como por ejemplo añadir un parámetro a la llamada del css:&lt;br /&gt;&lt;br /&gt;&amp;lt;link rel="stylesheet" type="text/css" href="&lt;span style="color: rgb(255, 0, 0);"&gt;css/estilos.css&lt;span style="font-weight: bold;"&gt;?1&lt;/span&gt;&lt;/span&gt;" media="screen" /&amp;gt;&lt;br /&gt;&lt;br /&gt;En este ejemplo se añade "?1" cómo si estuviésemos enviando un parámetro pero las hojas de estilos no reciben los parámetros, pero será suficiente para que el navegador actue cómo si fuera una nueva hoja de estilos.&lt;br /&gt;&lt;br /&gt;En &lt;a href="http://www.skyandstars.net/evitar-el-cache-de-css-y-javascript/"&gt;skyandstars.net&lt;/a&gt; he encontrado una solución mejorada, que consiste en modificar los parámetros añadidos mediante un sencillo script de PHP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-7595270780992312250?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/7595270780992312250/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/09/forzar-actualizacion-hoja-de-estilos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7595270780992312250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7595270780992312250'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/09/forzar-actualizacion-hoja-de-estilos.html' title='Forzar actualización hoja de estilos CSS del usuario'/><author><name>Rober</name><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-2112907815937797445.post-620847417553038665</id><published>2010-07-29T12:44:00.004+02:00</published><updated>2010-07-29T18:30:11.858+02:00</updated><title type='text'>Cargar CSS distintos según dispositivo</title><content type='html'>Podemos cargar diferentes hojas de estilo dependiendo de si la web se está visualizando en un dispositivo móvil o en  un PC gracias al atributo media. Esto nos permitirá adaptar la apariencia de nuestra web sin necesidad de crear 2 versiones del site.&lt;br /&gt;&lt;br /&gt;El atributo &lt;strong&gt;media&lt;/strong&gt; aplica los estilos dependiendo del dispositivo con el que se está navegando. Para los estilos de pantallas de PC y portátiles le ponemos "&lt;strong&gt;screen&lt;/strong&gt;" y para móviles "&lt;strong&gt;handheld&lt;/strong&gt;".&lt;br /&gt;&lt;br /&gt;&lt;p style="color: rgb(255, 0, 0);"&gt;&amp;lt;style type="text/css" media="screen"&amp;gt;...&amp;lt;/style&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;style type="text/css" media="handheld"&amp;gt;...&amp;lt;/style&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Enlazando a hojas de estilo:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="color: rgb(255, 0, 0);"&gt;&amp;lt;link href="estilos.css" rel="stylesheet" type="text/css" media="screen" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;link href="movil.css" rel="stylesheet" type="text/css" media="handheld" /&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Algunos valores para media:&lt;/strong&gt;&lt;br /&gt;all: &lt;em&gt;Todos&lt;/em&gt;&lt;br /&gt;screen: &lt;em&gt;pantallas de PC&lt;/em&gt;&lt;br /&gt;handheld: &lt;em&gt;móviles&lt;/em&gt;&lt;br /&gt;print: &lt;em&gt;impresoras&lt;/em&gt;&lt;br /&gt;projection: &lt;em&gt;proyectores&lt;/em&gt;&lt;br /&gt;tv: &lt;em&gt;televisores&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-620847417553038665?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/620847417553038665/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/07/cargar-css-distintos-segun-dispositivo.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/620847417553038665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/620847417553038665'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/07/cargar-css-distintos-segun-dispositivo.html' title='Cargar CSS distintos según dispositivo'/><author><name>Rober</name><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-2112907815937797445.post-6636729655538202483</id><published>2010-07-20T12:05:00.005+02:00</published><updated>2010-07-29T12:30:14.544+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Quitar bordes redondeados de los input en iphone</title><content type='html'>Adaptando una web a iphone me he dado cuenta que los input de formulario aparecen con las esquinas redondeadas, cosa que no siempre nos puede interesar, especialmente en los "input image". Pero con la ayuda de CSS podemos hacer que las esquinas de los input en iphone sean rectas.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;input{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;      -moz-border-radius: 0px;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para eliminar el sombreado de fondo nos puede servir:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;input{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-webkit-appearance: textarea;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-6636729655538202483?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/6636729655538202483/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/07/quitar-bordes-redondeados-de-los-input.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/6636729655538202483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/6636729655538202483'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/07/quitar-bordes-redondeados-de-los-input.html' title='Quitar bordes redondeados de los input en iphone'/><author><name>Rober</name><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-2112907815937797445.post-5466823482255401104</id><published>2010-07-12T15:54:00.004+02:00</published><updated>2010-07-12T16:38:40.822+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Averiguar ancho y alto del navegador con jQuery</title><content type='html'>Con jQuery averiguar el alto y ancho del navegador cliente es tan simple como esto:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;$(window).width();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;$(window).height();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Si queremos saber el tamaño del HTML independientemente de lo que se está visualizando:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;$(document).width();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;$(document).height();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Simple ¿no?&lt;br /&gt;&lt;br /&gt;Puedes ver más detalles &lt;a href="http://api.jquery.com/width/"&gt;aquí&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-5466823482255401104?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/5466823482255401104/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/07/averiguar-ancho-y-alto-del-navegador.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5466823482255401104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5466823482255401104'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/07/averiguar-ancho-y-alto-del-navegador.html' title='Averiguar ancho y alto del navegador con jQuery'/><author><name>Rober</name><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-2112907815937797445.post-5148500801478649294</id><published>2010-04-09T09:34:00.002+02:00</published><updated>2010-04-09T09:46:41.488+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Las teclas rápidas de windows más útiles</title><content type='html'>Para los que trabajamos todo el día con windows estas combinaciones de teclas nos permitirán ahorrar unos segundos en las tareas más repetitivas. Merece la pena memorizar algunas de ellas.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Escritorio&lt;/strong&gt; = windows + D&lt;br /&gt;&lt;strong&gt;Equipo&lt;/strong&gt; = windows + E&lt;br /&gt;&lt;strong&gt;Cambio de usuario&lt;/strong&gt; = windows + L&lt;br /&gt;&lt;strong&gt;Buscador&lt;/strong&gt; = windows + F&lt;br /&gt;&lt;strong&gt;Ventana ejecutar&lt;/strong&gt; = windows + R&lt;br /&gt;&lt;strong&gt;copiar&lt;/strong&gt; = control + C&lt;br /&gt;&lt;strong&gt;cortar&lt;/strong&gt; = control + X&lt;br /&gt;&lt;strong&gt;pegar&lt;/strong&gt; = control + V&lt;br /&gt;&lt;strong&gt;borrar sin pasar por la papelera&lt;/strong&gt; = MAY + SUP&lt;br /&gt;&lt;strong&gt;Deshacer último cambio&lt;/strong&gt; = control + Z&lt;br /&gt;&lt;strong&gt;Menu de programas abiertos&lt;/strong&gt; = ALT + TABULADOR&lt;br /&gt;&lt;strong&gt;Seleccionar todos los archivos&lt;/strong&gt; = control + E&lt;br /&gt;&lt;strong&gt;Ventana nueva&lt;/strong&gt; = control + N (hace una copia de la ventana actual)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-5148500801478649294?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/5148500801478649294/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/04/las-teclas-rapidas-de-windows-mas.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5148500801478649294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5148500801478649294'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/04/las-teclas-rapidas-de-windows-mas.html' title='Las teclas rápidas de windows más útiles'/><author><name>Rober</name><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-2112907815937797445.post-5722125804266034130</id><published>2010-03-26T11:10:00.006+01:00</published><updated>2010-03-26T13:12:38.281+01:00</updated><title type='text'>Impedir entrada de virus desde pendrive/USB</title><content type='html'>Nuevamente me he encontrado una máquina infectada por un virus que se introdujo en el sistema desde un pendrive. Y es que hay que ir con mucho cuidado con lo que conectamos en nuestro PC.&lt;br /&gt;&lt;br /&gt;Este tipo de virus entran en nuestro sistema a través de un archivo oculto de autorun que se encarga de ejecutar el virus.&lt;br /&gt;&lt;br /&gt;La solución es tan simple como desactivar el autorun para dispositivos extraibles. Esto nos permitirá utilizar cualquier pendrive sin peligro de infección.&lt;br /&gt;&lt;br /&gt;&lt;strong style="color: rgb(51, 51, 51);"&gt;Desactivar el &lt;span style="font-style: italic;"&gt;autorun&lt;/span&gt; (reproducción automática) en windows xp:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Menu de inicio &gt; Ejecutar&lt;br /&gt;&lt;br /&gt;Escribimos: &lt;span property="dc:content"&gt;gpedit.msc&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span property="dc:content"&gt;Configuración del equipo &gt; Plantillas administrativas &gt; Sistema&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En en listado buscamos: &lt;span style="font-style: italic;"&gt;Desactivar reproducción automática &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Clicamos sobre ella y le decimos &lt;span style="font-style: italic;"&gt;Habilitar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="color: rgb(51, 51, 51);"&gt;Desactivar el &lt;span style="font-style: italic;"&gt;autorun&lt;/span&gt; (reproducción automática) en windows vista y  windows 7:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;1. Opción desde el panel de control:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Menu de inicio &gt; Panel de control &gt; Hardware y sonido &gt; Cambiar la configuración preterminada de medios y dispositivos&lt;br /&gt;&lt;br /&gt;En la lista marcamos estas opciones:&lt;br /&gt;&lt;br /&gt;Software y juegos = Preguntar cada vez&lt;br /&gt;Contenido mixto = Abrir la carpeta...&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;2. Opción desde el registro:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Menu de inicio &gt; Escribimos en el buscador: &lt;span property="dc:content"&gt;gpedit.msc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Configuración del equipo &gt; Plantillas administrativas &gt; Sistema &gt; Acceso de almacenamiento extraíble&lt;br /&gt;&lt;br /&gt;En el listado buscamos &gt; Discos extraíbles: denegar acceso de ejecución&lt;br /&gt;&lt;br /&gt;Clicamos y lo marcamos como &lt;span style="font-style: italic;"&gt;Habilitada&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-5722125804266034130?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/5722125804266034130/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/03/impedir-entrada-de-virus-desde.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5722125804266034130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5722125804266034130'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/03/impedir-entrada-de-virus-desde.html' title='Impedir entrada de virus desde pendrive/USB'/><author><name>Rober</name><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-2112907815937797445.post-8080670235980209221</id><published>2010-03-16T17:24:00.005+01:00</published><updated>2010-03-16T18:37:04.009+01:00</updated><title type='text'>Sombreados con  CSS para todos los navegadores</title><content type='html'>Ya es posible añadir bordes sombreados a nuestro HTML y de forma automática gracias a las recientes actualizaciones de Firefox y Safari. Para Internet Explorer los filtros nos dan su resultado equivalente.&lt;br /&gt;&lt;br /&gt;Para aplicar un sombreado lo mejor es hacer un div que contenga por un lado el contenido y por otro un div que le aplicaremos el sombreado.&lt;br /&gt;&lt;br /&gt;&lt;img style="cursor: pointer; width: 350px; height: 280px;" src="http://3.bp.blogspot.com/_E31ePWN5DwQ/S5-92_FKJmI/AAAAAAAAAGk/MUqpiXmeibE/s400/sombreado.gif" alt="" id="BLOGGER_PHOTO_ID_5449282826485245538" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &amp;lt;head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;lt;style type="text/css"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;.sombra{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;box-shadow: 4px &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;4px&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;4px&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; #666;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-moz-box-shadow: &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;4px&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;4px&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;4px&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; #666;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-webkit-box-shadow:&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; 4px&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;4px&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;4px&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; #666;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;filter:progid:DXImageTransform.Microsoft.Blur(pixelRadius=3,MakeShadow=true,ShadowOpacity=0.5);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-ms-filter: "progid:DXImageTransform.Microsoft.Blur(pixelRadius=3,MakeShadow=true,ShadowOpacity=0.5)";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;background: #666;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;width:200px;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;height:200px;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;z-index:1;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;  .caja{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;width:200px;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;height:200px;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;position:relative;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;margin:20px;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;  .contenido{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;width:200px;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;height:200px;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;position:absolute;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;z-index:2;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;background-color:#FFF;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="color: rgb(0, 0, 153); font-family: arial;"&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;div class="caja"&amp;gt;&lt;br /&gt;&amp;lt;div class="contenido"&amp;gt;Bla bla bla bla bla bla bla bla bla bla bla bla bla&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div class="sombra"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/p&gt;La caja contenedora tiene un posicionamiento relativo y el contenido y la sombra posición absoluta. Esto nos permite posicionar la sombra en el fondo con un &lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;z-index:1&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Se puede variar la oscuridad y longitud de la sombra modificando la clase sombra. Hay que tener en cuenta cada linea actúa sobre un navegador distinto.&lt;br /&gt;&lt;br /&gt;También remarcar que sólo funcionan para las últimas versiones de Firefox, Safari y para Explorer 6 y superiores.&lt;br /&gt;&lt;br /&gt;Podéis ver este y otros efectos de CSS3 en &lt;a href="http://css3please.com/"&gt;css3please.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-8080670235980209221?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/8080670235980209221/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/03/sombreados-con-css-para-todos-los.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/8080670235980209221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/8080670235980209221'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/03/sombreados-con-css-para-todos-los.html' title='Sombreados con  CSS para todos los navegadores'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_E31ePWN5DwQ/S5-92_FKJmI/AAAAAAAAAGk/MUqpiXmeibE/s72-c/sombreado.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-4076050092751039673</id><published>2010-02-25T13:52:00.003+01:00</published><updated>2010-02-25T15:51:03.571+01:00</updated><title type='text'>Cerrar y redireccionar pagina padre con javascript</title><content type='html'>Abro un popup y quiero que al pulsar un enlace se cierre el popup y que la pagina que abrió el popup se redireccione a otra pagina. Esto se puede hacer muy fácilmente con javascript.&lt;br /&gt;&lt;br /&gt;En el head del documento colocamos el script:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;redireccionar = function(){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;opener.location.href&lt;/span&gt;="&lt;span style="color: rgb(51, 102, 255);"&gt;http://dominio.com/pagina.html&lt;/span&gt;";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;window.close&lt;/span&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;};&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;De este script sólo tenemos que cambiar la URL de destino.&lt;br /&gt;&lt;br /&gt;Y en el enlace colocamos la llamada a la función al hacer click:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&amp;lt;a href="#" onclick="&lt;span style="font-weight: bold;"&gt;redireccionar()&lt;/span&gt;"&amp;gt;pincha aquí&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-4076050092751039673?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/4076050092751039673/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/02/cerrar-y-redireccionar-pagina-padre-con.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/4076050092751039673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/4076050092751039673'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/02/cerrar-y-redireccionar-pagina-padre-con.html' title='Cerrar y redireccionar pagina padre con javascript'/><author><name>Rober</name><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-2112907815937797445.post-5720217641038811507</id><published>2010-02-24T18:09:00.007+01:00</published><updated>2010-02-24T18:50:59.554+01:00</updated><title type='text'>Estadisticas uso dispositivos moviles Web</title><content type='html'>Desde la aparición del Iphone el uso del móvil en la navegación Web no para de crecer, pese a eso aun están muy lejos del Windows y el Mac tradicionales.&lt;br /&gt;&lt;br /&gt;Cifras correspondientes al tráfico a nivel mundial el mes de enero del 2010 por sistemas operativos:&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Iphone: 0,48%&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Symbian: 0,24%&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Android: 0,06%&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_E31ePWN5DwQ/S4VfYE1W9mI/AAAAAAAAAGc/4V7bu5q8V5k/s1600-h/estadisticas.gif"&gt;&lt;img style="cursor: pointer; width: 400px; height: 376px;" src="http://2.bp.blogspot.com/_E31ePWN5DwQ/S4VfYE1W9mI/AAAAAAAAAGc/4V7bu5q8V5k/s400/estadisticas.gif" alt="" id="BLOGGER_PHOTO_ID_5441860591966156386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-size:70%;" &gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Fuente: &lt;/span&gt;&lt;a href="http://marketshare.hitslink.com/"&gt;http://marketshare.hitslink.com/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Quizás en el futuro el móvil desbanque al PC de toda la vida en el uso de internet. De momento falta mucho para ese día.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-5720217641038811507?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/5720217641038811507/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/02/estadisticas-uso-dispositivos-moviles.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5720217641038811507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5720217641038811507'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/02/estadisticas-uso-dispositivos-moviles.html' title='Estadisticas uso dispositivos moviles Web'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_E31ePWN5DwQ/S4VfYE1W9mI/AAAAAAAAAGc/4V7bu5q8V5k/s72-c/estadisticas.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-5623594485260788303</id><published>2010-02-03T12:02:00.005+01:00</published><updated>2010-02-03T16:46:22.385+01:00</updated><title type='text'>Guia rápida accesibilidad A/AA/AAA</title><content type='html'>&lt;p&gt;La accesibilidad web no tiene otro objetivo que facilitar la navegación web a personas con problemas visuales y también auditivos que generalmente utilizan software especial para leer y navegar por el contenido.&lt;br /&gt;Desarrollar una web accesible tiene además la ventaja añadida de que son más fácilmente indexados por los buscadores.&lt;br /&gt;&lt;br /&gt;Existen webs para comprobar la accesibilidad, y aunque pueden ser útiles para localizar determinados errores personalmente creo que no van a determinar si una web está siendo realmente accesible. Por ejemplo, un validador no va a ser capaz de valorar si el contenido tiene un orden coherente. Algo que con los estilos css esta perfectamente organizado y distribuido puede perder todo el sentido al quitarle los css e imágenes (que es lo que hará un lector de pantalla).&lt;br /&gt;&lt;br /&gt;Existen 3 niveles de accesibilidad &lt;strong&gt;A&lt;/strong&gt;, &lt;strong&gt;AA&lt;/strong&gt;, &lt;strong&gt;AAA&lt;/strong&gt;. El nivel se determina según las pautas ya establecidas que cumple. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; Resumen de las pautas:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt; &lt;strong&gt;A&lt;/strong&gt;&lt;br /&gt; &lt;/p&gt;&lt;ol&gt;&lt;br /&gt;     &lt;li&gt;Imágenes con texto alternativo (&lt;strong&gt;alt&lt;/strong&gt;)&lt;/li&gt;&lt;li&gt;Contenido multimedia: Se proporciona &lt;strong&gt;contenido descriptivo alternativo&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;El contenido debe tener un &lt;strong&gt;orden de lectura&lt;/strong&gt; no dependiente del diseño o estilos&lt;/li&gt;&lt;li&gt;El contenido no debe depender de colores y debe ser&lt;strong&gt; fácilmente distinguible del fondo&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Las funcionalidades de la pagina deben ser accesibles desde el teclado&lt;/li&gt;&lt;li&gt;Sin más de 3 destellos o cambios de imagen por segundo&lt;/li&gt;&lt;li&gt;Títulos descriptivos en cada pagina&lt;/li&gt;&lt;li&gt;Sistema para saltar de bloques de contenido y navegación secuencial&lt;/li&gt;&lt;br /&gt; &lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;AA&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;br /&gt;     &lt;li&gt;Debe cumplir las pautas del &lt;strong&gt;nivel A&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Subtítulos&lt;/strong&gt; para el contenido multimedia con audio&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Contenido alternativo descriptivo&lt;/strong&gt; para contenido multimedia con vídeo&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Contraste alto&lt;/strong&gt; entre fondo y texto (al menos 4,5:1)&lt;/li&gt;&lt;li&gt;Se puede variar tamaño de &lt;strong&gt;fuente hasta un 200%&lt;/strong&gt; sin perdida de funcionalidad&lt;/li&gt;&lt;li&gt;Encabezados descriptivos&lt;/li&gt;&lt;li&gt;Al menos dos formas distintas para navegar por el site&lt;/li&gt;&lt;li&gt;En los envíos de información confidencial debe existir un sistema para corregir, retroceder o  advertencia de error y que te permita corregirlo.&lt;/li&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;AAA&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;br /&gt;  &lt;li&gt;Debe cumplir con las pautas del &lt;strong&gt;nivel A y AA&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Lenguaje de signos&lt;/strong&gt; para el contenido multimedia con audio&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Descripción completa&lt;/strong&gt; para el contenido multimedia con vídeo&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Contraste muy alto&lt;/strong&gt; entre fondo y texto (al menos 7,1:1)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Contenidos multimedia sin audio&lt;/strong&gt; de fondo (sólo locución principal)&lt;/li&gt;&lt;li&gt;La pagina debe poseer un sistema para que el usuario pueda cambiar los colores de texto y fondo, limitar las lineas a 80 caracteres, alto de linea y tamaño de fuente. Todo ello sin que sea necesario utilizar el scroll horizontal para poder ver todo el contenido&lt;/li&gt;&lt;li&gt;Las imágenes con texto sólo pueden utilizarse para decorar.&lt;/li&gt;&lt;li&gt;Las funcionalidades de la pagina deben ser accesibles desde el teclado sin ningún tipo de excepción&lt;/li&gt;&lt;li&gt;Reanudación de sesión: Cuando un expira la sesión el usuario puede volver a reanudar sesión sin perdida de datos&lt;/li&gt;&lt;li&gt;Se proporciona al usuario información sobre su situación en la pagina&lt;/li&gt;&lt;li&gt;Texto descriptivo sobre el destino de cada enlace&lt;/li&gt;&lt;li&gt;Encabezados en cada sección&lt;/li&gt;&lt;li&gt;Definir el idioma de la pagina&lt;/li&gt;&lt;li&gt;En todos los envíos de información sistema debe existir un sistema para corregir, retroceder o  advertencia de error y que te permita corregirlo&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;Se pueden consultar todas las pautas en detalle y con sus excepciones &lt;a href="http://www.codexexempla.org/traducciones/pautas-accesibilidad-contenido-web-2.0.htm"&gt;aquí&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-5623594485260788303?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/5623594485260788303/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/02/guia-rapida-accesibilidad-aaaaaa.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5623594485260788303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5623594485260788303'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/02/guia-rapida-accesibilidad-aaaaaa.html' title='Guia rápida accesibilidad A/AA/AAA'/><author><name>Rober</name><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-2112907815937797445.post-8906898715729025819</id><published>2010-01-23T00:50:00.003+01:00</published><updated>2010-01-23T01:14:48.242+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Solución problema mostrar archivos ocultos</title><content type='html'>Recientemente  tuve la necesidad de explorar los archivos de un pendrive, así que desde las opciones de carpeta le marque "mostrar carpetas y archivos ocultos". El problema fue que seguía sin mostrármelos, y las opciones de carpeta no conservaban el cambio. Esto está causado por un virus que nos  a modificado el registro de windows.&lt;br /&gt;&lt;br /&gt;Para solucionar este problema, lo primero es hacer un scaneo completo con el antivirus, y despues hacemos lo siguiente para recuperar esta opción de carpeta:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Inicio &gt; Ejecutar &gt;&lt;/span&gt; Escribimos: &lt;span style="color: rgb(255, 0, 0);"&gt;regedit &gt; Aceptar &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nos aparecerá la ventana del editor del registro de windows, ahí seguimos la siguiente ruta:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;HKEY_LOCAL_MACHINE &gt; SOFTWARE &gt;Microsoft &gt; Windows &gt; CurrentVersion &gt; Explorer &gt; Advanced &gt; Folder &gt; Hidden &gt; SHOWALL &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pulsamos sobre la carpeta "SHOWALL" y en la información que muestra a la derecha hacemos doble click sobre "CheckedValue" y en la ventana que aparecé cambiamos su a valor a &lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Ahora la opción de mostrar los archivos ocultos ya estará activa y sólo tendremos que activarla desde el menú de opciones de carpeta. Esto sirve tanto para windows XP como en VISTA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-8906898715729025819?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/8906898715729025819/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2010/01/solucion-problema-mostrar-archivos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/8906898715729025819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/8906898715729025819'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2010/01/solucion-problema-mostrar-archivos.html' title='Solución problema mostrar archivos ocultos'/><author><name>Rober</name><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-2112907815937797445.post-3634914749488001858</id><published>2009-11-18T13:43:00.003+01:00</published><updated>2010-07-29T12:02:55.648+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Botones input "submit" con rollover</title><content type='html'>Crear botones con rollover es muy sencillo, pero la cosa se complica con botones input para formulario. Para estos casos la mejor opción es el uso de input type="image" combinado con unos sencillos eventos de javascript.&lt;br /&gt;&lt;br /&gt;Creamos 2 imágenes con los 2 estados del botón y le ponemos la ruta en el src a la imagen en reposo. Después le añadimos los eventos &lt;strong&gt;onmouseover&lt;/strong&gt; (encima del botón) y &lt;strong&gt;onmouseout&lt;/strong&gt; (fuera). Por último añadimos &lt;span style="font-weight: bold;"&gt;value="Submit"&lt;/span&gt; para que envíe el formulario.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;input type="image"&lt;span style="font-weight: bold;"&gt; src&lt;/span&gt;="img/boton_off.gif" &lt;span style="font-weight: bold;"&gt;onmouseout&lt;/span&gt;="javascript:this.src=img/boton_off.gif'" &lt;span style="font-weight: bold;"&gt;onmouseover&lt;/span&gt;="javascript:this.src='img/boton_on.gif'" value="Submit"   /&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Esto de podría hacer con estilos, pero en IE 6 obtendremos resultados indeseados.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-3634914749488001858?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/3634914749488001858/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/11/botones-input-submit-con-rollover.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/3634914749488001858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/3634914749488001858'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/11/botones-input-submit-con-rollover.html' title='Botones input &quot;submit&quot; con rollover'/><author><name>Rober</name><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-2112907815937797445.post-5112160417375952096</id><published>2009-10-22T13:38:00.005+02:00</published><updated>2009-10-22T14:08:21.445+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><category scheme='http://www.blogger.com/atom/ns#' term='metatags'/><title type='text'>Guia de meta etiquetas (metatags)</title><content type='html'>Redireccionamiento a otra pagina:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta  http-equiv="refresh"  content="0 url=http://www.nuevaurl.com" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;tiempo en segundos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Rastreo de todos los vinculos de la web:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta  name="robots" content="all" /&amp;gt;&lt;/span&gt;&lt;br /&gt;valores:&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;all, none, index, no  index, follow, no follow&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Fecha de caducidad de la  pagina:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta  http-equiv="expires" content="Wed, 27 july 2001 24:00:00  GMT" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Autor:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta  name="author" content="petito" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tema principal de la pagina:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta  name="subject" content="diseño web" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Descripción:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta  name="description" content="diseño web y multimedia" / &amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Palabras claves:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta  name="keywords" content="diseño web, creaciones multimedia, ilustracion, posicionamiento" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Programa utilizado en el desarrollo:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta  name="generator" content="nvu" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Lenguaje del sitio:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta  name="language" content="spanish" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Frecuencia de rastreo de los robots:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta  name="revisit" content="30 days" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Alcance de la web:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta  name="Distribution" content="Local" /&amp;gt; &lt;/span&gt;&lt;br /&gt;valores: &lt;span style="color: rgb(153, 153, 153);"&gt;Local, Global&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Clasificación  tématica:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta  name="classification" content="creaciones web" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Meta que marca como pagina superior evitando  que se abra dentro de otras webs (marcos o iframes):&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta http-equiv="window-target" content="_top" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Titulo de página (no se muestra en el navegador)&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta name="title"  content="diseño web" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para que no se guarde en caché:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta http-equiv="expires"  content="0" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta http-equiv="pragma"  content="no cache" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Indexación de los robots de la pagina actual y siguientes:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta name="robot"  content="noindex,follow" /&amp;gt;&lt;/span&gt;&lt;br /&gt;valores:&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;"index,follow" //indexa y sigue&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;"index,nofollow" //indexa y no sigas&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;"noindex,nofollow" //no indexes y no sigas&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-5112160417375952096?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/5112160417375952096/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/10/guia-de-meta-etiquetas-metatags.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5112160417375952096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5112160417375952096'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/10/guia-de-meta-etiquetas-metatags.html' title='Guia de meta etiquetas (metatags)'/><author><name>Rober</name><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-2112907815937797445.post-3192852283223403909</id><published>2009-10-07T12:51:00.004+02:00</published><updated>2009-10-07T13:34:08.003+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Abrir nueva ventana con javascript</title><content type='html'>Voy a explicar como abrir una nueva ventana del navegador con dimensiones definidas. Algo que para un programador no tiene ningún misterio, pero para el resto es algo útil que probablemente no sepan como hacer.&lt;br /&gt;&lt;br /&gt;Para abrir la nueva ventana vamos a hacer uso de una pequeña función de javascript que personalizaremos desde el enlace.&lt;br /&gt;&lt;br /&gt;La función:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;strong&gt;function&lt;/strong&gt; abrir_ventana(&lt;i&gt;url,nombre,dimensiones&lt;/i&gt;){&lt;br /&gt;&lt;strong&gt;window.open&lt;/strong&gt;(&lt;i&gt;url,nombre,dimensiones&lt;/i&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El enlace que abre la nueva ventana:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;a href="#" &lt;strong&gt;onclick&lt;/strong&gt;="abrir_ventana(&lt;i&gt;'http://google.es','buscador','width=300,height=200'&lt;/i&gt;)"&gt;Buscador &amp;lt;/a&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Para ejecutar la función he añadido un evento de "onclick" al enlace donde llama la función y dentro de los paréntesis se definen los 3 parámetros (la URL, un nombre identificador y las dimensiones).&lt;br /&gt;&lt;br /&gt;Para añadirlo en tu página debes incluir la función dentro del "HEAD" y personalizar los parámetros del enlace.&lt;br /&gt;&lt;br /&gt;Ejemplo completo:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&amp;lt;script type="text/JavaScript"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;br /&gt;function abrir_ventana(url,nombre,dimensiones){&lt;br /&gt;window.open(url,nombre,dimensiones);&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&amp;lt;a href="#" onclick="abrir_ventana('http://google.es','buscador','width=300,height=200')"&amp;gt;Buscador&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&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/2112907815937797445-3192852283223403909?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/3192852283223403909/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/10/abrir-nueva-ventana-con-javascript.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/3192852283223403909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/3192852283223403909'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/10/abrir-nueva-ventana-con-javascript.html' title='Abrir nueva ventana con javascript'/><author><name>Rober</name><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-2112907815937797445.post-7128836606785924872</id><published>2009-06-19T13:46:00.007+02:00</published><updated>2009-06-22T11:18:41.137+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='e-mailing'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Reglas de maquetación de e-mails HTML</title><content type='html'>E-mails bien maquetados en HTML, con textos e imágenes es un tema básico para las grandes empresas que realizan campañas de e-mailing. Un e-mail incorrectamente maquetado puede convertir la campaña en un desastre. Este es un tema con poca información, pero si te interesa entonces es tu día de suerte.&lt;br /&gt;&lt;br /&gt;La maquetación de e-mailings es una de mis principales tareas desde hace 2 años. Durante este tiempo, a causa de la poca información disponible, he tenido que ir aprendiendo a base de prueba y error. A día de hoy puedo considerar que se algo del tema.&lt;br /&gt;&lt;br /&gt;Una maquetación HTML para una web no tendría porque ser distinta para un e-mail, pero si lo es. El problema principal de los e-mails en HTML es que no se ven igual a través del gestor de correo (hotmail, gmail, yahoo, mozilla thunderbird, outlook, ect...) que directamente en un navegador. Tampoco se ven igual en todos los navegadores aun utilizando el mismo gestor. La razón es que los gestores filtran el código y lo reformatean para evitar amenazas de seguridad, spam y mejorar su usabilidad.&lt;br /&gt;&lt;br /&gt;Con los e-mails HTML se crea un submundo que no entiende de standares web ni nada por el estilo. Nuevamente el diseñador debe sacrificar su trabajo para conseguir un resultado aceptable en el mayor número posible de gestores.&lt;br /&gt;&lt;br /&gt;Estas son algunas de las normas básicas que aplico a la maquetación de e-mailings:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Nada de scripts, enlaces a hojas de estilo, styles en &lt;strong&gt;&amp;lt;head&amp;gt;&lt;/strong&gt;... nada de nada. El contenido del &amp;lt;head&amp;gt; lo eliminan la mayoría de gestores, especialmente los gestores on-line.&lt;/li&gt;&lt;li&gt;Flash, javascript y similares no se muestran y además  puede hace creer al gestor de correo que nuestro e-mail es una amenaza acabando en la bandeja de correo basura o con el contenido bloqueado.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Los estilos CSS se pueden utilizar, pero siempre y cuando sean en linea, pero olvidaros de una maquetación con DIVs y similares. Lo mejor son las tablas.&lt;/li&gt;&lt;li&gt;Los gestores de correo añaden por defecto margenes, colores, alineamientos, interlineados... y si queremos que se conserve la apariencia visual hay que definir todas estas propiedades.&lt;/li&gt;&lt;li&gt;No utilizar imágenes de fondo, algunos gestores las eliminan.&lt;/li&gt;&lt;li&gt;Para evitar que las composiciones con imágenes se rompan hay que definir alturas y anchuras de las celdas que los contienen y añadir dentro de las propiedades del IMG un &lt;span style="color:#0000ad;"&gt;style="display:block"&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Algunos gestores como Outlook 2007 aplican un interlineado por defecto que no podemos redefinir. Para evitar problemas haz composiciones que permitan un interlineado flexible.&lt;/li&gt;&lt;li&gt;Las imágenes siempre deben subirse a un servidor y enlazarlas en absoluto.&lt;/li&gt;&lt;/ol&gt;En próximos post dare más detalles sobre el diseño y la maquetación de e-mailings en HTML.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-7128836606785924872?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/7128836606785924872/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/06/reglas-de-maquetacion-de-e-mails-html.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7128836606785924872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7128836606785924872'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/06/reglas-de-maquetacion-de-e-mails-html.html' title='Reglas de maquetación de e-mails HTML'/><author><name>Rober</name><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-2112907815937797445.post-7210332251162895325</id><published>2009-06-18T13:02:00.007+02:00</published><updated>2009-06-30T16:08:03.381+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Transparencias con CSS compatibles con todos los navegadores</title><content type='html'>Hace tiempo que existe la opción de variar la opacidad de los elementos mediante CSS para crear transparencias, pero esta propiedad se aplica de distinta forma según el navegador y su versión.&lt;br /&gt;&lt;br /&gt;Aquí resumo como utilizar las transparencias en todos los navegadores:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ad;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-moz-opacity: 0.5;&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102);"&gt;/*solo Firefox*/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;opacity:.50; &lt;span style="color: rgb(102, 102, 102);"&gt;/*Versiones actuales de Firefox, Chrome, Opera y Safari*/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;filter: Alpha(Opacity=50); &lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;/*Explorer 6, 7*&lt;/span&gt;/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-ms-filter:'alpha (opacity=50)'; &lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;/*Explorer 8*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-khtml-opacity: 0.5; &lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;/*solo Safari*&lt;/span&gt;/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Este ejemplo crea una transparencia del 50%. Cuanto más alto es el valor menos transparente será. El valor va de &lt;span style="font-weight: bold;"&gt;0&lt;/span&gt; a &lt;span style="font-weight: bold;"&gt;1&lt;/span&gt; para opacity , moz-opacity y khtml-opacity, y de &lt;span style="font-weight: bold;"&gt;0&lt;/span&gt; a &lt;span style="font-weight: bold;"&gt;100&lt;/span&gt; en Alpha(opacity).&lt;br /&gt;&lt;br /&gt;Los navegadores actuales se han puesto todos de acuerdo para funcionar con "&lt;span style="color: rgb(255, 0, 0);"&gt;opacity:.50&lt;/span&gt;" excepto Internet Explorer. Para asegurarte que funcione en todos los navegadores lo mejor es utilizar todas los hacks aunque puede que no pase las validaciones.&lt;br /&gt;&lt;br /&gt;Un detalle:&lt;br /&gt;En Internet Explorer si se aplica a un &lt;span style="font-style: italic; font-weight: bold;"&gt;div&lt;/span&gt; hay definir la altura y anchura para que funcione.&lt;br /&gt;&lt;br /&gt;El ejemplo en funcionamiento:&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: rgb(255, 0, 0); position: relative; width: 300px;"&gt;&lt;br /&gt;&lt;div style="width: 200px; height: 100px; position: absolute; left: 50px; top: 50px; background-color: rgb(255, 255, 255); opacity: 0.5;"&gt;&lt;strong&gt;Soy transparente&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus lobortis magna nec nisl mattis non scelerisque lorem interdum. Proin ac commodo libero. Fusce ligula nisl, iaculis sed malesuada a, bibendum at augue. In feugiat ante ultrices nisi cursus viverra. Vestibulum eget ullamcorper ligula. Phasellus id est sed enim adipiscing luctus. Fusce convallis, enim at convallis iaculis, lacus ligula sollicitudin orci, quis suscipit magna massa eget lacus. Duis ullamcorper ullamcorper arcu, at fringilla risus interdum a. Nulla facilisi. Nunc porta rutrum tincidunt. Sed tempor malesuada iaculis.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-7210332251162895325?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/7210332251162895325/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/06/transparencias-con-css-compatible-con.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7210332251162895325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7210332251162895325'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/06/transparencias-con-css-compatible-con.html' title='Transparencias con CSS compatibles con todos los navegadores'/><author><name>Rober</name><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-2112907815937797445.post-4668757727566522095</id><published>2009-06-17T17:28:00.005+02:00</published><updated>2009-06-17T17:55:29.065+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><category scheme='http://www.blogger.com/atom/ns#' term='spam'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Denunciar posicionamiento fraudulento buscadores Google</title><content type='html'>¿Alguna vez has hecho una búsqueda en Google y al acceder a uno de los enlaces resulta que no tiene nada que ver con el resultado mostrado?&lt;br /&gt;&lt;br /&gt;Podríamos pensar que nuevamente que a Google se le ha ido la "pinza", pero si investigamos un poco probablemente descubramos un posicionamiento fraudulento. Por posicionamiento fraudulento se entiende por paginas que se han posicionado utilizando técnicas SEO prohibidas. Viene a ser spam aplicado al SEO.&lt;br /&gt;&lt;br /&gt;La técnica fraudulenta más habitual es generar una gran cantidad de contenido, generalmente frases de interés, que utilizan una o varias palabras clave repetidas y escritas de distinta forma y que mediante javascript o CSS se ocultan; la pagina final no tiene ninguna relación con el resultado de búsqueda.&lt;br /&gt;&lt;br /&gt;Para estos casos donde Google no detecta las técnicas prohibidas existe un &lt;a href="http://www.google.es/intl/es/webmasters/spamreport.html"&gt;formulario de denuncia&lt;/a&gt; donde Google analiza los casos reportados y los banea en caso necesario.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-4668757727566522095?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/4668757727566522095/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/06/denunciar-posicionamiento-fraudulento.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/4668757727566522095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/4668757727566522095'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/06/denunciar-posicionamiento-fraudulento.html' title='Denunciar posicionamiento fraudulento buscadores Google'/><author><name>Rober</name><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-2112907815937797445.post-350249552231637540</id><published>2009-06-09T11:05:00.013+02:00</published><updated>2009-06-10T18:28:26.398+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='formularios'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>Comprobar y validar formularios con jQuery</title><content type='html'>Para validar formularios vía javascript existen muchas opciones, pero &lt;strong&gt;jQuery&lt;/strong&gt; combinado con el &lt;strong&gt;plugin form validate&lt;/strong&gt; es una de las soluciones más completas y fáciles de utilizar.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Form validate&lt;/strong&gt; permite comprobar desde direcciones de e-mail hasta tarjetas de crédito. Solo hay que subir el js de &lt;a href="http://docs.jquery.com/Downloading_jQuery"&gt;jQuery&lt;/a&gt; y del &lt;a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/"&gt;form validate&lt;/a&gt; a tu sitio web y enlazarlos desde el head. Además tiene la ventaja que muestra los mensajes de error en muchos idiomas.&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 400px; height: 387px;" src="http://2.bp.blogspot.com/_E31ePWN5DwQ/Si4m98AibzI/AAAAAAAAAGE/me0m7fll4o0/s400/formulario.gif" alt="Formulario validado con jQuery y form validate" id="BLOGGER_PHOTO_ID_5345252653257617202" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Instrucciones para utilizar el plugin jquery form validate&lt;/h4&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Vincular los js de jquery (primero) y del validador y añadir un script o un js mas con la personalización.&lt;br /&gt;&lt;br /&gt;Ejemplo con los js en la raíz:&lt;br /&gt;&lt;span style="color: rgb(0, 0, 173);"&gt;...&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="&lt;span style="color: rgb(51, 102, 255);"&gt;jquery.js&lt;/span&gt;"&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="&lt;span style="color: rgb(51, 102, 255);"&gt;jquery-validate/jquery.validate.js&lt;/span&gt;"&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="&lt;span style="color: rgb(51, 102, 255);"&gt;formulario.js&lt;/span&gt;"&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Para que se valide cada campo lo mas sencillo es añadir determinadas clases en cada input según lo que queramos validar.&lt;br /&gt;&lt;br /&gt;Ejemplo para un input de e-mail:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 173);"&gt;&amp;lt;input type="text" name="email" id="email" class="&lt;span style="color: rgb(51, 102, 255); font-weight: bold;"&gt;required email&lt;/span&gt;" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Algunas de las clases y su función:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;required&lt;/span&gt; = campo obligatorio&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;email&lt;/span&gt; = email correcto&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;url&lt;/span&gt; = dirección url&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;number&lt;/span&gt; = número entero&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;numberDE&lt;/span&gt; = número con o sin decimales&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;date&lt;/span&gt; = formato fecha (31/12/2009)&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Mensajes de error&lt;/strong&gt;&lt;br /&gt;Los mensajes de error se muestran por defecto a continuación del campo erróneo. Aparecen dentro de la etiqueta &amp;lt;label&amp;gt; pero se puede cambiar desde jquery.validate.js buscando "errorElement: label" y remplazando "label" por elemento deseado.&lt;br /&gt;Tanto el nuevo elemento mostrado como el input que da el error se les añade la clase " error ". Deberemos ajustar su visualización con CSS.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Mensajes e idioma&lt;/strong&gt;&lt;br /&gt;Los mensajes ya están predefinidos según el error y se muestran por defecto en ingles. El plugin incluye múltiples idiomas en unos js que están dentro de la carpeta"localization". Para utilizar otro idioma enlazar el js después del plugin o copiar y pegar el texto en el js con la personalización.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Personalización de la validación&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Longitud de caracteres&lt;/span&gt;&lt;br /&gt;Para controlar el número de caracteres de un input añadir este código en el js personalizado:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;$(document).ready(function(){&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;$("#formulario").validate({ &lt;span style="color: rgb(153, 153, 153);"&gt;/*sustituir "formulario" por el id de vuestro formulario*/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;rules: {&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;nombre: { &lt;span style="color: rgb(153, 153, 153);"&gt;/*id del campo que se aplica la regla*/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;required: true,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;br /&gt;minlength&lt;/span&gt;: 3 &lt;span style="color: rgb(153, 153, 153);"&gt;/*caracteres mínimos*/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;});&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;});&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Este ejemplo exije al menos 3 caracteres como mínimo en el input con el id "nombre".&lt;br /&gt;Para limitar la longitud máxima sustituir "minlength" por "maxlength".&lt;br /&gt;Para un rango mínimo y máximo pon "rangelength" Ejemplo: rangelength: [5, 10]&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Valores numéricos&lt;/span&gt;&lt;br /&gt;Funciona igual que el ejemplo anterior, solo debemos sustituir minlength por el método deseado.&lt;br /&gt;&lt;br /&gt;*Valor mínimo: &lt;span style="color: rgb(51, 102, 255);"&gt;min&lt;/span&gt;. Ej: min: 16&lt;br /&gt;*Valor máximo: &lt;span style="color: rgb(51, 102, 255);"&gt;max&lt;/span&gt;&lt;br /&gt;*Rango valores: &lt;span style="color: rgb(51, 102, 255);"&gt;range&lt;/span&gt;. Ej: range: [5, 10]&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Coincidencia entre campos&lt;/span&gt;&lt;br /&gt;Esto es útil para los campos de confirmación de contraseña o e-mail. Utilizaremos &lt;span style="font-weight: bold;"&gt;equalTo&lt;/span&gt; del mismo modo que los ejemplo anteriores y le indicaremos el id del campo con el que debe coincidir.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;$(document).ready(function(){&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;$("#formulario").validate({ &lt;span style="color: rgb(153, 153, 153);"&gt;/*sustituir "formulario" por el id de vuestro formulario*/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;rules: {&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;password2: { &lt;span style="color: rgb(153, 153, 153);"&gt;/*id del campo que se aplica la regla*/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;br /&gt;equalTo&lt;/span&gt;: "#password"&lt;span style="color: rgb(153, 153, 153);"&gt; /*id del input con el que debe coincidir*/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;});&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;});&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Tipo archivos admitidos&lt;/span&gt;&lt;br /&gt;Con "accept" controlamos los archivos que se van a subir al servidor.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;$(document).ready(function(){&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;$("#formulario").validate({ &lt;span style="color: rgb(153, 153, 153);"&gt;/*sustituir "formulario" por el id de vuestro formulario*/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;rules: {&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;archivo: { &lt;span style="color: rgb(153, 153, 153);"&gt;/*id del campo que se aplica la regla*/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;br /&gt;accept&lt;/span&gt;: "jpg|gif" &lt;span style="color: rgb(153, 153, 153);"&gt;/*extensiones aceptadas*/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;});&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;});&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Para terminar un ejemplo con varias reglas juntas:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;$(document).ready(function(){&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;$("#formulario").validate({&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;rules: {&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;nombre: {&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;br /&gt;minlength&lt;/span&gt;: 3,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;br /&gt;maxlength&lt;/span&gt;: 10&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;},&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;repetir_clave: {&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;br /&gt;equalTo&lt;/span&gt;: "#clave"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;},&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;imagen: {&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;br /&gt;accept&lt;/span&gt;: "jpg|gif|png"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;});&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;});&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Toda la documentación sobre el plugin en: &lt;a href="http://docs.jquery.com/Plugins/Validation"&gt;http://docs.jquery.com/Plugins/Validation&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-350249552231637540?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/350249552231637540/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/06/comprobar-y-validar-formularios-con.html#comment-form' title='11 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/350249552231637540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/350249552231637540'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/06/comprobar-y-validar-formularios-con.html' title='Comprobar y validar formularios con jQuery'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_E31ePWN5DwQ/Si4m98AibzI/AAAAAAAAAGE/me0m7fll4o0/s72-c/formulario.gif' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-7359941770127900127</id><published>2009-06-03T11:37:00.011+02:00</published><updated>2009-07-22T17:38:55.562+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><title type='text'>Fuentes personalizadas con Javascript y Cufon</title><content type='html'>¿Quieres utilizar tipografías especiales en tu blog o web y que todos los usuarios las puedan ver? pues es posible hacerlo.&lt;br /&gt;&lt;br /&gt;Desde hace tiempo existen varias soluciones que mediante Flash, php o Javascript para incrustar las fuentes en el HTML permitiendo a cualquier usuario ver esa tipografía independientemente de que no la tenga.&lt;br /&gt;&lt;br /&gt;Entre las muchas opciones he probado &lt;a href="http://cufon.shoqolate.com/"&gt;cufon&lt;/a&gt;, una muy buena opción que utiliza javascript, es muy fiable y responde a los estilos CSS.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Manual rápido de Cufon&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Creamos un .js de la fuente, esto lo hacemos desde este &lt;a href="http://cufon.shoqolate.com/generate/"&gt;formulario&lt;/a&gt;.&lt;br /&gt;Desde este formulario buscamos la fuente (con extensión ttf) , configuramos algunos parámetros y marcamos los términos legales.&lt;br /&gt;Nos aparecerá un archivo para descargar.&lt;br /&gt;¡OJO! no se pueden cargar fuentes desde la carpeta "FONTS" de windows, copialas y pégalas en el escritorio.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Descargamos el &lt;a href="http://cufon.shoqolate.com/js/cufon-yui.js"&gt;código fuente&lt;/a&gt; de Cufon.&lt;br /&gt;¡OJO! probablemente Firefox te abra el archivo en vez de descargarlo, bájalo con Explorer por ejemplo o haz un "guardar como".&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Creamos un html donde enlacemos desde el &amp;lt;head&amp;gt; ambos .js y añadimos la regla que hace la sustitución:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ad;"&gt;&lt;br /&gt;&amp;lt;script src="&lt;span style="color: rgb(51, 102, 255);"&gt;cufon-yui.js&lt;/span&gt;" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src="&lt;span style="color: rgb(51, 102, 255);"&gt;fuente_personalizada.js&lt;/span&gt;" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;Cufon.replace('h1');&lt;/span&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Con "Cufon.replace('h1')" le decimos que añada la fuente en todas las etiquetas h1.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Otras configuraciones&lt;/h4&gt;&lt;strong&gt;Varias fuentes simultaneas&lt;/strong&gt;&lt;br /&gt;Si queremos utilizar varias tipografías hay que crear un .js de cada una (paso 1), enlazarlo desde el &amp;lt;head&amp;gt; e indicar las etiquetas que utilizan las fuentes:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;script src="script/cufon-yui.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;  &amp;lt;script src="magic-font.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;  &amp;lt;script src="BladeII.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;  &amp;lt;script type="text/javascript"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Cufon.replace('h1', { fontFamily: 'magic-font'});&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Cufon.replace('p', { fontFamily: 'BladeII'});&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;De este modo indicamos que los &lt;strong&gt;h1&lt;/strong&gt; serán sustituidos con la fuente "magic-font" y los &lt;strong&gt;p&lt;/strong&gt; con "BladeII".&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Degradados&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;También tenemos opción de crear degradados muy conseguidos:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Cufon.replace('h1', {color: '&lt;span style="color: rgb(51, 102, 255);"&gt;-linear-gradient(white, black)&lt;/span&gt;'});&lt;/span&gt;&lt;br /&gt;&lt;img style="cursor: pointer; width: 305px; height: 49px;" src="http://2.bp.blogspot.com/_E31ePWN5DwQ/SiZWhrvnJKI/AAAAAAAAAF0/suE8IfPPqx8/s400/cufon-degradado.jpg" alt="" id="BLOGGER_PHOTO_ID_5343053144599766178" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Podemos utilizar cualquier color, incluso conseguir degradados de varios colores:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Cufon.replace('h1', {color: '&lt;span style="color: rgb(51, 102, 255);"&gt;-linear-gradient(red, green, yellow)&lt;/span&gt;'});&lt;/span&gt;&lt;br /&gt;&lt;img style="cursor: pointer; width: 305px; height: 49px;" src="http://2.bp.blogspot.com/_E31ePWN5DwQ/SiZXCTsc7zI/AAAAAAAAAF8/4eyx8miAUls/s400/cufon-degradado2.jpg" alt="" id="BLOGGER_PHOTO_ID_5343053705079746354" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Efecto hover&lt;/strong&gt;&lt;br /&gt;Si queremos añadir un enlace y que funcione el hover:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Cufon.replace('h1', {hover: true});&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Con css podemos asignar las propiedades a cada estado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para terminar un ejemplo que incluye todos estos parámetros simultáneamente:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;Cufon.replace('h1', { fontFamily: 'BladeII', color: '-linear-gradient(white, black)', hover: true});&lt;br /&gt;Cufon.replace('p', { fontFamily: 'Magic-font', color: '-linear-gradient(red, yellow, black)' });&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Recalcar que si utilizamos un degradado al mismo tiempo que un hover, el hover no funcionará correctamente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Por último para evitar problemas en explorer podemos añadir este código justo antes de &lt;strong&gt;&amp;lt;/body&amp;gt;&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;script type="text/javascript"&amp;gt; Cufon.now(); &amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Podéis ver toda la información en &lt;a href="http://wiki.github.com/sorccu/cufon/about"&gt;http://wiki.github.com/sorccu/cufon/about&lt;/a&gt; (en ingles).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-7359941770127900127?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/7359941770127900127/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/06/fuentes-personalizadas-con-javascript-y.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7359941770127900127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7359941770127900127'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/06/fuentes-personalizadas-con-javascript-y.html' title='Fuentes personalizadas con Javascript y Cufon'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_E31ePWN5DwQ/SiZWhrvnJKI/AAAAAAAAAF0/suE8IfPPqx8/s72-c/cufon-degradado.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-7212802495655730322</id><published>2009-05-28T11:31:00.005+02:00</published><updated>2009-05-28T12:37:22.475+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><category scheme='http://www.blogger.com/atom/ns#' term='posicionamiento'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='pagerank'/><title type='text'>Como saber mi PageRank en Google</title><content type='html'>El &lt;span style="font-weight: bold;"&gt;pagerank&lt;/span&gt; es un valor que va de 0 a 10 y afecta significativamente a tu posicionamiento en Google. Es especialmente decisivo cuando una palabra clave tiene muchos resultados.&lt;br /&gt;&lt;h4&gt;¿que define mi PageRank?&lt;/h4&gt;Google asigna el pagerank en función del número de enlaces que apuntan a esa pagina, teniendo en cuenta a su vez el pagerank de las webs que lo enlazan. Cuantos más enlaces entrantes y más alto sea el pagerank de quien nos enlaza mejor.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;¿Como puedo averiguar mi PageRank en Google?&lt;/h4&gt;Para averiguar tu pagerank o el de otros sitios puedes utilizar paginas web que ofrecen este servicio, instalarte la barra de Google(incorpora esta función) o instalarte &lt;a href="http://www.cleverstat.com/en/page-rank-software.htm"&gt;PaRaMeter&lt;/a&gt;, un programa gratuito que nos permite hacer una seguimiento periódico del pagerank de nuestros sitios con un solo click.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-7212802495655730322?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/7212802495655730322/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/05/como-saber-mi-pagerank-en-google.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7212802495655730322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7212802495655730322'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/05/como-saber-mi-pagerank-en-google.html' title='Como saber mi PageRank en Google'/><author><name>Rober</name><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-2112907815937797445.post-2478008916982688599</id><published>2009-05-22T11:43:00.006+02:00</published><updated>2009-05-27T12:47:24.048+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='explorer8'/><title type='text'>Corregir errores incompatibilidad entre explorer 7 y 8</title><content type='html'>Hace unas pocas semanas Microsoft lanzó de forma oficial el nuevo navegador Internet Explorer 8. Un nuevo dolor de cabeza para diseñadores y programadores web, ya que explorer 8 sigue sin cumplir los standares y además se comporta de forma distinta respecto a sus anteriores versiones.&lt;br /&gt;&lt;br /&gt;Es posible que detectéis que vuestro site no funcione bien con esta nueva versión y sin embargo si lo hacia con la 7. Si este es tu caso, entonces, estas de suerte. Microsoft a creado una meta-etiqueta para explorer 8 que lo hace funcionar como en internet explorer 7.&lt;br /&gt;&lt;br /&gt;Solo tienes que añadir este código dentro del &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;head&amp;gt;&lt;/span&gt; de cada pagina:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;meta equiv="X-UA-Compatible" content="IE=EmulateIE7"&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-2478008916982688599?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/2478008916982688599/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/05/corregir-errores-incompatibilidad-entre.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/2478008916982688599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/2478008916982688599'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/05/corregir-errores-incompatibilidad-entre.html' title='Corregir errores incompatibilidad entre explorer 7 y 8'/><author><name>Rober</name><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-2112907815937797445.post-5083302417218942547</id><published>2009-05-13T10:18:00.006+02:00</published><updated>2009-05-28T11:31:08.669+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><category scheme='http://www.blogger.com/atom/ns#' term='posicionamiento'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Herramientas para averiguar posicionamiento en Google</title><content type='html'>Hoy he tenido que realizar un informe sobre el posicionamiento del site de una empresa en &lt;strong&gt;Google&lt;/strong&gt; con determinadas palabras clave. Una tarea que puede ser un auténtico trabajo de chinos sino dicha web no esta bien posicionada. Afortunadamente hace tiempo encontré unas herramientas SEO que agilizan el trabajo.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Free Monitor for Google&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;Análisis de posicionamiento en Google&lt;/span&gt;&lt;br /&gt;&lt;/h4&gt;Este software hace búsquedas en Google de  las keywords (palabras clave) y te devuelve la posición de tu sitio web y los primeros resultados.&lt;br /&gt;Puedes añadir una lista de palabras clave y configurar la profundidad del rastreo (por defecto los 10 primeros resultados).&lt;br /&gt;El programa almacena las URL y sus respectivas palabras clave, permitiendo hacer seguimientos periódicos con un solo clic.&lt;br /&gt;&lt;br /&gt;Su funcionamiento es muy intuitivo; para comenzar a utilizarlo solo debemos pulsar el signo "+" y escribir una URL, seguidamente nos pedirá las palabras clave, las añadimos una a una con el botón "Add" y cuando terminamos pulsamos "Ok". Si queremos busquedas mas profundas vamos a Options &gt; Preferences y en el selector "Check first" seleccionamos hasta que posición queremos que la busque(cuanto más alto es el valor más tardará). Finalmente solo queda clicar en la lupa y esperar los resultados.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_E31ePWN5DwQ/SgqJ5HrtmeI/AAAAAAAAAE4/rVpywKlbULs/s1600-h/analisis-SEO-google.gif"&gt;&lt;img style="cursor: pointer; width: 400px; height: 273px;" src="http://2.bp.blogspot.com/_E31ePWN5DwQ/SgqJ5HrtmeI/AAAAAAAAAE4/rVpywKlbULs/s400/analisis-SEO-google.gif" alt="" id="BLOGGER_PHOTO_ID_5335228322981714402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Puedes descargártelo gratis en:&lt;br /&gt;&lt;a href="http://www.cleverstat.com/en/google-monitor-query.htm"&gt;http://www.cleverstat.com/en/google-monitor-query.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-5083302417218942547?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/5083302417218942547/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/05/herramientas-para-averiguar.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5083302417218942547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5083302417218942547'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/05/herramientas-para-averiguar.html' title='Herramientas para averiguar posicionamiento en Google'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_E31ePWN5DwQ/SgqJ5HrtmeI/AAAAAAAAAE4/rVpywKlbULs/s72-c/analisis-SEO-google.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-5995779226805130206</id><published>2009-03-16T01:29:00.007+01:00</published><updated>2009-03-17T22:03:54.610+01:00</updated><title type='text'>Varios cortos de animación 3D</title><content type='html'>&lt;strong&gt;Robots luchadores&lt;/strong&gt;&lt;br /&gt;&lt;object width="400" height="225"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=1470875&amp;amp;server=vimeo.com&amp;amp;show_title=0&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=1470875&amp;amp;server=vimeo.com&amp;amp;show_title=0&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Futuro apocalíptico&lt;/span&gt;&lt;br /&gt;Interesante corto de ESMA (Escuela superior de Arte Francesa).&lt;br /&gt;Fuente: &lt;a href="http://kazeweb.fr/"&gt;http://kazeweb.fr&lt;/a&gt;&lt;br /&gt;&lt;a href="http://kazeweb.fr/replay_hd.html"&gt;&lt;img style="width: 400px; height: 224px;" src="http://3.bp.blogspot.com/_E31ePWN5DwQ/ScAKeYnb8WI/AAAAAAAAABc/hOu5-9u7FR8/s400/kazeweb.jpg" alt="Corto 3D ESMA" id="BLOGGER_PHOTO_ID_5314259077417398626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Corto 3D sobre mensajeros futuristas&lt;/span&gt;&lt;br /&gt;&lt;object width="400" height="225"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2251254&amp;amp;server=vimeo.com&amp;amp;show_title=0&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=2251254&amp;amp;server=vimeo.com&amp;amp;show_title=0&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Web personal del diseñador 3D José María Andrés Martín&lt;/strong&gt;&lt;br /&gt;Si visitáis su &lt;a href="http://www.alzhem.com/"&gt;web&lt;/a&gt;, en la pestaña "Animations" podréis ver algunas animaciones para publicidad.&lt;br /&gt;&lt;a href="http://www.alzhem.com/"&gt;&lt;img style="display: block; cursor: pointer; width: 400px; height: 237px;" src="http://2.bp.blogspot.com/_E31ePWN5DwQ/Sb2fISTxqhI/AAAAAAAAABU/RyWcgBOn_Ws/s400/alzhem.jpg" alt="" id="BLOGGER_PHOTO_ID_5313578100069607954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Oktapodi: Pulpos escurridizos&lt;/span&gt;&lt;br /&gt;Animación muy buena realizada por alumnos de la escuela Francesa Gobelins.&lt;br /&gt;Fuente: &lt;a href="http://motionographer.com/2009/02/04/oktapodi-back-up/"&gt;http://motionographer.com/2009/02/04/oktapodi-back-up/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://motionographer.com/oktapodi/" target="_blank"&gt;&lt;img style="cursor: pointer; width: 400px; height: 224px;" src="http://1.bp.blogspot.com/_E31ePWN5DwQ/ScAOcbVxVkI/AAAAAAAAABk/YYzEBzo0rW0/s400/oktapodi.jpg" alt="Animación 3D: Oktapodi" id="BLOGGER_PHOTO_ID_5314263441835382338" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-5995779226805130206?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/5995779226805130206/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/03/varios-cortos-de-animacion-3d.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5995779226805130206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5995779226805130206'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/03/varios-cortos-de-animacion-3d.html' title='Varios cortos de animación 3D'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_E31ePWN5DwQ/ScAKeYnb8WI/AAAAAAAAABc/hOu5-9u7FR8/s72-c/kazeweb.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-2274783913232413656</id><published>2009-03-09T17:28:00.011+01:00</published><updated>2009-03-13T01:20:13.499+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='ganar dinero'/><category scheme='http://www.blogger.com/atom/ns#' term='adsense'/><title type='text'>¿Me puedo ganar la vida con un Blog?</title><content type='html'>Desde hace unos años a este tiempo el boom de los blog y demás ha hecho que la sociedad se lance a la red: tiendas on-line, blogs, catálogos, foros... Y parte de esta sociedad esperaba recibir ingresos de su aventura en la red.&lt;br /&gt;&lt;br /&gt;Son muchos los que me han hablado y pedido presupuesto sobre sus ideas fantásticas de portales, ideas que ellos creen que son novedosas, fáciles  de crear y que les darán miles de euros de beneficios.  Pero la realidad es otra, amigos míos.&lt;br /&gt;&lt;br /&gt;La primera decepción para el pequeño emprendedor (sin experiencia en internet), es descubrir que el desarrollo de su proyecto cuesta casi tanto como montar un negocio en alguna Avenida principal. Esto normalmente ya hace huir  a la mayoría de pequeños empresarios. Si alguno se aventura a dar el paso, descubrirá que la red es tanto o más competitiva que la vida real.&lt;br /&gt;&lt;br /&gt;Y esta es la realidad tanto para empresarios como para bloggers. Las historias que habréis oído por ahí de bloggers que se hicieron ricos de la noche a la mañana, son casos excepcionales; mentes prodigiosas, creativas e ingeniosas que supieron llenarse los bolsillos de billetes. Para el resto de mortales hacerse rico con cualquier Web es pura fantasía.&lt;br /&gt;&lt;br /&gt;Pero supongamos que asumes que no te harás rico, ¿sería posible vivir de un blog?.&lt;br /&gt;Quizás, pero... lo tienes difícil, muy difícil.&lt;br /&gt;&lt;br /&gt;Para ganar dinero con un blog necesitas básicamente 3 cosas:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Publicidad&lt;/span&gt;&lt;br /&gt;Los ingresos se pueden conseguir fácilmente con publicidad. La publicidad te la puede suministrar por ejemplo &lt;a href="https://www.google.com/adsense/login/es/index.html"&gt;Adsense de Google&lt;/a&gt;, aunque existen otros sistemas, pero Adsense es sencillo, rentable y de confianza. Solo tienes que registrarte, dar unos datos y ellos te proporcionan el código que añadido a tu web generará la publicidad.  Google te pagará por cada clic en un anuncio, ¿cuanto? eso depende de los anuncios , pero por poner un ejemplo esa cifra puede ser unos 0,10 $.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Contenidos&lt;/span&gt;&lt;br /&gt;Necesitas contenidos originales que sean de interés, publicados de forma regular y mejor si son en cantidad. Pueden ser de interés general o especializado, pero tiene que interesar a mucha gente, y esto es un problema. Generar contenidos no está al alcance de cualquiera. Por ejemplo, si tienes un blog de coches tendrás que estar a la última en automoción, disponer de algunas fotografías y detalles de últimos modelos, salones, noticias... ,¡ y no vale con copiarlo de otra Web!. Además de eso tienes que tener cierta capacidad de redacción y conceptos básicos de maquetación. Si no tienes nada de eso tendrás que comprar la información o conseguirla, y eso vale pasta y tiempo. Lo importante es que tengas algo que ofrecer al mundo que nadie o muy pocos puedan ofrecer. Por ejemplo hablar de tu vida no tendrá ningún interés a menos que sea muy intensa o le des un enfoque peculiar y llamativo. Ten en cuenta que en Internet ya está casi todo inventado.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Visitas&lt;/span&gt;&lt;br /&gt;Si generar contenidos de interés es complicado, obtener visitas es más complicado. Si tienes contenidos abundantes y de calidad las visitas llegarán solas. Pero para obtenerlas es imprescindible que los contenidos estén correctamente indexados en los buscadores, y aun así, dependiendo de la competencia necesitarás otras estrategias de captación, como por ejemplo la optimización para buscadores, la promoción en otros blogs, campañas de publicidad... lo que se te ocurra.&lt;br /&gt;Este es el aspecto más critico e imprescindible; en la red existen miles de sitios que pese a ser de gran interés no tienen visitas, el tuyo podría ser uno de ellos.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Las cifras&lt;/span&gt;&lt;br /&gt;Si consultas en la red sobre lo que ganan bloggers con la publicidad de su Web pocos hablarán de sus ingresos y algunos hablarán de números de 3 y 4 cifras. Pero por mi experiencia os puedo decir que muchos exagerán, otros engañan a sus anunciantes y solo unos pocos alcanzan esas cifras.&lt;br /&gt;No nos podemos fiar ni dejar embaucar por otros, y mucho menos por aquellos que nos ofrecen fabulosas técnicas para hacerse millonario en internet. Internet funciona como el mundo real, y el éxito es solo para privilegiados y grandes empresas. Cada día que pasa aumenta más y más el número de blogs, foros y sitios especializados, provocando que disminuyan tus beneficios. Por esa razón tendrás que evolucionar de forma constante si no quieres desaparecer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para hacernos una idea de cuales pueden llegar a ser tus ingresos con un sistema como el de Adsense, analizaremos a la competencia directa. Para hacerlo tenemos en la red muchas herramientas a nuestra disposición. Os voy a enseñar paso por paso como hacerlo:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Supongamos que estamos pensando en montar un blog de viajes y turismo rural. Pues lo primero que debes hacer es buscar en Google "turismo rural", "blog viajes", etc. Visita los primeros resultados, contrasta, averigua en foros y quédate con almenos 3 o 4 sitios que estén ofreciendo el volumen y calidad de contenidos similares a lo que tu podrías llegar a ofrecer.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Con esos sitios seleccionados, nos vamos a &lt;a href="http://www.alexa.com/"&gt;alexa.com&lt;/a&gt; y contrastaremos resultados. Alexa nos ofrecerá datos aproximados de las visitas recibidas en los últimos meses.&lt;br /&gt;&lt;br /&gt;En mi caso he obtenido estos resultados:&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="http://3.bp.blogspot.com/_E31ePWN5DwQ/SbmBSLYfqSI/AAAAAAAAABM/Sd_joKsBAl4/s400/estadisticas_visitas.gif" alt="Gráfico estadísticas visitas" title="Gráfico estadísticas visitas" /&gt;Si en tu caso no aparecen resultados es porque ninguno de los 3 sitios seleccionados están entre los 100.000 más vistos, pero prueba a cambiar una de las webs por otra cualquiera más popular, eso hará que se muestren el resultado de las otras.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Los resultados obtenidos son visitas diarias en millones. En el ejemplo vemos que una destaca claramente con una media de 2000 visitas diarias. Una segunda web debe estar sobre las 200 y la tercera no se muestra, por lo que debe tener menos de 100 visitas.&lt;br /&gt;Tomaremos como referencia la primera y la segunda.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Cogemos la media de visitas y las multiplicamos por los 30 días de un mes.&lt;br /&gt;2000 visitas por 30 días nos da 60.000 visitas mensuales para la primera y 6.000 para la segunda.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;El porcentaje de clics varia mucho en función de la colocación de los anuncios y del tipo de anuncio, pero normalmente suele estar en 2 y 3% de clics cada 100 visitantes. Eso quiere decir que de cada 100 personas 3 encuentran interesante un anuncio y hacen clic en el.&lt;br /&gt;Le pondremos una media de 0,10 $ a cada clic.&lt;br /&gt;&lt;br /&gt;Calculemos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Primera Web&lt;/span&gt;&lt;br /&gt;3% de 60.000 = 1800&lt;br /&gt;1800 x 0,10 = 180 $&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Segunda Web&lt;/span&gt;&lt;br /&gt;3% de 6.000 = 180&lt;br /&gt;180 x 0,10 = 18 $&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Los resultados son 180 $ mensuales de beneficio para la web de 60.000 visitas y de 18 $ para la de 6.000.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Con estos cálculos ya te podrás hacer una idea de lo que podrías llegar a ganar, y en este caso concreto pasarías hambre.&lt;br /&gt;Pero existen otras posibilidades como el CPV (cobras si el usuario realiza una compra) o el CPM (cada 1.000 impresiones), también puedes negociar directamente con los anunciantes.&lt;br /&gt;&lt;br /&gt;Para terminar os pongo unas referencias sobre temas fiscales y legales que hay que tener en cuenta:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.webtaller.com/maletin/articulos/trece-delitos-que-todo-bloger-debe-conocer.php"&gt;http://www.webtaller.com/maletin/articulos/trece-delitos-que-todo-bloger-debe-conocer.php&lt;/a&gt;&lt;br /&gt;&lt;a href="http://cangurorico.com/2006/02/como-trabajar-legalmente-con-adsense.html"&gt;&lt;br /&gt;http://cangurorico.com/2006/02/como-trabajar-legalmente-con-adsense.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-2274783913232413656?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/2274783913232413656/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/03/me-puedo-ganar-la-vida-con-un-blog.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/2274783913232413656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/2274783913232413656'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/03/me-puedo-ganar-la-vida-con-un-blog.html' title='¿Me puedo ganar la vida con un Blog?'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_E31ePWN5DwQ/SbmBSLYfqSI/AAAAAAAAABM/Sd_joKsBAl4/s72-c/estadisticas_visitas.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-839728531378698216</id><published>2009-02-22T23:08:00.003+01:00</published><updated>2009-02-22T23:22:25.853+01:00</updated><title type='text'>Centrado horizontal de una imagen con CSS</title><content type='html'>Hoy me a surgido un problema a la hora centrar una imagen con CSS.&lt;br /&gt;&lt;br /&gt;Centrar horizontalmente un elemento respecto a otro es tan sencillo como esto:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;#elemento{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;             margin:auto;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Y hasta hoy creía que para central una imagen era suficiente con esto, pero no. Las imágenes no son elementos de bloque y al parecer el centrado automático es solo para elementos de bloque.&lt;br /&gt;&lt;br /&gt;La solución:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;#elemento{&lt;br /&gt;            margin:auto;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;             display:block;&lt;br /&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-839728531378698216?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/839728531378698216/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/02/centrado-horizontal-de-una-imagen-con.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/839728531378698216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/839728531378698216'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/02/centrado-horizontal-de-una-imagen-con.html' title='Centrado horizontal de una imagen con CSS'/><author><name>Rober</name><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-2112907815937797445.post-7811332588909792084</id><published>2009-02-19T17:26:00.032+01:00</published><updated>2009-02-22T23:08:09.346+01:00</updated><title type='text'>Crear loop de imágenes y texto en movimiento con jQuery y CSS</title><content type='html'>Un loop animado de contenidos al estilo "slide show" puede ser muy útil para presentar noticias, imágenes o por ejemplo en mi caso, anuncios clasificados.&lt;br /&gt;&lt;br /&gt;Conseguir un efecto slide show es relativamente fácil de hacer gracias a jQuery. Unas pocas lineas de código y ya lo tienes funcionando, aunque yo he tardado varias horas para conseguir que funcionase como quería.&lt;br /&gt;&lt;br /&gt;Aquí lo podéis ver en funcionamiento:&lt;br /&gt;&lt;br /&gt;&lt;div style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; DISPLAY: block; OVERFLOW: hidden; BORDER-LEFT: 1px solid; WIDTH: 140px; BORDER-BOTTOM: 1px solid; POSITION: relative; HEIGHT: 140px"&gt;&lt;ul id="animacion2" style="PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; LEFT: 0pt; PADDING-BOTTOM: 0pt; MARGIN: 0pt; WIDTH: 480px; PADDING-TOP: 0pt; POSITION: absolute; TOP: 0pt; HEIGHT: 150px"&gt;&lt;li style="BORDER-RIGHT: medium none; PADDING-RIGHT: 10px; LIST-STYLE: none none outside; BORDER-TOP: medium none; DISPLAY: block; PADDING-LEFT: 10px; FLOAT: left; PADDING-BOTTOM: 10px; BORDER-LEFT: medium none; WIDTH: 140px; PADDING-TOP: 10px; BORDER-BOTTOM: medium none"&gt;&lt;em style="DISPLAY: block; WIDTH: 140px; HEIGHT: 90px"&gt;&lt;img style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" src="http://2.bp.blogspot.com/_E31ePWN5DwQ/SZ2OqHaiE0I/AAAAAAAAABE/Q5_JTJ5EfA8/s400/ixus_50.jpg" /&gt;&lt;/em&gt; &lt;p&gt;Ejemplo de slide&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="BORDER-RIGHT: medium none; PADDING-RIGHT: 10px; LIST-STYLE: none none outside; BORDER-TOP: medium none; DISPLAY: block; PADDING-LEFT: 10px; FLOAT: left; PADDING-BOTTOM: 10px; BORDER-LEFT: medium none; WIDTH: 140px; PADDING-TOP: 10px; BORDER-BOTTOM: medium none"&gt;&lt;em style="DISPLAY: block; WIDTH: 140px; HEIGHT: 90px"&gt;&lt;img style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" src="http://1.bp.blogspot.com/_E31ePWN5DwQ/SZ2ONPgZJtI/AAAAAAAAAAc/EvFc6Nu2EAw/s400/kodak.jpg" /&gt;&lt;/em&gt; &lt;p&gt;Camara digital 5Mpx&lt;/p&gt;&lt;/li&gt;&lt;li style="BORDER-RIGHT: medium none; PADDING-RIGHT: 10px; LIST-STYLE: none none outside; BORDER-TOP: medium none; DISPLAY: block; PADDING-LEFT: 10px; FLOAT: left; PADDING-BOTTOM: 10px; BORDER-LEFT: medium none; WIDTH: 140px; PADDING-TOP: 10px; BORDER-BOTTOM: medium none"&gt;&lt;em style="DISPLAY: block; WIDTH: 140px; HEIGHT: 90px"&gt;&lt;img style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" src="http://2.bp.blogspot.com/_E31ePWN5DwQ/SZ2Of1Hf6vI/AAAAAAAAAA0/9ddOAhcEgTI/s400/222_2.jpg" /&gt;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;En mi caso he hecho un listado de imágenes acompañadas de un texto. Con CSS he convertido la lista en un bloque horizontal y mediante un div con &lt;span style="FONT-STYLE: italic"&gt;"overflow:hidden"&lt;/span&gt; he dejado visible solo la parte que interesa.&lt;br /&gt;De la animación a un lado y otro se encarga jQuery. Y el loop lo conseguimos con la función &lt;span style="FONT-STYLE: italic"&gt;"setTimeout"&lt;/span&gt; autoejecutadola a si misma cada tiempo indicado. Inicialmente utilizé la función &lt;span style="FONT-STYLE: italic"&gt;"setInterval"&lt;/span&gt; pero por algún motivo sólo lee los condicionales la primera vez y después se los salta.&lt;br /&gt;&lt;br /&gt;Los detalles para crear el loop:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Añade la librería de &lt;a href="http://docs.jquery.com/Downloading_jQuery"&gt;jQuery&lt;/a&gt; a tu sitio y enlaza la desde el HEAD de esta manera:&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&amp;lt;script src="jquery.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&lt;script src="http://tusitio.com/js/jquery.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;A continuación añade el siguiente código javascript (importante que la librería jQuery este por encima para que el javascript puede hacer uso de ella):&lt;br /&gt;&lt;p&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;$(document).ready(function(){&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;var ancho = &lt;span style="FONT-WEIGHT: bold"&gt;160&lt;/span&gt;; &lt;/span&gt;&lt;span style="COLOR: rgb(204,204,255)"&gt;&lt;span style="COLOR: rgb(153,153,153)"&gt;//tamaño del visor&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;var cantidad = &lt;span style="FONT-WEIGHT: bold"&gt;3&lt;/span&gt;;&lt;/span&gt; &lt;span style="COLOR: rgb(153,153,153)"&gt;//cantidad de visualizaciones&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;var duracion_movimiento = &lt;span style="FONT-WEIGHT: bold"&gt;1000&lt;/span&gt;;&lt;/span&gt; &lt;span style="COLOR: rgb(153,153,153)"&gt;//tiempo en milisengundos que tarda en &lt;/span&gt;&lt;span style="COLOR: rgb(153,153,153)"&gt;desplazarse&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;var duracion_detenido = &lt;span style="FONT-WEIGHT: bold"&gt;1500&lt;/span&gt;; &lt;/span&gt;&lt;span style="COLOR: rgb(153,153,153)"&gt;//tiempo entre visualizaciones&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;var elemento =&lt;strong&gt; '#animacion'&lt;/strong&gt; &lt;/span&gt;// ID al que aplicamos el movimiento&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;var total = ancho*cantidad-ancho;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;var retrocediendo = false;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;mover = function(){&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;var posicion = $(elemento).css('left');&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;var valor = parseInt(posicion,10);&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;var absoluto = Math.abs(valor);&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;if(retrocediendo){&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;if(absoluto &lt;= 0){&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;retrocediendo = false;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;else{&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;$(elemento).animate({left:'+='+ancho+'px'},duracion_movimiento);&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;else{&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;if(absoluto&gt;= total){&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;retrocediendo = true;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;else{&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;$(elemento).animate({left:'-='+ancho+'px'},duracion_movimiento);&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;setTimeout("mover()",duracion_detenido);&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;};&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;setTimeout("mover()",duracion_detenido); &lt;/span&gt;&lt;/p&gt;&lt;p style="COLOR: rgb(255,0,0)"&gt;});&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;Ahora sólo queda añadir el HTML y los estilos:&lt;/span&gt;&lt;br /&gt;&lt;p style="COLOR: rgb(0,0,0)"&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&amp;lt;div style="height:130px;width:140px;display:block;overflow:hidden;border:1px solid grey;position:relative;"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&amp;lt;ul id="animacion" style="margin:0; padding:0; position:absolute; top:0; left:0; width:480px; height:150px;"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&amp;lt;li style="list-style:none; width:140px; display:block; padding:10px; float:left;"&amp;gt;&amp;lt;em style="height:90px;width:140px;display:block;"&amp;gt;&amp;lt;img src="imagen1.jpg" /&amp;gt;&amp;lt;/em&amp;gt;&amp;lt;p&amp;gt;Camara digital 7Mpx&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&amp;lt;li style="list-style:none; width:140px; display:block; padding:10px; float:left;"&amp;gt;&amp;lt;em style="height:90px;width:140px;display:block;"&amp;gt;&amp;lt;img src="imagen2.jpg" /&amp;gt;&amp;lt;/em&amp;gt;&amp;lt;p&amp;gt;Camara digital 5Mpx&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&amp;lt;li style="list-style:none; width:140px; display:block; padding:10px; float:left;"&amp;gt;&amp;lt;em style="height:90px;width:140px;display:block;"&amp;gt;&amp;lt;img src="imagen3.jpg" /&amp;gt;&amp;lt;/em&amp;gt;&amp;lt;p&amp;gt;Nokia&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Sustituye las imágenes por las tuyas o por textos. He puesto los estilos en linea, pero mejor hacerlo en una hoja de estilos.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Si quieres configurar las velocidades, tiempos, tamaños y demás puedes hacerlo variando los valores de las 4 primeras lineas del código javascript. Justo al lado están los comentarios explicando para que sirven.&lt;br /&gt;&lt;br /&gt;Se aceptan preguntas, criticas y sugerencias.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-7811332588909792084?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/7811332588909792084/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/02/crear-loop-de-imagenes-y-texto-en.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7811332588909792084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7811332588909792084'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/02/crear-loop-de-imagenes-y-texto-en.html' title='Crear loop de imágenes y texto en movimiento con jQuery y CSS'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_E31ePWN5DwQ/SZ2OqHaiE0I/AAAAAAAAABE/Q5_JTJ5EfA8/s72-c/ixus_50.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-7628935850465591424</id><published>2009-02-11T10:43:00.007+01:00</published><updated>2009-02-11T17:12:12.457+01:00</updated><title type='text'>Eliminar spam en los comentarios de wordpress II</title><content type='html'>En el &lt;a href="http://sinprogramar.blogspot.com/2009/01/bloquear-el-spam-en-los-comentarios-de.html"&gt;anterior post&lt;/a&gt; os conté un truquillo para evitar el spam en los comentarios de wordpress generado de manera automática. El truquillo consistía en modificar el &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;name&lt;/span&gt; (o el &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;id&lt;/span&gt; en su defecto) de los campos del formulario para que los comentarios generados y enviados de forma automática diesen un error al no coincidir el nombre de los campos.&lt;br /&gt;&lt;br /&gt;Pero al parecer esta solución solo funcionó unas horas, el tiempo que tardó nuestro "entrañable spammer" en modificar su plantilla de formulario.&lt;br /&gt;&lt;br /&gt;Después de darle vueltas, aplique 3 nuevos frentes de ataque:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Cambiar el nombre del archivo procesa los comentarios. Fue efectivo durante unas horas.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Eliminar las trackbacks (origen de parte del spam). Prescindir de los trackbacks supone la perdida de una funcionalidad interesante de wordpress, pero en mi caso me da más problemas que beneficios.&lt;/li&gt;&lt;li&gt;La solución definitiva: Generar un código en cada formulario que cambia una vez por minuto. Si no coincide con el código del servidor o si se supera un tiempo determinado el formulario da un error.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;El resultado final  se puede ver en el gráfico:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_E31ePWN5DwQ/SZKlIseS4iI/AAAAAAAAAAM/VXl9NyIkh-I/s1600-h/grafico-spam.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 87px;" src="http://1.bp.blogspot.com/_E31ePWN5DwQ/SZKlIseS4iI/AAAAAAAAAAM/VXl9NyIkh-I/s320/grafico-spam.gif" alt="" id="BLOGGER_PHOTO_ID_5301481280164258338" border="0" /&gt;&lt;/a&gt;De un pico de 1.269 spam interceptados por Akismet he pasado a uno o dos al día.&lt;br /&gt;&lt;br /&gt;Para crear el sistema que genera el código basta con modificar 2 archivos:&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;wp-comments-post.php&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;/wp-content/themes/nombre_tema/comments.php&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Abrimos &lt;span style="color: rgb(51, 102, 255);"&gt;comments.php&lt;/span&gt; y añadimos lo siguiente dentro de: &lt;span style="color: rgb(255, 102, 0);"&gt;&lt;form&gt;&lt;/form&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;?php &lt;span style="font-weight: bold;"&gt;$codigo&lt;/span&gt; = date("Hi")*&lt;span style="font-weight: bold;"&gt;10&lt;/span&gt;; ?&amp;gt;&lt;br /&gt;&amp;lt;input type="hidden" name="codigo_servidor" value="&amp;lt;?php echo $codigo; ?&amp;gt;" /&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;La primera linea genera una variable llamada "&lt;span style="font-weight: bold;"&gt;codigo&lt;/span&gt;" con el valor de la hora y minuto del servidor multiplicada por 10. La segunda linea crea un campo oculto con el valor de la variable "&lt;span style="font-weight: bold;"&gt;codigo&lt;/span&gt;" y con el nombre de "&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;codigo_servidor&lt;/span&gt;"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;br /&gt;&lt;br /&gt;El cliente recibirá en su navegador algo así como:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;input type="hidden" name="codigo_servidor" value="&lt;span style="font-weight: bold;"&gt;12000&lt;/span&gt;" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;12000&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; corresponde a las &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;12:00&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; multiplicado por &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;10&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;. Podemos personalizar el código generado cambiando el &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;10&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; por otro numero u otras operaciones más complejas. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Ahora hay que crear la función en &lt;span style="color: rgb(51, 102, 255);"&gt;wp-comments-post.php&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;//control de validacion del codigo enviado en el formulario&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$codigo_recibido         = trim($_POST['codigo_servidor']);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;&lt;br /&gt;$codigo_control          = date("Hi")*10;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;if( $codigo_recibido &amp;gt; $codigo_control -150 &amp;amp;&amp;amp; $codigo_recibido &amp;lt; $codigo_control +150 ){&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;$comment_author       = trim(strip_tags($_POST['author']));&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;$comment_author_email = trim($_POST['email']);&lt;br /&gt;$comment_author_url   = trim($_POST['URL']);&lt;br /&gt;$comment_content      = trim($_POST['comment']);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;La variable "codigo_recibido" recoge el valor del campo oculto que hemos creado para el formulario y "codigo_control" contiene un valor estraido de la hora, minuto y multiplicado por 10 (misma operación que la de comments.php).&lt;br /&gt;&lt;br /&gt;Después  creamos una función que encierra las variables ya existentes (author, email, etc ) y que se encarga de comparar que el código que se envió en el formulario de comentarios sea igual que el del servidor.&lt;br /&gt;Como el código se genera con la hora y minuto le añadimos un margen de 15 minutos para escribir el comentario desde que se recibió la página. Podemos aumentar el tiempo aumentando el valor. En mi caso 150 equivale a 15 minutos porque multiplicamos por 10. Si por ejemplo hubiésemos multiplicado por 2 pondríamos 30 para los 15 minutos.&lt;br /&gt;&lt;br /&gt;El condicional no permite que se procesen las variables de su interior si el código del servidor y del formulario no son iguales y nos envía a la página de error del formulario. Esto es lo que les sucederá a los spammers que envíen comentarios automáticos  ya que su plantilla no tendrá el código oculto, y en el caso de que lo añadiesen tampoco les serviría porque cambia continuamente.&lt;br /&gt;&lt;br /&gt;Si se quiere complicar más el tema se puede añadir la fecha y otras operaciones, pero dudo mucho de que un spammer se dedique a estudiar detenidamente como funciona el sistema, averigüe  de donde se obtiene el código y programe una plantilla que cree los códigos de forma sincronizada con la hora de tu servidor... aunque quién sabe.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Este apaño es de cosecha propia y lo he realizado con mis limitados conocimientos de programación. Existen otras maneras mejores de realizar esto, pero yo no sabría hacerla.&lt;br /&gt;&lt;br /&gt;Espero que os sirva de ayuda.&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-7628935850465591424?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/7628935850465591424/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/02/bloquear-spam-en-los-comentarios-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7628935850465591424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/7628935850465591424'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/02/bloquear-spam-en-los-comentarios-de.html' title='Eliminar spam en los comentarios de wordpress II'/><author><name>Rober</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_E31ePWN5DwQ/SZKlIseS4iI/AAAAAAAAAAM/VXl9NyIkh-I/s72-c/grafico-spam.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2112907815937797445.post-6745811533529497747</id><published>2009-01-30T10:35:00.009+01:00</published><updated>2009-02-01T19:59:52.209+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wordpress'/><category scheme='http://www.blogger.com/atom/ns#' term='eliminar'/><category scheme='http://www.blogger.com/atom/ns#' term='spam'/><category scheme='http://www.blogger.com/atom/ns#' term='bloquear'/><title type='text'>Bloquear el spam en los comentarios de wordpress</title><content type='html'>Desde hace un par de meses tengo un videoblog creado con wordpress. Y desde hace un mes tengo un grave problema de spam.&lt;br /&gt;&lt;br /&gt;La verdad es que el blog apenas tiene 2 o 3 visitas diarias, pero he tenido la mala suerte que algún bot de spam me ha fichado. He llegado a recibir 1200 spam en un solo dia. Básicamente son  comentarios en Ingles que enlazan con Webs donde se anuncian casinos y demás basura limpia bolsillos.&lt;br /&gt;&lt;br /&gt;Al principio no tenía ninguna protección contra el spam y recibía todos los comentarios para moderar en mi correo. El primer día cuando vi más de 50 mensajes nuevos en la bandeja de entrada creí que de pronto mi blog había tenido un éxito terrible.  Que gracia...&lt;br /&gt;&lt;br /&gt;El segundo día fueron casi 200 mensajes, y viendo que el problema no iba a solucionarse solo, decidí activar el plugin anti-spam que incorpora wordpress: &lt;span style="font-weight: bold;"&gt;Akismet&lt;/span&gt;.&lt;br /&gt;Desde ese día ningún mensaje de spam se me ha colado, pero hay algo que me preocupa: los recursos del servidor que mal gasta  el envio del spam.&lt;br /&gt;&lt;br /&gt;Buscando por la red encontré soluciones como un plugin de &lt;span style="font-weight: bold;"&gt;CAPTCHA&lt;/span&gt; o &lt;span style="font-weight: bold;"&gt;javascript&lt;/span&gt;. El plugin CAPTCHA no me convencía, así que opté por utilizar javascript.&lt;br /&gt;Creé una función que oculta   el botón de enviar mediante la librería &lt;span style="font-weight: bold;"&gt;jQuery&lt;/span&gt; y no lo muestra hasta que no se introduce  la respuesta a una pregunta.  Pero al parecer  los bots de spam  no interpretan ni el javascript ni  el CSS. Así que no me sirvió de nada.&lt;br /&gt;&lt;br /&gt;Otra idea que se me ocurrió es que probablemente los bots localizan los campos del formulario por su ID, ya que en todos los blogs de wordpress es el mismo... a no ser que... ¡¡los cambies!!.&lt;br /&gt;&lt;br /&gt;Sabía que esto podía cortar por lo sano el spam, pero no tenía ni idea de como ni donde se manejan las variables que almacenan el contenido de los comentarios. Pero finalmente el señor &lt;span style="font-weight: bold;"&gt;google&lt;/span&gt; me dio su santa respuesta.&lt;br /&gt;&lt;br /&gt;Los cambios son sencillos, se trata de cambiar el nombre que identifica el input de uno de los campos obligatorios y después poner el mismo nombre en la variable que lo recibe.&lt;br /&gt;&lt;br /&gt;Vamos a ver como hacerlo:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Abrimos el archivo &lt;span style="font-weight: bold;"&gt;comments.php&lt;/span&gt; del tema que estas utilizando. Ej. &lt;span style="font-style: italic;"&gt;tusitio.com/wp-content/themes/default/comments.php&lt;/span&gt;. Este es el archivo que genera el formulario.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Localizamos el siguiente texto:&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;&amp;lt;input name="&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;email&lt;/span&gt;" type="text" value="&amp;lt;?php echo $comment_author_email; ?&amp;gt;"/&amp;gt;&lt;br /&gt;&lt;/span&gt; (esta en por el final).&lt;/li&gt;&lt;li&gt;Sustituye "&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;email&lt;/span&gt;" por otro nombre, por ej. "correo".&lt;/li&gt;&lt;li&gt;Guardamos y ahora abrimos el archivo &lt;span style="font-weight: bold;"&gt;wp-comments-post.php&lt;/span&gt;. que se encuentra en la raiz. Ej. &lt;span style="font-style: italic;"&gt;tusitio.com/wp-comments-post.php&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Localizamos:&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;$comment_author_email = trim($_POST['&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;email&lt;/span&gt;']);&lt;/span&gt;&lt;br /&gt;(hacia la mitad del documento).&lt;/li&gt;&lt;li&gt;Sustituye '&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;email&lt;/span&gt;' por el nombre que has puesto, en mi caso 'correo'.&lt;/li&gt;&lt;li&gt;Guardamos, lo subimos y listo.&lt;/li&gt;&lt;/ol&gt;Para más seguridad también se puede hacer  con los otros inputs.&lt;br /&gt;&lt;br /&gt;Desde que hice este cambio Akismet ya no ha vuelto a detectar spam. Espero que duré.&lt;br /&gt;&lt;br /&gt;Comenten cualquier duda o crítica.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Revisión del 31/02/2009:&lt;/span&gt;&lt;br /&gt;Un día después el truco del almendruco ya a perdido su efectividad. Malditos... seguiré investigando.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Revisión del 31/02/2009:&lt;/span&gt;&lt;br /&gt;Estoy probando un nuevo sistema. En el próximo post daré mas detalles sobre el resultado.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-6745811533529497747?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/6745811533529497747/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/01/bloquear-el-spam-en-los-comentarios-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/6745811533529497747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/6745811533529497747'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/01/bloquear-el-spam-en-los-comentarios-de.html' title='Bloquear el spam en los comentarios de wordpress'/><author><name>Rober</name><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-2112907815937797445.post-5623425945894938643</id><published>2009-01-28T16:52:00.006+01:00</published><updated>2009-01-30T00:51:59.038+01:00</updated><title type='text'>Eliminando la barra de Blogger</title><content type='html'>Esta es la primera vez que utilizó un sistema tipo Blogger para crear una Web. Tiene la ventaja de que tienes hosting gratuito y siempre esta operativo. La desventaja es que hay límites en la personalización del sitio tanto en diseño como programación. En un principio hubiese descartado Blogger para crear mi blog, pero el hecho de que ahora permitan utilizar la publicidad de Adsense, ha hecho que me haya "atrevido" a publicar mi blog en Blogger.&lt;br /&gt;&lt;br /&gt;Pero nada más empezar a personalizar la plantilla ya surgen los primeros inconvenientes: ¿como quitar la barra superior de Blogger?.&lt;br /&gt;&lt;br /&gt;Esta barra se añade automaticamente con un iframe y no se puede personalizar. Buscando por ahí he encontrado un par de soluciones basadas en ocultar el iframe mediante CSS. La &lt;a href="http://www.microsiervos.com/archivo/weblogs/como-eliminar-la-barra-de-blogger.html"&gt;primera&lt;/a&gt; usando "visibility:hidden" pero tiene el inconveniente que deja un espacio en el lugar de la barra. La &lt;a href="http://ayudaparaelblog.blogspot.com/2007/03/ocultar-la-barra-de-navegacin-de.html"&gt;segunda&lt;/a&gt; con la combinación de varías propiedades entre ellas "visibility:hidden" y "display:none". La segunda era más apropiada aunque se puede depurar y reducir a solo "display:none".&lt;br /&gt;Vamos a ver como hacerlo (lo explicaré a modo para todos los públicos):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Abre el editor HTML (dentro de la pestaña Diseño).&lt;/li&gt;&lt;li&gt;Busca por el final la línea que pone: &lt;font style="color: rgb(255, 0, 0);"&gt;]]&amp;gt;&amp;lt;/b:skin&amp;gt; &lt;/font&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Justo encima añadimos el siguiente código CSS:&lt;br /&gt;&lt;br /&gt;&lt;font style="color: rgb(255, 0, 0);"&gt;iframe#navbar-iframe{&lt;/font&gt;&lt;br /&gt;&lt;font style="color: rgb(255, 0, 0);"&gt;   display:none; &lt;/font&gt;&lt;br /&gt;&lt;font style="color: rgb(255, 0, 0);"&gt; }&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;Este código ocultará el iframe que contiene la barra de Blogger.&lt;br /&gt;&lt;br /&gt;Pero esto me plantea una duda: ¿Esto esta permitido?. La verdad no losé. Pero son muchos los blogs sin barra, así que... será que si... ¿o no?.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2112907815937797445-5623425945894938643?l=sinprogramar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sinprogramar.blogspot.com/feeds/5623425945894938643/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://sinprogramar.blogspot.com/2009/01/eliminando-la-barra-de-blogger.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5623425945894938643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2112907815937797445/posts/default/5623425945894938643'/><link rel='alternate' type='text/html' href='http://sinprogramar.blogspot.com/2009/01/eliminando-la-barra-de-blogger.html' title='Eliminando la barra de Blogger'/><author><name>Rober</name><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></feed>
