Latest entries

Reemplazando expresiones regulares en ficheros con sed

written by uve

14 December 2010

Cuando trabajamos con un editor de textos en la terminal, en ocasiones echamos de menos un Ctrl+H para reemplazar un texto por otro. Esto es especialmente útil cuando estamos configurando un servidor remoto a través de SSH.

Para ello disponemos del comando sed (Stream EDitor), que nos permite filtrar y hacer transformaciones sobre texto.

Full entry >>

Breves: Cómo crear un lanzador personalizado con varios comandos en Gnome

written by uve

11 December 2010

Alguna que otra vez he necesitado crear (o me gusta tener) un lanzador de aplicaciones que involucra la ejecución de varios comandos. Lo más típico, tener que lanzar una aplicación desde un directorio determinado:

$ cd ruta/de/aplicacion/
$ ./mi_aplicacion

Lo primero que pensé:

cd ruta/de/aplicacion/ && ./mi_aplicacion

pero esto no le gusta al lanzador de aplicaciones, no es un shell. ¿La solución? ¡Que lo ejecute un shell! :)

bash -c 'cd ruta/de/aplicacion/ && ./mi_aplicacion'

Full entry >>

Breves: Concatencar cadenas de texto en Matlab

written by uve

11 December 2010

display(['hola' int2str(3)])

Full entry >>

Algunas cosas útiles acerca de las funciones en Matlab

written by uve

11 December 2010

Últimamente he estado trabajando mucho con Matlab, y aunque no termina de gustarme voy a ir relatando algunas experiencias y consejos que pueden ser útiles (si programas Matlab, claro). Ahora toca funciones.

Full entry >>

Breves: Cómo listar los idiomas disponibles en Django

written by uve

6 December 2010

>> from django.conf import settings
>> map(lambda lang_tuple:lang_tuple[0], settings.LANGUAGES)
['es', 'en', 'de']

Full entry >>

Functores y ordenación mediante sort en la STL

written by uve

5 December 2010

La STL, o Standard Template Library, es un conjunto de plantillas para C++ que facilitan la vida al programador, y además de una forma eficiente.

Para quién no lo conozca, un Functor o Function Object es un objeto que puede ser invocado como una función. Por tanto, nos estamos refiriendo a la instancia de a una clase o a una estructura, la cuál tiene definido el operator().

Full entry >>

Cómo ejecutar las prácticas MPI de PDP

written by uve

1 December 2010

PDP, Programación Distribuida y Paralela, es una asignatura optativa de Ingeniería Informática que estoy cursando. Para la práctica 2 nos piden ejecutar el algoritmo de Floyd (implementado sobre OpenMPI) en cuatro máquinas del aula de prácticas.

Full entry >>

Añadir transparencias en OpenGL

written by uve

1 December 2010

Para hacer que un objeto tenga cierto grado de transparencia, debemos de activar GL_BLEND e indicar como queremos que se apliquen las transparencias:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

A partir de aquí, se tendrá en cuenta el valor de alpha de los colores. Con glBlendFunc es quien nos permite decidir como aplicar el valor de alpha. Por ejemplo, podemos indicar el alpha con la siguiente función:

void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);

Así, la siguiente llamada introduce una opacidad del 80% a un color rojo (255, 0, 0):

glColor4f(1.0, 0.0, 0.0, 0.8);

Full entry >>

Manifiesto por una Red Neutral

written by uve

30 November 2010

Los ciudadanos y las empresas usuarias de Internet adheridas a este texto manifestamos:
   1. Que Internet es una Red Neutral por diseño, desde su creación hasta su actual implementación, en la que la información fluye de manera libre, sin discriminación alguna en función de origen, destino, protocolo o contenido.
   2. Que las empresas, emprendedores y usuarios de Internet han podido crear servicios y productos en esa Red Neutral sin necesidad de autorizaciones ni acuerdos previos, dando lugar a una barrera de entrada prácticamente inexistente que ha permitido la explosión creativa, de innovación y de servicios que define el estado de la red actual.
   3. Que todos los usuarios, emprendedores y empresas de Internet han podido definir y ofrecer sus servicios en condiciones de igualdad llevando el concepto de la libre competencia hasta extremos nunca antes conocidos.
   4. Que Internet es el vehículo de libre expresión, libre información y desarrollo social más importante con el que cuentan ciudadanos y empresas. Su naturaleza no debe ser puesta en riesgo bajo ningún concepto.
   5. Que para posibilitar esa Red Neutral las operadoras deben transportar paquetes de datos de manera neutral sin erigirse en "aduaneros" del tráfico y sin favorecer o perjudicar a unos contenidos por encima de otros.
   6. Que la gestión del tráfico en situaciones puntuales y excepcionales de saturación de las redes debe acometerse de forma transparente, de acuerdo a criterios homogéneos de interés público y no discriminatorios ni comerciales.
   7. Que dicha restricción excepcional del tráfico por parte de las operadoras no puede convertirse en una alternativa sostenida a la inversión en redes.
   8. Que dicha Red Neutral se ve amenazada por operadoras interesadas en llegar a acuerdos comerciales por los que se privilegie o degrade el contenido según su relación comercial con la operadora.
   9. Que algunos operadores del mercado quieren “redefinir” la Red Neutral para manejarla de acuerdo con sus intereses, y esa pretensión debe ser evitada; la definición de las reglas fundamentales del funcionamiento de Internet debe basarse en el interés de quienes la usan, no de quienes la proveen.
  10. Que la respuesta ante esta amenaza para la red no puede ser la inacción: no hacer nada equivale a permitir que intereses privados puedan de facto llevar a cabo prácticas que afectan a las libertades fundamentales de los ciudadanos y la capacidad de las empresas para competir en igualdad de condiciones.
  11. Que es preciso y urgente instar al Gobierno a proteger de manera clara e inequívoca la Red Neutral, con el fin de proteger el valor de Internet de cara al desarrollo de una economía más productiva, moderna, eficiente y libre de injerencias e intromisiones indebidas. Para ello es preciso que cualquier moción que se apruebe vincule de manera indisoluble la definición de Red Neutral en el contenido de la futura ley que se promueve, y no condicione su aplicación a cuestiones que poco tienen que ver con ésta.
La Red Neutral es un concepto claro y definido en el ámbito académico, donde no suscita debate: los ciudadanos y las empresas tienen derecho a que el tráfico de datos recibido o generado no sea manipulado, tergiversado, impedido, desviado, priorizado o retrasado en función del tipo de contenido, del protocolo o aplicación utilizado, del origen o destino de la comunicación ni de cualquier otra consideración ajena a la de su propia voluntad. Ese tráfico se tratará como una comunicación privada y exclusivamente bajo mandato judicial podrá ser espiado, trazado, archivado o analizado en su contenido, como correspondencia privada que es en realidad.
Europa, y España en particular, se encuentran en medio de una crisis económica tan importante que obligará al cambio radical de su modelo productivo, y a un mejor aprovechamiento de la creatividad de sus ciudadanos. La Red Neutral es crucial a la hora de preservar un ecosistema que favorezca la competencia e innovación para la creación de los innumerables productos y servicios que quedan por inventar y descubrir. La capacidad de trabajar en red, de manera colaborativa, y en mercados conectados, afectará a todos los sectores y todas las empresas de nuestro país, lo que convierte a Internet en un factor clave actual y futuro en nuestro desarrollo económico y social, determinando en gran medida el nivel de competitividad del país. De ahí nuestra profunda preocupación por la preservación de la Red Neutral. Por eso instamos con urgencia al Gobierno español a ser proactivo en el contexto europeo y a legislar de manera clara e inequívoca en ese sentido.

Full entry >>

Integrar aplicaciones de Wine con Gnome

written by uve

27 November 2010

Como creo que ya sabemos todos, la apariencia de las aplicaciones de Wine es espantosa (al menos por el momento). Voy a explicar como podemos tratar de solucionarlo, instalando algún tema para Wine.

Full entry >>

Redirección de dominios con VirtualHosts en Apache2

written by uve

27 November 2010

Inicialmente, el despliegue para PlagaOS lo realicé en un subdominio de MenudoProblema (palgaos.menudoproblema.es). A los pocos días decidí comprar un nombre de dominio, por lo que ahora quiero redirigir todo el tráfico de http://plagaos.menudoproblema.es hacia http://www.plagaos.com.

Full entry >>

Cómo hacer en Django una migración manual en producción

written by uve

26 November 2010

Últimamente tengo aún menos tiempo, ya que estoy aprovechando PlagaOS para actualizar los módulos de MenudoProblema y crear algunos módulos que incorporaré más adelante. Pero aquí os dejo un pequeño problema:tras explorar la limitaciones de Django FlatPages decidí hacerme mi propio módulo de páginas estáticas. Lo desarrollé, lo incluí en la página del proyecto, hice el despliegue y como no, acabé haciendo un cambio en el modelo.

Full entry >>

Broadcom: Wifi en Fedora 14

written by uve

22 November 2010

Una vez más he estado probando Fedora, aprovechando el lanzamiento de la versión 14, y una vez más me encuentro con el problema de siempre: los chipset wifi de Broadcom.

Full entry >>

PlagaOS

written by uve

22 November 2010

Llevo ya unos cuantos días sin tiempo para poder escribir, y me temo que mi tiempo irá a menos, estoy comenzando con el proyecto de fin de carrera: PlagaOS.

Full entry >>

Breves: Cómo ejecutar caspian desde wine

written by uve

9 November 2010

Para la asignatura de Ampliación de Ingeniería del Conocimiento estamos utilizando un Sistema de Razonamiento Basado en Casos que se llama Caspian.

Caspian está disponible de forma gratuita con algunos ejemplos aquí. La última versión que apareció es del 1997, así que podréis imaginar.

La ejecución es muy sencilla, en lugar de usar wine debemos usar wineconsole:

wineconsole caspian.exe chef2

Full entry >>

La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.