8.1 KiB
Contenidos
Software esencial
- Terminal CLI: para casi todo.
- Navegador: Firefox y/o Chrom*. Un compañero usa Opera porque le va bien y tiene integrada VPN (Virtual Private Network o red privada virtual).
- Editor de textos
- Limpieza de datos: Open Refine
- Github: organización, documentación, trabajo colaborativo, publicación web.
- Bootstrap: framework web
- Pandoc: transformaciones de formatos de archivos estructurados.
- Datawrapper: jugar con la visualización de datos.
Windows
-
7-zip, https://7-zip.org
-
Dr Hardware
-
Cygwin, la emulación de la terminal.
-
apt-cyg
-
Cygwin en 4 pasos
- Descargo el programa de cygwin.com
- Al instalarlo, incluir los programas
lynx
ywget
que luego va a usarapt-cyg
. - Instalar apt-cyg de https://github.com/transcode-open/apt-cyg
- Instalar programas con apt-cyg, por ejemplo,
git
.
Recordad que este bloque son dos líneas, hay que ejecutar una a una
lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg install apt-cyg /bin
Aunque en realidad podríamos hacerlo todo en una línea con otro operador que veremos el próximo día :smiling-imp:
Y recordad también que lo que hay antes de esas dos líneas en la página de github es un tutorial. Hay que leérselo.
Mac
- Xcode para la terminal.
- Brew
Editores Markdown
- El propio Github.
- Macdown, para Mac https://macdown.uranusjr.com/
- nano :-)
Github
A veces puede pasar que el repositorio remoto tenga algo que no tenga el local, sin embargo es el local el que sabemos que hemos actualizado. Si hacemos un git push
, nos dará error por eso mismo.
Para pasar por alto este error y forzar a actualizar el repositorio remoto con el local:
git push -f <remote> <branch>
Notas
- También se puede instalar en Linux: https://docs.brew.sh/Installation#linux-or-windows-10-subsystem-for-linux
- De ahí descubro que te puedes instalar un subsistema Linux en Windows https://docs.microsoft.com/en-us/windows/wsl/about
lynx
Lynx es un navegador en línea de comandos.
Es muy útil para saber si la web está bien hecha porque debería mostrar la información textual y también alternativas textuales a informaciones gráficas o de vídeo.
En este curso lo hemos utilizado con una de sus opciones, esto es, para descargar el código fuente de una URL:
lynx -source https://github.com/transcode
Error de certificado
- En clase no he recordado este "problema" que también es un clásico.
- Se resuelve instalando
ca-cert
Estructura de las sentencias en la línea de comandos
- A veces se pone el comando solo, como en el caso de
pwd
o si quisiéramos lanzarlynx
lo mismo que abrimos Firefox, como un navegador. - Otras veces se ponen argumentos, como cuando listamos un directorio:
ls uc3m-periodismo-datos
. El comando va seguido de los argumentos. En el caso delynx
se puede poner la URL como argumento, así:lynx https://theguardian.com
- Y otras tiene opciones, como en
lynx -source https://theguardian.com
. En este caso la opción dice de descargar el código fuente. - ¿Por qué sale todo el resultado seguido? Porque este comando usa la pantalla como salida estándar.
- Quienes hayáis instalado Cygwin habréis visto que después de eso iba un símbolo de
mayor que
y luegoapt-cyg
. El símbolo de mayor qué es un operador de bash para enviar la salida estándar de un comando a un archivo. - Si os lía lo del operador pensar que son símbolos que en este lenguaje tienen un significado especial. Por ejemplo, el símbolo de
+
significa sumar en una operación matemática. Son lo mismo, operan sobre los elementos. - Pero antes de seguir con los operadores, veamos una cosa de Bash.
BASH
- El lenguaje de la terminal se denomina bash. Es un lenguaje de programación en sí pero también un entorno sobre el que trabajamos incluso sin programar.
- Bash es uno de los lenguajes posibles de la Shell, que es como se denominaría a la terminal. Es el más popular. Sin embargo, hay otros también muy extendidos como zsh.
- Podéis ver las que tenéis disponibles con
cat /etc/shells
- No os diría esto si no fuera porque de un tiempo a esta parte MacOSX ha decidido usar
zsh
y eso produce algunos "problemas" curiosos. Básicamente, lo que ocurre es que aunque hemos instalado brew siguiendo las instrucciones, no parece existir. ¿Por qué? Porque no sabe dónde está brew o más bien, no se lo hemos dicho. - En el caso de Mac podemos hacer dos cosas: o seguir usando zsh, y entonces configurarlo bien para que sepa dónde este brew; o cambiar a bash. (leer más adelante)
- Por cierto, esto es algo que nos lleva a explicar lo que son "las variables de entorno" y lo que son las variables.
Variables
Una de las cosas que tienen los lenguajes de programación son las variables, sirven para definir los datos. Por ejemplo, x = 3
lo que dice es que la variable x tiene el valor de 3. En el uso de los programas es similar y se llaman "de entorno" porque configuran la relación del programa con su entorno.
Variables de entorno
- Podemos ver las variables que tiene Bash escribiendo
env
. Vaya, salen muchas cosas en la pantalla y no podemos leerlas todas, sería mejor "paginar" el resultado conless
. Tantoless
comomore
son paginadores de texto, visores. - Antes hemos visto cómo enviar la salida de un comando a un archivo con el operador
>
. - Ahora vamos a ver cómo enviar la salida de un comando a otro comando. Es decir, queremos que el resultado de
env
lo utilice el paginadorless
como datos de entrada:env | less
. El operador es la barra vertical|
que se escribe conAlt Gr + 1
. - También podemos ver las variables, si sabemos su nombre, con
echo
. En este caso me interesa saber el valor de la variablePATH
, así queecho $PATH
, donde el símbolo del dólar indica que se trata de una variable.
MacOSX: zsh vs bash
- Para usar bash hay que escribir
chsh -s /bin/bash
, y con ello cambiamos la shell de zsh a bash. - Para seguir usando zsh y tener brew hay que editar el archivo
.zshrc
y ponerexport PATH
"opt/homebrew/bin:$PATH". O bien podemos conocer *otro operador de bash* y usarlo inteligentemente: ~export PATH
"/opt/homebrew/bin:$PATH" >> ~.zshrc~. El operador>>
o "doble mayor que" envía el resultado del comando al final del archivo de destino. Es decir, no lo sobreescribe sino que lo añade. - Completitions https://docs.brew.sh/Shell-Completion
zsh vs bash
- Cosas chulas con zsh: https://ohmyz.sh/
- Cosas chulas con bash: https://ohmybash.nntoan.com/ https://github.com/ohmybash/oh-my-bash
Atajos de teclado
- Es muy habitual usar atajos para ir más rápido en la relación con el ordenador.
- Los atajos se veían guay hasta que llegaron los mousepad.
- La convivencia es posible, hay veces que usar el mousepad está bien pero no os perdáis la potencia de los atajos.
Operadores vistos
>
, envía la salida de un comando a un archivo. Si este existiera ya, lo sobreescribe; si no existe, lo crea.>>
, envía la salida de un comando a un archivo. Si este existiera ya, lo añade al final; si no existe, lo crea.|
, envía la salida de un comando como entrada de otro comando.
ToDo
- Otros operadores de bash.
- RTFM.
- Interfaces: Chatbots: Conversational Interfaces https://www.youtube.com/watch?v=KbO1bWAvUK8 (2017)
- NICAR posters: https://www.dropbox.com/sh/yi1y0i6ka24498h/AAD_Oc8rbYTKXGKnqJ69z8c4a?dl=0
Pruebas
- Compara el software que considero esencial con el que consideras esencial.
- ¿Cuál es la estructura de las sentencias/instrucciones en la línea de comandos?
- Si quisieras ver la web theguardian.com, ¿cómo lo harías desde la línea de comandos?
- ¿Cómo te descargarías la web theguardian.com desde la línea de comandos?
- ¿Cuál es la versión de Shell qué utilizas?
- ¿Cómo verías las variable de entorno de tu shell "PATH"? Escribe su valor también.