SkipScreen, Descarga en Rapidshare y Megaupload sin tener que esperar

SkipScreen, una extensión para Firefox que nos permite esquivar el tiempo de espera de RapidShare, Megaupload y un montón de páginas de descarga.

https://addons.mozilla.org/en-US/firefox/images/p/30985/1238512920

Al instalar SkipScreen, Firefox nos redigirá a la página de descarga directa. Ya no será necesario escribir códigos, llenar captchas ni esperar cuentas regresivas. Y todo con sólo instalar la extensión, no hay que instalar nada ni pagar ni un centavo por ello. Así, podemos descargar ficheros de Rapidshare, Megaupload, DepositFiles, Divshare, Linkbucks, SendspacezShare, MediaFire, Sharebee y muchos más.

Descargar SkipScreen

Visto en Baluart

Generar tráfico con Load Impact

Load Impact es una herramienta online que nos permite testear nuestro servidor generando tráfico. A medida que avanza el test de tráfico Load Impact nos detalla las estadísticas del tiempo de respuesta y carga de nuestra página en un gráfico.

Resultado Test Load Impact

Resultado Test Load Impact

La monitorización gratuita limita el número de «clientes simulados» a 50 lo que es más que suficiente para realizar «pruebas caseras».

Visitar Load Impact

Visitar Load Impact

Fuente : wwwhatsnew

Transformar direcciones web en enlaces web

La siguiente función php transforma las direcciones web de un texto por enlaces web que se abren en otra ventana.
Es un ejemplo bastante básico que fácilmente se puede adaptar a nuestras necesidades.

A la función se le puede pasar cualquier texto que ella se encarga de transformar los links.

//transforma las direcciones web de un texto que comiencen por http:// en links
function transforma_links($texto){
   if (ereg("[\"|'][[:alpha:]]+://",$texto) == false){
     $texto = ereg_replace('([[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/])', '<a href="\\1" target="\"_new\"">\\1</a>', $texto);
   }
   return($texto);
}

Fuente: http://es.php.net/

Parámetros opcionales en javascript

A diferencia de otros lenguajes javascript no posee la opción de crear funciones con parámetros con valores por defecto.
El asunto tiene un arreglo bastante «sencillo».

La vía rápida es crear las funciones con la siguiente estructura :

function mi_funcion(parametro1, parametro2){
   //queremos que parametro1 tenga por defecto el valor 33
   parametro1 = parametro1 || 33;
   //queremos que parametro2 tenga por defecto el valor false
   parametro2 = parametro2 || false;
   // ... resto código ...
}

Si además deseamos controlar algunos valores que contienen las variables en determinados momentos como puede ser el valor ‘undefined’ podemos apañar el código anterior de la siguiente manera.

function mi_funcion(parametro1, parametro2){
   //queremos que parametro1 tenga por defecto el valor 33 pero que respete posibles valores undefined
   parametro1 = (typeof parametro1 == 'undefined') ? 33: parametro1 ;
   //queremos que parametro2 tenga por defecto el valor false
   parametro2 = parametro2 || false;
   // ... resto código ...
}

¿A quién no le gusta tener una función que le facilite las cosas?

//valores por defecto 
//valor (contiene el valor actual del parámetro), defecto (contiene el valor por defecto)
//quiero_null (especifica si deseamos controlar algo especial, en este caso el valor 'undefined' , 
//                posibles valores true o false, por defecto adquiere false)
function defecto(valor, defecto, quiero_null){
	quiero_null = quiero_null || false;   
	if (quiero_null){
		valor = (typeof valor == 'undefined') ? defecto : valor;
	}else{
		valor = valor || defecto;
	}	
	return valor;
}

El código se puede «comprimir» todavía más, personalmente prefiero conservar claridad antes que ahorrarme un par de bytes.
Apliquemos la nueva función para otorgar valores por defecto a los parámetros de nuestras funciones.


//valores por defecto 
function defecto(valor, defecto, quiero_null){
	quiero_null = quiero_null || false;   
	if (quiero_null){
		valor = (typeof valor == 'undefined') ? defecto : valor;
	}else{
		valor = valor || defecto;
	}	
	return valor;
}

//nuestra función con valores por defecto
function mi_funcion(parametro1, parametro2){
   //queremos que parametro1 tenga por defecto el valor 33 pero que respete posibles valores undefined
   parametro1 = defecto(parametro1, 33, true);
   //queremos que parametro2 tenga por defecto el valor false
   parametro2 = defecto(parametro2 , false);
   // ... resto código ...
}

Validar urls con php

Me he topado con una función que permite validar urls de diferentes tipos:

https://usuario:contraseña@www.cualquiersitio.com:8080/login.php?do=login&style=%23#pagetop
http://usuario@www.cualquiersitio.com/#pagetop
https://cualquiersitio.com/index.html
ftp://usuario:****@cualquiersitio.com:21/
http://cualquiersitio.com/index.html/


//se le envía una cadena y devuelve true si es uan url válida o false en caso contrario
function url_valida($url){
  static $urlregex = "^(https?|ftp)\:\/\/([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?[a-z0-9+\$_-]+(\.[a-z0-9+\$_-]+)*(\:[0-9]{2,5})?(\/([a-z0-9+\$_-]\.?)+)*\/?(\?[a-z+&\$_.-][a-z0-9;:@/&%=+\$_.-]*)?(#[a-z_.-][a-z0-9+\$_.-]*)?\$";

return eregi($urlregex, $url);

}

Explicación paso a paso:

function url_valida($url){
//TIPO DE CONEXIÓN
$urlregex = "^(https?|ftp)\:\/\/";

//USUARIO Y CONTRASEÑA (opcional)
$urlregex .= "([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?";

//EL NOMBRE DE LA WEB O LA IP
$urlregex .= "[a-z0-9+\$_-]+(\.[a-z0-9+\$_-]+)*"; // http://x = allowed (ejemplo. http://localhost, http://routerlogin)
//$urlregex .= "[a-z0-9+\$_-]+(\.[a-z0-9+\$_-]+)+"; // http://x.x = minimum
//$urlregex .= "([a-z0-9+\$_-]+\.)*[a-z0-9+\$_-]{2,3}"; // http://x.xx(x) = minimum

//PUERTO (opcional)
$urlregex .= "(\:[0-9]{2,5})?";

//RUTA (opcional)
$urlregex .= "(\/([a-z0-9+\$_-]\.?)+)*\/?";

//GET de la ruta (opcional)
$urlregex .= "(\?[a-z+&\$_.-][a-z0-9;:@/&%=+\$_.-]*)?";

//ANCLA de la ruta (opcional)
$urlregex .= "(#[a-z_.-][a-z0-9+\$_.-]*)?\$";

//COMPROBAMOS
return eregi($urlregex, $url);
}