Psicofonías

(algo así como el blog de Psicobyte)

Por qué votar

Lo de tener un blog desde hace tantos años es, a veces, muy interesante: a veces te permite ver, por ejemplo, cómo el tiempo ha cambiado tu forma de ver las cosas.

Hace casi veinte años, un yo más joven escribía por aquí mis dudas sobre si debía votar o no.

Me consta que la opinión del yo de hace veinte años estaba muy meditada, y no era un capricho decidido a la ligera. pero, para bien o para mal, ha pasado el tiempo y, aunque mis ideas políticas no ha variado mucho, mi opinión en el sentido más pragmático sí que ha cambiado.

Así que aquí va mi (tardío) mensaje a mi yo más joven (y más guapo, con más pelo y más delgado):

En las democracias representativas, el trabajo de los partidos políticos es, básicamente, obtener votos para construir mayorías con las que formar gobiernos.

El trabajo de los gobiernos así formados (y, en puridad, también el de los representantes en la oposición) es aprobar leyes; leyes que, previsiblemente, irán orientadas en la dirección que marquen la ideología, el programa, la tradición política y la capacidad negociadora de los partidos que hayan contribuido a ellas.

Naturalmente, un gobierno no podrá aprobar todas las leyes que le gustaría. Estará condicionado por los pactos que pueda formar, claro está; pero también por otros condicionantes sociales, como la opinión pública o los poderes económicos, militares o ideológicos. Un gobierno podría considerar deseables cosas como, por ejemplo, la privatización de los recursos del estado o la nacionalización del sistema productivo, pero, normalmente, no podrá alcanzar esos objetivos directamente, y tendrá que conformarse con cambios menores que le aproximen a su ideal.

Pero, en cualquier caso, la herramienta que tienen los gobiernos para alcanzar sus objetivos son las leyes.

Estas leyes articulan cosas como los impuestos, servicios sanitarios y de asistencia, defensa, cuidados, educación, relaciones laborales, urbanismo y obras públicas, códigos civil y penal y, a través de todo esto, todas las relaciones sociales y económicas de la sociedad.

En definitiva, son las leyes las que definen una nación.

En resumen: en una democracia representativa votamos a partidos para que hagan leyes.

El único efecto que tiene el voto es el de dar al votante cierto (poco) poder de decisión sobre qué grupo formará gobierno y, por tanto, que tipo de leyes se aprobarán. Individualmente, el efecto del voto es prácticamente nulo; colectivamente, es la herramienta de acción política más poderosa disponible en las democracias representativas.

Votes o no votes, habrá un gobierno. Y ese gobierno hará leyes acordes con su propio enfoque político. EL voto es, en última instancia, la forma de influir sobre qué leyes se van a aprobar.

No votar no combate el sistema: si no votas, el sistema simplemente te ignora.

No votar no manda un mensaje político: si no votas, lo único que muestras es que confías plenamente en el criterio de tus conciudadanos.

Prompt de bash para git

Si, de las cinco palabras que tiene el título de este post, sólo entiendes dos, lo más probable es que el resto del post que viene a continuación no te interese absolutamente nada.

Las personas que trabajamos con el sistema de control de versiones git somos como chimpancés inquietos, porque nos pasamos el día cambiando de rama.

Saber en qué rama de un proyecto estás en un momento determinado es muy útil y, de hecho, todos los IDEs tienen alguna forma de indicarlo, al igual que muchas herramientas de ayuda a la programación.

Y, dado que el terminal es una herramienta prácticamente indispensable en programación, también hay aplicaciones, como la espectacular Powerline que tienen diversas opciones para mostrar la rama actual en la línea de órdenes.

Mi aproximación personal a este último aspecto es mucho menos sofisticada y bastante más artesanal, y consiste en hacer que el propio prompt de bash indique el nombre de la rama cuando el directorio actual está bajo seguimiento de git; además, el color con el que se muestra ese nombre varía según la rama (el nombre de las ramas "main" y "master" usa un color, las ramas "development" y "dev" usan otro, y todas las demás otro distinto).

El efecto final es más o menos el siguiente:

Prompt de bash para git

Como se puede ver, cuando el directorio actual está dentro de un repositorio, el prompt reemplaza el tradicional usuario@host: por el nombre de la rama actual en el color que le corresponda.

Todo esto se hace mediante este simple código:

declare -A BRCOLOR=(
[master]="\e[31m"
[main]="\e[31m"
[development]="\e[32m"
[dev]="\e[32m"
)

REST_OF_BRANCHES="\e[34m"
DEFAULT_COLOR="\e[0m"

PS1="\$(\
    BRANCH=\$(__git_ps1 '%s')
    if [[ \${BRANCH} = '' ]]; then echo -e \"$PS1\"
    else
        COLOR=\${BRCOLOR[\${BRANCH}]}
        if [[ \${COLOR} = '' ]]; then COLOR=$REST_OF_BRANCHES
        fi
        echo -e \"\[\${COLOR}\]\${BRANCH}>\[${DEFAULT_COLOR}\]\w\$ \"
    fi)"

Los colores se asignan mediante el array asociativo BRCOLOR, que contiene nombres de ramas como clave (los nombres que se ven entre corchetes) y códigos de color ANSI como valores (entre comillas); de este modo, la rama llamada "master" usará el color "\e[31m" (rojo), etcétera.

Las ramas cuyo nombre no esté en BRCOLOR, usarán el color definido en REST_OF_BRANCHES; mientras que DEFAULT_COLOR, por su parte, es el color por defecto que usa el terminal (a causa de cómo se usan los colores en un terminal, hay que volver a asignar el color "normal" después de la cadena coloreada).

Si quieres usarlo, solo necesitas copiar el código en tu archivo .bashrc y, la próxima vez que inicies una sesión en tu terminal, tendrás activo el nuevo prompt.

Puedes personalizarlo cambiando o añadiendo nombres de ramas en el array BRCOLOR y asignándole el código de color que prefieras.

Yo vengo a hablar de mi (otro) libro

Quizás sepas (porque lo dije por aquí) que hace unos años escribí un libro de introducción a Python.

Python es un lenguaje de programación que, con los años, se ha hecho muy popular gracias a cosas como su claridad y flexibilidad, y cuyo uso se ha extendido un montón (incluso en campos muy alejados de la programación en sí, como la biología, el arte o la ciencia de datos).

Desde que escribí aquel libro han pasado muchas cosas:

Por un lado, Python ha avanzado, cambiando y evolucionando, con montones de adiciones y novedades.

Por el otro, yo he aprendido mucho desde entonces. Sobre todo (en lo que respecta a este tema), he impartido muchos cursos y he dado muchas conferencias y, en ese camino, he ido notando qué conceptos del lenguaje parecen resultar más fáciles que otros, y cuáles son necesarios entender primero para que los siguientes pasos sean más fáciles.

Por estas y por muchas otras razones, ya hacía tiempo que quería escribir otro libro sobre Python. Uno actualizado, claro, aunque también más extenso y con más profundidad; pero tratando siempre de que el aprendizaje sea lo más fácil y natural posible.

El resultado de todo esto es "El lenguaje de programación Python de principio a fin".

El lenguaje de programación Python de principio a fin

Hay muchas horas de trabajo en este libro. Explicar el lenguaje con la suficiente profundidad y el suficiente detalle, de un modo que sea útil para quien ya conoce el lenguaje pero también accesible a las personas que aún no lo conocen es una tarea compleja, que obliga reescribir, reordenar y replantear muchas veces cada aspecto del libro. Por otro lado, me había puesto un límite de setecientas páginas, pero había mucho que decir, y me ha sido muy difícil recortar contenidos.

¿En qué se diferencia este libro del que ya habías escrito?

Aquel fue un pequeño libro introductorio de 230 páginas.

Este dedica sus 734 páginas a meterse a fondo en Python, con un nivel de profundidad y detalle que no podría alcanzar un libro más breve.

Aquel hablaba de Python 2.7, una versión obsoleta del lenguaje para la que ya no hay soporte.

Este está actualizado a la última versión liberada hasta el momento, la 3.10.

Aquel fue el encargo de una conocida editorial de libros de informática (lo que, al final, acabó resultando en una pésima experiencia).

Este está auto publicado en Amazon (y está por ver cómo resulta esta experiencia).

Aquel se limitaba a explicar la sintaxis del lenguaje.

Este libro habla de Python, claro, y también de algunos de los innumerables paquetes que amplían sus capacidades; pero, además, en sus páginas también ha sido necesario explicar (aunque con mucho menos detalle, claro) otros lenguajes accesorios, como SQL, las expresiones regulares o el minilenguaje de formato de texto.

Qué razones hay para comprar este libro?

Con un peso de 1.4 Kg, el libro "El lenguaje de programación Python de principio a fin" sale a un precio de menos de catorce euros el kilo. Eso es mucho más barato que la ternera del Mercadona. Y, además, la carne de ternera no te enseñará a programar en Python.

Dicen que el presidente Roosevelt (Theodore , no Franklin D.) se salvó de morir en un atentado gracias a que su discurso, de apenas cincuenta páginas, frenó la bala lo suficiente para que no le matara. El libro "El lenguaje de programación Python de principio a fin", con 734 páginas, es casi quince veces más efectivo en ese sentido (aunque no tan efectivo cono no estar en la trayectoria de una bala, que es la opción que recomiendo).

El libro "El lenguaje de programación Python de principio a fin" no contiene gluten. Tampoco trazas de frutos secos. En cualquier caso, no se recomienda la ingestión de este libro a personas alérgicas o con intolerancias alimentarias. Tampoco se recomienda su ingestión a personas sin alergias ni intolerancias alimentarias. Pero su lectura sí que se recomienda (especialmente a personas interesadas en aprender Python).

¿Tienes objetos en muebles o estanterías que están 4.22 centímetros más allá de tu alcance? ¿o quizás una mesa con una pata 4.22 centímetros más corta que el resto? ¡Enhorabuena! El grosor del libro "El lenguaje de programación Python de principio a fin" es justo el que necesitas para resolver tu problema.

¿Te gustan los juegos sadomasoquistas pero no tienes un libro que sea a la vez lo bastante contundente para dar unos azotes y lo bastante flexible para no dejar marcas difíciles de explicar? "El lenguaje de programación Python de principio a fin" es tu libro. Además, puedes aprender Python (individualmente o en grupo) en las pausas entre sesiones de disciplina inglesa.

El ISBN-13 del libro "El lenguaje de programación Python de principio a fin" es 979-8840562086 que, como se nota a simple vista, tiene una gran significación cabalística y numero lógica.

"El lenguaje de programación Python de principio a fin" tiene un volumen de 1757.63 mililitros; menos que una botella de dos litros de Coca cola. Además, no contiene ninguna bebida gaseosa excesivamente azucarada que pueda ser perjudicial para tu salud.

Las autoridades religiosas consultadas manifiestan que no existe ninguna razón de tipo teológico, dogmático o espiritual que se oponga a la lectura y disfrute del libro "El lenguaje de programación Python de principio a fin".

Una exhaustiva comparación efectuada entre "El lenguaje de programación Python de principio a fin" y el libro "Programming Perl" ha demostrado sin lugar a dudas que, mientras que este último es mucho mejor para aprender Perl, el primero es claramente superior cuando se trata de aprender Python.

Dadas las dimensiones de "El lenguaje de programación Python de principio a fin" (17,5 cm × 4,22 cm × 23,8 cm), si se recortan sus páginas con cierta habilidad para crear un hueco interior, es posible usarlo para esconder pequeños objetos e incluso armas de pequeño tamaño (ADVERTENCIA: perforar de este modo el interior de este libro reducirá drásticamente su utilidad cono medio para aprender Python).

El título "El lenguaje de programación Python de principio a fin" es mucho más largo que, por ejemplo, "Python paso a paso"; lo que implica, evidentemente, que es un libro mucho mejor.

Los colores de la portada del libro "El lenguaje de programación Python de principio a fin" han sido inteligentemente elegidos para que coincidan con los colores del logotipo de Python, lo que evidencia un extremado cuidado por los detalles.

Pero, si ninguna de las razones anteriores te convence y lo único que quieres es aprender Python o profundizar en tu conocimiento de este lenguaje, puede que el libro "El lenguaje de programación Python de principio a fin" también sea una buena opción.

¿Y los ateos? ¿qué hacen en Navidad?

Respuesta a una duda que suelen consultarme por estas fechas:

Cosas que hacen los ateos en Navidad:

  • Decorar árboles.
  • Montar belenes.
  • Comer con los amigos.
  • Cantar villancicos (y, maldita sea, escucharlos).
  • Visitar a la familia.
  • Comer turrón, mantecados...
  • Comprobar que han vuelto a poner "Qué bello es vivir" en la tele.
  • Recibir visitas.
  • Salir a cenar.
  • Hacer regalos. Y recibirlos.
  • Discutir con los cuñados durante la cena.
  • Salir al centro a ver las luces.
  • Comer. Mucho.

(Como se puede ver, ninguna de las actividades mencionadas en esta lista tiene relación con las creencias religiosas -o su ausencia-, e incluso los creyentes pueden practicarlas)

Cosas que no hacen los ateos en Navidad:

  • Creer en dioses.

El cielo sobre la bahía

El otro día leí como alguien insultantemente joven describía a otras personas igualmente jóvenes el ruido blanco de una pantalla como:

"[...] la pantalla de una tele antigua con nieve (los píxeles estos grises) [...]".

Y yo he recordado que ya lo predije en twitter:

La generación TDT nunca entenderá "El cielo sobre la bahía tenía el color de un una pantalla de televisor sintonizada en un canal muerto"
Posts Posteriores 1/35 Posts Anteriores
PPCMS 2022