Setting up an Internet radio station (icecast + jackd + idjc)

A few moths ago I had the idea of making a web-based broadcasting system to transmit audio from a server to mobile devices connected to my local network. As a web-handicapped programmer, I originally thought of a solution based on UDP sockets, but then realized that you can’t (or at least shouldn’t) work directly with UDP sockets from a web app. As it turns out, the easier way to go was to create a local Internet radio station, that way there is no need to write a single line of code for neither the server nor the clients. Continue reading “Setting up an Internet radio station (icecast + jackd + idjc)”


WndProc() as a class member (Win32)

Sometimes, when a Window is declared in its own class, it is useful to associate other members to it and modify them or calling other methods from the WndProc function (for instance after pushing a button) . Nevertheless, since the WndProc is not usually a class member, the only way to do so is by declaring them with a global scope which is not always practical. In this post we will discuss a useful alternative to make the WndProc a method of the window class. Continue reading “WndProc() as a class member (Win32)”

Custom-shaped Win32 Window with chroma keying

Creating custom shaped and semi-transparent windows using modern programming techniques (such as managed code or visual-drag-and-drop IDE’s) has become a trivial task. But sometimes due to your project’s requirements, performance constraints or simply because you love making your GUI’s from scratch, those tools are not an option.

Continue reading “Custom-shaped Win32 Window with chroma keying”

Microchip’s PIC18 USB HID Demo host software for linux using c/c++ and hiddev (no external libraries)

Nowadays,  developing  embedded full speed USB applications is quite easy and inexpensive using Microchip’s USB Framework for PIC18, PIC24 and PIC32 since extensive examples are provided by the company for us to easily tweak. Nevertheless these examples are primarily thought to be used under windows and using Microchip development boards, so using your own custom hardware and/or working under a different OS (i.e. linux) can get somewhat cumbersome. Continue reading “Microchip’s PIC18 USB HID Demo host software for linux using c/c++ and hiddev (no external libraries)”

Spanning Tree Protocol

Marco teórico 

Las conexiones redundantes van generalmente en contra del espíritu Ethernet. Sin embargo, en muchas aplicaciones, por motivos de seguridad o robustez, este tipo de conexión se vuelve indispensable para garantizar la disponibilidad de los enlaces y con ello la comunicación entre los distintos dispositivos que componen una red. Continue reading “Spanning Tree Protocol”