Category: Tecnología

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/

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.

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.

Artículo 20 de la Constitución Española

By ikito, 09/12/2009 11:46

5. Solo podrá acordarse el secuestro de publicaciones, grabaciones y otros medios de información en virtud de resolución judicial.

En defensa de los derechos fundamentales de internet

By ikito, 02/12/2009 12:09

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de Internet manifestamos nuestra firme oposición al proyecto, y declaramos que:

  • 1. Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.
  • 2. La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.
  • 3. La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.
  • 4. La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.
  • 5. Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.
  • 6. Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.
  • 7. Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.
  • 8. Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.
  • 9. Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.
  • 10. En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Seguimos quemando bibliotecas

By ikito, 01/12/2009 13:34

Al hilo del reciente estreno del film Agora que trata sobre la destrucción de la biblioteca de Alejandría,  o Antigua Biblioteca de Alejandría de la que se dice fue en su época la más grande del mundo, me vino hace unos días una reflexión a la cabeza.

Incluso a día de hoy asistimos impasivos a acontecimientos muy similares a diario en el reciente mundo virtual de internet, la destrucción de la biblioteca de Alejandría, supuso le pérdida seguramente de importantes estudios, textos, volúmenes, datos científicos que dado nuestro incompleto conocimiento de estas eras antiguas hubieran supuesto un campo extenso y florido de estudio que nos hubiera permitido ampliar nuestros conocimientos sobre dicha época… Pero … ¿Realmente todo este contenido hubiera aportado algo?… Dudo mucho que el 100% de todos estos documentos resultasen interesantes o útiles para la comunidad pero… Acaso no es el conjunto de estos documentos lo que nos permitiría hacernos una idea de su forma de vida, sus pensamientos, su filosofía, su literatura… Y podriamos hacernos una idea mucho más real del contexto de la época gracias a muchos escritos probablemente poco “intereantes”.

Seguimos quemando bibliotecas. Hace poco quemaron Geocities, para muchos el primer sitio de hosting en aquellos primero años de expansión de internet. Para mi el sitio con el que tuve mis primeros contactos con HTML y gifs animados, donde hice mi primera página personal… De fondo negro, textos amarillos y montones de muñequitos de obras desplazándose por la pantalla. Nada importante, pero información al fin y al cabo. ¿Acaso no era el conjunto de todo Geocities una gran biblioteca? Repleta de datos, historias, literatura, pensamientos. Evidentemente no el 100% era de interés público pero acaso no es la visión global de una época completa suspendida en una NUBE que por desgracia en su mayoría ha desaparecido. Pensemos en que algunos de los autores han tenido opción a recuperar la información que aun tenían en los servidores de Geocities, los que aun tenían acceso, los que han sido informados del cierre, los que de una forma u otra han podido acceder a sus textos. ¿Pero que hay de todos aquellos que no han podido recuperar dicha información? ¿Que hay de todos aquellos que han fallecido? Acaso no podemos pensar que entre toda esa maraña de datos podría existir contenidos de gran valor literario o científico, quizás hemos perdido todos los pensamientos de un filósofo desconocido, o las bases de alguna teoría matemática o física revolucionaria.

Los defensores a ultranza de la WEB 2.0, los defensores de la información colgada en la Red, esos que seguramente tras ver la película de Agora han lamentado por unos segundos la maldad de los bastardos que guiados por creencias radicales quemaron una de los mayores centros de sabiduría del mundo antigüo deberían pensar que Yahoo guiado por los pocos beneficios que les reportaba ha eliminado de un plumazo parte de la historia de nuestra civilización contenida en forma de datos, relatos, poesías, opiniones, imágenes, videos, ilustraciones… Han quemado una gran biblioteca, quizás un 90% de su contenido podría parecer insustancial, superficial o carente de interés, quizás solamente un 10% contenía información útil… Quizás … Pero nadie puede asegurar que entre ese 10% no hubiera alguna genialidad oculta en la gran nube de información. Cuando nuestros nietos dentro de 50 o 70 años tengan que buscar información acerca de los inicios del anticuado lenguaje HTML, de los primero blogs o páginas personales,  de las curiosas imagenes animadas de obras, de fotos de los 80… Nuestros nietos pensarán… Abuelo, ¿Como permitieron que cientos de miles de páginas de información desaparecieran de un día para otro?.

Y hasta que no se encuentre una solución a esto, grandes multinacionales tienen en su poder cada vez más y más información. Y lo que es peor… Todo el derecho a eliminarlas sin nuestro consentieminto. Por ello cada día estoy más convencido de que la maravillosa nube, el maravilloso mundo 2.0 de acceso global a la información no es más que una patraña. Cuando Google decida que Blogspot no es rentable quemarán Blogspot, Cuando Facebook no vea negocio eliminaran millones de fotografías y nada podremos hacer salvo rescatar los contenidos a los que tengamos acceso.

Siguiendo esta línea de pensamiento desde hace bastante tiempo cada vez que veo algo que me interesa o me gusta (video, foto o documento) me lo descargo y almaceno en my propia biblioteca. Esa biblioteca es mía y la quemo cuando quiero.

Panorama Theme by Themocracy