¿Qué hacer después de instalar Fedora 23? (Workstation/Server)


Guía de Post-Instalación
(Workstation & Server)

$ = usuario normal
# = usuario root

Workstation


Primero abriremos una terminal y cambiamos a modo root con el siguiente comando en la consola:

$ su -

Ahora sí, comencemos con la guía...




Optimizar DNF

# dnf -y install yumex dnf-plugins-core

Actualizar tu Sistema

# dnf -y update

Repositorios Extra (Necesarios)

Añadiendo éstos repositorios a tu sistema, podrás encontrar prácticamente cualquier paquete de software (programa) sin problemas. Sólo tienes que recordar que algunos de éstos repositorios contienen paquetes que no se consideran 100% software libre. Sin embargo, en muchos casos necesitarás uno o dos paquetes que vengan de estos repositorios para hacer funcionar ciertas aplicaciones.

RPM Fusion (Free & Non-Free)

# dnf install --nogpgcheck https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

# dnf -y update

KDE RedHat (Sólo usuarios de KDE)

# dnf -y install wget && wget https://apt.kde-redhat.org/apt/kde-redhat/fedora/kde.repo -O /etc/yum.repos.d/kde.repo


Drivers Gráficos Libres (NVIDIA ATI, INTEL)

Éstos son los drivers gráficos que deberías usar sin importar tu GPU si estás en Fedora Linux. En el post que enlazamos abajo, explicamos cómo sacar el máximo partido a tu hardware usando dichos drivers sin necesidad de recurrir a los drivers propietarios de los fabricantes.

Mejorar rendimiento de drivers gráficos libres (MESA) en Fedora Linux
Drivers Gráficos Propietarios

Úsalos solo si NO notas un buen rendimiento gráfico con los drivers libres aún después de seguir las instrucciones especificadas en el paso de arriba (y reiniciar) o bien, si vas a hacer gaming pesado en tu máquina.

NOTA: Si cuentas con gráficos AMD/ATI la verdad no vale la pena utilizar los drivers propietarios (a menos que tengas una muy buena razón como la minería de criptodivisas o algo así) ya que los libres funcionan muchísimo mejor en todos los casos de uso comunes, desde videos, pasando por gaming y hasta rendering (entre otras cosas).


 

Códecs y Aplicaciones


Los códecs son escenciales para poder reproducir diferentes archivos de audio/video en tu sistema independientemente del formato. Instálate un buen códec pack con el siguiente comando en consola:

# dnf -y install gstreamer1-libav gstreamer1-plugins-bad-free-extras gstreamer1-plugins-bad-freeworld gstreamer1-plugins-good-extras gstreamer1-plugins-ugly gstreamer-ffmpeg xine-lib-extras xine-lib-extras-freeworld k3b-extras-freeworld gstreamer-plugins-bad gstreamer-plugins-bad-free-extras gstreamer-plugins-bad-nonfree gstreamer-plugins-ugly gstreamer-ffmpeg mencoder

Como en todo Sistema Operativo, en Fedora necesitas aplicaciones para poder trabajar en tu computadora con diferentes archivos y bajo diferentes circunstancias/situaciones. Aquí una lista detallada de apps que no pueden faltar en tu sistema Fedora Linux según categoría:

Diseño/Edición

# dnf -y install gimp scribus inkscape blender audacity-freeworld calligra-krita shutter pencil

En esta categoría otras apps importantes son el gestor de fotografías y editor rápido. GNOME tiene a Shotwell mientras que KDE tiene a DigiKam/ShowFoto.

Edición de Vídeo
Cómo instalar Lightworks video editor en Fedora Linux
Multimedia (Audio/Vídeo)

# dnf -y install vlc clementine soundconverter mediainfo

Rip & Burn

# dnf -y install k3b sound-juicer kid3

Administración del sistema

# dnf -y install gparted nano wget curl smartmontools htop inxi bleachbit firewall-config beesu pysdm

Mensajería y Comunicación

# dnf -y install pidgin xchat

E-mail

# dnf -y install thunderbird

Compresión/Decompresión

# dnf -y install unrar unzip zip p7zip p7zip-plugins

Impresoras/Escáneres

# dnf -y install python-qt4 hplip hplip-gui libsane-hpaio simple-scan

Internet

# dnf -y install firefox epiphany uget gigolo

Juegos

# dnf -y install steam

Wine

# dnf -y install wine cabextract
# wget https://winetricks.org/winetricks -O /usr/local/bin/winetricks && chmod +x /usr/local/bin/winetricks

Java

# dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel icedtea-web

Otros

# dnf -y install screenfetch rfkill lsb

Utilidades GNOME

# dnf -y install cheese gnome-shell-extension-common dconf-editor gnome-tweak-tool gtk-murrine-engine* libreoffice-langpack-es

Utilidades KDE

# dnf -y install kamoso digikam kde-i18n-Spanish kde-l10n-es

Software básico de compilación

Necesitarás instalar éstos paquetes si piensas compilar algo dentro de tu Fedora Linux (nunca está demás, siempre te puedes topar con software del que únicamente tengas un tarball por ejemplo); Es definitivamente recomendable instalarlos.

# dnf -y install kernel-headers kernel-devel dkms
# dnf -y install kernel-PAE-devel (Sólo Si tienes Kernel PAE)
# dnf groupinstall "Development Tools" && dnf groupinstall "Development Libraries"

Y con esto termina la parte de códecs y aplicaciones... Aquí también puedes aprovechar para personalizar un poco la selección de apps en tu sistema, yo personalmente elimino todo lo referente a evolution y rhythmbox (con mucho cuidado de no cargarme el sistema con las dependencias) ya que reemplazo estas 2 apps con thunderbird y clementine respectivamente.

Seguridad


Si tienes tu máquina Linux en red junto a máquinas Windows/Mac siempre es bueno tener a la mano un buen anti-rootkit y antivirus (por protección de los demás), ya que aunque linux es prácticamente invulnerable a las amenazas de malware comunes, los otros sistemas no:
Protección anti-malware en Linux (5 tips básicos)
Otras Apps


NOTA: Las apps que se descarguen como paquetes rpm en este apartado se instalan con el comando

dnf -y install ruta/al/paquete.rpm

Esto instalará las dependencias por nosotros y después el paquete descargado como es de esperarse.

LibreOffice (Si usas KDE)

# dnf -y install libreoffice libreoffice-kde libreoffice-langpack-es && dnf -y remove calligra*

Google Chrome

Muy importante ya que es la única manera oficial de poder disfrutar de Flash Player y Netflix en sistemas Linux como Fedora:

Descarga RPM - https://chrome.google.com/

Skype

Descarga RPM - https://www.skype.com/intl/es/get-skype/on-your-computer/linux/

Spotify
Instalar Spotify Linux en Fedora 21 y 22
Atom Editor

Fedora es un sistema operativo mayormente enfocado para programadores e ingenieros, así que asumí que incluir ésta aplicación aquí no estaría demás:
Instalar Atom Editor en Fedora 21 y 22 
Electrum Bitcoin Wallet

En el mundo de hoy nunca está demás tener una cartera bitcoin a la mano:
#QuickTip: Install Electrum Bitcoin Wallet on Fedora Linux
PlayOnLinux
Instalar PlayOnLinux en Fedora 21 y 22
VirtualBox
Instalar VirtualBox en Fedora Linux
Extras



Y pues bueno, aquí termina la parte de post-install para la edición Workstation. Espero como con cada lanzamiento esta guía sea su referencia de elección tras instalar Fedora Linux y pues cualquier cosa no duden en dejarnos un comentario abajo.

Si esta guía te fue de ayuda, apóyanos con un tweet



Server


DNF y utilidades

# dnf -y install nano wget curl dnf-plugins-core smartmontools htop inxi mc

Actualiza tu sistema

# dnf -y update

Configurar firewall

NOTA: Si por alguna razón quisieras usar iptables en lugar de firewalld puedes seguir estas instrucciones en lugar de los pasos descritos a continuación.

Primero necesitamos obtener la(s) zona(s) activas:

# firewall-cmd --get-active-zones

Este comando nos devolverá el nombre de la(s) zona(s) activa(s) (ej. public) y las interfaces de red que están ligadas a ella(s) como podrían ser eth0, p16p1, wlan0 etc.

Es recomendable también listar los puertos y servicios permitidos en la(s) zona(s) activas para hacer personalizaciones, esto se hace con:

# firewall-cmd --zone=myzone --list-all

Obviamente usando el nombre de la zona indicada en lugar de myzone.

Luego para abrir y cerrar puertos podemos usar:

# firewall-cmd --zone=myzone --add-port=xxxx/tcp --permanent
# firewall-cmd --zone=myzone --remove-port=xxxx/udp --permanent

Respectivamente, cambiando myzone por la zona indicada, xxxx por el número de puerto deseado y especificando el protocolo (tcp/udp) según corresponda. Si quisiéramos remover algunos de los servicios que vengan activados por defecto (por ejemplo el servicio de SSH si cambiamos el puerto 22 por otro para nuestro acceso y no requerimos ya tener el 22 abierto), tenemos que ejecutar:

firewall-cmd --zone=myzone --remove-service=myservice --permanent

Cambiando myzone por la zona indicada según nuestro caso y myservice por el servicio que queramos desactivar. Al finalizar tus cambios en el firewall deberás ejecutar:

service firewalld restart

para verlos aplicados.

Activar rc.local
Activar /etc/rc.local en Fedora Linux
Habilitar tuned

# dnf -y install tuned
# setenforce 0
# tuned-adm list
# tuned-adm profile perfil-deseado
# setenforce 1

Después añadimos a nuestro rc.local:

# Tuned
setenforce 0
service tuned start
setenforce 1

Esto se hace con el comando:

# nano /etc/rc.d/rc.local

Asumiendo que ya hayas activado el rc.local previamente.

Kernel VM Tunings
Kernel VM tunnings para mejorar rendimiento en Linux
Habilitar Zswap
Haz tu Linux más rápido con Zswap
Instalar Entorno Gráfico

NOTA: Hacerlo sólo si tienes una muy buena razón para ello.
Cómo instalar un entorno gráfico en Fedora Server
Protección Anti-Malware

En un servidor esto es cosa de sí o sí. Recuerda que en el caso de ClamAV (citado en el artículo a continuación) es recomendable establecer un cronjob como root para el análisis y limpieza de archivos infectados en directorios relevantes (por ejemplo el directorio de subidas públicas en un servidor web):
Protección anti-malware en Linux (5+ tips básicos)
Configurar Google DNS

Si no lo hiciste al instalar tu sistema y configurar tu red vale la pena hacerlo:
Google Public DNS
Aprende a usar SELinux
TUTORIAL: ¿Cómo c*rajo se usa SELinux?
Extras
Y pues bueno, aquí termina la parte de post-install para la edición Server. Espero que al igual que en el caso de la edición para estaciones de trabajo, esta guía se convierta en su referencia de elección tras instalar Fedora y pues cualquier cosa no duden en dejarnos un comentario abajo.

Si esta guía te fue de ayuda, dilo con un tweet

¿Qué hacer después de instalar OpenSUSE 42.1 Leap?


El camaleón ha dado el salto y ha llegado OpenSUSE Leap 42.1 la "primer distro híbrida" según sus creadores. Con LEAP puedes disfrutar de tener el respaldo de un sistema orientado a servidores "por debajo" junto con paquetes actualizados "por encima" lo que la hace una distro bastante atractiva tanto para desarrolladores como para usuarios comunes o sysadmins entre otros. Si tu también diste el salto, veamos a continuación qué hacer después de instalar esta maravillosa distro:

Habilitar Repos Extra

Para ésto abrimos YaST en nuestro menú de aplicaciones y nos dirigimos a Software>Repositorios de Software y ahí seleccionamos Añadir. En la ventana que aparece a continuación elegimos Repositorios de La Comunidad y hacemos click en Siguiente, añadiremos al menos Packman, Repositorio Principal y libdvdcss. Cualquier otro que creas necesitar también añádelo como hice yo a continuación:


Evita añadir repos de depuración, debug y/o fuentes a menos que los necesites para algo específico.

NOTA: Aclaro que no recomiendo habilitar/utilizar el repo de drivers gráficos privativos (NVIDIA/AMD) para tu tarjeta sin antes haber probado en una VM que instalar los paquetes que de ahí provengan no romperán tu instalación.


Actualizar sistema

# zypper up && zypper install-new-recommends && zypper dup

Eliminar Flash Player

Flash player es un agujero de seguridad enorme que se instala al correr "instal-new-recommends" en opensuse, lo eliminaremos (y bloquearemos) en favor de HTML 5, Chromium y Pepper-Flash:

# zypper rm flash-player
# zypper al "flash-player*"

Instalar Chromium

Por si quieres ver contenido Flash y/o usar Netflix en OpenSUSE:

GNOME

# zypper in chromium chromium-pepper-flash chromium-widevinecdm-plugin chromium-ffmpeg chromium-desktop-gnome

KDE

# zypper in chromium chromium-pepper-flash chromium-widevinecdm-plugin chromium-ffmpeg chromium-desktop-kde

Instalar Apps


La mayoría del software que puedas llegar a necesitar para cumplir con cualquier tarea ya viene en los repositorios de OpenSUSE. Para todo caso que no sea así, date una vuelta por el OpenSUSE Build Service (que te permitirá acceder a repos como los PPA de ubuntu o COPR de fedora pero para OpenSUSE) o bien, descarga RPM's oficiales de la aplicación que estés buscando desde su sitio web. A continuación te mostraré una lista de apps por categorías que puedes instalar directamente desde los repositorios de OpenSUSE:

Diseño/Edición

# zypper in gimp scribus inkscape blender audacity kdenlive openshot

Multimedia

# zypper in vlc vlc-codecs clementine soundconverter mediainfo

Administración del Sistema

# zypper in gparted nano wget curl smartmontools htop inxi bleachbit mc

Rip & Burn

# zypper in k3b sound-juicer kid3

Mensajería

# zypper in pidgin xchat

E-mail

# zypper in thunderbird

Compresión/Descompresión

# zypper in unrar unzip zip p7zip

Impresoras/Escáneres

# zypper in hplip python-qt4 hplip-sane simple-scan

Internet y Navegación

# zypper in firefox epiphany uget gigolo

Juegos

# zypper in steam

Wine y Msttcorefonts

# zypper in wine cabextract fetchmsttfonts

Otros

# zypper in rfkill screenfetch lsb breeze5-icons bitstream-vera-fonts

Utilidades GNOME

# zypper in cheese dconf-editor gnome-tweak-tool "gtk2-engine-murrine*"

Utilidades KDE

# zypper in kamoso digikam

Software básico de compilación

# zypper in --type pattern devel_basis

Virtualbox

# zypper in virtualbox
# usermod -G vboxusers -a username

Virtualbox Extension Pack - HowTo
(Cambia username por tu nombre de usuario arriba)

Drivers Broadcom

# zypper in broadcom-wl broadcom-wl-kmp-default b43-fwcutter

Seguridad


Si tienes tu máquina Linux en red junto a máquinas Windows/Mac siempre es bueno tener a la mano un buen anti-rootkit y antivirus (por protección de los demás), ya que aunque linux es prácticamente invulnerable a las amenazas de malware comunes, los otros sistemas no:
Protección anti-malware en Linux (5 tips básicos)
Otras Apps


Skype

Descarga RPM - https://www.skype.com/intl/es/get-skype/on-your-computer/linux/

Atom Editor

Descarga RPM - https://atom.io/

Spotify
Spotify Chrome App
Extras



Cambiar hostname

# nano /etc/hostname

Habilitar NetworkManager

# service NetworkManager start
# systemctl enable NetworkManager

Y pues bueno, aquí termina esta guía de post instalación para OpenSUSE Leap 42.1, una distro bastante estable con un twist fresco en los paquetes que te importan. Espero les haya gustado y pues nos leemos en otros posts!, Salud.

Si esta guía te fue de ayuda, dilo con un tweet

Cómo restaurar tu Chromebook manualmente usando GNU/Linux



NOTA: Estoy escribiendo este tutorial porque tengo una amiga a la que recientemente cambié uno de sus equipos familiares a Linux Mint y ella tiene una Chromebook. Desgraciadamente la herramienta de Chrome está en mantenimiento y no puede hacer la restauración como comúnmente la haría desde Linux, sin embargo manualmente es posible realizarla. Agradecería mucho si alguien se diera a la tarea de escribir un script GUI para automatizar este proceso (ya que es por demás sencillo) para que los usuarios tengan una alternativa al sistema de Google que al parecer es de lejos "perfecto".

Si la herramienta de recuperación de Google falla, esto es lo que has de hacer:

1) Baja la imagen de recovery

En este blog mantienen una lista actualizada según modelo, elige la tuya y descárgala de manera acorde.

2) Extrae la imagen descargada

El archivo que descargarás vendrá comprimido en ZIP, extráelo:


3) Formatea una USB para restauración

Insertamos la USB deseada para la restauración y abrimos el programa gparted (Lo instalamos desde nuestro software manager si no lo tenemos en la lista de programas); Ahí, seleccionamos la USB que acabamos de insertar en la lista de unidades del lado superior derecho:


Acto seguido damos click con el botón secundario en todas las particiones que estén en la lista y damos click en Desmontar:


Después, Damos click en el menú Dispositivo>Crear tabla de Particiones y aplicamos los cambios:


En el espacio sin asignar resultante, damos click con el botón secundario, elegimos Nueva:


En el recuadro que nos aparecerá, dejamos todo como está excepto el sistema de archivos que cambiaremos a fat32:


Damos click en la green tick del programa para aplicar los cambios y cerramos:


4) Crear USB de restauración

Ahora lo que tenemos que hacer es correr el siguiente comando en una terminal:

dd if='/ruta/al/archivo.bin' of=/dev/sdX bs=4M;sync

Donde reemplazaremos '/ruta/al/archivo.bin' por la ruta al archivo que extrajimos en el paso 2 del .zip; para no escribir la ruta completa, podemos arrastrarlo a la consola justo después del símbolo = y esta acción escribirá la ruta por nosotros en el prompt. También deberemos reemplazar /dev/sdX con la ruta correcta a nuestra USB. Si ven mis capturas de Gparted arriba, en el lado superior derecho dice que mi USB se llama /dev/sdg so esa es la ruta que debo escribir en este comando en lugar de /dev/sdX en mi caso, en el suyo puede ser distinto.

Este comando puede tardar un poco y después de escribir exitosamente la imagen a la USB soltará algo como:

169+1 records in
169+1 records out
710934528 bytes (711 MB) copied, 77.9798 s, 9.1 MB/s

Así sabremos que la USB está lista para usarse.

5) Restauración

Siguiendo las instrucciones de Google:

When the "Chrome OS is missing or damaged" screen appears, insert the USB Flash drive you created into the USB port on the right side of your notebook.Wait for the notebook to boot up from the Flash drive.Follow the instructions that appear on the screen.On successful reinstall, the system will automatically restart.Remove the USB Flash drive from your notebook.You should now be able to start and use your Chrome notebook as normal.

Y eso sería todo.

Tutorial: Comenzando con Openshift Online

En un post anterior hicimos un review completo de Openshift Online, la plataforma como servicio hospedada (hosted PaaS) de Red Hat que nos trae de manera gratuita una alternativa fuerte a opciones como Heroku o Google App Engine, pudiendo incluso competir (en varios casos) con un VPS o servidor dedicado. Como explicaba yo ayer, Openshift Online me gusta mucho porque nos trae lo mejor de 2 mundos: La nube administrada y los VPS.

El día de hoy haremos un tutorial completo sobre cómo iniciarse con OpenShift Online, para aquellos que se quedaron "picados" tras conocer sus bondades... Sin nada más que agregar al respecto, acompáñenme a continuación:

NOTA: Este tutorial se va a basar en Fedora Linux como sistema operativo base. Puedes seguirlo sin importar en cuál plataforma o distribución estés ya que las herramientas de Openshift son "platform agnostic" generalmente, pero si instalo un programa con el gestor de paquetes de fedora o hago algo específico de mi sistema, recuerda cambiar los comandos de manera acorde según tu distribución y/o plataforma.

1) Preparando el entorno

Necesitarás tener listo un entorno ruby/rubygems en tu computadora primero. Checa este tutorial para dicho fin. También necesitarás tener Git instalado y configurado, acá otro tutorial al respecto. Una vez que estos requerimientos se cumplan puedes proseguir.

2) Crea tu cuenta

Ahora necesitarás crear tu cuenta en Openshift Online, esto se hace acá.

3) Instalando herramientas (y configuración)

Una vez creada tu cuenta, ya podrás instalar y configurar las herramientas necesarias para trabajar con Openshift:

# sudo gem install rhc
$ rhc setup

El segundo comando te pedirá hacer algunas confirmaciones y después te pedirá hacer login:

Login to openshift.redhat.com: user@example.com
Password: password

Luego se te pedirá generar un token en tu directorio personal. Si accedes (recomendado), se generará y cuando éste expire se te pedirá tu contraseña de nuevo para hacer login desde la consola en Openshift Online:

OpenShift can create and store a token on disk which allows to you to access the server without using your password. The key is stored in your home directory and should be kept secret. You can delete the key at any time by running 'rhc logout.

Generate a token now? (yes|no) yes

Generating an authorization token for this client ... lasts about 1 day

Más tarde el asistente revisará si tienes claves ssh en tu directorio personal y de ser así, te pedirá elegir una para subir a openshift. De no encontrar lo que busca generará una nueva y te preguntará si quieres subirla como tu clave ssh predeterminada. Generalmente yo en este paso opto por el no (debido a que mantengo mis claves ssh en otro directorio) y subo la indicada más tarde, pero si a ti no te molesta tenerlas en ~/.ssh como es habitual accede al prompt por defecto y listo:

No SSH keys were found. We will generate a pair of keys for you.

Created: ~/.ssh/id_rsa.pub

Your public ssh key must be uploaded to the OpenShift server to access code.

Upload now? (yes|no) yes

Since you do not have any keys associated with your OpenShift account, your new key will be uploaded as the 'default' key

Uploading key 'default' from ~/.ssh/id_rsa.pub... done

Si quieres subir una clave SSH propia que se encuentre en otro directorio, dile que no al prompt por default, termina los demás pasos en el asistente y al finalizar, utiliza el comando:

rhc sshkey add -i key-name -k pubKey-path

Recuerda que de hacer esto, cada que inicies sesión debes añadir dicha clave al agente SSH con:

ssh-add privKey-path

Para poder trabajar con la consola de Openshift... (Aunque también puedes hacer un script que corra al inicio de sesión para automatizar esto).

Más tarde se te pedirá ingresar un subdominio personalizado para tus aplicaciones:

Checking for a domain ... none

Your domain is unique to your account and is the suffix of the public URLs we assign to your applications. You may configure your domain here or leave it blank and use 'rhc domain create' to create a domain later. You will not be able to create applications without first creating a domain.

Please enter a domain (letters and numbers only) ||: mydomain

Your domain name 'mydomain' has been successfully created

Una vez que terminas el asistente, ya puedes crear aplicaciones en tu cuenta.

4) Creando nuestra primera app

Hacemos login en Openshift Online y damos click en "Create your first application now", esto nos llevará a una página con los tipos de aplicaciones que podemos crear:



Debido a que Openshift nos hizo instalar un entorno de desarrollo ruby, no veo porqué no hacer una ruby app como muestra para comenzar. Seleccionamos Ruby 2.0.0 en la lista de arriba y tendremos que configurar nuestra aplicación a continuación. Les recomiendo permitir que escale con el tráfico para aprovechar al máximo los recursos gratuitos disponibles y tener load balancing y high availability habilitados por defecto:


Después de crear mi aplicación (quizá tome unos minutos), tendré la siguiente pantalla delante de mi:


Procedo a clonar la aplicación a mi equipo con el comando que me listan y al hacer cd al nuevo directorio en la consola, puedo ver que tengo una app "esqueleto" lista para empezar a trabajar:


Si abro el README.md (en este caso con el comando cat) veré que me apunta a la documentación para empezar a trabajar con el "cartucho ruby" en Openshift...

Regreso a mi dashboard online y ahora ya puedo dar click en "Continue to the application overview page" para añadir una base de datos.

5) Base de datos y cartuchos

En la ventana de overview de aplicación, podemos ver que nos dan la opción de añadir una base de datos o ver qué otros "cartuchos" podemos agregar. Los cartuchos son "piezas" para tu aplicación (base de datos, cron, jenkins, etc.) que puedes necesitar para ir armando tu app:


En este caso sólo añadiré MongoDB 2.4 (que es la única versión de esta DB que soportan de momento oficialmente) para mi aplicación de ejemplo:


y tras añadirla, tendré un mensaje de confirmación con una URI, un usuario, una contraseña y un nombre de DB para usar MongoDB en mi aplicación de manera segura:


6) Deployment

En este punto ya puedo empezar a armar mi aplicación de manera local y subir los cambios mediante Git. Supongamos que en este caso quiero trabajar con bundler y unas cuántas ruby gems... Sigo este tutorial para integrar Bundler en mi aplicación Ruby y añado mis gemas al Gemfile... En este caso voy a hacer unos scripts rápidamente para probar la integración con MongoDB de mi app:

NOTA: Para hacer esto, puedo checar las variables de entorno que Openshift tiene para MongoDB por acá (así funciona para la mayoría de cartuchos) de manera que no tenga que preocuparme por meter los datos de manera "hard coded".


Ya que modifiqué un poco el código necesito subirlo a Openshift; Esto es tan sencillo como hacer:

$ git add .
$ git commit -m "mongoid test"
$ git push

7) Manejo por consola

Una vez arriba el código, necesito probarlo. Para acceder a la consola de Openshift, basta con hacer uso de la liga ssh que ellos me proveen, (asegurándome de haber agregado mi clave ssh como se requiere):


Una vez accedo, puedo probar el código que subí con:

$ cd app-root/repo
$ ruby main.rb

Pero oh snap! Hay un bug fatal (referencia 1, referencia 2, referencia 3) que me impide usar MongoDB como yo quiero en este caso dentro de Openshift v2 al parecer:


Bueno, entonces tendré que...

8) Eliminar un cartucho

MongoDB no funcionó, así que la eliminaré y mejor utilizaré SQLite3 (que ya viene por defecto activ@ en OpenShift); Para eliminar un cartucho, corremos el comando:

rhc cartridge remove -a {appName} -c {cartridgeName}

Este comando nos pedirá confirmación y procederá a eliminar el cartucho de nuestra aplicación.

9) Marketplace


Antes de mostrar el código modificado, hay una cosa más que debemos revisar: El marketplace. Openshift tiene este marketplace al que puedes acceder para dotar a tus aplicaciones de servicios extras. ¿Necesitas envío de correos? Puedes activar Sendgrid Free para tener 25,000 correos gratuitos cada mes o pagar por cualquiera de sus mejores planes:


Todos estos goodies se pueden activar con un solo click desde el mismo marketplace, sin mayor problema. Cabe destacar que si es de tu interés, puedes crear add-ons y subirlos al marketplace para que otros puedan hacer uso de ellos.

10) Port forwarding

Si quiero trabajar de manera local en el entorno de producción (ya habiéndolo subido a Openshift) lo que puedo hacer es correr el siguiente comando:

rhc port-forward -a {appName}

Que se encargará de redireccionar puertos locales a los puertos de la aplicación de Openshift en modo de producción:


En este caso si visito el puerto local asignado a httpd, debería ver la index.html pública de mi app en vivo.

Finalizando...

Ahora sólo me queda cambiar el código de mi app y subirlo de nuevo para hacer uso de SQLite en lugar de MongoDB como prometí. He aquí el cambio:


Cabe destacar que elminé mongoid.yml y Gemfile.lock, después corrí:

$ bundle install

Accedí por ssh a la consola de mi aplicación y dentro de la misma ejecuté:

$ cd app-root/repo
$ bundle install
$ ruby main.rb

Lo que me entregó el siguiente resultado:


Mismo que indica que todo funciona a la perfección.

Extras

Las aplicaciones en el plan Free cuentan con algo que se llama "idling", So básicamente si tu app no recibe requests en 24 horas, ésta se "pausa" un momento hasta que otra request llega. Si quieres evitar esto, puedes hacer upgrade al plan bronze (que igual es gratis pero requiere tus datos de billing ya que te permite consumir recursos pagados), o bien crear un scrapBot con algo como CasperJS para simular hits en tu aplicación de manera continua. Hacer upgrade al plan bronze en un país no oficialmente soportado requiere que te pongas en contacto con Openshift para expresar tu interés personal y así poder hacer dicho cambio.

Algunos enlaces relevantes:


Openshift de Red Hat: ¿Mejor que un VPS? (Review)


¿Qué es Openshift?


OpenShift es una plataforma como servicio (PaaS) que Red Hat provee para montar aplicaciones en una infraestructura operada por ellos. En resumen, se trata de una alternativa a los ya famosos Heroku o Google App Engine pero que además de correr de manera "Hosted" también puedes operar tu mismo en tu infraestructura si eso es lo que deseas (Como ocurre con OpenStack exceptuando el hecho de que éstos últimos no ofrecen una opción hospedada) ya que cuenta también con una versión enterprise e incluso una opensource (origin) que puedes probar directo en tu Fedora Linux (por solo dar un ejemplo) desde hace algunas releases... Cabe destacar que (contrario a las alternativas hosted mencionadas), Openshift es un ecosistema bastante libre que podríamos declarar como un híbrido entre lo que es la nube administrada y otras opciones como los VPS y/o los servidores dedicados.

En este review nos centraremos en la versión hosted de Openshift (mejor conocida como Openshift Online) ya que es lo más sencillo para iniciarse con Openshift y (al menos en mi opinión) ofrece lo mejor de 2 mundos: El VPS y la Nube Administrada.

Ventajas de Openshift Online

Openshift Online tiene un muy buen plan gratuito que te ofrece 3 "gears" (más adelante veremos qué es eso) conjuntando en total:

  • 3GB de storage total 
  • 1.5GB de RAM
  • Todas las horas de CPU necesarias (1-3 cores en parallel programming)
  • Toda la banda ancha que requieras

Digo que es "lo mejor de 2 mundos" porque cuenta con las características que nos encantan de las nubes administradas junto con aquellas que nos hacen sentir "en control" dentro de un VPS, algunas de las cuales podrían ser:


  • No tiene plazos forzosos (es pay-as-you-go)
  • No cobran por los snapshots
  • Las apps tienen un subdominio personalizado  y puedes usar tu TLD
  • Ofrece SSL en todos sus planes
  • Tiene acceso SSH a la consola de la aplicación
  • El código se porta y maneja mediante Git


Entre otras...

Lo mejor es que cosas como la integración del acceso SSH o Git se hacen en cuestión de segundos con 1 o 2 comandos, a diferencia de un VPS donde tendríamos que hacer un setup inicial completo que nos podría llevar varios minutos o incluso hasta unas horas... Al ser una nube administrada, en OpenShift Online no te tienes que preocupar por el sistema operativo, el rendimiento del CPU, la optimización del almacenamiento, la seguridad general del deployment u otras cosas similares. Red Hat se encarga de los servidores mientras tu solo te encargas de desarrollar y subir.

Pregunta: ¿Me conviene migrar?

Hasta aquí puede sonar bastante bueno (y lo es) pero ¿es un reemplazo para tu VPS? Depende. Según la aplicación/sitio puede resultar mejor pasarse a Openshift debido a que


  • A) No cobran por ancho de banda utilizado (transferencia) ni horas de CPU
  • B) Es una nube administrada
  • C) Las aplicaciones son auto-escalables por instancias (gears)


Lo que importa considerar es si tu aplicación necesita más CPU/RAM y ancho de banda que almacenamiento o más almacenamiento que cualquier otra cosa y actuar acorde a tus circunstancias porque... ¿Recuerdas los "gears"? veamos qué son:

Gears are secure containers for your code. Each gear is allocated CPU, memory, disk, and network bandwidth. You can use a single gear to create an entire web application complete with a private database instance. Use multiple gears to create multiple applications or configure your applications to automatically scale in response to web traffic.

So, los gears son containers con CPU, Memoria, Almacenamiento y Ancho de banda. 1 gear small (de los que vienen 3 por default en el plan gratuito) tiene:


  • CPU ilimitado (1 core, ajuste variable)
  • 512MB de RAM
  • 1GB de almacenamiento
  • Ancho de banda ilimitado


Cada aplicación que creas en Openshift Online te ocupa 1 gear de manera predeterminada. Puedes "aislarla" a ese gear, (lo que significará que siempre tendrá a la mano sólo los recursos de dicho gear) o bien, permitir que escale con el tráfico/uso, utilizando tantos gears como tengas disponibles o sólo tantos como tu quieras (haciendo que una sola use el total de recursos gratuitos o bien, los compartan entre todas las que tengas de manera conjunta o individual); Además, Openshift tiene un marketplace donde puedes adquirir interesantes "addons" para tu aplicación como pueden ser Statica, un servicio para dotar tus apps de una IP pública estática (como si fueran un VPS) o New Relic para monitoreo entre otras cosas, muchas de éstas completamente gratis o con precios y planes muy accesibles e integraciones "easy as pie". Cabe destacar que uno puede desarrollar sus propios addons para el marketplace también... Gracias a este ecosistema no hay manera de que otro hosted PaaS (heroku/app engine, etc.) te ofrezca mejores prestaciones gratuitas que Openshift Online (al menos como yo lo veo).

Pero, ¿y mi proveedor de VPS? bueno, difícilmente va a superar el total de recursos gratuitos en precio considerando cómo funcionan los gears (hablando del total de RAM, CPU y banda ancha que puedes utilizar en una o varias aplicaciones sin pagar o si quiera introducir una tarjeta de crédito); Sin embargo en el apartado de almacenamiento, si ocupas bastante, los 3GB totales del plan gratuito se te van a quedar cortos y el almacenamiento puede resultar caro ya que directamente sólo tienes de 2 sopas:


  • Activar el plan silver ($20 USD/mo) y recibir 18GB de almacenamiento por default
  • Pagar $1 USD/GB al mes por almacenamiento extra a partir del plan bronze (Gratuito)


Aunque también podrías delegar tu almacenamiento a un VPS, un proveedor de base de datos como servicio (DaaS) o bien, a algún storage como Google Cloud Storage o Amazon S3 si estás manejando archivos estáticos para pagar menos, pero a la larga tienes que decidir en base a tu deployment y caso de uso... He aquí un poco más de información sobre los Gears y tipos de planes de Openshift Online:



NOTA: Cabe destacar que cuentan con planes de apoyo para startups, instituciones educativas, non-profits y proyectos opensource.

¿Dónde está el truco?

Claro que no todo es color de rosa, y por ejemplo de usar Openshift Online, tendrás que adaptarte casi al 100% a las versiones que soportan de los lenguajes de programación, bases de datos y plataformas que manejan si quieres aprovechar las ventajas de la nube administrada (aunque si quieres, puedes usar la opción "custom" y probar suerte haciendo funcionar algún lenguaje/framework o versión no oficialmente soportados); Además, el soporte técnico en las opciones no pagadas es 100% comunitario. También es importante destacar que OpenShift Online sólo ofrece como locaciones Estados Unidos y Europa para tus aplicaciones. Por otro lado, he notado que al alocar los 3 gears gratuitos a una sola aplicación, éstos se van dividiendo por "cartucho" (los cartuchos son "piezas" de tu aplicación) So, aunque la aplicación a nivel general goza de toda la RAM según los gears que haya escalado, todos los cores de CPU, y ancho de banda ilimitado en cualquier caso, en el caso del almacenamiento éste generalmente se divide en 1GB para el código y 1GB para la DB. Asumo que al llenarse uno u otro se asigna el GB adicional al espacio que lo requiera:


Así mismo como si añado otro cartucho que requiera almacenamiento (u otro gear) el GB adicional se añadirá a éste... De no permitir que la aplicación escale automáticamente, (asumiendo que le asignemos 1 solo gear por ejemplo) tanto la base de datos como el código compartirían el mismo GB... Es importante tomar esto en cuenta debido a que las diferentes bases de datos soportadas (SQLite, MongoDB, MySQL y PostgreSQL según he visto) tienen una footprint de almacenamiento por default distinta, al igual que los distintos tipos de proyectos según el lenguaje/framework que elijas.

Veredicto

Usa Openshift Online si:

  • Tu deployment se beneficiaría del total de recursos gratuitos compartidos
  • Tu aplicación usa banda ancha o CPU de manera intensiva
  • Tu deployment se beneficiaría de tener capacidades de paralell computing
  • Tu deployment se beneficiaría de tener load balancing/high availability habilitados por defecto 
  • Estás prototipando un proyecto y no quieres gastar en lo que validas tu modelo de negocio
  • Tienes una app que se beneficiaría de alguna de las ofertas/addons del marketplace
  • Tu sitio web ha subsistido bastante bien con 512MB - 1.5GB de RAM a lo largo de su vida
  • Tus costos de operación se reducen migrando a OpenShift Online en cualquiera de sus planes

No uses Openshift Online si:

  • Tu aplicación requiere una IP pública estática que de hecho vaya a tener muchísimos hits directos (ejemplo: un API sin Cloudflare)
  • Requieres múltiples aplicaciones y pagar por gears extra te sale más caro que rentar 1 VPS para ponerlas todas ahí o bien, usar App Engine (por ejemplo) donde se te permiten bastantes de forma gratuita.
  • Tu plan de storage sale más barato si haces deployment en App Engine y le pagas a Google sin preocuparte por hacer los bindings aparte (por ejemplo)
  • Requieres usar 1 versión específica de un lenguaje de programación, base de datos o plataforma no soportada de manera administrada por openshift directamente (en ese caso mejor opta por 1 VPS)
  • Necesitas una ubicación geográfica diferente a Estados Unidos o Europa para hospedar tu aplicación
  • Necesitas un entorno demasiado personalizado, casi casi "otra computadora" en la nube
Finalizando...

En el caso de las hosted PaaS, a menos que ocupes demasiadas aplicaciones y te salga más caro pagar por los gears extra, no hay manera (a como yo lo veo) de que otra plataforma como servicio hospedada te salga mejor que Openshift Online en cuanto a recursos gratuitos generales. La escalabilidad en almacenamiento es una situación completamente diferente ya que de usar Google App Engine (por ejemplo) a la larga te podría salir mejor quedarte en su ecosistema si tu app no suele sobrepasar las cuotas gratuitas de otra cosa que no sea almacenamiento (ya que sólo les pagarías por dicho almacenamiento extra). Hablando de un VPS, depende mucho del tipo de deployment que tengas, pero en muchos casos me parece que OpenShift Online puede recortar (incluso a $0) tus gastos de operación bajo diferentes escenarios. En un post futuro haré un tutorial sobre cómo iniciar con Openshift, pero mientras puedes aprender más sobre la plataforma en:



Compartir portapapeles entre 2 o más servidores gráficos en Linux



Supongamos que tengo 2 servidores gráficos corriendo en mi máquina, uno para el escritorio normal y uno para un Sandbox de SELinux. Si quiero compartir el portapapeles entre estos 2 servidores X entonces lo que tengo que hacer es instalar el paquete xclip en mi sistema principal y correr en el mismo este pequeño script:


(Después de descargarlo y marcarlo como ejecutable) en una consola para lograr el efecto deseado. Con él, estaré compartiendo de manera predeterminada los clipboards del servidor gráfico :0 y :1 de manera bidireccional, pero podemos ajustar el script para trabajar con otro set de displays o incluso más de 2 servidores X.

Cómo instalar Evernote (oficial) en GNU/Linux


Evernote es una aplicación para computadora, móviles y web que gracias a la nube nos permite mantener toda una biblioteca de libretas personales que contienen notas hechas por nosotros con texto, imágenes, audio etc. sincronizada entre todos nuestros dispositivos... Evernote es gratuito (aunque hay una versión plus y una premium) y sus ventajas son innumerables: Desde estudiar, hasta organizar tu día con día o bien, ayudarte a alcanzar tus metas... ¡Reemplaza el papel en tu vida y usa Evernote hoy mismo! Crea una cuenta acá; (El enlace es para referidos, si creas tu cuenta desde él, obtendrás 1 mes de Evernote Premium completamente gratis).

En GNU/Linux existen varios clientes nativos para administrar nuestro Evernote, siendo los más conocidos Everpad y Nixnote (el segundo es lo más cercano al cliente oficial); SIN EMBARGO la verdad es que a mi en Fedora Linux nunca me han funcionado bien ni uno ni otro, así que opté por la siguiente solución obvia que era ejecutar el cliente oficial para Windows usando Wine en la distribución; Contrario a lo que algunas personas decían sobre versiones pasadas en la web, a partir de Wine 1.7.xx es posible ejecutar prácticamente cualquier versión de Evernote Windows en GNU/Linux.

NOTA: En este tutorial usaré a Fedora Linux como distribución de referencia, cambiar los comandos de instalación de paquetes por los indicados según tu distro.

1) Instalar Wine y Winetricks

# dnf -y install wine cabextract
# wget http://winetricks.org/winetricks -O /usr/local/bin/winetricks && chmod +x /usr/local/bin/winetricks

NOTA: Otras distros quizá prefieran usar /usr/bin en lugar de /usr/local/bin para winetricks.

2) Instalando Evernote

Necesitaremos descargar Evernote para Windows desde este enlace si queremos la versión más reciente que esté disponible. Necesitaremos cambiar nuestro user agent con alguna extensión, para Google Chrome yo recomiendo usar ésta; En mis pruebas a partir de la 5.7.x he notado pequeños glitches (como stacks duplicados por ejemplo); Entonces yo de momento uso la 5.6.x que pueden descargar por acá. Es cosa de que hagan la prueba con la versión más reciente y si todo les funciona bien, la usen. Si no les recomiendo la 5.6.x que para mi ha sido más que estable y funcional (ojo: ésta versión antigua no tiene algunas funcionalidades como workchat por ejemplo). Una vez descargado Evernote, corremos en consola:

$ WINEPREFIX=$HOME/.wine-evernote/ winecfg

En este paso nos aseguramos que la versión a imitar en Wine sea Windows 7 y establecemos otras preferencias que nos parezcan apropiadas para nuestro WINEPREFIX:


Aplicamos los cambios y luego corremos:

$ WINEPREFIX=$HOME/.wine-evernote/ winetricks corefonts
$ wget http://files.polosatus.ru/winefontssmoothing_en.sh
$ chmod +x winefontssmoothing_en.sh
$ WINEPREFIX=$HOME/.wine-evernote/ sh winefontssmoothing_en.sh

Aplicamos la configuración de suavizado de fuentes RGB:


Y finalmente corremos:

$ WINEPREFIX=$HOME/.wine-evernote/ wine ruta/instalador/evernote.exe

Seguimos las instrucciones de instalación habituales y listo:


3) Tweaks finales

Abrimos Evernote y accedemos con la cuenta que nos creamos previamente:


Ya como Tweaks extra, establecemos nuestras preferencias personales en las pestañas del menú de Herramientas>Opciones y finalmente disfrutamos de Evernote:


Eso sería todo, Evernote Oficial instalado en GNU/Linux sin mayores complicaciones. Cabe destacar que usando este método nuestro evernote es compatible con las actualizaciones habituales de la aplicación y prácticamente todas las funcionalidades en ella.

Extras

10+ usos para Evernote & Cuentas Premium GRATIS para todos

Cómo instalar Lightworks video editor en Fedora Linux


Yo, (como muchos) he usado Kdenlive como el editor de video por excelencia en GNU/Linux desde que tengo memoria. El problema es que a cada rato tiene uno u otro problema con MLT en mi distribución (Fedora) y por ésto me es imposible usarlo de manera continua.

La verdad es que la situación actual de la edición de video en Linux es deplorable. Las librerías para encode/decode no tienen un estándar (ffmpeg, mencoder, melt) y por lo tanto la manera programática de hacer las cosas cambia aceleradamente, dejando poco tiempo a los creadores de los editores de video para adaptarse a los rápidos cambios de las mismas (dejándonos a nosotros, los usuarios con software "paralítico"); Esto lo digo en base a mi última experiencia con los editores de video en Linux:

Kdenlive: No renderiza/procesa el proyecto (bug reportado acá) y parece que los devs sólo están esperando a que mágicamente melt se arregle por sí solo en las distribuciones con una nueva versión.

OpenShot: La calidad de lo procesado es pésima si se quiere hacer algo para youtube/web y las opciones avanzadas no parecen hacer mucho al respecto. Por otro lado, el renderizado tiene otros errores extraños como audio que no se escucha con auriculares y la interfaz deja mucho que desear, no es posible trabajar cómodamente con clips largos (¡no se les encuentra el final!).

Pitivi: Se traba y cierra al trabajar, no es confiable.

No me hagan hablar de Lives (que ni siquiera es usable) o de Flowblade que no pudo renderizar a otra cosa que no fuera .mpg en mis pruebas.

Conoce a Lightworks


Finalmente tenemos a Lightworks, una herramienta profesional de pago (modelo freemium pero curiosamente el editor es opensource) que al igual que las demás, deja mucho que desear en varios apartados, pero por lo menos lo intenta y cumple de cierta manera, integrando en el proceso varias features profesionales que el usuario de a pie agradecerá. Lightworks es un software extraño y al usarlo se siente claramente como algo en estado alpha ya que hacen un "bundle" de todas las utilidades (códecs y demás) en estado frozen para tener más control sobre el entorno. Esto obviamente lleva a que en lightworks no puedas importar cualquier tipo de formato (en mi experiencia sólo acepta codificación libx264/libx264rgb con pixel format yuv420p y un framerate predefinido sin importar el contenedor hablando de vídeo y audios mp3/mp4 cuando hablamos de sonido); conllevando también la limitante de que para poder exportar tus proyectos a otros formatos que NO sean Youtube 720p (MP4/H264) tengas que comprar la versión PRO. Esto último no sería una grosería de no ser porque la calidad que ofrece el único formato de exportación gratuito no es la mejor allá afuera y así grabes en FullHD (un screencast por ejemplo) originalmente recibirás algo de menor calidad al finalizar tu renderizado, no importando a qué lo puedas convertir después con ffmpeg/mencoder porque "el daño ya está hecho".

Instalar Lightworks en Fedora

Como ya expliqué, lightworks no será la octava maravilla del mundo pero al menos renderiza, sus resultados son aceptables aunque no óptimos (en la versión gratuita) y no se anda cerrando y/o cayendo a cada rato. Si quieres instalar Ligthworks en tu Fedora Linux esto es lo que has de hacer:

1) Añadir repositorios RPMFusion

# dnf install --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm && dnf -y update

2) Instalar códecs y utilidades

# dnf -y install gstreamer1-libav gstreamer1-plugins-bad-free-extras gstreamer1-plugins-bad-freeworld gstreamer1-plugins-good-extras gstreamer1-plugins-ugly gstreamer-ffmpeg xine-lib-extras xine-lib-extras-freeworld k3b-extras-freeworld gstreamer-plugins-bad gstreamer-plugins-bad-free-extras gstreamer-plugins-bad-nonfree gstreamer-plugins-ugly gstreamer-ffmpeg mencoder

# dnf -y install mediainfo vlc audacity-freeworld soundconverter

3) Descargar e instalar Lightworks

Descargar Ahora
dnf -y install ruta/rpm/lightworks

4) Crearte una cuenta

Crear cuenta ahora

Verificamos nuestra cuenta por e-mail como nos indican y proseguimos.

5) Configurar Lightworks

Abrimos Lightworks desde nuestro menú de aplicaciones, regresamos a la terminal (con Alt+Tab si fuese necesario), cerramos lightworks (lléndonos a la parte superior derecha de la "ventana" que aparecerá al abrirlo con el mouse y dando un click al tener un pointer) para después correr:

$ nano ~/Lightworks/UserSettings.txt

En el archivo que se nos abrirá, buscamos y modificamos las siguientes variables en el bloque de [EditorPreferences] para que nos queden así:

Lightworks window maximised=false
Lightworks window titlebar=1


Una vez hecho esto abrimos Lightworks desde nuestro menú de aplicaciones de nuevo y si se nos glitchea como en esta captura:


Simplemente arrastramos la ventana desde su barra de título forzándola a que se "redibuje", haciendo que lightworks abra como debe. En el caso de una nueva instalación se nos pedirá hacer login (una única vez) con los datos de la cuenta que registramos y después ya podremos utilizar el editor como es debido:


Lightworks es un editor de vídeo profesional donde se han editado películas como Pulp Fiction, King's Speech, Hugo y varias otras más, ¡incluso ha ganado premios! En mi opinión es lo más cercano a un Kdenlive estable (y usable) que encontrarás en GNU/Linux, tiene bastantes features muy poderosas, incluso un editor de sonido profesional built-in, efectos profesionales y muchísimas cosas más... Aunque aún le hace falta trabajar muchísimos detalles vale la pena echarle un ojo.

Para conocer más sobre Lightworks, visita su web oficial.