Javier Casares

  • Cómo hacer muchas peticiones HTTP simultáneas en PHP

    ·

    Uno de los problemas que habitualmente nos pueden frenar la carga de un sitio es si leemos mucha información de varios sitios de forma simultánea, como podría ser la lectura de varios feeds. Y es que habitualmente se usa la función file_get_contents() que tiene una cosa: es síncrona, es decir, hay que ejecutarla, esperar a que finalice, y volver a ejecutarla… pero ¿por qué esperar a qué acabe de leer para hacer otra llamada? Para hacerlo podemos utilizar las funciones curl_multi_* que básicamente permiten hacer muchas llamadas cURL en muy poco tiempo. No es del todo asíncrono y en paralelo,… Read More →

  • Open Standard Media (OSM) Player

    ·

    Uno de los poyos que siempre me he encontrado a la hora de poner un reproductor de vídeo en la web es que en la mayoría de casos sólo aceptaba vídeos flash (.flv). La cosa es que con el HTML 5 y con jQuery se han montado un reproductor llamado Open Standard Media que tiene muy buena pinta, es código abierto y gratuito. Entre otras cosas, permite el uso de HTML 5, soporta los nuevos elementos audio y video del HTML 5 con los formatos estándar, para el resto de formatos monta un reproductor Flash, se le puede cambiar el… Read More →

  • face.com, la API que detecta caras en fotos

    ·

    Aún no sé la utilidad de esta herramienta, pero como pronto, me ha parecido genial algo así… quizá podría servir para que al subir una foto a una red social el sistema pueda llegar a etiquetar a alguien de forma automática. Y es que face.com ha abierto su API a desarrolladores, y la verdad es que para ser abierto y gratuito, tiene buena pinta y da cierta información… Lo bueno de este sitio es que tienen varios ejemplos interesantes para varios lenguajes de programación e incluso integración con facebook y twitter. La idea es que con una simple petición a… Read More →

  • Lector de discos duros SATA externo

    ·

    Hace unos días que me puse a hacer un poco de limpieza de «elementos tecnológicos» en casa (oseasé, a tirar mierdas de placas, cables y demás porquería que se acumula) y hablando con Ana de Traxtore me comentó que tenían una cosilla que me podría ser útil para los discos externos. Y es que cuando empiezas a tener 5 discos por ahí sueltos, y luego empiezas a desmontar cajas de esas con discos USB y demás, y te apalancas con 8 discos, se hace la cosa ingestionable. Así que finalmente acabé comprándome un disco duro de 2TB para poder quitarme… Read More →

  • font dragr: prueba tus fuentes sólo arrastrándolas

    ·

    Aunque hago un parón en cuanto a publicar de HTML 5, he encontrado esta herramienta, web o como queramos llamarlo que tiene su gracia, sobretodo si te dedicas a maquetar o eres diseñador. El sitio se llama font dragr y básicamente es una página en la que arrastrando un fichero de tipo de letra -truetype (ttf), opentype (otf), scalable vector graphics (svg) o Web Open Font Format (WOFF)- te actualizará los textos de la página con esa fuente. Además, el contenido original de la página es editable, por lo que puedes poner un texto de ejemplo y así ver cómo… Read More →

  • HTML 5: formularios, el elemento 2.0 (parte 2)

    ·

    Hace unos días explicaba principalmente el elemento input de los formularios en HTML 5 y hoy toca el resto de elementos. Y es que no es moco de pavo todo lo que hay. fieldset Este elemento se utiliza para agrupar varios elementos de un formulario… si un formulario tiene varios «bloques» o contenidos distintos, se deberían agrupar con este elemento. Si se le indica el atributo disabled entonces los elementos contenidos en él también lo están. También se le puede indicar el atributo form que hace referencia al formulario padre, y el atributo name, para acceder externamente con un nombre… Read More →

  • HTML 5: formularios, el elemento 2.0 (parte 1)

    ·

    Si hay un elemento que ha evolucionado enormemente con respecto a las versiones anteriores sin duda es el de los formularios. Y es que en estos últimos 10 años de ha construido lo que se llama web 2.0 (también conocido como yo ya había visto eBay en el 98 y era una web 1.0, así que alguien me está tomando el pelo). En fin, no quiero discutir sobre cómo se llaman las cosas en internet, porque la gente las llama como le da la gana. Aunque sí que es cierto que hay algo que no se puede obviar, y es… Read More →

  • Formas de validar un correo electrónico

    ·

    Una de las cosas que habitualmente es necesario hacer es validar cuentas de correo. Hay muchas cosas a hacer, pero una de las primeras es saber si la cuenta de correo está «bien formada». Un artículo muy interesante sobre distintas formas de verificar cuentas, basadas en una serie de expresiones que sí han de validar, y otras que no han de hacerlo. La expresión que en principio se ajusta más a todas las posibilidades es la siguiente: /^([\w\!\#$\%\&\’\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\’\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i Con esto tendríamos un código similar a este: <?php $texto = «prueba@ejemplo.com»; $expresion = «/^([\w\!\#$\%\&\’\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\’\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i»; preg_match($expresion , $texto , $encuentros); print_r($encuentros); ?>… Read More →

  • CSS Reset para HTML 5

    ·

    Llevo varios días intentando encontrar un CSS Reset pero para HTML 5. Hasta ahora usaba el de Yahoo! YUI, pero incluso la versión 3 no da soporte a las nuevas etiquetas. Por eso me he decidido a revisar un poco los elementos que hay hasta ahora e intentar ofrecer una primera versión del CSS Reset para HTML 5. html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td,hr,iframe,embed,object,legend{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var,optgroup,a,small,q,time,samp,kbd,sup,sub,mark,col,colgroup,tbody,thead,tfoot,tr,td,th,label,input,button,textarea,select,optgroup,option,label,output{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;font-variant:normal;}i{font-style:italic;}b{font-weight:bold;}del,ins{text-decoration:none;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:»;}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:baseline;}sub{vertical-align:baseline;}legend{color:#000;}input,button,textarea,select{*font-size:100%;}header,article,section,aside,footer,nav,hgroup,address,figure,figcaption,video,audio,legend,datalist,optgroup,details,summary,command,menu{display:block;margin:0;padding:0;} Se puede descargar el CSS Reset para HTML 5. NOTA: Que conste que es una propuesta personal, basándome en la mayoría de los elementos que propone el HTML 5. ACTUALIZACIÓN: Me han pasado este de Rich Clark. Read More →

  • El código 204 No Content

    ·

    Hace un tiempo estuve hablando del protocolo HTTP/1.1 y su relación con el SEO. Haciendo un poco de revisión de aquel artículo me quedé con la duda de uno de los códigos: el 204 No Content. Al principio me había parecido verlo en algún sitio que permitía hacer alguna redirección, cosa que no tenía mucho sentido, pero «se quedó ahí». Ahora he estado investigando un poco más del tema y he acabado entendiendo el porqué de este código. Si revisamos lo que dice el estándar, veremos algo más de luz: 204 No Content The server has fulfilled the request but… Read More →

  • Google MayDay y Google Caffeine

    ·

    La semana pasada cuando fui al EventoSEO, me paré unos minutos a hablar con Albert y me preguntó que cómo llevaba lo del MayDay. Tuve que preguntarle hasta 3 veces que de qué me estaba hablando… y es que estas últimas semanas he estado bastante desconectado en cuanto a lo que «se habla de SEO» por ahí… Para los que no lo sepan, el Google MayDay es un algo que se produjo en Google a principios del mes de mayo pero que ha afectado de forma masiva a partir de la segunda semana del mes… Os voy a dar mi… Read More →

  • HTML 5: las tablas… ¿de multiplicar?

    ·

    Y aquí un día más para seguir hablando de HTML 5. Por cierto he creado una sección especial en la que he recopilado todas las entradas sobre ello. En esta ocasión toca hablar de las tablas, y es que, aunque las tablas han sido un elemento que parecía que iba a desaparecer, no es así aunque sí que se le quiere dar un uso muy concreto. Y es que las tablas representan información en una o más dimensiones que se pueden representar en forma de tabla (qué frase más retroalimentada…). Lo que sí queda muy escrito es que las tablas… Read More →

  • Cómo Ligar en Internet: mi nuevo libro

    ·

    Ahora no recuerdo exactamente cuándo fue, pero más o menos a mediados de noviembre del año pasado recibí un correo de Anaya Multimedia en el que me comentaban si estaba interesado en escribir un libro que se llamaría algo como Cómo Ligar en Internet. Al principio la verdad es que me quedé sorprendido… no tenía nada claro sobre qué podría ir el libro, pero después de unas cuantas conversaciones con Susana, finalmente decidí que me embarcaría en escribirlo. El libro saldrá el próximo lunes 7 de junio en muchas librerías, como Casa del Libro, El Corte Inglés o Fnac, aunque… Read More →

  • HTML 5: imagen grande, ande o no ande

    ·

    Ahora que ya tenemos la mayor parte del HTML formateado, toca hacer revisión del resto de elementos más detallados. Y, al igual que pasó con los enlaces, con las imágenes voy a dedicar un capítulo entero para ello ya que aunque la configuración no es tan compleja, se lo merece. Las imágenes se representan con el elemento img. Una imagen puede ser un mapa estático (png, gif, jpg…), vectorial (pdf, xml con svg…), imágenes anmadas (gif, apng…) y otra serie de elementos que cada navegador soporte, pero que el propio HTML 5 no especifica, ya que queda en manos de… Read More →

  • Para qué navegador he de programar

    ·

    En muchas ocasiones escucho una grandiosa frase del estilo: es que eso que me dices no funciona en Internet Explorer 6. A parte de que Explorer 6 es un producto caducado, y no lo digo yo, lo dice la propia Microsoft con una página sobre el upgrade a Explorer 8 que me parece especialmente divertida por la imagen que ofrece (verdad que no beberías leche caducada hace 9 años?), creo que vale la pena hacer cosas para cumplir el Principio de Pareto, también conocido como la regla del 80-20. ¿Esto que significa? Pues que, como en muchas ocasiones, Yahoo! dispone… Read More →

  • Mejora tu sitio, sólo cambiando el .htaccess

    ·

    En muchas ocasiones los desarrolladores web no disponen de servidores dedicados sino que sólo tienen acceso a su propia cuenta a través de FTP o similar. Es por esto que estaría bien preparar un fichero de configuración que ya esté configurado a la hora de desarrollar un sitio… <IfModule mod_deflate.c>   SetOutputFilter DEFLATE   BrowserMatch ^Mozilla/4 gzip-only-text/html   BrowserMatch ^Mozilla/4\.0[678] no-gzip   BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html   SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip </IfModule> <IfModule mod_rewrite.c>   RewriteEngine on   RewriteRule ^(.*)\.(\d+)(_m_\d+)?\.([^\.]+)$ $1.$4 [L,QSA] </IfModule> <IfModule mod_expires.c>   ExpiresActive On   ExpiresByType image/png «access plus 1 year»   ExpiresByType image/gif «access plus 1 year»   ExpiresByType image/jpeg «access plus 1 year»   ExpiresByType image/vnd.microsoft.icon… Read More →

  • HTML 5: dándole color a lo que escribimos

    ·

    Si por algo se inventó el HTML en su día fue para hacer «markup» de los textos, lo que, en el fondo, significa que se inventó para hacer que los textos de la red de redes tuvieran una forma de darles color, formato y, sobretodo, vinculación. Pero como ya he hablado de la vinculación de los elementos, ahora toca hablar de los elementos que hacen que podamos tener negritas, cursivas, y una serie de cosas que cualquier texto debería poder tener. em Aunque muchos asocian el elemento em a las cursivas, no es así. Habitualmente se representa como una cursiva… Read More →

  • Usa el tipo de letra que quieras en tu sitio

    ·

    Estos días hablando con mi diseñadora favorita, Ana, hemos cruzado algunas cosas sobre la posibilidad de «incrustar tu fuente» en los sitios web. Ella últimamente hace diseños para algunos hoteles, y estos siempre quieren cosas especiales. Al final de hablar sobre ello, comenzamos a ver el tema del @font-face del CSS3. Pero, claro está, nos encontramos con el asunto de que no funciona en todos los navegadores. Así que me he puesto a investigar y he encontrado un código, un poco extraño, pero que parece ser la solución a la compatibilidad con todos los navegadores, incluido Internet Explorer. <!DOCTYPE html>… Read More →

  • Cómo precargar elementos CSS, JS y similares

    ·

    Seguro que alguna vez habéis pensado cómo hacer que vuestro sitio vaya todavía más rápido. Pues hay forma de hacerlo, sobretodo si la gente suele visitar vuestra página principal y luego sigue navegando. La cuestión es que en muchas ocasiones los CSS y JavaScript de las páginas principales de los sitios difieren mucho del resto de la web… ¿qué hacer para mejorar esto? Pues tener un CSS y JS específico sólo para la página principal y pre-cargar los CSS y JS del resto de la página en la caché del navegador. Para esto, que puede ser un poco complejo, podemos… Read More →

  • HTML 5: enlaces que cobran vida

    ·

    Si hay un elemento que hace que Internet sea lo que es son los hipervínculos, los enlaces o, en definitiva en elemento anchor. Y es que la importancia de los enlaces en la red de redes no es trivial, ya que es lo que hace que Internet se distinga de la mayor biblioteca del mundo: el poder saltar de una información a otra sin necesidad de ir al final del libro y buscar en la bibliografía. Los enlaces, hasta ahora, simplemente eran eso, enlaces. Poco a poco en los últimos años se han ido creando elementos suplementarios, pero que al… Read More →