JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Herramienta Open Source para análisis de seguidores en Twitter con cuestiones técnicas interesantes

LogoEste es un proyecto personal en el que he estado trabajando durante los últimos meses en mis ratos libres (que son pocos). Lo empecé como un juego para desestresarme y no oxidarme en las lides de la programación. Pero al final he querido darle calidad profesional y me he enredado más de la cuenta añadiéndole posibilidades, puliendo la interfaz de usuario, añadiendo pequeños detalles técnicos complicados que seguramente no va a notar ningún usuario "normal", en el periodo de pruebas, etc...

Twitter Followers Monitor es una aplicación gratuita y Open Source. Como su propio nombre indica te permitirá monitorizar los seguidores de cualquier cuenta de Twitter, llevando un histórico de cambios y siendo notificado cuando se produzcan. Puedes monitorizar varias cuentas a la vez y no tienen porque ser cuentas tuyas, ya que no es necesario saberse las claves.

TFM_Main

El proyecto está hecho con Visual Studio 2010 y .NET 4.0, y usando el lenguaje C#. No utiliza ningún módulo componente externo, así que con la propia plataforma .NET es suficiente.

Está dividido en tres componentes principales:

  • TFMAPI: es una biblioteca de funciones implementada como DLL que incluye todas las funciones necesarias para el manejo de la API de Twitter, las excepciones y el procesamiento de JSON.
  • Tests: los tests sencillos de la biblioteca anterior. En modo Debug usa datos JSON simulados en archivos de disco (e incluyen ejemplos).
  • TwitterFollowersMonitor: la UI del programa, aunque tiene bastante código de lógica también en el procesamiento en segundo plano de los datos de followers (le falta un pelín de refactoring).

Desde el punto de vista técnico tiene algunas cosas interesantes: el manejo de la API de Twitter, el lanzamiento en segundo plano de procesos, la seriación y de-seriación de datos en formato JSON, el uso de clases propias para almacenamiento, el control de excepciones y uso de excepciones propias, el uso de genéricos, la creación y uso de métodos extensores, el uso de LINQ para comparar conjuntos, uso del área de notificación del sistema, enlazado a datos, notificaciones visuales, determinar si el usuario está o no logueado en el sistema, saber si está o no conectado a través de escritorio remoto, evitar que una aplicación se ejecute varias veces, comprobar si hay actualizaciones, las actualizaciones automáticas con ClickOnce, lanzar URLs desde etiquetas...

Muchas de estas cosas serán desconocidas para algunos y se puede aprender viendo el código. Le falta algo de refactoring, y además ten en cuenta que soy programador Web, no Windows, pero en conjunto creo que es un código interesante y con bastantes más detalles de lo que pudiera parecer a simple vista.

Por cierto, el programa lo he hecho en inglés y el código está totalmente comentado también en inglés, aunque eso no debería ser un problema para ningún programador.

Lo he colgado en la comunidad CodePlex y puedes encontrarlo en:

http://twitterfollowersmon.codeplex.com/

¡Espero que te resulte interesante!

Aprende .NET, Cursos on-line tutelados:
   ·
Desarrollo Web con ASP.NET 4.0 Web Forms (Tutelado por mi)
   · ASP.NET 4.0 Web Forms desde cero (Tutelado por mi)
   · Desarrollo Web con ASP.NET MVC 2
   · Silverlight 4.0 - Aplicaciones Ricas para Internet (RIA)
   · jQuery paso a paso para programadores ASP.NET
   · Visual Studio 2010 desde cero

José Manuel Alarcón
Banner

Comentarios (2) -

Hi José, This is a really cool tool. I was wondering if you have any plans to add the ability to monitor who people follow as well as who follows them? Maybe there is something like this already but I can't find anything, so I think it would be a really useful addition.

Responder

Hi Andrew,

The problem in this case is that I use the non-authenticated API of Twitter so that I can monitor any account, not only yours, and because of this the number of calls is limited to 150 per hour. So, I can get a list of all your followers but only their internal IDs, not their data, and only in chunks of 5.000 per call. So to get a full insight into your followers I'll need to create a totally different program using a different approach. Inthis case I only compare the internal IDs to spot the differences and then get the info of the users for that differences, and that is easyly kept inside the 150 API calls/hour.

Regards,

Responder

Agregar comentario