Psicofonías

(algo así como el blog de Psicobyte)

Dad las gracias

Algunas ideas un poco deslavazadas a costa de los cocineros pijos estos:

Resumiendo: Tenemos una entrevista a los dueños de algunos de los restaurantes más caros que dicen:

1 Que tienen a media plantilla trabajando sin cobrar

2 Que necesitan a todos esos trabajadores para que su negocio funcione

3 Que, si tuvieran que pagarles, se les hunde el chiringuito

(O sea, que admiten que su negocio no existiría sin esos trabajadores explotados)

4 Y tienen la caradura de decir que esos trabajadores "deberían estar agradecidos"

A ver, guapis, los que deberían estar agradecido sois vosotros, por dos razones:

1 Habéis admitido que vuestros negocios dependen de ellos: Tened un poco de gratitud.

2 Ya ha pasado un día desde que se publicó eso y aún no ha ardido ninguno de vuestros restaurantes.

(Que estaría muy mal que os quemaran el negocio, pero también sería muy comprensible)

Porque todo esto es algo que se repite mucho, pero sigue siendo mentira:

Quien te ofrece un puesto de trabajo (aunque te pague) NO te está haciendo favor. Tú se lo haces a él.

Si te paga la cantidad que sea es porque tu trabajo le hace ganar más que esa cantidad. SIEMPRE.

De tu trabajo salen tu sueldo Y EL SUYO.

En las empresas sin empresarios hay un cartel que pone Cooperativa. En las empresas sin trabajadores el cartel pone CERRADO

El trabajo de un empresario es gestionar y optimizar los recursos para sacar el mayor beneficio de su negocio.

Si lo único que sabe hacer es compensar las pérdidas con sueldos bajos, es que es un inútil.

Si los recursos que optimiza son tu trabajo y tu sueldo, él no está optimizando nada. Lo estás haciendo tú.

Ese tío es un incompetente y tú estás haciendo su trabajo.

Y lo que tenemos es eso: Mucho incompetente que se lo tiene muy creído y, encima, quiere que le des las gracias.

Exponiendo en Cicreart 2017

NOTA: Este post es una edición posterior y no fue publicado originalmente en la fecha que indica.

Ya sé que el Día de pi fue ayer, pero ahí va una primicia de mi trabajo para la exposición del Cicreart 2017 (III Congreso Internacional de Investigación y Docencia de la Creatividad), que se inaugura mañana en el Parque de las Ciencias Andalucía-Granada.

Artihta

En esta obra, un ordenador usa un programa basado en Tensión superficial para ir generando continuamente infinidad de formas a partir de secuencias numéricas.

En el tablero expositor de detrás se puede ver un ejemplo basado en la expansión decimal del número pi.

Quiero dar mi especial agradecimiento a la Oficina de Software Libre de la Universidad de Granada, que cedió temporalmente un ordenador para exponer esta obra.

(ojo a los pelos de artista)

Taller de Python

NOTA: Este post es una edición posterior y no fue publicado originalmente en la fecha que indica.

Como parte del "Programa ETSIIT de capacitación profesional", he estado impartiendo un pequeño taller de Python básico (es decir, orientado a gente que no ha visto Python en su vida) en la Escuela Técnica Superior de Ingenierías Informática y de Telecomunicaciones de la UGR.

El taller consistía en una presentación (que, no es porque la haya hecho yo, pero ha salido una cosa muy divertida) con una serie de ejemplos prácticos que los asistentes podían descargarse y seguir sobre la marcha.

Taller de Python

Todo tiene una licencia Creative Commons que permite su reutilización, así que la presentación puede descargarse y utilizarse libremente, y los ejemplos también están disponibles.

Libegag a Bgian

Entornos virtuales en Python con virtualenv

En ocasiones, necesitamos tener varios entornos de trabajo distintos, con distintas versiones del intérprete, distintas librerías, etc.

Una de las soluciones más comunes es usar varios ordenadores o varias máquinas virtuales, cada una con una instalación diferente.

Pero Python nos provee de una herramienta simple y útil para facilitarnos ese trabajo, sin necesidad de recurrir a soluciones más complicadas. Esta herramienta es "virtualenv".

virtualenv es un programa que permite crear entornos virtuales de Python. Un entorno virtual consta de un intérprete (podemos elegir la versión concreta) acompañado de todos los módulos que necesitemos instalar. Se pueden tener varios entornos distintos, instalando en cada uno los módulos que necesitemos, sin que unos entornos afecten a los otros.

Vamos a verlo de forma práctica.

Para empezar, necesitamos instalar la propia aplicación virtualenv. Esto se puede hacer desde el gestor de paquetes de tu distribución (apt-get, emerge, yum, pacman...) o, de manera más general, con pip (en cualquier caso, hacen falta permisos de superusuario):

pip install virtualenv

Tras esto, ya tendremos el programa instalado y podemos comenzar a usarlo.

En Python 3 nos podemos ahorrar el paso de la instalación, porque ya viene por defecto.

virtualenv guarda cada entorno virtual en un directorio con el nombre de ese entorno. Dentro de ese directorio se guardarán todos los archivos necesarios (de ellos nos interesan, en particular, los módulos que instalemos en el entorno y el script que lo inicia).

Es una buena idea tener en tu home un directorio donde agruparemos todos los entornos virtuales. En mi caso, en una escandalosa falta de originalidad, ese directorio se llama "virtualenvs".

Crear un entorno virtual es muy simple, del siguiente modo:

virtualenv DIRECTORIO-DEL-ENTORNO-VIRTUAL

Por ejemplo:

virtualenv nuevo-entorno

O, en mi caso, que estoy usando ese directorio llamado virtualenvs que ya he comentado para agrupar todos mis entornos:

virtualenv virtualenvs/nuevo-entorno

Al hacerse en espacio del usuario, ni la creación de un entorno virtual ni (como veremos más adelante) la instalación de paquetes en él, necesitan permisos especiales.

Esto crea el nuevo entrono en el directorio que le hemos indicado, creando en él una estructura de directorios, copiando allí el ejecutable de Python y otros archivos necesarios, e incluyendo algunos módulos por defecto (en realidad, la mayoría de ellos son enlaces simbólicos a los originales, a menos que usemos la opción --always-copy, que cambia este comportamiento).

Para que virtualenv nos dé más detalles durante la creación de nuestro entorno, podemos usar la opción --vervose (o -v en su versión corta):

virtualenv --vervose virtualenvs/nuevo-entorno

Si necesitamos que nuestro entorno virtual ejecute una versión concreta del intérprete de Python (que, lógicamente, debemos tener instalada en nuestro sistema), podemos indicarlo con la opción -p de este modo:

virtualenv -p /usr/bin/python3.5 virtualenvs/nuevo-entorno

Si no se indica la opción -p, se usará el intérprete en /usr/bin/python.

Una vez creado nuestro entorno virtual, necesitamos activarlo para poder usarlo. Para ello vamos a usar uno de los scripts que se han instalado por defecto al crearlo. El script necesario es activate, y se encuentra en el directorio bin que se ha creado dentro del de nuestro entrono virtual:

source mis-virtualenvs/mi-entorno-virtual/bin/activate

La orden source se encarga de ejecutar en la sesión de shell actual el script que se le pasa como parámetro (es decir, que el efecto es el mismo que si el usuario tecleara esas instrucciones en su consola) en lugar de en su propia shell, como se ejecutan normalmente los scripts.

Al hacer esto, el prompt de shell cambiará para indicar que se ha activado el entorno virtual, poniendo el nombre de este delante del prompt habitual, de un modo parecido a este:

(nuevo-entorno) usuario@host:~ 

A partir de este momento cualquier comando o script de python que se ejecute lo hará en el entorno virtual. Y, lo que es más importante, cualquier módulo que se instale (con pip, no con el gestor de paquetes del sistema) lo hará también en el entorno virtual y no afectará ni al resto de entornos virtuales que podamos tener, ni a la instalación de Python del sistema.

Naturalmente, esto se aplica sólo a la sesión en la que se ha activado el entorno virtual. Si abrimos otra sesión en otro terminal, por ejemplo, esa sesión tendrá el entorno de Python normal de nuestro sistema. Por supuesto, se pueden tener varios entornos virtuales distintos corriendo simultáneamente en diferentes sesiones sin ningún problema.

El comando deactivate desactivará el entorno virtual, volviendo al entorno normal:

deactivate

Cualquier módulo que se haya instalado en el entorno virtual se "desvanecerá" como si nunca hubiese estado ahí, hasta que se active de nuevo el mismo entorno virtual.

Para eliminar un entorno virtual que no queramos volver a usar, sólo es necesario borrar el directorio de su mismo su nombre con todo su contenido.

virtualenv es una herramienta muy útil que tiene otros usos más allá de lo que se comenta en este artículo. Se pueden ver más opciones de este programa en su propia ayuda:

virtualenv --help

Este artículo se publicó originalmente en el blog de la Oficina de Software Libre de la Universidad de Granada

PPCMS 2022