Entradas

Mostrando entradas de febrero, 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