Poketty – Pokemon en cónsola

Mientras algunos esperan impacientes la aparición de Pokemon GO, otros van en sentido contrario, hasta llegar a lo más básico… El Terminal o cónsola…

Desde el blog DesdeLinux encontramos la información que la comunidad de HispaGNU ha comenzado un desarrollo del juego de Pokemon para la cónsola, llamado Poketty y liberado bajo la licencia GPLv3.

▕▔╲┊┊┊┊┊┊┊╱▔▏┊┊┊
┊╲╱╲┊┊┊┊┊╱╲╱┊┊┊┊
┊┊╲┈╲▂▂▂╱┈╱┊┊┊╱╲
┊┊╱┈┈┈┈┈┈┈╲┊┊╱┈┈╲
┊┊▏▕▆▍▂▕▆▍▕┊╱┈┈┈╱
┊▕╭╮┈┳┻┳┈╭╮▏╲┈┈╱
┊┊╲╯┈╰━╯┈╰╱┊╱┈┈╲
┊┊╱┈┈┈┈┈┈┈╲┊╲┈┈┈╲
┊▕╲┈▕┈┈┈▏┈╱▏┊╱┈╱
┊▕┈▔▔┈┈┈▔▔┈▏╱┈╱┊
┊▕┈┈┈┈┈┈┈┈▕▔┈╱┊┊
┈┈╲┈┈┈┈┈┈┈╱▔▔┈┈┈
┈┈▕▂╱▔▔▔╲▂▏┈┈┈┈┈

Sin duda, una gran herramienta para curiosear, practicar, de aprendizaje y/o enseñanza, ya que el código es 100% libre y está a disposición en la página  http://hispagnu.no-ip.org/poketty

¿Qué te pasó Ubuntu? #Reflexión

robot-ubuntuNota previa: Las palabras marcadas con un asterisco (*), están en un mini glosario de términos al final del artículo.

Siempre que se habla de Software Libre uno tiene dos opciones, o documentarte muy bien de lo que vas a hablar (como favor a la humanidad siempre que intentes hablar de algo deberías saber muy bien de lo que estás hablando) o bien advertir del carácter subjetivo de lo que vas a hablar, así poder expresar opiniones, pensamientos o sentimientos acerca de ese algo.

La comunidad de software libre tiende a ser muy crítica al momento de leer artículos y comentarios, ya que, detrás de lo meramente tecnológico existen dimensiones ideológicas y filosóficas, por eso, lo que diré a continuación se trata de una opinión de un “usuario no-avanzado” y muy personal de la distribución* Ubuntu.

He sido usuario Ubuntu por muchos años por su rendimiento, facilidad de uso y su compatibilidad con el Hardware, cuando comencé con esta distro* esos aspectos eran insuperables por ningún sistema de aquel momento (hace 10 años aproximadamente). Recuerdo especialmente los efectos que se lograban con algo llamado Compiz Fusion*, algo nunca visto hasta el momento, también los inmensos niveles de personalización que se podían lograr, pero cuando llegó Unity* la fatalidad para mi fue máxima, me pareció pesado, poco amigable y poco configurable, así que me pasé a Ubuntu Netbook Remix con LXDE, que mantenía la eficiencia que me gustaba, pero al final me cansé un poco tanto de XFCE* como de LXDE*, livianos si, pero sin ningún sabor como lo tenía el antiguo Gnome*, además nunca fui amigo de KDE*.

Recuerdo que era muy emocionante esperar la nueva versión de Ubuntu, ya que, de una versión a otra las mejoras eran notables y sorprendentes, pero desde la llegada de Unity por defecto en 2011, unido con la muerte de Gnome versión 2, hasta la última versión de 2014, a mi personalmente me ha parecido poca la mejora en la experiencia de usuario que ha tenido Ubuntu, mientras que la experiencia en máquinas de gama baja es cada vez peor. Por eso, desde aquellos años mozos hasta hoy sólo he usado Ubuntu con propósitos de desarrollo de software.

Desde hace mucho tiempo el objetivo principal de Ubuntu es la convergencia, es decir, el uso del mismo sistema operativo independientemente del dispositivo o tamaño de pantalla,  la introducción de Unity es un factor fundamental para lograr ese objetivo. Sin embargo esta podría ser una apuesta arriesgada. Dicen por allí que, el que mucho abarca poco aprieta, como muestra tenemos Windows 8, un sistema que son los pininos del mismo propósito en la gente de Microsoft: La convergencia. Pero resulta que para los usuarios de computadoras personales (de escritorio o laptops conencionales), Windows 8 no es un sistema amigable, de hecho, no conozco a nadie que prefiera Windows 8 a Windows 7 y es precisamente porque los factores de una buena usabilidad en tablets y smartphones son muy distintos a los de computadoras de escritorio y portátiles e incluso a las netbooks*.

Considero que la convergencia siempre implica un sacrificio. Para desarrollar para todos debes tienes dos opciones:

  • Hacer tu sistema igual para todos los dispositivos y decidir para cual dispositivo eres óptimo. Caso particular que Win8 sea un fastidio en computadoras personales, dado que los gestos* usados en dispositivos táctiles no siempre pueden ser imitados o no son “cómodos” usando un mouse (como arrastrar desde la derecha de la pantalla para que aparezca un menú). En este particular tengo una anécdota: un día instalé un juego en el que decía: “Toca la pantalla para continuar”. ¿Se entiende el chiste? 😀 La pantalla de una PC no es táctil  😀 Incluso haciendo clic o tocando alguna tecla no funcionaba, así que nunca pude jugar, sencillamente el juego era completamente incompatible. Al menos en otros sistemas las apps* que no son compatibles simplemente no se pueden instalar (recordar que muchas representan un gasto de dinero).
  • La otra opción es que el sistema se adapte al dispositivo y su modo de uso, pero la desventaja es que el sistema será más pesado y probablemente 50% del código nos será completamente inútil. En ese caso sería apropiado generar versiones para cada tipo de dispositivo (cero convergencia).

>#FLISoLve CCS 2010: FLISoL en FotosPersonalmente como usuario de escritorio y de computadoras de bajo rendimiento, cada día Ubuntu se me hace una opción menos viable, para mi es lamentable por la cantidad de años de uso y por el cariño que le tengo a la comunidad y al propio sistema, pero lamentablemente ya no soy parte del público objetivo de Ubuntu. Tocará buscar, e instalar algún otro sistema que sea funcional y muy fácil de usar (lo que más me gustaba de Ubuntu porque soy muy “usuario final”).

Mini-glosario de términos

Distribución / Distro: Adaptaciones del sistema operativo GNU/Linux para crear nuevos sistemas operativos.

Gnome, KDE, XFCE, LXDE, Unity: Son sistemas que permiten cambiar completamente la apariencia de una distribución GNU/Linux. Les llaman “Entornos de Escritorio”. Algunos programas están optimizados para trabajar en alguno(s) de esos entornos.

Compiz Fusion: Era (no se si aun existe) un sistema administrador de efectos gráficos, desde los más rimbombantes y divertidos, hasta los más sutiles.

Netbook: Laptops muy pequeñas, también llamadas minilaptops.

Gestos: Es el modo que interactuas con una pantalla táctil, ejemplo: arrastrar, pellizcar, girar la pantalla, sacudir el dispositivo, tocar con uno o más dedos, etc.

Apps: Aplicaciones que puedes descargar y usar en tu sistema operativo.

Quitar elementos de una imagen con GIMP

Quitar elementos de una foto o una imagen en general, es realmente muy fácil con GIMP, incluso para muy novatos. Este truco es usado principalmente para eliminar detalles en nuestras fotografías que no nos gustan (o quitar de la fotografía a tu ex).

Sin embargo, hoy quise hacerlo para quitar elementos de un pantallazo, ya que, fue mi primera necesidad para darle uso.

Necesitamos:
GIMP: Programa de edición de imágenes que viene por defecto en Ubuntu.
Resynthesizer: Un plugin para GIMP que nos hará la vida muy fácil. Su descarga e instalación es muy sencilla, sólo tenemos que colocar el siguiente comando en consola:

apt-get install -y gimp-resynthesizer

Ya tenemos todo listo. Haga clic en la(s) imagen(es) para agrandarla(s), estas se abrirán en una nueva pestaña/ventana.  Esta es mi imagen original:

capturaoriginal

Y deseamos quitar algunos elementos de esta imagen para una mejor presentación, ya que, el pantallazo es para colocarlo en un trabajo.

Paso 1: Abrir la imagen con GIMP.

pantallazo-gimp-1

Los elementos que deseamos quitar son los resaltados en un circulo rojo

pantallazo-gimp-1-edited

Paso 2: Seleccionar con alguna herramienta de selección el área que deseamos quitar.

Nosotros mostraremos la remoción de los íconos, el otro elemento se quita siguiendo los mismos pasos.

pantallazo-gimp-2-edited

Paso 3: Ir al menú >> Filtros >> Realzar >> Smart Remove Selection…

pantallazo-gimp-3-edited

Paso 4: Aceptar, verificar, guardar y salir.

pantallazo-script-fusmartremoveselection

Y el resultado final:

capturafinal

Fuentes: Web oficial, Ubuntulife.

Como encontrar un comando en el historial Linux

tuxterminal_iconPara encontrar un comando que hemos utilizado previamente sin tener que usar la flecha hacia arriba:

history | grep PALABRA

Donde PALABRA es alguna expresión contenida en el comando.

Activar Mod Rewrite de Apache en Debian

Mod rewrite o Rewrite engine, es un módulo de Apache para la reestructuración de URL, de tal modo que es un módulo imprescindible cuando se utilizan sistemas que tienen URL amigables, como WordPress o CakePHP.

Para activarlo en sistemas Debian like, como Ubuntu y hasta Raspbian. Se usa el siguiente comando:

a2enmod rewrite

Por último reiniciar Apache.

Servidor FTP en Debian con vsftpd

Pasos para instalar un servidor FTP en servidores Debian-like.

Paso 1:

sudo apt-get install vsftpd

Paso 2:

Editar el archivo /etc/vsftpd.conf

En mi caso me interesa deshabilitar el acceso anónimo, habilitar el acceso a los usuarios locales y permitirles hacer modificaciones.

anonymous_enable=NO

local_enable=YES

write_enable=YES

Pase 3: Reiniciar

invoke-rc.d vsftpd restart

Funciona en Raspbian para Raspberry PI y Ubuntu.

😀

Guia Definitiva no-ip client

En la presente guía se muestra los comandos necesarios para configurar el cliente no-ip para GNU/Linux y que pueda arrancar al inicio.

mkdir $HOME/noip
cd $HOME/noip
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar vzxf noip-duc-linux.tar.gz
cd noip-2.1.9-1
sudo apt-get install build-essential
sudo make
sudo make install

Advertencia… Es posible que al hacer make o make install, el sistema arroje que faltan otras cosas por instalar, lee bien los mensajes de error para instalar lo que el sistema te pida.

# Correr el cliente
sudo /usr/local/bin/noip2

Ahora vamos a crear el script siguiente archivo

sudo nano /etc/init.d/noip

El contenido del archivo es el siquiente

#! /bin/sh
# /etc/init.d/noip

### BEGIN INIT INFO
# Provides: noip
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Simple script to start a program at boot
# Description: A simple script from www.stuffaboutcode.com which will start / stop a program a boot / shutdown.
### END INIT INFO

# Carry out specific functions when asked to by the system
case “$1” in
start)
echo “Starting noip”
# run application you want to start
/usr/local/bin/noip2
;;
stop)
echo “Stopping noip”
# kill application you want to stop
killall noip2
;;
*)
echo “Usage: /etc/init.d/noip {start|stop}”
exit 1
;;
esac
exit 0

Algunos comandos extra:

# Establecer permisos
sudo chmod 755 /etc/init.d/noip

# Arrancar el cliente
sudo /etc/init.d/noip start

# Detener el cliente
sudo /etc/init.d/noip stop

# Registrar el script para el arranque.
sudo update-rc.d noip defaults

# Eliminarlo
sudo update-rc.d -f noip remove

Fuente:
http://www.stuffaboutcode.com/2012/06/raspberry-pi-access-from-internet-using.html
http://www.stuffaboutcode.com/2012/06/raspberry-pi-run-program-at-start-up.html

Apuntar una web a una dirección ip específica

Suponiendo que somos dueños de algún dominio, digamos laut.com.ve… Además imaginemos que tenemos un servidor de pruebas y un servidor distinto para el ambiente de producción.

Supongamos además que en la máquina donde estamos desarrollando queremos que al yo colocar en un navegador o hacer un SSH a la dirección laut.com.ve mi máquina de desarrollo apunte al servidor de prueba y no al servidor de producción.

Para hacer esto se coloca en el archivo /etc/hosts en Linux o C:\Windows\System32\Drivers\etc\hosts en Windows la correspondencia deseada. Por ejemplo

# Para que apunte a la máquina local:
127.0.0.1    laut.com.ve

# Para que apunte a una IP específica:
92.3.54.65    laut.com.ve

 

Configurar dominios en Apache2

Supongamos que tenemos registrado el dominio guzman6001.com.ve y laut.com.ve y queremos tener en nuestro servidor ambas páginas (en carpetas diferentes evidentemente), además que nuestro servidor al recibir la petición sepa exactamente que página debe mostrar. Así, por ejemplo, queremos que:

guzman6001.com.ve apunte a la carpeta dentro del servidor: /home/usuario/sitios/guzman6001
laut.com.ve apunte a la carpeta dentro del servidor: /home/usuario/sitios/laut

NOTA: Para esto es muy importante que nuestro servidor DNS esté apuntando ambas direcciones al servidor. En algunas de las fuentes se indica como hacerlo con un servidor propio como bind, también es factible hacerlo con un servicio en la red como CDMON.

Para configurar Apache vamos a la carpeta /etc/apache2/sites-enabled
abrimos el archivo 000-default y lo guardamos con un nombre que nos sea más útil para saber su contenido, yo recomiendo guardarlo con el nombre del dominio que vamos a configurar por ejemplo guzman6001-domain y hacemos los siguientes cambios:

<VirtualHost guzman6001.com.ve:80>
ServerAdmin webmaster@localhost
ServerAlias guzman6001.com.ve
DocumentRoot /home/usuario/sitios/guzman6001

El resto del archivo lo puedes dejar igual o configurarlo a tu gusto

Puedes configurar tantos subdominios como quieras duplicando el bloque VirtualHost y haciendo las mismas modificaciones.

<VirtualHost mail.guzman6001.com.ve:80>
ServerAdmin webmaster@localhost
ServerAlias mail.guzman6001.com.ve
DocumentRoot /home/usuario/sitios/guzman6001mail

Aunque puedes crear tantas direcciones de dominios y subdominios como quieras, siguiendo el mismo formato, es recomendable hacerlo en archivos distintos para mantener un orden, hay ocasiones en que se debe regresar a estos archivos para realizar algún cambio.

Reiniciar apache y listo.

Fuente: http://guzman6001.blogspot.com/2010/02/crear-subdominios-en-apache2.html

Instalar phpmyadmin en ubuntu

Comandos para instalar phpmyadmin en distribuciones Debian-like.

sudo apt-get install phpmyadmin
sudo ln -s /usr/share/phpmyadmin /var/www/

(reiniciar apache de ser necesario)