Entradas

Mostrando entradas de 2014

Cambiar carpeta personal en Linux

Imagen
En ciertas ocasiones nos puede interesar almacenar nuestros archivos personales en una ubicación diferente a la carpeta home  de Linux, pero al mismo tiempo nos convenga acceder a ellos como si estuvieran allí. Por ejemplo, si usamos dual boot  con Windows y Ubuntu, o tenemos Linux instalado en una máquina virtual, es buena idea enlazar nuestra carpeta personal al directorio donde tenemos nuestra información. Ya que los sistemas operativos actuales clasifican los archivos de forma similar, es recomendable mantener la carpeta personal original de cada uno individualmente (para configuraciones y archivos que no queramos compartir) y vincular cada directorio (Documentos, Imágenes...) a la carpeta correspondiente en la ubicación maestra. Más abajo ofrezco un script en Bash que hace esto mismo: renombra cada carpeta de nuestro home  (o la ubicación que escojamos) y crea una serie de enlaces a los directorios que guardan nuestra información. Se configura fácilmente en las pri

Uso de switch en programación

Imagen
Orange switches artwork. Valentin Ruhry. ¿Para qué sirve la sentencia switch en C/C++ o Java? ¿Por qué los profesores insisten en que lo usemos, porque es más bonito? ¡Pues sí! No olvides que un código claro favorece una lectura más comprensible. Pero no somos nosotros los únicos que nos beneficiaremos: nuestro programa puede ser más eficiente. Recuerda que cuantas más y mejores pistas demos al compilador, mejor código podrá generar . Es cierto que un switch tiene el mismo diagrama de flujo que un if-else , pero es más estricto respecto a la condición. En primer lugar sólo admite expresiones constantes , y en segundo estamos usando etiquetas , con lo que se lo estamos poniendo muy fácil al compilador para que genere una tabla de functores . Precaución : no utilices etiquetas y sentencias goto en C/C++. Por ejemplo, supongamos este sencillo código en C: if (x == 1) a(); else if (x == 2) b(); else if (x == 3) c(); else if (x == 5) d(); else error(); Es mu

Búsqueda paralela de números primos

Imagen
"Sieve for Seven", Scot Nelson . Los números primos son aquellos números naturales mayores que 1 que sólo tienen dos divisores: el 1 y él mismo. Hay muchos problemas en Matemáticas relacionados con los números primos, algunos de ellos aún sin resolver, como la Conjetura de Goldbach . El objetivo de hoy será hallar todos los números primos hasta 2·10 9 . Existen varios algoritmos para obtener listas de números primos, tal vez el más común sea la criba de Eratóstenes , que consiste en escribir una lista con todos los números que queremos estudiar y, partiendo del primero, tachar todos sus múltiplos, y repetir el proceso cada vez con el primer número que no hayamos tachado. Este algoritmo presenta dos problemas: Es destructivo (consiste en descartar), por lo que a priori consume demasiada memoria, y mucho tiempo en escribir candidatos. Eliminar objetos de una lista impide trabajar con ella desde otra hebra, ni siquiera para iterar, con lo que perdemos la posibilid