tuxinfo 43
33
5
8
14
15
18
19
23
25
28
30
35
36
38
Revista Tuxinfo
Esta revista se publica bajo una licencia de
Creative Commons CC BYSA 3.0 Puedes
copiar, distribuir, mostrar públicamente su
contenido y hacer obras derivadas, siempre y
cuando a) reconozcas los créditos de la obra
y b) la compartas bajo la misma licencia.
Microsoft, Apple, Sun, Oracle, así como otras marcas
comerciales mencionadas en esta revista son propiedad
de sus respectivas empresas.
Dirección, edición y coordinación
Ariel M. Corgatelli
Marketing, edición y ventas
ClaudiaA. Juri
Corrección
Oscar Reckziegel
Luis Luque
Diseño de tapa
Marcos "Anubis4D" Caballero
Diseño
Jorge Cacho Hernández
web:
facebook:
email:
twitter:
http://www.tuxinfo.com.ar
http://www.facebook.com/tuxinfo
[email protected]
@tuxinfo
43
Editorial
Proyectos
Hobo: Aplicaciones web en cuestión de minutos
porIgnacioHuertaeIbónCastilla
Proyectos
OpenStreetMap: Creando el mapa libre del mundo
porJaimeCrespo
Gráficos
Inkscape
porMarcos"Anibus4d"Caballero
Programación
Funciones en PostgreSQL
porSalomónRincón
Juegos
0 A.D: Un gran juego de estrategia
porJuanManuelDansa
A fondo
Oracle (un)Breakable Linux 6.1
porHernán"HeCSa"Saltiel
Juegos
Worms para Android
porRafaelMurillo
A fondo
Guía de GNU/Linux (III)
porRafaelMurillo
Opinión
Digital a Físico
porClaudiodeBrasi
Especial TuxMóvil
Especial Smartphones
#RSAdict@s
Conociendo las redes sociales
porLindaMartínez
Proyectos
Proyecto PingüinoVe
porNaudyVillarroelUrquiola
Cartas de los lectores
Editorial
Ariel M. Corgatelli
y
dominio
con Windows, Google
Parece mentira que ya lleguemos al último
número del año de nuestra querida Tuxinfo.
Muchas cosas han pasado este año,
la
la
explosión de las tabletas con Android,
masificación
completo
del
Androide en el mercado de móviles de
media y alta gama. Las declaraciones
controvertidas de Richard Stallman, la unión
de Nokia
con
Motorola, la decisión de Nokia y de Intel por
dejar MeeGo, la apuesta fuerte de Google
sobre Android 4; la lucha entre Samsung y
Apple; y tantos otros temas que seguro me
estaré olvidando. Pero lo más importante es
sin duda el gran avance del software libre de
la mano de proyectos
como Android,
Ubuntu, LibreOffice y Mozilla, quienes
apuestan fuertemente a la gran masa de
usuarios de dispositivos a lo largo de todo el
mundo.
Con respecto a Tuxinfo, creo que fue un
excelente año, tuvimos muy buenos logros,
agregamos secciones,
interactuamos más
con ustedes, los lectores, gracias al mapa
de lectores [1]; nuevos integrantes en
nuestro staff (les recomiendo no sólo leer
sus nombres, sino seguir a todos ellos en
twitter) y el futuro de la revista va ser muy
interesante. Estamos pensando en portar
nuestra revista a otros formatos, respetando
el actual PDF,
trataremos de reducir el
tamaño del archivo; integrar mucho más el
contenido; complementar
la revista con
material extra; y alguna que otra sorpresa
que se irá dando en el 2012.
Como siempre, cada número de la revista
viene plagada de información. El presente
tiene una nueva sección social, integramos
varias notas para la diversión en Linux y
Android. Además sumamos el suplemento
número 6 de Tuxmóvil, con los más
recientes lanzamientos de los smartphones
más potentes de Samsung, Sony Ericsson,
Nokia y Motorola enArgentina.
Y para no aburrirlos más con una extensa
“editorial”,
los invito directamente a leer
nuestra revista, y a formar parte de nuestro
mapa de lectores.
Obviamente nos gustaría conocer la opinión
de nuestros lectores, para ello los invitamos
a que envíen un correo electrónico a nuestra
editorial
[email protected]
Y
su
preferencia por hacer clic en la descarga,
como así también los invitamos a leer toda
la edición.
[1] http://www.tuxinfo.com.ar/tuxinfo/?p=571
agradecemos
siempre
como
Únete a nuestros podcast
Únete a nuestros podcast
Radio Geek
Podcast diario de actualidad tecnológica
De lunes a jueves de 23:15 a 23:45 (horaArgentina)
http://www.ustream.tv/channel/arielmcorg (en directo)
http://bitacora.blip.tv (en diferido)
Tuxinfo podcast
Podcast semanal sobre software libre
http://blip.tv/tuxinfopodcast
3
www.tuxinfo.com.ar
Aplicaciones web en cuestión de minutos
POR IGNACIO HUERTAe IBÓN CASTILLA
Hobo es una extensión al framework de aplicaciones web
Ruby on Rails. Fue creado en 2006 por Tom Locke,
motivado por la siguiente pregunta: "¿Otra vez tengo que
programar todo eso?".
Se refería a ese punto del desarrollador de aplicaciones
web en el que se vuelve a encontrar con la misma batalla
de nuevo: gestión de usuarios y permisos, ciclos de vida
de los objetos, widgets ajax, tablas filtrables...
Así que Tom creó Hobo, un nuevo framework que funciona
sobre Ruby on Rails, cuya filosofía es llevar aún más allá
la "convención sobre configuración", es decir, menos
código y más legible.
En este artículo vamos a crear una pequeña aplicación
web, utilizando una metodología de desarrollo ágil, basada
en pequeñas iteraciones con el cliente, en este caso un
amigo que necesita gestionar los cursos de su asociación.
Ahora mismo existen dos versiones de Hobo: 1.0 para
Rails 2.x y 1.3 para Rails 3.x. En este artículo
trabajaremos con la versión 1.3.
Recomendamos
Linux,
pero también se puede usar
perfectamente con otros sistemas
operativos.
Para instrucciones detalladas de la
instalación de Ruby, Rails y Hobo
os
las
instrucciones del libro "Rapid Rails
3 with Hobo (BETA 6)", que está
disponible gratuitamente en la
página
Hobo:
http://hobocentral.net/books/.
recomendamos
utilizar
seguir
oficial
de
Iteración 1
Un amigo nos ha pedido que hagamos una aplicación
para gestionar los cursos de su asociación de tiempo libre.
Cada curso tiene que tener título y fecha.
Cada alumno tiene nombre,
apuntado a un curso.
Abrimos una terminal y creamos el proyecto
teléfono e email y está
hobo new cursos
Nos preguntará si queremos ejecutar el asistente (wizard),
así que le indicamos que sí (y). Este pequeño asistente
tiene como objetivo automatizar unas cuantas tareas
habituales. Nos preguntará si queremos personalizar el
framework de test (n), el nombre de la tabla de usuarios
(por defecto), si queremos enviar un email a los nuevos
usuarios (n), ... La opción más importante es si queremos
realizar la migración inicial, digámosle que sí (m).
5
www.tuxinfo.com.ar
Una vez termine el asistente, podemos entrar en la
carpeta del curso y crear el primer modelo:
cd cursos
hobo g resource curso titulo:string fecha:date
Ahora creamos la primera migración (aplicamos los
cambios a la base de datos):
¿Y dónde se guarda toda esta información? Pues, por
omisión en una base de datos sqlite3. Podéis echar un
vistazo en config/database.yml y a la carpeta db.
Paramos el servidor con Control+C, y ahora vamos a
crear otro modelo/tabla relacionado:
los alumnos. En
consola:
hobo g migration
hobo g resource alumno nombre:string
telefono:string email:email_address
Cuando os pregunte decirle 'm' para que haga la
migración directamente. Por último arrancamos el servidor
(¡fijaos que tenemos un log con colores!)
la migración, vamos a relacionar
Antes de hacer
las
tablas. Editamos app/models/curso.rb, añadiendo una
relación 'has_many' después de la lista de campos:
rails server
class Curso < ActiveRecord::Base
hobo_model # Don't put anything above this
fields do
titulo :string
fecha
timestamps
:date
end
has_many :alumnos
Y editamos también app/models/alumno.rb, poniendo una
relación 'belongs_to' después de la lista de campos:
class Alumno < ActiveRecord::Base
hobo_model # Don't put anything above this
fields do
nombre :string
email
timestamps
:email_address
end
belongs_to :curso
Y ahora sí, hacemos la migración:
hobo g migration
Cuando volvamos a arrancar el servidor y creemos un
alumno ¡veremos que podemos seleccionar el curso al
que se ha apuntado! Realmente con esto ya tenemos la
base de cualquier aplicación web con base de datos :).
Abrimos el navegador y vamos a http://localhost:3000. ¡Ya
tenemos nuestra aplicación funcionando.
Podemos crear un usuario, añadir un par de cursos,
editarlos, borrarlos... Las acciones CRUD (Crear Leer
Actualizar Eliminar)
funcionan prácticamente sin hacer
nada.
6
www.tuxinfo.com.ar
Iteración 2
Estamos muy orgullosos de nuestra aplicación, pero
nuestro amigo enseguida pone pegas:
Se les ha olvidado un campo en cada curso: quiero
añadir una descripción y un lugar
En la lista de cursos debería aparecer el nombre del
curso, no ”Curso 1”
Cuando añado un nuevo alumno, aparece también
”Curso 1” en vez del nombre del curso.Así no hay quien
se aclare.
En cada curso, quiero poder ver la lista de alumnos
apuntados
Vamos a añadir un par de campos a la tabla de cursos.
Editamos
”fields”
añadimos los campos que necesitamos:
app/models/curso.rb. Dentro
de
lugar :string
descripcion :text
Guardamos, hacemos una migración y comprobamos que
los nuevos campos funcionan bien. En el mismo fichero (el
modelo del curso) vamos a marcar el título para que se
utilice como nombre. Para ello añadimos :name => true al
final del campo:
titulo :string, :name => true
Un detalle importante que nos va a ayudar mucho va a ser
utilizar "children". En el mismo fichero (el modelo del
curso) añadimos lo siguiente debajo de la declaración de
fields:
children :alumnos
Después de guardar podremos ver cómo ahora en cada
curso se pueden ver los alumnos que están apuntados, lo
cual resulta muy práctico.
Más recursos
Este artículo es sólo una introducción al desarrollo de
aplicaciones web con Ruby on Rails y Hobo.
Para seguir aprendiendo os recomendamos que os
acerquéis
donde
encontraréis libros, tutoriales y una comunidad en el grupo
de google "hobousers".
http://www.hobocentral.net,
a
IgnacioHuertaeIbonCastilla
[email protected]
http://www.unoycero.com
7
www.tuxinfo.com.ar
OpenStreetMap
Creando el mapa libre del mundo
POR JAIME CRESPO
usarlas
de manera
no
redistribución,
offline,
su
imposibilidad de uso si no es a través de su propia
Comentarios de: tuxinfo43 (0)
No hay comentarios