Descargar vídeos de TVE

Nota: Este programa está discontinuado. Hay una versión mejorada y actualizada en https://www.carballude.es/blog/?p=1019 Hace algún tiempo publiqué un Script para descargar vídeos de TVE. Desgraciadamente cambiaron su sistema y dejó de funcionar. Sin embargo, ayer necesité descargar algunos vídeos porque no iba a tener conexión así que me puse manos a la obra e investigué… Seguir leyendo Descargar vídeos de TVE

Crear un trainer: Hackeando juegos para hacer trampa (II de II)

En la primera parte de este post vimos como localizar las direcciones de memoria que nos interesaban y que valores deberían tener. En esta última parte haremos un "trainer", una pequeña aplicación en C# que se encargue de inyectar esos valores en memoria. Para que esto funcione, necesitamos que nuestro programa pueda escribir en las… Seguir leyendo Crear un trainer: Hackeando juegos para hacer trampa (II de II)

Burlando el patrón Singleton con reflectividad

Seguramente todos sabéis lo que es el patrón Singleton, pero por si alguien faltó a clase ese día, es un método de asegurarse de que una clase es instanciada una única vez independientemente del número de veces que se la llame. El sistema de lograrlo es sencillo: Se crea una variable estática del mismo tipo… Seguir leyendo Burlando el patrón Singleton con reflectividad

La programación imperativa no siempre es más sencilla

Estos días he leído código C# de varias personas y me ha resultado curioso cómo la gente sigue usando lo que aprendió hace años aun a pesar de que las cosas han cambiado. Os pongo el siguiente ejemplo: Se dispone de una colección (_modules) de objetos Module y se necesita un método que retorne el… Seguir leyendo La programación imperativa no siempre es más sencilla

HTTP Referer, útil e inseguro

Una de las cosas que valoro mucho es el ingenio. Usar cosas para realizar una tarea distinta de la que ha sido pensada siempre ha sido uno de mis pasatiempos favoritos. Ahora bien, hay que distinguir entre un “apaño”, una “curiosidad” y un “uso adecuado”. ¿A dónde quiero ir a parar? A que la gente… Seguir leyendo HTTP Referer, útil e inseguro

¿Por qué dicen que C# es igual que Java?

Estos días he estado ayudando a algunos amigos que están acostumbrados a trabajar en Java a hacer unas prácticas en C#. Mucha gente dice que C# “es como Java”, pero me parece que es una mentira bastante gorda. Uno puede hacer código C# como si de Java se tratase, sí… pero quedaría “raro” y farragoso.… Seguir leyendo ¿Por qué dicen que C# es igual que Java?

Cargar un Assembly (dll) dinámicamente (por código)

Antes o después tenemos que hacer aplicaciones que carguen dlls. El problema es que los Assemblys de .Net, aunque tenga la extensión dll, no son dlls de win32, por lo que el procedimiento “habitual” de carga no funciona. Imaginad que tenemos la dll “MiExtension.dll” en C:\ (espero que nadie ponga en una aplicación real la… Seguir leyendo Cargar un Assembly (dll) dinámicamente (por código)

WinBurn: Grabando CD’s en Windows

Hace algo más de un año cursé “Arquitectura de Aplicaciones Software” y tuve que desarrollar un reproductor de música. Una de las cosas con las que me quedé ganas de implementar era la grabación de CD’s de audio. Ayer, domingo 15, empecé junto con Roberto Auro un proyecto en Google Code para manejar CDRTools desde… Seguir leyendo WinBurn: Grabando CD’s en Windows

Sencilla biblioteca de CURL para .NET

Hace unos días tuve la necesidad de descargar archivos de un servidor TFTP en C# y recordé que podía usar CURL. El caso es que existe un binding para .Net de la libcurl y mirando su documentación es realmente potente y compleja. Yo sólo quería descargar ficheros… nada más. Así que en vez de usarla,… Seguir leyendo Sencilla biblioteca de CURL para .NET

Ahora en Linux y MacOS X

Ahora que tenía un poco de tiempo libre me he dedicado a hacer algo de limpieza en el código que había hecho. Hasta ahora el reproductor de música que estaba haciendo sólo funcionaba en Windows debido a que como motor de reproducción usaba Windows Media Player, como base de datos MS Access y como interfaz… Seguir leyendo Ahora en Linux y MacOS X