Después de un tiempo…

Sí, lo sé he tardado mucho (más de 2 meses) en escribir un nuevo post. ¿Qué ha pasado? pues muchas cosas, primero que nada, el trabajo y el estudio han consumido mi tiempo, no en su totalidad pero si afecta, en el mundo ha pasado… nada… solo cambiaron algunas reglas del lenguaje español (RAE para que estén al tanto) aparte de eso, nada relevante, al menos para mi.

Facebook Invite Original

Facebook Invite

Ahora bien, en el mundo de internet pasan cosas y vaya cosas, Facebook tendrá su propio servicio de correo electrónico, aunque son especulaciones ya que el Lunes 15 de Noviembre Facebook ha invitado a varias personas a un evento privado y muchos piensan que es para anunciar el servicio de Webmail, a mi no me extrañaría NADA que esto sucediera, después de haber visto alianzas con Skype, Docs, creando herramientas -casi- iguales a Google Maps, etc. todo es de esperarse, aunque eso sí, la pelea será con Gmail, ya que ellos son los que ofrecen mayor espacio, mejor servicio, addons, integración con dominios y muchas cosas más, es de esperar a ver con qué sorpresa salen, nosé pero tengo el presentimiento que si eso sucede, los servidores podrían ser de Micro$oft (Vaya calidad de servicio los que tienen correo en Hotmai…) en fin, veremos si el lunes se aclara el panorama.

Para finalizar, como alguien dijo una vez: “En el mundo del internet no hay nada escrito, cosas aparecen hoy y mañana hay muchisimas nuevas y mejores” en todo caso no soy muy simptizante de Facebook, asi que al final, puede que me dé igual, eso si, Facebook es algo de lo que debemos estar bien enterados, es por eso tanto estudio y dedicación del mismo, quiérase o no es un mounstro del internet.

Sexto … ¿qué?

Sin duda y a mi criterio y sin miedo a equivocarme creo que esta ha sido la peor “publicidad” que haya visto en El Salvador.

Es que simplemente no puedo entender el mensaje de esto:

  1. ¿Sexto … ? Ok, es el nombre
  2. Ahh… es un programa de TV
  3. Ok, si se llama “Sexto…” no es necesario que “formen” el número 6 entre ustedes
  4. Ahh.. es juvenil, ¿lo habían notado?
  5. Por si no sabías es para hombres y mujeres
  6. Es mi vida… ¿atreverme?, a qué? al Sexto… no gracias 5 son suficientes.

Si se fijan (O ya se fijaron) no tiene ningún mensaje… vamos que si es un programa de TV deberían dar ganas de verlo, no de NO verlo, muy mal, lo bueno es que lo patrocina “Unicef” por lo demás es un anuncio burdo y sin sentido (contrario a lo que dice el anuncio), en fin el programa en si, nunca lo he visto, nosé si será igual de malo como su publicidad, la verdad no tengo ganas ni de verlo. FYI a las 11AM tengo cosas que hacer,

¿Es esto Publicidad?

P.D: Las cosas que me encuentro mientas espero el bus.. he llegado a la conclusión de que los buses son malos… :(

¿Cómo crear una aplicación dentro de Facebook?

Después de darme literalmente una páliza con internet, más especificos con “Google” ya que no encontraba nada de información especifica, pude recaudar un poco de información para crear un manual, más bien tuve que ir a como los programadores le llamamos “Prueba  – Error” pero al fin lo conseguí.

La verdad es que Facebook ha actualizado el core de su API y los ejemplos que existen son para la API antigua, claro que algunos han de funcionar, pero hay que ir al ritmo con esto. Ahora bien, como siempre digo “Su única limitante, es su imaginación” este manual es sólo un pequeño ejemplo de como poder crear una aplicación dentro de Facebook, ¿Por qué “dentro”? Porque corre dentro de Facebook es decir que el usuario no tiene que salir de Facebook (del dominio) para accesarla, claro pueden existir ambas posibilidades, tener una aplicación fuera de Facebook osea en tu propio dominio o tambien una dentro del dominio de Facebook, ya luego en el manual les explico bien esto.

Bueno ya sin tanto preambulo, se los dejo:
Ver Tutorial

PicHandler, manipulando imágenes al vuelo

PicHandler es el nombre que le he colocado a este script.
¿Qué hace? pues en pocas palabras cambia el tamaño de una imágen al vuelo. A veces necesitamos modificar el tamaño de alguna imágen de forma “instantánea” entonces es ahí donde podemos utilizar este script, por ejemplo cuando usamos “avatares” para un sistem de usuarios bastaría sólo con colocar <img src="pic.php?img=imagen.jpg&cwidth=128" /> y esto nos devolvería una imágen con un ancho de 128px y su altura proporcional al ancho.

Soporta las siguientes extensiones de imágenes: JPG,PNG y GIF (Ustedes pueden agregarle soporte para bmp)

Parametros (Todos se pasan através de GET):

  • img
    URL de la imágen a manipular en cuestión. Obligatorio
  • cwidth
    Tamaño del ancho deseado en pixeles. Opcional si se declara cheight
  • cheight
    Tamaño de la altura deseada en pixeles. Opcional si se declara cwidth
  • cqlty
    Calidad de la imágen desde 0 (baja) hasta 100 (alta). Opcional por defecto es 80
  • cut
    Parametro para hacer una imágen cuadrada, no importando la altura. Opcional, para usarse debe estar seteado cwidth, si cwidth tiene un valor de 90 la imágen será de 90x90px

Modo de uso:

  • Declarando un ancho fijo:
    pic.php?img=imagen.jpg&cwidth=128
  • Declarando un alto fijo:
    pic.php?img=imagen.jpg&cheight=250
  • Declarando un alto y ancho fijo:
    pic.php?img=imagen.jpg&cwidth=250&cheight=370
  • Asignando calidad a la imágen:
    pic.php?img=imagen.jpg&cwidth=300&cqlty=100
  • Convirtiendo una imágen cuadrada:
    pic.php?img=imagen.jpg&cwidth=300&cut

Algunos me preguntan ¿Por qué script? pues para poder utilizarlo a cualquier hora sin necesidad de declarar una clase a una variable o crear otro php para difnirlo, etc. el código está “un” tanto optimizado para que utilice pocos recursos, espero que les pueda servir cómo me sirve a mi, cualquier duda, comentario, aclaración, sugerencia siempre es bien recibida.

Si desean pueden probar el código acá: Demo

Y está es una prueba en vivo:
Dog Jumping Sign

Sin más preambulos el código:

<?
	$image = getimagesize($_GET['img']);
	$qlty = $_GET['cqlty'] && $_GET['cqlty'] <= 100 ? $_GET['cqlty'] : 80;
	if ($image === false) die;
	$mime = explode('/', $image['mime']);
	$ext = $mime[1];

	switch($ext){
		case('jpg'): case('jpeg'):
			$buffer = ImageCreateFromJPEG($_GET['img']);
		break;
		case('png'):
			$buffer = ImageCreateFromPNG($_GET['img']);
			$qlty = ($qlty * 0.1 == 10) ? 9 : ceil($qlty * 0.1);
		break;
		case('gif'):
			$buffer = ImageCreateFromGIF($_GET['img']);
		break;
		default:
			return false;
		break;
	}

	$width  = $image[0];
	$height = $image[1];

	if($_GET['cwidth']){
		$new_width = $_GET['cwidth'];
		$new_height = !$_GET['cheight'] ? $height * ($new_width/$width) : $_GET['cheight'];
	}
	if($_GET['cheight']){
		$new_height = $_GET['cheight'];
		$new_width = !$_GET['cwidth'] ? $width * ($new_height/$height) : $_GET['cwidth'];
	}

	if($_GET['cheight'] || $_GET['cwidth']){
		$image_resized = isset($_GET['cut']) ? imagecreatetruecolor($_GET['cwidth'], ($new_height < $_GET['cwidth'] ? $new_height : $_GET['cwidth'])) : imagecreatetruecolor($new_width, $new_height);
		imagealphablending($image_resized, false);
		imagecopyresampled($image_resized, $buffer, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
		//ImageAlphaBlending($image_resized, true);
		imageSaveAlpha($image_resized, true);

		$function = 'image'.$ext;
		header('Content-type: '.$image['mime']);
		if($ext == 'gif') $function($image_resized);
		else $function($image_resized, null, $qlty);
		ImageDestroy($buffer);
		ImageDestroy($image_resized);
	}
?>

Nuevo teclado, a fuerza

Bueno pues se preguntarán ¿Por qué estuve como “desaparecido” alrededor de 3 días? Bueno si ustedes no se lo preguntaron pues mi querida hermana (@isabelgc) sí.

El punto es que un día (Martes) el teclado de mi netbook se arruinó, al parecer como que está sucio o algo así y no funciona, al principio sólo era el fallo de un par de teclas, que por cierto eran/son importantes “Abajo y Derecha” en fin, todo lo demás servia perfectamente.

El problema fué al día siguiente que la encendí de nuevo, yo ilusamente pensando en que con el tiempo que había pasado ya se había arreglado la cosa, pues no, no se arregló, es más estaba peor, esta vez como que la tecla de “la flecha derecha” se había quedado presionada lo que hacía que a la hora de encender la netbook produjera un sonido de “beep, beep, beep, …” al final cargaba el SO (sistema operativo) pero era imposible poder colocar mi usuario y mi password.

Confieso que me frustré muchisimo, empecé a buscar un desarmador y sólo pude quitar una tapa, que no tenía nada que ver con el teclado, la volví a armar y la volví a encender, esta vez sólo se escucharon los sonidos del inicio, cargó el SO y esta vez si pude escribir… yo encantado pensé que estaba solucionado, para mi sorpresa ahora yo no sólo eran un “par” de teclas que no funcionaban, sino muchas más. Lo genial de GNOME (Linux Ubuntu) es que uno puede tener un teclado virtual a cualquier momento, así que lo activé y estuve un rato con eso, que fastidiante es estar haciendo clics a cada rato, en fin.

Ya después de una hora de uso, empezaron los problemas, otra vez y es que la tecla esa, como estaba “presionada” constantemente elevaba el uso del CPU (vamos que es una netbook) y se ponía lenta, así que ese día ví un par de películas (Viernes) y nada más, ya el sábado llamé a soporte técnico de D3LL (no me pagan por publicidad) y resulta que la garantía ya venció* :( entonces lo que hice fué desconectar el teclado (averigué como se hace, sin perjudicar a la netita) y quedarme con el “Teclado Virtual” que me ayudó bastante.

Ya hoy domingo me fuí a comprar un teclado USB “Compacto” (Perfect Choice – PC 200420) y pues trabaja de lujo y se acopla a mi “Mouse” (ratón) que compré hace un tiempo, que por cierto, sin querer son de la misma marca :D así que ahora a aprovecharlo, lo único malo es que viene en diferente “distribución” de teclas, me tengo que adaptar a ellas (Que ya con inglés y latino se me complica la cosa) así que si encuentran algún error, es de dedo :D no sean tan duros.

Algunas imágenes de mi nuevo teclado: