
# Contenidos


## Nombres de archivos y carpetas

-   Recordamos que en Github si creamos un archivo hemos de incluir la extensión `md` para que lo trate como un texto `markdown` y por tanto lo procese correctamente.
-   En Github los nombres del primer archivo se llaman `README.md` para que lo leas (¡léeme!) y de alguna forma como homenaje a los archivos del software que se leía en pantallas en blanco y negro donde se prefería las mayúsculas para la mejor lectura.
-   En vuestro caso yo optaría por nombrar tanto los archivos como las carpetas en minúsculas y separando las palabras con guiones medios, es decir: `esta-es-una-carpeta` y `esto-es-un-archivo.md`.
-   Hay otras formas posibles pero es importante que seáis metódicos para que siempre lo hagamos así y sepamos por tanto acceder y recuperar nuestros archivos y carpetas.


## Repaso del día anterior

-   Después de repasar todo llegamos a que algunas personas con Mac no habían conseguido instalar XCode. A partir de ahí hemos empezado con la instalación o puesta a punto de la terminal.


## Windows


### Cygwin

-   Se puede descargar en <https://www.cygwin.com/>
-   Emulador de la terminal POSIX en Windows
-   Ofrece un cojunto de herramientas y programas que emulan una distribución Linux en Windows.
-   Tiene desventajas conocidas: instalación, actualización, usabilidad de la instalación&#x2026;
-   ¡Atención! Una vez que lo descargáis y lo instaláis, no tiréis el instalador ya que es necesario para su actualización.
-   La primera vez que lo usamos descargamos `lynx`, un navegador en línea de comandos.
-   Para no tener que correr manualmente el instalador cada vez que queremos actualizar Cygwin con algún paquete/programa, usaremos `apt-cyg`


### apt-cyg

-   Cygwin es una herramienta muy potente para Windows pero muy tediosa de utilizar.
-   [apt-cyg](https://github.com/transcode-open/apt-cyg) es un gestor de paquetes de Cygwin que funciona en línea de comandos.
-   El nombre proviene de ser como un [apt](https://wiki.debian.org/Apt) para Cygwin.
-   Un APT (*Advanced Package Tool*) es un conjunto de herramientas para manejar los paquetes &#x2013;programas&#x2013; de los sistemas [Debian](https://www.debian.org) [GNU](https://gnu.org)/[Linux](https://linux.org). Se ha hecho muy popular su funcionamiento y otros sistemas

operativos lo han imitado porque permite:  

-   Instalar programas.
-   Desinstalar programas.
-   Actualizar programas.
-   Resolver dependencias de los programas de forma automática.

-   Sin apt-cyg, cada vez que queremos instalar algo hay que abrir el programa de instalación de Cygwin.
-   Con apt-cyg conseguimos instalar o actualizar programas que usamos en Cygwin desde la propia consola de Cygwin.


### Instalación de apt-cyg

Para instalarlo, tal como cuentan en su página web, usamos dos líneas de comandos:  

    lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
    install apt-cyg /bin

La primera línea dice que ejecutará `lynx` con la opción `-source` para descargar el código fuente de la página `rawgit.com/transcode-open/apt-cyg/master/apt-cyg` y ese texto lo envía con `>` al archivo `apt-cyg`.  
`Lynx` es un navegador en línea de comandos que se puede utilizar para esto. El próximo día probaremos con otras páginas.  

En este momento y en el directorio/carpeta/ruta donde estemos, creamos un archivo con nombre `apt-cyg` que contiene el texto del código fuente de esa URL, que es un script para usar Cygwin e instalar programas sin correr manualmente el instalador.  

Para comprobar que está hacemos un `ls`, un comando para listar los contenidos de la carpeta/directorio.  

Si está, pasamos a la siguiente línea. Con `install` instalamos el archivo `apt-cyg`, que es un programa, en la carpeta *bin*, que son los programas o binarios.  

Si no ha dado error será que lo tenemos. Para probarlo escribimos `apt-cyg install wget`, que es la instrucción para instalar el programa `wget`, una herramienta para descargar archivos que usa precisamente `apt-cyg`  


## MacOSX


### Terminal

-   La terminal es una aplicación que encontramos disponible en "Utilidades -> Terminal" pero, de un tiempo a esta parte, está capada y no se puede utilizar con todo su potencial.
-   Para ello requiere [activar Xcode](https://guide.macports.org/#installing.xcode). Esto lo conseguimos por dos vías posibles. En ambos casos debemos tener cuenta de Apple.
-   O bien descargamos [xcode](https://apps.apple.com/us/app/xcode/id497799835), que son muchos Gb.
-   O bien en la página de [developer](https://developer.apple.com/downloads/index.action) de MacOSx buscamos "Command line tools for Xcode", que es menos de medio Gb.
-   En cualquier caso, leed bien las instrucciones para la instalación de estos enlaces y no tengáis miedo a las advertencias de Mac sobre lo que vas a hacer pues lo único que vas a hacer es usar algo que tu ordenador es capaz de tener.
-   Una vez tenemos Xcode, instalamos `brew` que es un gestor de programas para la terminal de Mac, algo así como el `apt-cyg` de Cygwin.


### Brew

-   Puedes ver el proyecto en <https://brew.sh/>
-   Se trata de un gestor de programas en MacOSX.
-   Hay una alternativa llamada [macports.org](https://www.macports.org/), no son incompatibles, por si alguien se anima a experimentar.
-   Sirven para instalar programas que se usan en la Terminal.
-   La instalación fácil hasta hace poco está en la página de brew.sh
-   Copiamos esta línea `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` y la pegamos en la terminal.
-   Sin embargo esto ha cambiado sensiblemente porque MacOSX ha dejado de utilizar `BASH` como el dialecto que entiende la terminal y ahora utiliza `ZSH`. Aunque son dialectos varían en algunas cosas. En el curso usaremos `Bash` por lo que recomiendo hacer lo siguiente:  
    -   [spirosfromlondon](https://discussions.apple.com/thread/252176464) nos cuenta que tendremos que lanzar `brew update` y luego `brew install bash`. Comprobamos con `bash --version` y para que MacOSX no olvide esto, editamos el archivo `~/.bash_profile` con `nano`, por ejemplo y añadimos esta línea: `export BASH_SILENCE_DEPRECATION_WARNING=1`.
    -   `nano` es un editor en línea de comandos, lo veremos el próximo día.
    -   Luego ya podemos instalar programas. Por ejemplo, `wget` con `brew install wget`.
    -   Quizás surjan otros problemas, como [este](https://apple.stackexchange.com/questions/224511/how-to-use-bash-as-default-shell)&#x2026; no dudéis en comentarlos.
-   Si quisierais seguir con `zsh` y no os da problemas, genial. [Aquí](https://stackoverflow.com/questions/65619529/fixing-zsh-command-not-found-brew-installing-homebrew) hablan de algunos problemas que se han encontrado.


## Repaso

-   [ ] Control ordenador.
-   [ ] Emulador de terminal con Cygwin (W$) o activando XCode (MacOSX) para aplicaciones CLI
-   [ ] Editor de textos con `nano`
-   [ ] Sintaxis `Markdown`
-   [ ] Control de versiones `git`.
-   [ ] Github para repositorios de documentación y servidor web.
-   [ ] Python para algunas funcionalidades.


# Pruebas

-   ¿Qué tipos de archivos de documentos de texto hemos visto hasta ahora? ¿Qué extensiones tienen?
-   ¿Qué programas se pueden utilizar para usar la terminal en Windows?
-   ¿Qué programa sirve para gestionar programas en la terminal de OSX?
-   ¿Qué es nano?
-   ¿Qué son git y Github?

