Archive for Programación

Nuevas APIs de YouTube

YouTube

Pues bien, recientemente me enteré que YouTube ha ampliado su API la cual permitirá a desarrolladores interactuar de una manera más completa con YouTube. Una de las que más me llamó la atención es la autenticación y la posibilidad de subir videos desde cualquier aplicación a través de esta API, claro… también se agregaron un montón de características más.

Curiosamente estas son algunas de las cosas que Alfonso Luna no dejaba de mencionar en siscti 33; “la nube”, ajax, mashup, api, youtube. 8-)

Por cierto… si te estás preguntando «¿y esto para que me sirve?» pues viéndolo de manera generalizada, te diré que es una herramienta que YouTube ofrece a desarrolladores para que implementen soluciones por lo que no tardarán en salir aplicaciones o accesorios con las que puedas administrar tu cuenta de YouTube (videos, comentarios, contactos, etc.) sin tener que ir directamente al sitio. Por mi parte, planeo actualizar YouTube Launcher “muy a manera personal” e implementar estas APIs.

Enlaces relacionados:

Publicadas APIs ampliadas de YouTube.
YouTube Developer API Blog. (En Inglés)

Deviare API

Hace algunos 3 días me encontré por ahí con Deviare API, un interesante -y avanzado- proyecto que te permite interceptar llamadas a las API de Windows. Exactamente se trata de un completo framework que simplifica las complejidades relacionadas con el hooking facilitando su utilización desde lenguajes de alto nivel como C++, Delphi, C# y entre otros.

¿Para que sirve?

Deviare API ha sido desarrollado para ser capaz de interceptar llamadas a las API de Windows, lo que te permite obtener el control de la ejecución de código del sistema operativo aunque se puede utilizar para otras cosas como espiar y aprender el comportamiento interno del sistema operativo así como el comportamiento de aplicaciones externas sin tener acceso a su código fuente, también es posible trazar y depurar la ejecución de código haciendo visible las llamadas API que realiza y los parametros utilizados en x función, otra cosa que también es posible es controlar los procesos del sistema operativo ya sea para monitorizar, filtrar y modificar su comportamiento , inyectar tu propio código o extender su funcionalidad estandar.

Por su parte, Ismael ha redactado -en el blog de la compañia desarrolladora- un extenso y detallado post donde explica y crea un addon (desde zero) para WLM 8.5 con Deviare API. Aquí una captura del resultado final.

Resultado final del artículo de Ismael usando Deviare API ;)

He estado probando todo esto y al final me quedé… digamos que entre satisfecho y contento por que no recuerdo algo parecido que facilite todo esto.

Saludos :)

Disponible el código fuente de la librería .NET Framework

Hace poco más de una semana -y gracias a un newsletter- llegué hasta el blog de Scott Guthrie donde encontré un post que me llamó la atención ya que se anunciaba que el código fuente de las siguientes librerías del .NET Framework ya estaban disponibes:

  • .NET Base Class Libraries (incluyendo System, System.CodeDom, System.Collections, System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading, etc).
  • ASP.NET (System.Web, System.Web.Extensions)
  • Windows Forms (System.Windows.Forms)
  • Windows Presentation Foundation (System.Windows)
  • ADO.NET and XML (System.Data and System.Xml)

Por su parte, Shawn Burke ha escrito un post donde explica detalladamente los pasos para configurar Visual Studio 2008 y depurar el código fuente de las librerías arriba mencionadas. Una vez seguidos los pasos mencionados en el post de Shawn, ya podrás accesar al código fuente, claro…como exploración o depuración a manera sólo-lectura.

step1.png

En la imágen anterior, se puede ver un ejemplo del método Dispose de la clase-base Control. Por cierto, entre esas líneas también encontrarán algunos comentarios que los desarrolladores han dejado ahí (que podrían ayudar a explicar el por qué han tomado cierta decisión o no borrar líneas que han modificado por cuestiones de compatibilidad).

Encontrarán más información en el post de Scott Guthrie;)

Implementando un RichTextBox transparente en C#

Recientemente tuve la curiosidad necesidad de crear un RichTextBox con fondo transparente, a lo que tenía entendido era un poco complicado de hacer (creo que eso fue lo que despertó mi interés en intentarlo u_u) pero hace algunas semanas me enteré de que el problema aquí no es que RichTextBox no soporte la transparencia sino que .net usa una versión antigua del control RichTextBox.

John Wood menciona que esto se puede solucionar creando un control o una clase que derive del control RichTextBox original (la cuál herederá sus miembros a nuestra clase o control) anulando la propiedad CreateParams y modificarla para cambiar el nombre de la clase de la ventana así como una parte del estilo.

El código sería algo como el siguiente:

RichEdit50

Ahora sólo faltaría cambiar las referencias System.Windows.Forms.RichTextBox por RichEdit50 (además de agregar la referencia System.Runtime.InteropServices para poder utilizar la función LoadLibray) para tener nuestro richtextbox transparente. Las siguientes dos imágenes muestran -a manera de ejemplo- los controles RichTextBox; el primero es el RichTextBox (el original) y el segundo es el control RichEdit50 derivado del primero.

System.Windows.Forms.RichTextBox

RichEdit50

Tal vez esta información resulte un poco antigua… era sólo curiosidad en el tema. :P

Fuente original (en Inglés).

Detalles técnicos sobre Firefox Ultimate Optimizer!

wow, me pierdo sólo unos días y aún no termino de leer críticas y consejos sobre Firefox Ultimate Optimizer!

Honestamente me ha llamado la atención algunas cosas como:

  • Falsos rumores sobre el programa… y no me cansaré de confirmarlo: no tiene virus ¬¬
  • La mención del programa en dos blogs rusos; lo que me recuerda que debo trabajar sobre una versión multilenguaje =]
  • La mención del programa en menéame.

Aunque la mención en menéame me deja un poco decepcionado por que se ve que la gente se traga todo lo que le dicen sin confirmarlo (excluyendo al comentario #11 y el #13). Así que en lugar de abrir la boca, yo preferí explicar cómo funciona el programa sólo como “cultura general” para confirmar y aclarar todo sobre el programa en cuánto a cuestiones técnicas se refere =]

De entrada quiero aclarar que yo no soy brujo o algo así ¬¬, sólo utilizo una función cuyo nombre es EmptyWorkingSet (Removes as many pages as possible from the working set of the specified process) y la aplico cada 5 segundos en todas las instancias de los procesos de Firefox obligándolo a liberar memoria sin utilizar…

Y yo como buen n00b no dude en implementarlo en C# :P

dodgy reductor :P Resultados del código anterior
¿Cómo puede un antivirus señalarlo cómo si de un virus se tratara? ¬¬

Saludos y buen fin de semana para todos ;)