Monday, July 20, 2015

CLI sobre GUI: fondo sobre forma.

En este artículo, y este otro, les he hablado de cómo correr aplicaciones desde la CLI*, o Terminal. Antes de proseguir, quiero que todos tengamos clara la relación entre Forma y Fondo: 

Forma: continente, el envoltorio, el cómo.
Fondo: el contenido, la idea, el qué.

Una de las cosas más importantes para todo usuario de Linux, es aprender a usar su Terminal y unos cuantos comandos básicos como los que Jimmy nos compartía. A medida avanzamos en el uso de Linux, vemos que la CLI nos puede simplificar las cosas, o también complicarlas si no sabemos qué carajo estamos haciendo. Por ejemplo, ¿sabías que es posible abrir una página de búsqueda en tu navegador desde Terminal? Suponiendo que tenés Firefox o Chromium en tu distro, tratá:

$ firefox linuxdesobrevivencia.blogspot.com
$ chromium-browser elementary.io

Esto te ahorra el tiempo de ir al menú, buscar la applicación, darle click, esperar a que la GUI** cargue, mover el mouse a la barra de direcciones (o F6, si sos no sos tan lento) , ingresar la dirección, darle click al botoncito de la derecha (o apretar Enter, si no sos tan lento), esperar a que la página cargue, y disfrutar del fappin' después de seleccionar un video en exquisita alta definición. Dos simples bloques de texto sintetizan 40 años en el desierto de la GUI.

Como mencionaba en el  artículo de Deluge Console, podés abrir Terminal, arrancar deluge-console, agregar un archivo torrent, y dejarlo leeching/seeding mientras ves tu porno favorito desde tu navegador. 

Seguramente alguien puede pensar: "pero chele, ¿por qué y para qué querés correr una aplicación a puras letras y comandos? Si la rueda de caucho ya está inventada, ¿por qué querés seguir usando una rueda de piedra? La CLI es una cosa vieja, de los tiempos de MS-DOS" Mi respuesta es simplemente, por conveniencia. 

Claro, lo que es conveniente para mí, no puede serlo para vos. Eso lo tengo claro y no pienso convencer a nadie de que mi forma de operar y adminstrar mi equipo es la forma en la que deberías de gestionar el suyo. Ahora, si sos de la gente que le dedica tiempo a encontrar una mejor forma de hacer las cosas, te comparto lo que he aprendido sobr usar Linux: Aquí es donde radica la belleza de Linux. 

La Terminal te simplifica muchas cosas:

• Al correr tus aplicaciones vía CLI-Terminal, estás ahorrando el uso de recursos para tareas de mayor prioridad. Esto es importante cuando tu equipo cuenta con recursos limitados y necesitás gestionar diversas tareas a la vez. El consumo de RAM que implica mantener de una interfaz gráfica es reducido cuando la tarea se ejecuta desde terminal. De la misma forma, el uso de CPU, espacio en disco, aparte que tu atención  no se dispersa en los botoncitos, barritas, backgrounds, soniditos y animaciones. 

Raspberry Pi, modelo B: 256MB de RAM y 700Mhz de CPU. No es el tipo más rápido ni más fuerte, pero es lo suficientemente pequeño y ecológico como para hacer un servidor de descargas o headless server que ha corrido durante la noche cuando mi equipo principal está apagado.

• La CLI es importante para administradores de servidores: usualmente un servidor no tiene interfaz gráfica: como administrador querés usar tus recursos de forma eficiente y ejecutar tareas sin afectar negativamente la disponibilidad de recursos para la ejecución de otras tareas. Los administradores no suelen tener una consola tipo Alienware Command Center como este: 

Ejmplo de cómo la forma tiene alta importancia: Alienware Command Center para cambiar las luces de una Area 51. No poseo los derechos de esta imagen ni de la marca. Sólo la muestro con propósitos educativos. La forma es importante particularmente en objetos y bienes de lujo; la forma da status, alimenta el ego, nos hace sentir mejor y sana el horror vacui

Si no algo más o menos así: 

Fondo como prioridad: administración de un servidor remoto con el comando "htop", una versión versátil y turbocargada de "top". Aquí, htop muestra un CPU con 64 núcleos y 64GB de RAM. Toda distro de Linux tiene top por defecto. Si abrís tu terminal y escribís "top" vas a ver esto de forma menos gráfica y probablemente con menos procesadores. Pero por supuesto,  podés instalar con "$ sudo apt-get install htop", y disfrutá :)

• Incluso para proyectos caseros, como un servidor local, de firewall, de base de datos, etc., la Terminal te va a ahorrar tiempo y la molestia de tener que instalar software de terceros para monitorear algo tan simple como el tiempo de finalización de una descarga o carga, navegar entre directorios y copiar un archivo desde un equipo a otro, etc. ¿Para qué gastarías en licencias, ancho de banda, o recursos de tu servidor y tu workstation en renderizar la GUI cuando podés administrar y operar desde la CLI? Sí, es cierto que existen herramientas de assistencia remotas gratuitas para uso doméstico... como TeamViewer que te permite operar y acceder a tu workstation desde tu smartphone pero, ¿qué tal si tu batería tiene poca carga y sólo buscás iniciar o finalizar un programa?

¿Para qué necesitás botones, colores y defectos espaciales***? Si tu equipo tiene un cantidad relativamente escasa de RAM o de poder de procesamiento, no querés desperdiciar músculo en cosa que van a volver más lenta la ejecución de una tarea. Fondo ante todo.

No quiero armar debate; como diseñador gráfico aficionado, valoro la importancia del diseño y la estética visual; lo que digo es que no debemos de confundir la falta de íconos con fealdad: que una aplicación carezca de elementos visuales no significa que no sea usable; que no haya una forma elaborada, no implica que algo sea menos estético. De hecho, la Terminal tiene su atractivo: la belleza de lo simple -y en todo caso, si insistís en la importancia de lo estético-pero-funcional como tu servidor, podés aplicarle transparencia con ~/.devilspie como lo hice alguna vez en Fedora 20... o en el caso de Freya, la Terminal es transparente de fábrica y te funciona trabajar en ella mientras leés este blog :v

¿La CLI es mejor, más rápida y eficiente que la GUI? Depende quién lo pregunte. La GUI es una representación visual de la CLI. Un botón de "cerrar ventana", representa un comando de salir/suspender una aplicación. La GUI es la síntesis visual de la CLI; la CLI es la síntesis en código de la GUI. Para un usuario de casa, la GUI es el camino a escoger; de la misma frma para un creador de contenido multimedia, el asunto de una interfaz gráfica no viene al caso porque sí es necesaria para sus propósitos, como puede serlo para un agente de ventas, o un profesional de contabilidad.  

Lo que digo es que, para un usuario de Linux que quiere expandir su conocimiento y habilidades, la CLI es el Santo Grial.

Usar la CLI no es andar en llantas de piedra; al contrario: la CLI es más rápida siempre y cuando aprendás a escribir rápido, a usar tu teclado como se debe, a desprenderte de tu mouse y sobretodo a desarollar la capacidad de visualizar y conceptualizar sin asistencia visual...  pero esto es algo que usuarios dependientes de la GUI difícilmente van a entender.

Saludos.


*Command Line Interface: El "command prompt", terminal de comandos, terminal, etc. 
** Graphic User Interface: Interfaz gráfica: íconos, botones, cuadros, figuras geométricas, representaciones simbólicas de los comandos. Lo que volvió popular a Windows en un inicio; una de las mayores razones del éxito de iOS, de Android.
*** Efectos especiales.

¿Y qué carajos es un repositorio?

[Nota: he tratado de resumir lo que he leído y aprendido acerca del tema. Para el usuario curioso, las primeras líneas bastarán. Para quienes quieran conocer más del tema y adentrarse en el mundo del desarrollo y administración de centros de dato, sugiero aplicar esta información en tal contexto e investigar más]

Un repositorio es un directorio, lugar, espacio de almacenamiento desde el cual podés obtener software para instarlarlo en tu equipo localmente.  

Te lo pongo de esta forma: un repositorio sería un servidor/centro de datos/colección de software y/o paquetes en la nube al cual accesás para obetener software. El término no es exclusivo a Ubuntu, y mucho menos a Linux. Para entendrelo mejor, podríamos aplicar el concepto por extensión a cualquier infraestructura que nos permita acceder y descargar uno o más módulos, extensiones de software; algo tan simple como unas líneas de código hasta un sistema operativo completo. 

Quienes operan repositores usualmente van a proveerte de un Sistema de Administración de Paquetes, con el cual buscás, descargás e instalás  el software desde los repositorios. Por ejemplo, el APT (Advanced Packaging Tool) que las distros basadas en Debian usan, o el yum  (Yellowdog Updater Modified) de Red Hat y sus derivadas (Fedora, CentOS, etc.), Pacman en Arch (se dice arch, como en "archivo"), etc. 

Hay repositorios oficiales e independientes. Ahora, el propósito de usar un repositorio oficial, es que podás obtener software de forma segura. Los repositorios más grandes dedican parte de su infraestructura no sólo a tener un puñado de programas enpaquetados para que los descargués e instalés localmente, sino también a mantener estos repositorios seguros, libres de amenazas informáticas y fuertemente replicados por medio de "mirrors", es decir, varios centros de datos distribuidos en lugares físicos diferentes (sugiero leer de Centros de datos para entender mejor este concepto) para evitar la saturación de conexiones entrantes y para que vos podás accesar a ellos de forma fácil. He ahí  la importancia de la reputación de la organización que administra el repositorio.
Hay repositorios para usuarios y para desarrolladores, otros son gratuitos mientras que otros requieren pago para acceder a ellos; unos son oficiales de una compañía o marca, mientras que otros son independientes y mantenidos por un invididuo o grupos específicos de invididuos. Y así. 

Espero que esto te ayude. Hasta luego :)

Saturday, May 2, 2015

YUMI el instalador USB por excelencia

Este dia, hablaremos de una herramienta muy util en cuanto a instalaciones se refiere: YUMI.



Cuando no disponemos de cd/dvd para arrancar la pc (y si disponemos del modo arranque usb) solo necesitaremos de una pc adicional para descargar este poderoso programa que nos sacara de apuros y que tiene la opcion de agregar varias distros, herramientas para reparacion de distros incluso al mismisimo windows.

por ultimo podemos descargar la imagen dese el programa (que nos redirige al sitio de descarga)

puedes ir al sitio oficial para descargar --> YUMI

Entradas populares.