Mi primera aplicación de Facebook

By ikito, 11/08/2010 12:20

Tras haber estado trasteando con Twitter decidí lanzarme a investigar un poco como funcionan las aplicaciones de facebook, que aunque en teoría utiliza también Oauth tiene bastantes particularidades. En general me ha resultado mucho más complejo, hay mucha información pero aparece bastante dispersa y se centra muy poco en la práctica. Pocos ejemplos de código. Para colmo Facebook tiene su propia API, extensa y con numerosas versiones… Para empezar recomiendo leer su documentación (solo en inglés) para hacernos una idea general.

Facebook incorpora dos lenguajes propios, Facebook Markup Language (FBML) y Facebook Query Language (FQL)… En resumidas cuentas FBML son pequeños módulos que puedes reutilizar del estilo de formularios, listas, botones… con las funcionalidades típicas de facebook. Por ejemplo:

<fb:photo pid="12345" />

Mientras que FQL viene a ser una especie de SQL con el que obtener datos realizando consultas directamente a “tablas” internas de Facebook. Por ejemplo:

SELECT name FROM user WHERE uid = me()

El primer paso como siempre es registrar nuestra aplicación en Facebook, para ello deberemos unirnos al grupo de developers y desde ahí acceder a la creación de una nueva aplicación. El funcionamiento es similar a twitter, obtenemos un id de aplicación y un par de claves para nuestra aplicación. a partir de aquí nos toca partirnos los cuernos empezando por tener un dominio propio en el cual subiremos todos los archivos de nuestra aplicación (No he visto que facebook ofrezca espacio dedicado).

A nivel de programación aunque aparentemente es bastante simple la documentación es mínima y los ejemplos son pocos y en muchos casos desfasados (versiones anteriores de la API), dado que mi intención no era hacer una aplicación seria por ahora me he limitado a tratar de hacer una aplicación que obtenga permisos de escritura en el muro, permita dejar comentarios y permita invitar a los amigos. Para ello me decanté por un framework casero (Gracias a Alvaroveliz, un poco de info en su blog), al que comencé añadiendo los datos de mi aplicación (/config/facebook.php).

$fb_apikey        = '****************************'; // API KEY
$fb_secret        = '****************************'; // Secret Key
$app_callbackurl  = 'http://********/moo/'; // APP Canvas URL
$canvas_url       = 'http://apps.facebook.com/dothemoo/'; // Canvas URL

Posteriormente cree varias vistas para generar un conjunto de “tabs” o pestañas con los 3 apartados que necesitaba, un index, otro para comentarios, un tercero para invitar amigos y uno oculto para lanzar el evento de escritura en el muro. Os pongo algunos fragmentos de código:

<fb:tabs>
  <fb:tab-item href='http://apps.facebook.com/dothemoo/index.php' title='Inicio' selected='true'/>
  <fb:tab-item href='http://apps.facebook.com/dothemoo/index.php?section=comments' title='Comentarios' />
  <fb:tab-item href='http://apps.facebook.com/dothemoo/index.php?section=invite' title='Invitar' />
 </fb:tabs>
$friends = $facebook->api_client->fql_query('SELECT uid FROM user WHERE is_app_user = 1 AND uid IN (SELECT uid2 FROM friend WHERE uid1 = '.$user.')');
	$excludedFriends = array();
	if (is_array($friends) && count($friends) > 0)
	{
	  foreach($friends as $friend){
	    $excludedFriends[] = $friend['uid'];
	  }
	}
	$excludedFriends = implode(',', $excludedFriends);
}
$contentBox = "<fb:name uid=\"$user\" firstnameonly=\"true\" /> quiere que uses la aplicación do the Moo <fb:req-choice url=\"http://apps.facebook.com/dothemoo\" label=\"Confirmar\" />";
?>

<fb:request-form type="Do the Moo" action="index.php?section=invite" content="<?= htmlentities($contentBox,ENT_COMPAT,'UTF-8'); ?>" method="post">
<fb:multi-friend-selector actiontext="Invita a tus amigos para que usen nuestra primera aplicación" showborder="true" exclude_ids="<? echo $excludedFriends; ?>" />
$facebook->api_client->stream_publish($message, $attachment, $action_links);

Resumiendo. Mucha dificultad para tan poca cosa que pretendía, pero si que es cierto que una vez que sacas lo básico se convierte en algo muy potente por las posibilidades que da el acceder a millones de usuarios con relativo poco esfuerzo.

Por cierto… Mi aplicación “chorra” escribe en el muro del usuario un numero de “mugidos” aleatorios, podéis acceder a ella desde aquí. El algoritmo de generar mugidos aleatorios lo he patentado :P .

Mi primera aplicación Twitter

By ikito, 09/08/2010 13:32

Twitter es una red de información de tiempo real motorizada por gente alrededor del mundo que permite compartir y descubrir lo que está pasando en este momento. Twitter pregunta “Qué pasa?” y hace que la respuesta se propague a través del mundo a millones, inmediatamente. Esto dice Twitter… en resumen no es más que un sitio en el que cada usuario puede escribir algo y esperar que sus seguidores puedan leerlo.

Oauth es un protocolo abierto que mediante una API con sistema simple y estándar nos otorga una autorización segura para tratar con datos protegidos. El esquema de funcionamiento de una aplicación con Oauth puede verse facilmente resumido en esta imagen.

El primer paso para poder crear cualquier tipo de aplicación que implemente Oauth es entender claramente su funcionamiento, básicamente consiste en una aplicación que pide al usuario autorización para acceder a ciertos datos privados de alguna de sus aplicaciones en internet, el usuario acepta dicha petición logándose en la red (Twitter, facebook, Picasa, flickr …). Desde entonces nuestra aplicación obtiene un Token mediante el cual podremos acceder de nuevo a dichos datos privados sin la necesidad de que el usuario deba volver a permitirnos el acceso. Un ejemplo muy claro: “Eduardo tiene las fotos de su último viaje subidas a Facebook, entra en contacto con la web www.Imprimetodaslasfotos.com en la que quiere ordenar la impresión de sus últimas fotos de las vacaciones, mediante un sencillo proceso (Oauth) da acceso a www.Imprimetodaslasfotos.com a sus fotografías en Facebook. Pasados unos minutos Imprimetodaslasfotos.com accede a las fotos de Eduardo en facebook, las imprime y se las manda por mensajería a Eduardo”

Registrar una aplicación en Twiter es muy sencillo, accederemos a http://twitter.com/oauth_clients/ , donde deberemos dar todos los datos necesarios para registrar nuestra aplicación. Obtendremos nuestros datos privados necesarios para la aplicación (Consumer Key y Consumer Secret). Deberíamos descargar los archivos necesarios de la API de Twitter, en mi caso he decidido decantarme por esta Clase de PHP de la que podemos obtener más información en este blog, también podemos mirar un poco la documentación de Twitter.

Tras hacer unos leves cambios en la clase de PHP, insertar los datos de mi aplicación y subirlas a mi propio dominio he realizado mi primera aplicación de Twitter, simple pero muy instructiva. Publica en el Twitter del usuario una tirada aleatoria de un dado de 100 caras (1-100). (Mi pasado rolero me puede jeje)

Y aquí mi aplicación: http://www.ikito.net/d100/

Recuperar GRUB (¡¡Socorro, ha desaparecido mi Linux!!)

By ikito, 06/08/2010 12:14

Cuando uno quiere tener en su ordenador un arranque dual con dos sistemas operativos diferentes, generalmente un Linux y una versión de windows siempre se suele cometer el mismo error, el orden correcto para instalarlos es siempre primero el Windows y posteriormente el Linux. Si se hace a la inversa no pasa nada pero corremos el riesgo de que Windows en su infinita sabiduría decida “cepillarse” nuestro boot de inicio y por tanto no podamos iniciar linux.

Estas cosas son caprichosas y a veces ocurre a la inversa, por tanto es bueno tener una forma clara para poder recuperar el grub y tener disponibles nuestros sistemas operativos sin mucho engorro. Copieteo lo que sigue de la web de Ubuntu.

Consiste en usar una distribución en modo LiveCD para instalar nuevamente el GRUB. Usaremos el LiveCD de Ubuntu 9.10 o superior (debe ser la versión Live o Desktop), aunque puede ser cualquier otra distribución que use GRUB2 como gestor de arranque y no LILO ni Grub 1.

Lo primero que debemos hacer es arrancar el live-cd y abrir una terminal. Despues escribimos los siguiente para ver las particiones de los distintos discos duros:

sudo fdisk -l

Despues vemos cual es la partición donde tenemos Ubuntu y la montamos en /mnt (en la mayoría de los casos esta partición será sda1, el ejemplo lo haré con esa partición pero mira cual es tu partición con el comando fdisk):

sudo mount /dev/sda1 /mnt

Ahora, monta el resto de los dispositivos:

sudo mount --bind /dev /mnt/dev

Y ejecuta el comando chroot de forma que accedemos como root al sistema de archivos de nuestro antiguo Ubuntu:

sudo chroot /mnt

Por último cargamos el Grub en el MBR ejecutando el siguiente comando:

grub-install --recheck /dev/sda

(sda lo debemos substituir por el disco duro que utilizamos para arrancar los sistemas operativos, casi siempre es sda. Ojo!! no poner el número de partición, solo sda)

Reiniciamos y cuando vuelva a arrancar ubuntu (no el del live-cd), podemos ajustar en el menú del grub manualmente para que aparezca en el menú de arranque el nuevo sistema operativo que nos borró el MBR, o dejar que lo haga el automáticamente con el siguiente comando:

sudo update-grub2

Si el comando no te funciona, quizás necesites instalar el paquete grub2:

sudo aptitude install grub2

Instalar LAMP En Ubuntu Lucid Lynx 10.04

By ikito, 11/06/2010 12:22

Con esto instalamos en Linux Apache Mysql y Php (LAMP), un paquete todo en uno.
Es muy sencillo, solo es necesario:

egarcia@egarcia:~$sudo apt-get install lamp-server^

Con esta línea (importante el carácter ^ al final) instala todos los paquetes necesarios.

Renovarse o morir en internet

By admin, 01/06/2010 16:26

Llevo varios días buscando ofertas para viajes en muchas empresas que ofrecen sus servicios casi exclusivamente por Internet, dado que uso una distribución de Linux en su última versión (Ubuntu 10.04) con alrededor del 4.5% de cuota de mercado en Mayo de 2010 y para colmo los dos navegadores que manejo son Firefox  y Google Chrome, 46.9% y 14.5% de cuota de mercado en Mayo 2010 me he encontrado con serios problemas para obtener precios finales sobre las ofertas realizadas por estas páginas que por lo general se quedan bloqueadas en algún atractivo flash estilo “Estamos buscando las mejores ofertas … Permanezca a la espera”.

Tratando de obtener algo de información decidí ponerme en contacto con el servicio de atención al cliente, teniendo una conversación por e-mail más que interesante (He puesto la cadena de e-mail en modo conversación para verlo más facilmente).

Yo: Buenos dias, su web no funciona correctamente para navegadores Mozilla firefox y Google Chrome. Me ha sido imposible obtener precios en los ultimos pasos de sus ofertas ya que no se muestran.Saludos.
Atención al cliente:Hola xxx, buenas tardes. Contestando a tu e-mail, debo confirmarte que el explorador que deberás utilizar es el EXPLORER, seguro que así no te dará problemas nuestra página web. Si tuvieras alguna otra duda, estaré encantada de ayudarte. Recibe un cordial saludo.
Yo: Agradezco su respuesta, pero no me sirve de mucho. Mi sistema operativo es Ubuntu 10.04 por lo que no puedo usar el navegador Internet Explorer.
Atención al cliente:Hola xxx, buenas tardes. Contestando a tu e.mail, siento comunicarte que no puedo ayudarte en este caso, lo único que podría recomendarte es que realizaras la reserva desde otro ordenador. Un saludo.
Yo: Muchas gracias, agradezco su respuesta pero realizaré mi reserva con otra empresa. Un saludo.

Me parece increible que empresas que se suponen hacen su negocio prácticamente por completo a través de internet tengan sus aplicaciones webs solo operativas para navegadores Internet Explorer, saltándose a la torera a mas de un 60% de los usuarios de Internet. Y es un error muy habitual en negocios por internet, que el cliente deba acomodarse a las exigencias del vendedor cuando debería ser todo lo contrario.

Datos interesantes sobre usos de navegadores sistemas operativos:
Uso de Navegadores en Mayo 2010

Uso de sistemas operativos Mayo 2010

Flash 10 para Linux 64bits

By ikito, 18/05/2010 16:40

Desde que hace bastantes años fui uno de los pioneros en comprarme un micro de 64 bits me he encontrado con muchos problemas para poder sacarle un rendimiento real, por lo general empezando porque en muchas ocasiones los sistemas operativos que traen las máquinas hasta hace bien poco son siempre de 32 bits, por lo que estamos desaprovechando la capacidad de proceso de nuestro micro. Después también ocurre que aunque tengas el sistema operativo de 64 bits muchos programas, plugins o funciones básicas a día de hoy en internet tales como Java o flash han tardado mucho en adaptarse a esta nueva tecnología haciendo inservible esta capacidad del micro.

Personalmente una de las cosas que mas me mosqueaba era el uso de flash en Linux, especialmente en Ubuntu que aunque disponia de una versión de 64 bits la única forma de meter flash a los navegadores era montando un pollo de ole linkando librerias de 32 bits y perdiendo mucho tiempo y neuronas en el proceso. Hace unos días tuve el mismo problema y por suerte parece que unos amigos se han preocupado de solucionar esto, con un simple archivo sh (script) han automatizado todo el proceso, desde la descarga, el registro, el borrado de archivos inutiles… Todo a un solo click. Para hacerlo es suficiente con ejecutar este churro en una  consola

egarcia@egarcia:~$wget http://queleimporta.com/downloads/flash10_x64_en.sh  && sudo chmod +x flash10_x64_en.sh && sudo sh ./flash10_x64_en.sh

Pero si aun así queremos comernos un poco mas el tarro podemos seguir las instrucciones para realizar el proceso paso a paso.

Indecente

By ikito, 17/05/2010 17:01

“Indecente”, es un texto que recibí via email hace unos días  y del que no conozco autor, pero dado que indica claramente que se difunda voy a poner mi granito de arena.

INDECENTE, es que el salario mínimo de un trabajador sea de 624 €/mes y el de un diputado de 3.996, pudiendo llegar, con dietas y otras prebendas, a 6.500 €/mes.

INDECENTE, es que un profesor, un maestro, un catedrático de universidad o un cirujano de la sanidad pública, ganen menos que el concejal de festejos de un ayuntamiento de tercera.

INDECENTE, es que los políticos se suban sus retribuciones en el porcentaje que les apetezca (siempre por unanimidad, por supuesto, y al inicio de la legislatura).

INDECENTE, es que un ciudadano tenga que cotizar 35 años para percibir una jubilación y a los diputados les baste sólo con siete, y que los miembros del gobierno, para cobrar la pensión máxima, sólo necesiten jurar el cargo.

INDECENTE, es que los diputados sean los únicos trabajadores (¿?) de este país que están exentos de tributar un tercio de su sueldo del IRPF.

INDECENTE, es que a un político no se le exija superar una mínima prueba de capacidad para ejercer su cargo. (ni cultural ni intelectual.)

INDECENTE, es el coste que representa para los ciudadanos sus comidas, coches oficiales, chóferes, viajes (siempre en gran clase) y tarjetas de crédito por doquier.

INDECENTE No es que no se congelen el sueldo sus señorias, sino que no se lo bajen.

INDECENTE, es que sus señorías tengan seis meses de vacaciones al año.

INDECENTE, es que ministros, secretarios de estado y altos cargos
de la política, cuando cesan, son los únicos ciudadanos de este país que pueden legalmente percibir dos salarios del ERARIO PÚBLICO.

Y que sea cuál sea el color del gobierno, toooooooodos los políticos se benefician de este moderno “derecho de pernada” mientras no se cambien las leyes que lo regula. ¿Y quiénes las cambiarán? ¿Ellos mismos? Já.

Y es que es realmente frustrante la situación de la clase política española, los españoles, borregos todos, han sido habilmente amaestrados, comprados, hipnotizados por una clase política conformada en su mayoría por  maleantes de guante blanco, incultos con buenos contactos, amigos y familiares enchufados, trepas de partido en busca del pelotazo, hábiles empresarios que forjan su riqueza gracias al estado… Da igual a quien votes, no hay izquierdas ni derechas, están los políticos y sus amigos y estamos nosotros. O eres uno de ellos y vives en el lujo riéndote de la sociedad o eres parte de la sociedad que debe trabajar de sol a sol para poder tener una vida medianamente decente. La izquierda hará cosas de derechas y la derecha hará cosas de izquierdas, les importa una mierda la ideología porque saben que van a seguir trincando mientras mantengan la llama viva. Mientras puedan hablar de guerra civil que pocos hemos vivido, mientras puedan hablar de fachas, de fascismo, de Franco de republicas y de republicanos, de muertos, de aborto de iglesía, mientras puedan mantener el debate activo seguiremos en lo mismo. 8 años uno y 8 años otro. Y nosotros bien jodidos siempre.

¿Hay solución? Quiero creer que sí. Pero por desgracia la cultura es un don escaso generación tras generación, la inquietud por aprender, por entender por cambiar las cosas desaparece. España necesita partidos políticos alternativos, partidos políticos que de verdad se propongan oir a los ciudadanos y Internet es un gran lugar en el que captar las necesidades y preocupaciones de todos. España necesita un tercer y un cuarto partido político de peso, que no puedan repartirse todo siempre entre dos. La ley electoral debe dar igualdad de votos a todos los ciudadanos y que mi voto andaluz a un partido nacional valga lo mismo que uno catalán a un partido regional. Que se permita votar a la persona y no al partido, no necesitamos 100 diputados del PP si todos van a votar siempre lo mismo en bloque, señores pongan un solo diputado y que su voto valga por 100 y nos ahorramos 99 sueldos millonarios. Y así tantas otras cosas. No me extiendo más no me voy a presentar a las elecciones xD.

Desde mi punto de vista bastante objetivo (Que levante la mano el que haya votado a 3 partidos distintos en las ultimas 3 elecciones generales) España necesita un cambio. Y un cambio a fondo que solo puede lograrse mediante la presión poco a poco de los ciudadanos mediante nuevas fuerzas políticas.

Mi propia cerveza Día 1

By ikito, 01/03/2010 14:11

Hoy ha sido el gran día, tras casi dos meses de espera he conseguido reunir el tiempo suficiente y la ayuda necesaria para acometer la creación de mi primera cerveza casera. Si todo va bien dentro de una semana estaré embotellando unos 60 botellines de la mi, por ahora, cerveza sin nombre.
Hacerla no es excesivamente complejo, aunque si que requiere de cierto orden, limpieza y cuidado ya que a la más mínima cagada la tienes que tirar entera por el desagüe. No olvidemos que estamos jugando con la biología y el proceso de fermentación son bichejos minúsculos comiéndose la cebada y cagando alcohol… mmmm que rica.
Los pasos a seguir son:

  • Hacerse con un kit en esta web. En mi caso el Kit básico más 60 botellines y un par de cajas para almacenarlo. (Todo regalo de reyes de mi querida novia, te quiero!).
  • Seguir detalladamente las instrucciones, esto es imprescindible, sobre todo tenerlo todo muy claro antes de hacer cualquier movimiento. Aquí mi cuñao el Varón de la birra Migue fue de gran ayuda.
  • Todo el proceso consiste básicamente en tener preparados los materiales, ser muy limpio con todo lo que se haga y respetar al máximo las temperaturas, los tiempos de cocción y demás.

Desinfectando todo el mateterial.

cerveza 001

Cociendo el mosto.

cerveza 008

Comenzando la fermentación.

cerveza 014

Ahora mismo lleva unas 18 Horas de Vida y ya oigo como gorgotea detrás mía. Símbolo de su proceso de fermentación satisfactorio. Iré actualizando y dando más información al respecto.

Preparando un centro multimedia “low cost”

By ikito, 24/02/2010 17:33

Y cuando digo “low cost” no me refiero a barato, me refiero más bien a aprovechar todos los aparatejos posibles que tenemos en casa, en mi caso.:

  • Video consola Wii (También valen la Xbox360 y la PS3, aunque no las tengo)
  • Televisor (En mi caso uno del jurásico, con culo gordo)
  • Ordenador viejo (pentium celeron 500, Disco de 80Gb y 256 Mb RAM)
  • Una tarjeta SD de menos de 2 Gb (De más no la coge la wii)

El proceso puede parecer sencillo pero aun teniendo conocimientos técnicos medios uno se puede pegar cabezazos contra esto y volverse loco, por suerte para mi solo me ha llevado un par de dias tenerlo todo funcionando. No voy a entrar en mucho detalle pues tampoco creo que pueda resolver muchas dudas así que me limitaré a dar una idea general de como montarlo todo y si alguien anda interesado que investigue algo más a fondo el tema.

Primero se monta el pc que vamos a usar de servidor de películas, en mi caso un PC viejuno al que le he metido un disco IDE de 80 Gb. Le he instalado un Ubuntu 9.10 y luego le he instalado el jdownloader para que pueda descargar directamente películas y series. Una vez el PC está andando y descargando doy un paso más y activo la conexión por escritorio remoto (Sin contraseña), esto es simplemente por vago… No quiero tener que ir al PC cada vez que quiera tocar algo. Con esto me puedo conectar desde el portatil y dejar el PC funcionando. Ahora creamos una carpeta en el sistema… Lo ideal es que sea la misma en la que estamos descargando archivos, así no hay que moverlos. La compartimos dándole un nombre original “Vaportiramoncin” por ejemplo.

Ahora empezamos con la Wii, lo primero piratearla. A día de hoy es muy sencillo y se hace en menos de 5 minutos y con una simple tarjeta SD. Aquí hay información al respecto, Wii.scenebeta. Una vez tengamos el canal Homebrew procederemos a instalar el programa Mplayer CE en la tarjeta SD. Teniendo en cuenta que hay que modificar los datos de conexión del programa. El archivo en cuestión es el smb.conf, donde tendremos que indicar la dirección IP de nuestro PC viejuno, el nombre de la carpeta y usuario y contraseña de acceso. Hay que asegurarse de que tenemos la Wifi activa en la wii.

Ya está todo… Conectamos el PC, descargamos algo, encendemos la tele con la Wii, cargamos el nuevo canal y desde él lanzamos el Mplayer. En una de las opciones del Mplayer podremos conectar con nuestro PC por WIfi y comenzar a reproducir cosas que tengamos en nuestra carpeta.

Ahora mismo estoy viendo una peli y la verdad es que anda de lujo.

Si el sector de la construcción tuviese que trabajar como el de la informática

By admin, 10/02/2010 15:21

Más razón que un santo…

image001

Panorama Theme by Themocracy