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’).
marc | Varios | 2 Comentarios | #Permanente
O lo que vendría a ser multitasking en javascript: web workers draft
marc | [nbsp] | Sin comentarios | #Permanente
JavaScript:
if ( x) {
return x;
} else {
return y;
}
// Equivale a:
return x ? x : y;
// Equivale a:
return a || b;
marc | [nbsp] | Sin comentarios | #Permanente
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
marc | Desarrollo web | Sin comentarios | #Permanente
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:
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).
marc | Aplicaciones web , Desarrollo web , Turoriales , Varios | 4 Comentarios | #Permanente
Cosas que he aprendido hoy a hacer con AIR y JS:
Abrir una URL en el navegador predefinido del sistema:
JavaScript:
function openInBrowser( url) {
air.navigateToURL ( new air.URLRequest ( url) ) ;
}
Guardar datos en un fichero:
JavaScript:
var flash = window.runtime .flash ;
var file = flash.filesystem .File ;
var fm = flash.filesystem .FileMode ;
var fs = new flash.filesystem .FileStream ( ) ;
var dir = file.applicationStorageDirectory ; //carpeta de la aplicación (más abajo más carpetas)
var arx = dir.resolvePath ( "data.obj" ) ; //data.obj es el nombre del fichero
fs.open ( arx, fm.WRITE ) ;//abrimos para guardar fm.UPDATE para actualizar
fs.writeUTFBytes ( 'Hola mundo!' ) ;
Más carpetas del sistema:
JavaScript:
var flash = window.runtime .flash ;
var _file = flash.filesystem .File ;
// Carpeta de aplicación. Carpeta privada sólo para la aplicación actual;
_file.applicationStorageDirectory ;
// La carpeta donde se encuentra instalada la aplicación. Sólo lectura.
_file.applicationDirectory ;
//Escritorio del SO
_file.desktopDirectory ;
//la carpeta de documentos usuario del SO (C:\Documents and Settings\usuario\Mis Documentos, Users/usuario/Documents, etc...)
_file.documentsDirectory ;
//la carpeta del usuario del SO (C:\Documents and Settings\usuario, Users/usuario, etc...)
_file.userDirectory ;
Formas de abrir un fichero
JavaScript:
var fm = window.runtime .flash .filesystem .FileMode ;
//Abre el fichero para sólo poder ser leido.
fm.READ ;
//Abre un fichero (si no existe lo crea), y borra todo el contenido actual. Solo escritura.
fm.WRITE ;
//Abre un fichero (si no existe lo crea), y añade todo el contenido al final del fichero. Solo escritura.
fm.APPEND ;
//Abre un fichero (si no existe lo crea), y permite acceder a cualquier punto del mismo para añadir o leer contenido.
fm.UPDATE ;
// esto se usa juntamente con objetoFileStream.position=NumeroInt;
Le puedes cargar CUALQUIER libreria JS (por ejemplo JQuery)
JavaScript:
var elementos = $( '#aplicacion #formulario input' ) ;
Tiene expresiones regulares!
JavaScript:
var absolute = f.url ;
absolute = absolute.replace ( /file\:\/\/\/( \w) \:/ ,'$1:' ) ;
objetoFileStream.writeUTF es el diablo, usa objetoFileStream.writeUTFBytes
JavaScript:
//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:
body{
-webkit-user-select:none ;
}
Iré poniendo más cositas hasta que termine el programita que estoy haciendo :).
marc | air , Desarrollo web | 3 Comentarios | #Permanente
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.
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.
marc | Internet , [nbsp] | Sin comentarios | #Permanente
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.
marc | videos | Sin comentarios | #Permanente
Hoy ha llegado a mis manos una viñeta de xkcd que me ha parecido más que merecedora de ser traducida:
Esto se lo envío a mi madre que le será de mucha ayuda ;)
Archivo original
marc | Internet , Otras páginas , Varios , [nbsp] | 6 Comentarios | #Permanente
Funciona en la fecha terrestre 23/08/2009:
PHP:
function descarga_video_youtube( $youtube ,$nom =false ) {
$codi = $regs [ 1 ] ;
$_video_id =
explode ( "=" ,
$youtube ) ;
$video_id = $_video_id [ 1 ] ;
if ( !$nom ) {
}
$ruta_video = "videos/$nom.flv" ;
$url = "http://www.youtube.com/get_video?video_id=$video_id&t=$codi" ;
$fp =
fopen ( $ruta_video ,
'w' ) ;
return true ;
}
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:
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:
descarga_video_youtube( "http://www.youtube.com/watch?v=edZYah2CdLY" ,"nombrequelehayamospuesto" )
marc | Aplicaciones web , Desarrollo web , Internet , Otras páginas , Varios | 2 Comentarios | #Permanente