Dec 22, 2012

Object Oriented Programming in Bash

Bash is a very common *nix shell, and it's programming language is purely procedural and focused on command execution. Object Oriented Programming (OOP) is a programming paradigm that represents the elements of a problem as entities with a set of properties and actions that it can execute. If you use Bash to write very simple and short scripts, procedural programming is just fine, you don't need more. But if your program becomes more and more bigger, a monster program (> 1000 lines), then you need a better way to structure your program to make it easy to maintain and read. Of course, Bash lacks OOP features, but with some tricks you can simulate it with a few lines added, and I'll show you how.

Nov 5, 2012

About Webcamoid and the transition to Carnival-LiveCam

As (may be) you know, I have two main projects: Carnival-LiveCam and Webcamoid, both are brother projects, both focussed on filling the gap of a good Free open source webcam software.

This should be Webcamoid 4.0.0

Oct 13, 2012

Qt5 in ArchLinux

If you are a Qt developer and an ArchLinux user, and you want to give a try to the new Qt5 this post is for you. I will show you how to setup the Qt5 development environmet correctly.

Aug 10, 2012

Longest Common Subsequence in Python (version 3.0)

This is my new implementation of the Longest Common Subsequence algorithm, and it's far better than my two previous attempts. This algorithm has less memory usage and is faster than the others because it just compares the common elements.

Aug 3, 2012

Multiple Sequences Alignment in Python

In my previous post, I was created a funtion for align two single sequences. The following code will align several input sequences with several output sequences, based on their align score.

Jul 26, 2012

Sequences alignment in Python

One of the uses of the LCS algorithm is the Sequences Alignment algorithm (SAA). The SAA is useful for comparing the evolution of a sequence (a list of characteristic elements) from one state to another, and is widely used by biomedics for comparing DNA, RNA and proteins; SAA is also used for comparing two text and finding their differences, like the *nix's diff tool.

Longest Common Subsequence in Python (version 2.0)

In one of my previous posts I was implemented the Longest Common Subsequence algorithm using string shifting. Now I was enhanced the algorithm, simplified the code, and fixed some issues. Following the SC:

Jul 9, 2012

Carnival LiveCam & the mockups 3

Finally, after several weeks of hard work in my other proyects, I pleased to show you the new Carnival LiveCam mockup for videoconferences with a modern, intuitive and very simple touch design.

Jun 23, 2012

Simple video call example program using QXmpp

In my previous post I had shown you how to compile QXmmp in ArchLinux, now I'll show you a minimal videoconference example using QXmpp.


May 12, 2012

Installing QXmpp in ArchLinux

In this post I will show you how to install the lastest version of QXmpp (0.4.0) and enable full support for Speex, Vpx and Theora codecs support.

List to tree conversion algorithm in Python

The following algorithm can be very useful if you want to create a tree from a list of ordered elements. For example you can parse a XML file and create a list of tags and values, where you had calculated the level of each element.

Mar 6, 2012

Configurar Mozplugger para incrustar SMPlayer en Firefox

Resulta que a día de hoy todavía existen algunas paginas web que incrustan videos usando las etiquetas <object> y <embed>, así como también existen complementos para Firefox que nos permiten reemplazar objetos Flash de audio y video por un objeto incrustado en una etiqueta <object> o <embed>.

Los usuarios de GNU/Linux y de Firefox utilizan Mozplugger para poder reproducir este tipo de contenidos.

El problema con Mozplugger es que en muchos sistemas está configurado para usar MPlayer como reproductor por defecto, y el problema que esto acarrea es que MPlayer no trae controles para manipular la reproducción de video, como pausar, avanzar y retroceder, controlar el volumen, etc.. En otras palabras, MPlayer incrustado en Firefox, sólo se limita a reproducir el video y nada más.

Yo desde hace un tiempo atras, he adoptado a SMPlayer como mi reproductor por defecto, y ahora quiero usarlo para reproducir contenido incrustado en la web en lugar de MPlayer. Y en este tutorial veremos como se hace.

Feb 16, 2012

Carnival LiveCam y los mockups 2

Después de estar diseñando y rediseñando, durante unas cuantas semanas, por fin puedo presentar una parte del concepto de "Espacios". El concepto de Espacios es básicamente muy similar al de escritorio y ventanas. Las capturas que se toman de cada uno de los dispositivos (webcam, imágenes, videos, tarjetas de TV, etc.) se renderizan todos juntos (los que están activados por supuesto) sobre un espacio principal de dimensión variable, permitiendo también redimensionar, rotar y mover cada espacio de forma independiente, pudiendo también realizar tiling y snapping con el fin de tener todo más ordenado.