Nautilus: abrir terminal en el directorio actual

Leave a Comment
Si necesitas abrir una terminal en un directorio, es muy cómodo hacerlo desde Nautilus con "click derecho → abrir terminal aquí". Sobre todo a cuanta más profundidad esté el directorio.



El problema es que si reinstalas el sistema operativo, a veces no aparece. Pero no te preocupes, la solución es bien fácil. Abrimos un terminal e instalamos el paquete nautilus-open-terminal.

La instalación variará según nuestro gestor de paquetes:
  • Ubuntu: $ sudo apt-get install nautilus-open-terminal
  • Fedora: $ sudo dnf install nautilus-open-terminal
En principio debe de funcionar al abrir una instancia nueva de Nautilus. Si no os aparece simplemente lo cerramos desde la terminal con:

$ nautilus -q

Y ya debe de aparecernos dicha opción.

¡Feliz año!

Nomacs: editor sencillo de fotos en Linux

1 comment
Linux trae por defecto un visor de imágenes, que no está mal para ver las fotos de la galería, pero nada más.

Buscando un poco he encontrado a Nomacs que, además de ser un visor de imágenes, nos permite editar las fotos de forma básica: recortar, girar, invertir, cambiar el tamaño o guardar con menor calidad (muy útil si quieres subir fotos, por ejemplo, a un blog ☺ )...  entre otras.

Llevaba un tiempo buscando una aplicación sencilla, ya que al final es mucho más cómodo que utilizar la terminal para un par de imágenes o tener que utilizar Gimp o Photoshop que son mucho más complejas.



Además si nos dirigimos a:

Configuración → Detalles →Aplicaciones por defecto

Podremos cambiar el visor de imágenes por defecto. En mi caso lo dejo como está.

Instalación

En Fedora es muy sencillo:
  • Abrimos la tienda de aplicaciones, buscamos nomacs y lo instalamos.
  • Abrimos un terminal y ejecutamos:
sudo dnf install nomacs

Introducimos nuestra contraseña, confirmamos y ¡listo!

En Ubuntu abrimos un terminal y ejecutamos lo siguiente:
sudo add-apt-repository ppa:nomacs/stable
sudo apt-get update
sudo apt-get install nomacs

También lo puedes descargar para Windows u otro sistema operativo que esté disponible.

Otras plataformas (click).

¡Saludos!

Hello blog!

Leave a Comment
Hola querido lector,

es cierto, hace mucho poco que no escribo en el blog.

Una vez puesto todo en orden, me apetece hacer lo que realmente me gusta.

Así que, ¿por qué no seguir?

Poco a poco iré moderando/respondiendo a todos los comentarios que hay en las diferentes entradas.

Nos vemos pronto :)

C++: Medición de tiempo con 'chrono'

Leave a Comment
¿Necesitas medir tiempos de ejecución y no sabes cómo? 
Has dado con el blog adecuado ;)

Si no tienes mucho tiempo puedes copiar directamente el código que está al final para salir del paso pero, eh, no te acostumbres a copiar y pegar. Es bueno ver qué y cómo programan los demás pero tienes que intentar entenderlo.

En primer lugar aclarar que utilizo la biblioteca chrono incluida en el estándar C++11. Para poder usarla tienes que hacer dos cosas:
  1. Añadir ' #import <chrono> ' al inicio de tu código.
  2. Añadir el flag ' -std=c++0x ' a la hora de compilar.
Ya sabes cómo añadirla, así que vamos al lío.

Tienes toda la documentación aquí (enlace) por si quieres consultar otras funciones. Yo me voy a centrar en 'high_definition_clock'.

En primer lugar tienes que añadir estas dos líneas de código que te permitirán ahorrarte escribir 'std::chrono::' antes de llamar a métodos u objetos dentro del ámbito de la biblioteca chrono.
using namespace std;
using namespace std::chrono;
A continuación crea dos variables que contendrán el tiempo antes y después de la ejecución:
double time;
duration<double> interval;
high_resolution_clock::time_point start, end;

start = high_resolution_clock::now();
// Función que quieras medir.
end = high_resolution_clock::now();
Posteriormente se calcula el intervalo de tiempo y se almacena en una variable de tipo double:
interval = duration_cast>(end - start);
  
time = interval.count();
Para ahorrarte tiempo puedes usar el objeto Clock que he implementado y que es de código libre (está en GitHub y lo muestro a continuación). Para usarlo tienes, de nuevo qué pesado, dos opciones:

  1. Copias el código dentro de tu programa. (Que no se te olvide incluir la bilbioteca chrono)
  2. Descargarte el archivo e incluirlo con '#include "clock.hpp"'. 

 En ambos casos tendrás que añadir el flag que mencioné al principio cuando compiles, '-std=c++0x'. Un simple ejemplo de uso:
Clock my_clock;
double time;

my_clock.start();
// Lo que quieras medir.
time = my_clock.now();
Fácil, ¿Verdad?

Aquí puedes ver/descargar el código al completo: ¡Saludos!

Nautilus: añadir "Nuevo documento vacío" al menú

Leave a Comment
Estos días usando Fedora me he dado cuenta que al hacer click derecho sobre algún directorio en Nautilus, el gestor de archivos ), no me dejaba crear un documento en blanco. Directamente no aparecía la opción.

La solución es bien sencilla como siempre : tenemos que crear un documento dentro de la carpeta "Plantillas". Para ello abrimos un terminal ( CTRL+T ) y ejecutamos:

cd Plantillas/
touch 'Nuevo documento.txt'


Inmediatamente después nos aparecerá la opción al hacer click derecho. Lo único que no me gusta de esta solución es que crea el archivo directamente y no te da la opción de renombrarlo sin hacer click en él. Pero bueno, mientras que encuentre alguna otra solución hace el apaño.

¡ Saludos !

Cambiar los iconos en Linux

Leave a Comment
En esta ocasión vamos a ver cómo podemos personalizar la apariencia de nuestro sistema operativo instalando un pack de iconos que nos guste, ya que a veces el que viene por defecto puede ser un poco cutre.

Configuración

El primer paso será instalar una herramienta que nos permitirá editar fácilmente la configuración de nuestro entorno de escritorio. La aplicación recibe el nombre dependiendo de dicho entorno:
  • Para Unity ( Ubuntu ): unity-tweak-tool
  • Para Gnome: gnome-tweak-tool
Si tenéis otro entorno de escritorio buscad la específica para el vuestro.

Para instalarla abrimos un terminal ( Ctrl + T ) y ejecutamos una de las siguientes instrucciones que dependerá del gestor de paquetes que utilice vuestro sistema.
La orden la ejecutamos con sudo que nos provee de permisos de administrador para poder instalarla, por lo que os pedirá que introduzcáis vuestra contraseña.

Ubuntu
sudo apt-get install unity-tweak-tool

Fedora
sudo dnf install gnome-tweak-tool

En mi caso el paquete ya estaba instalado:

Pack de iconos

Antes de continuar tenemos que encontrar algún pack de iconos. Para ello tenemos múltiples opciones:
Una vez hayamos encontrado algún pack de iconos nos lo descargamos y lo descomprimimos.

Nos dirigimos a nuestra carpeta personal y habilitamos que se muestren los archivos ocultos con Ctrl + H o desde el menú. Los archivos ocultos en linux son aquellos que empiezan por un punto "." y en la mayoría de ocasiones son carpetas o archivos que tienen datos para las aplicaciones que tenemos instaladas.


Buscamos la carpeta llamada .icons y si no existe la creamos. Como veis en la foto anterior ya está creada.
Esta carpeta contendrá todos los packs de iconos que queramos, y la herramienta que hemos instalado nos permitirá seleccionar uno de ellos.

Copiamos el contenido del archivo comprimido del tema ( una carpeta ) que nos hemos descargado.



Ahora en la misma terminal de antes o en una nueva ejecutamos la aplicación que hemos instalado, en mi caso:
gnome-tweak-tool



Y en la parte de Apariencia -> Iconos seleccionamos el nombre de nuestro nuevo pack. Cerramos la aplicación y ya tenemos nuestro equipo con un look más bonito.

Como ves esta aplicación nos permite configurar los temas así como muchas otras opciones no sólo relacionadas con la apariencia. Si quieres que escriba más entradas sobre personalización y/o configuración deja un comentario o simplemente puedes dar tu opinión. ¡ Gracias !

¡ Saludos !

Date una vuelta por un Data Center de Google ( Vídeo 360º )

Leave a Comment

Aquí te dejo un vídeo de un Data Center de Google en el que puedes arrastrar sobre el vídeo para cambiar la vista. Si dispones de un Cardboard la experiencia será mucho más inmersiva.

En mi opinión me parece increíble el alto grado de seguridad así como la eficiencia y las tecnologías de las que disponen para proporcionar sus servicios.

¿ Genial no ? ¿ Qué es lo que más te llama la atención ?

Mostrar notificaciones con Python

Leave a Comment
Notificación en Fedora, Gnome3.

Si tu aplicación necesita mostrar notificaciones en tu sistema te traigo la solución, que además es muy sencilla.

Para ello vamos a hacer uso de notify, una biblioteca que pertenece al paquete PyGi, la nueva versión de Gtk (Gtk3) que nos va a permitir comunicarnos con el sistema mediante DBus en Python.

Lo primero que tenemos que hacer es incluir la biblioteca en nuestro código:
from gi.repository import Notify
A continuación hay que inicializarla con el nombre de nuestra aplicación:
Notify.init("MyProgram")
Ya está listo para crear notificaciones. Ahora creamos nuestra notificación y añadimos título y descripción:
n = Notify.Notification.new("Title", "Body" )
Una vez configurada podemos mostrarla simplemente llamamos al método show():
n.show()
Si queremos reutilizar dicho objeto pero cambiar el mensaje tenemos que llamar a update():
n.update( "New title", "New body" )

Os dejo el código de ejemplo en GitHub:

Si queréis consultar más información aquí tenéis la documentación completa (enlace).

¡ Saludos !

Adiós Ubuntu, Hola Fedora. Mi perspectiva.

Leave a Comment
Mi escritorio actual.

Ubuntu y sus inicios


Llevo usando Ubuntu desde que soy chico. Si no recuerdo mal lo instalé por primera vez cuando salió la versión 5 ó 6, y cada versión que lanzaban me gustaba más: funcionaba mejor, traía nuevas mejoras y características y para el usuario general era mucho más sencillo de usar.

Me encantaba Ubuntu y se lo recomendaba a todo el mundo.

El problema fue cuando Canonical decidió sacar Unity, su propio entorno de escritorio.
Al principio no me desagradaba y suponía que cada versión nueva seguirían una serie de mejoras (ya que entiendo que al principio no funcionase todo a la perfección ), pero NO.
Cada vez me daba la sensación de que el sistema tenía más fallos y era más inestable... algo que me parece indispensable para trabajar todos los días.
Además me gusta probar aplicaciones y muchas veces por un motivo u otro instalo/desinstalo muchos paquetes y al final necesitaba formatear el ordenador.

Horrible, un desastre, me desesperaba.

Aunque estoy montando un servidor web y estoy usando Ubuntu 14.04, probablemente tarde o temprano pasaré a Fedora. Quién sabe.

¿ Alternativas ?

En aquel momento no sabía qué hacer, no me convencían las distribuciones tipo Arch Linux y Ubuntu, que para mí lo habían hecho genial, iba cayendo en picado...

Windows


En general me parece muy bonito, funciona bien (en terminos generales, no entro en aplicaciones específicas), puedes tener juegos y aplicaciones tipo Spotify lo que hace el uso confortable, pero es Windows, no te salgas de ahí. Quizá para probar algún programa que hayas realizado o diseñar algún programa específico para dicha plataforma, vale, no le pidas más.

Windows 8: Horrible, de hecho lo quité de mi PC. ¿Por qué? Porque nada más que me daba problemas y no me servía para nada ( miento, servía para jugar al LoL o al Minecraft ).

Windows 8.1: Ningún cambio relevante. Quizá funcionaba mejor.

Windows 10: Me encanta, funciona genial, ahorra batería y me gustan las nuevas líneas de diseño estilo windows 7. Actualmente lo tengo instalado en una partición del disco y lo uso de vez en cuando.

OS X 


Lo he usado por encima por lo que tampoco puedo daros una opinión objetiva.
Por ahora no me planteo comprarme un Mac ( y menos aún instalar un "Hackintosh" ).
Quizá en un futuro.

Fedora

Estuve leyendo sobre las distintas distribuciones y al final me decidí por Fedora, lo mejor que pude hacer.
Funciona increíblemente bien, su gestor de paquetes yum (aunque trae dnf que es o será su sustituto) es mucho más potente que apt-get de Ubuntu aunque al principio hay que acostumbrarse, como todo.

A mitad de cuatrimestre, harto de los problemas con Ubuntu me decidí a instalar Fedora. Desde entonces llevo todo el curso usando Fedora y no me arrepiento para nada. Hasta ahora ha aguantado todo lo que le he hecho: instalar y desinstalar grandes cantidades de paquetes y aplicaciones, cambiar configuraicones, personalizarlo, crear/borrar datos, etc. y de verdad, va como el primer día que formatee el ordenador ( no como Ubuntu que cada cierto tiempo acababa reinstalándolo ).
Las actualizaciones también funcionan muy bien.

Fedora trae a Gnome 3 ( junto con Gnome Shell ) un entorno de escritorio que tiene buen rendimiento, es bonito y personalizable. ¿Qué mas quieres?

Además es Linux, si no te gusta un entorno siempre puedes instalar otro que sea tu favorito.

En resumen, tanto si estáis hartos de Ubuntu como si no, dadle una oportunidad en una máquina virtual si no os apetece instalarlo o formatear pero seguro que al final termináis por instalarlo.

Si queréis pronto puedo traer un post más a fondo sobre Fedora o sobre otras distribuciones.

¡Saludos!

Permisos en Linux

Leave a Comment

En Linux cada fichero y directorio tiene asociados permisos de lectura, escritura y ejecución.

Los permisos en ficheros se pueden representar mediante letras o en octal (valor entre paréntesis):
  • r - Permiso de lectura. ( 4 )
  • w - Permiso de escritura. ( 2 )
  • x - Permiso de ejecución. ( 1 )
La representación en octal es la suma de los permisos de cada campo, es decir, si posee permiso de lectura y escritura tendrá el valor 4+2+0=6.

Los permisos en directorios son un poco diferentes:
  • r - Permite al usuario mostrar los archivos contenidos dentro del directorio.
  • w - Permite al usuario crear, eliminar y renombrar archivos así como modificar las propiedades del directorio.
  • x - Permite al usuario acceder al directorio y a los archivos que contiene.
En los permisos podemos distinguir tres campos:
  • Propietario: rwx
  • Grupo: rwx
  • Otros: rwx
Importante: Si carece de alguno aparecerá el carácter “-” indicando que no tiene dicho permiso.

Ejemplo
Suponemos los siguientes permisos de un archivo: rwx r-- r-x. En octal: 745
El propietario podrá leer, escribir y ejecutar dicho archivo, el grupo sólo leerlo y otros podrán leerlo y ejecutarlo. La representación en octal sería:
  • Propietario: 4+2+1=7
  • Grupo: 4+0+0=4
  • Otros: 4+0+1=5
Caso práctico


Para experimentar un poco podemos abrir un terminal y utilizar la orden “ls” que lista los archivos y directorios del directorio actual. Además añadiremos la opción “-l” para obtener información adicional. En mi caso:

$ ls -l

drwxrwxrwx.  1 pirobtumen pirobtumen          6 nov 17 22:03 Documentos

Para analizar los permisos nos fijamos en la cadena “drwxrwxrwx”. Según lo que hemos aprendido podemos descomponerlo en diferentes partes: d / rwx / rwx / rwx.
La ‘d’ inicial nos indica que es un directorio. Los permisos serían:
  • Propietario: rwx -> 4 + 2 +1 = 7
  • Grupos: rwx -> 4 + 2 +1 = 7
  • Otros: rwx -> 4 + 2 +1 = 7
Ahora vamos a crear un archivo nuevo con la orden “touch”:
$ touch prueba.txt

Analizamos sus permisos:
$ ls -l prueba.txt

-rw-rw-r--. 1 pirobtumen pirobtumen 0 ene 30 12:36 prueba.txt

E incluso podemos modificarlos con la orden “chmod”:
$ chmod 705 prueba.txt
*Nota: el valor 705 son los permisos en octal.

Comprobamos sus nuevos permisos:
$ ls -l prueba.txt
-rwx---r-x. 1 pirobtumen pirobtumen 0 ene 30 12:36 prueba.txt

También podemos usar la orden “chmod” de la forma:
$ chmod <id_campo><operador><tipo_permiso> <archivo>
  • id_campo puede ser propietario (u), grupo (g) u otros (o).
  • operador puede ser (+) para añadir o (-) para eliminar permisos.
  • tipo_permiso será lectura (r), escritura (w) o ejecución (x).
Para más información podéis buscar en internet o en el manual “$man chmod”, así como “touch” o “ls”.

Licencia:
Licencia Creative Commons
Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional.

Linux - mpi : no se encontró la orden

2 comments
Los sistemas linux, como Ubuntu o Fedora, normalmente vienen con muchas aplicaciones y librerías, entre ellas está OpenMPI.
Si usas Ubuntu probablemente no necesitarás esto porque el directorio donde están los ejecutables de OpenMPI ya viene incluido en la variable de entorno 'PATH'.

¿ Cómo se si están incluidos o no?

Muy sencillo, abre una terminal y ejecuta
mpicc
o mpirun o cualquier otra orden de mpi.
Si obtienes el mensaje " ... : No se encontró la orden... " tienes que añadirlo al PATH.

¿ Cómo puedo añadirlo ?

Primero abre un terminal ( o usa el que abriste antes ) y ejecuta:
find /usr -name "mpirun"
Aquí estamos buscando el ejecutable "mpirun" que sabemos que es parte de la librería. Yo obtengo la siguiente salida:
/usr/lib64/openmpi/bin/mpirun
Normalmente siempre están en el directorio '/usr/lib64/openmpi/bin' si tu sistema es de 64bits o solamente "lib" si no lo es.
Ahora sólo tienes que añadirlo con:
export PATH=$PATH:/usr/lib64/openmpi/bin/
Si usas la orden 'export' tendrás que ejecutarla por cada terminal que abras o reinicies. Si no quieres tener que hacerlo cada vez hay que incluirlo en el archivo ".bashrc".

Abre una terminal y ejecuta:
cd ~
gedit .bashrc
Yo uso gedit, tú puedes usar tu editor favorito.

Y añadimos al final la orden 'export' usada anteriormente:

Linux - Command mpi not found

Leave a Comment
Linux systems, such as Ubuntu or Fedora, usually come with a lot of libraries or applications, and OpenMPI is among them.
If you use Ubuntu you probably won't need this because it includes the openmpi binaries folder in the environment variable 'PATH'.

How I know if I it's included or not?


It's quite simple, open a terminal and run:
mpicc
or mpirun or any other mpi command.
If you obtain the message " ... : Command not found... " you have to add it to PATH.

How can I add it?

First open a terminal ( or use the one you opened before ) and run:
find /usr -name "mpirun"
Here we are looking for the executable "mpirun" which we know it's part of the library. I obtain the following output:
/usr/lib64/openmpi/bin/mpirun
Normally it is always under '/usr/lib64/openmpi/bin' if your system is 64bits or only "lib" if not.
Now you only have to add it:
export PATH=$PATH:/usr/lib64/openmpi/bin/
If you use the export command you have to use it for every terminal you open / restart. If you don't want to do this only add it to your ".bashrc" file.

Open a terminal and run:
cd ~
gedit .bashrc
Use gedit or other text editor you like.

And at the end of the file add the previous export command: