SMS gratis ya!

Por una sociedad de la información con presente y futuro, mensajes de texto para móvil gratis ya! (o al menos a precio de coste, osea ‘casi nada’).

SMS GRATIS YA!

Web Workers

O lo que vendría a ser multitasking en javascript: web workers draft

doble pipe

JavaScript:
  1. if(x){
  2.   return x;
  3. }else{
  4.   return y;
  5. }
  6. // Equivale a:
  7. return x ? x : y;
  8. // Equivale a:
  9. return a || b;

Entidades HTML

A Sloth le gustan las entidades HTML, y HTML5 viene cargadito de ellas: entidades HTML definidas en la revisión 5 del lenguaje. Ahí es nada :D

Lo bueno de FireBug para Internet Explorer 6+

Buxplorer es un pequeño bookmarklet (unas 700 líneas de chatarra) que te iniciará una barra inferior en tu Internet Explorer y que te permitirá recorrer el código HTML viendo los margenes y los paddings de cada elemento, de la misma forma que lo hace Firebug. Es un excelente complemento para la developer toolbar (que tan solo te bordea el elemento).

Hace más de un año que tengo esto pendiente de terminar, naturalmente es una beta que funciona con pinzas, pero funciona:

HTML:
  1. javascript:scScript=document.createElement('script');scScript.src='http://www.javascript.es/bmk/buxplorer.js?nocache='+Math.random();scScript.type='text/javascript';void(document.getElementsByTagName('head')[0].appendChild(scScript));

Recuerda, el bookmarklet que os propongo sólo funciona con Internet Explorer 6.

A ver si alguien se anima a meterle un empujón :), y si lo pruebas, me das tu opinión (O el gran FSM colgará un Ubuntu al azar).

Novato de AdobeAIR (en JavaScript)

Cosas que he aprendido hoy a hacer con AIR y JS:

Abrir una URL en el navegador predefinido del sistema:

JavaScript:
  1. function openInBrowser(url) {
  2.     air.navigateToURL( new air.URLRequest(url));
  3. }

Guardar datos en un fichero:

JavaScript:
  1. var flash = window.runtime.flash;
  2. var file = flash.filesystem.File;
  3. var fm = flash.filesystem.FileMode;
  4. var fs = new flash.filesystem.FileStream();
  5. var dir = file.applicationStorageDirectory; //carpeta de la aplicación (más abajo más carpetas)
  6. var arx = dir.resolvePath("data.obj"); //data.obj es el nombre del fichero
  7. fs.open(arx, fm.WRITE);//abrimos para guardar fm.UPDATE para actualizar
  8. fs.writeUTFBytes('Hola mundo!');

Más carpetas del sistema:

JavaScript:
  1. var flash = window.runtime.flash;
  2. var _file = flash.filesystem.File;
  3.  
  4. // Carpeta de aplicación. Carpeta privada sólo para la aplicación actual;
  5. _file.applicationStorageDirectory;
  6.  
  7. // La carpeta donde se encuentra instalada la aplicación. Sólo lectura.
  8. _file.applicationDirectory;
  9.  
  10. //Escritorio del SO
  11. _file.desktopDirectory;
  12.  
  13. //la carpeta de documentos usuario del SO (C:\Documents and Settings\usuario\Mis Documentos, Users/usuario/Documents, etc...)
  14. _file.documentsDirectory;
  15.  
  16. //la carpeta del usuario del SO  (C:\Documents and Settings\usuario, Users/usuario, etc...)
  17. _file.userDirectory;

Formas de abrir un fichero

JavaScript:
  1. var fm = window.runtime.flash.filesystem.FileMode;
  2.  
  3. //Abre el fichero para sólo poder ser leido.
  4. fm.READ;
  5.  
  6. //Abre un fichero (si no existe lo crea), y borra todo el contenido actual. Solo escritura.
  7. fm.WRITE;
  8.  
  9. //Abre un fichero (si no existe lo crea), y añade todo el contenido al final del fichero. Solo escritura.
  10. fm.APPEND;
  11.  
  12. //Abre un fichero (si no existe lo crea), y permite acceder a cualquier punto del mismo para añadir o leer contenido.
  13. fm.UPDATE;
  14. // esto se usa juntamente con objetoFileStream.position=NumeroInt;

Le puedes cargar CUALQUIER libreria JS (por ejemplo JQuery)

JavaScript:
  1. var elementos = $('#aplicacion #formulario input');

Tiene expresiones regulares!

JavaScript:
  1. var absolute = f.url;
  2. absolute = absolute.replace(/file\:\/\/\/(\w)\:/,'$1:');

objetoFileStream.writeUTF es el diablo, usa objetoFileStream.writeUTFBytes

JavaScript:
  1. //esto aún no se porqué, a ver si alguien me dice porqué writeUTF coloca un bytes de control al inicio del fichero :)

Desactivar la selección de elementos

CSS:
  1. body{
  2.     -webkit-user-select:none;
  3. }

Iré poniendo más cositas hasta que termine el programita que estoy haciendo :).

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.

El mític

Es un vídeo que capturamos 'por error' allá por el 98 o 99 (a saber) con Lesmes y quedó como parte de nuestra memoria colectiva.

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")

« Previous Entries Next Entries »

Get Adobe Flash playerPlugin by wpburn.com wordpress themes