Hilos en Java: Que funcione no quiere decir que esté bien

Hace tiempo que leo código con los mismos fallos que, creo, son errores de concepto. Mucha gente supone cosas sobre el funcionamiento de los hilos en Java que, directamente, son falsas. En esta entrada aportaré mi granito de arena para aclarar algunos de esos conceptos. La sincronía es importante Pongamos por ejemplo esta clase: public… Seguir leyendo Hilos en Java: Que funcione no quiere decir que esté bien

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

Desarrollado aplicaciones para la Wii

Por navidad mi hermana me regaló una Nintendo Wii, cosa que no esperaba para nada :) Estos días he estado “jugando” un poco con ella y he creado un sencillo programita para leer las pulsaciones del WiiMote. En esta entrada explicaré como instalar el entorno de desarrollo, como hacer un sencillo programa y ejecutarlo en… Seguir leyendo Desarrollado aplicaciones para la Wii

Hilos en java sin heredar de Thread

Uno de mis amigos está ahora cursando la asignatura de Redes. En las prácticas usan Java e inevitablemente hacen uso de hilos. Hasta ahí todo normal. El problema (por llamarlo de alguna manera) es que los ejemplos disponibles en las transparencias crean clases que extienden de Thread. Crear un hilo heredando de Thread me parece… Seguir leyendo Hilos en java sin heredar de Thread

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

Progreso en la barra de taréas de Windows 7 con C#

Seguramente a estas alturas todos habréis trabajado, o al menos visto, Windows 7. Una de las cosas que primero se notan son los cambios que han introducido en la barra de tareas. Una característica bastante útil es poder ver el progreso (de descargas, de impresión, etc…) en el propio icono de la aplicación. Hacer que… Seguir leyendo Progreso en la barra de taréas de Windows 7 con C#

¿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?

GoEar Downloader actualizado

NOTA: Hace tiempo que he dejado de mantener este programa y lo más probable es que no funcione. Podéis hacer uso de los scripts para Bash y PowerShell que sí están operativos. Hace unos meses os hablé de “GoEar Downloader”, una pequeña utilidad que había creado para descargar música de GoEar. Hace unas semanas dejó… Seguir leyendo GoEar Downloader actualizado

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)