Documentos de Académico
Documentos de Profesional
Documentos de Cultura
HD Magazine Nro 10
HD Magazine Nro 10
S U P L E M E N T O
H A C K E R S & D E V E L O P E R S
E S P E C I A L
M A G A Z I N E
RESPONSABLE EDITORIAL
Eugenia Bahit
HACKER TEAM:
Eugenia Bahit
Mara Jos Montes Daz
Milagros Infante Montero
CHANGE
S U P L E M E N T O
H A C K E R S & D E V E L O P E R S
E S P E C I A L
M A G A Z I N E
PAPERS
GNU/LINUX:
NOTAS DE INSTALACIN AVANZADA DE SLACKWARE
por MARA JOS MONTES DA Z (Tc. En Informtica de Gestin) 3
Android:
MEJORES PRCTICAS UX & UI PARA APLICACIONES Android
por MIL AGROS INFANTE MONTERO (Est. de Ingeniera de Sistemas) 6
SHELL SCRIPTING:
SNIPPETS EN BASH PARA AGILIZACIN DE TAREAS
por EUGENIA BAHIT (GLAMP Hacker Programadora eXtrema) 9
3
HACKERS & DEVELOPERS MAGAZINE CHANGE - SUPLEMENTO ESPECIAL - WWW.HDMAGAZINE.ORG CREATIVE COMMONS ATRIBUCIN NO COMERCIAL COMPARTIR IGUAL 3.0 UNPORTED
2013 EUGENIA BAHIT, MARA JOS MONTES DAZ & MILAGROS INFANTE MONTERO
Instalando Slackware
Slackware es una distribucin basada en la filosofa
KISS y adems, es la distribucin GNU/Linux ms
antigua en vigencia. Veamos cmo es su instalacin.
Webs:
Blog: http://archninfa.blogspot.com.es/
Redes sociales:
Twitter: @MMontesDiaz
E l creador de esta distribucin fue Patrick Volkerding1. Su intencin es producir la distribucin GNU/Linux con el objetivo
principal de la estabilidad y simplicidad de uso. Actualmente, es la distribucin ms antigua en vigencia, naci en abril de 1993,
y es la ms UNIX-like. El equipo de desarrollo de Slackware considera la simplicidad y la estabilidad de suma importancia, y
como resultado, esta distribucin se ha convertido en una de las ms populares disponibles, estable y amigable.
Esta distribucin cuenta con el ncleo Linux 3.2.29 y Glibc 2.15. Podemos descargar la imagen ISO a travs de BitTorrent2 o mirrors3.
Archlinux est inspirada, entre otras, en esta distribucin.
Comenzamos la instalacin
Nada ms arrancar, nos aparecer una pantalla en la cual poder ingresar algn parmetro extra necesario para arrancar la
instalacin. No es necesario ingresar nada y puede continuarse con la instalacin pulsando Enter.
Debemos seleccionar el ncleo con el que arrancaremos. La opcin seleccionada por defecto debera ir bien.
Una vez arrancado el sistema, nos preguntar qu mapa de teclado queremos. Por defecto est en ingls, as que, pulsamos 1 y
buscamos qwerty/es.map (o el que aplique en cada caso).
Una vez seleccionado el mapa de caracteres, nos aparecer otra ventana en la que comprobar el teclado. Una vez realizada la prueba,
bastar introducir 1 en una nueva lnea y pulsar Enter.
Una vez hecho esto, ya podremos iniciar sesin. El usuario es root y no tiene contrasea. Lo primero que debemos hacer es
particionar el disco. Para ello disponemos de cfdisk y fdisk para sistemas con MBR y, cgdisk y gdisk para sistemas GPT. Para
una instalacin completa, con una particin raz de 15 GB sera suficiente. Para la particin swap, si nuestro equipo tiene menos de 1
GB, podramos darle ese tamao; si es de 2 GB o ms, incluso podramos omitirla. De todas formas, siendo sta el 70% de la fsica,
1 http://wikipedia.org/wiki/Patrick_Volkerding
2 http://slackware.com/getslack/torrents.php
3 http://mirrors.slackware.com/
4
HACKERS & DEVELOPERS MAGAZINE CHANGE - SUPLEMENTO ESPECIAL - WWW.HDMAGAZINE.ORG CREATIVE COMMONS ATRIBUCIN NO COMERCIAL COMPARTIR IGUAL 3.0 UNPORTED
2013 EUGENIA BAHIT, MARA JOS MONTES DAZ & MILAGROS INFANTE MONTERO
SETUP
Tras crear las particiones que alojarn Slackware, ejecutamos setup en la lnea de comandos para empezar a configurar el sistema. Es
un sistema de mens que nos permitir la instalacin de paquetes. Dado que ya hemos seleccionado el teclado, pasaremos a la
siguiente opcin.
ADDSWAP
Es donde se establecen las particiones Swap, para ello escogemos esta opcin y pulsamos Enter. Aparecer la particin o particiones
que tiene el sistema de archivos Swap, elegimos y pulsamos ok. Antes de formatear, el instalador preguntar si queremos que busque
las partes daadas del disco, si no tenemos sospechas de tener daos, elegimos no. Cuando termine de formatearse el disco,
pulsamos la tecla Enter.
TARGET
En est seccin es donde especificaremos el resto de particiones y estableceremos los puntos de montaje del sistema de archivos.
Tendremos la posibilidad de formatear cada una de las particiones. Para la particin que alojar el sistema, es decir, el punto de
montaje /, formatearemos la particin. Disponemos de varios sistemas de archivos para formatear. Una buena opcin es EXT4.
SOURCE
En esta seccin elegiremos el medio fuente desde el que instalar. En este caso, optaremos por la primera opcin. Luego, bastar
pulsar Enter y OK en la opcin auto.
SELEC T
Ahora toca seleccionar los paquetes que queremos instalar. La serie A es necesaria para obtener un sistema funcional bsico. Las
dems opciones son opcionales. Para elegir, basta pulsar Espacio sobre la opcin. Una vez terminada la seleccin, pulsamos OK.
INSTALL
En este apartado podemos escoger entre siete mtodos de instalacin diferentes. La opcin ms rpida y recomendada es full. Por
supuesto, es la opcin que ms espacio consume.
Una vez acabada la instalacin, tendremos la opcin de crear un USB autorrancable.
CONFIGURE
LILO (Linux Loader).- Es un gestor de arranque que permite elegir entre sistemas operativos Linux y otras plataformas. Para
hacer una instalacin automtica, escogemos Simple. Lo siguiente es elegir la resolucin de la pantalla, elegimos una opcin (que
puede ser Standard) y pulsamos Enter.
Si no queremos agregar ningn parmetro al kernel, dejamos el siguiente cuadro vaco y pulsamos Enter.
Lo siguiente es seleccionar dnde queremos instalar Lilo. Elegimos MBR, pulsamos OK.
Toca elegir los drivers para el ratn, seleccionamos imps2. A continuacin se nos preguntar si queremos que el ratn se pueda usar
5
HACKERS & DEVELOPERS MAGAZINE CHANGE - SUPLEMENTO ESPECIAL - WWW.HDMAGAZINE.ORG CREATIVE COMMONS ATRIBUCIN NO COMERCIAL COMPARTIR IGUAL 3.0 UNPORTED
2013 EUGENIA BAHIT, MARA JOS MONTES DAZ & MILAGROS INFANTE MONTERO
mientras reinicia, elegimos yes. Se nos pregunta si queremos configurar la red, elegimos yes.
Ahora ecribimos el HOSTNAME y pulsamos Enter (en mi caso, por ejemplo, ninfa-Slack).
Si queremos unir nuestro equipo a un dominio, escribimos el nombre, sino escribimos (.) y pulsamos Enter
Una vez hecho esto, elegimos cmo queremos nuestra IP, dinmica o esttica. En este caso elegimos DHCP. Luego nos pedir el
hostname DHCP, si no tenemos ninguno, pulsamos Enter:
Aparece un men con los servicios que pueden ser iniciados durante el arranque. De entrada, yo recomendara utilizar estos: rc.cups,
rc.fuse, rc.inetd, rc.messagebus, rc.samba, rc.ntpd, rc.syslog, rc.sshd, al final pulsamos Enter.
Nos pregunta si queremos personalizar fuentes adicionales, en mi caso No y pulsamos Enter. Luego, para seleccionar la zona horaria,
escogemos la opcin No y especificamos la ciudad.
Qu entorno grfico queremos? Esa es la seleccin que hay que hacer en este punto. Una buena opcin es KDE, as que
correspondera elegir xinitrc.kde
Ya estamos casi terminando, pero nos falta un punto muy importante: la contrasea del usuario root, por tanto, cuando nos pregunte
si queremos aadir una contrasea al root, escogeremos yes. Ya ha terminado la instalacin, salimos de la utilidad y reiniciamos el
equipo con reboot.
# nano /etc/inittab
Guardamos con Ctrl+O , Enter, y salimos con Ctrl + X, Enter. Reiniciamos con: reboot
Referencias:
http://www.slackware.com/
http://docs.slackware.com/
6
HACKERS & DEVELOPERS MAGAZINE CHANGE - SUPLEMENTO ESPECIAL - WWW.HDMAGAZINE.ORG CREATIVE COMMONS ATRIBUCIN NO COMERCIAL COMPARTIR IGUAL 3.0 UNPORTED
2013 EUGENIA BAHIT, MARA JOS MONTES DAZ & MILAGROS INFANTE MONTERO
Redes sociales:
Twitter / Identi.ca: @milale
C ada vez que desarrollamos aplicaciones, podemos no darnos cuenta de un detalle que puede marcar la diferencia, a si durante
el proceso de desarrollo hemos utilizado buenas prcticas tanto para obtener la mejor experiencia de usuario como para la
mejor interfaz de usuario4.
Ya en la edicin 8 de Hackers & Developers Magazine 5, Fabio Durn nos hablaba de cmo la usabilidad se convierte en el primer paso
al xito y dndonos algunas recomendaciones para mejorar nuestro software. A continuacin veremos algunas recomendaciones que
nos darn la posibilidad de asegurar que la aplicacin que desarrollemos satisfaga las expectativas de un usuario de Android.
Diseo de la navegacin
Cuando nos encontramos desarrollando y diseando nuestras aplicaciones resultar fundamental determinar qu es lo que los
usuarios vern y harn con la app que les entreguemos como resultado final, luego deberemos prestar cuidado en el diseo de las
interacciones para lograr la mejor experiencia de navegacin del usuario.
4 http://web.braintive.com/10-reglas-heuristicas-de-usabilidad-de-jakob-nielsen/
5 http://hdmagazine.org - Horse, edicin 8.
7
HACKERS & DEVELOPERS MAGAZINE CHANGE - SUPLEMENTO ESPECIAL - WWW.HDMAGAZINE.ORG CREATIVE COMMONS ATRIBUCIN NO COMERCIAL COMPARTIR IGUAL 3.0 UNPORTED
2013 EUGENIA BAHIT, MARA JOS MONTES DAZ & MILAGROS INFANTE MONTERO
una lista en la que se indique como los usuarios van a interactuar con todo el contenido de la aplicacin: la pantalla de
inicio, la lista de categorias y la lista de las magenes como de cada uno de los elementos. Con todo ello, debemos ver a las
relaciones entre pantallas pero grficamente, usando algn mapa con flechas que permita ver que har la aplicacin y a
donde se dirige de pantalla en pantalla.
Si queremos permitir que los usuarios suban nuevas historias o fotos, podemor aadir pantallas adicionales al
diagrama.
A la interfaz de usuario se pueden aadir botones que lleven a otras secciones, listas verticales que representes colecciones e
informacin detallada (poder maximizar fotografas, detalle de las vistas, etc).
Pantallas tctiles:
Las aplicaciones deben adaptarse a diferentes tamaos de pantalla debido a los diferentes dispositivos que tienen este
sistema operativo, por ejemplo dispositivos desde 3 hasta las tablets que tienen 10 e incluso a televisores de 42.
Para cumplir con los estndares al disear para televisores es bueno revisar el Google TV:
https://developers.google.com/tv/
Las pantallas que poseen 3 o 4 pulgadas generalmente solo tienen espacio para poder presentar el contenido de manera
vertical, siempre cumpliendo la jerarqua de la informacin: que va de categoras a lista de objetos a detalles de objeto. Al
contrario de las pantallas de tablets y televisores que al contar con mucho ms espacio muestran sus paneles ordenados de
izquierda a derecha, se debe mostrar muchos paneles ya que se debe evitar los espacios en blanco, existen muchas
estrategias usadas para el diseo en de paneles mltiples 6.
La navegacin temporal se realiza mediante el botn Atrs, esto se encuentra dentro de las convenciones de Android, ya
que todo usuario siempre buscar ello para volver a la vista anterior donde se encontraba.
La navegacin ancestral antes del Android 3.0 era dado por Inicio, llevando de esta manera al usuario a la pgina
principal de la jerarqua. Pero Android 3.0 introdujo a Arriba, similar a un Atrs que lleva al usuario a la vista anterior
donde se encontraba.
Wireframing:
Es el paso en el que debemos disear las pantallas, pensar y ser creativos al momento de hacer que todos los elementos de la
interfaz de usuario permitan navegar por toda la aplicacin de la mejor manera.
La mejor manera de empezar, es dibujar a mano en una hoja de papel y de esta manera uno se podr dar cuenta de los
problemas para ver que patrones colocar o quitar segn la necesidad
6 http://developer.Android.com/design/patterns/multi-pane-layouts.html
8
HACKERS & DEVELOPERS MAGAZINE CHANGE - SUPLEMENTO ESPECIAL - WWW.HDMAGAZINE.ORG CREATIVE COMMONS ATRIBUCIN NO COMERCIAL COMPARTIR IGUAL 3.0 UNPORTED
2013 EUGENIA BAHIT, MARA JOS MONTES DAZ & MILAGROS INFANTE MONTERO
Despus de ello, se debe seleccionar una herramienta de su preferencia para hacer wireframes y de esta manera servir
como punto de partida para el diseo visual de la aplicacin. Finalmente, despus de haber diseado las pantallas para toda
la interaccin dentro de la aplicacin, ya se puede prestar atencin a mejorar los pequeos detalles individualmente por
cada pantalla.
Notificaciones al usuario
Algo que se encontrar fuera de la interfaz de usuario permanente son las notificaciones que se realizan al usuario cuando un evento
nuevo a ocurrido y requiera atencin, estas podran llevar al usuario a otro servicio o permitirle elegir si desean o no responder.
Para implementarlas, Android cuenta con una clase en la librera de soporte, NotificationCompat.Builder para as poder brindar
soporte a las notificaciones. Con este objeto se puede especificar el contenido de la interfaz de usuario y las acciones, el objeto
Builder permitir incluir un cono pequeo, un ttulo y texto detallado.
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification_icon)
.setContentFile(Notificacin importante)
.setContentText(Esta notificacin es de prueba);
Pueden aadirse acciones a las notificaciones como tambin indicar que comportamiento queremos que tenga.
Funcionalidad de bsqueda
Las caractersticas de bsqueda brindan a las aplicaciones una manera fcil de brindar una experiencia de bsqueda consistente al
usuario. Para esto Android nos permite usar el widget SearchView7 como un elemento en la barra que permitir la bsqueda.
Uno de los errores ms grandes que puede tener una aplicacin es que
su buscador sea malo
Accesibilidad
Los usuarios de Android tienen distintas habilidades que requieren que interactuen con sus dispositivos de diferentes maneras,
incluyendo a personas que puedan tener limitaciones visuales, fsicas o relacionadas a la edad que quizs no puedan usar una
pantalla tctil del todo o incluso que no puedan escuchar alertas o informacin audible. Android provee caractersticas de
accesibilidad y servicios para ayudar a los usuarios a navegar por sus dispositivos de manera ms sencilla, por ejemplo navegacin de
texto a voz, navegacin gestual, navegacin direccional con el pad, entre muchos ms; definitivamente es una funcin que los
desarrolladores deben aprovechar al mximo.
Android nos da la oportunidad de entrar a su maravilloso mundo y disfrutar de un happy hacking y que ms si a ello le aadimos
poder lograrlo usando las mejores prcticas para que nuestras aplicaciones cuenten con una genial interfaz y la mejor experiencia de
usuario.
7 http://developer.Android.com/reference/Android/widget/SearchView.html
9
HACKERS & DEVELOPERS MAGAZINE CHANGE - SUPLEMENTO ESPECIAL - WWW.HDMAGAZINE.ORG CREATIVE COMMONS ATRIBUCIN NO COMERCIAL COMPARTIR IGUAL 3.0 UNPORTED
2013 EUGENIA BAHIT, MARA JOS MONTES DAZ & MILAGROS INFANTE MONTERO
Redes sociales:
Twitter / Identi.ca: @eugeniabahit
B ash es uno de los lenguajes para Shell Scripting ms comunes y por lo tanto, ms utilizados no solo por programadores, sino
por sobretodo, por administradores de sistemas. Frecuentemente, los scripts de Shell suelen utilizarse para agilizar y por qu
no, automatizar, tareas de administracin del Sistema Operativo. Muchas veces, estos scripts son utilizados por el mismo
administrador del sistema que los ha programado y otras tantas, los mismos estn destinados a los usuarios del sistema.
Esta breve recopilacin de Snippets, est destinada a cualquier tipo de scripts, ya sea para uso propio o de terceros. Vale aclarar que
cada Snippet se encuentra liberado bajo licencia GNU GPL 3.0.
script_a_ejecutar="./miscript.sh"
cantidad_usuarios=`who | wc -l`
script_a_ejecutar="./miscript.sh"
while true; do
exec "$script_a_ejecutar"
# ...
app_name="myapp"
directorio_app="$HOME/.$app_name"
archivo_configuracion="$directorio_app/.config"
# Snippet 4.1:
# Crea un directorio de aplicacin con el archivo de configuracin si no existe
if [ ! -d "$myapp" ]; then
mkdir $directorio_app
touch $archivo_configuracion
fi
# Snippet 4.2:
# Solicita preferencias al usuario (a modo de ejemplo)
function pedir_preferencias() {
echo -n "Color favorito? (r: rojo / v: verde) "
read color_favorito
pedir_preferencias
fi
}
# Snippet 4.3:
# Guarda las preferencias del usuario
function guardar_preferencias() {
pedir_preferencias
echo "COLOR_FAVORITO = $color_favorito" > $archivo_configuracion
echo "OTRA_VARIABLE = otro valor" >> $archivo_configuracion
}
# Snippet 4.4:
# Recupera las preferencias del usuario
function recuperar_preferencias() {
cat $archivo_configuracion | while read varname asignation varvalue; do
case "$varname" in
COLOR_FAVORITO) echo "El color favorito es $varvalue";;
OTRA_VARIABLE) echo "El valor de otra variable es $varvalue";;
esac
done
}
case $OPCION in
a) echo "se eligi la opcin A";;
b) echo "se eligi la opcin B";;
c) echo "se eligi la opcin C";;
*) echo "OPCIN INCORRECTA";;
esac
function foo() {
# ...
variable="Valor de retorno para el argumento $1"
# en bash, el valor de retorno se imprime
echo $variable
}
function bar() {
12
HACKERS & DEVELOPERS MAGAZINE CHANGE - SUPLEMENTO ESPECIAL - WWW.HDMAGAZINE.ORG CREATIVE COMMONS ATRIBUCIN NO COMERCIAL COMPARTIR IGUAL 3.0 UNPORTED
2013 EUGENIA BAHIT, MARA JOS MONTES DAZ & MILAGROS INFANTE MONTERO
argumento="Lorem Ipsum"
nueva_variable=$(foo $argumento)
}
if [ $# -ne 1 ] ; then
echo "Uso ./script.sh <argumento1> <argumento2>..."
exit 0
fi
function read_file() {
archivo=$1
contenido_con_numeros_de_linea=`awk '{print NR, " ", $0}' $archivo`
}