domingo, 19 de agosto de 2012

SockJS Websockets HTML5

Los WebSocket es una tecnología nueva que a salido con el estándar html5, pero todavía va a faltar un poco de tiempo para que todos los navegadores la soporten.

Mientras tanto existen una buena cantidad de proyectos(socket.io, node.js, etc) que permiten trabajar con websockets tanto en navegadores nuevos, como en los antiguos sustituyéndolo por otra tecnología en estos navegadores. Pero todos las librerías por lo general hacen algún truco para poder hacerlo funcionar en navegadores antiguos.


Es por eso que nació un nuevo proyecto: SockJS - otra biblioteca de emulación WebSocket, pero esta vez se hace bien.

Filosofía de SockJS

  • La Api debe seguir los lineamientos de la API de HTML5 Websockets lo más fielmente posible
  • No Flash del lado del cliente solamente javascript.
  • Bien Documentado y con balanceo de cargas.
  • El transporte debe soportar la comunicación a través de dominios.
  • La conexión debe ser rápida y ligera.
  • Además, el código del lado del servidor debe ser simple, con el fin de reducir el costo de escribir servidores para diferentes idiomas.
  • Debe soportar al menos un protocolo de Streaming por cada navegador grande.

Lo Bueno

Lo Bueno de esta librería es que es ligera, fácil de entender y trabajar, se adapta a los estándares, trabaja con balanceo de cargas y además no usa Flash ni nada por el estilo. Además ya cuenta con las librerías para montar los servidores en python, nodejs y java, próximamente en otros lenguajes.

Lo Malo.

No posee soporte para navegadores antiguos, que otros proyectos si lo hacen. por ejemplo Socket.IO soporta Internet Explorer 5.5+, Safari 3+, Google Chrome 4+, Firefox 3+, Opera 10.61+. SockJS soporta aquí ven la descripción detallada.

Conclusión.

SockJS es una librería bastante nueva  y todavía le queda mucho por hacer, pero que tiene una buena forma de trabajar, y unos excelentes tiempos de ejecución. Aquí hay un análisis de rendimiento donde se compara Socket.IO vs SockJS de pythonanywhere. Es una librería útil en el caso de que queramos desarrollar una aplicación donde el rango de navegadores es limitado, por ejemplo una intranet para una empresa, o una pagina para un grupo muy especifico.

Twitter de SockJS

Si necesitas la asesoria de una empresa para el desarrollo de aplicaciones con este tipo de tecnologia.

viernes, 17 de agosto de 2012

Twitter autorizar aplicación Tweepy

Para autorizar una cuenta a trabajar con tu aplicación twitter que ya hallas registrado y la cuenta no es la dueña de la aplicación, la manera de hacerlo mediante código es la siguiente:

Primero creamos el código siguiente y lo ejecutamos:

#!/usr/bin/env python

import tweepy
# definimos las claves de la aplicacion
consumer_key="Y94tUbG4vv1IcZhJHKLdQw"
consumer_secret="K2iG4ZOdIPIBpuagmvh9eB8MhuWpgv9QXx0AW2boo"
# nos conectamos a twitter.
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)

# solicitamos la url de autorización y la mostramos por pantalla
auth_url = auth.get_authorization_url()
print 'Please authorize: ' + auth_url

# esperamos al pin que debe introducir la persona
verifier = raw_input('PIN: ').strip()
auth.get_access_token(verifier)

#mostramos los tokens de acceso
print "ACCESS_KEY = '%s'" % auth.access_token.key
print "ACCESS_SECRET = '%s'" % auth.access_token.secret

Después entramos en la url que nos arroja:

Le concedemos permiso, y nos devolverá el pin que deberemos introducir en la aplicación para concederle el acceso:

 
Después el script lo verifica y muestra el acces token y el acces token secret, por pantalla y listo ya podemos empezar a usar esta cuenta para publicar información, llevar estadísticas etc...

Errores de tiempo en tweepy.

Cuando use por primera ves tweepy, para publicar o conectarme a twitter conseguí los siguientes errores: 401:Unauthorized Error Unable to get username, invalid oauth token! timestamp out of bounds Una de las razones a las que se puede deber es que la hora esta mala o fuera de orden, si estas en Windows ya sabes como acomodarla si estas en linux tienes que hacer lo siguiente.

Establecer la zonahoraria en Linux

Para establecer la zona horaria en linux en el sistema tenemos que crear un enlace simbólico de /etc/localtime al archivo /usr/share/zoneinfo/America/Caracas, en ves de América y Caracas, seria tu correspondiente ciudad y continente. El comando que tendríamos que ejecutar como root, para establecer la hora seria el siguiente: ln -sf /usr/share/zoneinfo/America/Caracas /etc/localtime Hay que hacerlo de esta manera porque si hacemos el cambio a través de Gnome, en el área de la hora Local, no va a cambiar la hora del sistema como tal y nos va a pasar como me pasaba a mi que GMAIL tenia horas mala de cuando la gente te manda mensajes, etc. Espero que esto les sirva. Saludos

Python auto seguir cuentas twitter

Desde hace un tiempo acá e empezado a probar con el lenguaje python y tweepy. Una de las cuestiones cheveres que e probado últimamente es auto seguir automáticamente cuentas en twitter con Oauth. Por supuesto esto también se puede hacer con php o cualquier otro lenguaje, pero e querido probar con python por las facilidades que tiene, y porque por lo general las librerías están un poco mas logradas que cualquier librería en php.Además se puede crear un programa fácilmente.

Este Script es sumamente útil, para hacer crecer o darle publicidad a tu cuenta twitter, de manera fácil y rápida. Esto es hacer un poco de Spam, pero es una buena prueba que se puede hacer.

 Aquí va el código:
# -*- coding: utf-8 -*-
import tweepy

# == OAuth Authentication ==

# Primero leemos los ultimos tweets, de 100 tweet por pagina, y uso el Cursor
# que viene con la libreria, y permite ir sacando más de una pagina.

t=[]
for page in tweepy.Cursor(tweepy.api.search,q="desarrollo web",locale="es",rpp=100).pages(3):
 for i in page:
  t.append(i.from_user)
# la lista la ponemos en un set, para eliminar los duplicados
t = set(t)
# esta es la contraseña oauth de la aplicación, para poder conectarse al Api de Twitter
consumer_key="Y94tUbG4vv1IcZhJHKLdQw"
consumer_secret="K2iG4ZOdIPIBpuagmvh9eB8MhuWpgv9QXx0AW2boo"

# este el token de acceso para poder acceder a la cuenta del usuario. 
# que tuvo que haber dado permiso anteriormente a la aplicación
access_token="289124803-LMV6iY09cLgPRiEuIqFKaqbCswuIKW01Kc9DnVCs"
access_token_secret="Ri6SkwgbRNmP6rGduihyzv8ETk1aTOkqnxnQX9gB8"

# Definimos para conectarnos con la aplicación
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
# Definimos para conectarnos con el usuario
auth.set_access_token(access_token, access_token_secret)
# hacemos la conexion
api = tweepy.API(auth)
# Verificamos las credenciales, y mostramos el nombre del usuario conectado.
print(api.verify_credentials()).name
# recorremos el set completo 
for u in t:
 #creando la conexión con cada uno de los usarios que conseguimos
 api.create_friendship(u)
 print u
El código esta explicado por si mismo, por supuesto antes de usarlo tendrían que primero instalar la librería tweepy. Espero que les sea de utilidad, pronto publico el unfollow.

Si necesitas de una empresa que te ayude a llevar inteligentemente tus redes sociales