Contenido de la categoría Internet

« Entradas anteriores

El anexoM te carga las pilas del ADSL2+

Si disfrutas de un ADSL2+ y te sincroniza a una buena velocidad (a mi me sincroniza a 19500kbps) te animo a que te actives el anexoM, en mi caso ha sido tan fácil como ir al panel de control de la web de Jazztel y seguir 4 enlaces. Los resultados son impresionantes, he pasado de subir a 50Kb/s a casi 200Kb/s.

anexoM

Revisando el status de la línea ADSL en el router veo que ahora sincroniza:

Upstream (Kbps): 1618
Downstream (Kbps): 19065

Ha bajado un poco la descarga pero la subido se ha visto agradablemente incrementada.

Diagrama del informático neófito

Hoy ha llegado a mis manos una viñeta de xkcd que me ha parecido más que merecedora de ser traducida:

Diagrama del informático

Esto se lo envío a mi madre que le será de mucha ayuda ;)

Archivo original

Función PHP para descargar vídeos de youtube

Funciona en la fecha terrestre 23/08/2009:

PHP:
  1. function descarga_video_youtube($youtube,$nom=false){
  2.         $tot = file_get_contents($youtube);
  3.         preg_match('/, "t": "(.*?)",/s', $tot, $regs);
  4.         $codi = $regs[1];
  5.         $_video_id = explode("=",$youtube);
  6.         $video_id = $_video_id[1];
  7.        
  8.         if(!$nom){
  9.             preg_match('/title": "(.*?)",/s', $tot, $nomini);
  10.             $nom = urldecode($nomini[1]);
  11.         }
  12.         $ruta_video = "videos/$nom.flv";
  13.         $url = "http://www.youtube.com/get_video?video_id=$video_id&t=$codi";
  14.        
  15.         $video = file_get_contents($url);
  16.        
  17.         $fp = fopen($ruta_video,'w');
  18.         fputs($fp,$video,strlen($video));
  19.         fclose($fp);
  20.        
  21.         return true;
  22.     }

El uso es bien sencillo:

Si sólo se le pasa la URL del vídeo, lo descargará en la carpeta videos/titulo del video en youtube.flv

PHP:
  1. descarga_video_youtube("http://www.youtube.com/watch?v=edZYah2CdLY")

Si le añadimos el segundo parámetro (nombre), nos guardará el vídeo en la carpeta videos/nombrequelehayamospuesto.flv

PHP:
  1. descarga_video_youtube("http://www.youtube.com/watch?v=edZYah2CdLY","nombrequelehayamospuesto")

¿que son pagerror.gif y refresh.gif? ¡solucionado!

Vaya, después de varios meses recopilando logs de errores 404 sin ningún tipo de sentido, hoy me he decidido a buscar cual era el motivo por el cual dos imágenes imaginarias (pagerror.gif y refresh.gif) aparecían en dichos logs de páginas no encontradas. Parece ser que el error solo se da en versiones de Internet Explorer 6. Tambien parece que dichas imágenes NO EXISTEN en mi servidor (ni en ninguno de las personas que se hayan encontrado con el problema), pues vaya... y entonces ¿porqué? ¡muy sencillo!.

Resulta que nuestro amigo de la infancia Internet Explorer 6 se resiste a ser como los demás (si, después de tantos años de andaduras el tío no ha madurado lo más mínimo) y cada vez que detecta un iframe sin el atributo src dentro de una página cargado mediante SSL (https://), se decide sin ningún tipo de pudor a cargar una página de error, la cual increíblemente carga las supuestas imágenes desde el servidor donde se ha cargado el iframe. Esto es ... una chapuza, yeah!

¿Solución? fácil, hagamos lo que hagamos que necesitemos un iframe vacío, tan solo tenemos que ponerle el siguiente atributo src:

HTML:
  1. <iframe src="javascript:false;" />

Yo (y mi ego) 1 - Internet Exploter 0

Más información en la keynote de microsoft

pagerror.gif refresh.gif

Anomalía en esquemas en Firefox

No tengo mucha idea de cómo explicar esto, a ver si alguien se anima a esclarecer un poco los términos.

He encontrado una ligera anomalía (por no llamarlo bug explotable) en el trato que da Firefox de las URLs que contienen esquemas no reconocidos, ya que si lanzamos una dirección (del tipo ed2k:) desconocida para el navegador, este muestra una alerta. Esto podría no ser nada si no fuese porque nos puede permitir saber que software tiene instalado un visitante. Lo explico:

El principal problema de esto es que si abrimos una URL desconocida por el navegador desde javascript, este lanzará una excepción (un error) que nos permitirá saber si el visitante tiene instalado un programa u otro similar (por ejemplo, con el esquema callto: nos puede abrir Skype como un cliente distinto de Voip).

A continuación podéis ver el script en ejecución*: ver Demo

*: Necesario Firefox, la ejecución puede llegar a colgar el navegador, se guardan datos estadísticos para posterior analisi y post en el blog.

He abierto un track en bugzilla para que me digan algo :P.

Timo 2.0 en toda regla

Llego a genbeta desde menéame para leer una noticia que me ha hecho bastante gracia, ya que a los señores de eBay les han dejado la parte trasera como la bandera de japón con Skype, me explico.

Según la gente de genbeta, cuando eBay compró Skype, tan solo compró la parte grafica (la GUI) y los chorrocientos millones de usuarios (480 millones de usuarios). Parece ser que el corazón del programa estaba desarrollada por una tercera empresa propiedad -atención- de los desarrolladores de Skype, con lo que se aseguraron tras la venta seguir teniendo derechos de alguna forma sobre el motor de la aplicación.

Cito la noticia:

Joltid ofreció licencias sobre el núcleo de Skype cuando eBay la compró en 2005, pero ahora los dueños de Joltid afirman que las licencias han caducado y que eBay infringe sus derechos al seguir usándolas. Para resolver el tema, han llevado el caso a los tribunales, y la vista será a mediados del año próximo. Vamos, que vendieron la imagen del sistema y la gestión de los usuarios, pero se quedaron el cerebro.

¿Cómo pueden ser tan tontos en eBay de comprar un software el cual no está completo? ¿Son realmente tontos o es que les tomaron el pelo? Si les tomaron el pelo, ¿quien tiene razón?.

Esto de las licencias y las patentes es un coñazo. Cosas que uno no entiende del mundo de los negocios, divide y vencerás...

Configurar VirtualHost para tener varios dominios con su directorio cada uno en Apache

Esto me lo dejo aquí a modo de recordatorio para configurar el dichoso httpd.conf para poder tener varios sitios en local con su correspondiente dominio (local tambien).

Primero añadimos los dominios en el archivo hosts:

127.0.0.1 local.dominio-1.org
127.0.0.1 local.dominio-2.net

Y luego añadimos las siguiente líneas a nuestro querido httpd.conf:

CODE:
  1. NameVirtualHost  127.0.0.1
  2. <VirtualHost local.dominio-1.org>
  3.     ServerName    local.dominio-1.org
  4.     DocumentRoot    "D:/www/dominio-1.org/web/"
  5.     DirectoryIndex  index.php
  6.     AccessFileName  .htaccess
  7.     ErrorLog        "D:/www/dominio-1.org/logs/error.log"
  8.     LogLevel        warn
  9.     CustomLog      "D:/www/dominio-1.org/logs/access.log" combined
  10.     <Directory "D:/www/dominio-1.org/web/">
  11.         Options -Indexes FollowSymLinks
  12.         AllowOverride AuthConfig FileInfo
  13.         Order allow,deny
  14.         Allow from all
  15.     </Directory>
  16. </VirtualHost>
  17.  
  18. <VirtualHost local.dominio-2.net>
  19.     ServerName    local.dominio-2.net
  20.     DocumentRoot    "D:/www/dominio-2.net/web/"
  21.     DirectoryIndex  index.php
  22.     AccessFileName  .htaccess
  23.     ErrorLog        "D:/www/dominio-2.net/logs/error.log"
  24.     LogLevel        warn
  25.     CustomLog      "D:/www/dominio-2.net/logs/access.log" combined
  26.     <Directory "D:/www/dominio-2.net/web/">
  27.         Options -Indexes FollowSymLinks
  28.         AllowOverride AuthConfig FileInfo
  29.         Order allow,deny
  30.         Allow from all
  31.     </Directory>
  32. </VirtualHost>

Y listos! ideal para los que no se aclaran ni p'atrás (como yo :P).

NOTA: modificad las comillas “...” por las de SHIFT+2.
NOTA 2: Creo que nadie lo ha probado, ya que había un fallo en el paste y no se veía el código VirtualHost ...

Talleres subflash 2009

Talleres Subflash... eh yo estoy ahí­!

Un año más los talleres Subflash ya están de vuelta, con gran ilusión yo ya me he apuntado. Para los pocos visitantes de este blog que no conozcáis los talleres Subflash, tan solo os puedo comentar que son los talleres para profesionales del web más amenos, divertidos, familiares y altamente valorados por sus habituales (como un servidor).

Este año repetimos lugar en la Villa Universitaria de Alicante, las fechas son 28, 29 y 30 de Agosto (que cae de viernes a domingo), el precio es de 100€ modalidad completa (los 100€ mejor invertidos del año) y en el momento de escribir esta entrada quedan 26 plazas (de 50).

Si queréis más información no dudéis en visitar la página oficial de los talleres Subflash 2009 o en el post del blog de Subflash.

Ah, y gracias Marcos y a todo el equipo de Subflash por hacer posible estas minivacaciones profesionales.

Bookmarklet para detectar elementos HTML obsoletos

Basandome en una entrada de webintenta donde menciona una CSS para detectar los elementos y atributos obsoletos, propuestos como obsoletos o elementos vacíos, he montado este bookmarklet para cargar en cualquier página, ya que tan solo ejecutando el enlace de los favoritos, se ejecutará un script que cargará la CSS en la página donde nos encontremos.

Detectar elementos obsoletos

Más información de cómo colorea los elementos en la página del autor de la CSS diagnostics

Es divertido de usar, al menos para criticar un rato :^P

Correcto formato de formularios XHTML

Hace una semana mandé un correo a la lista de Ovillo preguntando cual creía la gente que era la forma más correcta de maquetar un formulario. Las respuestas fueron varias y estuvimos comentando cuales eran los pros y los contras de cada método utilizado.

Finalmente y después de mucho divagar e intentar acercar opiniones me llegó un correo de Daniel Navarro donde daba con una muy correcta solución, ya que a las fuentes se remitió y razón no le faltó (olé):

En un DTD estricto se especifica que dentro de un form sólo puede haber elementos de bloque (que no sean otros form). Así que entre los diferentes controles y el form debe de mediar un elemento de bloque como div o fieldset, por ejemplo. Esto te falta en la solución A. Además, obligas a saltos de línea con br y esto limita la flexibilidad de CSS.

Así que finalmente ganó la opción:

XML:
  1. <form>
  2.     <fieldset>
  3.         <div>
  4.             <label for="campo">Campo:</label>
  5.             <input id="campo" type="text" />
  6.         </div>
  7.         ... más aquí ...
  8.     </fieldset>
  9. </form>

Gracias a todos los que participasteis y me ayudasteis!

« Entradas anteriores

Get Adobe Flash playerPlugin by wpburn.com wordpress themes