Академический Документы
Профессиональный Документы
Культура Документы
LINUX MAGAZINE
Vdeos de escritorio
con Xvidcap
Superkaramba Edicin en
Temas impactantes
para KDE
Castellano
NMERO 04
Wireless
ABCedario 802.11
WIRELESS
p13
Seguridad Wireless
Scribus
Maquetacin profesional
bajo Linux p48
Scribus
Panorama
Panorama
Impresionantes fotos
de 360 grados p53
YUM
WarWalking
YUM
p57
Superkaramba
Actualizaciones automticas de
instalaciones Fedora
WWW.LINUX- MAGAZINE.ES
Warwalking
Hackeamos redes con
un Zaurus p22
STRATO
Hosting
r
o
y
a
m
a
l
o
r
Quie
b
e
W
i
m
a
r
a
calidad p
ofesiorio avanzado como pr
Tanto si eres un usua
iento
jam
alo
e los paquetes de
nal, comprobars qu
s
m
es
en cada vez funcion
web de STRATO incluy
ete
qu
ora, por ejemplo, el pa
potentes. Contrata ah
acin
ta de una excelente rel
AdvancedWeb y disfru
!
do
por tiempo limita
calidad-precio. Slo
STRATO Hosting
SOFTWARE
INCLUIDO
edWeb)
OFERTA!
2 dominios
web,
2.000 MB de espacio
l
ua
ns
me
co
fi
50 GB tr
correo
ab 0 buzones de
20
Soluciones backup
obs
PHP, Perl, MySQL, Cron-J
Soporte gratuito
Incluye el software de
09
seguridad Steganos 20
3 meses
5.09
vlido hasta el 31.0Web
ed
nc
va
Ad
STRATO
0 800 700 70
0
8
0
0
:
o
it
tu
ra
g
o
n
Telfo
pedido en
Infrmate y realiza tu
s
/e
m
o
c
.
o
t
a
r
t
s
.
w
w
w
* Periodo de contrato 12 meses. El software tiene un nico coste de 9,90 de gastos de envo. Precios sin IVA.
Escritorios
EDITORIAL
Demostrativos
Estimado Lector de Linux Magazine
Es que ya
no
me
dedico a
eso. Eso es
la enseanza
de ingls y ltimamente sta
es una de las
oraciones que
me encuentro repitiendo ms a menudo
cuando me encuentro a gente por la calle
que no he visto en tiempo. Yo me
dediqu a eso durante casi veinte aos y,
aunque fue divertido mientras dur, me
encontraba en los ltimos aos ms y
ms insatisfecho con otras cosas y me
encontraba ms y ms a menudo evangelizando a mis alumnos sobre los beneficios (tcnicos, personales, morales,
sociales, econmicos y polticos) del
software libre que ensendoles ingls.
Qu si lo hecho de menos? Pues s, por
que yo a ustedes, qu les voy a contar? Si
estn leyendo esto, es por que ya estn
convencidos de los beneficios de Linux.
Si es que han salido y se han comprado
Linux Magazine! Lo mo ahora es como
predicar a los convertidos Ah, se
refieren a lo de ensear ingls! Bueno, eso
tambin, puesto que no hay nada como
un grupo de adolescentes con acn y las
hormonas como locas dicindote: But
Windows is also free y tu rebatindoles
con Pirated, you mean. And I mean free
as in freedom, not as in beer para ejercitar el gran polemizador/el pequeo
Stallman que todos llevamos dentro.
Y esto no pasar? Esa es mi
mujer, expresando consternacin sobre
mi futuro laboral y esto es Linux.
Hombre, a la larga, s pasar, pero dale
unos cincuenta aos, una era geolgica
en el mundo de la TI. Pero, claro, ella no
est pensando en eso, sino en que, como
existen algunos webs que ella querra
visitar que no cargan bien en Konqueror,
si no ser sta un moda pasajero de cuatro tarumbas peludos. Esa fase, creo yo,
ya ha pasado. Linux ha rebasado la cima
de la aceptacin y ya rueda cuesta abajo,
www.linux-magazine.es
Paul C. Brown
Director
Nmero 04
LINUX MAGAZINE
Contenido
NOTICIAS
10
Inseguridades ....................................................................................6
Linux .........................................................................................................8
PORTADA
El estndar IEEE 802.11 es el centro de la revolucin inalmbrica. El alfabeto inalmbrico comienza con 802.11a y se
extiende hasta
802.11n. Linux
Magazine nos
ayuda con la
ortografa
inalmbrica.
..................................................................................10
Radio USB
............................................................................................13
DESARROLLO
13
Radio USB
Ruby Spider
.......................................................................................32
PHPNuke
............................................................................................. 39
Python/Jython ................................................................................43
La sencillez de Python con las librearas de Java... Qu ms
se puede pedir?
KNOW HOW
...............................................48
Nmero 04
www.linux-magazine.es
17
Secretos Wireless
Contenido
20
LINUX MAGAZINE
Panorama ............................................................................................53
Creamos fabulosas imgenes de 360 grados a partir de una
serie de fotos digitales.
Yum ..........................................................................................................57
SYSADMIN
La Columna de Charly
...............................................................59
Los mejores trucos y consejos del SysAdmin.
.................................................60
Kontact e IMAP
48
Scribus
..............................................................................62
SuperKaramba ................................................................................67
SuperKaramba aporta temas y guiones a nuestro escritorio
para que lo tengamos como los chorros de oro.
Configuracin: GFTP
...................................................................72
El cliente FTP, GFTP nos permite transferir ficheros de manera cmoda y eficiente.
53
........................................80
Comandos: diff.................................................................................85
Tipografa con LaTeX (IV) .........................................................87
COMUNIDAD
Proyectos
............................................................................................93
Eventos .................................................................................................95
Contacto ..............................................................................................95
DVD .........................................................................................................96
Prximo Nmero ..........................................................................98
www.linux-magazine.es
Nmero 04
NOTICIAS
Inseguridades
Inseguridades
PHP
PHP es un lenguaje de guiones embebido
en HTML que habitualmente se utiliza
en conjuncin con el servidor web
Apache.
Existen fallos encontrados en el cdigo
de deserializacin de PHP que podran
conllevar al revelado de informacin,
subflujo de matriz de referencia a ndice
negativa o sin doble. El proyecto de
Vulnerabilidades
y
Exposiciones
Comunes (Common Vulnerabilities and
Exposures o CVE http://cve.mitre.org)
ha asignado el nombre CAN-2004-1019 a
este problema.
Tambin se ha encontrado un fallo en
la extensin exif de PHP que podra
desembocar en un desbordamiento de
pila. El proyecto de Vulnerabilidades y
Exposiciones Comunes ha asignado el
nombre CAN-2004-1065 a este problema.
Asimismo, se descubri un error de
revelado de informacin en el proceso de
anlisis variables GPC en PHP (cadenas de consultas o cookies y datos de
formularios POST). Si algn script en
particular utilizara los valores de las
variables GPC, se podran revelar porciones del espacio de memoria del proceso httpd hijo al cliente. El proyecto de
Vulnerabilidades
y
Exposiciones
Comunes ha asignado el nombre CAN2004-0958 a este problema.
Se revel un error en el anlisis de formularios datos de formulario/multiparte utilizado por guiones PHP que
permiten subir ficheros a la web. El
proyecto
de
Vulnerabilidades
y
Exposiciones Comunes ha asignado el
nombre CAN-2004-0959 a este problema.
Se encontraron fallos en las funciones
PHP shmop_write, pack y unpack. Estas
funciones no suelen recibir informacin
aportada por el usuario, por tanto
requeriran un guin PHP malicioso para
su explotacin. El proyecto de
Vulnerabilidades
y
Exposiciones
Comunes ha asignado el nombre CAN2004-1018 a este problema.
Existen varios problemas relacionados
con el uso de la llamada al sistema
Nmero 04
select de PHP, que podra desencadenarse si se utiliza en una configuracin con Apache.
El script del shell phpsize, incluido
con PHP, puede utilizarse para construir
mdulos de extensiones de terceras
partes. Se encontr un problema de
construccin en el script phpsizeen
ciertas plataformas de 64 bits que
impeda su correcta operacin.
El mdulo de extensin pcntl se
encuentra ahora habilitado en el intrprete de la lnea de comandos de PHP (/
usr/bin/php). Este mdulo permite controlar caractersticas tales como fork y
Samba
Samba aporta servicios de comparticin de
ficheros e impresin a clientes SMB/CIFS.
Greg MacManus, de los laboratorios
iDEFENSE, ha descubierto un error de
desbordamiento de entero en versiones
de Samba anteriores a 3.0.10. Un usuario
autentificado
remotamente
podra
explotar este error, lo que podra llevar a
la ejecucin de cdigo arbitrario en el
servidor Samba. El proyecto de
Vulnerabilidades
y
Exposiciones
Comunes (cve.mitre.org) ha asignado el
nombre CAN-2004-1154 a este problema.
Los usuarios de Samba debern insta
lar actualizaciones cuanto antes.
-Referencia Gentoo: GLSA 200412-13
/ Samba
-Referencia Mandrake:
MDKSA-2004:158
-Referencia Red Hat: RHSA:2004:670-10
-Referencia Suse: SUSE-SA:2004:045
ZIP
El programa Zip es una utilidad de
archivado que puede crear archivos compatibles con ZIP.
Se ha descubierto un error de desbordamiento de bfer en zip cuando maneja
nombres de archivos largos. Un atacante
podra crear un nombre de accesos espe-
www.linux-magazine.es
problema.
-Referencia Debian: DSA-624-1
-Referencia Red Hat:
RHSA:2004:634-08.
nfs-utils
El paquete nfs-utils suministra un demonio para el servidor NFS del kernel y
herramientas relacionadas, lo que aporta
un nivel ms alto de rendimiento que el
servidor NFS tradicional de Linux utilizado por la mayora de los usuarios.
Este paquete tambin incluye el programa showmount. Este programa consulta al demonio de montaje en un host
remoto para recoger informacin sobre
el servidor NFS.
SGI informa que el demonio statd no
manejaba correctamente la seal SIGPIPE. Un par incorrectamente configurado o malicioso podra provocar el
cuelgue de statd, lo que conllevara un
denegacin de servicio. El proyecto de
Vulnerabilidades
y
Exposiciones
Comunes ha asignado el nombre CAN2004-1014 a este problema.
Arjan van de Ven descubri un desbordamiento de bfer en rquotad. En arquitecturas de 64 bits, una conversin
inadecuada de enteros puede causar este
desbordamiento.
El
proyecto
de
Vulnerabilidades
y
Exposiciones
Comunes ha asignado el nombre CAN
2004-0946 a este problema.
-Referencia Gentoo: GLSA 200412-08
/ nfs-utils
-Referencia Red Hat: RHSA:2004:583-09
Kernel
El kernel Linux se encarga de llevar a
cabo las funciones bsicas del sistema
operativo.
Este aviso incluye parches para varios
problemas de seguridad:
Petr Vandrovec descubri un fallo en el
cdigo de emulacin de 32 bits que afecta al kernel 2.4 de Linux en la arquitectura AMD64. Un atacante local podra
utilizar este fallo para escalar privilegios.
El proyecto de Vulnerabilidades y
Exposiciones
Comunes
(http://
Inseguridades
Acrobat
Acrobat Reader de Adobe es una aplicacin de escritorio que permite la vi-
nuevas versiones.
-Referencia Red Hat: RHSA:2004:432-08
PNG
Se han descubierto varias vulnerabilidades en la librera PNG, utilizada por
aplicaciones que soportan el formato de
imgenes PNG.
NOTICIAS
Fuente Seguridad
Debian
Info:http://www.debian.org/security/
Lista:http://www.debian.org/debian-security-announce/
Referencia:DSA-1)
Gentoo
Mandrake
Red Hat
Slackware
Suse
Comentario
www.linux-magazine.es
Nmero 04
NOTICIAS
Noticias Linux
Noticias Linux
Scribus
El programa de autoedicin favorito de la
redaccin de Linux Magazine acaba de
llegar a versin 1.2.1. Junto con
importantes mejoras en la estabilidad y
mltiples correcciones de bugs, la
versin 1.2.1
de Scribus
incluye dos
importantes
novedades.
Una es tcnica - ahora
Scribus importa las caractersticas de textos (y otros documentos) de OpenOffice.
Es decir, si un documento escrito en
OpenOffice se guarda en formato sxw, la
negrita, cursiva, subrayado, fuentes, colores y otras cualidades de las fuentes se
importarn de manera transparente a
Scribus. No slo eso, sino que Scribus
puede importar directamente imgenes
creadas con la utilidad de dibujo de
desarrollo.
http://www.scribus.org.uk/index.php
LinEspa 0.30
Se acaba de liberar la versin de
LinEspa 0.30. LinEspa es una distribucin de pequeo tamao orientado al
escritorio que viene en formato live CD,
tambin instalable en el disco duro a
partir de una opcin del men de configuracin.
Nmero 04
www.linux-magazine.es
LMI y LPI
Linux Magazine International, la revista
hermana en ingls de Linux Magazine Edicin en Castellano acaba de ser nombrada Patrocinador de Platino del Linux
Professional Institute, el principal programa de certificaciones para la comunidad
Linux a nivel mundial.
En una nota de prensa hecha pblica
el 25 de enero, Evan Leibovitch, presidente del Linux Professional Institute,
declar: Este incremento en las responsabilidades de patrocinio de Linux
Magazine aumenta el reconocimiento de
la posicin
de
LPI
dentro de
la comunidad
Linux
y
del cdigo
abierto.
Demuestra
el valor de
la
asociacin y
el importante rol
que todos
tenemos
que asumir para promocionar los estndares para avanzar en la causa del cdigo abierto. Damos la bienvenida al paso
tomado por Linux Magazine de
patrocinio de oro a patrocinio de platino.
Un incremento en el patrocinio de
LPI era una evolucin natural declara
Brian Osborn, director corporativo de
ventas y marketing de Linux New
Media. Hemos apoyado a la direccin
y dedicacin de LPI hacia un certificacin neutral de marcas para los profesionales de Linux y su persistente
dedicacin a la promocin de Linux y
la comunidad del cdigo abierto. El
seor Osborn tambin es miembro del
consejo de LPI.
El programa de certificaciones de LPI
se concede a nivel mundial en siete
idiomas y se han celebrado ms de
70.000 exmenes para las certificaciones del Nivel Uno y Dos globalmente
desde la creacin del programa en
1999.
http://www.lpi.org/
http://www.linux-magazine.com/
Introduccin
Sin Cables
C
PORTADA
EN PORTADA
Estndares Inalmbricos .......10
Si adquiere productos inalmbricos, ser
mejor que aprenda el alfabeto 802.11.
OpenVPN .........................................17
OpenVPN crea una red privada virtual para
una comunicacin segura sin cables.
www.linux-magazine..es
Nmero 04
PORTADA
Estndares Wireless
El alfabeto 802.11
El estndar IEEE 802.11 es el centro de la revolucin inalmbrica. El alfabeto inalmbrico comienza con 802.11a y se
extiende hasta 802.11n. Linux Magazine nos ayuda con la ortografa inalmbrica.
POR JRG LUTHER
10
Nmero 04
Repaso a la tecnologa
Las redes inalmbricas se reparten entre
dos clases principales subdivididas por la
banda de frecuencia. Las primeras tecnologas usaban la banda de 2.4 GHz
mientras que las ms modernas usan la de
5 GHz (ms ancha). La primera incluye los
estndares del Instituto de Ingenieros Elctricos y Electrnicos (IEEE) 802.11b (11
www.linux-magazine.es
Estndares Wireless
PORTADA
refiere a las diferencias regionales en tecnologas como a cuantos y cuales son los
canales disponibles para usarse en las distintas regiones del mundo. Como usuario
slo necesitamos especificar el pas en el
que queremos usar la tarjeta WLAN y el
controlador se ocupa del resto.
El protocolo IEEE 802.11e define la
calidad del servicio y las extensiones
para el flujo de medios para 802.11a/h y
g. El objetivo es ajustar las redes de 54
Mbps para aplicaciones multimedia y de
voz sobre IP, o lo que es lo mismo, telefona a travs de redes IP e Internet. La
red debe soportar valores de transmisin
de datos garantizados para servicios
individuales o retrasos de propagacin
mnimos para que sean tiles con multimedia o voz.
El protocolo 802.11f describe como se
tratan los estndares de las comunicaciones de clientes de mviles fuera de
zona entre puntos de acceso (Roaming) con IAPP, el Protocolo de Puntos
de Acceso manejando de los detalles.
de negociacin a finales
del verano de 2004.
El alcance y duracin
de
la
fase
de
estandarizacin
de
802.11i indica lo alerta
en materia de seguriFigura 1: Airsnort es capaz de romper encriptaciones WEP tras rebuscar
dad que estn los
en el suficiente nmero de paquetes.
fabricantes y organizaciones. Las razones
diseado para evitar los puntos dbiles
para esta cautela es el casi total fallo
reemplazando las llaves estticas con
alrededor de la primera tcnica de
llaves modificadas dinmicamente e
encriptacin de WLANs conocidas como
implementando comprobaciones de inteel estndar Equivalente de Privacidad
gridad ampliamente incrementadas. Por
Inalmbrica (WEP). WEP est basado en
razones de compatibilidad descendente
RC4 con llaves estticas y un Vector de
TKIP an usa el dbil flujo de codifiInicializacin (IV) modificado para cada
cacin RC4. WPA2 es el trmino que
paquete transmitido. WEP demostr faWi-Fi Alliance usa para referirse a la
llos mayores en la implementacin de IV
implementacin de todos
que permitieron a los piratas
los componentes obligatoobtener el suficiente nmero
rios del estndar 802.11i.
de paquetes de informacin
necesarios para reconstruir
Asuntos de
las llaves. De hecho, hay
compatibilidad
herramientas de anlisis que
Figura 2: El logo certifise ocupan de esta tarea
Suponiendo que no vamos
cado por la alianza Wi-Fi
Estndares de Seguridad
automticamente [2].
a montar una WLAN comen los paquetes de pro802.11i fue elegido para resolver los proAntes de la introduccin
pletamente nueva es muy
ductos indican su
blemas de seguridad que comprometieron
de 802.11i, los fabricantes
probable que tengamos
conformidad con los
en su momento las redes inalmbricas.
de WLAN intentaron comque ofrecer compatibilidad
estndares y compatibiliIntegra todo lo que el mundo de la seguripensar los fallos internos de
con
los
dispositivos
dad con productos de
dad ofrece. Las caractersticas ms
WEP usando una solucin
802.11b existentes. 802.11g
otros fabricantes.
importantes de 802.11i incluyen la autenticonocida como Acceso Prodispone de una serie de
cacin IEEE 802.1x con Protocolo de
tegido Wi-Fi (WPA), desarrollado al
aspectos al respecto: los dispositivos
Autenticacin Extendido (EAP), RADIUS,
amparo de la Alianza Wi-Fi [3]. Las car11b y g usan la misma banda de freKerberos y encriptacin basada en el algoactersticas ms importantes de WPA son
cuencias, la misma tcnica de
ritmo de Rijndael AES. La complejidad de
la Anulacin de Llaves Dbiles (WEPmodulacin y el mismo rango, por lo
802.11i hizo extremadamente complicada
plus), Habilitacin de la Autentificacin
que las operaciones mezcladas no son
su finalizacin. El estndar fue finalmente
EAP y el Protocolo Temporal de Inteproblemticas. No obstante la compatilanzado por la IEEE tras un difcil proceso
gracin de Llaves (TKIP). TKIP est
bilidad afecta a las prestaciones: si un
nico elemento 11b se asocia a una red
11g el rendimiento del sistema inmeTabla 1: IEEE 802.11 de un Vistazo
diatamente baja de 54 a 11 Mbps.
Las operaciones mezcladas de elemenGrupo de Trabajo Enfoque
tos
802.11b y g, pero incluso mezclas de
802.11a
54 Mbps WLAN en la banda 5 GHz
elementos
g antiguos con nuevos pueden
802.11b
11 Mbps WLAN en la banda 2.4 GHz
802.11c
Cruce sin cables
causar problemas. El estndar de seguri802.11d
Modo Mundial. Adaptacin a los requerimientos regionales.
dad WLAN 802.11i no fue introducido
802.11e
QoS y extensiones que fluyen a travs de 802.11a/g/h
hasta el verano de 2004. Las redes
802.11f
Transito para 802.11a/g/h (Protocolo de Punto de Acceso Interno IAPP)
inalmbricas ms antiguas normalmente
802.11g
54 Mbps WLAN en la banda 2.4 GHz
solo soportan el mtodo WEP mucho
802.11h
802.11a con DFS y TPC,11a Europa
ms dbil y necesitan medidas adi802.11i
Autenticacin y encriptado (AES,802.1x)
cionales para incrementar la seguridad
802.11j
802.11a con canales adicionales por encima de 4.9 GHz,11a Japn
de la red usando mtodos VPN. Algunos
802.11k
Intercambio de informacin de capacidad entre clientes y puntos de acceso
fabricantes de dispositivos que soportan
802.11l
no se usa debido al peligro de confusin tipogrfica
un subconjunto 802.11i WPA ofrecen
802.11m
Mantenimiento,publicacin de actualizaciones estndar
actualizaciones de firmware a 802.11i/
802.11n
Nueva generacin de WLAN de redes de al menos 100 Mbps
WPA2.
www.linux-magazine.es
Nmero 04
11
PORTADA
Estndares Wireless
Figura 3: Algunos fabricantes ya han empezado a ofrecer sistemas Pre-N basados en el principio
MIMO. El router Belkin que se muestra, ofrece un valor de transferencia superior a 300 Mbps en la
banda 2.4 GHz.
12
Nmero 04
www.linux-magazine.es
Conclusin
El agotado y conocido estndar 802.11b
an no ha llegado al final de su vida til
a pesar de la competencia de sus sucesores de 54 Mbps. La versatilidad y los
bajos precios hacen de 802.11b una tecnologa ideal para principiantes. Si
nuestros requerimientos de ancho de
banda son moderados y podemos pasar
sin soporte multimedia, 802.11b es an
una buena opcin.
802.11g es el sucesor especfico para el
mercado de la pequea oficina y tiene la
ventaja de ser compatible hacia abajo.
Como contraste, los WLANs 802.11a/h
son las mejores para grandes redes con
RECURSOS
[1] Bluetooth: http://www.bluetooth.com/
[2] WEPCrack: http://wepcrack.sourceforge.
net/,AirSnort:http://airsnort.shmoo.com/
[3] Alianza Wi-Fi: http://www.wi-fi.net/
[4] Propuesta TGn Sync: http://tgnsync.org/
[5] Alicanza WWiSE: http://www.wwise.org/
PORTADA
Radio USB
Los chismes electrnicos son cada vez ms pequeos y los
adaptadores WLAN no son una excepcin. En las tiendas ya
estn disponibles varios adaptadores WLAN en formato stick
USB. Este artculo tratar sobre que caractersticas buscar en
estos adaptadores y como conseguir que funcionen.
POR MARCEL HILZINGER
a ha llegado la primavera y ms
de uno quisiera poder trabajar
sentadito en el jardn o la terraza
de casa, disfrutando del sol maanero y
del porttil nuevo que lleg por navidad.
Aunque los adaptadores Wireless LAN
no slo se han diseado para el trabajo
al aire libre; pueden ser muy tiles dentro de casa, en el trabajo, en el
aeropuerto y en muchos otros sitios
donde exista un punto de acceso publico.
Un adaptador WLAN en formato stick
USB no es ms grande que un pendrive
de memoria flash y se puede guardar
perfectamente en un bolsillo o un bolso
mientras no se necesite.
Hay algunas detalles que se han de
vigilar antes de comprar un adaptador
WLAN en formato stick USB. De hecho,
Linux no funciona con muchos de los
nuevos modelos de 54 Mbits y algunos
de los modelos ms antiguos, pueden
dar algn que otro dolor de cabeza.
WLAN en formato
stick USB parecen que
han aumentado de
repente. Dicho esto,
los nicos adaptadores que funcionan con Linux, nada
ms salir de la caja son los adaptadores
USB de 11Mbits que usan el chipset
Prism2. Los modelos Netgear MA111 y DLink DWL-122 de nuestra prueba (Vase
la Tabla 1) son solo dos ejemplos. Se
puede encontrar una lista de dispositivos
ms amplia, aunque no muy actualizada, en [1].
La versin 9.0 o posterior de Suse
Linux ofrece un sencillo procedimiento
para hacer funcionar estos dos adaptadores. Despus de conectar el adaptador,
simplemente hay que lanzar el modulo
de configuracin de la tarjeta de red de
YaST, elegir Other (not detected) y pulsar
sobre Configure... seleccionando Wireless en el men desplegable Device type y
entonces pulsar sobre el botn de la
derecha Select from List. Ahora seleccionar la entrada en el botn de la lista
Wireless device using kernel module
Fabricante
Netgear
D-Link
D-Link
Planet
Netgear
Conceptronic
SMC Networks
Chip
Prism2
Prism2
Ralink
ZyDAS ZD1211
Prism Freesbe
Intersil/Prism
Prism Freesbe
Modulo
prism2_usb
prism2_usb
rt2570
zd1211
?
?
prism54u
Velocidad
11 Mbits/s
11 Mbits/s
54 Mbits/s
54 Mbits/s
54 Mbits/s
54 Mbits/s
54 Mbits/s
Drivers de Linux
Punto de acceso
www.linux-magazine.es
Ad-Hoc
Precio aprox.
EUR30
EUR25
EUR55
EUR40
EUR55
EUR30
EUR50
Nmero 04
13
PORTADA
Deshaciendo entuertos
Si al conectarlo, el adaptador falla,
primero se debe teclear
14
Nmero 04
de la serie 2.4) y entonces se teclea modprobe prism2_usb para cargar el modulo del
ncleo. Ahora iwconfig debera mostrar una
entrada wlan0 para la tarjeta (Vase el
Cuadro 2).
Para habilitar el adaptador, aun se necesita
editar dos archivos ms bajo /etc/wlan/.
Para permitir que 2 tarjetas WLAN funcionen en modo ad-hoc y se vean la una a la
otra, se necesita una direccin IP para cada
tarjeta y una sola ID de red o ESSID. Para configurar esto hay que rellenar la entrada
SSID_wlan0 que se haya aproximadamente
en
la
lnea
80
del
archivo
/etc/wlan/wlan.conf como, por ejemplo:
SSID_wlan0="wireless"
El siguiente paso consiste en renombrar el
archivo /etc/wlan/wlancfg-DEFAULT por la
ESSID elegida (en el ejemplo sera
wlangcfg-wireless) y cambiar la lnea 31 de
IS_ADHOC=n a IS_ADHOC=y para usar el
modo ad-hoc. Ahora se puede lanzar el servicio WLAN tecleando /etc/init.d/wlan start.
Si todo va bien, debe ser posible asignar una
direccin IP al adaptador usando
ifconfig wlan0 192.168.1.1 netmask
255.255.255.0
y despus hacer ping hacia la otra mquina:
ping 192.168.1.2
Para poder usar un punto de acceso hay que
elegir el modo managed en vez del Ad-hoc.
En otras palabras hay que volver a dejar la
entrada como estaba IS_ADHOC=n. Como
en modo managed es el punto de acceso
quien asigna el canal, hace falta habilitar el
muestreo de canales. Para hacer esto hay
que establecer la variable WLAN_SCAN de
/etc/wlan/wlan.conf as: WLAN_SCAN=y y si
se conoce los canales que utiliza el punto de
acceso se pueden eliminar los canales
innecesarios de ChannelList para aumentar
la velocidad del muestreo.
www.linux-magazine.es
iwconfig
Experimentos
suse92:/home/marcel # iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11-DS ESSID:"wireless" Nickname:"suse92"
Mode:Ad-Hoc Frequency:2.442 GHz Cell: 02:0F:DA:B5:C1:3E
Bit Rate:2 Mb/s Tx-Power:2346 dBm
Retry min limit:8 RTS thr:off Fragment thr:off
Encryption key:off
Link Quality=0/92 Signal level=-100 dBm Noise level=-100 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
sit0 no wireless extensions.
PORTADA
Cerrando brechas
Puede tener sentido configurar un conexin WLAN sin cifrado para hacer
pruebas, pero en un entorno de produccin es obligatorio una clave WEP para
configurar una conexin cifrada. Para el
adaptador Prism 2 USB se necesita editar
el archivo /etc/wlan/wlancfg-ESSID. Hay
que usar la variable AuthType para
especificar si linux-wlang-ng usar una
clave compartida. Sin embargo, al ser
este modo ms propenso a los ataques,
quizs se prefiera optar por el modo
Open. La versin 0.2.1-pre22 de las
herramientas causaron algunos desarreglos en nuestras pruebas. A pesar de la
modificacin de la variable, iwconfig
insista en mostrar como modo Security
mode:restricted. Sin embargo las pruebas
con claves compartidas y en modo
abierto demostraron que el stick USB
sencillamente ignoraba la variable.
Ahora se cambia la seccin
#==wep== como se muestra en el
Cuadro 3. Las dos primeras variables
permiten especificar si el cliente usara
cifrado basado en hardware (false) o
basado en el controlador de dispositivo
linux-wlan-ng. Supuestamente el cifrado
por software es ms rpido, as que se
deja esta variable en true. La entrada
dot11PrivacyInvoked=true habilita el
cifrado.
En la siguiente lnea se especifica la
clave de cifrado. El programa almace-
www.linux-magazine.es
Nmero 04
15
PORTADA
client:/home/otto # iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11-b ESSID:"wireless" Nickname:"wireless"
Mode:Managed Frequency:2.462 GHz Access Point:
:09:5B:2D:B8:98
Bit Rate:11 Mb/s Tx-Power:2346 dBm
Retry min limit:8 RTS thr:off Fragment thr:off
Encryption key:3BFA-1658-F26F-65BB-1015-0222-49 Security mode:open
Link Quality=92/92 Signal level=-40 dBm Noise level=-95 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
sit0 no wireless extensions.
16
Nmero 04
www.linux-magazine.es
Logout
Aunque los fabricantes ofertan un
amplio rango de sticks WLAN de 54
Mbits, los usuarios de Linux necesitarn
aguardar un tiempo y seguir trabajando
con dispositivos de 11 Mbits basados en
el chipset Prism2. Esta tipo de
rendimiento es adecuado para navegar
por Internet. No se debe perder la
esperanza; el D-Link DWLG-122 es un
adaptador USB de 54 Mbits que funciona
en Linux y el controlador de dispositivo
INFO
[1] Adaptadores
WLAN:
http://www.
linux-wlan.org/docs/wlan_adapters.html.
gz
[2] Proyecto Linux-wlan-ng: http://www.
linux-wlan.org/
[3] Wireless-tools: http://www.hpl.hp.com/
personal/Jean_Tourrilhes/Linux/Tools.
html
[4] Controlador de dispositivo de Planet:
http://www.planet.com.tw/download.
php
[5] Controlador de dispositivo Prism54 USB:
http://jbnote.free.fr/prism54usb/
PORTADA
Secretitos en Reunin
Las redes inalmbricas son prcticas
pero al mismo tiempo peligrosas. La
encriptacin WEP es improbable que
pueda detener a un atacante. La solucin viene de la mano de medidas de
seguridad adicionales, tales como un
tnel OpenVPN encriptado.
POR ACHIM LEITNER
Pntelo, Pnselo
Antes de decidir que clase de proteccin
es mejor para un entorno, hay que mirar
www.linux-magazine.es
Nmero 04
17
PORTADA
Gorrones y Alborotadores
Las redes WLAN presentan un nuevo
tipo de riesgo: toda clase de desconocidos pueden aprovecharse del punto de
acceso de la WLAN para obtener acceso
gratuito a Internet. La extensin del dao
que esto puede causar depende de la
clase de tarifa de Internet que se tenga
contratada. Si se tiene tarifa plana,
puede ser que no le importe que su
vecino se le cuele por la WLAN y compartan la Web. Pero si se tiene una tarifa
basada en el trfico de datos, el compartir el acceso puede afectar de forma
negativa su cartera. La forma de evitar
que esto suceda es habilitando el filtrado
basado en MAC del router WLAN y, adicionalmente, el uso de la encriptacin
WEP.
Ninguna de estas medidas proporciona
una proteccin perfecta, pero al menos
levanta una barrera extra contra los
crackers y se asegura de que nadie pueda
acceder de forma accidental a la WLAN
o negar que se est compartiendo el
acceso de forma deliberada. Hay que cerciorarse de que la encriptacin WEP y el
filtrado MAC estn activados en todo
momento; el no tenerlos es una
Figura 2: La Red Privada Virtual (VPN) funciona a travs de un tnel, en los extremos es donde estn las
direcciones IPs reales del porttil y del PC.
Proteccin VPN
Linux soporta un sistema de seguridad
para WLAN con operaciones anti-intrusos sin la necesidad de una tarjeta
nueva. Si su tarjeta no le proporciona la
clase de proteccin que necesita, la solucin est en aadir software de
18
Nmero 04
www.linux-magazine.es
OpenVPN
El principio en el que se basa VPN es
usado por diversos protocolos, productos y proyectos. OpenVPN [1] es una
mtodo probado y verificado, siendo
estable y simple, funciona sin manipular ni el kernel ni la pila IP. Como este
programa se basa en el popular protocolo
criptogrfico
TLS
y
la
implementacin es clara, OpenVPN se
Empezando
Si an no lo ha hecho, instale el paquete
OpenVPN antes de continuar (Vase el
Cuadro 3). OpenVPN no modifica el kernel. En vez de ello, para ser capaz de
reenviar los paquetes, usa el driver
TUN/TAP [4]. La mayora de las distribuciones instalan el mdulo del kernel por
defecto, as que lo nico que hay que
hacer es cargar el mdulo. Como root,
teclese lo siguiente para hacerlo:
modprobe tun
Claves
OpenVPN necesita las claves para proporcionar la seguridad. En el caso ms
simple, ambos usuarios confiaran en
una clave secreta compartida. El siguiente comando crea una clave y la
almacena en un fichero llamado
secret.key:
openvpn --genkeyU
--secret secret.key
PORTADA
Cavando el Tnel
Lo siguiente que hay que hacer es crear
el tnel. Para ello, OpenVPN necesita la
direccin IP (esttica) de la mquina
destino, el nombre del dispositivo del
tnel (por defecto tun0), las dos direcciones virtuales de VPN y el fichero de la
clave. En el porttil, el comando a introducir sera como:
openvpn --dev tun0 --remoteU
[Real_DesktopIP] --ifconfigU
[Virtual_LaptopIP]U
[Virtual_DesktopIP]U
--secret secret.key
Asignacin de Direcciones
Supongamos que la tarjeta WLAN en el
porttil tiene la direccin IP real
Glosario
S/MIME: Secure/Multipurpose Internet Mail
Extensions es otra forma de encriptar y firmar digitalmente los mensajes de correo,
una alternativa a PGP.
Private address: Las direcciones IPs pblicas son nicas. Esta es la nica forma de
asegurarse de que los paquetes puedan
encontrar el camino al destino. Las direcciones IP privadas slo son vlidas en una
red local y no son enrutadas dentro de la
Internet pblica. Esto permite que varias
redes puedan usar las mismas direcciones
privadas.
www.linux-magazine.es
Nmero 04
19
PORTADA
172.16.0.1 y el PC de sobremesa
172.16.0.2. La VPN necesita direcciones
de un espacio privado de direcciones,
tales como 10.0.0.1 para la direccin virtual del porttil y 10.0.0.2 para el PC de
sobremesa. En este caso, el comando en
el porttil sera:
openvpn --dev tun0 --remoteU
172.16.0.2 --ifconfig 10.0.0.1U
10.0.0.2 --secret secret.key
y en el PC de sobremesa:
openvpn --dev tun0 --remoteU
172.16.0.1 --ifconfig 10.0.0.2U
10.0.0.1 --secret secret.key
El Camino Seguro
El tnel ya est listo y los paquetes llegan al otro lado. Pero tanto el porttil
como el PC de sobremesa necesitan
conocer qu paquetes tienen que enviar
por el tnel. En otras palabras, necesitan
saber la direccin IP virtual del otro lado
del tnel. El comando de OpenVPN
establece la ruta para reflejar esta direccin. Todas las otras direcciones sern
enrutadas como se haca anteriormente,
sin el tnel.
La ruta desde el PC de sobremesa al
porttil funcionar bien, si se usa la
nueva direccin IP virtual para comunicarse con el porttil. De hecho, las
antiguas direcciones reales asignadas a
las tarjetas WLAN en el porttil y en el
PC de sobremesa slo sirven para un
propsito: son los extremos del tnel. No
se usarn con las conexiones normales
salvo para esta tarea.
El camino de regreso desde el porttil
hasta el PC de sobremesa (y desde all
hasta los dems PC de la red cableada e
20
Nmero 04
Combatiendo el Fuego
Casi hemos terminado a ambos lados
del tnel. El porttil y el PC de
sobremesa ya usan felizmente el tnel,
los datos estn protegidos y nadie
puede hacerse con ellos. Pero an es
posible infiltrar paquetes dainos y
permitir a un atacante compartir la
conexin a Internet.
Fuera!
OpenVPN usa UDP para enviar los paquetes encriptados al puerto 5000 al otro lado
del tnel. Como usa la interfaz de WLAN
wlan0 para ello, hay que admitir los
paquetes UDP que van al puerto 5000 del
interfaz. La siguiente sintaxis maneja esto
para los paquetes entrantes:
iptables -A INPUT -i wlan0U
-p udp --dport 5000 -j ACCEPT
iptables -A INPUT -i wlan0U
-j DROP
Cuadro 3: Instalacin
OpenVPN es muy fcil de instalar. El paquete
de cdigo fuente para la versin estable 1.6.0
est disponible en la pgina web del
proyecto [1]. Los siguientes comandos
descomprimen el paquete, compilan el software y lo instala con los privilegios de root:
tar -xvzf openvpn-1.6.0.tar.gz
cd openvpn-1.6.0
./configure --disable-lzo
make
su
make install
Necesita ejecutar configure con el parmetro
--disable-lzo para deshabilitar la compresin.
Como los datos no pueden comprimirse
despus de encriptarse, esta librera est
recomendada sobre todo para las conexiones lentas. La librera est disponible en
[2]. Lo que se necesita aqu es la librera
OpenSSL y los ficheros de desarrollo, que
estn localizados en dos paquetes separados
en Suse: openssl y openssl-devel. Otras dis-
www.linux-magazine.es
PORTADA
Reenvo
El PC de sobremesa necesita reglas de
reenvo y necesita usar enmascaramiento para permitir que el porttil
llegue al otro lado del mundo:
iptables -A FORWARD -i tun0 -jU
ACCEPT
iptables -t nat -A POSTROUTINGU
-o eth0 -j MASQUERADE
Limitaciones de Seguridad
Una red es tan segura como lo puedan ser
los ordenadores conectados a ella. Una
persona no autorizada podra acceder al
porttil OpenVPN, leer la clave y usarla
para romper la seguridad de la red virtual.
Las redes inalmbricas necesitan una
mejor proteccin ante los ladrones.
Si se atiene a las reglas bsicas
descritas en este artculo, encontrar que
OpenVPN es un producto de VPN seguro
RECURSOS
[1] OpenVPN: http://openvpn.sourceforge.net
[2] Proyecto OpenSSL: http://www.openssl.
org/
[3] Librera LZO: http://www.oberhumer.
com/opensource/lzo/
[4] Driver TUN/TAP: http://vtun.sourceforge.
net/tun/
www.linux-magazine.es
Nmero 04
21
PORTADA
Wireless Sniffing
Las PDAs actuales tienen ya la potencia de clculo de los PC de hace cinco aos y la versatilidad de los Sistemas Operativos actuales. Una PDA con Linux es como tener un pingino gigante en tu bolsillo.
POR ALBERTO PLANAS
22
Nmero 04
www.linux-magazine.es
Wireless Sniffing
Plataforma de desarrollo
En Internet podemos encontrar varias
Toolchains para nuestra Zaurus, yo he
probado varias y aconsejo usar la
desarrollada por Francois Leiber que
puede descargarse en [1]. Solo presenta
dos problemas, su host es lentsimo y al
estar basado en la magnfica Toolchain
de OpenZaurus, las cabeceras del kernel
son algo diferentes a las que hay en la
distribucin de Sharp. Por esas razones
hemos preparado un paquete donde se
han corregido algunas de esas deficiencias, que puede descargarse desde [2].
Instalar el programa solo es descomprimir el paquete y ejecutar como root
un pequeo script:
mkdir zaurus
cd zaurus
tar -xjvf ../toolchain.tbz2
cd devel
./postinstall
Funcin
cursores
Ordena las redes encontradas. Usad un orden diferente al auto-fit para poder usar las teclas del
cursor a la hora de seleccionar redes
Estadstica general
Sale de la aplicacin
PORTADA
Compilaremos
con
el
comando
arm-linux-gcc hola.c -o hola y procederemos a la transferencia del cdigo
generado a la PDA. La conexin con la
PDA se realiza mediante TCP/IP sobre el
cable USB. El procedimiento habitual
consiste en conectar la Zaurus a nuestro
equipo usando el cable suministrado, y
luego desde el ordenador ejecutar este
script que se encargar de crear el interfaz de red usb0 y de asignarle una IP.
/sbin/modprobe usbnet
/sbin/ifconfig usb0U
192.168.129.1 netmaskU
255.255.255.255 up
/sbin/route add -hostU
192.168.129.201 usb0
www.linux-magazine.es
Nmero 04
23
PORTADA
Wireless Sniffing
Tabla 1: Especificaciones
export PATH=/home/zaurus/U
wireless/bin:$PATH
export LD_LIBRARY_PATH=/home/U
zaurus/wireless/lib
export TERM=sun
/home/zaurus/wireless
./configure \
--build=i686-linux
--host=arm-linux \
--disable-pcap \
--enable-zaurus \
--disable-suid-root \
--prefix=/home/zaurusU
/wireless
make
make install prefix=~/zaurusU
/install
Listado 1: /home/zaurus/wireless/kismet.conf
01
02
03
04
05
06
07
08
09
10
24
...
suiduser=zaurus
...
# Si tenemos una Prism2 necesitamos usar el driver wlanng_legacy
source=wlanng_legacy,eth0,wcf11
...
# Usaremos los canales Europeos
defaultchannels=IEEE80211b:1,7,13,2,8,3,14,9,4,10,5,11,6,12
# defaultchannels=IEEE80211b:1,6,11,2,7,3,8,4,9,5,10
...
Nmero 04
www.linux-magazine.es
El SSID de la red
Velocidad de la transmisin
Wireless Sniffing
PORTADA
Listado 2: Kismet-Jan-21-2005-5.xml
01 ...
02
<wireless-network
number="11"
type="infrastructure"
wep="false" cloaked="false"
first-time="Fri Jan 21
13:51:02 2005" last-time="Fri
Jan 21 13:58:15 2005">
03
<SSID>XXXXXXX</SSID>
04
<BSSID>00:20:ED:1F:EF:XX</BSSI
D>
05
<channel>11</channel>
06
<maxrate>11.0</maxrate>
07
<maxseenrate>0</maxseenrate>
08
<carrier>IEEE
802.11b</carrier>
09
<packets>
10
<LLC>590</LLC>
11
<data>8</data>
12
<crypt>0</crypt>
13
<weak>0</weak>
14
<dupeiv>0</dupeiv>
15
<total>598</total>
16
</packets>
17
<datasize>1350</datasize>
18
<gps-info unit="english">
19
...
20
</gps-info>
21
<ip-address type="tcp">
22
<ip-range>10.1.1.150</ip-range
>
23
</ip-address>
24
<wireless-client
number="1" type="fromds"
wep="false" first-time="Fri
Jan 21 13:51:05 2005"
last-time="Fri Jan 21 13:57:33
2005">
25
<client-mac>00:20:ED:1F:EF:XX<
/client-mac>
26
<client-packets>
27
<client-data>8</client-data>
28
<client-crypt>0</client-crypt>
29
<client-weak>0</client-weak>
30
</client-packets>
31
<client-gps-info
unit="english">
32
...
33
</client-gps-info>
34
<client-datasize>1350</clientdatasize>
35
<client-maxrate>0.0</client-ma
xrate>
36
<client-maxseenrate>0</clientmaxseenrate>
37
<client-ip-address
type="tcp">10.1.1.150</clientip-address>
38
</wireless-client>
39
</wireless-network>
40 ...
www.linux-magazine.es
Nmero 04
25
Wireless Sniffing
Expandiendo horizontes
Un viaje interesante ste que nos
ha proporcionado Zaurus. Esta
mquina ha causado que un
grupo de buenos programadores,
fanticos de la tecnologa y de las
PDAs, hayan desarrollando una
versin alternativa de la ROM de
Sharp, mejorando cada uno de los
aspectos posibles. Empezando
porque usa el compilador GCC3.2.3 que genera binarios ms
Figura 5: Informacin adicional sobre la red wireless
optimizados para procesadores de
gigabyte.
la familia ARM (StrongArm y
PXA255) y mejora la velocidad
clientes y protocolos encontrados
del clculo matemtico en un factor que
durante el rastreo (ver Listado 2). Hay
ronda entre el 400% y el 500%, hasta
un programa escrito en Perl que transuna necesaria actualizacin de los driforma el fichero XML a HTML, un
vers del control tctil de pantalla,
formato ms apropiado para su visualiwireless, bateras, memoria Actuazacin (Kismet Log Viewer en [3]). Si
lizacin del kernel (ya mismo
dispusiramos de un adaptador GPS,
dispondremos de un kernel 2.6 para la
Kismet ira almacenando en los logs la
Zaurus) y restantes aplicaciones, como
longitud y la latitud de las redes enconla disponibilidad de GPE con XFree y
tradas, es una opcin muy til para
Matchbox. Por desgracia la versin
paseos prolongados y para la geneactual de esta ROM (OpenZaurus 3.5.2
racin de mapas sensibles donde
en el momento de escribir este artculo)
mostrar las diversas localizaciones de
es poco adecuada para el uso rutinario
nuestros hallazgos.
de la PDA, pero se aproxima el momento
Este front-end nos ha sido realmente
de tener una mejora realmente importil, pero no muestra toda la informacin
tante que alargar la vida til de estas
que proporciona esta nueva versin de
mquinas.
Kismet. Para extraer el resto de su potenOpenZaurus (ver [4]) se ha confeccia necesitaremos ejecutar su versin
cionado a partir de una configuracin
ncurses, un poco ms difcil de utilizar.
determinada del proyecto BitBake (ver
Para trastear con este nuevo interfaz, lan[5]). Este proyecto es una emulacin de
zaremos el cliente con el comando kismet.
las metadistribuciones al estilo Gentoo
Una opcin muy til que usaremos con
aplicadas al mbito de los dispositivos
frecuencia la conseguiremos por medio de
empotrables. Desde BitBake podemos
la tecla h, que nos mostrar una pangenerar distribuciones Linux para las
26
Nmero 04
www.linux-magazine.es
Seguridad relativa
Como hemos visto, establecer una
comunicacin inalmbrica sin las mnimas consideraciones de seguridad es un
suicidio. Cualquiera con unos mnimos
conocimientos puede sentarse tranquilamente mientras analiza todo el trfico
que se produce por la red. En nuestro
experimento con la Zaurus hemos tenido
la decencia de observar poco tiempo
dicho trfico, pero con algo ms de
paciencia y malicia yo me pregunto
Cunto tiempo tardara en ver una
trama con cadenas como USER
isabel\nPASS 1B55w#4\n? La recopilacin de contraseas y usuarios ha
pasado a ser una actividad pasiva. Configurar el punto de acceso wireless para
que realice control de MACs y establezca
comunicaciones encriptadas mediante
protocolo WEP / WPA es lo mnimo que
podemos hacer, pero por desgracia como
veremos en el siguiente artculo, es un
mnimo que con el conocimiento actual
y nuestra mini-mquina quedar
reducido a la nada.
RECURSOS
[1] Toolchain de Francois Leiber: http://www.
nautilus6.org/operation/download/
cross_install-2.95.tar.bz2
[2] Paquetes de este artculo: http://www.
linux-magazine.es/ Magazine/Downloads/04
[2] Kismet Logviewer http://www.mindflip.
org/klv/
[3] Open Zaurus: http://www.openzaurus.org
[4] Proyecto Bitbake: http://www.
openembedded.org
EL AUTOR
PORTADA
SDL
DESARROLLO
Ms que SDL
La fabrica de
xitos
SDL suministra los componentes grficos para construir un juego. Desafortunadamente, en la programacin de juegos hay algo ms que un motor grfico.
Este mes Steven Goodwin analizar algunas de las cosas que SDL no hace y
demostrar como se pueden hacer.
POR STEVEN GOODWIN
Consideraciones del
proyectil
El problema en mover objetos varios pixeles
en un cuadro se llama consideraciones del
proyectil. Imagine una bala movindose
muy rpidamente hacia la izquierda. Ahora
imagine al jugador movindose muy rpidamente hacia la derecha. En el mundo real, la
bala golpeara al jugador. En el juego, si solamente se considera la validez de la posicin
final No se puede!
La bala podra terminar totalmente a la
izquierda del jugador despus de un solo
cuadro, y no habra ocurrido ninguna colisin. Para evitar esto, se debe escribir un
cdigo especial que comprueba toda la
trayectoria de la bala. Como a la mayora de
nosotros nos interesa ms escribir juegos
que ecuaciones matemticas, se utilizara la
fuerza bruta para comprobar cada punto a lo
largo de la trayectoria.
www.linux-magazine.es
Nmero 04
27
DESARROLLO
SDL
SDL_Rect PlayersBoundingBox;
EX_COLLISION_LIST ListOfCollisions;
plyGetPlayerRect(pPlyObj, &PlayersBoundingBox);
exGetRectCollision(pPlyObj, &PlayersBoundingBox, &ListOfCollisions);
tx = pCollisionRc->x / TheGame.iTileWidth;
ty = pCollisionRc->y / TheGame.iTileHeight;
TestTileCollision(pCollisionRc, tx, ty, pCollisionList);
if (pCollisionRc->x%TheGame.iTileWidth)
TestTileCollision(pCollisionRc, tx+1, ty, pCollisionList);
if (pCollisionRc->y%TheGame.iTileHeight)
TestTileCollision(pCollisionRc, tx, ty+1, pCollisionList);
if ((pCollisionRc->x%TheGame.iTileWidth) && (pCollision
Rc->y%TheGame.iTileHeight))
09 TestTileCollision(pCollisionRc, tx+1, ty+1, pCollisionList);
28
Nmero 04
www.linux-magazine.es
SDL
A la medianoche
Es mucho ms fcil detectar qu objetos
quiere coger el jugador. Aunque nuestra
rutina de uso general de la colisin funcionara no es siempre el mejor mtodo,
ya que es innecesario realizar deteccin
de colisin. La recogida se acciona por
proximidad, tan pronto como el jugador
est dentro, por ejemplo, de la mitad del
ancho de un bloque (o 16 pixeles) se
puede recoger el objeto.
El mtodo matemtico para comprobar
la distancia es el que usaba Pitgoras:
El cuadrado de la hipotenusa es igual a
la suma de los cuadrados de los catetos.
Esto dejar que se realice una comprobacin circular, buscando cualquier
Listado 3: Matemticas de
los das del colegio
01 dx = pObj1->x - pObj2->x;
02 dy = pObj1->y - pObj2->y;
03 iDistance = sqrt( dx*dx +
dy*dy
04 );
05 if (iDistance < iProximity)
06 { /* ... coger est en el
rango
07 ... */ }
dx = pObj1->x - pObj2->x;
dy = pObj1->y - pObj2->y;
if (iDistanceSquared <
iProximity*iProximity)
{ /* ... coger est en el
rango
06 ... */ }
DESARROLLO
if (iBytesPerPixel == 1)
{
pixel = *(Uint8 *)pSurfacePtr;
r = pCurrentSurface->format->palette->colors[pixel].r;
g = pCurrentSurface->format->palette->colors[pixel].g;
b = pCurrentSurface->format->palette->colors[pixel].b;
}
Odisea espacial
En un principio, tambin se puede utilizar el cuadro de limites de colisin
cuando se choca con el enemigo. Sin
embargo, puesto que se puede tener una
amplia gama de enemigos diferentes (y
solo se dispone del tamao de un bloque
para almacenarlos) puede que sea un
poco injusto si se representan con unos
grficos tan pequeos que podran matar
al jugador a una distancia de 30 pixeles.
De manera parecida, tambin es
injusto si la animacin provoca que el
enemigo se encoja a la mitad de su
tamao original, pero todava se considera la colisin del enemigo como
cuando estaba a tamao completo. Por
lo tanto se va a necesitar una forma de
Dulce perfeccin
La colisin basada en pixels en realidad
es realmente fcil en teora: Comprobar
cada pixel de la imagen y si alguno de
ellos es opaco (es decir, no es transparente) se ha encontrado una colisin. SDL, a
pesar de toda su potencia, no proporciona
una sencilla funcin GetPixel. De hecho,
no proporciona ninguna funcin GetPixel.
As que habr que escribir una.
El primer paso en el proceso es bloquear la superficie. El bloqueo es un
mtodo donde la imagen de la superficie
(ya est en memoria de vdeo o de sistema) se copia a un nuevo bfer en la
memoria del sistema. Entonces se
pueden leer, escribir o cambiar los pixeles en este bfer, todo lo que se necesite
y cuando se desbloquee la superficie,
estos nuevos datos se copian nuevamente dentro de la superficie original.
Mientras la superficie est bloqueada,
no se podrn hacer operaciones de transferencia de bloques (blit) desde o haca
ella. Es el copiado de estos datos a y
www.linux-magazine.es
Nmero 04
29
SDL
DESARROLLO
Listado 7: Normalizando
01
02
03
04
05
06
07
Uint32 pixel;
SDL_PixelFormat *fmt = pCurrentSurface->format;
pixel = *(Uint32 *)pSurfacePtr; /* Leyendo de una superficie
de 4-bytes-per-pixel */
r = ((pixel & fmt->Rmask) >> fmt->Rshift) << fmt->Rloss;
g = ((pixel & fmt->Gmask) >> fmt->Gshift) << fmt->Gloss;
b = ((pixel & fmt->Bmask) >> fmt->Bshift) << fmt->Bloss;
*)pCurrentSurface->U
pixels;
30
Nmero 04
www.linux-magazine.es
Cantando canciones
disparatadas
Cuando se crea una superficie, no es
siempre del tamao que se solicita. Las
superficies en memoria de vdeo,por
ejemplo, suelen ser una potencia de 2
(128, 256, 512) y por tanto la pantalla de
640x480 podra potencialmente ser de
1024x512 pixeles. Puesto que el tamao
real est bajo el control de la tarjeta grfica hay muy poco que se pueda hacer
sobre esto.
Al usar las funciones de transferencia
de bloque estndares, SDL estimar
automticamente esto. Pero puesto que
se he puenteado SDL, se debe estar
enterado de qu est sucediendo bajo el
SDL
DESARROLLO
cdigo para crear una superficie de colisin, mientras que el procesado de x1,
y1 pide el cdigo prestado del cdigo
exDrawTile; ambos deben ser fciles de
seguir. Vase el archivo collision.c.
Una solucin alternativa es crear una
superficie de 8 bits con SDL_CreateRGBSurface y escribir en ella los datos de
colisin, quizs con una transferencia de
bloque (blit), o una combinacin de bloqueo-desbloqueo.
Entonces,
para
ahorrar tiempo de procesador, se puede
bloquear la superficie para toda la
duracin del juego (porque no se transferir nada hacia o desde l). Siempre
hay ms de una solucin a un problema.
A modo de ejercicio intente [1] y vaya a
la carpeta sources/sdl.
for(y=y1;y<y2;y++)
{
for(x=x1;x<x2;x++)
{
if (*pColData)
{
/* Colisin encontrada!!
Almacnela!!! */
return TRUE;
}
pColData++;
}
pColData -= (x2-x1);
pColData += 640;
}
RECURSOS
[1] http://www.bluedust.com/pub/
www.linux-magazine.es
Nmero 04
31
DESARROLLO
Ruby
Araa en la Red
Ruby es un lenguaje muy elegante y
armonioso (sus partes funcionan de
forma conjunta de manera efectiva).
Ruby tambin reduce significativamente los agobios del desarrollador.
Mostraremos como usar Ruby para
construir una aplicacin de
araaWeb rpida y sencilla.
POR DAVID BERUBE
www.spidertim.com
32
Nmero 04
www.linux-magazine.es
Plan de la Araa
El programa usar el nombre de un
usuario de LiveJournal y descargar su
lista de amigos. Entonces el programa
recuperar una lista de publicaciones
Ruby
Listado 1: parse_user.rb
01 require 'net/http'
02 h =
Net::HTTP.new('www.livejournal
.com', 80)
03 friend_arr = []
04 person = ARGV[0]
05 resp, data
=h.get("http://www.livejournal
.com/userinfo.bml?user=#{perso
n}",nil)
06 print "Lista amistades de
#{person}\n"
07 data.split("\n").each do|line|
08
line.split(",").each do
|token|
09
if token
=~/userinfo.bml\?user=([^'&]*)
\'/friend_arr.push $1
10
print "#$1\n"
11
end
12
end
13 end
14 print "\n"
15 friend_arr.each do |friend|
16
print "Analizando bitcora
de #{friend} en busca de
comentarios de
#{person}...\n";
17
f
=File.new("#{person}_#{friend}
.txt","w")
18
f.puts `ruby
parse_journal.rb
#{friend}#{person}`
19
f.close
20 end
Arrastrndonos por
LiveJournal
Tenemos dos scripts involucrados en el
anlisis gramatical de un portal de noticias. El primero, parse_user.rb (ver el
Listado 1), recoge un argumento de la
lnea de comandos (el usuario que
deseamos monitorizar). Entonces descarga
la lista de personas que el usuario ha marcado como amigos, en teora con los que
es ms probable que comente sus blogs. Si
lo deseamos, podemos buscar los amigos
de esos amigos y los amigos de los amigos
de sus amigos y as sucesivamente. Esto
llama repetidamente el segundo cdigo,
parse_journal.rb (ver Listado 2), una vez
por cada amigo.
DESARROLLO
www.linux-magazine.es
Nmero 04
33
Ruby
Listado 2: parse_journal.rb
01 require 'net/http'
02 h =
Net::HTTP.new('www.livejournal
.com', 80)
03 url_array = []
04 person = ARGV[0]
05 watch_for = ARGV[1]
06 resp, data
=h.get("http://www.livejournal
.com/users/#{person}/data/rss"
,nil)
07 data.split("\n").each do|line|
08
if line
=~/<comments>http:\/\/www.live
journal.com([^<]*)<\/comments>
/
09
url_array.push $1
10
end
11 end
12 url_array.each { |url|
13
response, data =
h.get(url,nil)
14
logging = false
15
data.split("\n").each do
|line|
16
if line =~ /<a
[^>]*href='http:\/\/www.livejour
nal.com\/users\/([^"]*)\/'><b>/
34
Nmero 04
17
18
19
20
21
22
23
24
if $1 ==watch_for
print "\n---\n"
logging= true
else
logging = false
end
end
if line =~ /<a
href='(http:\/\/www.livejourna
l.com\/users\/[^\/]*\/[^']*thr
ead[^']*)'>.*<\/td><\/tr><tr><
td>(.*)<p style='margin:/ and
logging
25
url = $1
26
comment = $2
27
comment.gsub!('<br
/>',"\n")
28
comment.gsub!(/<\/*[^>]*>/,'')
29
comment.gsub!('(Reply to
this) (Parent)','')
30
print"#{url}\n#{comment}"
31
logging=false
32 end
33 end
34 }
www.linux-magazine.es
Conclusin
Las araas son poderosas y Ruby es un
gran lenguaje para escribirlas. Ni que
decir tiene, que un gran poder entraa
una gran responsabilidad, y han de
utilizarse con cautela. Historias de
araas que se han comportado de
forma incorrecta sobrecargando servidores Web con demandas son
comunes. Deberamos asegurarnos de
que nuestra araa no causa problemas
a los administradores. En algunos
casos, los administradores publican
instrucciones respecto a como deben
utilizar los servicios automticos su
sitio. Si es as deberamos preocuparnos de seguirlas. Nos proveen con
un servicio gratuito y no es obligatorio
RECURSOS
[1] Documentacin Ruby http://www.
ruby-doc.org/
[2] Programming Ruby (Programando Ruby).un libro electrnico gratuito de Ruby
http://www.rubycentral.com/book/
[3] Un tutorial bien documentado de araas
Web http://www.searchlores.org/
phpregexspider.htm
EL AUTOR
DESARROLLO
Perl
DESARROLLO
Reportero a domicilio
En vez de visitar peridicamente
sitios de noticias para estar al da de
los ltimos reportajes, mucha gente
prefiere dejar este trabajo a un agregador de noticias. El agregador
avisar cuando aparezcan noticias. Si
un sitio web no tiene un alimentador
RSS, un nuevo modulo Perl simplificar la tarea de programar un
alimentador RSS para uso personal.
POR MICHAEL SCHILLI
Construyase uno
Lamentablemente, no todos los sitios
de noticias disponen de alimentadores
RSS. Realmente piensan que los usua-
www.linux-magazine.es
Nmero 04
35
DESARROLLO
Perl
Codificando
XML espera texto codificado en UTF-8.
UTF-8 es compatible con el cdigo
36
Nmero 04
www.linux-magazine.es
Alimentacin RSS
Pondremos a RssMaker a prueba, creando un alimentador RSS de la gran pgina
web http://books.perl.org/. Este sitio
destaca y examina los libros sobre Perl y
sera muy til saber cuando se han agregado nuevos ttulos. Como esto ocurre
de tarde en tarde, seria estupendo tener
un sistema de alerta.
bpo2rss ensea como llevar a cabo
esta tarea rpidamente. La funcin make
del modulo RssMaker hace el trabajo
pesado. El parmetro url especifica la
URL para la pgina web de
books.perl.org que contiene los enlaces a
los libros analizados recientemente. output especifica el nombre de archivo RSS
resultante. title es el titulo del alimentador que ms tarde se mostrar en el
agregador de noticias.
RssMaker llama a la annima subrutina
filter una vez por cada enlace. Cada vez
que hace eso RssMaker pasa dos parmetros: La URL para el enlace y el texto
correspondiente. La subrutina utiliza esta
informacin para comprobar si el enlace
es un titular que se debe aadir al alimentador. Si el filtro devuelve un 1, el enlace
ser aadido al alimentador; si el filtro
devuelve un 0, el enlace no se aade. En
el caso del sitio de books.perl.org, bpo2rss
Perl
DESARROLLO
Agregadores
Servicios como Bloglines (http://www.
bloglines.com/) ejecutan aplicaciones
web que permite a los usuarios registrados suscribirse a los alimentadores y
Listado 1:RssMaker.pm
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
#############################
##
# RssMaker -- Genera un
alimentador
# RSS de una pgina web
# Mike Schilli, 2004
# (m@perlmeister.com)
#############################
######
package RssMaker;
use warnings;
use strict;
use LWP::UserAgent;
use HTTP::Request::Common;
use XML::RSS;
use HTML::Entities
qw(decode_entities);
use URI::URL;
use HTTP::Date;
use DateTime;
use HTML::TreeBuilder;
use Log::Log4perl qw(:easy);
#############################
sub make {
#############################
my (%o) = @_;
$o{url}
|| LOGDIE "url ausente";
$o{title}
|| LOGDIE
"titulo ausente";
$o{output} ||= "out.rdf";
$o{filter} ||= sub { 1 };
$o{encoding} ||= 'utf-8';
my $ua =
LWP::UserAgent->new();
INFO "Sacando $o{url}";
my $resp =
$ua->request(
GET $o{url} );
LOGDIE "Error sacando ",
"$o{url}"
if $resp->is_error();
my $http_time =
042
043
044
045
046
$resp->header(
'last-modified');
$http_time ||=
time2str( time() );
INFO "Ultima modificacin:
",
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
$http_time;
my $mtime =
str2time($http_time);
my $isotime =
DateTime->from_epoch(
epoch => $mtime);
DEBUG "Ultima
modificacin:",
$isotime;
my $rss =
XML::RSS->new(
encoding =>
$o{encoding} );
$rss->channel(
title => $o{title},
link => $o{url},
dc => {
date => $isotime . "Z"
},
);
foreach(exlinks(
$resp->content(),
$o{url})) {
my ($lurl, $text) = @$_;
$text =
decode_entities($text);
if ($o{filter}->(
$lurl, $text)) {
INFO "Adding rss ",
"entry: $text $lurl";
$rss->add_item(
title => $text,
link => $lurl);
}
}
INFO "Guardando la salida
en ",
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
"$o{output}";
$rss->save( $o{output} )
or LOGDIE "Cannot write",
" to", " $o{output}";
}
#############################
sub exlinks {
#############################
my ($html, $base_url) = @_;
my @links = ();
my $tree =
HTML::TreeBuilder->new();
$tree->parse($html)
or return ();
for(@{$tree->extract_links(
'a')}) {
my ($link, $element,
$attr, $tag) = @$_;
next
unless $attr eq "href";
my $uri =
URI->new_abs( $link,
$base_url );
next
unless length $element
->as_trimmed_text();
push @links,
[
URI->new_abs(
$link, $base_url
),
$element
->as_trimmed_text()
];
}
return @links;
}
1;
www.linux-magazine.es
Nmero 04
37
Perl
Tiempo atmico
Parece que en el futuro prximo, el
estndar RSS ser reemplazado por un
nuevo estndar llamado Atom. Los
comits habituales estn ahora trabajando en este asunto. Si los clientes
Atom listados en [6] alcanzan una masa
critica, probablemente CPAN tenga un
modulo AtomMaker con una funcionalidad similar a RssMaker. Entonces este
modulo usar el modulo XML::Atom que
ya est disponible en CPAN. Por el
Listado 2:bpo2rss
01 #!/usr/bin/perl
02 #############################
03 # bpo2rss -- books.perl.org
04 # generador de alimentador
RSS
05 # Mike Schilli, 2004
06 # (m@perlmeister.com)
07 #############################
08 use warnings;
09 use strict;
10
11 use RssMaker;
12 use Log::Log4perl qw(:easy);
13
14 Log::Log4perl->easy_init(
15
$INFO);
16
38
Nmero 04
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
www.linux-magazine.es
my $url =
'http://books.perl.org/';
RssMaker::make(
url => $url,
title => "books.perl.org",
filter => sub {
my ( $link, $text ) = @_;
return 1
if $link =~
m#/book/\d+#;
return 0;
},
output => "bpo.rss",
);
Instalacin
Todos los mdulos que necesita RssMaker.pm estn disponibles desde
CPAN. Se debe configurar cualquier
guin nivelador tal como bpo2rss para
que se ejecute en su sistema una vez al
da como una tarea cron. Los archivos
RSS obtenidos slo se deben publicar en
la Intranet local, puesto que los
archivos RSS publicados en Internet se
podran interpretar como enlazamiento
profundo y pueden originar problemas
legales.
Durante la fase de eliminacin de
errores, es conveniente establecer la
configuracin Log4perl del guin a
$DEBUG. La ventaja de fijar Log4perl a
$DEBUG es que $DEBUG permitir que
se supervisen actividades tales como
sacar, extraccin de enlaces y la generacin del alimentador RSS en la
pantalla. En un ambiente de produccin, se puede utilizar el ajuste
$ERROR en su lugar para quitar
cualquier salida indeseada y parar el
bombardeo de mensajes de email
RECURSOS
[1] Listados de este artculo: http://www.
linux-magazine.com/Magazine/
Downloads/51/Perl/
[2] Amphetadesk: http://www.disobey.com/
amphetadesk/
[3] Michael Fitzgerald, XML Hacks, OReilly
[4] Reuven Lerner, Aggregating with Atom,
Linux-Journal 11/2004, p.18 y siguientes.
[5] Ben Hammersley, Content Syndication
with RSS, OReilly 2003.
[6] Listado de aplicaciones que dan soporte
al formato Atom: http://atomenabled.
org/everyone/atomenabled/
EL AUTOR
DESARROLLO
Php
DESARROLLO
Cocina Nuklear
Con PHPNuke se puede crear una obra maestra o un desastre total. Todo depende de las herramientas que se usen y de
la destreza que se tenga con ellas. Incluso con el mtodo y la herramienta ms sencilla, PHPNuke permite crear fcilmente sitios webs dinmicos que pueden acceder tanto a datos en formato texto como a bases de datos empresariales.
POR JAMES MOHR
Inicio
Antes de empezar a escribir un mdulo,
debera establecer los criterios. Como los
principios bsicos a aplicar, tal y como
www.linux-magazine.es
Nmero 04
39
DESARROLLO
Php
Funciones PHP
Aqu aparecen algunas funciones PHP que
se deberan mirar cuando se est
desarrollando un filtro para la entrada que
se ha de mandar a la base de datos:
addslashes
stripslashes
htmlentities
htmlspecialchars
striphtml
Para ms detalles consltese: http://www.
php.net/manual/en/.
40
Nmero 04
www.linux-magazine.es
Php
function show_recipe($recid) {
... cuerpo de funcin ...
}
Aadiendo la Sentencia
Switch
A continuacin, tenemos que usar la
sentencia switch. Como su nombre indica, se utiliza para conmutar el comportamiento del programa. En este caso, se
conmuta segn el valor de una variable
de la cadena de consulta (aparece en la
URL) que indica qu operacin debe
realizarse. Hacindolo podramos tener
algo parecido a esto:
switch ($op) {
case "show":
show_recipe($recid);
break;
default:
list();
break;
}
DESARROLLO
www.linux-magazine.es
Nmero 04
41
DESARROLLO
Php
SQL Injection
Otra cosa de la que hay que hablar es
algo llamado SQL injection. Esto es
un truco usado por los crackers para
conseguir que una consulta SQL haga
algo ms de lo que iba a hacer originalmente. Por ejemplo, si tiene un
mdulo que muestra el nombre de una
receta introducida por el usuario, se
tendra una consulta que devolviera
todos los campos y podra ser como
sigue:
select * from recipes where U
recipename = '$userinput';
42
Nmero 04
De este modo, nunca se debera confiar en los datos pasados por la cadena
de consulta de la URL. Esto es especialmente cierto si los valores en la consulta
provienen de la lectura de un formulario
que son introducidos por los usuarios,
como en este ejemplo. Incluso si el
usuario no conoce cmo se crea la consulta, es an posible introducir valores
para cambiarla.
La manera ms fcil es comprobar la
variable $userinput en busca de cadenas que no pertenezcan a la consulta,
como las comillas e incluso la palabra
union. Incluso se podra ir ms lejos
y escribir una funcin que realizara
una comprobacin a fondo. Esta podra
incluir diferentes funciones PHP que
convirtieran el texto de entrada en valores seguros antes de insertarlos en
la base de datos. Mirar el cuadro
adjunto para ms detalles. Para ms
informacin sobre SQL injection y
temas de seguridad con PHPNuke se
pueden consultar en las referencias [2]
y [3].
En nuestro ejemplo, alguien podra
tericamente pasar el identificador de la
receta directamente en la cadena de consulta de la URL (por ejemplo,
&$recid=42) y manipular el valor de tal
forma que se cree una consulta SQL
nueva. En este caso, sera bastante simple comprobar si el valor asignado a la
variable es un nmero. Si no lo fuera, el
programa simplemente no realizara la
consulta (y podra generar un mensaje
de error).
www.linux-magazine.es
PHPNuke viene con capacidades multilinges incluidas que pueden ser configurados desde el panel de administracin y proporcionar servicios en unos
30 idiomas. En el directorio de PHPNuke,
as como en el de la mayora de los
mdulos, se encuentra un directorio llamado language que contiene un nmero
de ficheros con el formato language.php.
Estos ficheros contienen la traduccin
para la mayora del texto que se muestra
en cada pgina y son de la forma
define("_CONSTANT","Traduccin");.
Por ejemplo, para definir lo que se muestra para la constante _YES, se podra
tener:
define("_YES","S"); -Espaol
define("_YES","Ja"); -Alemn
define("_YES","Kyll");
-Finlands
Para incluir esta funcionalidad en nuestro mdulo, hay que aadir el directorio
language en el mdulo junto con los
ficheros de los idiomas que se deseen
incluir.
Lo mejor es crear un fichero para su
idioma por defecto (como se define en el
panel de administracin) y copiarlo. Esto
asegura que todos los trminos que se
usen estarn definidos. Si se deja un trmino particular, se produce un error al
cargarse la pgina para ese idioma, lo
que va en contra de la funcionalidad del
sitio web.
RECURSOS
[1] Vase el sistema PHPNuke en accin con
varios mdulos y bloques hechos por mi:
http://www.linux-tutorial.info
[2] NukeCops FAQ para SQL Injection: http://
www.nukecops.com/article74.html
[3] Artculo sobre SQL Injection del HOWTO
de PHPNuke: http://www.karakas-online.
de/EN-Book/sql-injection-with-php-nuke.
html
[4] El sitio PHPNuke: www.phpnuke.org
[5] Gran foro de PHPNuke y otros recursos:
www.nukecops.com
[6] Como indica su nombre, contiene parches
para varias versiones:www.nukefixes.com
[7] Diversos recursos para PHPNuke: www.
nukeresources.com
[8] Temas de seguridad y parches: www.
nukesecurity.com
Python
DESARROLLO
15
16
win.contentPane.add(pnlBotones
)
17
win.size=(300,300)
18
win.pack()
19
win.show()
20
21 def accion(event):
22
accionBoton =
event.getActionCommand()
23
if accionBoton ==
"uno":
24
cuadroTexto.setText("UNO")
25
elif accionBoton ==
"dos":
26
cuadroTexto.setText("DOS")
27
else:
28
cuadroTexto.setText("TRES")
29 root = __init__()
www.linux-magazine.es
Nmero 04
43
DESARROLLO
Python
Listado 2: JyRSS.py
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
#!/usr/bin/jython
034
import
import
import
import
import
035
javax.swing as swing
java.lang as lang
java.awt as awt
java.util as util
os
class Lector:
036
037
038
039
self.pnlBoton.add(lblNombre)
040
def __init__(self):
self.vectorrss =
util.Vector()
self.vectorurl =
util.Vector()
self.listaRSS()
self.listaNoticias()
self.pnlBotones()
self.menu()
if
os.path.exists('listarss.txt'
):
self.pnlBoton.add(self.txtNom
bre)
041
self.pnlBoton.add(lblUrl)
042
self.pnlBoton.add(self.txtUrl
)
043
044
self.leeFicheroRss()
self.win =
swing.JFrame("JyRss",
size=(300,
300),windowClosing=self.exit)
025
self.win.setJMenuBar(self.men
u)
026
self.win.contentPane.add(self
.pnlBoton,awt.BorderLayout.NO
RTH)
027
self.win.contentPane.add(self
.jscplista,
awt.BorderLayout.WEST)
028
self.win.contentPane.add(self
.jscpNoticias,
awt.BorderLayout.CENTER)
029
self.win.setSize(600,
400)
030
self.win.show()
031
032
def pnlBotones(self):
033
self.pnlBoton =
swing.JPanel(awt.FlowLayout()
)
44
Nmero 04
for cadaBoton in
acciones:
045
self.pnlBoton.add(swing.JButt
on(cadaBoton,
actionPerformed=self.accionMe
nu))
023
024
acciones =
["Aadir","Borrar","Leer"]
self.txtUrl =
swing.JTextField(10)
lblNombre =
swing.JLabel("Nombre")
self.txtNombre =
swing.JTextField(10)
lblUrl =
swing.JLabel("Url")
046
047
048
def menu(self):
opciones =
["Guardar"]
049
self.menu =
swing.JMenuBar()
050
archivo =
swing.JMenu("Archivo")
051
for eachOpcion in
opciones:
052
archivo.add(swing.JMenuItem(e
achOpcion,
actionPerformed=self.accionMe
nu))
053
self.menu.add(archivo)
054
055
def listaRSS(self):
056
self.lstLista =
swing.JList()
057
self.jscplista =
swing.JScrollPane(self.lstLis
ta)
058
self.jscplista.setSize(100,10
0)
www.linux-magazine.es
059
060
061
def listaNoticias(self):
self.lstNoticias =
swing.JEditorPane()
062
self.jscpNoticias =
swing.JScrollPane(self.lstNot
icias)
063
064
def leeFicheroRss(self):
065
f =
open('listarss.txt','r')
066
fu =
open('listaurl.txt', 'r')
067
linea = f.readline()
068
lurl = fu.readline()
069
while linea:
070
self.vectorrss.add(linea)
071
self.vectorurl.add(lurl)
072
linea =
f.readline()
073
lurl =
fu.readline()
074
f.close()
075
fu.close()
076
self.lstLista.setListData(sel
f.vectorrss)
077
078
def
leeFicheroNoticias(self):
079
fg =
open('news.txt','r')
080
texto = fg.read()
081
fg.close()
082
self.lstNoticias.setText(text
o)
083
084
def guardarFichero(self):
085
fg =
open('listarss.txt','w')
086
furl =
open('listaurl.txt','w')
087
j =
self.vectorrss.size()
088
i = 0
089
while i<=j-1:
090
texto =
self.vectorrss.get(i)
091
fg.write(texto
+'\n')
092
texto =
self.vectorurl.get(i)
Python
Instalacin de Jython.
Para trabajar con Jython, necesitamos
tener Java instalado en nuestro ordenador. Podemos usar el Java Runtime
Edition (j2re), o el Java Developers
Kit(j2sdk), en su version 1.4.2 como
mnimo, descargables desde [2].
furl.write(texto
+'\n')
094
095
096
097
098
self.txtNombre.setText("")
112
i = i+1
fg.close()
furl.close()
def accionMenu(self,
event):
099
self.accion =
event.getActionCommand()
100
if self.accion ==
'Aadir':
101
if
self.txtNombre.getText() ==
"":
102
self.vectorrss.add("SIN
NOMBRE\n")
103
else:
104
self.vectorrss.add(self.txtNo
mbre.getText())
105
if
self.txtUrl.getText() == "":
106
self.vectorurl.add("SIN
URL\n")
107
else:
108
self.vectorurl.add(self.txtUr
l.getText())
109
110
self.lstLista.setListData(sel
f.vectorrss)
111
elif self.accion ==
'Leer':
115
Primeros pasos
self.txtUrl.setText("")
113
114
DESARROLLO
item =
self.lstLista.getSelectedInde
x()
116
url =
self.vectorurl.get(item)
117
os.system('python
lrss.py '+ url)
118
self.leeFicheroNoticias()
119
120
elif self.accion ==
'Borrar':
121
itemborrar =
self.lstLista.getSelectedInde
x()
122
self.vectorrss.remove(itembor
rar)
123
self.vectorurl.remove(itembor
rar)
124
self.lstLista.setListData(sel
f.vectorrss)
125
126
elif self.accion ==
'Guardar':
127
self.guardarFichero()
128 root = Lector()
Bueno, ya est todo preparado en nuestro sistema. Es hora de ver como funciona Jython. Para empezar, podis
trastear un poco con el intrprete como
lo habis hecho con el de Python, y as
podris ver que el funcionamiento es
idntico.
$ jython
Jython 2.1 on java1.4.2_05U
(JIT: null)
Type "copyright", "credits" orU
"license" for more information.
>>> print 'Hola Mundo'
Hola Mundo
>>>
www.linux-magazine.es
Nmero 04
45
DESARROLLO
Python
Programacin
Al igual que en Python, para nuestras
aplicaciones, lo mas cmodo es hacer
que el intrprete ejecute un fichero (o
varios) de cdigo. Jython no tiene
ningn tipo de extensin establecida
para los ficheros, y lo ms normal es
usar la misma que Python .py para tener
nuestros ficheros de cdigo bien diferenciados de los dems.
Listado 3: lrss.py
01 from xml.dom import minidom
02 import urllib
03
04 DEFAULT_NAMESPACES = \
05
(None, # RSS 0.91, 0.92,
0.93, 0.94, 2.0
06
'http://purl.org/rss/1.0/',
# RSS 1.0
07
'http://my.netscape.com/rdf/si
mple/0.9/' # RSS 0.90
08
)
09 DUBLIN_CORE =
('http://purl.org/dc/elements/
1.1/',)
10
11 def load(rssURL):
12
return
minidom.parse(urllib.urlopen(r
ssURL))
13
14 def getElementsByTagName(node,
tagName,
possibleNamespaces=DEFAULT_NAM
ESPACES):
15
for namespace in
possibleNamespaces:
16
children =
node.getElementsByTagNameNS(na
mespace, tagName)
17
if len(children): return
children
18
return []
19
20 def first(node, tagName,
possibleNamespaces=DEFAULT_NAM
ESPACES):
21
children =
getElementsByTagName(node,
tagName, possibleNamespaces)
46
Nmero 04
22
23
24 def textOf(node):
25
return node and
"".join([child.data for child
in node.childNodes]) or ""
26
27 if __name__ == '__main__':
28
import sys
29
rssDocument =
load(sys.argv[1])
30
fn = open('news.txt','w')
31
Noticia=""
32
for item in
getElementsByTagName(rssDocume
nt, 'item'):
33
Noticia = 'Title: __' +
textOf(first(item, 'title'))+
"__\n"
34
Noticia = Noticia + 'Link:
\n
'+ textOf(first(item,
'link'))+ "\n"
35
Noticia = Noticia +
'Description: \n\n
' +
textOf(first(item,
'description'))+ "\n"
36
Noticia = Noticia +
'\nDate: ' +
textOf(first(item, 'date',
DUBLIN_CORE))+ "\n"
37
Noticia = Noticia +
'\nAuthor: '+
textOf(first(item, 'creator',
DUBLIN_CORE))+ "\n"
38
Noticia = Noticia +
"--------------------------------------\n"
39
fn.write(Noticia)
40
fn.close()
www.linux-magazine.es
Lector de Noticias RSS -JyRSSPuede que algunos de vosotros os preguntis que es RSS. RSS no es ms que
un fichero .xml con una serie de etiquetas. stas siguen un estndar definido
por xml.com para transmitir pequeas
noticias, por ejemplo, a travs de
Internet, de forma que no haga falta
abrir un navegador para leerlas, slo
bastara con usar una aplicacin que
Python
Entornos de programacin
Jython.
Mucha gente prefiere trabajar con IDEs
(interfaz para el desarrollo de aplicaciones) a la hora de programar.
Actualmente no he encontrado an
ninguno que sea exclusivamente para
desarrollar en Jython. Lo que s existe,
son plugins que instalamos en otros
IDEs y que nos permiten trabajar con
este lenguaje. Podemos encontrar diferentes plugins para dos de los IDEs ms
populares, uno para Netbeans (ver [4])
que os podis bajar desde la aplicacin
de actualizacin que lleva implementada. Y luego tenis otro para Eclipse (ver
[5]), llamado Red Robin que podis
encontrar en [6]. Tanto en la web de
Netbeans, como en la web de Red
Robin, se explica como debemos insta
larlos.
RECURSOS
[1] Pgina de Jython: http://www.jython.org
[2] Descarga de Java: http://java.sun.com
[3] Cdigo original del programa: http://
www.xml.com/lpt/a/2002/12/18/
dive-into-xml.html
[4] Plugins de Netbean: http://www.
netbeans.org
[5] IDE Eclipse: http://www.eclipse.org
[6] Plugin Jython para Eclipse: http://home.
tiscali.be/redrobin/jython/
LOS AUTORES
DESARROLLO
www.linux-magazine.es
Nmero 04
47
KNOW HOW
Scribus
Un Peridico en Linux
En este primer artculo de una serie
de tres, el ex-director artstico de un
peridico, Jason Walsh, echa un vistazo a la autoedicin en Linux. Jason
crear un peridico usando Scribus
junto con otras aplicaciones Linux y
lo probar en una editorial real.
POR JASON WALSH
Salida
Antes de la etapa RIP, habr que exportar
nuestras pginas a ficheros PDF. Los PDF de
Adobe se han convertido en los formatos
estndar para el intercambio de documentos impresos; si su PDF se crea de forma adecuada, se podrn imprimir en un amplio
rango de dispositivos de salida, incluyendo
impresoras de chorro de tinta, prensas digitales y prensas offset de cuatro colores.
48
Nmero 04
Historia de la Edicin
Anteriormente a la aparicin de sistemas
de escritorio WYSIWYG para la edicin,
la produccin de peridicos y revistas
era un complicado y arcano proceso que
implicaba equipos especializados como
mquinas de linotipia, cmaras de procesos e impresoras de bromuro. El interfaz
de usuario grfico del Apple Macintosh y
su
primera
aplicacin
estrella,
Pagemaker, lo cambi todo para siempre.
Despus de siglos, la maquetacin era
accesible para cualquiera, al menos a
cualquiera que pudiera permitirse un
Mac y una copia de Pagemaker.
El dominio de Pagemaker ha declinado
hasta el punto de ser casi un producto
usado en las empresas exclusivamente
www.linux-magazine.es
Presentamos Scribus
Sin embargo an no est todo perdido.
Siguiendo la tradicin del cdigo abierto, cuando una aplicacin no est
disponible, un grupo de programadores
se renen para producir una alternativa
gratuita. Esa alternativa es Scribus
(vase la Figura 1).
La instalacin de Scribus es razonablemente sencilla, desafortunadamente no
hay paquetes binarios universalmente compatibles, pero compilarlo es bastante fcil:
./configure
make
make install
Scribus
Figura 1: Scribus ejecutndose en Suse 9.1. Por fin, una aplicacin de maquetacin con calidad profesional llega a Linux.
Creacin de Pginas
Para nuestro proyecto vamos a trabajar
con unos requerimientos especficos predefinidos. El resultado final ser un cierto nmero de pginas para un peridico.
El primer paso es definir la forma y el
tamao de la pgina, junto con algunos
otros parmetros comunes: mrgenes y
columnas.
La Figura 2 muestra el cuadro de dilogo de las propiedades de maquetacin de
Quark XPress 6 en el Mac OS X (Layout
> Layout Properties). Si se est pasando
a Scribus desde Quark, el primer paso es
copiar estos datos bsicos e introducirlos
en Scribus. Si se est creando una nueva
maqueta,
hay
que
definir
las
propiedades equivalentes.
Por qu no se importa la plantilla
original de Quark a Scribus? Porque
lamentablemente Scribus no puede
importar ficheros de otras aplicaciones
de maquetacin. Tal y como dicen los
desarrolladores, los formatos de
ficheros DTP son internamente muy
complejos, probablemente los ms com-
KNOW HOW
www.linux-magazine.es
Nmero 04
49
KNOW HOW
Scribus
Marcos
50
Nmero 04
www.linux-magazine.es
Scribus
KNOW HOW
www.linux-magazine.es
Nmero 04
51
KNOW HOW
Scribus
52
Nmero 04
www.linux-magazine.es
Conclusin
Este artculo nos ha presentado Scribus,
una aplicacin de maquetacin con calidad profesional de cdigo abierto para
Linux. En el prximo nmero, aprenderemos a manipular el texto y los grficos
en el entorno de Scribus.
Panoramas
KNOW HOW
Podemos crear una imagen agradable alineando mltiples paisajes para conformar un panorama. Pero la alineacin
puede ser complicada, especialmente si las fotografas individuales no coinciden. Herramientas como Hugin, Enblend y
Autopano-SIFT pueden ayudarnos a crear panormicas perfectas sin marcas.
POR OLIVER FROMMEL
Cuadro 1: PanoTools
Durante mucho tiempo, el paquete
PanoTools fue el nico software gratuito para
crear imgenes panormicas. Las condiciones de la licencia de PanoTools siempre
han sido complejas. La librera y PTOptimizer
se distribuye bajo la GPL, mientras que se
aplican varias licencias a algunos de los programas.
Ecualizacin y Alineado de
Fotografas
El programa de grficos Hugin [2] muestra las imgenes permitiendo al usuario
seleccionar puntos neurlgicos para
ecualizar y alinear las imgenes.
El programa es fcil de instalar pero
requiere algunas libreras que algunas
distribuciones no incluyen. En el
recuadro Instalacin hay ms detalles
al respecto de la instalacin.
Tras escribir hugin para lanzar el programa aparece la ventana mostrada en la
figura 2. Pulsamos Add individual
www.linux-magazine.es
Nmero 04
53
KNOW HOW
Panoramas
Hugin.
Cuadro 2: Instalacin
Hugin necesita la librera WxWidgets
(antiguamente WxWindows) y la extensin
WxWidgets-XRC. La mayora de las distribuciones incluyen las otras libreras requeridas, como Libtiff, LibPNG y LibJPG. Al margen del paquete matemtico FFTW, Hugin
tambin necesita la librera Boost Library si
pretendemos construir Hugin nosotros
mismos.
Desafortunadamente, la versin y nombre
dependen de la distribucin. Por ejemplo, la
librera Boost de desarrollo para Fedora
simplemente se llama libboost-devel; los
usuarios de Debian necesitan tres paquetes
llamados libboost-graph-dev, libboostdev y
libboost-python-dev. Los archivos requeridos para Fedora estn localizados en el subdirectorio del DVD. El siguiente comando
instala las libreras:
rpm -iv panorama-tools-2.7a-1.U
i386.rpm wxGTK-* fftw2-*
54
Nmero 04
Las herramientas Panorama incluyen libpano12,lo que no impide que el paquete gestor
se queje de que el paquete falta porque las
dependencias del paquete son errneas. El
camino que resuelve el problema implica
especificar una opcin del programa RPM para
deshabilitar la comprobacin de dependencia:
2-4.1.fc2.dag.i386.rpm
Debian no dispone de los paquetes adicionales wxGTK que incluyen el nombre xrc
en el paquete; en su lugar debemos buscar
libwxgtk2.4-contrib-dev. Podemos usar los
siguientes comandos para instalar las libreras requeridas, LibPano y Hugin:
www.linux-magazine.es
Panoramas
KNOW HOW
Montando imgenes
La ltima pestaa, Stitcher (Coser), es el
corazn del programa y el principal
desafo al mismo tiempo: las cosas no
siempre funcionan de la forma que se
esperan. Coser es el proceso de poner
mltiples imgenes juntas para crear una
imagen panormica.
Este proceso normalmente implica
primero alinear las imgenes y corregir
la distorsin antes de proceder al cosido.
Hugin soporta los llamados motores de
28mm
65
35mm
54
38
50mm
40
27
www.linux-magazine.es
Nmero 04
55
KNOW HOW
Panoramas
56
Nmero 04
autopano-complete.sh -o outputU
left center right.jpg
Figura 6: El mdulo de costura de Hugin soporta
varios formatos..
Automatizando puntos de
control
Si todo esto implica demasiadas pulsaciones para nuestro gusto podemos usar
otro programa que ajusta automtica-
Cuadro 4: Enblend
El paquete Enblend [6] no necesita nada
especial en la lnea de libreras aparte de
LibTIFF y LibJPG. En Fedora y Suse podemos
instalar Enblend escribiendo
rpm -iv enblend-2.0-1.bp.fc2.U
i386.rpm.
Desafortunadamente, los binarios no estn
disponibles para cada distribucin y puede
que necesitemos construir Enblend nosotros
mismos. La siguiente lnea se ocupa de la
instalacin en Debian:
apt-get install libjpeg62-devU
libtiff4-dev libpng3-dev fftw-U
dev libboost-graph-dev libU
boost-dev libboost-python-dev
Ahora podemos proceder a compilar
Enblend.
www.linux-magazine.es
Qu es lo siguiente?
Estas pistas nos deberan ayudar a
comenzar a crear nuestras imgenes
panormicas propias. El hecho de que ni
siquiera hemos visto una mnima parte
del ingente nmero de opciones y mens
disponibles muestra el potencial de
herramientas como Hugin.
Una lista de correo amistosa nos ayudar a descubrir los ltimos avances en
el software panormico, con usuarios
muy felices de asistir a los desarrolladores. Es lgico pensar que los pequeos
errores sern eliminados del programa
en breve. Y si deseamos ayudar despus
de leer este artculo, por qu no ha
cerlo?
RECURSOS
[1] Nueva pgina Web para las hurfanas
Panotools: http://panotools.sourceforge.
net/
[2] Hugin: http://hugin.sourceforge.net/
[3] Descargas
Mono:
http://www.
mono-project.com/downloads/
[4] Mono en Debian: http://pkg-mono.alioth.
debian.org/
[5] Autopano-SIFT: http://user.cs.tu-berlin.de/
~nowozin/autopano-sift/
[6] Enblend: http://enblend.sourceforge.net/
[7] Paquetes para varias herramientas de
panormicas: http://bugbear.blackfish.
org.uk/~bruno/ panorama-tools/
Yum
KNOW HOW
Al da con Yum
Chequeo de dependencias de
paquetes;
Listado 1: Extracto de
yum.conf
01 [base]
02 name=Fedora Core $releasever $basearch - Base
03
baseurl=http://mirrors.kernel.
org/fedora/core/$releasever/$b
asearch/os/
04
05 [updates-released]
06 name=Fedora Core $releasever $basearch - Released Updates
07
baseurl=http://mirrors.kernel.
org/fedora/core/updates/$relea
sever/$basearch/os/
Tiene sentido escoger un servidor mirror cerca de donde estamos para mejorar
la velocidad de descarga.
Usos Prcticos
www.linux-magazine.es
Nmero 04
57
KNOW HOW
Yum
chkconfig yum on
Distro-Actualizacin Yum
Yum puede incluso actualizar distribuciones completas, probablemente use Red
Hat o Fedora. Podramos actualizar Red
Hat 9.0 al actual Fedora Core 3, por ejemplo.
Un inconveniente es que la actualizacin de una distribucin necesita
mucho espacio en el disco duro y no funcionar si su sistema utiliza LVM (Logical
Volumen Management). Los usuarios de
LVM debern acudir a los CDs de instalacin y ejecutar la herramienta anaconda
Conclusin
Yum es extremadamente til para la
gestin de grupos de ordenadores en red.
Teniendo un servidor de paquetes Yum en
la red se facilita realmente el mantenimiento de todas las mquinas Linux. Las
pginas de ayuda de Yum (man yum) proporcionan ms detalles sobre el uso de
Yum y el proyecto Yum facilita una lista de
RECURSOS
[1] Pgina web del proyecto Yum: http://
linux.duke.edu/projects/yum
[2] Descargas de Yum: http://linux.duke.edu/
projects/yum/download.ptml
[3] Servidores mirror de Fedora: http://www.
fedora.redhat.com/download/mirrors.
html
[4] Como mejorar el sistema con Yum: http://
linux.duke.edu/%7Eskvidal/misc/
fc1-fc2-yum-hints.txt
[5] Multimedia repository: http://rpm.livna.
org
[6] FAQ no oficial de Fedora: http://www.
fedorafaq.org/
Muestra una corta descripcin e informacin sobre el programa up2date. La salida de este comando se muestra en la Figura 3.
58
Nmero 04
Elimina el paquete del programa xemacs y unas cuantas herramientas que lo acompaan.
Muestra informacin sobre los paquetes disponibles.
Busca los paquetes dsiponibles para la cadena especificada (nmap y gui en este caso). Esto permite buscar los paquetes slo si no conoce
exactamente sus nombres.
Actualiza el paquete Yum, si hay alguna actualizacin disponible.
www.linux-magazine.es
Charly
Tiempo Libre
Bloqueos ........................................64
Los bloqueos impiden conflictos cuando dos
procesos intentan acceder al mismo recurso
simultneamente. Aprendemos a implementarlos en este artculo.
lanz el programa.
INFO
[1] NTP: http://www.ntp.org
[2] OpenNTPD:http://openntpd.com/
EL AUTOR
SYSADMIN
Bsquedas con find .................60
En un archivo de centenares de Gigabytes
cmo encontrar un fichero perdido?
Durante las vacaciones con tan solo echarle un vistazo a la posicin del sol es
ADMINISTRACIN
server ptbtime1.ptb.de
server ptbtime2.ptb.de
listen on 10.0.0.42
Charly Khnast es
Gerente de Sistemas
Unix en el centro de
datos de Moers, Alemania cerca del
conocido Rhin. Entre
sus labores se incluye
la seguridad del
cortafuegos, la disponibilidad y cuidado
del DMZ (zona desmilitarizada).
www.linux-magazine.es
Nmero 04
59
ADMINISTRACIN
Find
Oficina de Objetos
Perdidos
Los ordenadores actuales con sus mltiples discos duros con Gigabytes y Gigabytes de
espacio, almacenan miles de ficheros. Un
fichero perdido puede causar gran cantidad de
trabajo y tambin puede plantear un riesgo de
seguridad. Afortunadamente, Linux tiene
algunas herramientas verstiles para encontrar
estos ficheros perdidos.
POR ANDR SELIG
60
Nmero 04
www.linux-magazine.es
usar otro tipo de argumentos. Las pruebas podran restringir los comandos a
un tipo especfico, tal como -type f (para
buscar slo ficheros), -type d (para buscar slo directorios) o -type l (para buscar slo enlaces).
Los administradores responsables
buscan ficheros que pertenecen a usuarios o grupos inexistentes en el proceso
de limpieza. El siguiente comando se
ocupar de realizar esa tarea: find /
-nouser -o -nogroup. La opcin -o es el
Find
Locate
Adems de las caractersticas mencionadas aqu, find tiene un amplio
rango de opciones que no podemos
incluir. Sin embargo, el programa tiene
un gran inconveniente: es lento.
find analiza los directorios de bsqueda uno por uno y tambin puede tener
que analizar los inodos de los archivos
para realizar las pruebas que se le
especifican. Si slo necesita buscar una
subseccin del directorio home con
unos cuantos cientos de ficheros, no
ADMINISTRACIN
www.linux-magazine.es
Nmero 04
61
ADMINISTRACIN
Kontact + IMAP
Todos a
Bordo
Kontact proporciona correo electrnico, libreta de direcciones y agenda en un slo paquete. Con soporte IMAP
significa que se puede acceder a los datos desde cualquier
sitio en la red. POR DANIEL MOLKENTIN
Recursos IMAP
Con el crecimiento diario de los buzones
de correo electrnico, cada vez ms
proveedores ofrecen a sus clientes acceso a un servidor IMAP (Internet Message
Access Protocol). IMAP tiene varias ventajas sobre el anterior protocolo POP
(Post Office Protocol). A pesar de ello,
tan slo unos pocos proveedores de
Internet han proporcionado a sus
clientes la suficiente capacidad de almacenamiento como para aprovechar al
mximo las capacidades que puede llegar a ofrecer IMAP. Pero Google ha
empezado la ofensiva en la guerra de las
cuentas de correo electrnico de los
Gigabytes y sus competidores estn
Glosario
Recursos: El concepto Kontact de un recurso
es una agenda o libreta de direcciones almacenada en una localizacin especfica (como
otro ordenador o un servidor), al que se
puede acceder usando un protocolo especfico (IMAP, ssh, etc).
62
Nmero 04
Configuracin de Kontact
www.linux-magazine.es
Kontact + IMAP
ADMINISTRACIN
antese la URL de la libreta de direcciones local e imprtese la URL seleccionado File | Import | Import vCard.
Prioridades
Figura 3: La migracin a la
cuenta IMAP proporciona una
gestin consistente de la
agenda y la libreta de direcciones desde distintos
ordenadores.
Figura 2: Antes de que pueda migrar a la cuenta de IMAP, hay que
definir una agenda nueva.
Migracin
Por ltimo, tendr que migrar su agenda
y su libreta de direcciones. Tasks usa la
misma configuracin que la agenda, as
que se puede ignorar. Lo primero que
hay que hacer es crear una agenda
nueva. Para ello, hay que abrir la vista
sobre la agenda existente a la izquierda
debajo de la vista del mes.
Seccionando Add, se selecciona el elemento Calendar on IMAP-server via
kmail en el desplegable, y por ltimo se
teclea un nombre intuitivo para la agenda nueva, como Agenda en el servidor
IMAP. Kontact debera mostrar ahora la
agenda local y la agenda nueva en
Resources.
El siguiente paso es mover las citas
desde la agenda local a la agenda nueva.
Para ello, primero se selecciona la agenda local y luego se usa el cuadro de di-
Actualizacin de KDE
Para que todo esto funcione, se necesita
Kontact 1.0 en KDE 3.3 o superior. Las buenas
noticias son que los usuarios de Suse 9.1 y
9.0 se pueden beneficiar de KDE 3.3. Existe
incluso una forma sencilla de actualizarse,
suponiendo que se dispone de una conexin
rpida de Internet: la descarga ocupa unos
300Mb.
Para empezar la actualizacin, hay que
salirse del GUI y, como root, lanzar la versin
en modo texto de YaST en la consola. En
Software | Change Source of Installation se
aade una nueva entrada ftp://ftp.suse.com/
pub/suse/i386/supplementary/KDE/
update_for_9.1/yast-source/
(bzw.
update_for_9.0). Una vez hecho esto, se
selecciona System Update. Hay que indicarle
al gestor de paquetes que resuelva (Resolve)
cualquier dependencia. Se puede ignorar los
conflictos que tengan que ver con kdebase3-suse. Si tiene problemas de estabilidad
despus de la instalacin, habr que eliminar kdebase3-suse. Sin embargo, eliminando
kdebase3-suse se elimina la integracin de
KDE Suse.
Vistas
Si intenta usar los recursos nuevos en
Windows, tendr dos opciones. Una
opcin es el cliente compatible Kolab
Athera [3] para Windows de The
Kompany. Pero si quiere tener Outlook o
si no tiene permiso para eliminarlo,
debera considerar usar el plug-in
para
Outlook
de
Toltech.
Desafortunadamente, el cliente es software comercial y tiene un coste de 14 $
US por mquina.
Ambos programas permiten que se
puedan usar los recursos IMAP en el
entorno de Microsoft. Los usuarios de la
versin de Outlook tendrn que usar el
idioma cuando creen los recursos en el
servidor de IMAP.
Progreso
Adems de no disponer de una caracterstica para la resolucin de conflictos,
Kontact actualmente carece de la opcin
para usar mltiples recursos IMAP.
Ambas funciones estarn disponibles
cuando la versin 3.4 del paquete KDE
PIM salga a la luz. Su salida est prevista
RECURSOS
[1] Sitio web de Kontact: http://www.
kontact.org
[2] Sitio web Kolab: http://www.kolab.org
[3] Cliente Athera: http://www.thekompany.
com/projects/aethera/
www.linux-magazine.es
Nmero 04
63
ADMINISTRACIN
Bloqueos
Consejos Expertos
Competencia
Encarnizada
Un genuino sistema multitarea como Linux ejecuta varios procesos concurrentemente. Los programas deben competir por el
acceso a los datos. Con la asignacin de bloqueos a los ficheros se
asegura el acceso exclusivo y se previene la posibilidad de prdida
BMW AG
de datos.
POR MARC ANDR SELIG
64
Nmero 04
www.linux-magazine.es
Anticuado
Los bloqueos antiguos son un problema
mucho ms serio. Este tipo de bloqueos
ocurren cuando un programa no logra
liberar archivos porque estos se han
colgado o un usuario ha matado el programa.
Esto significara que otros procesos
tendran que esperar literalmente una
eternidad a que el archivo sea liberado.
Listado 1: Bloqueo de un
fichero con Perl
01 #!/usr/bin/perl -wT
02 use Fcntl ':flock';
03 sysopen(FH, "File",
O_RDWR|O_CREAT) or die
04
"Error sysopen: $!";
05 flock(FH, LOCK_EX) or die
"Error flock: $!";
06
07 # ... Escribir a fichero ...
08
09 flock(FH, LOCK_UN) or die
"Error flock: $!";
10
close FH or die "Error
close: $!";
Bloqueos
Variantes de Bloqueos
Hay muchas formas distintas de implementar el bloqueo de archivos. Las dos
categoras bsicas son bloqueos obligatorios y bloqueos informativos, el kernel
que tenga el sistema llama a ambas variantes.
Los procesos no pueden ignorar a los
bloqueos obligatorios. El kernel tiene
Listado 2: Bloqueando un
fichero en Perl
01 #!/usr/bin/perl -w
02 use Fcntl;
03 sysopen(FH, "file.lock",
O_WRONLY|O_EXCL|O_CREAT)
04
or die "Error sysopen: $!");
Ficheros de Bloqueo
Los antiguos semforos son ms simples
que los bloqueos del kernel que hemos
visto hasta ahora. Literalmente hablando, un semforo es una seal visual para
controlar el trfico. Bajo Unix, un semforo es un archivo o la estructura de
Listado 3: Bloqueo
primitiva de fichero desde
el Shell
01 #!/bin/sh
02 # lockfile is part of the
procmail distribution and
03 # available on most Linux
distributions
04 lockfile file.lock
05 # ...
06 rm -f file.lock
ADMINISTRACIN
www.linux-magazine.es
Nmero 04
65
Herramientas: Superkaramba
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
SuperKaramba permite dotar de un aspecto precioso a tu escritorio con una coleccin
de temas que te permitir dar a tu entorno de trabajo un toque personal.
Desktopia: xvidcap
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
Muchas veces puede resultar difcil explicar la funcionalidad de una aplicacin con palabras. Un pantallazo puede ayudar, pero si necesitamos algo ms que una imagen fija,
xvidcap nos puede ayudar. Ahora es posible hacer ayudas de tutoriales que usan animaciones grabadas por nosotros mismos usando el software para que otros puedan
ver exactamente lo que estamos haciendo.
Configuracion: GFTP
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72
Tanto si le gustan las transferencias de ficheros desde una GUI o desde la lnea de
comandos, GFTP tiene la herramienta adecuada para el trabajo diario. El cliente de
GFTP tambin soporta caractersticas avanzadas como la transferencia segura de
ficheros con SSH.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
Sin duda hay mucho donde rascar con el navegador Mozilla. En este artculo usaremos
XUL para crear el men de una pgina Web perfecta. A lo largo del camino aprenderemos cosas sobre el Lenguaje de Coligacin Extensible (XBL) y como podemos usar XBL
para realzar la potencia de nuestras creaciones en XUL
. . . . . . . . . . . .80
Con un poco de filosofa por compaera, expondremos el modo en que podemos satisfacer las necesidades de nuestros compaeros profesores de otras lenguas, y de los
alumnos inmigrantes, en materia de interfaz de usuario y de entrada de caracteres.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
Los programas diff y diff3 del paquete diffutils nos ayudan a comparar ficheros de
texto, mostrando cualquier variacin entre ellos en la lnea de comandos e, incluso, si
es necesario, automticamente mezclar los ficheros.
. . . . . .87
Con esta cuarta entrega llegamos al final de este curso. Hemos considerado necesario
llegar hasta esta entrega para poder alcanzar un nivel que nos permita construir nuestro primer documento completo, un proyecto con ndices, captulos y bibliografa,
construido a partir de ficheros independientes.
KTools
LINUX USER
Ktools: SuperKaramba
Decoracin de Escritorios
SuperKaramba permite dotar de un aspecto precioso a tu escritorio con una coleccin de temas que te permitir dar a tu
entorno de trabajo un toque personal. POR STEFANIE TEUFEL
a
extensin
de
escritorio
de extensiones del escritorio, no obstante,
make; make install. Y, como de costumSuperKaramba realmente realza
la versin 1.0 es tan inestable que para
bre, no debemos olvidar la variable de
nuestro escritorio. SuperKaramba
este artculo hemos decidido restringirnos
entorno KDEDIRS que refleje la ruta a los
es til para un amplio nmero de tareas,
a la versin 0.34 (la versin estable ms
directorios KDE. Por ejemplo, podemos
como mostrar informacin de la carga
actual). El programa esta disponible en la
ajustar la variable de entorno KDEDIRS
del procesador o el uso de memoria,
pgina Web del proyecto en la direccin
de la siguiente forma:
archivos de registros o alimentadores de
http://netdragon.sourceforge.net/index.
noticias. Superkaramba nos ofrece un
php?page=Download%20SuperKaramba.
export KDEDIRS=/opt/kde3:/usr/U
enfoque ordenado y flexible a la hora de
Como es habitual cuando se trata de
local/kde
personalizar nuestro escritorio
aplicaciones en proceso de desarrollo, no
Tras construir el programa satisfactoriaLa flexibilidad es uno de las mayores
hay paquete oficial RPM disponible
mente, tendremos una entrada en nuestro
ventajas de SuperKaramba. Con slo unas
actualmente. Tras la descarga de
men
de
inicio
para
Tools
|
pocas lneas de cdigo podemos modificar
Superkaramba debemos descomprimir el
SuperKaramba. La pulsaremos para
fcilmente el programa para que
iniciar el programa. Alternativarefleje nuestras necesidades. Esta
mente
podemos
escribir
flexibilidad significa que no existe
superkaramba & en una ventana de
una configuracin predeterminada
terminal. Seremos recompensados
de Superkaramba. Pero continuemos
con la aparicin de una pantalla de
viendo ms sobre los variados y cobienvenida como la que aparece en
lorista ejemplos preconfigurados
la Figura 1. La pantalla nos solicita
(tambin conocidos como temas)
que indiquemos dnde queremos ir
que van desde extremadamente
a continuacin.
tiles a simplemente bonitos.
Pulsando Help iremos directaAlgunos lectores puede que estn
familiarizados con el predecesor de
mente a la pgina de ayuda del
Superkaramba, conocido simpleprograma si tenemos conexin a
mente como Karamba. La principal
Internet. Download nos lleva a
innovacin
introducida
por
la pgina de temas oficiales de la
Figura 1: La pantalla de bienvenida de SuperKaramba nos lleva
Superkaramba es su habilidad de
aplicacin (tambin hay enlaces
a importantes sitios.
hacer guiones, por ejemplo con
directos listados en el panel de la
Python. Esta extensin significa que el
cdigo fuente y construir la aplicacin
derecha). Pulsar Open nos permite
programa est incluso mejor preparado
nosotros mismos. De nuevo, el truco de
abrir temas de Superkaramba en nuestro
para usos interactivos.
las tres cartas funcionar: configure;
ordenador.
Actualmente, los desarrolladores estn
trabajando duro en la nueva generacin
Glosario
KTools
En esta columna presentaremos cada mes
herramientas que han demostrado ser especialmente tiles trabajando bajo KDE,
resolver un problema que de otra forma se
ignorara deliberadamente o simplemente
son de las cosas ms agradables de la vida,
sin las cuales no querramos pasar una vez
descubiertas.
www.linux-magazine.es
Nmero 04
67
LINUX USER
KTools
Clculos
68
Nmero 04
www.linux-magazine.es
xvidcap
LINUX USER
xvidcap
Tele-Linux
Muchas veces puede resultar difcil explicar la funcionalidad de una aplicacin con palabras. Un
pantallazo puede ayudar, pero si necesitamos algo
ms que una imagen fija, xvidcap nos puede ayudar. Ahora es posible hacer ayudas de tutoriales
que usan animaciones grabadas por nosotros mismos usando el software para que otros puedan ver
exactamente lo que estamos haciendo.
POR ANDREA MLLER
a grabacin de la ejecucin de
pasos de programas desde el
escritorio nunca ha sido una tarea
fcil. Si bien hay al menos una docena
de programas luchando por el beneplcito de los usuarios que producen documentacin, ninguno de ellos es en realidad un buen generador de pelculas. Presentamos xvidcap [1] de Rasca Gmelch.
El programa, ahora mantenido y desarrollado por Karl H. Beckers, crea
demostraciones en pantalla a medida.
Podemos crear imgenes o archivos
MPEG de reas del escritorio definidas
por el usuario, estando por tanto perfectamente capacitado para mostrar el
camino a travs de estructuras de mens
anidadas.
El Archivo de Comandos
Para lanzar la nueva herramienta instalada en el ltimo paso escribimos:
xvidcap &
o tecleamos
cap.
gvidcap &
para lanzar la versin gtk-2. Los elementos de control para xvidcap (ver figura 1)
y para gvidcap (ver figura 2) estn organi-
www.linux-magazine.es
Nmero 04
69
LINUX USER
xvidcap
GLOSARIO
gtk-2: El conjunto de herramientas Gimp que
vienen con la versin 2. esta librera grfica
proporciona a los desarrolladores controles
pre-hechos para aplicaciones basadas en
GUI, como botones de radio, cajas de dilogo
y campos de entrada de datos. Al margen del
escritorio Gnome versin 2 o superior, el
nuevo Gimp tambin est basado en gtk-2.
MPEG: Abreviatura de Motion Pictures Expert
Group (Grupo Experto de Pelculas). Este
grupo, el cual abarca empresas y universidades, estandariz tcnicas de compresin
para formatos de vdeo. La codificacin MPEG
intenta describir todos los segmentos de
imgenes posibles especificando en qu se
diferencian de la imagen previa, obteniendo
por tanto archivos ms pequeos.
70
Nmero 04
www.linux-magazine.es
xvidcap
LINUX USER
Figura 4: MPlayer reproduciendo un vdeo sobre lectores de correo electrnico creado con xvidcap.
ffplay videodemo.mpeg
De Simples Imgenes a
Vdeos
File | Make Video convierte nuestras
imgenes en vdeos. xvidcap analiza gramaticalmente
~/.Xdefaults
para
averiguar que programa debe usar para
esto. Aqu es donde se almacenan los
valores por defecto para los programas
grficos. Dicho esto, gvidcap no distingue lo asignado en ~/.Xdefaults, por
lo que el comando de conversin slo se
aplicar a xvidcap. Supongamos que
tenemos una coleccin de imgenes con
formato PNG con nombres basados en
una
serie
con
formato
como
pic%04d.png y deseamos usar ffmpeg
para convertirlas en un vdeo MPEG1. la
siguiente lnea
RECURSOS
[1] xvidcap:http://sourceforge.net/projects/
xvidcap
[2] ffmpeg:http://ffmpeg.sourceforge.net/
xvidcap*mkVideoCommand:ffmpegU
-i %s video.mpeg
LA AUTORA
www.linux-magazine.es
Nmero 04
71
LINUX USER
GFTP
FTP y ms all
Tanto si le gustan las transferencias de ficheros desde una GUI o desde la lnea
de comandos, GFTP tiene la herramienta adecuada para el trabajo diario. El
cliente de GFTP tambin soporta caractersticas avanzadas como la transferencia segura de ficheros con SSH.
POR MARTIN STEIGERWALD
Y FTPS?
FTPS es una variante de FTP basada en la
proteccin SSL. GFTP soporta el protocolo
FTPS para encriptar las conexiones de control: El programa transmite comandos FTP
con sus parmetros como las contraseas
con texto cifrado pero no cifra los ficheros.
72
Nmero 04
Instalacin de GFTP
Si se tiene Linux Suse, se puede ejecutar YaST
| Install and remove software para instalar el
paquete gftp. SuSE Linux 9.1 tiene la versin
2.0.16-44.
Si prefiere compilarse el software, necesitar
instalar algunas herramientas y ficheros de
desarrollo antes de empezar. Por ejemplo, en
Suse, hay que asegurarse de tener instalado
Yast C/C++ Compiler and Tools y Gnome
Development.
Hay que descargar el cdigo fuente desde la
pgina web del proyecto [1], y descomprimir
el
paquete
tecleando
tar
-xjf
gftp-2.0.17.tar.bz2, o usar las herramientas del
escritorio para descomprimir el fichero tar.
Hay que entrar en el directorio gftp-2.0.17 y
seguir los pasos normales: ./configure; make;
su -c make install.
Por defecto, make install coloca los ficheros
ejecutables de GFTP en /usr/local/bin. Esto
coloca la versin recompilada en lo ms alto
del path y se asegura de que los elementos
www.linux-magazine.es
del men que instala el paquete de instalacin hacen referencia a esta versin. Si
necesita eliminar su propia versin, porque
Suse haya presentado algn paquete nuevo,
por ejemplo, se puede introducir su -c "make
uninstall".
En Debian Linux, se puede introducir su -c
-apt-get install gftp- o escoger un gestor de
paquetes como Synaptic o KPackage para
instalar GFTP. Hemos probado GFTP con
Debian Sarge version 2.0.17-5. El paquete gftp
instala automticamente ambas versiones
de GFTP, aunque si prefiere se puede instalar
los paquetes individuales, gftp-gtk y gftp-text
de forma separada.
El paquete de la versin de Debian actualmente no soporta SSL (vase [2]). Si se intenta usar FTPS o HTTPS, hay que compilar el
software como se describi anteriormente.
Pero no olvidemos instalar el paquete libssldev con los ficheros de desarrollo de OpenSSL
antes de hacerlo.
GFTP
GFTP intenta
resolver los conflictos con los
nombres
de
ficheros antes de
que empiece la
transferencia. Si
un fichero con el
mismo nombre
ya existe en el
directorio de destino, GFTP preguntar
qu
hacer con dicho
Figura 1: La ventana principal de GFTP proporciona una GUI FTP tpica para
fichero (Vase la
subir y bajar ficheros desde los servidores ftp.
Figura
2).
El
cuadro de dilogo
permite seleccionar una accin tanto
ventana proporciona informacin de las
para un fichero como para un grupo de
transferencias actuales y otra muestra la
ellos. El programa soporta sobrescritura
accin actual del protocolo.
y tiene un modo para continuar la
Para conectarse a un servidor de FTP
descarga de los ficheros cuyas transfehay que teclear el nombre del mismo en
rencias hayan sido interrumpidas. Por
la caja de texto titulada Host en la parte
defecto, GFTP sugiere continuar una
de arriba de la ventana principal. Tamtransferencia de fichero. Se puede selecbin se puede introducir el nombre de
cionar Overwrite by default en FTP |
usuario y la contrasea, adems de
Options | General para modificar este criespecificar el nmero de puerto en el que
terio (Vase la Figura 3).
se desee realizar la conexin. La ventana
La configuracin en Options | General
dividida en dos muestra el rbol de
etiquetada con Allow command input in
directorios local en la zona de la izquierGUI permite la entrada de comandos FTP
da y en la derecha los directorios remo(Vase la Figura 3). Esta opcin permite
tos. Cuando se encuentre el fichero que
a los usuarios el poder usar una GUI sin
se desee transferir, hay que seleccionarlo
perder los beneficios de la entrada direcy pulsar el botn con la flecha adecuada.
ta de comandos del cliente en modo con(Los botones con las flechas estn locasola. Si esta opcin est activada, se
lizados entre las zonas local y remota de
puede introducir un comando FTP al
la ventana principal; ver Figura 1. Para
estilo de la lnea de comandos desde la
transferir un fichero desde el directorio
ventana principal de GFTP (vase la
local al remoto hay que pulsar la flecha
Figura 4).
que apunta hacia la derecha. Para transSi se desea seleccionar mltiples direcferirlo desde el directorio remoto hasta el
torios para transferir de una sola vez,
directorio local, hay que pulsar la flecha
hay que deshabilitar Start transfer para
que apunta hacia la izquierda).
que se pare GFTP y capture los ficheros.
Entonces se seleccionan los ficheros que
se necesiten, y se habilita de nuevo la
opcin para indicarle al programa que
reanude la transferencia.
El soporte de descargas desde mltiples servidores de GFTP es excelente.
Simplemente hay que desconectarse del
servidor actual y conectarse a otro
durante la descarga de un fichero para
que se quede en segundo plano.
Si se selecciona Do transfer one at a
time, el cliente de FTP procesar las
Figura 2: Resolucin de conflictos de nombres en
descargas una despus de otra. De otra
GFTP.
manera, el programa descargar un
LINUX USER
Configuracin de Tipos de
Ficheros
La configuracin de ficheros de GFTP permite especificar qu programa usar para
mostrar los ficheros de un tipo determinado. El programa no tiene un cuadro de
dilogo para realizar esta tarea. Hay que
abrir el fichero .gftp/gftprc del directorio
home con un editor de textos. Hay que
mirar las lneas que empiecen por ext=.
www.linux-magazine.es
Nmero 04
73
GFTP
Otros Protocolos
GFTP tambin soporta la transferencia
de ficheros por HTTP y SSH. Por HTTP,
hay que teclear una URL que empiece
por http:// en el cuadro de texto Host de
la ventana principal; para SSH, hay que
introducir una URL que empiece por
ssh2://.
No hay necesidad de modificar la configuracin por defecto para las transmisiones de FTP y HTTP, a menos que se
use un servidor proxy, pero para que las
74
Nmero 04
transmisiones
SSH funcionen,
hay que cambiar
unos
cuantos
parmetros
en
FTP | Options |
SSH.
El cliente de
FTP usa SFTP
como protocolo
de transmisin.
Para que funcione, el servidor
SFTP tiene que
estar en un path
Figura 4: Lo mejor de los dos mundos: GFTP permite usar el ratn para naveejecutable en el
gar por el directorio destino y permite introducir comandos en formato texto
servidor remoto.
al estilo de los FTP en modo consola.
Hay que habilitar
la opcin Use SSH2 SFTP subsys para los
an hay espacio para seguir aadiendo
servidores que lo soporten.
mejoras. El botn Stop no es siempre
Hemos comprobado satisfactoriamente
intuitivo. Y el programa se beneficiara
las dos versiones con una instalacin del
con un sistema de configuracin de tipos
servidor SSH en Debian. El primer intento
MIME y programas asociados con una
de conexin (usando la funcin SSH2
GUI. Tambin sera interesante que
SFTP) no funcion porque SSH nos pidi
soportara el proyecto de Free Desktop de
EL AUTOR
LINUX USER
Conclusin
GFTP es una herramienta efectiva con
un amplio rango de caractersticas. Pero
www.linux-magazine.es
XUL
LINUX USER
Remate Final
Sin duda hay mucho donde rascar con el navegador Mozilla. En este artculo usaremos XUL para crear el men de una
pgina Web perfecta. A lo largo del camino aprenderemos cosas sobre el Lenguaje de Coligacin Extensible (XBL) y como
podemos usar XBL para realzar la potencia de nuestras creaciones en XUL
POR JONO BACON
www.linux-magazine.es
Nmero 04
75
LINUX USER
XUL
La Caja de Herramientas
Con muchas innovaciones informticas,
los desarrolladores y los usuarios han
puesto la tecnologa en cajas, discriminando como deben ser usadas. PHP es
un buen ejemplo. Si bien podemos usar
Javascript, ASP u otras tecnologas en
pginas PHP, la mayora de los desarrolladores parece que se quedan con PHP y
tecnologas relacionadas con PHP.
PHP es un lenguaje de guiones por el
lado del servidor, Javascript es un
lenguaje del lado del cliente y HTML es
un lenguaje para formatear el contenido.
Cada tecnologa tiene su uso definido y
la mayora de los desarrolladores se ajustan a estos usos.
Puede que ya hayamos puesto XUL en
una de estas cajas conceptuales. En esta
serie hemos vistos ejemplos de scripts
XUL como el Buscador Amazon de
Mozilla, y parece que estos scripts convierten a Mozilla un entorno para aplicaciones Web. Estos ejemplos demuestran
que las tecnologas orbitan casi por completo alrededor del XUL para crear la
interfaz. Es por tanto bastante razonable
poner a XUL en una caja conceptual
donde se utiliza para la interfaz,
Javascript se utiliza para la interaccin y
las otras tecnologas realmente ni aparecen.
Al margen de la aplicabilidad de este
concepto para algunas aplicaciones, ciertamente esto no es cierto para todas las
aplicaciones. Javascript no tiene soporte
76
Nmero 04
www.linux-magazine.es
XUL
La Barra de Men
01 <xul:menubar
oncommand="loadPage(event);">
02
<xul:menu label="Features">
03
<xul:menupopup>
04
<xul:menuitem
label="Introduccin a XUL"
value="http://localhost/temp/i
ntro.html" />
05
<xul:menuitem
label="Por qu XUL?"
value="http://localhost/temp/p
orque.html" />
06
<xul:menuitem
label="Creacin de un Script"
value="http://localhost/temp/c
rearscript.html" />
07
</xul:menupopup>
08
</xul:menu>
09
<xul:menu label="Ayuda">
10
<xul:menupopup>
11
<xul:menuitem
label="Ayuda General"
value="http://localhost/temp/a
yudageneral.html" />
12
<xul:menuitem
label="Ayuda ndice"
value="http://localhost/temp/i
ndice.html" />
13
</xul:menupopup>
14
</xul:menu>
15 </xul:menubar>
{
font: verdana, arial;
font-size: 40px;
font-weight: bold;
text-transform: uppercase;
letter-spacing: 0.3em;
padding: 20px;
background: #EACBCB;
}
#content
{
padding: 20px;
border: solid thick black;
}
Con nuestra simple pgina Web lista procederemos a aadir un poco de XUL y
veremos como funciona. El primer paso
es en realidad crear el XUL que queremos aadir a nuestra pgina Web.
Aadiremos esto a un archivo llamado
menu.xml. Si bien parte del cdigo
puede que nos parezca familiar, usaremos algunas funciones especiales del
Mozilla para coligar funcionalidad en
trozos de cdigo que pueden llamase
desde nuestro HTML. Repasaremos cada
lnea del cdigo para discutir como funciona.
Las primeras dos lneas indican que
estamos usando XML y especifican que
la hoja de estilo que estamos usando es
parte del registro Chrome de Mozilla.
Este registro especial trata con como
pueden ser creadas las interfaces y que
apariencia tienen:
<?xml version="1.0"?>
<?xml-stylesheet href="chrome:U
//global/skin/"U
type="text/css"?>
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
LINUX USER
www.linux-magazine.es
Nmero 04
77
LINUX USER
XUL
"http://www.mozilla.org/xbl"
xmlns:html="http://www.w3.orgU
/1999/xhtml"
xmlns:xul=U
"http://www.mozilla.org/U
keymaster/gatekeeper/U
there.is.only.xul">
Ahora debemos empezar a crear realmente la barra del men. Para hacer esto
crearemos una barra bastante comn,
con estructura tipo mens emergentes y
objetos de mens que hemos cubierto en
nmeros anteriores.
En el cuadro La Barra de Men
vemos el cdigo para crear una barra de
men con dos mens y una serie de
opciones. Veremos que usamos prefijos
para cada una de las etiquetas con xul
para indicar que estas etiquetas no son
del espacio de nombres XBL, si no del
espacio de nombres XUL.
78
Nmero 04
www.linux-magazine.es
XUL
LINUX USER
Creacin de Funcionalidad
Nuestro XUL tiene muy buena pinta
encima de nuestra pgina Web pero no
nos sirve de mucho si no podemos
hacer que haga nada interesante. Ahora
debemos definir la funcin loadPage,
comentada anteriormente y aadirle un
poco de Javascript para hacer que funcione. Para hacerlo podemos usar el
bloque <implementation> proporcionado por XBL a nuestro cdigo.
Primero debemos crear nuestro bloque,
lo que haremos antes de la etiqueta
</content> y despus de la etiqueta
</binding>:
<implementation>
<handlers>
<handler event="command" actionU
="loadPage(event);"/>
</handlers>
Conclusin
formas.
RECURSOS
<body>
www.linux-magazine.es
Nmero 04
79
LINUX USER
Educacin
Con un poco de filosofa por compaera, expondremos el modo en que podemos satisfacer las necesidades de nuestros
compaeros profesores de otras lenguas, y de los alumnos inmigrantes, en materia de interfaz de usuario y de entrada
de caracteres. POR JUAN RAFAEL FERNNDEZ
l fenmeno de la multiplicidad
lingstica (la cuestin bablica:
no hablamos una lengua, ni media
docena ni veinte ni treinta; se piensa
que en la actualidad se practican de
cuatro a cinco mil) es un dato de la
evolucin humana que debe ser explica-
80
Nmero 04
www.linux-magazine.es
Educacin
LINUX USER
Figura 2: Creacin
de locales.
los permita introducir los caracteres propios del idioma que pretendamos escribir.
www.linux-magazine.es
Nmero 04
81
LINUX USER
Educacin
82
Nmero 04
Cuadro 2:
Internacionalizacin de un
programa
Un ejemplo de Santiago Vila servir, porque
adems no se refiere a un programa en c:
sino a un script de shell
01 #!/bin/sh
02 if [ -x /usr/bin/gettext ];
then
03
echo=/usr/bin/gettext
04 else
05
echo="echo -n"
06 fi
07 export TEXTDOMAIN=libc
08 $echo "cheese"
09 echo ""
Escribimos en la consola
[Mi_maquina]$ LANG=es_ES;
./test-script
queso
Los lectores pueden comprobar la instalacin de los mensajes de los distintos
idiomas en /usr/share/locale. Estos ficheros
.mo son los que generan los traductores, ya
se explicar en su momento.
www.linux-magazine.es
LC_NAME=es_ES.UTF-8@euro
LC_ADDRESS=es_ES.UTF-8@euro
LC_TELEPHONE=es_ES.UTF-8@euro
LC_MEASUREMENT=es_ES.UTF
8@euro
LC_IDENTIFICATION=es_ES.UTF
8@euro LC_ALL=es_ES.UTF-8@euro
Por supuesto que no hay que estar repitiendo la variable de entorno cada vez
que se ejecuta un programa si el locale
est definido en el sistema o en los
ficheros de configuracin del usuario.
Como hemos elegido un locale espaol la
orden nos responder en espaol
[Mi_maquina]$ date
mi may 8 20:46:22 CEST 2002
Educacin
Figura 5:
Figura 4: El editor gedit en chino.
Glifos
griegos
Ahora estamos en situacin de comprender mi ataque anterior contra el monolitismo. Existe un programa, localepurge,
que se encarga de borrar sistemticamente los mensajes y ficheros de ayuda
de los idiomas que el administrador de la
mquina piensa que no va a utilizar. Y el
administrador de estas mquinas puede
pensar, l solito, que slo se va a necesitar el castellano. Borra tan feliz los mensajes en tagalo, de acuerdo, en chino de
HongKong, en rumano, pase, pero tambin en italiano, en francs antes de
continuar, antes de instalar el prximo
programa o hacer el siguiente apt-get
upgrade tenemos que comprobar si tenemos instalado localepurge y cmo est
configurado. Cmo? Con la orden
[Mi_maquina]# dpkg-reconfigureU
localepurge
en gentium.ttf.
Tipos
Supongamos que queremos que la
mquina se siga dirigiendo a nosotros en
espaol (no vamos a tocar los locales
ahora) pero queremos leer y escribir en
otro idioma y otro alfabeto. Y luego
queremos poder imprimirlo. Vale, es
cuestin de tres cosas: tipos de letra, un
locale UTF-8 y configuracin de la entrada por teclado.
Deberemos utilizar tipos de letra que
contengan los caracteres de los idiomas
que queremos poder representar. Ms
concretamente y como explicamos
necesitamos tipos de letra unicode, iso10646-1.
Histricamente el tema de los tipos de
letra ha sido un problema complicado en
Linux: no haba una forma unificada de
instalar y configurar nuevos tipos, porque
los programas que conforman la distribucin tenan orgenes distintos y haban
implementado soluciones diferentes y
propias. La mayora de las aplicaciones,
LINUX USER
www.linux-magazine.es
Nmero 04
83
LINUX USER
Educacin
LECTURAS RELACIONADAS
Debian Euro HOWTO, del paquete Debian
euro-support.
http://www.unicode.org/
history/ http://www.cl.cam.ac.uk/~mgk25/
unicode.html, de Markus Kuhn
UTF-8 in Debian, de Jan Willem Stumpel
<jstumpel at planet.nl> http://www.
jw-stumpel.nl/stestu.html.
Unicode fonts, de Edward H. Trager
<ehtrager at umich.edu> http://eyegene.
ophthy.med.umich.edu/unicode/fontguide/,
http://dejavu.sf.net/
84
Nmero 04
NOTAS
La versin en espaol tiene la codificacin iso8859-1. La salida es (simplificada por cuestin de espacio) VeraSe.ttf,
Vera.ttf, VeraBd.ttf y VeraSeBd.ttf. Para
textos en latin1 (y latin9, aado yo) nos
basta el tipo ttf-bitstream-vera en sus distintas variantes negrita, serif
He buscado una pgina codificada en
utf-8; hay pocas, usaremos esperanto.
Nos devuelve Vera.ttf, VeraSe.ttf,
Arial_Bold.ttf, Arial.ttf, VeraSeBd.ttf y
Times_New_Roman.ttf. Vemos que para
el esperanto ya no es suficiente el tipo
vera y hace uso de los tipos proporcionados por el paquete msttcorefonts.
Qu ocurre si abro http://www.debian.
org/index.zh-tw.html, en chino tradicional
(Big5) (figura 6)? Se abren VeraSeBd.ttf,
Arial.ttf,
VeraSe.ttf,
Cyberbit.ttf,
Arial_Bold.ttf, Vera.ttf. Claro, los caracteres chinos no estn en los tipos anteriores y s en cyberbit (o en los arphic si se
busca una fuente enteramente libre).
Y en el prximo nmero
Hemos aprendido a jugar con las variables de entorno que modifican la interfaz
del usuario, y hemos aprendido a instalar los tipos de letra que necesitamos.
Tenemos ya un ordenador interna-
www.linux-magazine.es
EL AUTOR
Lnea de Comandos
LINUX USER
diff y diff3
Busque, compare...
Los programas diff y diff3 del paquete diffutils nos ayudan a comparar ficheros
de texto, mostrando cualquier variacin entre ellos en la lnea de comandos e,
incluso, si es necesario, mezclar los ficheros automticamente.
POR HEIKE JURZIK
Diferentes
El programa diff compara dos ficheros de
texto y muestra el resultado en una ventana. Si simplemente estamos interesados en descubrir si dos ficheros son distintos, tecleamos diff -q fichero1.txt
fichero2.txt. El programa entonces
mostrar que Files fichero1.txt and
Cuadro 1:Vimdiff
Vimdiff le permite editar hasta cuatro
ficheros a la vez,mostrando las diferencias en
el texto. Este modo se ejecuta mediante vim
-d file1.txt file2.txt o vimdiff file1.txt file2.txt.
Vim muestra cada fichero en una ventana
separada, usando por omisin mosaicos verticales. El parmetro -o le permite especificar
mosaicos horizontales. El programa tiene
una excelente ayuda, que puede consultarse
escribiendo:help diff en vim.
Ms Contexto
La salida de diff es ms fcil de leer si se
especifica la opcin -c. La primera lnea
en la salida es el ltimo cambio de fecha
de ambos ficheros. El primer fichero
(indicado por un asterisco) aparece
www.linux-magazine.es
Nmero 04
85
LINUX USER
Lnea de Comandos
primero. Las lneas donde diff ha encontrado diferencias comienzan con una
marca de exclamacin. Las lneas que
son iguales no se marcan. Despus de la
salida del primer fichero de texto, diff
dibuja una lnea punteada y luego la salida del segundo. Este tipo de comparacin puede ser ms compleja dependiendo de la longitud del fichero. La opcin
de contexto le dice a diff que marque
nuevas secciones con el carcter de
suma. El carcter de resta indica que la
seccin ha sido eliminada del segundo
fichero.
Listado 1: Comparacin
de Ficheros
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
86
<I>fichero1.txt:<I>
Gallina
Gallo
Pollo
<I>fichero2.txt:<I>
Gallinas
Gallo
Pollo
<I>fichero3.txt:<I>
Gallinas
Gallo
Pollo
Capn
<I>Salida de diff3:<I>
01 hj@asteroid:~$ diff3
fichero1.txt
fichero2.txt fichero3.txt
02 ====2
03 1:1c
04 3:1c
05 Gallina
06 2:1c
07 Gallinas
08 ====3
09 1:3a
10 2:3a
11 3:4c
12 Capn
Nmero 04
www.linux-magazine.es
LaTeX
LINUX USER
Tipografa Profesional
al Alcance de Todos
Con esta cuarta entrega llegamos al final
de este curso, donde nos hemos acercado al mundo de la tipografa
profesional de la mano de LaTeX. Hemos
considerado necesario llegar hasta esta
entrega para poder alcanzar un nivel que
nos permita construir nuestro primer
documento completo, un proyecto con
ndices, captulos y bibliografa, construido a partir de ficheros independientes, y
con el que os convertiris en autnticos
LaTeXpertos.
POR JOSE MANUEL
GONZLEZ VIDA
Citas Bibliogrficas
Siempre que construimos cualquier tipo
de documento es conveniente incluir un
apartado dedicado a la bibliografa
donde hacemos referencia a las textos
que nos han servido de fuente o que
pueden servir al lector para profundizar
ms en alguna de las partes de nuestro
trabajo. El trabajo de inclusin de referencias bibliogrficas en un texto puede
www.linux-magazine.es
Nmero 04
87
LaTeX
LINUX USER
El entorno thebibliography
Si vamos a incluir la bibliografa
incluyendo la lista de referencias al final
de nuestro documento usaremos el
entorno thebibliography cuya sintaxis
describimos a continuacin:
\begin{thebibliography}U
{Longitud Mxima}
...
\bibitem[Leyenda]{Referencia}U
Ttulo, Autor, . . .
...
\end{thebibliography}
Referencia: Es el identificador
de la referencia bibliogrfica.
Como siempre, lo mejor es ver el uso de
este entorno a travs de un ejemplo:
01 \begin{thebibliography}{10}
02 \bibitem{Cas03}
03 B.~Cascales Salina, P. Lucas
Saurn, J.M. Mira Res, A.J.
Pallars Ruz, S. Snchez.
04 {\em El libro de \LaTeX.}
05 Pearson-Prentice-Hall, 2003.
06 \bibitem{Lam94}
07 L.~Lamport.{\em \LaTeX: A
Document Preparation
System.}
08 Addison-Wesley, Reading,
Massachusetts, second edition,
1994, ISBN 0-201-52983-1.
09 \bibitem{Oetiker}
10 T.~Oetiker, H.~Partl, I.~Hyna
and E.~Schlegl.
11 {\em The Not So Short
Introduction to \LaTeX
$2\varepsilon$}.
12 \end{thebibliography}
Descripcin
plain
Estilo estndar. Las entradas se numeran correlativamente por orden alfabtico de los autores.
unsrt
Parecido al estilo plain pero las entradas se numeran segn el orden de aparicin.
alpha
La diferencia con el estilo plain es que las entradas se forman por el nombre del autor y el ao de publicacin (en lugar de usar nmeros).
abbrv
Parecido al estilo plain pero las entradas son ms compactas,abreviando los nombres de los autores,las revistas,etc.
acm
Estilo usado en las revistas de la ACM (Association for Computing Machinery). Es distinto a los anteriores.
apalike
Es el estilo usado en las revistas de la American Psychology Association (necesita el paquete apalike).
88
Nmero 04
www.linux-magazine.es
LaTeX
Qu es BIBTeX?
El programa BIBTeX se usa para automatizar la elaboracin de entornos para la
bibliografa. La idea es crear una base de
datos de referencias bibliogrficas a partir de la cual BIBTeX crea el entorno bibliogrfico para nuestro documento.
La base de datos consiste en un fichero
con extensin .bib con una determinada
estructura. En nuestro documento ya no
se usar el entorno thebibliography sino
los comandos:
\bibliography{fichero1,U
fichero2,... }
\bibliographystyle{tipo}
LINUX USER
en sus manos},
publisher = {ADI},
year = {2000},
author = {B. Cascales and P.U
Lucas and J.M. Mira and A.U
Pallars and S.
Snchez-Pedreo},
}
www.linux-magazine.es
Nmero 04
89
LINUX USER
LaTeX
proyecto.cls
y
anexo.sty:
Ficheros de estilo (definiciones
y caractersticas particulares
usadas.)
Un ejemplo de proyecto
Lo prometido es deuda, por eso a
continuacin os propongo un ejemplo de
proyecto siguiendo un modelo que yo
propongo a mis alumnos para sus proyectos de final de carrera, aunque es fcilmente adaptable a cualquier otro tipo de
proyecto: libro, tesina, tesis Todos los
ficheros que nos hacen falta los podis
encontrar en la web de la revista: http://
www.linux-magazine.es en el apartado de
descargas de este nmero.
90
Nmero 04
www.linux-magazine.es
RECURSOS
[1] El libro de LaTeX. B. Cascales y otros. Ed.
Prentice Hall. 2003.
[2] LaTeX, a document preparation system. L.
Lamport. 2 Ed. Ed. Addison-Wesley. 1994.
[3] Una Descripcin de LaTeX2e. Toms
Bautista.
http://www.iuma.ulpgc.es/
users/bautista/other/tex/ldesc2e/misc/
ldesc2e.pdf
[4] gBib: Gnome BIBTeX editor. http://gbib.
seul.org
[5] Pybliographer. http://www.pybliographer.
org
[6] The LaTeX Beamer Class Homepage.
http://latex-beamer.sourceforge.net
Ms del 30% de descuento respecto al precio de portada: Consigue 12 nmeros por 5490 Euros y todos los DVDs Gratis!
A diferencia de otras publicaciones, Linux Magazine no llenar tu buzn de recordatorios para que renueves tu subscripcin. sta se renovar
automticamente cada ao. Recibirs una confirmacin aproximadamente 30 das antes del final de tu periodo de subscripcin, pero no se
requiere que hagas nada para seguir suscrito.
No te pierdas Linux Magazine nunca ms! La subscripcin te asegura que recibas los conocimientos Linux de ms alta calidad en tu domicilio
cada mes.
Si por cualquier motivo decides dejar de leer Linux Magazine, puedes cancelar tu subscripcin en cualquier momento. Te abonaremos el precio
de todos los nmeros que no hayas recibido. Sin preguntas, sin fechas de cancelacin, sin problemas.
Linux Magazine es algo ms que una revista de Linux. Patrocinamos grupos, congresos, proyectos y eventos relacionados con el Software Libre.
Suscribindote a Linux Magazine garantizas que podamos seguir apoyando al Software Libre all donde haga falta.
Proyectos
COMUNIDAD
Proyectos en Marcha
El software libre incluye un abanico tan amplio de aplicaciones que puede ser difcil encontrar la herramienta perfecta.
En esta seccin, escogemos lo mejor de la cosecha. Este mes echamos un vistazo a distintas opciones para crear presentaciones y a Code Browser, una aplicacin para la edicin y estudio de cdigo fuente. POR MARTIN LOSCHWITZ
Empieza el Espectculo
Despus de unos aos, las impresoras
con capacidad para imprimir en diapositivas se convirtieron en
tiles armas en la batalla
para desterrar el retroproyector. Pero el sistema
segua sin ser perfecto. Por
un lado las diapositivas
eran caras y por otro, eran
de un solo uso. La solucin
de los ltimos aos es ntegramente
virtual:
un
videoproyector
proyecta
una imagen directamente
desde un porttil.
Powerpoint de Microsoft no es para
nada la nica herramienta para presentaciones disponible por ah y los usuarios
de Linux cuentan con varias alternativas,
incluyendo soluciones que utilizan tanto
la lnea de comandos como un GUI. Es
una mera cuestin de gustos.
Presentaciones Grficas
La herramienta de presentaciones de
OpenOffice es tal vez la alternativa ms
parecida a Powerpoint. Le da a los usuarios una serie de estilos para
presentaciones que pueden rellenar con
contenidos a su gusto. El editor wysiwyg
permite modificar el texto directamente
en el GUI. Y existe un cuadro de dilogo
tipo sealar y picar para animaciones que
pueden hacer ms atractivas la exposi-
En los Huesos
www.linux-magazine.es
Nmero 04
93
COMUNIDAD
Proyectos
94
Nmero 04
GUI Incluido
Code-Browser est escrito en el lenguaje
de programacin Zinc. El GUI utiliza la
librera GTK y el cdigo fuente est
disponible en la pgina de inicio de
Code-Browser en [4].
www.linux-magazine.es
RECURSOS
[1] Magicpoint: http://member.wide.ad.jp/
wg/mgp
[2] Prosper: http://prosper.sourceforge.net/
[3] Beamer: http://latex-beamer.sourceforge.
net/
[4] Sitio web de Code-Browser: http://
code-browser.sourceforge.net
Eventos
LINUX MAGAZINE
Eventos Seleccionados
aKademy 2005
Sitio Web:
www.cebit.de/
homepage_e
Sitio Web:
www.linuxworld
canada.com
Sitio Web:
http://dot.kde.org
Calendario de Eventos
Evento
Solutions Linux
Linux Park CeBIT 2005
OReilly Emerging Technology Conference
Novell BrainShare 2005
YAPC::Taipei 2005
Festival Latinoamericano de Instalacin de
Software Libre
LinuxWorld Conference & Expo, Canada
MySQL Users Conference & Expo 2005
Fecha
01-03 Marzo
10-16 Marzo
14-17 Marzo
20-25 Marzo
26-27 Marzo
2 de Abril
18-20 Abril
18-21 Abril
linux.conf.au
18-23 Abril
3rd International Linux Audio Conference 21-24 Abril
Xtech 2005
24-27 Mayo
GUADEC 2005
29-31 Mayo
LinuxTag 2005
22-25 Junio
I Congreso de Tecnologas del Software Libre 7-8 Julio
2005 Linux Symposium
20-23 Julio
Usenix Security Symposium
1-5 Agosto
aKademy 2005
27 Agosto - 4 Septiembre
Ciudad
Pars, Francia
Hannover, Alemania
San Diego, CA, EE.UU.
Salt Lake City, UT, EE.UU.
Taipei,Taiwan
Venezuela, Argentina
y Colombia
Toronto, Canad
Santa Clara, CA, EE.UU.
Canberra, Australia
Karlsruhe, Alemania
Amsterdam, Holanda
Stuttgart, Alemania
Karlsruhe, Alemania
A Corua
Ottawa, Canad
Baltimore, MD, EEUU
Mlaga
Sitio Web
www.solutionslinux.fr
www.cebit.de/homepage_e
conferences.oreillynet.com/etech
www.novell.com/brainshare
taipei.pm.org
http://ingenieria.ean.edu.co/~azul/
svnwiki.cgi/colibri/fisl
www.linuxworldcanada.com
www.mysql.com/news-and-events/usersconference
conf.linux.org.au/
www.zkm.de:81/lac
www.xtech-conference.org
http://2005.guadec.org
www.linuxtag.org
http://congreso.gpul.org
www.linuxsymposium.org
www.usenix.org
http://dot.kde.org
Informacin de Contacto
Director
Paul C. Brown
Coolaboradores
Paul C. Brown, Jose Manuel Gonzlez Vida, Juan
Rafael Fernndez, Pedro Orantes, Jos Mara Ruz
Traductores
Paqui Martn Vergara, Paul C. Brown, Jess Reyes
Delgado, Antonio Rueda.
Maquetacin
Sergio Hardasmal
Diseo de Portada
Paul C. Brown, Pinball
(info@pinball-werbeagentur.de)
Publicidad
www.linuxmagazine.com.es/pub/
Para Espaa
Paul C. Brown
pbrown@linuxmagazine.com.es
pbrown@linuxnewmedia.es
Tel.:
(+ 34) 951 010 556
Mvil.:
(+ 34) 655 036 836
Fax.:
(+ 34) 951 010 516
Sergio Hardasmal
anuncios@linuxmagazine.com.es
Tel.:
(+ 34) 951 010 556
Para Alemania, Austria y Suiza
Osmund Schmidt
anzeigen@linux-magazine.com
Tel.:
(+49) 6335 9110
Fax.:
(+49) 6335 7779
www.linuxmagazine.com.es - Espaa
www.linux-magazine.com - Mundo
www.linux-magazine.de - Alemania
Si bien se toman todas las medidas posibles para
garantizar la precisin del contenido de los artculos
publicados en Linux Magazine, la editorial no se
hace responsable de imprecisiones aparecidas en la
revista. Asimismo, Linux Magazine no comparte
necesariamente las opiniones vertidas por sus
colaboradores en sus artculos. El riesgo derivado
del uso del DVD y el material que contiene corren
por cuenta del lector. El DVD es estudiado escrupulosamente para confirmar que est libre de virus y
errores.
Copyright y Marcas Registradas 2004 Linux New
Media Spain, S.L. Linux New Media Spain S.L. prohbe
la reproduccin total o parcial de los contenidos de
Linux Magazine sin su permiso previo y por escrito.
Linux es una Marca Registrada de Linus Torvalds.
Impreso en Alemania
Impresin: Dierichs Druck + Media GmBH
Distribucin: SGEL
Depsito Legal: MA-116-2005
www.linux-magazine.es
Nmero 04
95
LINUX MAGAZINE
Instalacin Asistida
Mandrakelinux es clebre por
su instalacin automatizada y sencilla. Simplemente hay que enchufar el
DVD y responder a las preguntas. La
instalacin facilita la deteccin y configuracin automtica del hardware. El
instalador ofrece opciones de configuracin para usuarios avanzados, as
como un modo de rescate para salvar el
sistema en el caso de emergencia.
El instalador Mandrakelinux soporta
cincuenta idiomas y ofrece varias
opciones para sistemas de ficheros, entre
ellos, EXT3, ReiserFS y XFS. Tambin se
pueden montar discos RAID y redimensionar particiones NTFS a travs del
instalador. Una til herramienta de autoinstalacin permite duplicar instalaciones de manera sencilla.
Centro de Control
96
Nmero 04
www.linux-magazine.es
Seguridad
Mandrakelinux ofrece varios niveles predefinidos de seguridad que permiten
ajustar los parmetros de seguridad del
sistema a los requisitos de cada cual. El
centro de control permite configurar un
sistema de cortafuegos completo utilizando Shorewall y tambin aporta una serie
de opciones de seguridad avanzadas.
Asimismo, Mandrakelinux suministra
varias herramientas de criptografa,
incluyendo OpenSSH, GnuPG, herramientas de certificaciones SSL, sistemas
de ficheros cifrados y Linux Kernel
Secure.
Redes
La distribucin Mandrakelinux incluye
lo mejor de las herramientas de servidores estndar y ofrece algunas caractersticas especialmente innovadoras. En
el DVD encontramos RPMs para BIND,
Desarrollo
La distribucin Mandrakelinux 10.1 tambin ofrece mltiples herramientas para
desarrolladores, incluyendo gcc 3.4.1,
Perl, Python y un buen surtido de herramientas
Java.
Se
incluye
con
Mandrakelinux las libreras GTK+ y Qt,
as como el entorno de desarrollo integrado, Kdevelop, el entorno de desarrollo HTML Quanta Plus y otras herramientas para componer y administrar cdigo
fuente.
Otras Herramientas
Mandrakelinux incluye literalmente centenares de otras aplicaciones tiles.
Prubalo
El formato en un solo DVD hace que sea
fcil
y
cmodo
configurar
e
LINUX MAGAZINE
Figura 3: Mandrakelinux 10.1 soporta caractersticas tales como mens transparentes para el
escritorio.
implementar
tu
sistema
Mandrakelinux. Arranca el DVD de
Linux Magazine y responde a las
preguntas. Pronto estars explorando
Mandrakelinux 10.1 Official por ti
mismo y podrs comprobar porque
Mandrakelinux se le conoce por su
sistema Linux seguro y de fcil uso,
adecuado tanto para el principiante,
pero con la suficiente potencia como
para satisfacer tambin al usuario
experto.
www.linux-magazine.es
Nmero 04
97
PRXIMO NMERO
Nmero 4
Prximo Nmero
Especial Correo Seguro
El correo electrnico es uno de los ms
antiguos y ms importantes servicios de
Internet. Sin embargo ya no es lo bastante seguro en el entorno hostil de la
red de redes de hoy en da. Ms del 60
por ciento del correo no es solicitado y
los administradores poco pueden hacer
en la constante lucha contra la plaga de
spam que asola las bandejas de entrada
de los usuarios.
En el tema de portada de Email Seguro
de nuestro prximo nmero, nos aliaremos con los usuarios en la batalla contra
el spam con un anlisis en profundidad
de la mentalidad del spammer y aprenderemos a explotar eficientemente uno
de las ms completas herramientas antispam
en
el
mercado
actual:
Spamassassin.
El siguiente paso ser explorar el filtrado spam con la ayuda de procmail, lo
que de paso nos servir para entender
esa misteriosa informacin encerrada en
las cabeceras de los mensajes de correo.
Desarrollo
En nuestra seccin dedicada a la programacin, acabaremos de ver el uso de la
librera SDL para la creacin de un juego
implementando sonido, crearemos un
vistoso interfaz con uno de los widgets
ms complejos de la librera Qt: QTCanvas.
Y
veremos
como
correr
instrucciones del shell desde dentro de
un script Perl.
SysAdmins
Prctico
Continuamos estudiando el complejo y
completo programa Scribus para la
autoedicin y enseamos como desarrollar scripts para GIMP. Tendremos un
tutorial sobre uno de los interfaces ms
verstiles para la creacin de interfaces a
base de datos, Knoda y veremos como
controlar un PC desde un telfono con
Bluetooth. Finalmente ensearemos
como hacer funcionar un sistema desde
dentro de un sistema con Qemu.
Linux User
En el apartado dedicado al usuario
final, tendremos una prctica aplicacin para escritores profesionales y
vocacionales:
Kdict.
Asimismo
enseamos a configurar un cliente de
una red wifi con Kwifi. Tambin veremos uno de las utilidades de la lnea de
comandos ms tiles y verstiles: sort,
a la vez que tendremos en nuestra seccin de educacin otro instructivo
artculo para todos los profesores (y
alumnos) que utilizan Linux en las
aulas.
Nmero 04
www.linux-magazine.es