w

w

w

a modo de introducción... Quién no los tiene

Amigos testarudos

H

ola a todos este mes. Me alegra mucho el seguir aquí con vosotros en nuestra lucha por, y a veces con el software libre. Pero quién ha dicho que la vida va a ser fácil. Yo creo que el hecho de que en Linux no todo es fácil es una de sus ventajas. Claro que a veces me pone negra que algo NO FUNCIONA y no sé ¿por qué? o cuándo me escribís contando vuestros problemas técnicos y pedís la ayuda y yo no conozco la respuesta. Pero desde que trabajo con Linux he aprendido muchísimo y ahora mi relación con mi ordenador es mucho más satisfactoria. Antes lo trataba como un medio para conseguir algo y no me entretenía mucho usándolo. Tengo que decir que nunca me han fascinado los juegos de ordenador ni otras diversiones relacionadas con él. Tengo que admitir incluso, pero que esto se quede entre nosotros, que el ordenador solía aburrirme bastante. Pero ahora eso ha cambiado. El hecho de que existan tantas distribuciones hace que tenga ganas de probarlas todas, sobre todo si están desarrolladas por la gente como nosotros o sea que no es una empresa grande sino un grupo de personas para las que es un trabajo creativo.

A lo mejor debería organizar un concurso titulado “La mejor manera de hacer que tu amigo más testarudo del mundo se pase a Linux”...
La gran ventaja de mi trabajo es conocer este tipo de gente y la posibilidad de escribir sobre sus proyectos en nuestra revista. Este mes por ejemplo os invito a leer el artículo sobre la distribución Tuquito de Argentina que según mi opinión es una distribución muy amigable para el usuario. Espero que vosotros sintáis lo mismo y no os desaniméis cuando surjan los problemas porque la vida sin problemas sería aburrida. Además los problemas sirven para resolverlos y para esto estamos nosotros. Ahora otra cuestión que últimamente no me deja dormir. ¿Tenéis amigos que ni piensan probar Linux? ¿Que dicen que Windows es mejor, que en Linux no se puede jugar a sus juegos preferidos, que es difícil y otras tonterías? Que son testarudos como unos burros (aquí no quiero ofender a nadie sólo estoy pensando sobre mi propia experiencia). Si conocéis una manera de explicarles que esto no es verdad y que Linux es lo mejor del mundo (bueno, a lo mejor estoy exagerando pero estoy de buen humor hoy), ahora yo necesito vuestra ayuda. A lo mejor debería organizar un concurso titulado “La mejor manera de hacer que tu amigo más testarudo del mundo se pase a Linux” y luego probar todos los consejos recibidos. El que funcione mejor ganaría. ¿Qué os parece la idea? ¿Tonta? Ya lo pensaba... Pero necesito saberlo, es una cuestión de vida o muerte (casi). Así que si a alguien le viene a la cabeza una idea estupenda que me escriba por favor. Si funciona pensaría sobre un premio especial (¿la suscripción de por vida de Linux+? Hmm... ¿y qué pasa si alguién llega a odiarme por tanto Linux+?). Bueno ya pensaría sobre algo... Así que espero vuestros consejos. Voy a probarlas en mis amigos. En el número próximo os cuento los resultados. ¡Que os divirtáis con este número de Linux+ y hasta la próxima! Paulina Pyrowicz Redactora Jefe de Linux+

www.lpmagazine.org

3

w
Mensual Linux+ está publicado por Software-Wydawnictwo Sp. z o. o. Producción: Marta Kurpiewska, marta@software.com.pl Redactora jefe: Paulina Pyrowicz, paulina.pyrowicz@software.com.pl Redactor adjunto: Monika Wójcik, monika.wojcik@software.com.pl Preparación de DVDs: Rafał Kwaśny Diseño portada: Agnieszka Marchocka Gráfico: Łukasz Pabian – "insane" Publicidad: adv@software.com.pl Suscripción: suscripcion@software.com.pl Maquetación y composición: Marcin Ziółkowski, marcin@software.com.pl Correctores: Pablo Cardozo, Agripino Petit Miguel, Minton Arley, Hector Colina Distribución: Coedis, S. L. Avd. Barcelona, 225 08750 Molins de Rei (Barcelona), España Dirección: Software–Wydawnictwo Sp. z o.o., ul. Bokserska 1, 02-682 Varsovia, Polonia La Redacción se ha esforzado para que el material publicado en la revista y en los DVDs que la acompañan funcionen correctamente. Sin embargo, no se responsabiliza de los posibles problemas que puedan surgir. Todas las marcas comerciales mencionadas en la revista son propiedad de las empresas correspondientes y han sido usadas únicamente con fines informativos. La Redacción usa el sistema de composición automática Los DVDs incluidos en la revista han sido comprobados con el programa AntiVirenKit, producto de la empresa G Data Software Sp. z o.o. ¡Advertencia! Queda prohibida la reproducción total o parcial de esta publicación periódica, por cualquier medio o procedimiento, sin para ello contar con la autorización previa, expresa y por escrito del editor. Linux ® es una marca comercial registrada de Linus Torvalds.

En este número descripción de DVD's

6

Paulina Pyrowicz Este mes os presentamos los DVD's con las distribuciones Linux Mint 2.2, Tuquito 2, LinEx PYME y los programas comerciales: Panda DesktopSecure For Linux, Deskzilla y Junxy the Submission form spam blocker.

Descripción de DVD’s

novedades

14 16 17 18 19 20

Noticias Ubuntu Debian Suse

Alex Sandoval

Francisco Javier Carazo Gil

Samuel Pizarro Silva

Esteban Negri

Fedora

Diego Rivero Montes

Mandriva

Juan Gamez

gráfica

22

David Alverez García Los entornos gráficos minimalistas son aquellos que consumen muy pocos recursos del sistema, tanto CPU como memoria RAM, permitiendo el uso de Linux con máquinas antiguas para escritorio o incluso trabajar. Este tipo de entornos son con mucha asiduidad usados por desarrolladores, gente experta o con cierto curtimiento en el mundo Linux debido a que ofrecen una gran velocidad de procesamiento, poco consumo de memoria RAM y son simples, lo cual implica menos bugs, son fáciles de usar por norma y la mayoría son muy configurables para cualquier tipo de tarea.

Entornos gráficos de bajo consumo

4

Linux+ 5/2007

w
Tema del número test Entornos gráficos de trabajo para programadores
Impresoras Multifunción

Índice

28

Paulina Pyrowicz Este mes nuestros lectores nos hablan acerca de las impresoras multifunción más conocidas. Podréis leer sobre el precio, características y ventajas de este tipo de hardware así como sobre el soporte del productor y sus puntos débiles.

56

software

32

José Luis Marina Como vimos en el artículo anterior ACE se corresponde con las siglas de ADAPTIVE Communication Environment, y es un marco de trabajo – framework – orientado a objetos, de código abierto y disponible libre y gratuitamente, que implementa muchos de los patrones centrales para el desarrollo de software de comunicación.

ACE: Desarrollo Multiplataforma de Aplicaciones en Red

Daniel Barrientos Carrera, Enrique Puertas Sanz, José Carlos Cortizo Pérez La industria de los videojuegos es una industria cada día más creciente, capaz de sobrevivir (y con mucho éxito) a cuestiones tan duras como la piratería. Pese a que el mercado fundamental de la mayoría de los videojuegos sean las consolas o bien la plataforma Windows, GNU/Linux se muestra como una alternativa cada día más atractiva, tanto por el número de usuarios, el apoyo de la comunidad, así como por el desarrollo de nuevas herramientas que facilitan el desarrollo de juegos que no tienen nada que envidiar a algunos videojuegos comerciales.

Desarrollo de Juegos en Linux con OGRE3D

62

40

F. Javier Carazo Gil Este mes os presentamos los siguienetes juegos: Hex-a-Hop, Ghouls and Ghosts Remix, Galcon, Kobodeluxe, Daphne, Dark-Oberon.

Juegos

José B. Alós Alquézar Si como se vio en el Nº 29 de Linux+, la utilización de sistemas de control de versiones como CVS y Subversion permite una gestión colaborativa de un proyecto de software, existen dos necesidades no cubiertas cuando aumentamos el nivel de abstracción.

Gestión de Configuración Software con Perforce

proyectos Linux

74

linux en la empresa

Ariel M. Corgatelli Tuquito-2 es una distribución GNU/Linux, que implementa la tecnología livecd (funciona desde cd), esto permite al usuario tener en su computadora un sistema completo en cuestión de minutos, con todo el software y hardware configurado y listo para usar, sin necesidad de modificar en absoluto la computadora, ganando tiempo a la hora de realizar tareas concretas.

Tuquito 2, un desarrollo argentino

44

Israel E. Bethencourt Nos encontramos en una época interesante, la información nunca había fluido tan libremente. Esta situación nos permite disfrutar de todo el conocimiento que podamos abarcar. Y de ahí, de nuestro principal avance, surge nuestro principal problema. Disponemos de tanta información y nos llega de forma tan abrumadora que bloquea nuestros sentidos y acaba volviéndose inútil.

Business Intelligence Open Source

52

Juan Jose Torres Pérez, Milagros Cristobal Sevilla, Alberto Reynolds Moreno, Tecnicos de proyecto LinEx PYME En Extremadura se ha pasado de las palabras a la acción y se ha llevado a cabo la introducción del software libre en los campos educativos (GnuLinEx) y empresariales (LinexPyme). En lo que se refiere al ámbito empresarial todo empezó a partir de octubre de 2004, cuando fue presentada Linex Empresa. Linex Empresa era una distribución basada en GnuLinEx a la que se le habían ańadido un conjunto de soluciones de gestión empresarial, principalmente aplicativos para la facturación, control de almacén y contabilidad.

LinEx Pyme, software libre para la gestión empresarial

entrevista

78

Paulina Pyrowicz Richard Stallman lanzó el movimiento de software libre en 1983, y en 1984 comenzó el desarrollo de un sistema operativo libre, el sistema GNU. Desde la liberación en 1992 del núcleo Linux, el sistema GNU y el núcleo Linux se usan juntos en la combinación GNU/Linux. Cuando se habla de Linux, usualmente es asunto de esta combinación, GNU con Linux.

Entrevista a Richard Stallman

www.lpmagazine.org

5

w

descripción de DVDs Disco A

Linux Mint 2.2

L

inux Mint, es una distribución basada en Ubuntu que tiene como propósito crear un entorno GNU/ Linux cómodo, elegante y actual. En esencia, Linux Mint es igual que Ubuntu en un 98 %. Usa los mismos repositorios y los mismos paquetes. Sin embargo, hay algunas diferencias. El ciclo entre versiones de Ubuntu es de seis meses, mientras el de Linux Mint puede variar entre uno y dos meses dependiendo de la cantidad de novedades para la actualización. La parte gráfica está mejor cuidada y es más agradable a la vista que la de Ubuntu, pero eso es custión de gustos. La gran diferencia entre las dos está en la filosofía. Mientras Ubuntu mantiene la tendencia del uso del software libre Linux Mint ya viene

Entre los cambios más significativos en • Bianca (Linux Mint 2.2), la nueva versión podemos mencionar: • Bea (Linux Mint 2.1), • Barbara (Linux Mint 2.0), • MintMenu : Un remplazo al menú de • Ada (Linux Mint 1.0). Gnome y que es similar al menú de Suse, Para más información os recomendamos • MintConfig : Un centro de control, tam- visitar la página del proyecto: http://linuxbién similar al de Suse, mint.com/. • MintDisk : Un programa para montar automáticamente particiones ntfs y fat32 con la posibilidad de lectura/escritura, • MintWiFi : Una guía con drivers y herramientas de diagnóstico para facilitar la configuración de tarjetas WiFi • Soporte para dos lenguas más: español y turco.

con software propietario instalado, por ejem- Las versiones que han salido hasta ahora son Linux Mint 2.2 Bianca plo el plugin de Flash. los siguientes:

Tuquito 2

T

uquito es una distribución GNU/ Linux, que implementa la tecnología livecd (funciona desde cd) lo que permite al usuario tener

en su computadora un sistema completo en cuestión de minutos, con todo el software y hardware configurados y listo para usar. El uso de Tuquito no requiere la experiencia en el campo de Linux, está destinado a todos tipo de usuarios. Tambien puede instalarse en su pc mediante dos tipos de instalación Completa o Básica, teniendo todo configurado y listo en su disco duro en un tiempo mínimo. Tuquito cuenta con 2 gigas de aplicaciones en un cd normal, con una excelente selección de paquetes en las areas de ofimática, ingenierias, multimedia, internet, programación, ciencias. La estética instantánea de Tuquito, permite disfrutar de un sencillo y amigable entorno Amarok en Tuquito de trabajo. Algunas características de Tuquito son: • Soporte de todas las impresoras de modelos,antiguos y nuevos, disponibles en • • • • • Soporte de escaners,
• Es compatible con archivos de MSOFFI- • CE y soporta los sistemas de archivos de OpenOffice: Clon del MS Office, Mplayer: Uno de los mejores reproductores de video,

windows. • Amsn: Clon del msn. el mercado, Soporte de webcams, incluyendo los Tuquito 2 posee también las herramientas Si queréis leer más sobre esta distribución modelos de intel, genius, como: argentina os invitamos a leer el artículo TuPermite acceder a cdroms,diskettes, con quito 2, un desarrollo argentino que publicatan solo un click en su escritorio, • Mozilla: Excelente cliente web, mos en este número de Linux+. Detección automática de cámaras digita- • Evolutión: Clon y mejor que el Outlook, les, pen drive, dispositivos hotplugs, • Quanta: Excelente editor de programacion,

6

Linux+ 5/2007

w

DVD
Si no puedes leer el disco DVD y no notas ningún tipo de deterioro mecánico, por favor, pruébalo en al menos dos unidades de disco diferentes.

A

5/2007

DVD

B

En caso de problemas, escribir a: dvd@lpmagazine.org

w

descripción de DVDs Disco B

Deskzilla

E

l producto de ALM Works, Deskzilla, ofrece una interfaz interactiva y ahorradora de tiempo para el sistema de seguimiento de Bugs Bugzilla. Deskzilla es una interfaz de escritorio interactiva para el sistema de seguimiento de bugs BugzillaTM de Mozilla. Deskzilla se integra sin problemas con instalaciones existentes de Bugzilla y permite que los usuarios frecuentes de Bugzilla ahorren tiempo, manejen issues (temas o problemas) en forma efectiva, se concentren en la ejecución y puedan trabajar sin conexión. En este artículo, les presentamos las características de Deskzilla y algunos trucos y consejos para usuarios avanzados.

Empezando
La instalación de Deskzilla es sencilla. Simplemente descomprima el archivo de distribución deskzilla-1_2_5.tar.gz y abra el script deskzilla-1.2/bin/deskzilla. En el primer uso, Deskzilla preparará el entorno Java, por lo que seguramente tomará unos momentos abrir la aplicación. Cuando la pantalla de bienvenida aparezca, establezca una conexión Bugzilla. Usted puede seleccionar una conexión predefinida a un servidor publico o un sandbox, o puede especificar parámetros para conectarse a su propio servidor. Como mínimo, solamente es necesario el URL de Bugzilla para conectarse, pero tamFigura 2. Query Builder (Constructor de consultas)
bién considere otros parámetros importantes: • • Las credenciales de cuenta (su dirección de correo y contraseña) son requeridas si usted está por realizar cambios o si Bugde datos irrelevantes desde el servidor. Si usted usa caracteres nacionales, especifique el grupo de caracteres en la sección de Opciones avanzadas.

zilla no proporciona acceso anónimo. Ahora, una vez que la conexión está configuSi el servidor de Bugzilla alberga un rada, sigamos hacia lo divertido. montón de proyectos, use la opción Trabajar sólo con productos seleccionados. Explorando la interfaz de usuario Esto acelerará mucho la sincronización, Deskzilla se ve similar a un cliente de correo ya que Deskzilla no cargará montones electrónico. Hacia la izquierda está el árbol de navegación, el cual se usa para seleccionar bugs. Contiene nodos de conexión, carpetas, queries (consultas) y otros elementos. La mayoría de los mismos estarán organizados según jerarquía dentro del árbol. Puede explorar los contenidos de la carpeta Sample Queries (o Consultas de muestra), la cual Deskzilla creó para usted (puede tranquilamente borrarla cuando no la necesite). Por ejemplo, puede ejecutar la consulta Open (o abierto) para obtener todos los bugs que tienen estado abierto. Hacia la derecha hay una vista general detallada con fichas, la cual muestra la lista de bugs y los detalles del bug seleccionado. Cuando usted ejecuta una consulta, se muestra la lista resultante de bugs en una pestaña o ficha diferente, de forma que usted pueda explorar diversos grupos de resultados simultáneamente. En la parte superior del área principal, el campo de Búsqueda Rápida le permite

Figura 1. Pantalla principal de Deskzilla

8

Linux+ 5/2007

w

descripción de DVDs Disco B

tengan en su lugar hasta que el usuario decida actualizar la tabla. Esto es especialmente útil cuando se hace triage o clasificación de bugs, cuando usted empieza por el bug que está más arriba en la lista de prioridades, y luego trabaja con cada bug individualmente. Mas allá de qué cambios realice, la imagen general será retenida y usted siempre verá dónde se encuentra en este proceso. Usted puede cambiar el modo de la tabla con la opción del menú Buscar – Resultados en Vivo (o Search – Live Results). Cuando el Modo Congelado está seleccionado, una columna especial aparece hacia el lado izquierdo, la cual muestra el símbolo Refrescar en las filas que tienen cambios pendientes.

Viendo y cambiando Bugs
Figura 3. Fusionando cambios en conflicto
Los detalles del tema o problema seleccionado aparecen bajo la tabla de temas. La distrirápidamente acceder a un bug mediante su usted puede limitar la búsqueda mediante bución de los campos es similar a las formas ID, o buscar palabras específicas dentro del la creación de una nueva sub-consulta o una de Bugzilla, con algunas adiciones. contexto. ¿Qué es el contexto? Es el nodo distribución. La distribución es una forma ráseleccionado en el árbol de navegación. Por pida de ver cómo los bugs están distribuidos • ejemplo, si usted selecciona la consulta Open en un determinado campo. y ejecuta una búsqueda rápida, DeskziPor ejemplo, podemos crear distribución lla buscará únicamente bugs abiertos que por producto, bajo la consulta Open: Deskzicontengan las palabras especificadas. Usted lla creará y mantendrá una serie de sub-con- • puede seleccionar más contexto específico sultas, una por cada producto. Si Deskzilla ya (por ejemplo My work -Mi trabajo-) o un nú- ha descargado todos los bugs abiertos, inmemero de consultas, incluso aquellas prove- diatamente mostrará cuántos bugs abiertos Los comentarios podrán verse en forma de árbol – Deskzilla buscará citas y arreglará los bugs en la forma correspondiente. Los campos podrán colapsarse en una vista breve, la cual deja más espacio vertical para comentarios.

nientes de otras conexiones de Bugzilla. Es hay en cada producto. Cada distribución Deskzilla ofrece varias acciones para editar el una forma rápida y eficiente de buscar un sub-consulta puede luego ser ejecutada para problema seleccionado: bug, especialmente cuando solamente se tiene ver los bugs correspondientes, o limitada con una vaga idea de dónde se puede encontrar más sub-consultas o distribuciones. el mismo. • • Editar todos los campos como se hace en Bugzilla, presionando el botón F4. Añadir un nuevo comentario o crear una respuesta a un comentario existente. Adjuntar un archivo. Aplicar una acción de flujo de trabajo (o Workflow) (Seleccionar múltiples bugs para aplicar acciones de Workflow a todos ellos). Luego de realizar cualquier cambio, usted

Buscando con consultas y distribuciones

Dos modos de trabajar con una lista de bugs

Las consultas son la herramienta principal de Ahora, cuando hemos seleccionado bugs que • búsqueda. Usando el Visual Query Builder, requieren nuestra atención, podemos usar • usted puede construir consultas de todo tipo la vista general detallada para trabajar con de complejidad. Pero las consultas compli- ellos. Deskzilla ofrece dos modos de trabajo cadas son raramente necesarias porque éstas con la lista de bugs: el Modo En Vivo cuando pueden ser anidadas. Cuando una consulta la actualización automática de la tabla está es puesta bajo una Consulta Padre, ésta toma activada, y el Modo Congelado. el resultado de la misma y la filtra más.

Cuando la tabla de bugs está en el Modo tiene la opción de subir inmediatamente los

Por ejemplo, usted puede poner la En Vivo, cualquier cambio en los bugs, ya mismos a Bugzilla, o guardarlos como boconsulta Open bajo My work. Si luego usted sean aquellos descargados desde el servidor rrador para ser revisados y posteriormente ejecuta la consulta Open, Deskzilla le mos- o hechos por el usuario, son inmediatamente subidos. Los cambios en el borrador pueden trará bugs que son su trabajo y que además transmitidos a la tabla. Por lo tanto, en el Modo ser eliminados sin que ello afecte a Bugtienen estado abierto. Anidar consultas es En Vivo los bugs pueden desaparecer de la zilla. un concepto fundamental en Deskzilla: le tabla, reaparecer o cambiar de lugar, depenpermite construir una jerarquía de consul- diendo del orden. Usted siempre verá resul-

tas, facilitando la división y el acercamiento tados actualizados de la consulta. Dezkzilla al seguimiento de bugs. En Modo Congelado, cuando la actuali- Las máquinas de workflow (o máquinas de En el ejemplo arriba mencionado, si la zación automática está desactivada, Deskzi- flujo de trabajo) de Deskzilla y Bugzilla son, consulta Open selecciona demasiados bugs, lla se asegura de que todos los bugs se man- de alguna manera, diferentes. En Bugzilla, el

Personalizando el flujo de trabajo en

www.lpmagazine.org

9

w

descripción de DVDs Disco B

workflow es de código duro y no puede ser cambiado, acortado o parcheado. El mismo está asociado también sólo con el Estado y la Resolución y, con algunas excepciones, los otros campos son independientes. La perspectiva de Deskzilla con respecto al workflow es diferente. Todos los pasos del flujo de trabajo están definidos en un archivo llamado workflow.xml. Este archivo, que viene con la distribución de Deskzilla, refleja el flujo de trabajo estándar de Bugzilla, pero puede ser personalizado. Aquí hay un extracto del workflow.xml estándar, el cual define el paso de flujo de datos confirmar:
<action> <name>Confirm</name> <filter>status in (UNCONFIRMED) </filter> <set> <attribute> <name>status</name> <value>NEW</value> </attribute> <attribute> <name>comments</name> <askAddTextElement>Comment: </askAddTextElement> </attribute> </set> </action>

Figura 4. Sincronización de consulta
<askReference>Milestone: </askReference> </attribute> ... </action>

Aquí, milestone es la identificación del campo, y Milestone: es el subtítulo o leyenda para el campo. Luego de que estos cambios hayan sido hechos, reinicie Deskzilla y use el nuevo workflow personalizado.

Esta definición le dice a Deskzilla que: • • • El nombre de la acción es confirmar, Es aplicable a cualquier bug que tiene estado NO CONFIRMADO, Como resultado de esta acción, los siguientes campos serán modificados: – El estado será cambiado a NUEVO. (Sin ingreso del usuario), – El usuario podrá agregar un comentario para esta acción.

Trabajando sin conexión
Uno de los beneficios del uso de una aplicación de escritorio es que es capaz de trabajar cuando el servidor o toda la red no son accesibles -durante un viaje de negocios, en la página del cliente, o cuando los administradores de su sistema han decidido rápidamente actualizar el servidor. Deskzilla le permite trabajar con bugs de la misma manera en la que trabaja con el Correo Electrónico: Descargue bugs desde el servidor Bugzilla (cuando esté en línea); Busque bugs, cambie bugs, cree nuevos bugs, añada comentarios, aplique acciones de Workflow (cuando esté en línea o sin conexión); Suba los cambios de nuevo a Bugzilla (cuando esté en línea).

gar la subida para más tarde. Puede suceder que un bug es cambiado en Deskzilla, y que al mismo tiempo alguien lo cambie en el servidor Bugzilla. De esta manera, el bug está en estado de conflicto; esta situación es similar a lo que puede ocurrir con un archivo en un sistema de control de versión con bloqueo optimista, como CVS. Y al igual que en los sistemas de control de versión, Deskzilla ofrece, en caso de conflicto, la operación Merge (o Fusionar). Cuando se fusionan los cambios en conflicto, Deskzilla muestra la diferencia entre la modificación hecha por usted y la hecha por otra persona, y le permite escoger los valores correctos para cada campo.

Consultas sincronizadas
La máquina de sincronización de Deskzilla también mejora la búsqueda con conceptos importantes de consultas sincronizadas. Cuando una consulta es ejecutada, las solicitudes son enviadas a Bugzilla, los bugs son descargados, colocados en la base de datos local y mostrados al usuario. Esta puede ser una operación que lleve tiempo, especialmente cuando montones de bugs deben ser descargados. Pero, ¿qué ocurre si usted ejecuta la misma consulta de nuevo? Como los bugs ya se encuentran en la base de datos local, no hay necesidad de descargar nada. Deskzilla sabe que ya ha descargado todos los bugs para

Digamos que, por ejemplo, queremos modi- • ficar esta acción de workflow y permitir al usuario especificar el Target Milestone cuan- • do esté confirmando un bug. Esto se hace simplemente añadiendo las siguientes líneas: •
<action> ... <attribute> <name>milestone</name>

Siempre que haga un cambio, tiene la opción de subirlo inmediatamente o poster-

10

Linux+ 5/2007

w
esta consulta. Todo lo que debe hacer es agarrar los bugs de su disco duro y mostrarlos en una tabla. Las consultas que se sabe que han sido descargadas completamente son llamadas Consultas sincronizadas. Además, todas las sub-consultas de una consulta sincronizada también se vuelven sincronizadas porque, por definición, muestran un sub-grupo del resultado de la consulta padre. Una consulta sincronizada siempre se muestra con un contador de bugs -un número de bugs que satisfacen el filtro de la consulta- mostrado entre paréntesis cerca del nombre de la misma. Cuando la base de datos local cambia, este número cambia también. De esta forma, la jerarquía de la consulta se vuelve un indicador del estado del

descripción de DVDs Disco B

múltiples proyectos de diferentes ven- bles para uso comercial. Para detalles sobre dedores o departamentos. las mismas, por favor visite el sitio web de ALM Works. Actuales limitaciones Esta entrega de Linux+DVD contiene Aunque Deskzilla trata la mayoría de los ca- una edición especial de Deskzilla que insos de seguimiento de bugs, no es un comp- cluye una licencia personal. leto sustituto para la interfaz de Internet de Bugzilla. A partir de la versión 1.2, Deskzilla En la red tiene varias limitaciones: • Visite el sitio web de ALM Works para • Rendimiento: Deskzilla puede descarsaber más y obtener la última versión gar y manipular de forma efectiva hasde Deskzilla: http://almworks.com, ta 10.000 bugs. Si tiene más bugs en • Solicite soporte y haga sugerencias en Bugzilla, no es un problema a menos nuestros foros: http://forum.almworks.com, que tenga que trabajar con todos y cada • Nuestra base de conocimientos tiene uno de los problemas o temas en cuesmuchas pistas y trucos para configurar tión. Utilice las consultas para descarDeskzilla: http://kb.almworks.com, gar sólo aquellos temas que se necesi- • Cualquier observación puede enviarse tan para las tareas actuales. a info@altworks.com. Las instalaciones Bugzilla altamente personalizadas no son soportadas. Deskzilla se integra con Bugzilla sobre páginas y formas XML/HTML; si éstas son radicalmente cambiadas, Deskzilla puede no entender las respuestas de Bugzilla o enviar datos incorrectos. Algunas características de Bugzilla no son aún soportadas: comentarios privados e inclusiones, distintivos, seguimiento del tiempo, votos, etc. El soporte para los elementos anteriormente mencionados está planeado para versiones futuras.

proyecto, un reporte que está siempre en su • pantalla. Para mantener actualizadas las consultas sincronizadas, Deskzilla sondeará periódicamente el servidor en busca de cualquier cambio ocurrido desde la última sincronización. Así, si usted deja Deskzilla ejecutándose, los contadores de bugs y las tablas de • problema en Modo En Vivo cambiarán para reflejar los datos más recientes.

Bugzilla desde cero en cinco minutos

Otras características
Vale la pena mencionar otras capacidades de Deskzilla: • Las Colecciones de Bugs son carpetas especiales para los mismos – Usted puede agregar bugs a una colección y ver qué bugs se encuentran ahí. Por ejemplo, puede crear una colección llamada notas de publicación y llenarla con apuntes que vale la pena mencionar en los próximos anuncios de difusión. Las colecciones de bugs son como etiquetas o fichas (un bug puede pertenecer a un número de colecciones). Éstas son también como las consultas (puede crear subconsultas y distribuciones bajo ellas también). La herramienta export (o exportar) permite convertir bugs a formato CSV o HTML, para luego procesarlos con una aplicación de hoja de cálculo o para imprimirlos. Varias conexiones a los servidores de Bugzilla pueden ser configurados dentro de un mismo Deskzilla, lo que lo hace muy conveniente para trabajar con

La instalación de Bugzilla puede ser una tarea que lleve tiempo si usted no está familiarizado con el proceso. Eso es particularmente cierto cuando se instala en Windows; en Linux usted necesitará además capacidad, tiempo y ancho de banda para instalar todos los módulos Pearl y librerías requeridas. ALM Works ha compilado un producto gratuito, Virtual Bugzilla Server, el cual le permite establecer un Bugzilla en ejecución literalmente en minutos. Si necesita trabajar con un bug en aspectos Virtual Bugzilla es una máquina VMque aún no están implementados en Deskzi- Ware virtual con Bugzilla pre-instalado. lla, puede presionar F9 y abrir el sitio web Para ejecutar Bugzilla usted necesitará: de Bugzilla para este bug. • Descargar e instalar gratuitamente el reRequisitos y disponibilidad productor VMWare desde el sitio web Deskzilla es una aplicación Java y funciona http://vmware.com, en Linux, Windows y Mac OS X. Las versio- • Descomprimir el Virtual Bugzilla Server nes Bugzilla soportadas son las 2.14 – 3.0 y y arrancar la máquina virtual. superiores. La versión Deskzilla más reciente está Eso es todo. Dentro de VMWare, Linux DSL disponible gratuitamente desde nuestro se inicia y luego que el sistema bootea, Bugsitio web. Por momentos, las últimas ver- zilla está listo para ser usado. siones en desarrollo pueden obtenerse Nótese que para usar Virtual Bugzilla mediante el programa Early Access, para en producción, se requiere de algunos paaquellos a quienes les agrada lo fresco sos más para asegurar el servidor y ajustar y nuevo. la configuración de la red. Deskzilla tiene varias opciones de liPara más información y para conseguir cencia disponibles. Si usted está trabajando las últimas versiones de VBS, visite el sitio en un proyecto Open Source, puede obte- web de ALM: http://almworks.com/vbs. ner una licencia gratis. Las licencias personales, corporativas, académicas y aquellas para ser utilizadas en sitios, están disponi-

www.lpmagazine.org

11

w

descripción de DVDs Disco B

Panda DesktopSecure para Linux

A

ntes de todo nos preguntamos – ¿por qué un antivirus para Linux? – la respuesta es muy sencilla, cada vez más este sistema operativo de escritorio se está haciendo un lugar tanto en el sector particular doméstico, como dentro del entorno empresarial. Grandes fabricantes de ordenadores ya lo preinstalan en sus equipos cuando éstos salen al mercado. Por tanto, desde Panda Software vemos la necesidad de proteger a nuestros clientes independientemente del sistema operativo que tengan instalado. Está sobradamente probado que Linux es un sistema vulnerable e inseguro y por ese motivo es necesario protegerlo frente a los ataques y cualquier otro tipo de amenaza que circula por Internet, por

esta razón nos encontramos en la necesidad de instalar un sistema de seguridad antivirus para estar protegido en todo momento. A continuación, vamos a describir el proceso de instalación de la protección que Panda Software proporciona para plataformas Linux. El producto del cual hablamos es conocido como Panda DesktopSecure para Linux. Aunque la instalación de programas en Linux puede llegar a ser una dura labor por las dependencias que requieren algunos paquetes y por las labores de configuración y preparación del núcleo del sistema (Kernel), en Panda hemos creado un producto muy sencillo e intuitivo a la hora de instalarlo, únicamente se debe tener en cuenta cumplir

Figura 2. Estado del programa

los requisitos de hardware y de distribución de Linux que se nos pide para poder poner en marcha la aplicación en nuestro sistema operativo de escritorio Linux. Para más información sobre los requisitos necesarios de instalación de Panda DesktopSecure para Linux, por favor visitar: http:// www.pandasoftware.es/descargas/Betas/empresas/ info_desktopSecure.htm. Comprobados los requisitos, procedemos a instalar el producto: el paquete podemos obtenerlo en distintos formatos. Los .deb para las distribuciones basadas en Debian, como pueden ser Debian y Ubuntu; los .rpm

para las distribuciones basadas en Red Hat y Suse. Otro de los formatos en el cual podemos encontrarnos el paquete de instalación, es en formato script .sh el cual también es muy común y se puede ejecutar en cualquier distribución Linux. Una de las cosas a tener en cuenta si los ficheros los descargamos de Internet, es verificar que están con los permisos debidamente configurados para proceder con la instalación de la aplicación. Si esto no es así, debemos utilizar el siguiente comando para poder cambiarlos:
#chmod 755 desktopsecure.1.01.00.sh

Si vamos a hacer uso de los paquetes instaladores .deb o .rpm, se recomienda utilizar el gestor de instaladores de la distribución correspondiente. A continuación nos vamos a centrar en la instalación del fichero .sh. Para lograr esta instalación hay que tener en cuenta que hay que realizarla con el usuario root, o bien utilizando los comandos su o sudo para actuar como si fuésemos root. Si accedemos al equipo como usuario root, se debe tener mucho cuidado con lo que se hace, ya que este usuario tiene todos los privilegios y las acciones que realicemos, pueden tener carácter irreversible. A continuación, introducimos el CD en la unidad lectora y entramos en el contenido de éste (/media/hdc), buscamos el fichero DesktopSecure-1.01.00.sh y hacemos doble clic en él (siempre que abramos la carpeta a través

Figura 1. Instalación de Panda DesktopSecure para Linux

12

Linux+ 5/2007

w

descripción de DVDs Disco B

del gestor de ventanas), entonces nos apare- clic en adelante y posteriormente el programa instalar la aplicación y si alguno de los mócerá un selector como el de la figura. 1 para de instalación nos va a ofrecer dos opciones dulos que la componen no se quiere instalar, poder elegir el idioma deseado de nuestro para continuar instalando el producto Panda como por ejemplo el firewall. producto. DesktopSecure para Linux. Esta opción no se recomienda seguir Elegimos el idioma español por ejemLa instalación típica, es la más recomen- a menos que el usuario sea avanzado y domiplo y aceptamos. Tras esta elección, la apli- dable para usuarios no avanzados porque no ne ciertos conceptos. cación de instalación nos dará información deberán tomar posteriores decisiones comDespués de la toma de estas decisiones, sobre el producto y los aspectos legales que plejas. Eligiendo este modo de instalación se el proceso de instalación continúa su curso debemos aceptar para poder continuar con va a crear una instalación óptima de la ap- hasta llegar al fin. Una vez se hayan termisu uso. prometemos al correcto uso y derechos que licación, con los módulos recomendados por nado de instalar todos los ficheros necesarios para que el programa antivirus pueda La instalación personalizada, nos dará la funcionar, la aplicación nos pedirá un reiniAceptando las condiciones, nos com- el fabricante.

estipula la licencia de software. Hacemos opción de poder elegir aspectos como dónde cio de la

Junxy, el bloqueador de Spam para formularios de presentación

E L

sta es una implementación de PHP cantidad de spam en forma de formularios Junxy será una de las herramientas y una base de datos MySQL para web. Two Brothers Software Web Design ha de bloqueo de spam para formularios de proveer a los usuarios de Internet diseñado Junxy, el bloqueador de spam para presentación más simples que usted pueda una manera de crear bloqueos, formularios de presentación. encontrar. Con Junxy, usted podrá agregar para que los Formularios de presentación de su No importa si usted tiene pequeños, o quitar sus bloqueos en un formulario página web no llenen de basura su bandeja grandes o múltiples formularios en su sitio. web. de entrada. La gente le envía links, ofertas de software, Requisitos: Servidor con PHP 4.01 o suLa comunidad web ha dejado de mostrar etc. El bloqueo global de IP's para las visitas perior instalado. Este script requiere una banuestras direcciones de e-mail en las páginas a su sitio no es una idea, ya que podría estar se de datos MySQL. El usuario debería sentirweb, y la mayoría de quienes tenemos sitios, perdiendo tanto clientes como spammers. se cómodo creando una base de datos y adihemos cambiado a formularios de servidores La mejor manera de manejar este tipo de cionando un usuario con una contraseña. online. Pero, con la industria del spam salién- spam es poniendo algunos filtros en su El script se encarga de agregar o borrar los dose de control, estamos viendo una gran página. componentes de la base de datos.

inEx PYME, es un conjunto de • soluciones integrales destinadas a las empresas, para la gestión y desarrollo de sus actividades. • Es una solución de Software Libre, bajo licencia GPL para la Gestión Empresarial. Está basada en la distribución Gnu- • LinEx. GnuLinEx incluye el kernel Linux y está basada en la distribución Debian GNU/Linux y GNOME, contando con OpenOffice.org como Suite Ofimática, entre otras aplicaciones. La aplicación LINEX PYME permite controlar el movimiento de todo el almacén, la caja y la facturación, y manejar la contabilidad de la empresa, todo ello con un coste más competitivo derivado del ahorro que supone una licencia de software libre. Principales paquetes que lo componen: •

LinEx PYME 2006

Contalinex_1.1.0: Versión 1.1.0 del software de Gestión de Contabilidad adaptado al P.G.C . para LinEx. Libgestionlinex_1.0: Librerias necesarias

de bases de datos MySQL. Pensado para una pequeña empresa permite su utilización en una red local.

para los paquetes de Gestión LinEx Con- Para más información sobre la distribución, tabilidad y Facturación. cómo instalarla y configurarla os invitamos Galopin v1.0: Es un sencillo programa de a leer el artículo LinEx PYME software libre facturación y control de existencias, li- para la gestión empresarial, publicado en este berado bajo licencia GPL, realizado en número de Linux+. lenguaje PHP y utilizando como motor

Gestión LinEx Facturación v.1.5: Gestión LinEx Facturación versión 1.5.0 que incluye nuevas mejoras sobre sus predeFigura 1. Instalación de LinEx PYME cesores.

www.lpmagazine.org

13

w
NE WS

novedades Noticias sección llevada por Alex Sandoval news@lpmagazine.org

Linux World México 2007 El congreso más importante de Open Source en México se llevó a cabo del 28 de febrero al 02 de marzo en el Centro Banamex. LinuxWorld México tuvo como objetivo principal brindar a los visitantes herramientas en materia de Open Source y Linux. Este año contó con la participación de Miguel De Icaza, representante de Novell y Red Hat. Entre los temas desarrollados en el evento estuvieron: universo móvil con código abierto, software libre, seguridad y la cruzada nacional por un México tecnológico, entre otros. Los participantes pudieron acudir, entre otras, a las siguientes conferencias: Estrategia y soluciones de virtualización en el centro de cómputo, OpeniOffice.org en la empresa, Virtualización en tecnología Linux, Incrementando la productividad de tu negocio con LINUX, Como migrar de Windows a Linux. Aunque el precio de la conferencia no fue bajo (desde 750 hasta 6000 pesos mexicanos, dependiendo del paquete) seguramente valió la pena estar presente. El evento se llevó a cabo en el Centro Banamex y contó con el apoyo de la Asociación Mexicana Empresarial de Software Libre (AMESOL). Damn Vulnerable Linux Tal y como dice su nombre se trata de una “maldita y vulnerable” distribución de Linux. Y es que Damn Vulnerable Linux (DVL) no se ha creado para ser instalada, sino sólo para ser ejecutada: DVL, basada en Damn Small Linux, es un LiveCD de sólo 150 Mb pensado para ejecutarse en un entorno virtualizado. Y el motivo es muy bueno: Los expertos de DVL se han pasado meses ideando cómo crear una distribución de Linux extremadamente insegura por defecto. A tal fin se ha elegido un kernel 2.4, al que se han anadido aplicaciones no actualizadas y configuraciones desastrosas, a fin de proporcionar vulnerabilidades por doquier. DVL no es la única distribución Linux destinada al aprendizaje de la seguridad, pero sí es una de las mejores. Además de los servidores al uso, perfectamente instalados y listos para utilizar, DVL proporciona ensambladores (HLA) y desensambladores, debuggers y todas las herramientas necesarias para explorar en profundidad posibles vulnerabilidades en las aplicaciones. El conjunto está acompanado por varios tutoriales listos para usar, exploits para practicar, etc, etc. Incluso se dispone de vídeos para ilustrar las lecciones, que han de descargarse desde el sitio web de DVL porque no se han incluido en el CD para no aumentar su tamano. Para futuras versiones se planea la inclusión del Metaexploit Framework. http://www.kriptopolis.org/ damn-vulnerable-linux

La comunidad linuxera exige a Ballmer que muestre el código

A

l parecer la comunidad linuxera no le dará tregua a Microsoft, en especial a Steve Ballmer, hasta que se haya aclarado el tema del supuesto robo de propiedad intelectual de Linux a Microsoft. Un grupo de seguidores del sistema opertivo del pingüino crearon un sitio llamado ShowUsTheCode.com, en donde le escriben una carta abierta a Ballmer, retándolo a que muestre las porciones de código que según él violan la propiedad intelectual de Microsoft. Y la carta dice así: A muchos en la comunidad Linux les ha llamado la atención la manera en que usted ha declarado, una y otra vez, que Linux viola propiedad intelectual de Microsoft.

rededor de todo el mundo que estarían felices de trabajar con Microsoft para corregir este problema. ¿No se lo deben a sus accionistas, el trabajar con otros para asegurar que su propiedad intelectual no está siendo violada? Los miembros de la Comunidad de Linux no deseamos su código. No deseamos pleitos. No deseamos código no-libre. Y para su consternación, no deseamos el código de Microsoft específicamente. Esto es lo que estamos solicitando. Estamos solicitando la ayuda de la comunidad de Linux. Estamos diciendo en voz alta a Richard Stallman, Linus Torvalds, Larry Page, Sergey Brin, al Dr. Eric Schmidt, Mark Shuttleworth, Kevin Carmony, y Matthew Szulik, así como cualesquiera y todos los desarrolladores de cualquier distribución de Linux o cualquier compañía que se sienta amenazada por pleitos no existentes: Publicamente solicitamos que Microsoft muestre al público el código dentro de Linux que viole su propiedad intelectual antes del 1º de mayo de 2007. La carta completa la puedes seguir leyendo en el sitio, y si quieres ser parte de la campaña ahí también encontrarás más información. La idea, como verán, es que cualquiera que esté involucrado con Linux (especialmente a nivel empresarial, porque son los verdaderos perjudicados en todo esto), se unan en esta cruzada para que de una vez por todas se aclare el asunto. O en otras palabras, para taparle la bocota a Mr. Ballmer. http://showusthecode.com/

Y no sólo eso, sino además es sabido que Microsoft ha convencido a empresas a que les paguen por una patente de Linux que ustedes no pueden proveer. Por lo tanto, este sitio servirá como una respuesta a esa acusación, y al mismo tiempo, una petición. La petición es simple, ya que ustedes, Microsoft, declaran estar totalmente seguros de sí mismos: Muéstrennos el Código. Si los desarrolladores de Linux estuvieran al tanto de este código, entonces podría ser omitido y Linux podría reescribir los aspectos necesarios del kernel o del sistema operativo. Esta es una petición bastante simple y de cortesía común. ¿Por qué lanzar al aire amenazas de demandas, amenazas que le costarían tanto a Microsoft como a los acusados? No tiene lógica, especialmente si consideran que hay desarrolladores al-

Carta abierta a Ballmer para que indique que partes del código Linux violan la propiedad intelectual de Microsoft

14

Linux+ 5/2007

w
3GSM: ACCESS muestra ALP 1.0, el futuro de Palm OS

novedades sección llevada por Alex Sandoval news@lpmagazine.org Noticias

NE WS

E

n la 3GSM del año pasado, ACCESS anunció que el recientemente fallecido Palm OS iba a reencarnar bajo el nombre de ACCESS Linux Platform (ALP), e iba a estar basado en Linux. Advirtió, eso si, que no se mostraría nada hasta el próximo año. Pues bien, el año llegó y finalmente vemos las primeras imágenes de ALP v1.0. Palm OS siempre ha sido el sistema operativo favorito de muchos para dispositivos portátiles, pero hace años que la versión de Palm OS que podemos encontrar en las Palm actuales estaba completamente estancada. Así que los fanáticos de Palm OS podrán respirar aliviados de que finalmente este sistema operativo sigue evolucionando. Una de las mejores noticias de ALP es que tendrá una capa de compatibilidad con las versiones anteriores de Palm OS, permitiendo que los usuarios puedan usar las miles de aplicaciones actualmente disponibles para esta plataforma. Ya está disponible un Product Development Kit (PDK)

y Software Development Suite (SDK) para que los licenciadores del sistema operativo puedan empezar a probarlo en sus equipos y desarrollar aplicaciones nativas para ALP. No anuncian cuando estarán disponibles los primeros equipos usando ALP, ya que todavía no anuncian quienes van a licenciarlo (pero podemos suponer que Palm Inc. será uno de ellos). El sistema operativo está optimizado para pantallas de 240×320, pero también soporta resoluciones HVGA de 320×480, y WVGA de 800×480. Requiere un procesador ARM 9 de 200 MHz como mínimo, aunque ACCESS recomienda un procesador ARM 9 de 400 MHz. Tiene una serie de aplicaciones nuevas y nativas para ALP, incluyendo una versión nativa del querido HotSync, que ahora soporta OMA DS v1.2 (SyncML). http://www.palminfocenter.com/news/9246/newalp-details-and-screenshots/

Profesor acusado de pirata: la cárcel o Linux Se trata del caso del profesor ruso Alexander Ponosov que está siendo acusado de violación de copyright por el uso ilegal de programas de Microsoft, con un daño de 260 mil rublos (US$ 9.800). Bajo las leyes rusas de protección de copyright, la condena podría ser de 5 años de cárcel en Siberia. Ponosov se declara inocente, alegando que los programas se encontraban preinstalados en los computadores adquiridos por instancias administrativas superiores, algo que parece bastante creíble a la vista de las posteriores declaraciones de algunos dirigentes rusos. Por su parte, Nikolay Karpushin, ministro de educación de la región, acaba de anunciar que las escuelas comenzarán a utilizar Linux y OpenOffice.org, puesto que comprar programas comerciales a los distribuidores resulta bastante caro. http://eng.cnews.ru/news/top/ indexEn.shtml?2007/01/10/230643 Programadores de Linux ofrecen desarrollo gratuito de controladores a empresas Aunque este último tiempo el avance del kernel de Linux ha sido notable, todavía hacen falta algunos controladores para esos dispositivos más específicos. Pero ahí es donde aparecen los heroicos desarrolladores de Código Abierto, ofreciendo sus conocimientos y sus horas sólo para apoyar la causa del pingüino. Un programador anunció en su blog que la comunidad de desarrolladores del núcleo le está ofreciendo a cualquier empresa la posibilidad de desarrollar controladores para Linux… y por costo cero. Lo único que piden es una especificación que describa cómo funciona el dispositivo, o bien el correo de algún ingeniero que les pueda responder las dudas sobre el mismo tema. Una vez programado y probado, el controlador sería incluido en la rama central del núcleo de Linux. Es decir, sería integrado de arriba a abajo en las más de cien distribuciones. http://www.kroah.com/log/2007/01/29/ #free_drivers Ubuntu 7.04 no incluirá controladores propietarios La Junta Directiva Técnica de Ubuntu hizo dos anuncios importantes, y ambos conciernen a Feisty, la nueva versión de la distro que se viene en abril. El primero tiene que ver con los controladores propietarios. Después de que muchos se alegraran (y otros no tanto) con la noticia de que Ubuntu los incluiría por defecto, finalmente la decisión se terminó revocando, aunque no por motivos filosóficos como se creía. La Junta considera que a los controladores aún les falta desarrollo, por lo que sería una error meterlos en la distribución. https://lists.ubuntu.com/archives/ubuntuannounce/2007-February/000098.html

Linux acelera los nuevos servicios a teléfonos móviles más baratos

E

l sistema de código abierto estará instalado en equipos de Motorola, Samsung, Panasonic y NEC, que serían más baratos que los celulares con Windows. El sistema operativo de código abierto Linux ayudará a que los fabricantes de teléfonos móviles Motorola, Samsung, Panasonic y NEC fabriquen celulares que se podrán vender por menos de 125 dólares, y permitirá el rápido lanzamiento de nuevos servicios. La compañía estadounidense, la surcoreana Samsung y las japonesas NEC y Panasonic – propiedad de Matsushita – se asociaron el año pasado con las operadoras Vodafone y NTT DoCoMo para desarrollar programas estándar de Linux para teléfonos móviles. Estos proveedores producen más del 95 por ciento de todos los móviles con Linux que se fabrican actualmente. La colaboración es un intento de ahorrar dinero en la compra de software para teléfonos multimedia, como Symbian Series 60 o Microsoft Windows Mobile. La mayoría de los móviles que usan programas de Symbian y Windows cuestan

más de 200 dólares. Pero la razón principal es estratégica. Queremos ser capaces de apoyar y dirigir la innovación nosotros mismos, añadió Besio, quien también mostró sus dudas de que Nokia, que posee su propio programa Series 60, ayude a su mayor rival, Motorola, a crear un producto mejor. Los cuatro proveedores venden cientos de millones de móviles cada año, suficientes para apoyar un nuevo sistema operativo como Linux. Pueden colocar nuevas aplicaciones en una fracción del tiempo que costaría que se aprobara otro en los otros sistemas de programas informáticos. El objetivo es que las aplicaciones se introduzcan más rápidamente en los aparatos. Esté donde esté el próximo Google, queremos que la gente lo tenga primero en un móvil Motorola, manifestó Christy Wyatt, vicepresidente de programas del número dos de fabricantes de teléfonos móviles del mundo. http://www.infobaeprofesional.com/interior/inde x.php?p=nota&idx=41171&cookie

www.lpmagazine.org

15

w

novedades Ubuntu sección llevada por Francisco Javier Carazo Gil ubuntu@lpmagazine.org

Linspire y Ubuntu firman un acuerdo Dos distribuciones con dos formas de ver al Linux ideal de dos maneras distintas y con dos formas de negocio también bien distintas. Sin embargo, a pesar de las diferencias, han decidido firmar un acuerdo de colaboración en el que ambas saldrán beneficiadas y en conjunto, toda la comunidad Linux. Quizás la propia diferencia entre ambas y sus dos mercados objetivo tan distintos han facilitado la adopción del acuerdo, ya que entre estas dos distribuciones, el número de potenciales usuarios solapados es reducido. El acuerdo en sí consta de varios puntos. A partir de ahora Linspire estará basado en Ubuntu y no en Debian como hasta ahora. Aunque como todos sabéis Ubuntu si está basado en Debian. La intención es que Freespire, la alternativa gratuita de Linspire también se beneficie de dichos cambios. Las razones de por qué Linspire ha querido basarse en Ubuntu en lugar de en Debian, hay que buscarlas en la alta periodicidad con la que Ubuntu se actualiza y la gran usabilidad de esta distribución. A cambio Ubuntu recibirá acceso al repositorio de Linspire, el llamado CNR (Click'n'Run), lleno de aplicaciones que se instalan en un sólo click pero con gran cantidad de código cerrado. Esto amplia los horizontes y las posibilidades de Ubuntu. En definitiva un acuerdo en el que, a pesar de haber opiniones encontradas, se aumentarán las posibilidades de Ubuntu, gracias a la inclusión de la que quizás sea la característica más importante de Linspire, el CNR. http://www.ubuntu.com/news/ LinspirePartnership http://www.linspire.com/ubuntupartnership Ultimate Ubuntu 1.2 Para quien no la conozca, decirle que Ultimate Ubuntu, es una distribución derivada de Ubuntu, no podía ser de otra forma, en la que a nuestra querida Ubuntu original, se le han añadido gran cantidad de paquetes y soporte ya instalado. En concreto se trata de Ubuntu Edgy Eft, con extras como gran cantidad de juegos, aMule, Gambas, Amarok, Beryl, soporte para iPod. En definitiva una más de las derivadas de Ubuntu, pero que a más de uno puede ahorrarle mucho trabajo y mucho tiempo, ahorrándonos tener que instalar posteriormente a la instalación y configuración de nuestro sistema operativo, una gran cantidad de software y paquetes para realizar tareas básicas que no vienen por defecto. Sin embargo, a pesar de las ventajas que son claras, yo sigo prefiriendo instalar mi Ubuntu original e instalar los paquetes que yo quiero, ya que además hoy en día con la gran cantidad de posibilidades que hay, desde Synaptic a Automatix, no se pierde apenas tiempo en instalar todo lo necesairio. http://ubuntusoftware.info/ultimate/ index.html

Definitivamente, drivers propietarios por defecto no

E

n esta misma sección, meses atrás ya hablamos de este espinoso tema, la intención de incluir en la siguiente versión de Ubuntu, Feisty Fawn, drivers propietarios. La intención era clara, mejorar las posibilidades multimedia de la distribución, sobre todo en cuanto a capacidad gráfica para soportar el escritorio en tres dimensiones o respecto a tarjetas inalámbricas. A su vez con esta decisión, Ubuntu daba un paso muy grande, incluir código cerrado en la instalación por defecto. Es verdad que en la actualidad, y en un futuro, Ubuntu seguirá incluyendo drivers propietarios para determinado hardware, sin embargo también es

dimensiones disponibles para GNU/Linux, como Beryl o Compiz, no están todo lo depurados que deberían para poder ser incluidos en una versión de producción de una distribución. En un futuro esperemos que no tenga ni que darse la posibilidad de tener que incluir drivers propietarios, ya que gracias a la comunidad de software libre, será posible desarrollar driver libres para todos los componentes hardware que existen. Pero a su vez entra aquí otro problema, si no se dispone de las especificaciones propias de dicho componente, es un proceso casi imposible poder implementar un driver. Cada día parece que la política de más empresas es proporcionar dichas especificaciones, pero todavía no son todas y si lo fueran, seguramente no tendría ni sentido la noticia de la que estamos hablando. También hay que reconocer que las empresas si no liberan las especificaciones es por intereses propios, nada podemos reprocharles, ya que su interés económico, al ser una empresa es claro, y no se dedican (aunque algunas ayuden) a fomentar el software libre, por desgracia. Esperemos que para la siguiente versión de nuestra querida distribución, que será la 7.10 si no hay problemas con el calendario como ya ha ocurrido en una ocasión, la distribución disponga ya de una entorno gráfico en tres dimensiones por defecto, para poder rivalizar de manera directa en ese campo con Windows Vista. Si Ubuntu quiere atraer hasta al usuario de escritorio con menos experiencia informática, y que con programas como install.exe que el mes pasado comentábamos, se estaba ganando; debe cuanto antes disponer de mayores facilidades para instalar drivers propietarios y paquetes necesarios para el entorno. En la actualidad existen gran cantidad de información en la red de cómo hacer esto, sin embargo, el usuario recién llegado de Windows, quiere todo a un click de distancia y a pesar de que en muchos casos no sea la mejor solución, para llegar a ganar la batalla a la compañía de Redmond será necesario, al menos ofrecerlo en opción.

verdad que dicho hardware no tiene otra posibilidad de ser utilizado ya que no existe alternativa libre. Los drivers que en un principio quería incluir Canonical Ltd. a pesar de tener alternativas libres, eran mucho más potentes que éstas, por lo que en un principio a pesar de no ser absolutamente necesario, para ejecutar un entorno como Beryl o Compiz si que lo eran en determinadas tarjetas gráficas. Sin embargo, la filosofía de Ubuntu y del software libre en general, hacía que dar este paso además de ser una decisión dura incluía a Ubuntu en el grupo de distribuciones GNU/Linux más o menos no libres, como Linspire. A pesar de que no se instalan por defecto, tras la instalación y configuración del sistema, la instalación de dichos drivers es realmente sencilla. De esta manera, que creo que es la más acertada por otra parte, se favorece tanto a los usuarios más inexpertos o aquellos que necesiten de grandes posibilidades para gráficos en tres dimensiones, por ejemplo, y a su vez, los puristas del software libre, saben que al instalar Ubuntu, no se instalará ni un ápice de software privativo más de lo estricta y absolutamente necesario. Siguiendo con el tema principal de la noticia, la no inclusión de los drivers propietarios, tendrá una serie de consecuencias. La primera de ellas será la no instalación por defecto del entorno gráfico en tres dimensiones. Es verdad, que esta consecuencia no es sólo producto de la no inclusión de los drivers propietarios, sino también es consecuencia de que los entornos en tres

16

Linux+ 5/2007

w
¡Debian Te necesita!

novedades sección llevada por Samuel Pizarro Sliva debian@lpmagazine.org Debian

M

uchos ya saben que Debian es el sistema madre de muchas otras distribuciones, que es la distribución por excelencia de los usuarios más avanzados en Linux y que goza de gran respeto no sólo dentro de la comunidad Linux, sino que dentro de la comunidad GNU completa. Lo que no saben, es la cantidad de trabajo que este proceso requiere, la cantidad de personas que son necesarias para coordinar y mantener un proyecto tan grande como Debian. De un tiempo a la fecha la cantidad de traductores, desarrolladores y traductores ha disminuido debido, principalmente a que varios han preferido irse a Ubuntu, unos pocos por dinero, otros por que Ubuntu les ofrece la posibilidad de convertirse en desarrolladores más fácilmente que Debian y otros, simplemente porque les parece que Ubuntu es mejor que Debian. Debido en parte a este problema, es que Etch ha demorado su salida, se hace más lenta la revisión de paquetes, para que un paquete caiga a estable, debe cumplir con muchas y estrictas políticas, es quizás eso lo que diferencie a Debian del resto de las distribuciones, pero es eso también lo que hace que el proceso requiera de muchas personas para poder dar una distribución estable cada cierto tiempo a la comunidad.

Página de Debian para los desarrolladores

El sistema de inscripción electoral de Nueva Zelanda corre en Debian Así es, a la hora de confiar la información y de alta disponibilidad los grandes proyectos terminan adoptando Debian GNU/Linux, como es el caso del sistema de inscripción electoral de Nueva Zelanda, el sistema consiste en dos cluster de bases de datos Postgresql las cuales están ubicadas en distintas localidades. Este nuevo sistema reemplaza al sistema de bases de datos descentralizadas en Oracle con interfaces de usuarios basadas en Visual Basic. El nuevo sistema también incrementa el número de participantes de la votación, ya que automáticamente avisa acerca de los votos en curso. HP da soporte Debian a sus clientes Los clientes de la línea de negocios de HP que opten por la opción Debian/ GNU Linux ya tienen soporte de parte de esta empresa. Así lo anunció HP en su página, gracias a esta decisión, los clientes tendrán soporte vía e-mail o telefónico para solucionar problemas que tengan que ver con la gama de servidores a los que HP da soporte Debian. Lo anterior ha generado un debate acerca de Debian ya que HP está embolsando mucho dinero gracias al proyecto Debian, y en este minuto se está analizando si debiera pedírsele algo a cambio. DebConf 2008 en Argentina La conferencia anual de Debian del año 2008 se llevará a cabo en la ciudad de Mar del Plata, en Argentina durante la segunda y la tercera semana de agosto. Se crea sitio Debian.cl El grupo de usuarios Debian Chile anunció que ya se ha creado el sitio debian.cl, el objetivo de este sitio, es difundir el uso de Debian GNU/Linux en Chile, así como también realizar actividades orientadas a capacitar a las personas en el uso del popular sistema. Google Summer of Code 2007 Debian ya creó un Wiki para coordinar la participación de Debian en el Summer of Code de Google, que se llevará a cabo a finales de mayo. Instalador de Debian para Windows El desarrollador Robert Millan, basándose en el proyecto de instalador de Ubuntu desde Windows, ha anunciado la disponibilidad de una versión para instalar Debian GNU/Linux desde los sistemas operativos de Microsoft. De esta manera, la instalación de una de las más relevantes distribuciones del panorama Linux se podrá realizar desde el escritorio de Windows. La herramienta incorpora la detección automática de arquitecturas de 64 bits, además de la descarga de los archivos necesarios para la instalación por red o la configuración del gestor de arranque.

la consola. También puedes colaborar con traducciones al español u otro idioma, este proceso es muy importante ya que siempre hay muchas cosas que traducir, pero no es tan simple, primero debes leer un par de rasgos característicos y convenciones que se utilizan en Debian para traducir por ejemplo, un documento del Inglés al Español. O quizás quieras comenzar el proceso de ser un desarrollador, para tal motivo, lo primero que debes hacer es leer el rincón del desarrollador en http://www.debian.org/ devel/ y comenzar por tomar algún paquete huérfano. Cabe destacar que debes tomar un paquete en el que tengas experiencia programando o por lo menos tengas las ganas de echarle mano al código fuente, ya que no siempre el programador original de la aplicación está disponible para programarlo o programarlo exclusivamente para Debian. Si ya estás acostumbrado a Linux, ¿Qué esperas para instalar Debian? ¡Debian Te necesita!

¿Cómo participar?
Si te gustaría participar en este proyecto, aunque no seas experto en informática, es sencillo hacerlo, basta con instalar Debian Testing, o Unstable para los más osados en tu PC e informar de fallos, errores, etc. Por medio de la herramienta reportbug desde

HP gana U$S 25 Millones con Debian

H

P, que anunció que haría justamente trabajando en certificar su hardware para la eso el año pasado, ya está ganando próxima versióń Debian Etch, esperada pa-

U$S 25 Millones por brindar soporte para la ra maś tarde este mismo año. distribución Debian GNU/Linux, en lo que HP soporta tanto a Novell SuSE Linux podría llegar a convertirse en una amenaza como a Red Hat Enterprise Linux, pero es directa para el negocio principal de Novell evidente que su márgen de ganancia es más y Red Hat. Esas ganancias corresponden para amplio con Debian, que al contrario que las el año fiscal 2006 y sólo para la región de dos anteriores, es gratuito. Europa, Medio Oriente y Africa, una cifra A pesar del éxito con Debian, es poco que sorprendió hasta los mismos gerentes probable que HP agregue soporte para otde HP. ras distribuciones próximamente. HP está soportando la actual versión estable Debian Sarge, aunque la empresa está

www.lpmagazine.org

17

w

novedades SUSE sección llevada por Esteban Negri linux@lpmagazine.org

OpenSUSE Build Service Novell libera esta maravillosa distribución que provee una infraestructura ideal para el desarrollador de futuras distribuciones basadas en OpenSUSE. No solamente está orientada a OpenSUSE, ya que posee herramientas que permiten armar paquetes para distintas distribuciones (OpenSUSE, SUSE LE, Debian, Ubuntu, Fedora, etc.). Como si fuera poco posee Kiwi una herramienta para armar live CD's, así los desarrolladores pueden crear sus distribuciones con gran facilidad. OpenSUSE 10.3 Alpha Ya pueden descargar la versión alpha 10.3 de OpenSUSE, entre otros cambios KDE se actualizó a la versión 3.5.6, la versión del kernel es la 2.6.20 (la última estable a la fecha) y OpenOffice.org se actualizó a la versión 2.1.3. Según el roadmap se espera que la versión final salga en septiembre. Descarga: http://en.opensuse.org/ Development_Version#Downloads. Ballmer amenaza a los usuarios de Linux Según CNET, Steve Ballmer, CEO de Microsoft, ha estado susurrándoles a los analistas de Nueva York su estrategia respecto a la filosofía Open Source: será mejor que hagan tratos con Microsoft antes de que sea demasiado tarde. De hecho, citó el pacto con Novell como un ejemplo perfecto de lo que los demás deberían hacer. Ballmer volvió a repetir sus declaraciones anteriores en las que afirmaba que el Código Abierto no es gratuito, y enfatizando el hecho de que Microsoft podría demandar a diversos desarrolladores y vendedores de Linux Actualización de fetchmail para productos Novell SuSE Novell ha publicado una actualización para fetchmail que soluciona varios problemas de seguridad. Fetchmail es una herramienta utilizada para descargar correo electrónico de servidores y repartirlo en diversas cuentas locales. Se trata de un servicio utilizado con asiduidad por administradores de sistemas con conexiones no permanentes a Internet. Si fetchmail está configurado en modo multidrop, un atacante remoto podría provocar una denegación de servicio si se envían mensajes especialmente manipulados. Fetchmail no comprueba correctamente TLS bajo ciertas circunstancias y podría permitir el tránsito de contraseñas en texto claro, lo que permitiría a atacantes obtener información sensible. A la hora de rechazar un mensaje recibido a través de la opción mda, un atacante podría provocar una denegación de servicio a través de vectores desconocidos cuando se llama las funciones ferror o fflush. Se recomienda actualizar a través de la herramienta automática YaST Online Update (YOU).

Instalando Beryl con drivers Nvidia en OpenSuSe 10.2

G

racias a la liberación de Compiz, en febrero de 2006 la comunidad lo ha seguido desarrollando y han creado Beryl, el hijo prodigio de Compiz, que es mucho más liviano y más fácil de configurar. Nvidia es la mejor alternativa hoy en día para instalar Beryl, ya que estas placas poseen un buen soporte para GNU/Linux debido a que los drivers se actualizan con frecuencia.

Instalando Beryl+Emerald
Si lograste con éxito el paso anterior ahora estás listo para instalar Beryl y Emerald. Agregar el siguiente repositorio desde yast: http://ftp.skynet.be/pub/software.opensuse. org/X11:/XGL/openSUSE_10.2/X11:XGL.repo. Instalar los siguientes paquetes:

• beryl-core, • beryl-plugins, • beryl-settings, Instalando el driver de Nvidia • beryl-manageremerald-themes, Hay dos maneras de hacer esto: instalarlo des- • emerald, de yast o bajar el driver nativo e instalarlo ma- • emerald-themes. nualmente. Si con la primera opción, luego de instalar beryl ven que no funciona, puede Ahora se necesita decirle a xserver que utilice ser que necesiten bajar el driver nativo, por composite: lo tanto explicaré las dos maneras de instalación. su

Desde Yast
Agregar el repositorio ftp://download.nvidia. com/novell/ desde Yast e instalar los paquetes x11-video-nvidia y nvidia-gfx-kmp-default. Reiniciamos X presionando ctrl+alt+backspace. Y si todo ha salido bien ya tenemos instalado el driver de nvidia.

nvidia-xconfig --composite nvidia-xconfig --allow-glx-withcomposite nvidia-xconfig --render-accel nvidia-xconfig --add-argb-glx-visuals

Este comando lo que hace es agregar las líneas necesarias al archivo /etc/x11/xorg.conf para poder utilizar xgl. Reiniciar X y ejecutar beryl-manager. Si Instalación manual ves que funciona bien, puedes hacer que se Bajar el driver de nvidia ubicado en: ftp://down- ejecute al inicio de la siguiente manera. load.nvidia.com/XFree86/Linux-x86/1.0-9631/. Hay una versión más reciente y tam- GNOME bién hay versiones anteriores, si tienes una Ir a Sistema -> Preferencias -> Sesiones, en proplaca no muy nueva y el proceso de ins- gramas al inicio agregar: talación no es exitoso deberías bajar una versión anterior, generalmente los proble- • beryl, mas en la instalación de Beryl se dan por • beryl-manager, no tener instalado el driver de vídeo ade- • emerald. cuado. Abrir una consola apretando ctrl+ KDE alt+f1, ingresar username y password, luego dirigirse a la ubicación del driver y ti- ln -s /usr/bin/beryl-manager $HOME/ pear: .kde/Autostart/beryl-manager
ln -s /usr/bin/beryl $HOME/.kde/ sudo killall gdm/kdm (según la interfaz que tengan instalada) sudo sh NVIDIA-Linux-x86-1. 0-9631-pkg1.run Autostart/beryl ln -s /usr/bin/emerald $HOME/.kde/ Autostart/emerald

Si todo ha salido bien ya tienes Beryl instalado y podrás jugar un buen rato rotando Para estos dos comandos deberás ingresar tu el cubo 3D y moviendo las ventanas gelapassword. Una vez realizada la instalación, tinosas. reiniciar el gestor gráfico.

18

Linux+ 5/2007

w
NVIDIA y AIGLX en FC6

novedades sección llevada por Diego Rivero Montes linux@lpmagazine.org Fedora

A

ver cómo instalamos el último driver de NVIDIA para que pueda trabajar como debe en AIGLX. Lo primero es preparar el kernel-source. Para ello seguiremos los siguientes pasos y así evitar que se nos fastidie la instalación por cualquier tontería: • • Nos ponemos en modo consola, abriendo un terminal y entramos como root. Escribimos cd usr/src/kernels/2.6.18-1.2798. fc6-i686/ (sustituir 2798 por tu versión del núcleo, que probablemente será más nuevo). Ahora volvemos a escribir cd include/ linux. Creamos un enlace simbólico al archivo

Ahora estaremos de nuevo en otra consola en modo texto y entraremos de nuevo como root. Nos vamos al directorio en el que hemos almacenado el driver por ejemplo el /tmp, haciendo :
cd /tmp y ./NVIDIA-Linux-x86-1.0-9746pkg1.run

• •

(por supuesto si el nombre del fichero es otro debemos sustituirlo por el nombre apropiado del archivo). La instalación preguntará si utiliza ftp para un módulo, teclearemos no. Dejáis compilar el módulo. También hay que permitir que cambie el archivo de xorg.conf.

Fedora Core 7 test 1 Fedora 7 test 1 fue puesta a disposición del público este 1º de febrero. Según la fuente a la que se ha tenido acceso, para este lanzamiento particular, únicamente se ha realizado un escritorio y una colección de paquetes. Por el momento aún se está en fase de realizar las correspondientes puestas a punto y afinar la fusión del Core con los Extras. También se encuentra un CD instalable que todos estábamos deseando probar. En la siguiente dirección http://fedoraproject.org/wiki/Releases/7 se pueden encontrar los detalles más frescos sobre los trabajos del séptimo lanzamiento de FEDORA. Actualización de SpamAssassin Ha sido lanzada la versión 3.1.8 del conocido filtro de Spam para el email que se puede invocar por agentes de reparto del correo. SpamAssassin es una aplicación que nos provee de una manera de reducir, si no eliminar totalmente, esos correos que nos saturan nuestra bandeja de entrada y que no provienen de nadie que nosotros conozcamos o que hayamos solicitado, en definitiva lo que se llama Spam. La aplicación puede ser invocada por un MTA tal como sendmail o postfix, o puede ser llamado a través de un script de procmail, archivo de .forward, etc. Utiliza un algoritmo-genético de sistema desarrollado para identificar los mensajes que parecen spam, entonces, agrega cabeceras a los mensajes y así de este modo pueden ser localizados y filtrados por el software de lectura de correo del usuario. Esta distribución incluye los componentes de spamd/spamc los cuales crean un servidor con una considerable velocidad de proceso de correo. Para activar spamassassin, si estás recibiendo el correo localmente, deberás agregar simplemente esta línea a tu ~/.procmailrc: INCLUDERC=/etc/mail/ spamassassin/spamassassin-default.rc. Para filtrar el Spam para todos los usuarios, agregar esa línea a /etc/procmailrc (en caso de necesidad). Para descargarnos esta actualización podemos hacerlo desde: http://download.fedora .redhat.com/pub/fedora/linux/core/updates/6/ Fedora Core 6 Re-Spins Fedora relanzó en enero la nueva Iso, Re-Spins tanto en versión DVD como en CD. Estas nuevas ISOs, de Fedora Core 6 contienen todas las actualizaciones comprendidas desde el lanzamiento de ZOD hasta el día 11 de enero de 2007. Las imágenes de disco están disponibles para las arquitecturas habituales, léase, i386 y x86_64 vía BitTorrent, comenzándose el 18 de enero de 2007. Según la noticia las imágenes de PPC, seguirían en un plazo de cinco días por lo que a estas alturas deben estar más que disponibles.

autoconf.h y lo llamamos config.h. lo que Cargando el módulo se hace con el siguiente comando: ln -s Ejecutar modprobe nvidia. El módulo nvidia autoconf.h config.h. debe cargar sin dificultad. Ahora vamos a editar el archivo /etc/X11/ Ahora se puede compilar correctamente el xorg.conf con VIM o tu editor favorito y agremódulo para el driver de NVIDIA. gar o cambiar lo siguiente:

Trabajando con Internet
Ahora hay que hacer trabajar nuestra conexión con Internet y descargarnos la última versión del driver NVIDIA, que para las fechas en las que se está escribiendo este artículo, el último es el 9746. La descarga se puede hacer directamente desde el sitio de NVIDIA http://www.nvidia.com/object/unix. html. El driver lo vais a encontrar de la siguiente forma: es un archivo como NVIDIA-Linuxx86-nombredriver.run, el actual es NVIDIA-Linux-x86-1.0-9746-pkg1.run. Ahora lo copiamos a un directorio, por ejemplo /tmp. Hacemos el archivo ejecutable por root, introduciendo el siguiente comando:
cd /tmp chmod 755 NVIDIA-Linux-x86nombredriver.run

Section "Extensions" Option "Composite" EndSection

En la sección device, agregar:
Option "AddARGBGLXVisuals" "True"

En el Module section, añadimos:
Load "extmod"

La prueba de fuego
Introducir el comando siguiente para volver a las X:
/sbin/telinit 5

Ahora si todo ha ido bien debes ver el logo de NVIDIA mientras el servidor X está iniciándose. Abre un terminal y haz el login como usuario normal, no como root y ejecuta:

(¡Atención sustituir por el nombre de fichero apropiado!) desktop-effects

Ahora a instalar

Click on enable. Estamos en un terminal y como root tecleaUna última advertencia, sería inteligenmos: te guardar el archivo que hemos descargado ya que cada vez que cambies el núcleo /sbin/telinit 3 vas a tener que recompilar el módulo de NVIDIA.

www.lpmagazine.org

19

w

novedades Mandriva sección llevada por Juan Gamez mandriva@lpmagazine.org

Firefox 2.0 Ya está disponible para Mandriva 2007.0 la esperada versión 2.0 del navegador Firefox. Hasta ahora nos teníamos que conformar con la versión 1.5.0.9 de este popular navegador web, aunque la versión 2.0 llevaba bastante tiempo a disposición de los usuarios. Esta nueva versión de Firefox está disponible dentro de los paquetes backports del repositorio media. Como sabéis estos repositorios proporcionan nuevas vías de producción para los mantenedores y acceso a los usuarios a versiones de software más actuales. Warly sale de Mandriva Leemos en Blogdrake (http://blogdrake. net9) que Florent Villard, o Warly, como se le conoce en la comunidad de Mandriva, ha anunciado su partida de la compañía. Warly entro en Mandriva en el año 1999 a través de Gael Duval, ha estado encargado de la gestión de la creación y liberación de la línea de productos de consumo de Mandriva desde la Mandrake 7.0. También se encargaba de mantener el Bugzilla de Mandriva, así como de varios paquetes y parches de la distribución. Con él se va uno de los miembros históricos de Mandriva al cual le deseamos toda la fortuna en la nueva etapa que ahora comienza. MCNLive VirtualCity MCNLive es una nueva distribución, una iniciativa de usuarios de Mandriva de Holanda, que se puede ejecutar desde un Pendrive de 512 Mb o en forma de un LiveCD. Su última versión, MCNLive VirtualCity, está basada en Mandriva 2007 e incluye las siguientes novedades: El software de virtualización VirtualBox OSE viene preinstalado. Se pueden crear imágenes de discos virtuales y ejecutar imágenes existentes en el disco rígido. Se agregó un script especial para usar discos Flash con MBR's no válidos. Mandriva abre oficinas en Lagos, Nigeria Como parte de su compromiso de ayudar a disminuir la brecha digital y hacer que las TIC (Tecnologías de la Información y la Comunicación) sean asequibles y estén disponibles para la población del oeste africano, Mandriva, ha alcanzado un acuerdo para establecer una compañía filial, Mandriva Linux West Africa, cuya sede está en Lagos, Nigeria. La meta de Mandriva Linux West Africa es proporcionar la distribución local de Mandriva Linux y otras aplicaciones integradas de código abierto en inglés y francés a lo largo de toda la región del oeste de África. Mandriva Linux West Africa empezó a operar en febrero de 2007.

Los proyectos de Mandriva

M

andriva no solamente se dedica a proporcionarnos nuestra distribución favorita, también está involucrada en numero- • sos y muy diversos proyectos. El objetivo del artículo de este mes es presentaros estos proyectos, algunos muy conocidos y otros que seguro os sorprenderán. Vamos a iniciar el viaje por estos proyectos: • BackPorts: El objetivo de este proyecto es portar paquetes de Mandriva a otras distribuciones o bien a versiones antiguas de Mandriva. Drakwizard: Mandriva está trabajando • en mejorar y ampliar los asistentes que ofrece a sus usuarios que sirven de ayuda en la instalación y configuración de ciertas aplicaciones. En este momento se está trabajando, entre otros, en los asistentes para Apache, servidor DNS y DHCP, servidor de archivos NFS y FTP, servidor de correo, Samba y proxy. EasyWifi: En este proyecto se agrupan todas las utilidades y herramientas para las redes inalámbricas. Se está trabajando en un interfaz de usuario más simple para detectar, configurar y conectar a redes inalámbricas. EDOS: EDOS (Environment for the development and Distribution of Open Source software) es un proyecto para el desarrollo y distribución de software libre. La finalidad de este proyecto es mejorar la calidad de las distribuciones de software libre. Este proyecto de investigación está financiado por la CEE. Podéis encontrar más información en: http://www.edosproject.org/xwiki/. FreeSoftware: La comunidad de Mandriva está involucrada en varios proyectos de software libre, entre otros podemos citar: Alexandria, DKMS, Frozen Bubble, Gnome, Koffice, KDE, Perl, Samba, etc. Estas contribuciones demuestran el alto compromiso de Mandriva con el software libre. Interactive Firewall: Se está diseñando un cortafuegos interactivo para alertar a los usuarios de las intrusiones o, en general, de cualquier suceso que ocurra en su red. Este proyecto integra a varios componentes de software como iptables, ipset y net_applet entre otras. Presenta una interfaz gráfica que nos notifica las incidencias, así como

herramientas para visualizar logs, lista negras, etc. Kiosk: Una de las grandes apuestas de Mandriva. Mandriva Kiosk es un catálogo de software basado en web que permite navegar dentro de grupos de software e instalar las aplicaciones con un simple clic, facilitando añadir o actualizar grupos complejos de software. Para acceder a este servicio es necesario el pago de una cantidad anual, este servicio es gratuito para los miembros del Mandriva Club. Metisse: Es un gestor de ventanas que aprovecha toda la potencia de 3D. Dado que lo comentamos el mes anterior no vamos a extendernos en él. Podéis encontrar más información en http:// www.mandriva.com/es/projects/metisse. NEPOMUK: Mandriva participa en este proyecto que busca fortalecer el software de escritorio aportando características sociales y semánticas con el propósito de a su vez crear una comunidad amplia bajo la idea de escritorio social semántico. La página web del proyecto se encuentra en: http://nepom uk.semanticdesktop.org/xwiki/. Propolice: Esta herramienta hace que los binarios obtenidos después de una compilación estén protegidos contra ataques de tipo buffer overflow. La propuesta es que el compilador GCC proporcionado por Mandriva adopte el argumento incluyendo esa protección por defecto. Testziller: Esta herramienta se utiliza cada día más como forma de enviar y documentar los errores, problemas y bugs que podemos encontrar en Mandriva Cooker. Testziller es, junto a Bugzilla, la clave para realizar los tests y mejoras a Mandriva Cooker. MandrivaEducation: Ésta es una versión de la distribución Mandriva pensada para el uso en las aulas de colegios e institutos.

Como se puede ver, Mandriva está involucrada en múltiples proyectos, tanto para mejorar nuestra distribución como para aportar su colaboración en proyectos de software. Podéis encontrar más información sobre todos estos proyectos en el wiki de Mandriva: http://wiki.mandriva.com/Projects.

20

Linux+ 5/2007

w Club Pro
AVANZADA 7
www.avanzada7.com Avanzada 7 es una empresa de ingeniería especializada en soluciones VoIP basadas en tecnología Open Source Linux-Asterisk. Disponemos de una amplia gama de productos para VoIP y ofrecemos servicios de consultoría pre y post venta para soluciones de voz basadas en Asterisk

Peopleware

www.Peopleware.es Administradores de Sistemas yBases de Datos. Desarrollos técnicos en C++, Java y Pro*C. Proyectos Software Libre.

Centro de Formación Aulacor

http://www.aulacor.org El Centro de Formación Aulacor está especializado en la impartición de cursos de Linux e Informática, en modalidad e-learning y con certificado acreditativo de superación. Para obtener más información sobre nuestro catalogo de acciones formativas puede visitar nuestra web o llamar al teléfono 902 886 937.

Protalia

www.protalia.com Consultoría general de informática de Empresas orientada al Software Libre. Nuestra actividad está especializada en la migración desde sistemas propietarios a GNU/Linux en entornos empresariales.

Gestión Cuatrocientos

UTOPIUX - MURCIA

www.gestion400.com S.L. Gestión Cuatrocientos, desarrolla aplicaciones Java de gestión para la Administración Local y presta servicios de Asistencia Técnica. Desde el Registro de Entrada hasta el SICAL pasando por la Gestión de Expedientes y la Gestión Tributaria y Recaudación. Las aplicaciones funcionan en Linux.

www.utopiux.com Companía de servicios informáticos, especializada en soluciones Linux y Windows. Desarrollo de portales corporativos e intranets con últimas herramientas de gestión de contenidos. Implantación de servidores de correo, web, bases de datos y ficheros. Conectorización y certificación de cableados. Partner HP y 3COM.

Ibermachines Sistemas OpenSource

SYS4NET Hospedaje Web

www.ibermachines.com/ Soluciones informáticas libres para empresas. Consultoría en sistemas de código abierto, tales como GNU/Linux y FreeBSD. Mantenimiento de redes y servidores.

www.sys4net.com Alojamiento web y registro de dominios, con alta inmediata. Planes Windows y Linux. ASP, .NET Framework 1.1 y 2.0, PHP, Perl, MySQL, Microsoft SQL. Panel de control: Helm y DirectAdmin. Cuentas de correo ilimitadas en todos los planes. Servidores de alto rendimiento. A partir de 3.95 € mensuales! Sin costes ocultos.

Inittab

http://inittab.com, agi@inittab.org Soluciones en Software Libre y GNU/ Linux. Formación, consultoría, soporte técnico y mantenimiento de servidores. Cursos a medida de Linux, Apache, Mysql, Samba y seguridad. Su departamento de sistemas en manos de expertos en Software Libre. Instalación de servidores de ficheros/impresión, web/correo, Intranet.

Igarcom Internet

www.igarcom.com Igarcom Internet sl es un registrador oficial .ES y colabora con el Centro de Alerta Temprana Antivitus de INTECO. Entre los servicios que ofrecemos están alojamiento web compartido, servidores dedicados y housing desde nuestros propios servidores, situados en el Centro de Datos Banesto en Madrid

w

entornos gráficos de trabajo Entornos gráficos minimalistas

Entornos gráficos de bajo consumo
David Alverez García

Los entornos gráficos minimalistas son aquellos que consumen muy pocos recursos del sistema, tanto CPU como memoria RAM, permitiendo el uso de Linux con máquinas antiguas para escritorio o incluso trabajar. Este tipo de entornos son con mucha asiduidad usados por desarrolladores, gente experta o con cierto curtimiento en el mundo Linux debido a que ofrecen una gran velocidad de procesamiento, poco consumo de memoria RAM y son simples, lo cual implica menos bugs, son fáciles de usar por norma y la mayoría son muy configurables para cualquier tipo de tarea.

N

o es necesario tener una máquina antigua para usarlos, en máquinas modernas estos entornos gráficos vuelan y como se dijo anteriormente son muy usados por ciertas comunidades en el mundo Linux. Son perfectos para ordenadores portátiles, donde el uso de un ratón o una saturación de iconos en la pantalla puede llegar a producir una sensación molesta y complicar la realización de determinadas tareas. Al consumir menos recursos también vela por la durabilidad de la batería, siendo una gran elección para este tipo de máquinas. En Linux el entorno gráfico en sí, como ya sabemos es la suma de un servidor, llamado X11, más unos clientes que se conectan a él, los cuales se encargan de dar ese ambiente amigable para el uso del sistema operativo. Los clientes que encontramos para el servidor gráfico (X11) que forman un escritorio completo, un entorno gráfico propiamente dicho, son los controladores de ventanas (Windowmanager) y los escritorios (Desktop). Es importante conocer y distinguir los conceptos servidor gráfico, window-manager y Desktop, distinguir estos dos últimos muchas veces es confuso, al ofrecer los

dos las mismas funcionalidades. Para eso haremos una prueba de concepto arrancando y explicando por separado el servidor de gráficos, el window-manager y el escritorio. El servidor X11, es un sistema de visualización de gráficos (graphics display system) con arquitectura cliente-servidor, este tipo de arquitectura permite por ejemplo poder cargar el escritorio de forma remota en red cómodamente. El servidor gráfico permite a las aplicaciones (clientes) dibujar píxeles, líneas, texto, imágenes,... en la pantalla. El servidor incluye bibliotecas adicionales que permiten a las aplicaciones dibujar interfaces

linux@software.com.pl

Sobre el autor
David Alvarez es Técnico superior en desarrollo de aplicaciones Informáticas y estudiante de CISCO SYSTEMS. Trabaja como técnico de emergencias en hispaservices, administrador del hosting spikap y encabeza el desarrollo del proyecto Web cineando. Es admisnitrador de sitios como tuxhuellas.com y todo-linux.com.

22

Linux+ 5/2007

w

entornos gráficos de trabajo Entornos gráficos minimalistas
muchas veces haya problemas con la desaparición de marcos de las ventanas a la hora de usar temas de escritorio. Para terminar tenemos los escritorios, como son KDE, Gnome, Xfce, 3D-Desktop y alguno más, éstos aportan funciones de trabajo adicionales a las aplicaciones y gestores de ventana para que su apariencia y comportamiento sean visualmente más atractivas y consistentes. Se podría entender como otro añadido más al conjunto servidor gráfico + windows-manager. Vamos a arrancar sobre el actual X11+ fluxbox un escritorio, en este caso Xfce, para ver qué aporta:
$ xfce4-session

Figura 1. Icewm, uno de los window-managers más populares

Como vemos el Desktop Xfce ha añadido funcionalidades y embellecido ciertos aspectos del window-manager. Este proceso de arranque del servidor gráfico (X11) junto al gestor y al desktop, lo hace automáticamente el comando startx de forma totalmente transparente al usuario. Esta prueba de concepto si queremos hacerla con el escritorio KDE, debemos modificar una de las variables globales siempre antes de la ejecución de startkde:
$ export KDEWM=openbox

de usuario (campos de texto, botones, etc..). Para nuestra prueba de concepto si solamente queremos ejecutar el servidor X11 sin ningún añadido más, se debe usar el comando:
$ xinit xterm

El cual nos mostrará una pantalla negra, podemos encontrarla de otros colores, con una xterm (solamente el contorno) como podemos ver en la Figura 1. Un gestor de ventanas no es un Desktop (Entorno gráfico) pero algunos sí ofrecen funciones parecidas y muchas veces iguales. Corren como cliente sobre un servidor gráfico (X11). Son los encargados de generar los marcos de las ventanas, barras de título, botones de cierre y minimizado, también aportan funcionalidades como menús desplegables (pop-up), muelles (docks, como el de quartz), botones lanzaderas (para abrir documentos, aplicaciones o menús). Todo esto gracias a las librerías y funcionalidades que el servidor gráfico aporta. Los gestores de ventanas son como cualquier otra aplicación cliente, se comunican con el servidor X a través de los mismos canales que las aplicaciones clientes que corremos habitualmente (xterm, Firefox, Amarok, etc...). Para entenderlo mejor, una vez tengamos arrancado el servidor X11 y la xterm, sobre ella corremos el siguiente comando para arrancar el windows-manager Fluxbox:
$ fluxbox

Como vemos, se han añadido marcos a las ventanas, menús desplegables y otro tipo de propiedades que hacen usable las aplicaciones en pantalla. Sin gestor de ventanas no se puede trabajar ya que las ventanas dibujadas por el servidor X11 no permiten moverlas de sitio, no permiten prácticamente interacción con el usuario, por lo que se necesita un window-manager que las gestione. Window-managers conocidos: Fluxbox, Twm, Icewm, Enlightenment,... Cuando se usan themes de escritorios como puede ser Gnome o KDE, realmente se modifica la apariencia del window-manager que corre por debajo del desktop, de ahí que

No podemos hacerla como comentamos anteriormente en la prueba de concepto ya que KDE arrancará por defecto su propio window-manager, sustituyendo al que tengamos corriendo a la hora de ejecutarlo.

Figura 2. Window-maker, estable y robusto, todo un clásico

www.lpmagazine.org

23

w

entornos gráficos de trabajo Entornos gráficos minimalistas
ción. Tiene una facilidad de uso media y su licencia es GPL. Web: http://www.nongnu.org/epiwm/ Compilación:
$ gunzip -c epiwm-*.*.*.tar.gz | tar xvf $ cd epiwm-0.5.6 $ ./configure $ make # make install-strip

WindowMaker
Este entorno es más conocido por la gente del mundo Linux y viene muchas veces instalado en distintas distribuciones. Su uso de CPU, como de RAM es mínimo, algún kb más que el anterior, rozando el megabyte como Epiwm. Es configurable y fácil de usar por cualquier usuario. Este gestor de ventanas puede ser usado por escritorios KDE o GNOME sin problemas y tiene buena variedad de temas a elegir. Web: http://www.windowmaker.info/ Compilación:
$ ./configure --enable-modelock $ make # make install # ldconfig

Figura 3. Twm, el padre de muchos otros gestores de ventana

El gestor de ventanas: Kwin es el correspondiente al escritorio Kde, en Gnome encontramos el gestor de ventanas Sawfish (Sawmill). Ninguno de los dos es muy usable sin el escritorio por encima de ellos, están pensados para correr con su respectivo escritorio por encima. Como dijimos antes los mal llamados entornos gráficos minimalistas son gestores de ventanas usables, que no requieren de un desktop para ser funcionales y amigables al usuario. Esto se debe a que verdaderamente son ellos los que se encargan de proporcionar al usuario las posibilidades básicas para un óptimo uso de las aplicaciones en pantalla. No todos los gesto-

res de ventana se pueden usar sin un Desktop proporcionándole funcionalidades, los que se pueden usar de una manera fácil y sin necesidad de añadirle nuevas características se les denomina Entornos gráficos minimalistas. Vamos a nombrar algunos de ellos (hay más de 40) por orden de consumo de RAM ascendente:

Epiewm

Entorno poco conocido creado por la Escuela de Ingeniería Informática EPITA, es muy Blackbox simple y rápido, su uso de RAM no llega Anteriormente era muy popular, pide bani a cubrir 1 Mb. No es muy configurable ni jos requerimientos de hardware, (de 1.5Mb vistoso. No ofrece demasiada documenta- a 2Mb de RAM). No comparte código con ningún otro Window Manager,está programado en C++ y su licencia es GPL. Da soporte para gradientes y múltiples escritorios. Es de muy fácil uso y tiene un gran sistema de configuración con sistema para añadir Addons, themes, teclas de acceso rápido a aplicaciones, mucha documentación, etc. Se le puede dar un aspecto muy agradable con poco esfuerzo. Web: http://www.blackbox.es/ Compilación:
$ ./configure $ make # make install

Icewm
Uno de los mejores y más populares window-manager que existen para plataformas UNIX. Es muy configurable (capacidad para themes) y vistoso, no tanto como puede

Figura 4. Fluxbox, Mejorando a Blackbox en muchos aspectos

24

Linux+ 5/2007

w
$ make

entornos gráficos de trabajo Entornos gráficos minimalistas
Compilación:
$ ./configure # make install

Fluxbox
Este es uno de los entornos minimalistas más solicitado por la comunidad de usuarios. Podemos encontrarlo por defecto en distros como Fluxbuntu, orientadas a máquinas con pocos recursos. Es un derivado de Blackbox y permite ser configurado un poco más a fondo que el padre, permite el uso de themes y estilos de Blackbox. Puede usar transparencias y soporta esquinas redondeadas, tiene muy buena documentación y podemos usar Idesk para incluir iconos. De los mejores wm para UNIX. Web: http://fluxbox.sourceforge.net/
Figura 5. AfterStep, liviano y muy elegante

Compilación:
$ make $ su $ make install $ ./configure $ make # make install

ser Blackbox pero icewm es para muchos, la mejor alternativa debido a su gran facilidad de uso, configuración, soporte y consumo de recursos, ocupa unos dos megabytes de RAM. Web: http://www.icewm.org/ Compilación:
$ ./configure $ make # make install

FVWM
Derivado de TWM, consume un poco más que su padre pero permite una mayor configuración y una visualización más trabajada con posibilidad de añadirle módulos variables y temas de menús. Tiene mucha documentación y su desarrollo sigue en pie y avanza rápidamente. Web: http://www.fvwm.org/

AfterStep
Uno de los windows-managers más elegantes y poco conocido de todos, realizado por los desarrolladores de la conocida aterm. Este gestor de ventanas está basado en Fvwm y tiene una apariencia similar a NeXTSTEP. Es muy configurable y de uso no demasiado complicado pero sí hace falta estar un tiempo para hacerse con los mandos completa-

TWM (Tom's Window Manager)
Gestor de ventanas conocido por venir por defecto en distribuciones como FreeBSD y Slackware como lo mínimo a tener para poder hacer uso del sistema. Es de muy fácil uso pero de aspecto feo y anticuado. Tiene algunas opciones de configuración pero no demasiadas, es importante decir que aunque sean entornos muy simples, con un fondo y tres aplicaciones de pantalla se les puede dar aspectos vistosos como el de la foto. Es un gestor muy importante ya que es la base de muchos otros gestores como son vtwm, tvtwm, CTWM y FVWM. Su consumo de RAM sobrepasa un poco el de los 2 megabytes. Web: http://www.vtwm.org/ Compilación:
$ tar zxvf vtwm.*.tar.gz $ cd new-vtwm-dir/ $ xmkmf -e

Figura 6. El único Desktop considerado minimalista

www.lpmagazine.org

25

w

entornos gráficos de trabajo Entornos gráficos minimalistas
No explicaremos su compilación porque es extensa y podemos encontrarlo en los repositorios fácilmente. Web: http://www.xfce.org/ En los pertinentes repositorios y distribuciones se encuentra un gran número de ellos para no tener que compilarlos, pero no se tendrán las últimas versiones y realmente no son difíciles de instalar ya que no requieren casi dependencias. Como podemos ver tenemos varias alternativas de escritorio para todos los gustos a poder usar en máquinas arcaicas del estilo 486 o incluso más antiguas. Si se usan varios gestores de ventana o simplemente queremos poder seleccionar cuál arrancar al iniciar las X, sin tener que recurrir a los típicos xdm, kdm y gdm, tenemos aplicaciones del tipo selectwm, la cual nos muestra una lista con los window-manager que
Figura 7. Fvwm, agilidad y versatilidad con poco consumo

mente. Tiene efectos visuales curiosos y opción de usar themes y según arranca proporciona todo lo necesario a golpe de ratón, facilitando su uso. Web: http://www.afterstep.org/ Compilación:
$ ./configure $ make # make install # mv ~/.xinitrc ~/xinitrc.old # echo afterstep > ~/.xinitrc

ger y su consumo de RAM asciende a los 15 Mb aproximadamente. Es muy configurable y muy atractivo visualmente. Es el entorno gráfico por defecto en Xubuntu y Dreamlinux. Recomendable para personas que no quieren dejar de usar un entorno gráfico propiamente dicho pero sin consumir demasiados recursos. Por ejemplo Escritorios como Kde y Gnome tienen un mínimo aproximado de consumo de 70 Mb no siendo considerados como minimalistas lógicamente.

tengamos instalados para seleccionar en el inicio. Muchos de los gestores de ventana ya ofrecen la opción de cambiar en caliente a otro, siendo éste un proceso muy fácil de realizar, simplemente paran el proceso del gestor de ventanas actual que corre sobre X11 y arrancan el otro, sin necesidad de reiniciar todo el servidor gráfico. Una buena Lista de Window-Manager la encontramos en: http://www.linux.org/apps/ all/GUI/Window_Managers.html.

PerlWM
Construido enteramente en lenguaje perl usando el modulo X11::Protocol, es uno de los más curiosos y simples de los que podemos encontrar. No tiene casi opciones de configuración y se hacen por medio de modificaciones al script perl , pero está bien documentado en la web del proyecto y no deberíamos tener muchos problemas. Sin duda el más simple y curioso de todos. Su consumo de RAM ronda los 5 Mb. Web: http://perlwm.sourceforge.net/ No requiere compilación, solamente ejecutar:
$ ./perlwm

Xfce
Al contrario que el resto, Xfce es un auténtico Escritorio (Desktop) de los considerados minimalistas, pero no es un window-mana- Figura 8. Blackbox, Escritorios virtuales 100% configurables

26

Linux+ 5/2007

w

entornos gráficos de trabajo Entornos gráficos minimalistas

www.lpmagazine.org

27

w

test Las impresoras multifunción

Las impresoras multifunción
Lesby Francisco Torres
Lesby Francisco Torres tiene 23 años, es Administrador de Sistemas en Aguas de San Pedro S.A. de C.V, Pasante de la Lic. en Informática Administrativa en la UNAH-VS y miem bro de la comunidad www.linuxmaya.com en Honduras. LFT: Uno de los puntos es la calidad fotográfica de impresión. L+: ¿Y los débiles? ¿Hay algo que se debería cambiar o mejorar? LFT: El alto costo de la copia a color L+: ¿Cuál es el soporte del productor? ¿Está satisfecho con él? LFT: http://www.latin.epson.com, si, la verdad nunca he hecho uso de él. L+: ¿Recomendaría este producto a otras personas? ¿A quién especialmente? LFT: Sí, sobre todo a los ejecutivos y secretarias que no hacen un uso cuantioso de ella. Evaluación del producto de 7/10

L+: ¿Nombre de la impresora y empresa productora? LFT: Epson CX 4500 L+: Precio aproximado LFT: 125 dólares L+: ¿Utilizaba antes otra?, ¿cuál?? LFT: No. L+: ¿Qué funciones tiene la impresora?, ¿la usa en casa o en el trabajo? LFT: Impresora, fotocopiadora y scanner dentro del trabajo L+: ¿El producto ha cumplido sus expectativas? LFT: Si L+: ¿Cuáles son los puntos fuertes de este tipo de impresora?

John Mackay
John Mackay es Diseñador Gráfico, Director de la Revista Autocambio, Fedora Ambassador en entrenamiento, Pasante de la Lic. en Diseño Gráfico en la Universidad Tecnológica Centroamericana. material promocional, de los cuales no se disponen los archivos originales, se llevan un programa de edición de vectores para usarlo de plantilla y dibujar encima. En casa funciona como un aparato sin necesidad de computadora, para hacer copias rápidas de documentos, e impresiones de la cámara digital (no tiene pantalla a color, pero imprime una hoja con thumbnails de lo que hay en el stick de memoria de la cámara, tú las marcas, y se la das a leer por el scanner para que imprima solamente lo seleccionado). L+: ¿El producto ha cumplido sus expectativas? JM: Pues cuando funciona, lo hace bien (solamente en Windows puedo usar el scanner). L+: ¿Cuáles son los puntos fuertes de este tipo de impresora? JM: Muy fácil de usar (hago énfasis en la facilidad de uso, mi abuelita aprendió a usarla y no ha tocado jamás una PC). Costo por hoja bajo comparado con modelos del mismo rango de precios de otras marcas. L+: ¿Y los débiles? ¿Hay algo que se debería cambiar o mejorar? JM: Añadir soporte completo para Linux. L+: ¿Cuál es el soporte del productor? ¿Está satisfecho con él? JM: Solamente para Windows. No estoy satisfecho. L+: ¿Recomendaría este producto a otras personas? ¿A quién especialmente? JM: A nadie que use Linux. Evaluación del producto de 6/10

L+: ¿Nombre de la impresora y empresa productora? JM: Canon Pixma MP130 L+: Precio aproximado JM: US$ 100.00 L+: ¿Utilizaba antes otra?, ¿cuál?? JM: No usaba ninguna multifuncional. L+: ¿Cree que ha sido una buena decisión? ¿Por qué? ¿Cuál fue el motivo de elegir esta marca? JM: No fue una buena decisión, el soporte para Linux es un asco, el driver solamente reconoce la parte de impresora del multifuncional. A pesar de todo, se reconoce que es un dispositivo muy económico con el costo de los cartuchos y el rendimiento por hoja. L+: ¿Qué funciones tiene la impresora?, ¿la usa en casa o en el trabajo? JM: El uso es en ambos lugares. En el trabajo escanea diferente

28

Linux+ 5/2007

w
Gabriel Mendelevich
Gabriel Mendelevich trabaja en el Sector Ventas en la empresa HOZTEAR – Hosting de Sitios Web www.hoztear.com. • • • • • L+: ¿Nombre de la impresora y empresa productora? GM: LaserJet 3015 - Hewlet-Packard L+: Precio aproximado GM: 300 Dólares L+: ¿Utilizaba antes otra?, ¿cuál? GM: Lexmark X-1250 L+: En caso afirmativo, ¿por qué la ha cambiado? GM: La Lexmark tiene cartuchos de color, los cuales no duraban mucho y eran caros, en relación con la cantidad de impresiones realizadas. L+: ¿Cree que ha sido una buena decisión? ¿Por qué? ¿Cuál fue el motivo de elegir esta marca? GM: Si. Fue una buena decisión, si bien este modelo de HP está agotado (por lo menos en Argentina), es muy robusto, e imprime con mejor calidad (solamente blanco y negro, la única desventaja). Todas las impresoras HP que utilizamos en el pasado, como la HP Deskjet 640, fueron excelentes, y nos pareció que en el rubro de impresoras, si bien hay muchas marcas, HP es calidad y pocos problemas.....

test Las impresoras multifunción

L+: ¿Qué funciones tiene la impresora?, ¿la usa en casa o en el trabajo? GM: Tiene las funciones típicas de las impresoras multifunción: Fax, Scanner (alimentador de documentos automático), Copiadora, Más impresión láser (que no todas tienen), La usamos en la oficina, para impresión de documentos y envío de fax.

L+: ¿El producto ha cumplido sus expectativas? GM: Si, y por el precio no se puede pedir más L+: ¿Cuáles son los puntos fuertes de este tipo de impresora? GM: La impresión de documentos, salen con una calidad excelente y el fax, al utilizar hojas comunes es otra ventaja del producto. L+: ¿Y los débiles? ¿Hay algo que se debería cambiar o mejorar? GM: Que la impresión es en blanco y negro y el scanner no tiwene una alimentación de hojas alternativa, ...siempre hay que utilizar hojas sueltas. L+: ¿Cuál es el soporte del productor? ¿Está satisfecho con él? GM: Bueno, aunque casi no fue necesario. L+: ¿Recomendaría este producto a otras personas? ¿A quién especialmente? GM: Toda persona o empresa que necesite imprimir con calidad láser en blanco y negro, enviar faxes y realizar copias de documentos. Evaluación del producto de 9/10

Santiago Gómez Ruiz
Santiago Gómez Ruiz es Director de Proyectos de Protalia, una consultoría española especializada en implantación y migración de Software Libre en entornos empresariales, docentes e institucionales. L+: ¿Cuáles son los puntos fuertes de este tipo de impresora? SGR: Son económicas, la opción perfecta para una oficina en la que se intente evitar el consumo de papel, ideal si no es necesario imprimir demasiado ni escanear grandes volúmenes. L+: ¿Y los débiles? ¿Hay algo que se debería cambiar o mejorar? SGR: No soporta grandes cargas de trabajo, aunque no está diseñada para eso. El consumo de tinta lo encuentro excesivo. L+: ¿Cuál es el soporte del productor? ¿Está satisfecho con él? SGR: La casa Brother ha desarrollado controladores para Linux que funcionan perfectamente, pero la documentación de la web es muy confusa. L+: ¿Recomendaría este producto a otras personas? ¿A quién especialmente? SGR: Sí, a usuarios domésticos y oficinas que no tengan necesidades de impresión muy exigentes, y precisen de calidad a buen precio a expensas de velocidad. Evaluación del producto de 8/10

L+: ¿Nombre de la impresora y empresa productora? SGR: Brother DCP 115C - Brother L+: ¿Precio aproximado? SGR: 90 Euros L+: ¿Utilizaba antes otra?, ¿cuál? SGR: No. L+: ¿Cree que ha sido una buena decisión? ¿Por qué? ¿Cuál fue el motivo de elegir esta marca? SGR: Sí. Tiene una buena relación calidad/precio y funciona correctamente bajo Linux. Es una marca que tradicionalmente fabrica productos de buena calidad a precio razonable. L+: ¿Qué funciones tiene la impresora?, ¿la usa en casa o en el trabajo? SGR: Escáner e impresora. La uso en el trabajo. L+: ¿El producto ha cumplido sus expectativas? SGR: Sí.

www.lpmagazine.org

29

w

test Las impresoras multifunción

María Laura Chiesa
María Laura Chiesa tiene 29 años, es Diseñadora Gráfica, actualmente trabaja para la empresa SERVIWEB. L+: ¿Nombre de la impresora y empresa productora? MLC: Multifuncional HP 1410 L+: Precio aproximado MLC: 100 US$ L+: ¿Utilizaba antes otra?, ¿cuál? MLC: Si. La EPSON 4200. L+: En caso afirmativo, ¿por qué la ha cambiado? MLC: Porque dejó de funcionar y la empresa no tenía repuestos para repararla. L+: ¿Cree que ha sido una buena decisión? ¿Por qué? ¿Cuál fue el motivo de elegir esta marca? MLC: Sí. Porque el soporte técnico de Hewlett Packard ofrece un mejor servicio. El motivo del cambio de marca originalmente fue solamente una cuestión de precio. L+: ¿Qué funciones tiene la impresora?, ¿la usa en casa o en el trabajo? MLC: Escanea, copia e imprime. La uso en casa. L+: ¿El producto ha cumplido sus expectativas? MLC: Si. L+: ¿Cuáles son los puntos fuertes de este tipo de impresora?

MLC: Que tengo tres funciones en un solo equipo y así ahorro espacio físico. L+: ¿Y los débiles? ¿Hay algo que se debería cambiar o mejorar? MLC: Los cartuchos originales son muy costosos y se acaban rápido. L+: ¿Cuál es el soporte del productor? ¿Está satisfecho con él? MLC: Atención telefónica y chat las 24 hrs. Cuando surgió un problema me asesoraron y atendieron muy bien, puedo darme por satisfecha. L+: ¿Recomendaría este producto a otras personas? ¿A quién especialmente? MLC: Sí. Lo recomendaría a personas que ne cesitan ahorrar espacio físico y necesitan imprimir en calidad profesional sus documentos. Evaluación del producto de 8/10

Roberto Salguero
Roberto Salguero tiene 31 años, es Director General de Hispamax servicios integrales informáticos y responsable de desarrollo de proyectos web, técnico de sistemas durante 7 años y especialista en electrónica. Actualmente compatibiliza la gestión de su empresa con la carrera de ingeniería informática de sistemas por la Uned. Desempeña las actividades de diseñador y programador envarios lenguajes como php, perl, c++ bajo entornos LINUX. Desarrolla aplicaciones en VB y .NET L+: Nombre de la impresora y empresa productora RS: Dell 810 L+: Precio aproximado RS: 60€ L+: ¿Utilizaba antes otra?, ¿cuál? RS: No L+: En caso afirmativo, ¿por qué la ha cambiado? RS: Por disponer de impresora, fax y fotocopiadora en un tamaño reducido L+: ¿Cree que ha sido una buena decisión? ¿Por qué? ¿Cuál fue el motivo de elegir esta marca? RS: No, por no disponer de consumibles en tiendas, tan sólo se compra a Dell de manera on-line. Conocía otras marcas como HP, Epson, Canon y conocía ventajas e inconvenientes de estas marcas, quería probar con Dell. L+: ¿Qué funciones tiene la impresora?, ¿la usa en casa o en el trabajo? RS: Impresión, escaner y con ambos se hace fotocopias en blanco y negro y en color L+: ¿El producto ha cumplido sus expectativas? RS: No L+: ¿Cuáles son los puntos fuertes de este tipo de impresora? ¿Y los débiles? ¿Hay algo que se debería cambiar o mejorar? RS: Desde mi punto de vista es el precio y el poco espacio que ocupa. Los puntos débiles son la velocidad y la adquisición de los consumibles de manera online pues tardan dos días en enviar los cartuchos. Sería interesante que Dell vendiera consumibles a través de centros comerciales o tiendas. L+: ¿Cuál es el soporte del productor? ¿Está satisfecho con él? RS: El soporte es de Dell y en principio siempre han dado buen servicio con respecto a esta impresora. Si L+: ¿Recomendaría este producto a otras personas? ¿A quién especialmente? RS: Sí, para usuarios domésticos que no necesitan alta calidad de impresión y no quieren invertir mucho dinero en una multifunción. Evaluación del producto de 5/10

30

Linux+ 5/2007

w
Jesús A. Lacoste
Jesús A. Lacoste es Director de SoyDigital. com, Internet, Voz y SMS.

test Las impresoras multifunción

L+: ¿Nombre de la impresora y empresa productora? JAL: Brother MFC-9420CN / Brother L+: Precio aproximado JAL: 620 Euros L+: ¿Utilizaba antes otra?, ¿cuál? JAL: Brother MFC-570 L+: En caso afirmativo, ¿por qué la ha cambiado? JAL: Porque la nueva es láser e imprime en color. Además tiene conexión de red local. L+: ¿Cree que ha sido una buena decisión? ¿Por qué? ¿Cuál fue el motivo de elegir esta marca? JAL: Creo que sí. Hace más de un año que la tenemos y funciona bien. La calidad de impresión es buena, tanto en b/n como en color. He comprado Brother ya que tiene buena relación calidad/precio y los consumibles son más baratos que los de HP.

L+: ¿Qué funciones tiene la impresora?, ¿la usa en casa o en el trabajo? JAL: La usamos en la empresa, para recibir/enviar fax, escanear documentos o imágenes y por supuesto imprimir todo tipo de documentos. L+: ¿El producto ha cumplido sus expectativas? JAL: Completamente. L+: ¿Cuáles son los puntos fuertes de este tipo de impresora? JAL: Soporte de red, impresión color con coste asequible, robusta. L+: ¿Y los débiles? ¿Hay algo que se debería cambiar o mejorar? JAL: La bandeja del papel a veces presenta alguna dificultad para sacarla. L+: ¿Cuál es el soporte del productor? ¿Está satisfecho con él? JAL: Afortunadamente no te tenido que recurrir al soporte técnico del fabricante. En otras ocasiones, el mayorista donde yo compro todos los equipos me ha solucionado eficazmente los problemas. L+: ¿Recomendaría este producto a otras personas? ¿A quién especialmente? JAL: Sí. Empresas o oficinas con necesidad de compartir un buen equipo de impresión y quien necesite imprimir en láser color Evaluación del producto de 9.5/10

Enrique Belarte Luque
Enrique Belarte Luque trabaja para Ibermachines Sistemas, es Administrador de sistemas FreeBSD y GNU/Linux. todo esto se va enviando por correo electrónico. L+: ¿El producto ha cumplido sus expectativas? EBL: Sí, sobradamente. L+: ¿Cuáles son los puntos fuertes de este tipo de impresora? EBL: La robustez, y la calidad. L+: ¿Y los débiles? ¿Hay algo que se debería cambiar o mejorar? EBL: Desde luego el precio de los cartuchos de tinta, es su punto negativo. En cualquier caso, es propio de la marca. L+: ¿Cuál es el soporte del productor? ¿Está satisfecho con él? EBL: HP siempre ha dado buen soporte a los clientes que conocemos, y aunque con esta impresora no ha hecho falta ningún tipo de soporte extra, sí tenemos experiencias anteriores con otros dispositivos, y podemos decir que dan un buen servicio postventa. L+: ¿Recomendaría este producto a otras personas? ¿A quién especialmente? EBL: Sí, siempre que sepan lo que buscan. Por ejemplo, alguien que tuviera que imprimir cientos de páginas diarias acabaría arruinado por el precio de la tinta. Evaluación del producto de 8/10

L+: ¿Nombre de la impresora y empresa productora? EBL: DeskJet 845c HP L+: Precio aproximado EBL: 130 Euros L+: ¿Utilizaba antes otra?, ¿cuál? EBL: Una vieja Fujitsu de agujas L+: En caso afirmativo, ¿por qué la ha cambiado? EBL: Es obvio. Ruido, velocidad, color. L+: ¿Cree que ha sido una buena decisión? ¿Por qué? ¿Cuál fue el motivo de elegir esta marca? EBL: La decisión ha sido no solamente buena, sino obligada. El por qué, sería volver a la respuesta anterior, no hay ni punto de comparación en cuanto a las prestaciones de esta impresora. Ni siquiera son comparables. El motivo de elegir HP, es que aunque es bastante más cara que otras impresoras de la competencia, son impresoras que duran mucho, y que dan menos problemas que otras en cuanto a la inyección de tinta. L+: ¿Qué funciones tiene la impresora?, ¿la usa en casa o en el trabajo? EBL: Pues imprime facturas, algún listado de código para revisar, y algún que otro presupuesto, aunque cada vez menos, ya que

www.lpmagazine.org

31

w

software ADAPTIVE Communication Environment

ACE: Desarrollo Multiplataforma de Aplicaciones en Red
José Luis Marina

Como vimos en el artículo anterior ACE se corresponde con las siglas de ADAPTIVE Communication Environment, y es un marco de trabajo – framework – orientado a objetos, de código abierto y disponible libre y gratuitamente, que implementa muchos de los patrones centrales para el desarrollo de software de comunicación. ACE está implementado en C++ y se utiliza principalmente en aplicaciones distribuidas en red que necesiten de un rendimiento exigente. Se emplea incluso en aplicaciones de tiempo real y existe un ORB implementado sobre ACE llamado TAO (The ACE ORB).

D

ebido a que los desarrolladores e ingenieros de ACE y TAO, han estado siempre obsesionados con el rendimiento y la eficacia y eficiencia en el manejo de los recursos del sistema, ambos entornos se utilizan con profusión en sistemas empotrados y entornos industriales, además de usarse en aplicaciones más comunes. La idea de ACE es también la aplicación de la reusabilidad de forma sistemática incluso entre plataformas, con lo que se consigue que el mismo código – sin cambios de ningún tipo – compile y funcione en diferentes combinaciones de sistema operativo y compilador de C++. Hay código que como programadores de software de comunicaciones tendemos a realizar cada vez que se comienza un proyecto, y sin embargo, es código estructural que no varía nunca. Un ejemplo muy claro y muy utilizado es la parte de código de un servidor que se encarga de inicializar la escucha en un puerto, y que por cada petición de un cliente la despacha a una función encargada de recibir los datos. Esto es siempre igual independientemente de qué hagamos después con los da-

tos. Es más, en el caso de ACE, además de reutilizar este código podemos elegir si la función que recibe los datos y la que los trata se ejecutan en el mismo proceso, en otro hilo o en un hilo por cada conexión cliente, en función de las características del proceso, y todo de una forma portable.

linux@software.com.pl

Sobre el autor
José Luis Marina es Director de I+D de Peopleware y el encargado de la relación con las universidades en diferentes proyectos de investigación. Es licenciado en Ciencias Físicas en Cálculo Automático por la U.C.M. y desarrolla su doctorado (Ph.D.) en Ingeniería del Software. Fue uno de los fundadores de la página de Oracle en español OraEs (ahora OraDBWay). Sus intereses de investigación se centran en el software libre de calidad y en sistemas distribuidos en red y la inteligencia artificial aplicada los eventos de monitorización de sistemas, y el proyecto Osmius es al que dedica mayor atención en la actualidad.

32

Linux+ 5/2007

w
Para conseguir estos objetivos ACE está organizado en una arquitectura en capas como podemos ver en la Ilustración 1. Las capas y un resumen de sus características son:

software ADAPTIVE Communication Environment

Capa de Adaptación al Sistema Operativo
Esta capa proporciona un conjunto de funciones para las operaciones y las llamadas al sistema operativo más comunes y se sitúa entre las APIs nativas de llamadas al sistema y el resto de ACE. Todo el código de ACE, y en definitiva el que programemos nosotros, acabará llamando a alguna función de esta capa a través de los métodos estáticos de la clase ACE_OS, que es la que nos oculta las complejidades de las diferentes implementaciones de las llamadas al sistema en los diferentes Sistemas Operativos.

Figura 1. Arquitectura en Capas de ACE y la anterior son casi las mismas, sólo que res, colas de mensajes de alto rendimiento, en este caso el uso será más intuitivo, más memoria compartida y en general cualquiefácil, más potente. ra de los mecanismos IPC. Vamos a poder utilizar esta capa para escribir aplicaciones portables que hagan uso Capa de Frameworks

Capa de Envoltorios o wrapper facades

de sockets, procesos, hilos, concurrencia, con- Seguimos incrementando el nivel de absSi la anterior capa era casi un uso directo tadores de tiempo, contenedores e iterado- tracción y agrupamos más funcionalidad en de funciones del sistema en C, en ésta introducimos el concepto de programación Listado 2a. Ejemplo sencillo de Hola Gente utlizando ACE orientada a objetos para beneficiarnos de conceptos como la comprobación de los // -*- C++ -*tipos de datos, la herencia, el polimorfismo // ----------------------------------------------------------------------y la sobrecarga de operadores y funciones. /** Así nuestro código es más seguro y más * @file hola_ace.cpp sencillo de implementar y de utilizar. En * @brief Ejemplo de "Hola gente" usando ACE y MPC realidad las funcionalidades de esta capa *
Listado 1. Configuración MPC para ejemplo de uso de ACE
// -*- MPC -*// $Id$ // Nombre de proyecto y tipo // de ejecutable. // En este caso decimos que // haremos uso de ACE // y ya se encarga de poner en // el makefile los // parámetros necesarios. project(*Ejemplo) : aceexe { exename = ejecutable // libs += mysqlclient // Pondríamos librerías externas... Source_Files { principal.cpp ejemplo.cpp } Header_Files { ejemplo.h } } for (int c; (c = get_opt ()) != -1; ) { { switch (c) case 'a': // ----------------------------------------------------------------------int parse_cmd_line(int argc, ACE_TCHAR *argv[]) { // Clase de ACE para manejar parámetros (-a aaaaa -b dsdsds -d ...) ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("a:b:"), 0); // Includes específicos de ACE #include <ace/Get_Opt.h> // Control de argumentos. * @author Linux+ * @date 2007 */ // ----------------------------------------------------------------------// Includes de ACE para casi todo programa #include <ace/OS.h> #include <ace/Log_Msg.h> // Utilidades para logs, trazas y depuración. #include <ace/Version.h> // Para mostrar la versión de ACE utilizada.

ACE_ERROR ((LM_ERROR, ACE_TEXT ("Argumento de 'a' es: %s\n"),get_opt.opt_arg ())); break;

www.lpmagazine.org

33

w

software ADAPTIVE Communication Environment
interfaces más sencillos y con mayor reutilización y potencial de uso. En esta capa es donde los ingenieros de software de ACE han puesto en práctica los patrones de diseño que han surgido del trabajo de décadas desarrollando aplicaciones distribuidas en red. Como vimos, un framework es una colección de componentes de software que colaboran entre sí para proporcionar una arquitectura reusable para una determinada familia de aplicaciones. De alguna manera a través de esta capa accedemos a aplicaciones que casi funcionan, a falta de que codifiquemos las funciones clave que tratan los datos y que diferencian unas aplicaciones de otras. Los esquemas de servicios y acciones comunes de un servidor de telnet, ssh o ftp, son parecidos en cuanto a espera pasiva de conexiones, atención de clientes, y en la recepción y el envío de datos por la red, y cambian el tratamiento y las acciones para tratar y reaccionar ante lo recibido. ACE nos proporciona varios frameworks o esqueletos sobre los que codificar las partes diferenciadoras de nuestros procesos.

Listado 2b. Ejemplo sencillo de Hola Gente utlizando ACE
case 'b':

ACE_ERROR ((LM_ERROR, ACE_TEXT ("Argumento de 'b' es: %s\n"),get_opt.opt_arg ())); break; default: break; } } }

ACE_ERROR ((LM_ERROR,ACE_TEXT ("Argumento no contemplado\n")));

return 0; // ----------------------------------------------------------------------// MAIN // ----------------------------------------------------------------------int { // Para recuperar variable de entorno. ACE_TCHAR* env_s; // Para algunos tipos utilizamos los de ACE para // evitarnos problemas de compatibilidad. // Es el caso de char y ACE_TCHAR // Con ACE_DEBUG generamos trazas de log que pueden centralizarse. ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t) Hola Gente\n"))); // Llamada portable para recuperar variable de entorno. env_s = ACE_OS::getenv("ACE_ROOT"); if (env_s == 0) { } ACE_ERROR((LM_ERROR,ACE_TEXT("ACE_ROOT no definida\n"))); else { } // Control sobre los argumentos pasados ( Pe: -a AAAA -b BBBB -c CCCC ) return parse_cmd_line(argc,argv); } // Fin ACE_MAIN()... El fichero para poder generar el makefile mediante la orden $ACE_ROOT/mpc.pl -type make hola_ace.mpc sería: // -*- MPC -*// $Id$ /// @file hola_ace.mpc /// project(*Linux) : aceexe { exename = hola_ace Source_Files { hola_ace.cpp } Header_Files { } } Un ejemplo de llamada a nuestro programa y su salida por pantalla son: /ejemplo/ace$ ./hola_ace -a AAAA -b BBBB -c CCCCC (22892|3082487488) Hola Gente ACE_ROOT es: /home/jlmarina/ACE_wrappers Argumento de 'a' es: AAAA Argumento de 'b' es: BBBB Argumento no contemplado /ejemplo/ace$ ACE_TMAIN (int argc, ACE_TCHAR *argv[])

Uso práctico de ACE

ACE_DEBUG((LM_DEBUG,ACE_TEXT("ACE_ROOT es: %s\n"),env_s));

Además de las capas y componentes que hemos mencionado, junto con ACE recibimos algunas aplicaciones ya hechas como un gateway, un sistema para que los log de nuestras aplicaciones puedan centralizarse en un único punto, un servidor de nombres y otras aplicaciones completas que podemos utilizar directamente o investigar para aprender del uso de los diferentes componentes. También se incluye con la distribución una herramienta llamada Makefile Project Creator (MPC), que es tremendamente útil para generar los ficheros Makefile necesarios para cada compilador en cada una de las plataformas en las que queramos compilar nuestros programas. Esta herramienta está soportada por Object Computing en los Estados Unidos y es código abierto (de hecho está implementada en perl).

Instalando ACE

Lo primero que debemos hacer es ir a la página de descarga de ACE en http://download .dre.vanderbilt.edu/ y bajarnos la última versión estable disponible. Lo recomendable es bajarse desde la sección latest beta kit aquello que necesitemos. En nuestro caso solamente vamos a descargar ACE.tar.gz (ACE only), aunque podemos hacer lo mismo con

34

Linux+ 5/2007

w
la documentación en Doxygen, si queremos navegar en local por la arquitectura de clases y ficheros, o con TAO que es un ORB que funciona sobre ACE. En el caso de ACE las versiones beta son versiones que se han probado en las diferentes plataformas y con las que se han ejecutado todos los test preparados para las compilaciones y ejecuciones automáticas que se lanzan constantemente, y que por lo tanto vienen con muchas garantías y son lo recomendado por el equipo de ACE. Una vez bajado, debemos descomprimir el fichero en el directorio donde pensemos instalar los fuentes de ACE y acceder al fichero ACE-INSTALL o ACE-INSTALL.html, en el que debemos localizar nuestra combinación de sistema operativo y compilador y seguir las instrucciones. En nuestro caso utilizaremos el procedimiento para el sistema operativo Linux – en general no debéis encontrar problemas con ninguna versión y nosotros no los hemos tenido ni con RedHat AS, ni RedHat 7.0, ni SuSe 10, ni con Ubuntu 6.10 – y el compilador de C++ GNU GCC (o g++). Los pasos a seguir son: • La variable de entorno ACE_ROOT debe apuntar al directorio de instalación de ACE (por ejemplo /home/desa/ACE_ wrappers). La variable de entorno LD_LIBRARY_ PATH debe incluir $ACE_ROOT/lib. En el directorio $ACE_ROOT/ace, el fichero config.h debe incluir el fichero de configuración adecuado que en nuestro caso es:
#include "ace/config-linux.h" // -*- C++ -*/** * @file servidor.cpp * * @author Linux+ * @date 2007 */

software ADAPTIVE Communication Environment

Listado 3. Servidor de peticiones por sockets en ACE.

// -----------------------------------------------------------------------

* @brief Servidor que escucha en un puerto y devuelve "Hola Gente"

// ----------------------------------------------------------------------// Includes de ACE para casi todo programa #include <ace/OS.h> #include <ace/Log_Msg.h> // Utilidades para logs, trazas y depuración. #include <ace/Version.h> // Para mostrar la versión de ACE utilizada. // Includes especificos de ACE #include <ace/Get_Opt.h> // Control de argumentos. #include <ace/INET_Addr.h> // Direcciones INET #include <ace/SOCK_Acceptor.h> // Aceptar conexiones por sockets #include <ace/SOCK_Stream.h> // Para enviar y recibir datos por un socket. // ----------------------------------------------------------------------// MAIN // ----------------------------------------------------------------------int { ACE_TCHAR buffer[128] = ""; int buffer_long = 128; ACE_TMAIN (int argc, ACE_TCHAR *argv[])

const ACE_TCHAR* respuesta="Hola Gente!"; ACE_INET_Addr direccion_cliente; ACE_SOCK_Stream stream; // Puerto en el que escuchar las peticiones. int puerto=1950; // Creamos la dirección asociada al puerto. ACE_INET_Addr direccion_servidor(puerto); // Creamos una cola de conexión. ACE_SOCK_Acceptor acceptor(direccion_servidor); while (1) { // Esperamos y establecemos la conexión. acceptor.accept(stream,&direccion_cliente); // Recepción de datos. stream.recv(buffer,buffer_long); ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t) El Servidor ha recibido: [%s]\n"),buffer)); // Envío de Respuesta stream.send(respuesta, ACE_OS::strlen(respuesta)+1); } // Limpieza... stream.close(); acceptor.close(); return 0; }

• •

En el directorio $ACE_ROOT/includes/ makeinclude, el fichero platform_macros.GNU debe incluir el fichero .GNU adecuado que en nuestro caso es (fijaos que no lleva un carácter # al principio):
include $(ACE_ROOT)/include/ makeinclude/platform_linux.GNU

Si solamente queremos generar la librería de ACE para utilizar en nuestros programas debemos posicionarnos en el directorio $ACE_ROOT/ace y ejecutar el comando:
make

Si queremos además compilar los test y ejemplos, ejecutamos el comando anterior sobre el directorio raíz $ACE_ROOT. Obviamente esta opción tarda más tiempo.

www.lpmagazine.org

35

w

software ADAPTIVE Communication Environment
Si realizamos todos los pasos adecuadamente deberemos encontrarnos con la librería libACE.so en el directorio $ACE_ROOT/ lib. En el fichero de ayuda a la instalación nos muestran dos formas de compilar ACE en nuestra máquina, una utilizando GNU Autoconf y otra mediante el método tradicional. Es éste último el que recomendamos aunque podéis aventuraros con la primera forma si queréis.

Listado 4. Cliente para envío de peticiones por sockets en ACE.
// -*- C++ -*// ----------------------------------------------------------------------/** * @file cliente.cpp * @brief Cliente para envío de datos por sockets. * * @author Linux+ * @date 2007 */ // ----------------------------------------------------------------------// Includes de ACE para casi todo programa #include <ace/OS.h> #include <ace/Log_Msg.h> // Utilidades para logs, trazas y depuración. #include <ace/Version.h> // Para mostrar la versión de ACE utilizada. // Includes especificos de ACE #include <ace/INET_Addr.h> // Direcciones INET #include <ace/SOCK_Connector.h> // Iniciar conexiones por sockets #include <ace/SOCK_Stream.h> // Para enviar y recibir datos por un socket. // ----------------------------------------------------------------------// MAIN // ----------------------------------------------------------------------int { ACE_TCHAR mensaje[128] = ""; ACE_TCHAR buffer[128] = ""; int buffer_long = 128; // Nombre de la máquina en que está nuestro servidor ACE_TCHAR hostname[128]=”localhost”; // Puerto en el que escuchar las peticiones. int puerto=1950; // Creamos la dirección asociada al servidor hostname:puerto. ACE_INET_Addr direccion_servidor(puerto,hostname); ACE_SOCK_Stream stream; // Creamos una cola de conexión. ACE_SOCK_Connector connector; // Iniciamos la conexión. connector.connect(stream,direccion_servidor); if (1 == argc ) { } { ACE_TMAIN (int argc, ACE_TCHAR *argv[])

Compilando nuestros programas

La idea ahora es escribir programas que usen la librería de ACE y que podamos compilar sin problemas de compatibilidad y sin recodificar si por ejemplo hemos realizado nuestro programa en Linux con compilador GNU g++, y queremos generarlo luego en Windows con el compilador de Borland C++ Builder. De la parte de compatibilidad de código se encargan ACE y su arquitectura en capas tal y como hemos visto. Respecto a los makefiles viene en nuestra ayuda la herramienta MPC que como hemos mencionado viene incluida en la distribución de ACE. Supongamos que nuestro programa consta de los ficheros de código fuentes siguientes: • • • principal.cpp Programa Principal, ejemplo.h Declaración de clases de ejemplo, ejemplo.cpp Implementación de los métodos de nuestras clases.

ACE_OS::strcpy(mensaje,”Hay alguien ahi?”); else ACE_OS::strncpy(mensaje,argv[1],127); mensaje[127]=0; } // Envío de mensaje y recepción de respuesta... stream.send(mensaje, ACE_OS::strlen(mensaje)+1); stream.recv(buffer , buffer_long); ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t) El Servidor responde: [%s]\n"),buffer)); // Limpieza... stream.close(); return 0; }

Lo ideal sería que ésta fuera toda la información necesaria a suministrar para generar los proyectos en los que compilar nuestra aplicación. Esto es lo que hace MPC; nos permite hacer un script con esta información una vez y compilar las veces y con las plataformas y compiladores que necesitemos. Como dicen en su página web http:// www.ociweb.com/products/mpc script once ... and build many... En nuestro ejemplo creamos un fichero con la extensión .mpc (ejemplo.mpc) cuyo contenido será como el de Listado 1. Ahora podemos invocar a MPC para que genere los ficheros necesarios para compilar nuestro programa. En el caso de Linux, y definida la variable de entorno ACE_ ROOT, nos posicionamos en el directorio con los fuentes y el fichero para mpc y ejecutamos:

36

Linux+ 5/2007

w ¡Pide suscripción!
LiNUX+ por suscripción es más barata:

69 €

TRES REGALOS PARA ELEGIR

¡En cada número 2 DVDs!
Ahora un regalo especial para nuestros suscriptores – 12 números anteriores de Linux+ en la versión electrónica

Si tienes preguntas, problemas o dudas, escribe a:

suscripcion@software.com.pl

En nuestra tienda virtual podrás adquirir todos los productos de la editorial Software-Wydawnictwo: www.buyitpress.com

Pedido
Por favor, rellena este cupón y mándalo por fax: 0048 22 887 10 11 o por correo: Software-Wydawnictwo Sp. z o. o., Bokserska 1, 02-682 Varsovia, Polonia; e-mail: suscripcion@software.com.pl Nombre(s) ......................................................................................... Apellido(s)........................................................................................ Dirección ......................................................................................................................................................................................................... C. P. ................................................................................................... Teléfono ............................................................................................ Población, provincia ........................................................................ Fax ....................................................................................................

E-mail ................................................................................................ Suscripción a partir del N° ..............................................................

Precio de suscripción anual Absender-Daten69 € de Linux+:
Realizo el pago con: □ tarjeta de crédito (EuroCard/MasterCard/Visa/American Express) nO

CVC Code

Válida hasta □ transferencia bancaria a BANCO SANTANDER CENTRAL HISPANO Número de la cuenta bancaria: 0049-1555-11-221-0160876 IBAN: ES33 0049 1555 1122 1016 0876 código SWIFT del banco (BIC): BSCHESMM Fecha y firma obligatorias:

w

software ADAPTIVE Communication Environment
• • • Thread.h, Thread.inl, Thread.cpp.

Listado 5. Aplicación de Reusabilidad: SOCKET y SPIPE
Comunicación mediante Sockets: .......... int puerto=1950;

ACE_INET_Addr direccion_cliente; ACE_SOCK_Stream stream; ACE_INET_Addr direccion_servidor(puerto); ACE_SOCK_Acceptor acceptor(direccion_servidor); acceptor.accept(stream,&direccion_cliente); stream.recv(buffer,buffer_long); const ACE_TCHAR* respuesta="Hola Gente!"; stream.close(); .......... Comunicación mediante “pipes” (SPIPES): .......... char disp[BUFSZI]; ACE_SPIPE_Addr direccion_cliente; ACE_SPIPE_Stream stream; ACE_SPIPE_Addr direccion_servidor(disp); ACE_SPIPE_Acceptor acceptor(direccion_servidor); acceptor.accept(stream,&direccion_cliente); stream.recv(buffer,buffer_long); const ACE_TCHAR* respuesta="Hola Gente!"; stream.close(); ..........

Veamos ahora un ejemplo específico sobre cómo usar algunas de las capacidades que nos proporciona ACE.

Capa de Envoltorios: Comunicación entre procesos

stream.send(respuesta, ACE_OS::strlen(respuesta)+1);

Como sabemos, los procesos en aplicaciones distribuidas intercambian sus datos y se coordinan entre sí a través de los que llamamos Comunicación entre Procesos o Inter-process Communication que reconocemos normalmente por mecanismos IPC. Las comunicaciones pueden variar entre las orientadas a conexión y las no orientadas a conexión e influirá en la elección del mecanismo concreto la situación de los procesos. No tenemos a nuestra disposición las mismas formas de comunicación entre dos procesos si éstos comparten el mismo sistema o máquina, que si se encuentran en máquinas diferentes. Programar utilizando las APIs de los diferentes sistemas operativos es difícil, y si además queremos código libre de errores y que sea robusto se nos complican más las cosas. Los programadores tienen que saber bien cuáles y como son las formas de identificar las direcciones de red, las interfaces de las funciones que soportan los mecanismos IPC y cómo funcionan las conversiones de orden de los bytes en la red. Además y para oscurecer un poco más el panorama, las mencionadas APIs tienen una cantidad considerable de funciones, el orden de llamadas para realizar una acción debe conocerse, hay poca comprobación de tipos al estar normalmente codificadas en C, y no hay mucho disponible para detectar excepciones del sistema. Las clases envoltorio (wrapper facades) de ACE nos ayudan a simplificar todo este proceso haciendo que nuestros programas sean más fáciles y legibles junto con las ventajas claras que ésto nos aporta. El código para codificar un servidor que escuche peticiones en un puerto es el siguiente (ver Listado 3). A continuación vemos el código comentado y clarito de un cliente que conecte con nuestro servidor en un puerto. Es importante fijarse en el cambio de ACE_SOCK_Acceptor (parte pasiva a la espera de conexiones) a ACE_SOCK_Connector (parte activa que inicia la conexión). Ahora que ya sabemos cómo construir un fichero de configuración de

stream.send(respuesta, ACE_OS::strlen(respuesta)+1);

$ACE_ROOT/bin/mpc.pl -type make ejemplo.mpc

Si queremos generar los ficheros de proyecto que incluyan todo lo necesario para compilar nuestro programa en un entorno Windows con Visual C++ 7.1 haríamos:
%ACE_ROOT%/bin/mpc.pl -type vc71 ejemplo.mpc

En el caso de Linux, a través de MPC habremos generado un fichero llamado Makefile. Ejecutable_Ejemplo que podemos invocar con la llamada:
make -f Makefile.Ejecutable_Ejemplo

Veamos un programa sencillo utilizando ACE y su fichero MPC para poder generar ficheros de compilación en cualquier plataforma. Un ejemplo de Hola Gente hecho con ACE sería como el de Listado 2. Lo que hemos visto nos sirve para poder construir nuestros programas de forma rápida y portable entre plataformas y sistemas operativos sin casi desgaste por nuestra parte. En ACE están agrupadas las clases que aportan determinada funcionalidad en ficheros cuyo nombre deriva de la clase principal eliminando el comienzo ACE_ y añadiendo.h (cabecera), .inl (implementaciones inline) o .cpp (código de implementación). Por ejemplo podemos encontrar la clase ACE_Thread para manejo de hilos en:

Figura 2. Diagrama de Clases ACE_SOCK_Acceptor

38

Linux+ 5/2007

w

software ADAPTIVE Communication Environment

con el entorno y sus clases, sus frameworks y los patrones de diseño utilizados, somos perfectamente conscientes de las ventajas que conseguimos. A partir de un momento no sólo terminamos de codificar antes y de manera elegante, sino que también se ven reducidas las tareas de realizar pruebas y el arreglo de las no conformidades surgidas, con lo que podemos dedicar más tiempo al apasionante mundo de la programación creativa y menos al mantenimiento. ACE sigue evolucionando a día de hoy, y además de manejo de comunicaciones mediante diferentes mecanismos nos proporciona clases y formas de programar de forma Figura 3. Diagrama de Herencia Mecanismos IPC en ACE eficiente y sencilla aplicaciones orientadas fuentes para que MPC pueda generarnos los Conclusiones a eventos, uso de colas de mensajes, control makefiles, resultará trivial para el lector ge- Ya hemos hablado en un artículo anterior de de procesos y de hilos, contenedores de menerar estos dos procesos en una plataforma las ventajas de utilizar ACE en nuestros desa- moria extremadamente eficientes, gestión de Linux, Solaris, Windows o HP-UX, y probar rrollos. En este caso vamos solamente a des- configuraciones, arranque y parada de servique efectivamente se realizan las comunicaciones pretendidas entre cliente y servidor. Con las clases ACE_IPC mejoramos la legibilidad del código, escribimos menos, reducimos las probabilidades de error y encapsulamos las tareas de inicialización subyacentes. Si llega un momento en que sabemos que nuestros procesos cliente y nuestro proceso servidor van a estar alojados en la misma máquina, podríamos decidir cambiar de los sockets a un mecanismo más eficiente a nivel local como puedan ser las tuberías o pipes. En otro tipo de entorno los cambios a nuestro código seguramente impactarían de forma brusca en la calidad de vida del programador. En el caso de ACE mostramos a continuación los cambios necesarios en el código para uno y otro mecanismo. Es decir, ACE nos proporciona un interfaz consistente para diferentes mecanismos ocultándonos la complejidad y las diferencias. P U tacar que efectivamente la curva de apren- cios en tiempo de ejecución y nos simplifica dizaje de ACE es difícil al principio, pero se- los procesos de generación de trazas y depugún vamos escalando y adquiriendo soltura ración.

Figura 4. Diagrama de Herencia para clases de Direcciones B L I C I D A D

www.lpmagazine.org

39

w

software Juegos sección llevada por Francisco J. Carazo Gil

Hex-a-Hop

Ghouls and Ghosts Remix

T

om Beamount diseñó y creó este juego en 2005. El objetivo es simplemente destruir todos los hexágonos verdes que hay en el tablero. En dicho tablero, además de hexágonos de color verde existirán hexágonos de color gris que no se destruyen al pasar por encima suyo. De modo que podemos hacer uso de los mismos de cara a destruir el resto. Para todo aquel a quien le gusten las matemáticas, he de decir que el desarrollo del juego se parece mucho al de la búsqueda sobre un gráfico de un llamado Camino de Hamilton, de manera que se recorren todos los vértices (en este caso representados por los hexágonos verdes) sin pasar dos veces por el mismo y pasando por todos ellos. El juego se compone de 100 niveles de dificultad creciente, de manera que tenemos juego para rato. Entre fase y fase iremos recorriendo un mapa en el que iremos eligiendo el nivel a realizar. Esta

M

ediante el uso de Allegro, Valarsoft ha creado el remix, nunca mejor dicho, lo dice hasta el nombre, del famosísimo Ghouls and Ghost que Capcom desarrolló para sistemas como Master System y otras consolas contemporáneas. Valarsoft, empresa italiana dedicada a la creación de software libre en general, nos proporciona este título usando Allegro. Allegro, es una biblioteca creada inicialmente por Shawn Hargreaves para el compilador DJGPP y que con el paso del tiempo se ha convertido en una de las mejores opciones para los desarrolladores de juegos. Por supuesto, como podréis suponer dicha biblioteca está liberada bajo licencia GPL y es parte de un proyecto de Sourceforge. El juego fue presentado en la edición del año 2006 de RetroRemakes. Poco a poco el proyecto ha ido creciendo hasta llegar a convertirse en lo que es hoy en día, en la actualidad la versión 0.32, además de las opciones iniciales de Ghouls and Ghosts existen algu-

Hex-a-Hop
posibilidad del mapa entre ambos, suma posibilidades a un juego muy simple. Aparte, como nota interesante, mencionaros que entre nivel y nivel el juego hace un autoguardado. Implementado haciendo uso de la SDL y en C++, el juego es muy simple pero tiene mucha diversión detrás de él. Es un juego en el que tendremos que pensar y en el que llegados a un nivel ya alto, nos provocará más de un quebradero de cabeza (en el buen sentido). La web del juego es realmente simple, más aún que el juego, y en ella ni siquiera disponemos de capturas de pantalla del juego. Todo el conjunto en sí no está demasiado trabajado, ya que no está disponible ni siquiera en el código del juego, sin embargo el código está disponible para descarga, por lo que se trata aunque sea de manera extraoficial, de software libre. Hace falta, como es lógico, tener instalada la SDL, para poder compilar el juego. En resumen, deciros que se trata de un juego de muy poca difusión (a la que espero contribuir con la inclusión del mismo en este artículo) pero que es perfectamente jugable y está basado en una idea un tanto divertida. http://www.aceinternet.co.uk/~mokona/

Ghouls and Ghosts Remix
nos añadidos extra. Los gráficos son los del juego original y el modo de juego también. La dificultad es mayor y se echa de menos, poder establecer una resolución mayor porque la que viene por defecto, que es la única disponible es realmente baja. Por cierto para acceder al juego en la web que os indico, os vais a la sección de Allegro. No os pongo la URI completa debido a que se trata de la URI generada por un CMS (gestor de contenido) mediante una petición, y es realmente larga y poco memorizable. Existen versiones tanto para Windows como para Linux. En Linux deberemos bajar el mismo archivo .zip que para Windows, dar permisos de ejecución a un script y ejecutarlo. Dicho script compilará el juego y creará un binario llamado game.exe. Se nota que los creadores del juego trabajan con Windows, porque todos los juegos excepto éste son solamente para ese sistema operativo, ya que todo lo relacionado con el juego es muy típico de sistemas Microsoft, extensiones .exe para los binarios, archivos .zip en lugar de tarball, etc. A pesar de ser un juego con muy buenas intenciones, su bajísima resolución le resta mucho encanto, ya que es un auténtico esfuerzo tener que mirar esas ventanas tan reducidas. http://www.valarsoft.com/ramuso/

NOTE

NOTE

jugabilidad ««« gráficos «« sonido N/A

jugabilidad gráficos sonido

«« «« «

40

Linux+ 5/2007

w
Galcon

sección llevada por Francisco J. Carazo Gil

software Juegos

Kobodeluxe

P

hil Hassey, creador de juegos basados en Python y participante de todas las ediciones de PyWeek, es el creador de este juego, que a pesar de ser un juego propietario y de código cerrado funciona bajo Linux y debido a su modo de juego me ha parecido una buena alternativa a comentar. Con poco más de cinco megabytes y presentado en forma de tarball, podemos descargarnos una demo para probar el juego, que posteriormente podemos comprar, que raro decir esto en esta sección pero sí, en Linux también hay software propietario, es parte de la libertad que caracteriza a Linux. El precio de compra es desorbitado, más de 15 euros. Acostumbrados a software libre gratuito, pagar algo ya nos parece mal, pero en este caso, el juego es simplemente el típico juego programado en Python, como muchísimos otros que os hemos presentado en esta sección. Sin embargo, la demo puede aprovecharse lo suficiente, aunque

K

obodeluxe es una mejora del clásico para X11 llamado Xkobo. Programado haciendo uso de la SDL, se trata de un juego que nació hace ya tiempo, no sólo el clásico, sino también esta remake que comentamos. Un detalle que nos dice el tiempo que el juego tiene, es que en 2003 ya existía una versión del juego para Xbox y poco después se compiló una versión para GP32. La primera release que usaba la SDL, data del 9 de octubre de 2000 y en ella se advertía que el uso de la SDL no estaba generalizado y que todavía había partes como el sonido que usaban librerías propias de sistemas *nix. Con el tiempo además de versiones para Xbox o GP32, se han desarrollado versiones para una gran cantidad de plataformas, gracias al carácter multiplataforma de la librería SDL que hace realmente fácil este trabajo. Existen versiones para además de las ya mencionadas, para Play Station 2, GNU/Linux, Windows, BeOs, Solaris ejecutando en Sparc...

Galcon
siempre dan ganas de seguir jugando, pero la verdad no os recomiendo en absoluto que paguéis la licencia por las opciones que presenta. Es verdad que cuando estamos delante de un juego grande, parece justo y todo, tener que pagar una licencia por juegos de gran talla, con un gran equipo detrás, equipo que en ocasiones llega a suponer un esfuerzo mayor que el equipo de una superproducción de Hollywood. Este tipo de macro-juegos conlleva una serie de esfuerzos, que parece lógico que se pida un coste económico a cambio de la licencia, sin embargo en un caso como éste no me parece lógico en absoluto. Las partidas se desarrollan en un sistema planetario con varios planetas. En un comienzo dispones de un planeta con 100 unidades de combate, con las que tienes que dominar el resto de los planetas y finalmente destruir al contrincante. Los planetas tienen unas características, el coste de conquista y la capacidad de generación de recursos. Los gráficos son correctos para el propósito del juego. Sin embargo no son ninguna maravilla. El juego en verdad que es muy adictivo, pero como muchos juegos tan simples, no son para jugar a ellos muchas horas, sino para matar horas muertas. http://www.imitationpickles.org/galcon/index.html

Kobodeluxe
Respecto a las versiones comentaros que la actual es la 0.40 y que salió al público el 12 de junio de 2005, por lo que parece que en la actualidad el proyecto está parado. La web del juego es bastante simple y guarda una estética muy parecida a otras webs de juegos para Linux. El juego es un arcade en dos dimensiones en el que manejamos una nave con la que debemos destruir construcciones enemigas. El juego va haciéndose más difícil nivel a nivel y la diversión no falta. Existen varios tipos de objetos que actúan contra nosotros y que tienen distintos comportamientos por lo que las posibilidades aumentan. Una característica que define al juego es su velocidad. En cuanto a cómo instalarlo, os querría decir que además de los paquetes disponibles con el código fuente, existen paquetes precompilados para gran cantidad de distribuciones. Por ejemplo en Ubuntu he podido instalarlo haciendo uso de apt-get sin cambiar siquiera un repositorio. En Gentoo y derivadas también es posible instalarlo haciendo uso de Emerge, aparte también hay paquetes compilados para Slackware y en general para todas las distribuciones importantes, ya que el juego como os he comentado tiene ya su tiempo. http://olofson.net/kobodl/

NOTE

jugabilidad «« gráficos «« sonido N/A

NOTE

jugabilidad gráficos sonido

««« «« «««

www.lpmagazine.org

41

w

software Juegos sección llevada por Francisco J. Carazo Gil

Daphne

Dark-Oberon

O

s presento un emulador muy peculiar. La peculiaridad que lo caracteriza es que emula a las máquinas arcade basadas en Laserdisc. Muchos de vosotros os preguntaréis qué es un Laserdisc. Los Laserdisc fueron inventados en 1958 por David Paul Gregg, patentados posteriormente en 1961 y finalmente en el mercado en 1978, sólo dos años que estuviera disponible el primer grabador/ reproductor de VHS y cinco años antes de la aparición del CD, que por cierto está basado en el Laserdisc, y que fue mucho más famoso que éste. Con un gran parecido a un CD pero con 30 cm. de diámetro, es decir bastante más que un CD, los Laserdisc supusieron una tecnología realmente avanzada para su tiempo ya que transmitían la información de manera binaria, mediante una onda modulada por pulsos desde la realidad física y posteriormente modelada por frecuencia para la transmisión ya de información binaria.

U

n proyecto de Sourceforge creado por estudiantes, con gráficos que imitan a la plastilina y con un sistema de juego basado en el clásico Warcraft II. Detalles todos ellos muy buenos y algunos como el de los gráficos basados en plastilina, muy originales. Los gráficos están basados en unos modelos reales, hechos con plastilina y que han sido posteriormente escaneados y modelados para dar forma al motor gráfico del juego. El resultado es una estética original y con una calidad que a pesar de no ser demasiado alta, cumple perfectamente con lo que el juego requiere. La estética en general del juego es original y la forma del mismo recuerda muchísimo al que fuera precursor de los grandes juegos de estrategia en tiempo real, Warcraft II, basado además en una fantasía medieval que le daba mayor interés. Los requerimientos del juego demuestran el nivel gráfico del mismo, requiere al menos un procesador a 1GHz y 512MB de RAM, además de por supuesto una tarjeta gráfica que sea compatible con OpenGL.

Daphne
Ya que se podía almacenar información digital en ellos, fue aunque parezca extraño, utilizado para almacenar juegos de cara a ser usados en máquinas arcade. Estos juegos son los que emula Daphne. Daphne es software libre bajo licencia GPL. Está disponible para varias plataformas, GNU/Linux, Mac OS y Windows. Entre los juegos que podemos ejecutar con este curioso emulador se encuentran: Drangon's Lair, Dragon's Lair II: Time Warp, Cobra Command, Road Blaster, Super Don Quixote, Thayer's Quest... y muchos más. La lista completa está disponible en la wiki del proyecto: http://www.daphne-emu.com/. Para poder hacer uso del emulador necesitaremos: • • El MPEG del juego o en su defecto el Laserdisc Original. La ROM del juego.

Dark-Oberon
Es software libre y en la actualidad se encuentra disponible la versión 1.0.2 Release Candidate 2. Las plataformas en las que podemos encontrarlos, son GNU/Linux y Windows. Está implementado en C++, haciendo uso de la librería OpenGL y además de existir una versión en inglés, existen versiones en checo y eslovaco. Esperemos que algún día alguien (podríamos ser nosotros) se muestre voluntario a traducir el juego a español. Respecto a la instalación del juego en sistemas GNU/ Linux, nos deberemos bajar el código fuente para compilarlo posteriormente. Deciros que para los usuarios de Windows existe un instalable de manera que pueden también hacer uso del juego de una manera casi inmediata. Comparado con otros juegos que hemos comentado o comentamos a menudo en esta sección, clásicos remasterizados, clones de mitos del mundo del videojuego, o en general juegos simples desarrollados haciendo uso de la SDL, Python o alguna otra librería o API ideada para proyectos pequeños, este es un proyecto grande que recrea la idea de un juego genial de una manera también muy adecuada. Ha sido un gran trabajo el realizado (y el que siguen realizando) el equipo compuesto por: Martin Košalko, Michal Král, Jiří Krejsa y Valéria Šventová. http://dark-oberon.sourceforge.net/

Todo ello está disponible a través de la Wiki del proyecto donde viene todo muy explicado. La realidad es que tanto la web como la documentación del proyecto son muy buenas ambas. En resumen, un emulador un tanto extraño y peculiar pero que por lo mismo es interesante. http://www.daphne-emu.com/

NOTE

NOTE

jugabilidad N/A gráficos N/A sonido N/A

jugabilidad gráficos sonido

«««« «««« ««

42

Linux+ 5/2007

w

Tres ejemplares por sólo 18,40 €

AHORRAS 10

+
Pide 2 números, el tercero recíbias GRATIS
Puedes elegir entre:

Pedido
Por favor, rellena este cupón y mándalo por fax: 0048 22 887 10 11 o por correo: Software-Wydawnictwo Sp. z o. o., Bokserska 1, 02-682 Varsovia, Polonia; e-mail: suscripcion@software.com.pl Nombre(s) ......................................................................................... Apellido(s)........................................................................................ Dirección ......................................................................................................................................................................................................... C. P. ................................................................................................... Teléfono ............................................................................................ E-mail ................................................................................................ Población, provincia ........................................................................ Fax .................................................................................................... Números elegidos: ..........................................................................

Precio de tres ejemplares deAbsender-Daten Linux+ Extra: 18,40 €
Realizo el pago con: □ tarjeta de crédito (EuroCard/MasterCard/Visa/American Express) nO

CVC Code

Válida hasta □ transferencia bancaria a BANCO SANTANDER CENTRAL HISPANO Número de la cuenta bancaria: 0049-1555-11-221-0160876 IBAN: ES33 0049 1555 1122 1016 0876
código SWIFT del banco (BIC): BSCHESMM Fecha y firma obligatorias:

w

linux en la empresa Pentaho Open Source BI

Business Intelligence Open Source
Israel E. Bethencourt

Nos encontramos en una época interesante, la información nunca había fluido tan libremente. Esta situación nos permite disfrutar de todo el conocimiento que podamos abarcar. Y de ahí, de nuestro principal avance, surge nuestro principal problema. Disponemos de tanta información y nos llega de forma tan abrumadora que bloquea nuestros sentidos y acaba volviéndose inútil.

E

n la empresa moderna este problema surge de la misma forma que en otros aspectos de la vida. Las aplicaciones de gestión, ERPs, CRMs, etc., permiten obtener gran cantidad de información extremadamente útil para la toma de decisiones. Nuestro principal reto será extraer de toda esa información el significado subyacente y mostrárselo al usuario de forma asequible. Ahí es donde entran en juego las aplicaciones de Business Intelligence (BI). Los sistemas BI son aplicaciones integradas en un gran marco de trabajo que permiten extraer, presentar, analizar y manipular toda la información de una empresa. El caso típico de aplicación BI consiste en un portal web donde podemos desplegar y ejecutar todo tipo de informes sobre los datos de cualquiera de nuestras aplicaciones de gestión comercial, contable, etc. De esta forma liberamos la carga que supone ese trabajo a la aplicación principal que se encargará únicamente de recopilar la información diariamente mientras que la plataforma BI se encarga de realizar tareas tales como generar una serie de informes por departamentos que serán enviados por email a los encargados al principio de la semana; podemos disponer

de un panel donde se muestren los marcadores del negocio más importante en nuestra empresa de forma visual de manera que de un solo vistazo podamos determinar qué acciones hay que tomar para sortear un determinado problema. Disponemos de gran cantidad de herramientas que podemos integrar en nuestro negocio para recopilar toda la información posible y extraer de ella su significado de forma visual. Estos sistemas han experimentado un gran crecimiento en los últimos años, los productos estrella eran caras aplicaciones de marcas como Cognos, IBM, Microsoft y otras. Pero en el transcurso de estos dos últimos años un nuevo actor ha entrado en escena, se trata de Pentaho (www.pentaho.org), la solución Open Source para el BI. Cada vez más se va posicionando al lado de sus competidores

linux@software.com.pl

Sobre el Autor
Israel E. Betancourt es desarollador de sistemas. Actualmente trabaja en la empresa CORE be digital S.L.

44

Linux+ 5/2007

w
como una solución adecuada para gran varie- JBoss Portal dad de situaciones. Es una aplicación desarrollada para JBossAS con lo que hereda todas las características anPentaho Open Source BI tes mencionadas. Ofrece un sistema de gesPentaho es un proyecto desarrollado por un tión de contenidos donde podemos mezclar grupo de líderes de productos BI privados co- contenidos estáticos con información extraímo son Business Object, Cognos, IBM, Oracle, da de nuestro sistema de BI configurando una etc., con una gran experiencia en el sector. Su intranet con características inigualables para meta principal es usar las ventajas que ofrece sus competidores. Ofrece también la posiel modelo de Software Libre, cada una de las bilidad de incluir portlets sobre cualquier páaplicaciones que comentamos más adelante gina del portal. Un portlet es una aplicación se distribuyen bajo algún tipo de licencia libre web que cumple determinado estándar sobre del tipo LGPL, OSI, Apache, etc., para desa- la forma en que se codifica y ejecuta para que rrollar la herramienta líder en el entorno BI. sea posible integrarlos en diversos portales, Ofreciendo más funcionalidades y caracterís- principalmente en java. JBoss Portal nos perticas que sus competidores propietarios. mite reutilizar todos estos portlets e incluir Para ello han adoptado una serie de apli- lectores de correo, calendarios y otras aplicacaciones, componentes y APIs libres, que so- ciones colaborativas a nuestro sistema BI cabre la plataforma Pentaho forman una estruc- si sin esfuerzo, ampliando aún más las frontura sólida sobre la que construir cualquier teras de nuestra intranet. Por supuesto exissolución BI. ten otras alternativas libres a JBoss y JBoss Además disponen de un programa de partners por todo el mundo que ofrecen cursos, asesoría y desarrollo de soluciones BI a medida. En España, uno de estos proveedores asociados se encuentra representado por Stratebi (http://www.stratebi.com/), en su página web puede verse una demo de uno de los productos que han desarrollado que puede aclarar más las ideas sobre cómo quedaría una aplicación Pentaho terminada. También disponen de un blog (http://todobi.blogspot. com/) donde podemos enterarnos de las últimas noticias en el mundo del BI en español. Ahora, avancemos un poco más en la infraestructura de Pentaho de la cual hereda alguna de las grandes ventajas que posee. Está completamente desarrollado en java, sobre la plataforma Java Enterprise y usa una serie de tecnologías relacionadas con este entorno:

linux en la empresa Pentaho Open Source BI Enhydra Shark
Entorno de workflow integrado en Pentaho. El entorno de workflow usa un lenguaje estándar en XML: XPDL (XML Process Definition Language) que define la ejecución de flujos de negocio dentro del sistema. Sobre esa base se desarrollan las aplicaciones de Pentaho que cubren las áreas más importantes para el desarrollo de soluciones BI para las empresas.

Informes

La creación de informes es una parte crucial en la gestión de la empresa. De la calidad de éstos en su representación, en la información que ofrecen y sobre todo en la forma en que se adaptan a los cambios de la empresa obtenemos el punto diferenciador en las aplicaciones de BI. La instalación de pruebas de Pentaho permite trabajar con tres tipos de generadores de informes distintos. JasperRe-

Portal y Pentaho también puede funcionar ports es el más popular, ya que es bastante en ellas. fácil hacerlo funcionar junto con una aplicación independiente, pero el editor de planQuartz tillas deja bastante que desear y en algunos Es un planificador de tareas que ha sido inte- aspectos se ha quedado un poco anticuado, grado en Pentaho y que se encarga de ejecutar aunque dispone de un gran soporte y una procesos planificados en el tiempo. Para los gran cantidad de usuarios. que conozcan los sistemas UNIX, es el equiEl generador de informes BIRT está desavalente al cron pero integrable en cualquier rrollado sobre la plataforma Eclipse y ofrece aplicación java. un novedoso sistema de diseño de plantillas

JBoss Application Server
Es una de las aplicaciones libres más importantes en el entorno empresarial. Fue comprada por RedHat a finales del año pasado. Las aplicaciones desarrolladas sobre este servidor heredan una gran cantidad de características avanzadas con el mínimo esfuerzo para el desarrollador. Entre las características que ofrece este sistema a la plataforma podemos destacar su capacidad de clustering, conexiones a todo tipo de bases de datos de forma unificada, publicación de funcionalidades mediante servicios web, servidor web y de correo integrado, autorización y autentificación centralizada con capacidad SSO (Single Sign-On) y otras muchas características que podemos consultar en su web: www. jboss.org. Figura 1. Arquitectura funcional de Pentaho

www.lpmagazine.org

45

w

linux en la empresa Pentaho Open Source BI
orientado al documento, cada vez más se va abriendo paso entre los usuarios más exigentes. Además está integrado en la plataforma de desarrollo Eclipse con lo que no necesitamos salir del entorno de desarrollo para crear y probar un nuevo informe. Por último el generador de informes por defecto de Pentaho, JFreeReport. Ofrece funcionalidades equivalentes a JasperReport aunque de forma más integrada en Pentaho y con un editor de plantillas más cuidado. De cualquier forma todos esperamos ansiosos la versión 1.0 de este motor que tratará de igualar o superar las funcionalidades de BIRT con la ventaja de tener el motor de informes bien integrado en la plataforma Pentaho. Todos estos motores permiten generar el informe en diversos formatos: texto PDF, HTML, Excel, etc., (aunque con un poco de programación se pueden añadir más formatos) además de solicitar parámetros al usuario ner ciertos conocimientos sobre la estructura de los datos con los que trabajan y sobre el programa que les permite navegar por ellos (en caso de Pentaho una aplicación externa a la plataforma, aunque también libre llamada JPivot), pero una vez se han hecho con las características básicas se les puede sacar mucho más provecho que a un informe estático. Ya que se trata básicamente de un informe que se puede ir modificando según la información que nos interese ver tan sólo pulsando un botón. El proceso de construcción de un sistema de este tipo es un tanto más complicado que la generación de informes. Ya que para la ejecución de los cubos OLAP (es así como se llaman estos informes) se requiere una infraestructura un poco más compleja. Es necesario copiar los datos con los que vamos a trabajar a una base de datos alternativa, llamada DataWarehouse o DataMart con una estructura su origen (ficheros de texto, bases de datos, XML, etc.). Este procesamiento puede consistir en buscar una serie de líneas de un archivo de texto y convertirlas en un registro de una base de datos o recuperar una serie de datos de una base de datos, transformarlos e insertarlos en otra base de datos. Es muy útil para realizar importaciones de catálogos de proveedores, copias de bases de datos, etc. Pentaho adoptó recientemente una aplicación ETL libre desarrollada sobre el entorno Eclipse llamada kettle. Con esta aplicación podemos definir una serie de pasos donde cada uno de ellos realiza una acción sobre un conjunto de datos. Estos pasos pueden leer datos de una base de datos, aplicarles algún tipo de procesamiento mediante javascript; por ejemplo: realizar comprobaciones de tipos o insertarlos en una base de datos. Estos pasos se van anidando visualmente creando un documento de transformación que se puede grabar a disco y ejecutarlo posteriormente cuantas veces queramos. También podemos integrar estos documentos para que sean ejecutables desde la plataforma de BI, como veremos posteriormente.

para filtrar la fuente de datos e incluso enviar específicamente diseñada para aumentar la el documento resultante por email una vez velocidad de los informes de forma que los haya terminado. usuarios puedan hacer modificaciones en vivo a un informe de cientos de miles de regisAnálisis tros sin que noten retardos de consideración. El sistema de análisis de datos de Pentaho está Dado que de la calidad de los datos exbasado en el servidor OLAP (de las siglas On traídos de la base de datos original se deterLine Analytical Processing) Mondrian (http:// minará la calidad de los cubos OLAP resulmondrian.pentaho.org/). Mediante esta aplica- tantes, es muy importante poner extremo ción podemos inspeccionar grandes volúme- cuidado en la extracción de estos datos. En nes de datos modificando su presentación, agru- esta situación una buena planificación y unas pándolos de distintas formas, seleccionan- herramientas de apoyo para realizar esta do distintos valores, para a continuación, por tarea es crucial para realizar un proyecto de ejemplo mostrar una gráfica con el resultado. este estilo con éxito. Todo de forma visual e inmediata. Podríamos equipararlo a un informe Integración de datos ETL modificable en línea mucho más avanzado, Con las herramientas ETL podemos realizar los usuarios de estos sistemas tienen que te- procesamiento de datos, cualquiera que sea

Paneles de mandos

Figura 2. JBoss Portal recién instalado

Estos paneles están formados por una serie de controles gráficos que permiten mostrar de forma rápida e intuitiva los marcadores principales del rendimiento del negocio de forma que en una pantalla podemos obtener medidas sobre el funcionamiento de la empresa. Actualmente no hay mucho soporte para la implementación de estos controles así que hay que hacer mucho trabajo a mano, pero en breve se esperan una serie de asistentes que permitan desarrollarlos de forma visual igual que el resto de las aplicaciones Pentaho. Todas estas aplicaciones se pueden usar por separado descargándolas de forma independiente y configurándolas para que accedan a nuestras fuentes de datos. Si sólo necesitamos una aplicación concreta seguramente ésta sea la mejor opción. Pero desde el momento que queramos ofrecer funcionalidades más avanzadas usando varias de estas aplicaciones y que se vean integradas como una sola requeriría mucho trabajo de programación para conseguir una aplicación donde integrarlas todas juntas. Con Pentaho esta tarea no es necesaria, podemos trabajar con todas estas aplicaciones una vez instalado Pentaho, además con

46

Linux+ 5/2007

w
muy poco esfuerzo podemos hacer que kettle cree un DataMart para Mondrian que mostrará un cubo OLAP cuando se pinche sobre un control de un panel de mandos en una página de JBoss Portal. Como muchas grandes ideas no crean nada nuevo, simplemente se simplifica lo existente de forma que podemos llevar las tecnologías que ya existían un nivel más allá.

linux en la empresa Pentaho Open Source BI
figured Installation o PCI) lo descomprimi- las ventajas de usar este gestor de contemos en un directorio de trabajo y lo ejecu- nidos. En la página principal podemos ver tamos. que se ha añadido contenido estático y unas noticias extraídas de la web de Pentaho co$ tar xvzf pentaho mo pantalla de bienvenida. Además tam-demo-1.2.0.534 bién tenemos la opción de registrarnos para -GA.tar.gz acceder a contenido protegido. En la parte cd pentaho-demo/ superior tenemos una serie de pestañas por $ ./start-pentaho.sh las que podemos ir navegando para ver los distintos ejemplos. Si queremos ver un paUna vez ha terminado de arrancar podemos nel de mandos en funcionamiento, vamos ver la aplicación en http://localhost:8080/pen- a la pestaña Dashboard. Nos registramos taho/. La página principal ya nos empieza para poder ver el contenido haciendo clic a mostrar las ventajas que nos ofrece este donde nos indica. Pulsamos en clic aquí sistema. Nos muestra dos gráficos de tarta, para loguearse como Joe, de esta forma se reuno con el total de ventas por territorio y el llena automáticamente la información de otro por tipo de producto. Al pinchar sobre login así sólo tenemos que pulsar el botón una porción de alguna de las tartas en el para ver el resultado. A continuación nos gráfico de barras vemos un detalle de las salen unos recuadros con unos títulos basventas por artículo. tante prometedores, pero nada más. Para Para ver más ejemplos vamos al menú poder ver información sobre ellos debeNavigate -> Soluciones. En esta página tenemos una lista de carpetas que contienen todas las acciones disponibles en la solución samples. Entrando en cualquiera de estas carpetas podemos ver las acciones disponibles para ejecutar. En Navigate -> My Workspace podemos ver la lista de acciones que hemos ejecutado en segundo plano. Si un informe tarda demasiado en ejecutarse, podemos lanzarlo en segundo plano y seguir trabajando en otras cosas. Cuando termine estará disponible en My Workspace hasta que lo eliminemos. La tercera opción del menú Navigate, Portal muestra los mismos ejemplos pero dentro de JBoss Portal donde podemos ver mos aplicar un filtro en el cuadro superior izquierdo. Cualquier filtro que realicemos debería mostrar datos. Podemos ir modificándolo para ver distintos resultados. Al pulsar sobre Actualizar vemos el resultado de la consulta realizada. Además podemos pulsar sobre los gráficos y se nos mostrará un cubo OLAP con el detalle de la información de la gráfica. De forma que podamos ir explorando la información por capas. En la pestaña Reporting podemos ver varios ejemplos de informes con los motores antes mencionados. Basta con pinchar sobre ellos para obtener el resultado inmediatamente. La pestaña bursting muestra cómo

Probando Pentaho

En la zona de descargas de Pentaho nos encontramos dos versiones, la estable (General Availability) preparada para el entorno de producción y la versión de desarrollo para poder probar las nuevas funcionalidades que se van añadiendo. Dentro de cada sección encontramos una lista de opciones para descarga, entre ellas nos encontramos diferentes secciones:

Pentaho Open BI Suite and Pentaho Reporting Server
En esta sección podemos descargar una distribución de Pentaho lista para funcionar. Con una serie de datos de prueba y ejemplos para todas sus funcionalidades podemos comenzar a trabajar con ella nada más descargarla. Sólo requiere una versión de java 1.4+ instalada correctamente. Además en esta sección disponemos de una serie de componentes para integrar Pentaho con los gestores de proyectos más conocidos: JIRA y bugzilla.

Pentaho Design Studio
Herramientas visuales para trabajar con Pentaho. Entre ellos encontramos diseñadores de informes, cubos de análisis, etc.

Developers and Administration
Incluye los elementos de Pentaho por separado para realizar una instalación desde cero y algunas aplicaciones extra para la exploración y modificación de datos que veremos más adelante.

Documentation
Aquí encontraremos todo lo necesario para hacer nuestro trabajo más productivo. Imprescindible leer Pentaho Getting Started Guide y Pentaho Creating Solutions. También es recomendable visitar los foros donde se resuelven dudas y problemas a los usuarios. Lo que comento aquí sobre los primeros pasos con Pentaho está, en parte, extraído de esos documentos. Para ver todo el sistema en marcha, bajamos Pentaho Open BI Suite (Pre-Con- Figura 3. Pantalla de panel de mandos mostrando diversas medidas

www.lpmagazine.org

47

w

linux en la empresa Pentaho Open Source BI
dor de informes, aunque si no nos convence también podemos usar BIRT o JasperReport, entre otros. Pentaho Data Integration (kettle): Realiza tareas para la construcción de Data Marts, importación, exportación, limpieza de bases de datos y otras muchas funcionalidades de una forma rápida y segura. Se puede usar de forma independiente. Si trabajas a menudo con distintas bases de datos, ficheros CSV, moviendo datos de un lado a otro, esta aplicación resolverá muchos de tus problemas. OLAP: Sistema de análisis de datos mediante el servidor OLAP Mondrian.

Figura 4. Pentaho recién instalado

Puede que todo esto resulte un tanto complejo. Sí, parece que hay un montón de opciones, pero... ¿Cómo usarlas?, ¿cómo integrarlas para que trabajen juntas? Para entender esto • Charting: Usando las librerías JFreeChart y mediante el componente Queryng podemos crear todo tipo de gráficas. Scheduling: El planificador de tareas nos permite programar la ejecución de distintas acciones de forma automática. Prompting And Filtering: Permite solicitar información al usuario mediante formularios HTML. Reporting: Permite ejecutar informes, la fuente de datos de los mismos pueden ser un componente Queryng, javascript o Prompting and Filtering. Pentaho usa por defecto el API JFreeReport incluido en Pentaho recientemente. Actualmente tienen grandes planes para este generadebemos conocer un poco más sobre la estructura de Pentaho.

podemos distribuir informes entre sucursales. Para ver cómo se ha construido este portal podemos ver las opciones de configuración en el menú desplegable Portals y seleccionar el portal defaults. Nos registramos en el sistema con el usuario admin y contraseña admin (si ya estamos registrados como otro usuario debemos salir y registrarnos de nuevo) y a continuación pulsamos sobre el menú management. Ahí podemos ver el árbol de páginas del portal con todas sus configuraciones. Las modificaciones que realicemos aquí se reflejarán inmediatamente en el portal. Esta versión de Pentaho viene con un conjunto de componentes bastante amplio con lo que es muy poco probable que nos veamos en la necesidad de crear uno nuevo, con lo que el trabajo con Pentaho se reduce a la ejecución de las funcionalidades de los componentes ya existentes. Echemos un vistazo a los componentes principales que integra: •

Creando una solución Pentaho

Cada componente antes mencionado define una serie de acciones (Action Definitions). Estas acciones son documentos XML donde se especifican los parámetros, recursos y configuraciones necesarias para ejecutar una tarea específica de un componente. Quizá le aclare un poco las ideas verlo como funciones que solicitan una entrada, realizan una operación determinada y entregan una salida. Cada componente tiene un número arbitrario de funciones o acciones.

• •

Email: Este componente permite enviar email en formato texto o html, además puedes incluir ficheros adjuntos. Javascript: Este componente permite ejecutar código javascript. Printing: Permite imprimir informes o cualquier contenido en impresoras configuradas en el servidor Pentaho. Queryng: Permite acceder a diversos tipos de fuentes de datos, por ejemplo bases de datos SQL y obtener un subconjunto de Figura 5. Cubo OLAP del ejemplo Steel Wheels los mismos.

48

Linux+ 5/2007

w

linux en la empresa Pentaho Open Source BI

www.lpmagazine.org

49

w

linux en la empresa Pentaho Open Source BI
Para poder llamar a estas acciones necesitamos conocer los parámetros de entrada que requiere y dónde entregará la salida resultante. Toda esta información está disponible en la documentación de Pentaho. Pero ejecutar una sola acción no suele ser muy útil. Lo ideal sería agrupar una serie de acciones de diversos componentes de forma que funcionen juntos y crear así una secuencia de acciones que realice un trabajo determinado de forma auto contenida. Este es el trabajo principal que realizaremos con Pentaho. El elemento principal de una solución es una secuencia de acciones (Action Sequence). Consiste en un documento XML donde podemos anidar la salida de una acción con la entrada de otra. Una solución es un conjunto de secuencia de acciones que conforman todas las operaciones disponibles en el sistema, enfocadas a resolver los problemas del negocio. Construye un puente entre los componentes antes mencionados y el usuario final. Una instalación de Pentaho puede albergar una o más soluciones, alojadas todas en el depósito de soluciones: Solution Repository. El caso más común es usar un componente Filtering para solicitar determinada información al usuario, unas fechas por ejemplo. A continuación pasamos la entrada escrita por el usuario a un componente Javascript donde realizamos una serie de controles y pre-procesamiento. Después usamos esos parámetros para realizar una consulta en una base de datos y finalmente, pasamos esos datos al componente de Reporting para generar un informe y mostrarlo en pantalla o enviarlo por email. Todo esto se puede hacer creando un fichero XML y copiándolo al directorio de la solución junto con todos los recursos necesarios: plantilla del informe, etc. Después lo podemos ejecutar a través de una URL, desde una aplicación java mediante una API o usando un servicio web. Todo sin tener que programar ni una línea de código. Aunque la ventaja principal es que si necesitamos programar algo que falta, el sistema es lo suficientemente flexible para poder hacerlo. Para ejecutar estas acciones necesitamos conocer una serie de parámetros sobre la misma: • los datos que indicamos antes. La primera parte de la URL depende de la configuración del servidor y es siempre igual: http:// localhost:8080/pentaho/ViewAction?solution= samples&path=getting-started&action=Hello World.xaction. Si por el contrario queremos ejecutarlo como un servicio web, podemos lanzar la siguiente URL: http://localhost:8080/pentaho/ ServiceAction?solution=samples&path=getting started&action=HelloWorld.xaction. El resultado será un documento SOAP con el resultado de la ejecución de la acción.

Después de la fiebre del XML todos nos hemos ido dando cuenta que a lo mejor lo de editar XML a mano no era tan fácil como solution: Es el nombre del directorio que podría parecer en un principio. Así que paaloja la solución dentro del depósito de ra evitar el infierno que podría suponer edisoluciones. path: Es la ruta de directorios dentro de la solución hasta la acción que queremos ejecutar. action: Es el fichero que contiene la secuencia de acciones. Suelen contener la extensión .xaction. tar todos estos ficheros a mano disponemos de una aplicación que nos permite crear y modificar las acciones de forma mucho más intuitiva. Para descargar esta herramienta antes debemos descargar el entorno de desarrollo eclipse en www.eclipse.org. Suele estar disponible también en la mayoría de depósitos APT con lo que seguramente podremos instalarlo usando la herramienta de instalación de nuestra distribución. A continuación descargamos el plugin para Pentaho en la sección Eclipse Action Sequence Plugin only. Para instalarlo basta con descomprimir el archivo en el directorio de plugins de nuestra instalación de eclipse (probablemente en /usr/lib/eclipse). Si queremos ver o modificar las plantillas de informes JFreeReport necesitamos descargar Pentaho Report Designer. Otra aplicación interesante es Pentaho Data Integration para crear transformaciones ETL. Para instalar estas aplicaciones basta con descomprimirlas en un directorio de trabajo. Para comenzar a trabajar con el editor de acciones abrimos eclipse una vez instalado el plugin. Cerramos la pantalla de bienvenida y creamos un nuevo proyecto simple en File–>New Project. Ponemos un nombre de proyecto, desactivamos la selección Use Default y seleccionamos el directorio pentahosolutions dentro de nuestra instalación PCI de Pentaho. Ahora deberías poder explorar todo el depósito de soluciones y abrir los ficheros xaction con el editor de acciones y verlos de forma visual.

Pentaho Design Studio

Una vez tenemos estos datos podemos componer una URL que ejecute una acción cualquiera. Por ejemplo en la instalación de pruebas hay una acción llamada HelloWorld. xaction que muestra un mensaje por pantalla. Para ejecutarlo podemos ir navegando por las páginas de Pentaho hasta localizarla y ejecutarla o crear la URL directamente con

Figura 6. Editando una plantilla de informe con ReportDesigner

50

Linux+ 5/2007

w

linux en la empresa Pentaho Open Source BI

Figura 8. Trabajando con la herramienta ETL kettle y requerirán un poco más de esfuerzo por nuestra parte, pero no cabe duda de que su negocio podrá beneficiarse mucho de esta aplicación dedicándole el tiempo adecuado. O acudiendo a los partners certificados que ofrecen servicios de desarrollo y consultoría en este tipo de soluciones. De cualquier forma es indispensable leer el manual de instalación avanzada que explica los

Figura 7. Editando una xaction desde el editor de acciones
en la parte baja. • • • General: muestra las propiedades básicas como título, descripción, logo, etc. XML Source: El fichero XML en bruto. Test: Permite ejecutar la acción en el servidor Pentaho desde el editor de acciones.

pasos necesarios para realizar una instalación en producción. Además, si en nuestra El editor se muestra con cuatro pestañas realizan en la secuencia de acciones. Final- empresa ya disponemos de un servidor mente en Action details podemos ver los JBoss podemos instalar Pentaho fácilmenparámetros de la acción seleccionada en la te en el mismo servidor. sección Process Actions cada acción tiene su propio editor donde podemos introducir los parámetros necesarios para ir conectando una acción con otra. Profundizar más en estas herramientas requeriría más espacio del disponible, peSegún una encuesta anual de Gartner, en el año 2005 el tema BI en la empresa era el número dos en prioridades tecnológicas de la empresa. Actualmente hay cuatro empresas: IBM, Microsoft, Oracle y SAP que tienen copado el mercado, pero poco a poco se van posicionando otras alternativas más apropiadas para empresas de distintos tamaños. Sea con Pentaho o no, es fundamental explorar este terreno en empresas que exijan un alto rendimiento de su negocio. Se esperan movimientos realmente interesantes para los que estén involucrados en este mundo ya que cada vez salen más competidores al mercado con nuevas y mejores herramientas, además Pentaho promete muchas y grandes novedades para este año las

Define Process: Definición de la secuencia ro siempre podemos encontrar una desde acciones. cripción más exhaustiva de todas estas herramientas en los correspondientes maEsta última pestaña es la más importante. nuales. Lo mejor para ir comprendiendo En ella se muestra toda la información re- el funcionamiento de todo el sistema es ferente a la secuencia de acciones que ha- instalarlo y empezar a modificar los ejem• yamos abierto. Como podemos ver se divide en cuatro bloques principales: Process Inputs que se dividen en entrada y recursos, Outputs se corresponde con la salida que generará la acción, Process Actions podemos plos e ir viendo cómo se comporta. Después una instalación en vivo re quiere una serie de configuraciones adicionales, eliminar todos los ejemplos, conectarlo a nuestra base de datos, etc. Todas estas

ver una lista de todas las acciones que se operaciones son un poco más avanzadas cuales será interesante seguirle la pista. P U B L I C I D A D

www.lpmagazine.org

51

w

linux en la empresa LinEx para empresas

LinEx Pyme, software libre para la gestión empresarial
Juan Jose Torres Pérez, Milagros Cristobal Sevilla, Alberto Reynolds Moreno, Técnicos de proyecto LinEx PYME

En Extremadura se ha pasado de las palabras a la acción y se ha llevado a cabo la introducción del software libre en los campos educativos (GnuLinEx) y empresariales (LinexPyme). En lo que se refiere al ámbito empresarial todo empezó a partir de octubre de 2004, cuando fue presentada Linex Empresa. Linex Empresa era una distribución basada en GnuLinEx a la que se le habían añadido un conjunto de soluciones de gestión empresarial, principalmente aplicativos para la facturación, control de almacén y contabilidad.

L

os promotores del proyecto fueron Vivernet (Programa de la Consejería de Infraestructuras y Desarrollo Tecnológico de la Junta de Extremadura en colaboración con Fundecyt) y Fundecyt (Fundación para el desarrollo de la Ciencia y la Tecnología en Extremadura). LinEx Empresa fue de las primeras distribuciones de Software Libre, bajo licencia GPL y en español destinada específicamente a las empresas. Y entre noviembre de 2004 y enero de 2006, de la solución de gestión empresarial LinEx Empresa fueron distribuidas 46.147 copias y del paquete Gestión LinEx-Facturlinex + Contabilidad hubo más de 40.500 copias descargadas. En Enero de 2006 Vivernet, Fundecyt e Iiesa (Instituto de Innovación Empresarial de Jaén) ponen en marcha el proyecto LinEx Pyme con la intención de mejorar la distribución y ampliar el ámbito de actuación a otras comunidades autónomas. Así LinEx Pyme se acogió al Programa Nacional de Tecnologías de Servicios de la Sociedad de la Información/ Software de código abierto para prioridades temáticas multidisciplinares (e-negocio; e-pyme; e-formación; e-administración; e-hogar)

dentro del Plan Nacional de Investigación Científica, Desarrollo e Innovación Tecnológica (2004-2007) dependiente del Ministerio de Industria, Turismo y Comercio. El objetivo de este proyecto se ha visto cumplido a finales del año 2006 y se ha mejorado la distribución original convirtiéndose en LinEx Pyme: conjunto de soluciones integrales para la Gestión Empresarial, en Software Libre, bajo licencia GPL que proporciona a la empresa un sistema operativo, suite ofimática, Internet, correo electrónico, multimedia, programas de gestión de proyectos, edición y maquetación editorial y herramientas específicas para la gestión diaria empresarial, como programas de control de almacén, TPV, facturación (FacturLinEx), contabilidad (ContaLinEx), gestión de recibos bancarios (ReciboLinEx) y gestión de nóminas (NominaLinEx), entre otros. Además se ha diseñado un Plan Piloto de Implantación de LINEX PYME en 10 empresas de cada Comunidad Autónoma piloto (Extremadura y Andalucía) que es ya una realidad en el primer trimestre de 2007. El proyecto cuenta también con una plataforma virtual de apoyo

52

linux@software.com.pl

Linux+ 5/2007

w
ContaLinEx

linux en la empresa LinEx para empresas

Aplicación adaptada al Sistema Contable Español que permite efectuar la contabilidad diaria de una PYME. Está integrada al 100% con la aplicación anterior, Facturlinex, e igualmente es compatible con aplicaciones propietarias conocidas de este género como Contaplus. Permite la gestión, selección y listado de distintas empresas, genera apuntes tipificados, extracto de cuentas, balances de sumas y saldos, cuenta de Pérdidas y Ganancias, gestión de IVA emitido/recibido, etc.

ReciboLinEx
Aplicación que permite la emisión de recibos bancarios y domiciliaciones de adeudos en soporte magnético según la norma 19 del CSB (Consejo Superior Bancario) para la gestión de cobros.
Figura 1. Captura de pantalla del programa FactuLinEx

y difusión que denominamos Punto de In- Principales aplicaciones formación de Software Libre (PISL): http:// de gestion de LinEx PYME www.linexpyme.com. FacturLinEx (Terminal de Punto de Venta y Facturación), es una aplicación cliente-servidor Características de la distribución con la posibilidad de ejecución multiusuario LinEx Pyme para la gestión integral de la facturación El objetivo de este proyecto es apoyar a las desde una pequeña empresa hasta una gran PYMES, crear y desarrollar una completa so- empresa con 9999 sucursales, siendo la colución de gestión empresarial financiera y de nexión entre todas ellas en tiempo real percomunicación LinExPYME basada en Soft- mitiendo controlar el movimiento de todo el ware Libre para la PYME, que cubra prácti- almacén, la caja y la facturación. Este móducamente el 100 % de sus necesidades de ges- lo está preparado para trabajar en entornos tión y comunicación financiera. PYMES como puede ser un estanco, una Esta solución tecnológica se presenta co- tienda de ropa, e incluso incluye un módulo mo una distribución completa cuyas caracte- para hostelería. rísticas principales son las siguientes: • Facilidad de instalación, incluyendo exclusivamente Software de libre distribución y copia, Entorno amigable y facilidad de uso, Todas las aplicaciones en español, Cubriendo las necesidades básicas de gestión financiera y comunicación.

NominaLinEx
Solución que permite gestionar de manera informatizada las nóminas de los trabajadores. Está adaptada a la Legislación Vigente y contiene tablas de cotización actualizables. Este aplicativo permite gestionar Contratos y bajas de Trabajadores, Convenios Colectivos, Epígrafes, Tipos de Cotización, Bases de Cotización, Seguros Sociales TC1, TC2 (sólo contempla en régimen general por el momento) y la comunicación RED se encuentra en desarrollo.

Instalacion de LinEx PYME

LinEx PYME es una variante de gnuLinEx, por lo que tiene el mismo sistema de insta-

• • •

LinEx-PYME es un conjunto de software integrado, para la gestión corporativa de una PYME, que proporciona a la empresa un sistema operativo, suite ofimática, Internet, correo electrónico, multimedia, programas de gestión de proyectos, edición y maquetación editorial y herramientas específicas para la gestión diaria empresarial, como programas de control de almacén, TPV, facturación (FacturLinEx), contabilidad (ContaLinEx), gestión de recibos bancarios (ReciLinEx) y de gestión de nóminas (NominaFigura 2. Iniciando la instalación de LinEx PYME LinEx).

www.lpmagazine.org

53

w

linux en la empresa LinEx para empresas

Figura 5. Configuración de interfaz gráfica
mos elegir la instalación en Modo Texto o en Baja Resolución. Seleccionamos el tipo de monitor

Figura 3. Elección del modo en el que deseamos utilizar el espacio en nuestro disco duro

lación, configuración y usabilidad que este. Para instalar LinEx PYME es necesario que el ordenador cumpla con una serie de requisitos mínimos, Pentium 200MHz o similar, 2 GB de espacio en disco duro, 128 MB de memoria RAM, Tarjeta gráfica compatible VESA , Lector de DVD. Debemos descargar la imagen de instalación de Linex PYME desde la dirección de Internet http://www.gnulinex.net/distribucion/, una vez descargado el fichero, en formato iso, debemos quemarlo en un DVD o en un CD de 800Mb de capacidad con cualquier programa de grabación de CD/DVD.

Para arrancar desde el DVD e iniciar la instalación de LinEx PYME es necesario que una vez introducido el disco de instalación en el lector de DVD, establezcamos en la BIOS que el arranque primario del sistema sea desde esta unidad. Una vez realizado este paso y arrancado el ordenador con el DVD de instalación aparecerá la siguiente pantalla con la que iniciaremos la instalación paso a paso: •

En este momento debemos crear las particiones necesarias para la instalación de la distribución. La fase de particionamiento es quizás la más complicada para el usuario inexperto. Si no tenemos ningún otro sistema operativo instalado o simplemente estamos seguros de tener una partición libre o queremos remplazar otro sistema gnuLinux instalado por LinEx PYME seleccionaremos el Particionamiento Automático. Este consiste en dividir el disco duro en varios bloques. Elección del modo en el que deseamos utilizar el espacio en nuestro(s) disco(s) duros:

Seleccionamos el tipo de instalación que queremos realizar, probamos primera- • Eliminar todas las particiones Linux en mente la primera opción y en caso de teeste sistema. ner problemas con el modo gráfico podeSi tenemos otra(s) distribución(es) de GNU/ Linux y queremos borrarla(s) debemos marcar la primera opción • Eliminar todas las particiones de este sistema.

Si tenemos otro sistema operativo instalado y no deseamos conservarlo, podemos elegir esta opción, para que LinEx PYME aproveche todo su disco duro. • Guardar todas las particiones y usar el espacio libre existente.

Figura 4. Selección de grupos de paquetes

Esta es la opción por defecto de LinEx PYME y, sin duda, la más recomendable. De este modo conservaremos todos los sistemas operativos y particiones utilizadas, instalándose únicamente en aquella parte del disco duro que esté sin formato alguno. Podemos ver en esta imagen el resultado del particionamiento automático.

54

Linux+ 5/2007

w
El gestor de arranque (GRUB) es un programa que al iniciar el ordenador nos informa de todos los S.O. que tengamos instalado y nos permite seleccionar el inicio en uno u otro. La instalación del gestor de arranque es automática, tan solo se nos consultará si lo queremos o no instalar. Configuramos los usuarios, como es normal en todos los sistemas GNU/Linux, y paraello indicaremos la clave del administrador y nombre y clave de un usuario normal que accederá por defecto una vez instalado el sistema. En este apartado personalizamos los paquetes de software que se instalarán en nuestro sistema. Iniciamos la instalación, seleccionamos la tarjeta de vídeo, la profundidad de color y la resolución de pantalla. Luego finalizamos la instalación y reiniciamos el sistema.

linux en la empresa LinEx para empresas

Conclusiones

Figura 6. Iniciando LinEx PYME

LinEx Pyme da el relevo a LinEx Empresa, siendo uno de los deseos de sus promotores poner a disposición de la Comunidad de Software Libre un sistema operativo con una Suite Empresarial que sea validado y mejorado tanto por la Comunidad de desarrolladores como por sus destinatarios finales, las pymes.

En la red
• • • • • http://www.gnulinex.net/, http://www.linex.org/, http://www.gnu.org/ home.es.html, http://www.vivernet.com, http://www.fundecyt.es.
P U

Figura 7. LinEx PYME en acción
B L I C I D A D

www.lpmagazine.org

55

w

para programadores Desarrolla tus propios juegos desde 0 en GNU/Linux con OGRE3D

Desarrollo de Juegos en Linux con OGRE3D
Daniel Barrientos Carrera, Enrique Puertas Sanz, José Carlos Cortizo Pérez

La industria de los videojuegos es una industria cada día más creciente, capaz de sobrevivir (y con mucho éxito) a cuestiones tan duras como la piratería. Pese a que el mercado fundamental de la mayoría de los videojuegos sean las consolas o bien la plataforma Windows, GNU/Linux se muestra como una alternativa cada día más atractiva, tanto por el número de usuarios, el apoyo de la comunidad, así como por el desarrollo de nuevas herramientas que facilitan el desarrollo de juegos que no tienen nada que envidiar a algunos videojuegos comerciales.

P

ese al enorme esfuerzo invertido en potenciar la usabilidad de los sistemas Linux, tratando de atraer usuarios desde otras plataformas, aun encontramos mucha gente que se siente reacia a dar el salto, debido muchas veces al poco soporte que tienen los videojuegos en el mundo Linux. Y es que, seamos realistas, los juegos tienen mucho tirón: desde que se popularizó el uso de los ordenadores personales como herramienta doméstica, el sector del videojuego ha sido el que ha impulsado grandes cambios en nuestros ordenadores personales. Fueron los videojuegos los que hicieron que se popularizaran las tarjetas de sonido (las míticas Adlib o Sound Blaster), las potentes tarjetas gráficas actuales que liberan al procesador de realizar muchos de los complejos cálculos necesarios en los juegos o los saltos generacionales en las familias de microprocesadores. Si somos capaces de ampliar o incluso cambiar nuestros ordenadores solamente para poder jugar a ese videojuego que acaba de salir al mercado y que exprime los recursos de nuestra máquina, ¿por qué vamos a cambiar a un Sistema Operativo en el que no puedo jugar a mi juego favorito?

linux@software.com.pl

Lo que aprenderás
Con este artículo aprenderás a compilar e instalar OGRE3D, así como a crear una escena desde OGRE, cargar una malla, crear un punto de luz, un suelo, un cielo y una cámara. Esto servirá de base para posteriores artículos donde aprenderemos a cargar nuestras propias mallas, mover los objetos, etc. La pregunta que debemos hacernos entonces es: ¿por qué la industria del videojuego no acaba de introducirse en el mundo Linux? La respuesta parece sencilla: actualmente no hay mercado como para que las grandes compañías se interesen en sacar versiones para Linux. Hoy en día, la producción de

Lo que debes saber
Para seguir adecuadamente este artículo conviene que tengas unos conocimientos medios de C++ así como algunos conocimientos de manejo de gráficos.

56

Linux+ 5/2007

w
un videojuego es un proceso largo y costoso. El presupuesto de algunos videojuegos supera incluso al de grandes super producciones cinematográficas. Pero Linux y el mundo del Software Libre cuentan con un importante factor a su favor que puede hacer que todo esto cambie en un futuro: una enorme comunidad dispuesta a colaborar, y multitud de recursos libres para la creación de videojuegos. Con herramientas como Blender u OGRE3D (que usaremos para este pequeño tutorial) se pueden conseguir resultados que poco tienen que envidiar a otras herramientas comerciales.
int main( ) { Root *root;

para programadores Desarrolla tus propios juegos desde 0 en GNU/Linux con OGRE3D
para Windows). Además, OGRE3D provee soporte para programas de vértices y shaders personalizados escritos en GLSL, HLSL, Cg y en ensamblador, gestiona automáticamente el nivel de detalle de forma progresiva, provee exportadores para la mayoría de los programas de modelado 3D (3D Studio Max, Maya, Blender, LightWave, Sket-

Listado 2. Programa principal de nuestro primer juego con OGRE

RenderWindow *renderWindow; EventProcessor *eventProcessor; SceneManager *sceneMgr; Camera *camara; Viewport *viewPort; Entity *ninja; Light *luz; SceneNode *nodoNinja; root = new Root(); //mostramos ventana de configuracion if (!root->showConfigDialog() ) { delete root; return 0; }

El motor OGRE3D

OGRE3D (Object-Oriented Graphics Rendering Engine, http://www.ogre3d.org) es un motor de renderizado 3D orientado a escenas escrito en C++ y diseñado para hacer más fácil e intuitivo el desarrollo de aplicaciones que utilizan aceleración 3D. OGRE3D abstrae los detalles de utilización de las librerías gráficas subyacentes (Direct3D y OpenGL) y provee una interfaz basada en clases intuitivas (gestor de escena, nodo del grafo de escena, cámara, etc.). A pesar que OGRE3D no pueda ser definido como un motor de juegos completo, sí que provee muchas facilidades, así como plugins para extender la funcionalidad del motor como pueda ser ODE (motor de físicas), lo cual lo convierte en una herramienta muy potente al alcance de todos. OGRE3D es multiplataforma (Windows, Linux, Mac Os X), lo cual nos permite desarrollar juegos fácilmente portables entre diversas plataformas, de hecho ya se está trabajando en una versión de OGRE3D para XBox, lo que permitirá migrar juegos que desarrollemos para Linux a esta nueva plataforma (actualmente podemos desarrollar en Linux y compilar el juego en Windows, o incluso desarrollar en Linux y mediante crosscompiling obtener también los ejecutables Listado 1. Compilación e instalación de OGRE3D
tar xjf ./OGRE-linux_osx-v1-0?.tar.bz2 cd OGREnew ./bootstrap ./configure (Para nvidia añadir -with-platform=GLX) make make install (ejecutar como root)

root->initialise(false); //creamos ventana renderWindow = root->createRenderWindow("Mi primer programa con OGRE",600,600,false); eventProcessor = new EventProcessor();

eventProcessor->initialise(renderWindow); eventProcessor->startProcessingEvents(); sceneMgr = root->createSceneManager(ST_GENERIC); camara = sceneMgr->createCamera("camara1"); viewPort = renderWindow->addViewport(camara); cargaRecursos(); //establecemos el ambiente para que haya algo sceneMgr->setAmbientLight(ColourValue(0.3,0.3,0.3)); sceneMgr->setShadowTechnique(SHADOWTYPE_STENCIL_ADDITIVE); sceneMgr->setSkyBox(true,"Examples/StormySkyBox"); ninja = sceneMgr->createEntity("ninja1","ninja.mesh"); luz = sceneMgr->createLight( "luz1" ); luz->setType(Light::LT_POINT); luz->setPosition( 0,100,-100); luz->setVisible( true ); "); nodoNinja->attachObject( ninja ); nodoNinja->setPosition( 0, 0, 0 ); camara->setPosition(0 ,100 , -400 ); camara->setDirection( 0, 0, 1 ); //BUCLE PRINCIPAL while( !eventProcessor->getInputReader()->isKeyDown(KC_ESCAPE) ) { nodoNinja->yaw( Radian(0.1) ); root->renderOneFrame(); } delete eventProcessor; delete root; return 0; } nodoNinja = sceneMgr->getRootSceneNode()->createChildSceneNode("nodoNinja

www.lpmagazine.org

57

w

para programadores Desarrolla tus propios juegos desde 0 en GNU/Linux con OGRE3D
ejemplo pueden ser construidas en el directorio ./OGREnew/Samples/Common/bin.

Listado 3. Código de la función cargaRecursos
void cargaRecursos() { ConfigFile cf; cf.load("resources.cfg"); // Go through all sections & settings in the file ConfigFile::SectionIterator seci = cf.getSectionIterator(); String secName, typeName, archName; while (seci.hasMoreElements()) { secName = seci.peekNextKey();

Configurando nuestro primer Juego con KDevelop

ConfigFile::SettingsMultiMap *settings = seci.getNext(); ConfigFile::SettingsMultiMap::iterator i; typeName = i->first; for (i = settings->begin(); i != settings->end(); ++i) { archName = i->second; ResourceGroupManager::getSingleton().addResourceLocation( archName, typeName, secName); } } //inicializa recursos. ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); }

Podemos utilizar OGRE3D directamente con gcc pero conviene utilizar un editor que nos facilite la organización de un proyecto y sus archivos. Dentro de la gran variedad de editores que tenemos a nuestra disposición en Linux, se ha elegido KDevelop por su madurez como producto así como su facilidad de integración a la hora de desarrollar con OGRE. Configurar OGRE3D con KDevelop es realmente simple, basta con crearse un nuevo proyecto C++ simple y realizar las siguientes acciones: • Abrir el archivo configure.in y añadir lo siguiente encima de AC_OUTPUT: PKG_
CHECK_MODULES(OGRE, [OGRE3D>= .2.0]),

• probar los prerrequisitos tanto para poder compilar OGRE3D así como para su pos- • terior utilización (las siguientes versiones funcionan correctamente al compilar OGRE3D 1.0.3): • • • • • • • • • • • • automake 1.6+, autoconf 2.50+, make 3.80, libtool 1.5.6, pkg-config 0.17.2, gcc 3.3.5, g++ 3.3.5, cpp 3.3.5, Freetype2 2.1.x+, zziplib 0.12.x+, FreeImage, libpng, libmng, libtiff, libjpeg (para FreeImage).

chup, etc.), múltiples efectos de postprocesado (hdr, niebla, ruido, etc.), así como muchas otras características que lo convierten en una opción muy a tener en cuenta a la hora de desarrollar un videojuego; de hecho esto le ha llevado a ser el motor elegido como base a la hora de impartir el Master en Diseño y Desarrollo de Videojuegos de la Universidad Europea de Madrid. OGRE3D está licenciado bajo LGPL (que se convertirá en una doble licencia cuando salga la versión para XBox debido a las royalties) y cuenta con una gran y muy activa comunidad de desarrolladores (http://www.ogre3d.org/phpBB2/), de hecho se desarrollaron 6 proyectos dentro del último Google Summer of Code relacionados con ampliaciones y mejoras de OGRE3D, lo cual muestra tanto el interés que suscita como el interés de la comunidad porque crezca.

Abrir el fichero src/Makefile.am y añadir las siguientes líneas: LDADD=@OGRE_LIBS@ AM_CXXFLAGS=@OGRE_CFLAGS@, Para conseguir que el programa se ejecute en el directorio donde se encuentran los ejemplos para que al depurar no haya que copiar todos los recursos, basta con ir a las opciones de proyecto, seleccionar la opción de directorio propio y seleccionar el directorio <RaizDeOGRE>/ Samples/Common/bin.

Una vez realizados estos pasos ya podemos desarrollar nuestros propios juegos sin más complicaciones.

Nota para usuarios de Ubuntu
Cuando hagas make install puedes obtener un error como éste:
"/usr/bin/install: cannot stat `.libs/libOGREMain.lai': No such file or directory"

Instalando OGRE3D en GNU/Linux

Existen binarios de OGRE3D tanto para Debian, como para Fedora Core y Ubuntu, así como se puede compilar e instalar OGRE3D desde los fuentes. Instalar OGRE3D mediante paquetes precompilados es tarea relativamente simple (podemos conseguir más información sobre esto en http:// www.OGRE3d.org/wiki/index.php/Installing_ An_SDK#Linux), por lo que aquí nos centraremos en la compilación e instalación desde los fuentes. Antes que nada hay que com-

Una vez cumplidos los prerrequisitos, nos bajaremos la última versión de OGRE3D desde la página web de OGRE3D y lo compilaremos y lo instalaremos mediante los comandos que aparecen en el Listado 1. Conviene notar que se puede sustituir make por make -j <número de procesos> para compilar varios archivos en paralelo, lo cual puede acelerar la compilación de forma considerable si contamos con varios procesadores o un procesador multicore (es recomendable que el número de procesos sea dos veces el número de cores disponibles). Una vez la compilación termine de forma satisfactoria, las aplicaciones de

Si ocurre, lo que necesitas hacer es:
cp OGREMain/src/libOGREMain.la OGREMain/src/.libs/libOGREMain.lai vi OGREMain/src/.libs/ libOGREMain.lai

y cambiar en la línea 25 "installed=no" a "installed=yes". Una vez salvado esto, haz sudo make install de nuevo y todo debería funcionar.

58

Linux+ 5/2007

w
Nuestro primer programa con OGRE
A continuación vamos a desarrollar nuestro primer ejemplo en OGRE3D para darnos cuenta de lo sencillo que es comenzar con él. Vamos a realizar una aplicación desde cero, sin partir de ExampleApplication, incluido en los ejemplos de OGRE3D (directorio Samples) y que nos facilita algunas tareas peroque más adelante nos limitará bastante. Nuestro objetivo en este primer programa será mostrar en pantalla un ninja, cuyo modelo ya viene con la instalación del OGRE3D (directorio /media/models) y una luz puntual que lo ilumina. Nuestro ninja estará continuamente rotando respecto a su eje Y hasta que presionemos la tecla ESCAPE, momento en el que la aplicación terminará. El resultado de ejecutar nuestro código se muestra en la Figura1 Como es nuestra primera aplicación con OGRE3D no vamos a hacer grandes Listado 4. Contenido del fichero resources.cfg
# Resource locations to be added to the 'boostrap' path # This also contains the minimum you need to use the OGRE3Dexample framework [Bootstrap] Zip=../../media/packs/OGRECore.zip # Resource locations to be added to the default path [General] FileSystem=../../media FileSystem=../../media/fonts FileSystem=../../media/materials/ programs FileSystem=../../media/materials/ scripts FileSystem=../../media/materials/ textures FileSystem=../../media/models FileSystem=../../media/overlays FileSystem=../../media/particle FileSystem=../../media/gui FileSystem=../../media/ DeferredShadingMedia Zip=../../media/packs/cubemap.zip Zip=../../media/packs/ cubemapsJS.zip Zip=../../media/packs/dragon.zip Zip=../../media/packs/ fresneldemo.zip Zip=../../media/packs/ OGREtestmap.zip Zip=../../media/packs/skybox.zip

para programadores Desarrolla tus propios juegos desde 0 en GNU/Linux con OGRE3D

Figura 1. Resultado visible de nuestro primer ejemplo utilizando OGRE3D alardes de diseño y estructuraremos el programa en 2 funciones, el main y la función cargaRecursos. Se muestra en el Listado 2 el código de la función main ya que ésta es la que realiza las tareas que nos interesan principalmente y más adelante explicaremos el funcionamiento de la función cargaRecursos. Las variables utilizadas se encuentran al comienzo de la función main y representan a las clases principales de OGRE3D que se pasan a describir a continuación: El parámetro booleano pasado a dicha función indica si se quiere que OGRE3D cree automáticamente una ventana. En nuestro caso le decimos que no, y la crearemos posteriormente nosotros.

RenderWindow
Representa la ventana sobre la que OGRE3D renderizará (dibujará) sus contenidos. Dado que anteriormente le dijimos al root que no nos crease dicha ventana, lo tendremos que hacer nosotros, mediante la línea de código
renderWindow = root>createRenderWindow("Mi primer programa con OGRE",600,600,false)

Root
Esta clase representa la raíz, como su nombre indica, de una aplicación hecha con OGRE. Es necesario crearla antes de cualquier otra cosa, y se hace simplemente mediante la línea de código
root = new Root()

Inmediatamente después en el código se muestra la ventana de configuración que viene con OGRE, que es la que se muestra en la Figura 2. Una vez pasada esa ventana de configuración (presionando aceptar) se inicializa la aplicación mediante la línea de código
root->initialise(false)

El primer parámetro es bastante evidente y es la cadena que aparecerá en la barra de título de la ventana. Después se le indica el tamaño de dicha ventana (ancho y alto) y por último si queremos que esté a pantalla completa (en cuyo caso ignoraría el tamaño indicado antes) o no. En nuestro caso elegimos que no sea a pantalla completa.

EventProcessor
Es necesario crear un objeto de esta clase para que OGRE3D pueda capturar eventos

www.lpmagazine.org

59

w

para programadores Desarrolla tus propios juegos desde 0 en GNU/Linux con OGRE3D Viewport
Necesario crearlo para ver algo. No es lo mismo que RenderWindow ya que puede haber varios Viewport en una misma RenderWindow permitiendo así tener distintas vistas de un entorno en pantalla o entornos completamente diferentes. Por ahora creamos un único Viewport mediante la función renderWindow->addViewport, la cual necesita como parámetro un objeto de tipo Camera que será la cámara que plasmará lo que ve en ese viewport. Figura 2. Ventana de inicialización del sistema gráfico y despacharlos al lugar apropiado. En concreto a nosotros nos interesa en este ejemplo para detectar pulsaciones de teclas y poder así terminar nuestra aplicación tras pulsar ESCAPE. de proceso, ya que implica muchos cálculos. Por eso es necesario no abusar de este elemento y usarlo solamente en casos muy especiales. Mediante la elección apropiada de texturas se puede conseguir los mismos efectos que conseguiríamos más cómodamente con luces.

SceneNode

Representa un nodo de la escena. Los nodos sirven para organizar los objetos dentro de la escena y poder llevar a cabo los algoritmos que el SceneManager tiene implementados para Camera su representación. Es obligatorio que nuestros Como su nombre indica es la cámara a través objetos Entity estén asociados a un nodo. Miende la cual veremos el mundo. Se crea en la tras no lo estén, dichos objetos no pertenecelínea de código: rán a la escena y por tanto no serán renderizados. La creación de un SceneNode se hace sceneMgr->createCamera(“camara1”) a través de la función: siendo el parámetro pasado el nombre de la nodoNinja = sceneMgr>getRootSceneNode()>createChildSceneNode

SceneManager

cámara. Esta clase se encarga de la gestión de la escena gráfica y es probablemente el más im- Entity portante y de la que depende la eficiencia fi- Representa a los objetos de nuestro mundo nal del motor. Se crea mediante la línea de formados por mallas (archivos con extensión código: mesh). En el directorio media/models del OGRE3D se incluyen unos pocos. Dichos mosceneMgr= root->createSceneManager delos se crearán con cualquier herramienta (ST_GENERIC) de diseño como 3DStudio o Blender, para los cuales ya existen exportadores que convierEl parámetro pasado a dicha función se re- ten el formato propio de dichas aplicaciofiere al tipo de gestor de escenario que se nes en el mesh que necesita OGRE. quiere crear y dependerá del tipo de entorno Nuestro ninja será un Entity que se crea 3D que tengamos. Existen otros tipos ade- mediante la función: más de ST_GENERIC, como ST_INTERIOR para niveles de juego en interiores, ST_EX- ninja =sceneMgr->createEntity(“ninja1 TERIOR para entornos representados me- ”,”ninja.mesh”). diante mapas de alturas… En este ejemplo no nos vamos a preocupar de este parámet- El primer parámetro es el nombre que le daro y podemos dejarlo en ST_GENERIC para remos a la entidad y el segundo es el nomla mayoría de nuestras aplicaciones sen- bre del fichero que contiene el modelo del cillas. ninja.

y la asociación de nuestro ninja al nodo mediante:
nodoNinja->attachObject(ninja)

Light
Representa las luces que tengamos en nuestro entorno. Se pueden crear de varios tipos y para nuestro caso hemos creado una luz puntual mediante el codigo:
luz=sceneMgr->createLight(“luz1”)

El tipo de luz se establece mediante la función:
luz->setType(Light::LT_POINT)

Figura 3. Sistema de coordenadas utilizado por OGRE3D

Es muy importante señalar que al poner luces en la escena se ralentiza mucho la velocidad

Serán entonces los nodos los que se posicionen en el mundo y no las entidades en sí. Estas son entonces las clases básicas de OGRE3D (por supuesto tiene muchas cosas más) necesarias para empezar a hacer algo básico. Antes de pasar a explicar el resto del código es necesario conocer qué sistema de coordenadas utiliza OGRE3D, que es el común en este tipo de aplicaciones. OGRE3D utiliza un sistema de coordenadas dextrógiro, en el cual el eje Z apunta hacia fuera de la pantalla, el eje Y hacia arriba y el eje X hacia la derecha. La notación para indicar vectores es la usual (x,y,z). En la Figura 3 se muestra dicho sistema de coordenadas. Por esa razón el ninja se sitúa en la posición (0,0,0), la cámara se sitúa en (0,100,-400), es decir, hacia el fondo de la pantalla. Con el fin de que la cámara pueda ver a nuestro ninja tenemos que decirle que apunte hacia él, y esto lo hacemos mediante la función setDirection(0,0,1) donde le decimos a la cámara que coloque su eje z (que corresponde a la línea de visión) en dirección Z del mundo positivo, es decir, estará mirando hacia fuera de la pantalla, hacia nosotros. Una vez colocados todos los elementos en su lugar pasamos a realizar el bucle que se encargará de llevar a cabo las tareas que apuntamos al comienzo de esta sección: rotar

60

Linux+ 5/2007

w

para programadores Desarrolla tus propios juegos desde 0 en GNU/Linux con OGRE3D
código será casi siempre así por lo que bastará normalmente un cortar y pegar en las nuevas aplicaciones que creéis. Es muy importante establecer bien el fichero resources.cfg que se tiene que encontrar en el directorio de nuestra aplicación. En dicho fichero se indican los directorios donde nuestra función cargaRecursos tiene que buscar los recursos utilizados. En el Listado 4 se muestra el contenido de dicho fichero para el resources.cfg incluido en los ejemplos de OGRE3D. Aunque de ahí nos sobren muchas cosas para nuestra aplicación, en este artículo no le daremos más vueltas al asunto y lo usaremos tal cual. Hay que tener en cuenta que debes colocar esos recursos en el lugar adecuado o sustituir lo que aparece en resources.cfg por tus propios directorios. Es muy fácil equivocarse en este paso (siempre se queda algún directorio sin copiar, se pone mal algún nombre,…) y al arrancar la aplicación únicamente nos saltará una excepción con muy poca información de lo que ocurrió. Para saber de donde viene el problema el OGRE3D nos deja el fichero OGRE.log en el directorio de nuestra aplicación donde va dejando información de lo que hace. De esta forma examinando lo último escrito en ese fichero podemos saber o al menos intuir qué es lo que falló. Este primer ejemplo nos permite comprender el funcionamiento básico de OGRE3D, así como realizar nuestros primeros pasos con este motor 3D. En siguientes artículos veremos cómo cargar nuestras propias mallas realizadas desde Blender, animarlas, gestionar los eventos, etc.

Figura 4. Capturas de pantalla de varios juegos desarrollados con Ogre3D que muestran algunas de las capacidades de este motor continuamente nuestro ninja respecto a su eje Y y salir cuando pulsemos la tecla ESCAPE. La rotación respecto al eje Y la realiza la función yaw. Podemos rotar un SceneNode en torno a cualquiera de sus tres ejes: X (pitch), Y(yaw), Z(roll), existiendo funciones miembro en SceneNode para cada una de esas rotaciones. La comprobación de tecla pulsada se hará mediante la función isKeyDown de la clase InputReader. El objeto eventProcessor que creamos al comienzo del código contiene internamente un objeto de tipo InputReader que obtendremos mediante el código:
eventProcessor->getInputReader()

velocidad posible, por lo que dicho código no se ejecutará igual de rápido en distintos PC. Además animo a eliminar la luz que creamos anteriormente (basta con pasar false a la función luz->setVisible) para comprobar la gran diferencia de velocidad entre tener o no tener luz. El resto del código no es necesario comentarlo ya que es autoexplicativo. Por último nos queda mencionar la función cargaRecursos(). Dicha función, que se muestra en el Listado 3, se encarga de ir recorriendo los directorios donde tenemos los recursos de nuestra aplicación (modelos, texturas, materiales,…) e ir cargándolos. Ese

Es intuitivo darse cuenta que la función isKeyDown consulta si la tecla indicada por parámetro (los códigos correspondientes se pueden consultar en la ayuda que viene con OGRE) está pulsada, en cuyo caso nos devuelve true. El renderizado de la escena se realiza en la llamada root->renderOneFrame(), que como su nombre indica renderiza (dibuja) la escena que hay en ese momento y retorna. Hay que tener en cuenta también que el EventProcessor captura eventos en cada cuadro renderizado, por lo que si eliminamos la llamada a renderOneFrame no responderá el teclado. Como se puede ver, nuestro código no realiza ningún control de frames por segundo sino que simplemente renderiza a la máxima

Sobre los autores
Daniel Barrientos Carrera (danbar@uem.es) es Ingeniero Superior en Informática por la Universidad de Valladolid y actual doctorando en la Universidad Carlos III de Madrid. Actualmente trabaja como profesor en la Universidad Europea de Madrid, donde entre otras cosas imparte clases en el Master en Desarrollo y Diseño de Videojuegos. Es experto en visión artificial y artífice del sistema de control automático de las velas del Desafío Español. Enrique Puertas Sanz (enrique.puertas@ uem.es) es Ingeniero Superior en Informática por la Universidad Europea de Madrid donde actualmente imparte clases en temas como Taller de Software Libre y Comunicación Hombre-Máquina. Actualmente desarrolla su doctorado en la Universidad Politécnica de Madrid. Su bitácora personal se encuentra en http://www.enriquepuertas.com. José Carlos Cortizo Pérez (jccp@ainetsolutions.com) es Ingeniero Superior en Informática y actualmente realiza su doctorado en la Universidad Carlos III de Madrid. Es profesor en la Universidad Europea de Madrid donde, entre otras cosas, imparte la asignatura de Motores de Juegos en el Master en Diseño y Desarrollo de Videojuegos. Así mismo, es miembro fundador e investigador principal de AINetSolutions (http://www.ainetsolutions.com) empresa dedicada a ofrecer servicios de minería de datos, seguridad, etc.

www.lpmagazine.org

61

w

para programadores Gestión de Configuración Software (SCM) en sistemas GNU/Linux con Perforce

Gestión de Configuración Software con Perforce
José B. Alós Alquézar

Si como se vio en el Nº 29 de Linux+, la utilización de sistemas de control de versiones como CVS y Subversion permite una gestión colaborativa de un proyecto de software, existen dos necesidades no cubiertas cuando aumentamos el nivel de abstracción. Imagínese el diseño de un sistema complejo, integrando diferentes subsistemas que a su vez pueden descomponerse en una multitud de proyectos de software con ciclos de desarrollo diferentes, como ocurre en la fabricación de automóviles o aeronaves, en los cuales no solamente es importante registrar los cambios acontecidos en cada uno de estos proyectos, sino que también sería deseable coordinar los cambios y actividades de desarrollo existentes entre los diferentes proyectos que integrarán dicho sistema.

E

ste es el contexto en el cual debemos modificar el tradicional enfoque de programación centrada en un único proyecto de software y pensar en el proyecto de sistemas y a tal objeto aparecen las metodologías relacionadas con la Gestión de Configuración de Software y el Control de Configuración; actividades conocidas bajo los acrónimos SCM (Software Configuration Management) y CC (Configuration Control), respectivamente. Los sistemas de control de versiones (CVS) se enmarcan dentro de una familia general de utilidades denominadas Software Control Management (SCM) tools y cuyo ámbito de aplicación abarca la coordinación de varios proyectos encaminados a la obtención de un producto final. Si bien los sistemas de control de versiones cumplen dos misiones fundamentales; en primer lugar controlar los cambios que se efectúan sobre un conjunto de ficheros y por otro coordinar la labor de los diferentes usuarios que trabajan sobre éstos, el diseño y producción de sistemas complejos integrados por múltiples proyectos de software plantean las siguientes necesidades:

linux@software.com.pl

• • •

Coordinación de las actividades de desarrollo entre los distintos proyectos de software. Determinación de un ciclo de desarrollo de software de forma independiente para cada proyecto. Establecimiento de líneas base o baselines entre las diferentes versiones aplicables en producción para cada uno de los sistemas implicados.

Perforce es la nueva apuesta multiplataforma para los sistemas SCM de arquitectura cliente-servidor y disponible

Sobre el autor
José B. Alós es administrador de sistemas, especializado en SunOS 5.x/HP-UX/AIX desde 1999 de la mano de EDS, desarrollando su trabajo en Telefónica de España, S. A. U., y lleva trabajando con sistemas GNU/Linux desde los tiempos del núcleo 1.2.13. Ha sido profesor de la Universidad de Zaragoza. Está especializado en sistemas de Alta Disponibilidad y posee un doctorado en Ingeniería Nuclear.

62

Linux+ 5/2007

w

para programadores Gestión de Configuración Software (SCM) en sistemas GNU/Linux con Perforce

Lo que deberías saber...
• • • Conocimientos de sistemas Unix a nivel de desarrollador, Sistemas de control de versiones CVS o SVN a nivel usuario y administrador, Conocimientos básicos sobre ingeniería del software y Control de Configuración, Configuración de servidores HTTP Apache 2.x.

de versiones RCS radica en el tratamiento y registro de los cambios o alteraciones realizados sobre los ítem configurables (CI). La formalización del modelo de gestión de cambios, recomienda el registro y auditoría de todas Figura 1. Descripción de los elementos básicos de un sistema SCM y cada una de las modificaciones realizadas para una amplia variedad de entornos como Del mismo modo, otras metodologías de sobre un elemento configurable y éste es el GNU/Linux, MacOS, UNIX y, por desconta- desarrollo de software, y que pueden com- papel de los documentos de cambio o Changedo MS Windows, que se ofrece como alterna- plementar los aspectos recogidos en el pre- Docs. tiva a soluciones propietarias como la suite sente artículo pueden encontrarse dentro del Merant PVCS Dimensions. ámbito militar a partir de las especificaciones Modelo de Proceso de la norma MIL-STD 498 que reemplaza a la Todas estas operaciones y procesos deben esFundamentos de la Gestión norma DOD-2167A desde 1994. tablecerse en un documento denominado Softde Configuración de Software ware Configuration Management Plan (SCMP) La Gestión de Configuración de Software Elementos lógicos de los que contiene ejemplos para: (SCM) es un conjunto de procedimientos sistemas SCM recogidos formalmente en ANSI/IEEE Std. El sujeto principal de las herramientas de Con- • Sistemas computacionales complejos. 610.12-1990 en los que se materializa la disci- trol de Configuración es el Ítem Configurable • Pequeños proyectos de software. plina para aplicar una administración técnica o CI, que puede ser también un agregado de • Mantenimiento de programas. y organizativa destinada a: varios CIs que pueden implementar código • Desarrollo y mantenimiento de software fuente, documentación, documentos de campara dispositivos empotrados. • Identificar y documentar la arquitectura bio, baselines y releases tal y como se ilustra funcional y características físicas de un CI. en la Figura 1. Los modelos de gestión propuestos afectan • Control de cambios de estas característitanto a los ítem configurables (Cis) como a los cas. • Items Configurable (Cis): Es un objeto defi- cambios que se producen sobre ellos, defi• Grabar e informar el proceso de cambios nido de forma unívoca sujeto a contabili- niendo todos los aspectos relacionados con su a lo largo del ciclo de desarrollo. dad y auditoría separada bajo los proce- ciclo vital. En sistemas complejos de orienta• Verificar el cumplimiento de las especifidimientos de gestión de configuración de ción industrial un posible modelo de proceso caciones y requisitos. software. Un item configurable (CI) puede para la gestión de cambios podría venir dado ser un elemento de hardware, software, por la Figura 2. Por ello, el propósito fundamental de SCM documentación técnica o un conjunto de es planificar, organizar, controlar y coordinar varios Cis. identificación almacenamiento y cambios • Baselines: Son CIs revisados, aprobados acontecidos a lo largo del ciclo de vida de un y declarados como punto de partida para En este artículo aprenderás... proyecto de software tal y como ANSI/IEEE desarrollos ulteriores. • Los fundamentos, necesidades y apliStd. 1042-1987 IEEE Guide to SCM. • Variantes: Es una colección de CIs que ofcaciones del Control de Configuración recen funcionalidades similares de un mis(CC) y la Gestión de Configuración de • Las actividades fundamentales del Conmo producto o sistema complejo, como Software (SCM), trol de Configuración son. por ejemplo, modificaciones en el aspecto • La implementación de un sistema SCM • La identificación de la configuración. exterior, en las prestaciones o en accesorios cliente-servidor mediante el empleo • Almacenamiento de los ítem configuraadicionales no contemplados en el modede Perforce en sistemas GNU/Linux, bles o CIs. lo base. • Utilización colaborativa y gestión de • Control de los cambios en la configuración. cambios mediante Perforce, • Contabilidad del control de la configura- Documentos de cambio • La utilización de Perforce como sisteción. Quizá el elemento diferencial de los sistemas ma de control de revisiones. • Ejecución de las releases de CIs. SCM con respecto a los sistemas de control

www.lpmagazine.org

63

w

para programadores Gestión de Configuración Software (SCM) en sistemas GNU/Linux con Perforce
Tabla 1. Variables de configuración de Perforce SCM Fast System Variable Descripción de modo que cada servidor puede gestionar una colección de DEPOTS destinados a diferentes proyectos de software que requieran P4CHARSET Conjunto de caracteres para ficheros Unicode coordinación entre sí. Los ficheros y directorios P4COMMANDCHARSET Juegos no UTF-16 o UTF32 utilizados se recuperan por parte de los clientes en las uniP4CLIENT Nombre del workspace cliente utilizado dades de almacenamiento local en un espacio P4DIFF Localización del programa diff(1) denominado WORKSPACE y que no es más P4EDITOR Editor invocado por Perforce para operaciones que implican el trabajo que una copia parcial o total de un DEPOT. con formularios Un workspace, o más correctamente client P4HOST Hostname del equipo local de trabajo workspace, es un conjunto de directorios en el equipo cliente donde se editan, añaden o eliP4LANGUAGE Reservada para integradores de sistemas minan ficheros gestionados por Perforce. Cada P4MERGE Localización del programa merge para la consolidación de cambios workspace está identificado por un nombre entre diferentes ramas de desarrollo. único que puede ser definido mediante la vaP4PASSWD riable de entorno P4CLIENT. P4PORT Puerto TCP utilizado por el servidor Perforce Las listas de cambios o changelists son las P4USER Nombre de usuario en el servidor Perforce unidades básicas de trabajo con Perforce ya que todas las operaciones de edición de ficheros o En donde aparece la presencia de una en- plementar sistemas casi completos de gestión Cis, comunes a todos los sistemas SCM son reatidad abstracta encargada de proponer con las de configuración de software de una forma lizadas mediante su concurso. Las changelists especificaciones proporcionadas por los clien- no directa; esto es, elementos como baselines, presentan una doble finalidad: tes y la información de los equipos implicados en el proceso de desarrollo de los cambios pertinentes, denominada Engineering Change Proposal (ECP). Estos modelos de proceso deben ser implementados de acuerdo con las necesidades de cada sistema a desarrollar sobre las herramientas SCM. releases y variantes no están definidos como elementos lógicos, cosa que sí que ocurre en los • productos o suites destinados a ser herramientas SCM como Perforce que es el objeto a tratar a continuación. • Organizar el trabajo de los clientes en unidades lógicas agrupando cambios realizados sobre los CIs. Garantizar la integridad del trabajo de edición, asegurando que los cambios realizados sobre los ficheros o CIs son realizados en el depot de forma conjunta.

La herramienta SCM Perforce

Clasificación de las herramientas SCM

El estándar ANSI/IEEE Std. 1042-1987 contempla dos categorías de herramientas destinadas al control de configuración de software: •

Herramientas básicas. Permiten definir estructuras, identificación y almacenamiento de los ítem configurables o Cis, Arquitectura funcional así como su almacenamiento estructuraComo se ha explicado anteriormente, Perforce do. Además deben tener un sistema de SCM Fast System está dotado de una arquitecbibliotecas que permite insertar, extraer o remplazar objetos y obtener informes. Listado 1. Ejecución del comando p4 info • Herramientas avanzadas. Además de las funciones y características de las herra$ ./p4 info mientas básicas, permiten además: User name: t602010 – Implementar sistemas de bloqueos Client name: ares o exclusión mutua con las librerías Client host: ares.ono.com del sistema. Client unknown. – Minimizan el consumo de recursos Current directory: /home/t602010/ de software y hardware. Conceptos básicos Perforce – Permiten además operaciones de tipo Perforce Fast SCM System posee una arquitecClient address: 127.0.0.1:35559 undo (rollback operations). tura cliente-servidor multiplataforma en la cual Server address: localhost:1666 se articulan cuatro elementos lógicos básicos Server root: . Todas las herramientas destinadas al control que permiten la implementación de las estrucServer date: 2007/02/12 22:15:20 de configuración deben también tener la capa- turas y entidades definidas por los estándares +0100 CET cidad de comparar diferentes revisiones de un y recomendaciones vigentes sobre la gestión de Server version: P4D/LINUX26X86/ mismo CI; esto es, incorporan las capacidades configuración de software. 2006.2/113956 (2007/01/09) de las herramientas RCS. De hecho las herraEl repositorio o depot es la unidad fundaServer license: none mientas CVS y SVN pueden utilizarse para im- mental con la que trabaja el servidor Perforce

Perforce Software es una compañía norteamericana con sede en Alameda (California) que fue fundada en 1995 por Chirstopher Seiwald, con el objetivo prioritario de desarrollar una herramienta adecuada para la gestión de configuración de software (SCM) capaz de satisfacer los requisitos exigidos a una herramienta avanzada toda vez que proporcione la agilidad y rapidez de manejo y administración de la que adolecen otras herramientas disponibles en el mercado. Aun cuando no se trata de software libre, Perforce Software, Inc., ofrece en su site la posibilidad de descargar de forma gratuita y completa todos los productos cliente-servidor para plataformas GNU/Linux, SunOS, MacOS y por supuesto, MS Windows. Con respecto a otros sistemas comerciales, como Serena PVCS Dimensions, Perforce Fast SCM System no depende de la utilización de motores RDBMS propietarios.

Las operaciones que involucran elementos lógicos en Perforce que implican cambios en el repositorio o depot son atómicas; es decir, no existe la posibilidad de que se realicen de forma parcial o incompleta y, si tienen lugar, se realizan de forma íntegra.

64

Linux+ 5/2007

w
Listado 2. Configuración editable del workspace cliente ws_1
Client: ws_1 Owner: p4user Host: ares.ono.com Description: Created by p4user. Root: /home/t602010 Options: noallwrite noclobber nocompress unlocked nomodtime normdir SubmitOptions: submitunchanged LineEnd: local View: //project_C/... //ws_1/project_C/ ... //project_B/... //ws_1/project_B/ ... //project_A/... //ws_1/project_A/ ...

para programadores Gestión de Configuración Software (SCM) en sistemas GNU/Linux con Perforce
• • • Resolución de conflictos inteligente en operaciones de merging. Permite la operación a través de proxies y cortafuegos. Número ilimitado de workspaces, limitado por la capacidad del servidor y actualizados bajo demanda. Integración de seguimiento de defectos (defect tracking) para sistemas Bugzilla, SourceForce, TeamTrack, VA Software, entre otros. Notificación automática de cambios realizados en los items configurables (CIs). Autentificación integrada basada en passwords o tickets según se desee acceso por tiempo ilimitado o no, respectivamente. • Disponibilidad de plugins para los principales IDE del mercado como Eclipse, MS .NET Developer Studio, MS Visual Basic, Metrowerks CodeWarrior,... Integración de metadatos para Windows Explorer en plataformas MS Windows. Desarrollo de aplicaciones cliente mediante el API C/C++ de Perforce.

• •

• •

Todo ello, sin contar además con el excelente soporte de formatos gráficos integrado que permite la visualización directa así como la integración con productos de terceras partes como Adobe Photoshop, Maya, Autodesk 3D o Softimage XSI.

Además, la base de datos que actúa como Fast System backend está integrada en el servidor y po- De forma análoga a los sistemas de control de see capacidades transaccionales o de journa- versiones como CVS y Subversion, Perforce lling, que permiten la recuperación inmedia- incorpora también las operaciones de checkta frente a fallos espúreos de índole física con control de acceso de usuarios (UAC) basado en vistas, puntos de control implementados mediante ficheros ASCII para facilitar el seguimiento e incluso soporte de autentificación externa para LDAP y Microsoft Active Directory. Como colofón al abanico de prestaciones del producto, y pensando exclusivamente en los desarrolladores, Perforce SCM Fast System permite además: in y check-out con ligeras modificaciones en cuanto a terminología. • • Sync: Transferencia de los ficheros desde el repositorio hasta el workspace local, Submit: Transferencia de los ficheros desde el workspace de usuario al repositorio, Revert: Descartar las modificaciones realizadas sobre las copias locales en el workspace.

Operaciones en Perforce SCM

tura cliente-servidor escalable y multiplataforma descrita en la Figura 3 que integra como backend una base de datos. Este enfoque facilita notablemente las operaciones de mantenimiento y administración así como el desarrollo distribuido, eliminando las dependencias no solamente del sistema operativo sino también de las herramientas empleadas en el proceso de desarrollo. Tal es así que se ofrecen tres tipologías de clientes Perforce: • • • Cliente en línea de comandos (CLI). Cliente visual. Cliente WWW.

disponibles para plataformas GNU/Linux, Unix, OpenVMS y MS Windows.

Capacidades básicas y funcionalidad
Al margen del soporte completo cliente-servidor para plataformas GNU/Linux, FreeBSD, Apple Darwin/MacOS, SunOS, HP-UX e incluso OpenVMS con soporte de internacionalización Unicode, a nivel operativo Perforce SCM Fast System ofrece las siguientes prestaciones en las operaciones básicas: • Transacciones atómicas, para eliminar el peligro de corrupción en operaciones de tipo sync (commit). Permite operaciones de checkout concurrentes o de carácter exclusivo, así como soporte pleno de etiquetado de versiones de CIs. Modelo de branching interfichero único Figura 2. Modelo general de gestión de cambios de software e ilimitado para el desarrollo paralelo.

www.lpmagazine.org

65

w

para programadores Gestión de Configuración Software (SCM) en sistemas GNU/Linux con Perforce
Resulta interesante resaltar el salto cualitativo que supone el paso de una herramienta CVS a otra de carácter SCM con la incorporación de operaciones undo; inexistentes en estos productos e incluso en otras herramientas comerciales destinadas a la gestión de configuración de software. que crea en primer lugar la base de datos materializada en un conjunto de 21 ficheros mostrados a continuación. Es muy importante arrancar el servidor Perforce en el mismo directorio en el que está ubicado éste, puesto que los ficheros que albergan la base de datos se crean en este directorio siempre y cuando el servidor P4D detecte que éstos no existen aún.
$ ls db.* db.archmap db.depot db.integed db.rev db.revsx db.working db.change db.domain db.label db.revcx db.trigger db.changex db.have db.locks db.revdx db.user db.counters db.integ db.resolve db.revhx db.view

Perforce en sistemas GNU/Linux
Instalación y configuración del servidor
Una instalación mínima de Perforce SCM Fast System requiere la descarga de forma gratuita y sin necesidad de registro para sistemas GNU/Linux desde la URL http: //www.perforce.com/perforce/downloads/ linux26x86.html para un kernel 2.6 en arquitecturas IA32. En el caso del servidor P4D, una vez obtenido este fichero, únicamente es necesario crear un directorio en el que se albergará éste, junto con los ficheros de la base

Figura 4. Autentificación de usuario en el cliente P4V
servidor Perforce está atendiendo peticiones. Este proceso puede consolidarse mediante la utilización de las variables de entorno P4PORT, P4CLIENT, y P4USER.

Instalación y configuración de los clientes Perforce

Empezaremos en primer lugar por el cliente Únicamente es preciso, en distribuciones con P4 orientado a línea de comandos. Una vez reacapacidades de cortafuegos activadas, asegu- lizada su descarga, es necesario realizar los si-

de datos Perforce y establecer el permiso de rarse que el puerto utilizado está abierto al guientes pasos en un directorio de nueva creaejecución sobre el mismo. tráfico TCP/IP con lo cual, el proceso queda ción destinado a albergar a los clientes CLI, concluido. GUI y Web.
$ mkdir Perforce $ cp p4d Perforce $ chmod +x p4d

Clientes Perforce

Debido a que por defecto, P4D utiliza el puerto 1666/tcp, la instalación y arranque puede realizarse con un usuario no UID=0 una vez ubicados en el directorio de instalación:
$ cd Perforce $ nohup ./p4d &

• Desde la perspectiva del desarrollador, Perforce se comporta como un sistema de revisión de versiones (RCS) en el cual, el desarrollador • sincroniza (sync) ficheros con el repositorio o depot, y los modifica en su equipo local dentro de su workspace mediante la utilización de los clientes Perforce orientados a línea de comandos, GUI o WWW. Por este motivo, para poder trabajar con el servidor, se precisa únicamente conocer la dirección IP y el puerto en el cual el

Establecer el permiso de ejecución del cliente P4:
$ chmod +x p4

Definir la variable de entorno P4CONFIG en los ficheros .profile para los intérpretes de comandos Korn/Bash o derivados:

P4CONFIG=$HOME/.p4config

o bien, en entornos con C-shell:
setenv P4CONFIG $HOME/.p4config

export P4CONFIG

Figura 3. Arquitectura general de Perforce SCM Fast System

66

Linux+ 5/2007

w
Perforce admite la utilización de ficheros de configuración mediante la especificación de un fichero mediante la variable de entorno P4CONFIG, • Editar el fichero .p4config y definir como mínimo las variables P4PORT y P4CLIENT, que reflejan el puerto TCP en el que está escuchando peticiones el servidor P4D y el workspace cliente utilizado por el usuario:
P4PORT=1666 P4CLIENT=ws_1

para programadores Gestión de Configuración Software (SCM) en sistemas GNU/Linux con Perforce

Figura 6. Correspondencia entre depots y workspaces

El fichero de configuración definido por la variable P4CONFIG admite las variables recogidas en la Tabla 1. Una vez concluidas estas operaciones, es el momento de verificar el funcionamiento del cliente P4 mediante la ejecución del comando p4 info tal y como se muestra en el Listado 1. para una conexión del cliente directamente en el servidor Perforce.

lugar un superusuario interno con capacidad $ p4 passwd t602010 para arrancar, parar y administrar el servidor. Enter new password:
Re-enter new password: $ p4 protect Password updated.

que edita el fichero de configuración con las Ahora el comando p4 protect no se puede ejeentradas: cutar sin especificar la clave de superusuario:
Protections: write user * * //... super user t602010 * //... $ p4 -P su_passwd protect

A continuación es preciso establecer un espacio en disco adecuado a nuestras necesidades. Primeros pasos con Perforce Es de vital importancia definir un usuario, ya Una vez verificado el correcto funcionaUna vez configurados cliente y servidor, es que por defecto cualquier usuario de nuestro miento del cliente, es el momento de crear preciso en primer lugar proceder a inicializar el servidor GNU/Linux podría convertirse de nuestro entorno de trabajo mediante la realientorno del servidor P4D, definiendo en primer facto en superusuario del servidor P4D: zación de las siguientes operaciones: • Creación de un usuario Perforce en la tabla Protections mediante el comando:
$ p4 user -f p4user User: p4user Email: p4user@ares FullName: Jose B. Alos

y crear acto seguido un grupo denominado p4users e incluirlo en éste mediante la sucesión de comandos:
$ p4 group p4users $ p4 protect Protections: write group p4users * //... super user t602010 * //... p4user mediante el comando:

Establecer una clave de usuario para

como superusuario Perforce. Una vez concluidos estos trámites, el usuario puede efectuar la conexión al servidor mediante el comando:
$ p4 -u p4user login Enter password: User p4user logged in.

$ p4 passwd

Figura 5. Ventana principal del cliente visual P4V

Ahora ya es posible utilizar el cliente P4 o mejor aún, el cliente visual P4V y conectarse con el usuario Perforce p4user ejecutando el comando $ p4v & que provocará la aparición en nuestro servidor X11 del cuadro de diálogo mostrado en la Figura 4.

www.lpmagazine.org

67

w

para programadores Gestión de Configuración Software (SCM) en sistemas GNU/Linux con Perforce
Todos estos resultados pueden obtenerse de ser utilizado por el cliente, debe materializaruna forma más intuitiva mediante el cliente se en una estructura de ficheros y directorios. visual p4v. Por supuesto, es posible disponer en un mismo workspace de ficheros y directorios Primeros pasos con Perforce. pertenecientes a varios depots para usuarios Operaciones básicas que estén trabajando con varios proyectos de Una vez creado el usuario p4user, es el mo- software simultáneamente. mento de hacer uso de éste e iniciar sesión con el servidor Perforce P4D. Para ello, es Creación de workspaces e importación preciso iniciar la sesión con el servidor P4D de ficheros y directorios y crear un workspace cliente, que será utiliza- A fin de facilitar las tareas y evitar la proliferado por defecto. Utilizando el cliente orientado ción de opciones de usuario en la línea de coa comandos: mandos, conviene establecer adecuadamente las variables de entorno necesarias en el fiche$ p4 -u p4user login ro $HOME/.p4config para ganar en agilidad Enter password: a la hora de trabajar con la herramienta. User p4user logged in. Establecer el workspace de trabajo ws_1 mediante la variable de entorno P4CLIENT crear una especificación del workspace cliente en el fichero .p4config. e introducir la variable de entorno P4CLIENT a ws_1 en el fichero de configuración $HOME/ P4CLIENT=ws_1
.p4config apuntado por la variable de entor-

Listado 3. Adición del fichero main.c a la changelist
Change 1 created with 1 open file(s). Submitting change 1. Locking 1 files ... add //project_C/main.c#1 Change 1 submitted.

Una vez realizada la autentificación de forma satisfactoria, aparece la pantalla principal de la interfaz gráfica de usuario tal y como se visualiza en la Figura 5. En el que por defecto, aparece el depot raíz. Ahora es posible crear un nuevo depot como superusuario Perforce mediante el comando:
$ p4 depot project_A Depot depot 2007/02/12 local depot/ ... 'Default depot' Depot project_A 2007/02/13 local project_A/... 'Created by t602010. '

no

$ p4 -u p4user client

Ahora es posible añadir ficheros al depot desde el workspace cliente; así, una vez creado el fichero main.c
$ cd $HOME/project_C $ p4 -u p4user add //project_C/main.c //project_C/main.c#1 - opened for add

El estado de los depots en el servidor puede en un fichero de texto editable mediante vi(1) visualizarse mediante el comando p4 de- dado en el Listado 2, teniendo en cuenta que pots. el campo Client y Root, referentes al workspace cliente y el directorio local en el cual se $ p4 -u p4user depots almacenan los ítem son obligatorios. Depot depot 2007/02/12 local depot/ Es preciso, llegado a este punto, estable... 'Default depot' cer una correspondencia entre las asignaDepot project_A 2007/02/13 local ciones o maps entre depots y workspaces. Así, project_A/... 'Created by t602010. ' considerando el ejemplo precedente dicha Depot project_B 2007/02/13 local relación se muestra en la Figura 6. project_B/... 'Created by t602010. ' Habida cuenta que el directorio raíz en el Depot project_C 2007/02/13 local equipo cliente ares es ws_1 y su directorio raíz project_C/... 'Created by t602010. ' es /home/t602010 y un depot P4D para poder
Listado 4. Adición de ítem al depot //Project_C
$ p4 -u p4user add //project_C/docs/README //project_C/docs/README#1 //- opened for add $ cd .. $ ls docs main.c Makefile $ p4 -u p4user submit Change 2 created with 2 open file(s). Submitting change 2. Locking 2 files ... add //project_C/Makefile#1 add //project_C/docs/ //README#1 Change 2 submitted.

por supuesto, pueden añadirse más ficheros antes de realizar la incorporación de éstos al depot, mediante la reiteración de esta operación. Enviar el fichero seleccionado al depot //Project_C del servidor Perforce mediante la operación p4 submit.
$ p4 -u p4user submit

Figura 7. Lista de cambios asociada al fichero main.c

68

Linux+ 5/2007

w

para programadores Gestión de Configuración Software (SCM) en sistemas GNU/Linux con Perforce
del equipo de desarrollo teniendo en cuenta que los privilegios asignables variarán según la función a desempeñar por éstos. • • • Desarrolladores, Integradores, Verificadores.

Evidentemente, la labor en la que nos vamos a centrar es en el trabajo de los desarrolladores. Para la utilización en una actividad normal de desarrollo de un proyecto almacenado en un depot se requieren satisfacer las siguientes secuencias de pasos conducentes a disponer de la imagen local del/de los depots deseados en el equipo local; esto es, disponer de un workspace cliente. • • • • Establecer el workspace cliente a utilizar, Obtener los ficheros deseados desde el depot asociado a este workspace, Realizar las modificaciones pertinentes sobre estos ficheros, Remitir los ficheros modificados al depot asociado

Figura 8. Descripción del depot //project_C después de la adición de main.c

que hace aparecer una lista de cambios o changelist asociada al fichero ilustrada en la Figura 7. Una vez salvado el contenido de la changelist, permite consolidar la primera versión del fichero main.c en el depot //project_C con una lista de cambios asociada tal y como muestra el Listado 3. Esta operación puede realizarse también con el cliente P4V de una forma más intuitiva, pero antes de realizar la operación submit, que alojará la revisión inicial del fichero main.c en el depot //project_C del servidor Perforce, es preciso crear una lista de cambios -changelist- que deje constancia de la operación realizada. En cualquier caso, una vez realizada la operación, la visión del ítem incorporado al depot aparece en la Figura 8. Esta misma operación puede realizarse con todos los ficheros que van a formar parte de la revisión inicial de un determinado proyecto de software, de forma que podamos disponer de una estructura completa del mismo. Así, para incorporar los ficheros Makefile y docs/README, asociados a este proyecto, basta con ejecutar la siguiente secuencia de comandos recogida en el Listado 4. Esta adición múltiple se materializa mediante una única changelist en la que aparecen reflejados los dos ficheros incorporados y que pueden visualizarse cómodamente mediante el cliente visual P4V tal y como se muestra en la Figura 9. En estas condiciones, se dispone ya de la revisión inicial de un proyecto de software

gestionado por Perforce SCM Fast System y que permitirá conducir todos los aspectos relacionados con el ciclo de vida del desarrollo de acuerdo a las características y prestaciones proporcionadas por los sistemas SCM.

El ciclo de desarrollo de software

Para ello, sera necesario que el usuario establezca una serie de variables en el fichero de configuración apuntado por la variable de entorno P4CONFIG especificando el servidor Perforce a utilizar, su usuario y el workspace cliente.

La utilización colaborativa de un proyecto de software gestionado mediante Perforce P4PORT=ares:1666 requiere en primer lugar de la definición de P4USER=p4user usuarios para cada uno de los componentes CLIENT=ws_dev

Figura 9. Changelist correspondiente a los ficheros Makefile y docs/README

www.lpmagazine.org

69

w

para programadores Gestión de Configuración Software (SCM) en sistemas GNU/Linux con Perforce
En el supuesto de que no se hubieran deshecho los cambios, es posible remitir los cambios realizados al repositorio o depot del servidor P4D asociado al workspace ws_dev mediante la operación p4 submit tal y como se indica a continuación:
$ p4 submit Change 3 created with 1 open file(s). Submitting change 3. Locking 1 files ... edit //project_C/main.c#2 Change 3 submitted. $ p4 diff main.c ==== //project_C/main.c#1 - /home/ t602010/project_C/main.c 1a2 > #include <stdlib.h> 6a8 > printf("Another dummy line to test edit features under SCM Perforce\n");

Listado 5. Contenido del workspace cliente ws_dev
$ ls -lR .: total 16 drwxrwxr-x 2 t602010 t602010 4096 Feb 18 12:51 docs -r--r--r-- 1 t602010 t602010 110 Feb 18 12:51 main.c -r--r--r-- 1 t602010 t602010 76 Feb 18 12:51 Makefile ./docs: total 4 -r--r--r-- 1 t602010 t602010 38 Feb 18 12:51 README

De acuerdo con los cuatro puntos recogidos anteriormente el primer paso será crear el workspace cliente ws_dev. $ p4 clientA continuación, ejecutando el cliente visual P4V, con los valores de conexión citados anteriormente, aparece un cuadro de diálogo ilustrado en la Figura 10 que faculta para obtener una copia local de los ficheros integrantes del workspace cliente en el equipo local. Y así obtenemos una copia de los ficheros de dicho depot con permisos de lectura. De este modo, puede iniciarse la actividad propia del proceso de desarrollo de software concerniente en la realización de cambios y modificaciones sobre los ficheros afectados.

te las changelist, que se numeran de forma Es posible también deshacer los cambios correlativa. realizados mediante la operación p4 revert, Hasta aquí se ha descrito en una imagen no presente en los sistemas RCS descritos simplificada el núcleo de actividades a realianteriormente. zar por un desarrollador sobre un proyecto de software gestionado mediante Perforce. $ p4 revert main.c Puesto que en la práctica, la realidad suele //project_C/main.c#1 - was edit, presentar situaciones más complejas en las reverted cuales intervienen varios desarrolladores o equipos involucrados, es preciso realizar Dicha operación vuelve a establecer el modo una breve introducción a estas prácticas Modificación, análisis y remisión solo-lectura para el fichero main.c, por lo que y analizar la gestión de bloqueos así como de cambios la realización de modificaciones ulteriores, la resolución de conflictos ocasionados por Partiendo de la copia local del depot solicitado requiere la repetición del proceso de edición una actividad concurrente en el proceso de mediante el workspace cliente ws_dev, es posi- completo. desarrollo. ble iniciar la actividad de desarrollo mediante la utilización de Perforce. Para ello es preciso en primer lugar activar el modo de edición de los ficheros a modificar.
$ p4 edit //ws_dev/project_C/main.c //project_C/main.c#1 - opened for edit

La apariencia visual que observará un usuario de la herramienta P4V tras la realización de estas operaciones se plasma en la Figura 11, en la que pueden apreciarse los cambios realizados a lo largo de la vida del proyecto albergado en el depot //project_C median-

Ahora puede editarse el fichero seleccionado y realizar los cambios pertinentes. Dichos cambios pueden ser contrastados con los existentes en el depot del servidor P4D mediante la operación p4 diff tal y como se muestra a continuación:

Figura 10. Cuadro de diálogo para la obtención de una copia local de workspace

Figura 11. Descripción final del depot //project_C

70

Linux+ 5/2007

w
Tabla 2. Permisos y privilegios en Perforce SCM Fast System Nivel list read open Descripción

para programadores Gestión de Configuración Software (SCM) en sistemas GNU/Linux con Perforce

Es posible ejecutar comandos que permiten visualizar metadatos Perforce aunque no se pueden ver ni modificar los contenidos de los ficheros. El usuario puede visualizar metadatos y leer ficheros mediante comandos como p4 client o p4 sync A los permisos read, se añade la capacidad de abrir y editar ficheros de un depot en un workspace, pero no permite su reescritura en el depot mediante p4 submit ni el bloqueo mediante p4 lock. Además de los permisos open, write permite añadir y eliminar ficheros en el depot. Este nivel permite el uso de todos los comandos Perforce con la única excepción de p4 protect, depot, obliterate y verify. aceptar los cambios propios en detrimento de los realizados por otro usuario, proceder a la inversa o incluso unificar (merge) los dos ficheros modificados en un único fichero que será remitido al depot. Este enfoque es conocido como three-way merge process y se ilustra en la figura adjunta.

Listado 6. Especificaciones de la branch project_C-rel-1-0
Branch: project_C-rel-1-0 Update: 2007/02/22 00:11:32 Access: 2007/02/22 00:11:32 Owner: p4user Description: Created by p4user. Options: unlocked View: //project_C/... //project_C/ rel_1_0...

Write

Estrategias de colaboración y resolución de conflictos
Generalmente, en grandes proyectos de software no existe un único usuario trabajando con la totalidad de los ítem de un proyecto, y en muchas ocasiones, pueden existir varios usuarios trabajando sobre un mismo conjunto

de ficheros. Por ello resulta interesante desLas diferencias entre versiones son ges- misos para consultar todos los ficheros del cribir de forma sucinta las operaciones que tionadas de forma independiente por Perforpueden tener lugar en este contexto. ce mediante la definición de la variable de entorno PDIFF con las operaciones p4 resolve Terminología • Sincronizar el workspace definido con el y p4 diff. • Item Configurable (CI): Entidad lógirepositorio para obtener un fichero o conca mínima en un proceso de gestión junto de ficheros almacenados en el de- Permisos y usuarios en Perforce de configuración de software y que pot. Perforce SCM Fast System cuenta con un sispuede descomponerse en varios $ p4 sync -f //project_C/main.c#1 tema de autentificación integrado basado en CIs. //project_C/main.c#1 - updating / claves de acceso, que garantizan el acceso du• Baseline: Entidad lógica que señala el home/t602010/project_C/main.c rante un tiempo ilimitado o tickets, que limipunto de finalización de una actividad sync complete. 1 file affected. tan éste. y el inicio de otra dentro de un sistema La opción [-f] permite realizar la sincroLa filosofía de permisos está orientada de gestión de software. nización en el supuesto de que se haya a las operaciones básicas de una herramienta • Integración: Proceso consistente en borrado la copia local del fichero solicita- SCM, siendo estos acumulativos; es decir, crear nuevos ficheros a partir de unos do. cada uno de ellos incluye también a los preya existentes o propagar los cambios • Resolución de conflictos. En el caso de cedentes tal y como se muestra en las Tablas de una colección de ficheros a otros que dos usuarios editen el mismo fiche- 2 y 3. (merging). ro simultáneamente, y los cambios introEn cuanto a los niveles de privilegios • Branch: Ramificación de un proyecto ducidos por uno de ellos interfieren con empleados descritos en la Tabla 3 y definide software asignable a un equipo de otros realizados en un instante anterior dos con propósitos de administración, se tiedesarrollo en un sistema de Control del ciclo de desarrollo, Perforce requiere nen. de Configuración. que una changelist sea remitida y no perUn ejemplo de aplicación de permisos es • Merging: Proceso de reunificación de mitirá, debido al carácter atómico de és- el siguiente: una rama con el árbol de desarrollo tas, que dos changelist que afecten al principal de un sistema de Control de mismo fichero aparezcan en el depot. read user * 195.42.39.17 //... Configuración. write user p4user 195.42.39.17 // • Depot: Repositorio asignable a una parLa resolución de conflictos es una de las fa- project_C te o subsistema asociado a proyectos cetas más brillantes de Perforce SCM Fast read user p4user * //... de desarrollo de software. Es una verSystem, ya que éste permite decidir entre super user t602010 //... sión mejorada del concepto de reposiTabla 3. Privilegios y permisos de administración en Perforce torio en sistemas RCS. review Este nivel está concebido con propósitos de monitorización para revisar los procesos • Release: Conjunto de CIs asociados demonio mediante el comando p4 review. a un proyecto de software y destinados admin Concede los permisos de administración sobre los metadatos Perforce pero no sobre a su puesta en producción. Generalla operación del servidor, incluyendo los niveles write y review. mente, una release viene caracterizasuper Da permisos totales de administración para gestionar depots, usuarios, grupos da a través de una baseline. y triggers.

Las tres primeras líneas afectan al usuario p4user, cuyo workspace cliente utilizado está especificado en la dirección IP 195. 42.39.17. De este modo, ella puede escribir ficheros ubicados en el depot //project_C y en cuando a lectura posee per-

www.lpmagazine.org

71

w

para programadores Gestión de Configuración Software (SCM) en sistemas GNU/Linux con Perforce

//project_C/rel_1_0docs/README#1 branch/sync from //project_C/docs/ README#1 //project_C/rel_1_0main.c#1 - branch/sync from //project_C/ main.c#1,#2

que utiliza el fichero de especificaciones descrito en el Listado 6 como requisito previo. Una vez finalizado el procedimiento de creación, el cliente visual muestra la apariencia recogida en la Figura 12. que representa la totalidad de los ficheros seleccionados para la ramificación o branch utilizada para la release 1.0 del proyecto almacenado en el depot //project_C y que ha servido como ejemplo a lo largo del presente artículo. La propagación de cambios es un aspecto más complejo que por falta de espacio no

Figura 12. Creación de la branch project_C-rel-1-0

servidor Perforce. De este modo, una ope- development branch (rama de desarrollo), que va a ser contemplado y que permite el aproración como: pueden ser utilizados para: vechamiento integral de las capacidades brindadas por Perforce en la gestión del ci$ p4 -u p4user edit //project_C/main.c • Crear ramas de desarrollo para cada re- clo de desarrollo de sistemas complejos melease del software e integrar cambios pa- diante las operaciones p4 integrate y p4 estaría permitida, mientras que si intenta efecra el control de nuevas funcionalidades y resolve. tuar la operación sobre otro depot diferente eliminación de errores. obtendrá un error al carecer de privilegios • Etiquetar los ficheros necesarios en el Etiquetas en Perforce para ello. Sin embargo, si intenta sincronizar proceso de construcción de una nueva Las etiquetas o labels en Perforce son elemenlos contenidos de su workspace cliente con release del software. tos lógicos asimilables a los tags presentes en los del depot ubicado en el servidor: CVS o Subversion y que permiten asignar un Considerando el depot como un repositorio en nombre a un conjunto de revisiones de fiche$ p4 -u p4user sync //project_C/main.c el que pueden coexistir varios proyectos de ros distintos necesarios para satisfacer un software, resulta lógico crear un subdirecto- objetivo, como por ejemplo una release del puesto que sólo se requieren permisos de rio o codeline para cada proyecto en lugar de software o un estado de desarrollo. lectura, la operación se efectuará correcta- aplicar el enfoque tradicional de los sistemas Su utilización es más sencilla que las mente. Del mismo modo, si intenta trabajar RCS de crear un depot para cada proyecto a fin codelines y branches descritas anteriormente con otro equipo que no posea la dirección de recuperar el contexto de desarrollo de sis- y permiten en cierto modo, la emulación de IP recogida, la operación edit fallará debido temas en el cual las herramientas y procesos las baselines. En nuestro caso, para etiquetar a que éstos están adscritos a la dirección SCM encuentran su marco natural. A título las últimas versiones de nuestro proyecto de 195.42.39.13. de ejemplo se describen las operaciones ne- ejemplo almacenado en el depot //project_C cesarias para crear una codeline de desarrollo Aspectos avanzados. Codelines que va a ser empleada para la release 1.0 del e integración proyecto confinado en el depot //project_C. Acrónimos y abreviaturas El concepto de baseline o línea base aparece recogido en ISO/IEC 498 y es con diferencia • Crear una rama para albergar la release • CC: Configuration Control, uno de los más importantes dentro de la inicial de nuestro proyecto, v. gr. rel_1_0. • ECM: Engineering Change Proposal gestión de configuración de software (SCM) $ p4 branch project_C-rel-1-0 o Propuesta de Cambio de Ingeniería, y su necesidad viene justificada de forma Branch project_C-rel-1-0 saved. • RCS: Revision Control System, inmediata. Imagínese un proyecto integrado que crea un fichero de especificaciones • RDBMS: Relational Database Manapor multitud de ficheros con diferentes vercon el contenido recogido en el Listado 6. gement Server, siones y modificaciones no coincidentes en el • A continuación, la creación efectiva de la • SCCS: Source Code Control System, tiempo. A la hora de realizar una nueva verramificación project_C-rel-1-0 se efectúa • SCM: Software Configuration Managesión para incorporar nuevas funcionalidades mediante el comando: ment, a éste, ¿cómo identificar las versiones de los $ p4 integrate -b project_C-rel-1-0 • SCM: Software Configuration Manageficheros con los cuales se desea trabajar? A tal //project_C/rel_1_0Makefile#1 ment, efecto, Perforce incorpora una aplicación del - branch/sync from //project_C/ • SVN: Subversion. concepto de baseline denominada codeline o Makefile#1

72

Linux+ 5/2007

w

para programadores Gestión de Configuración Software (SCM) en sistemas GNU/Linux con Perforce
werks CodeWarrior de cara a facilitar el trabajo de los desarrolladores. Incluso incluye un API C/C++ para la programación de actividades encaminadas a definir un modelo de proceso diferente. Además, Perforce incluye un servidor HTTP denominado p4web que, por defecto atiende las peticiones en el puerto 5500/tcp cuyas prestaciones y funcionalidades son similares a la del cliente visual P4V, lo que garantiza tanto la posibilidad de acceso independiente de la plataforma así como la falta de necesidad de instalar un cliente dedicado, ya que este papel será desempeñado por un navegador tal y como se muestra en la Figura 13. Otro aspecto a descubrir es la capacidad de generación de informes mediante la utilidad P4Report, que permite también en este caso prescindir de herramientas de terceras partes como Crystal Reports para la mayor parte de las aplicaciones. En cualquier caso, se hace patente que el aprovechamiento de las numerosas capacidades proporcionadas por Perforce de cara a la implantación de un sistema SCM de carácter empresarial, requiere el estudio de la documentación proporcionada de forma gratuita por el proveedor en http://www. perforce.com/perforce/technical.html así como la consulta de los foros de discusión presentes en Internet, siendo la pretensión de este artículo la introducción de los usuarios interesados en la gestión de configuración de software a una herramienta alternativa a otras de carácter comercial, con unas prestaciones y costes realmente competitivos.

Figura 13. Cliente HTTP de Perforce SCM Fast System con la denominación rel-1-0 debe ejecutarse el Conclusiones comando: Dentro de la familia de herramientas y suites destinadas a la gestión de la configura$ p4 tag -l rel-1-0 ción de software (SCM), Perforce se presen//project_C/... ta como una alternativa multiplataforma, //project_C/Makefile#1 - added rápida, eficaz e independiente de un servi//project_C/docs/README#1 - added dor RDBMS propietario a otros productos //project_C/main.c#2 - added comerciales como Serena PVCS Dimensions o Rational ClearView satisfaciendo las cuatro Las etiquetas aplicadas pueden eliminarse de premisas básicas: forma total o parcial con el comando p4 tag -d -l rel-1-0 y pueden también monito- • Identificación de items configurables (CIs) rizarse para verificar los cambios realizados y definición de componentes de baselia nivel local mediante el comando: nes. • Control de la Configuración (CC) articu$ p4 tag -n -l rel-1-0 //ws_dev/... lando las cuatro fases de inicio, prepa//ws_dev/... - label in sync. ración, evaluación y aprobación de los cambios propuestos. E incluso puede obtenerse una lista de las • Auditoría de la Configuración cuyo objeetiquetas aplicadas a los ficheros de un detertivo es determinar el grado de coherencia minado workspace cliente: del software con su baseline de partida. • Contabilidad de la Configuración, que $ p4 labels permite cuantificar la evolución de un Label rel-1-0 2007/02/18 'Created by sistema complejo integrado por varios p4user.' proyectos de software. Las etiquetas en Perforce simplifican la gestión y localización de líneas base y su generalización permiten una inmediata localización de modificaciones de carácter colectivo a los usuarios del sistema. Perforce además cuenta con amplias posibilidades de integración en entornos de desarrollo integrados (IDE) como Eclipse, MS Visual Studio, WebSphere Studio y Metro-

Referencias en Internet
• Introducción a los sistemas SCM y conceptos generales: http://scm.tigris.org • The Project ACME for Software Development Home Page: http://www.cmcrossroads.com/ bradapp/acme/scm-defs.html • Colección de enlaces y recursos sobre sistemas y conceptos SCM: http://www.rspa.com/spi/SCM.html • Perforce SCM Fast System Home Page: http://www.perforce.com • Serena PVCS Dimensions Home Page: http://www.serena.com

www.lpmagazine.org

73

w

proyectos linux Linux en Argentina

Tuquito 2, un desarrollo argentino
Ariel M. Corgatelli

Tuquito-2 es una distribución GNU/Linux que implementa la tecnología livecd (funciona desde cd), esto permite al usuario tener en su computadora un sistema completo en cuestión de minutos, con todo el software y hardware configurado y listo para usar, sin necesidad de modificar en absoluto la computadora, ganando tiempo a la hora de realizar tareas concretas.

E

l uso de Tuquito no requiere de asistente (wizard) más que intuitivo. Algunas vídeo, Amsn para el acceso a las redes MSN, ningún nivel de experiencia, está de sus características son: detección automá- soporte para tecnología disponible en equidestinado a todo tipo de usuarios. tica de los discos rígidos de nuestra compu- pos portátiles (ACPI, PCMCIA, CPUFREQ, tadora dejándolos disponibles en nuestro escritorio con tan solo un clic, soporte de impresoras de varios modelos antiguos y nuevos, soporte de scanners gracias a xane, soporte de webcams incluyendo los modelos de Intel, Genius; acceso a cdroms, diskettes, con un clic en el escritorio, detección automática de cámaras digitales, pendrives, dispositivos hotplugs (usb), compatible con archivos de MSOFFICE soportando los sistemas de archivos de Windows (Fat32 - NTFS). Cuenta con las clásicas herramientas: Firefox como browser, Evolution como organizador personal más el cliente de correo; Quanta, excelente editor de programación, Mplayer que es uno de los mejores reproductores de hibernación,etc.), soporte para la escritura en sistemas de ficheros NTFS, soporte para la conexión a Internet con winmodems (los más comunes), soporte para la conexión a Internet con modems para ADSL (ethernet), software para compartir conexión a Internet a otras computadoras, soporte para conexiones de red inalámbricas (WIFI), recursos compartidos mediante SAMBA, conexión remota de escritorio y escritorio compartido, soporte y software para la sincronización de Palms / PDA, soporte de webcam en clientes de mensajería (AMSN, Kopete), implementación de una nueva consola en el escritorio accesible presionando la tecla [F12], administración de usuarios mediante Kuser, administración de paquetes de sistema mediante Kpackage, integración con el escritorio para la emulación de aplicaciones para sistemas Ms-Windows mediante Wine, software para descarga de archivos (Gestor de descarga, FTP, clientes P2P, torrents), inclusión de Udev para la detección de dispositivos, supresión de SuperMount, implementación de UnionFs (Modo LIVECD) y muchas más opciones disponibles. Como browser vamos a encontrar al popular Firefox en su versión 1.5, que es factible actualizarla sin mayores problemas por supuesto, recordemos que hablamos de una distribución basada en Debian.

También puede instalarse en tu computadora mediante dos tipos de instalación, Completa o Básica, teniendo todo configurado y listo en el disco rígido en un tiempo mínimo. Tuquito cuenta con 2 Gigabytes de aplicaciones en un CD común de 650 Megabytes, con una amplia selección de paquetes en las áreas de ofimática, ingeniería, multimedia, Internet, programación y ciencias. La estética instantánea de Tuquito, permite disfrutar de un sencillo y amigable entorno de trabajo. En la Figura 2 vemos el nuevo panel de instalación en donde la misma se realizará de forma gráfica desde el comienzo y con un

Primeros pasos con Tuquito GNU/Linux

Figura 1. Bienvienido a Tuquito

Para utilizar Tuquito-2 GNU/Linux, se debe bootear, inicializando nuestra computadora desde el cd. Si la opción de booteo no se encuentra disponible la podemos habilitar desde el Setup (Bios) de nuestra computadora.

74

Linux+ 5/2007

w
Una vez inicializado el cd, dispondremos de un menú con varias opciones para distintas formas de arranque y configuración. También podremos configurar el hardware para un correcto arranque, llegado el caso de que no lo detectara automáticamente. Las opciones principales son:

proyectos linux Linux en Argentina

Instalación de Tuquito-2 GNU/Linux

Para instalar Tuquito-2 GNU/Linux podremos seleccionar la opción INSTALAR, la cual se desarrollará en tres etapas para poder realizar la explicación de una manera más clara y didáctica.

Normal
Realiza un arranque con una configuración del sistema y hardware automática. Por ejemplo: resolución gráfica 1024x768, detección automática de vídeo, audio, red, etc.

Primera Etapa
Instalación automática e instalación manual: El tipo de instalación automática es recomendada para usuarios de mínimos conocimientos, en donde casi todos los pasos son automáticos, con la única salvedad de realizar en todos los casos el particionamiento de forma manual con cfdisk, luego la detección del hardware y configuración de menú de inicio (grub) se realiza de forma automática. Sobre la instalación manual, es recomen-

Figura 3. Tal cual lo dijimos, insertamos una cámara digital en nuestro equipo con Tuquito 2 y la misma fue detectada de forma automática siendo montada en nuestro escritorio
Una vez creadas las particiones debemos guardar los cambios (Escribir) y salir del programa de partición (Salir).

SafeMode
Esta opción arranca el sistema con una configuración genérica, que deberá arrancar en el caso en que se llegase a tener problemas con las otras opciones. Por ejemplo: resolución grá-

fica 800x 600, driver de vídeo genérico (VESA), dada para usuarios con conocimientos avan- Tercera Etapa se lo recomienda para computadoras anti- zados ya que deberá pasar por varias fases de En esta etapa, podremos elegir dos tipos de guas. configuración. instalación completa o básica. Para realizar la instalación completa deInstalar Segunda Etapa bemos contar con un espacio mínimo de 2 GB Desde esta opción podremos instalar Tuqui- La segunda etapa consiste en modificar la libres en donde se copiará todo el contenido to-2 GNU/Linux en la computadora. En las tabla de particiones para alojar Tuquito. de aplicaciones en nuestro equipo, y en lo otras opciones, Tuquito funciona en modo Para ello deberemos crear dos particiones que se refiere a la instalación básica como su LIVECD. con un programa (cfdisk) que ofrece la insta- palabra lo indica es bien básica, incluyendo También se encuentran los sub-menús lación. los paquetes clásicos que encontraremos en que contienen opciones predefinidas, con las Las particiones a crear son las siguientes: cualquier distribución Linux tal como browcuales podremos personalizar un poco más ser, evolution, kopete, son solamente algunos su arranque en modo livecd o instalación. • Linux Swap de ellos, siendo posible luego realizar la insDichas opciones son completamente editalación de los paquetes no presentes desde tables, permitiendo combinar todas estas a gus- Esta partición es la denominada de intercam- el sistema de empaquetamiento provisto por to del usuario. bio, utilizada por Tuquito, para agilizar un la distribución. Una vez inicializado con cualquiera de poco más sus tareas siendo la más clásica en Lo que podríamos decir que es muy inteestas opciones, podremos ver en forma de- todas las distribuciones. resante es la operatividad de esta distro con tallada el arranque de Tuquito, presionando Requiere aproximadamente el doble de la integridad de todo el software+hardware, ya [F2]. la memoria RAM. Por ejemplo si se dispone que por ejemplo en lo que se refiere a softUna vez que Tuquito finaliza la detección de 64MB de RAM, la partición Swap debe ser ware instalado si hay algo que no encontray configuración en nuestra computadora, de 128MB. mos instalado con tan solo hacer un clic en el inicializará un entorno gráfico, en donde Para darle este tipo de formato desde el icono correspondiente el mismo sistema se podremos empezar a trabajar. cfdisk debemos seleccionar la nueva parti- encarga en solicitar el cd para la instalación ción creada y darle el tipo de formato Swap, del mismo. eligiendo la opción Tipo y tipeando el núLa nueva versión de Tuquito implemenmero 82. ta muchas mejoras que se hicieron posibles gracias a la colaboración de muchos usuarios • Linux Nativa que aportaron sus experiencias con la primera versión de Tuquito-k (nos manifestó MauEn este tipo de partición se instalará Tuquito ro). Es por esto que la nueva versión de Tucon todos sus directorios, aplicaciones y con- quito, denominada Tuquito 2 (la evolución figuraciones, al crear una nueva partición de la especie), está orientada para los usuadesde cfdisk, ésta ya se crea por defecto del rios de escritorio, priorizando las utilidades tipo Nativa. multimedia como los reproductores de auEl espacio de esta partición dependerá dio y vídeo, como así también las utilidades del tipo de instalación que elegimos (tercera que permiten la interconexión de disposiFigura 2. Componentes de KDE etapa). tivos.

www.lpmagazine.org

75

w

proyectos linux Linux en Argentina

Ariel Corgatelli: Cuéntanos un poco del proyecto Tuquito. Mauro Torres: Tuquito a lo largo de los años creció mas allá de lo que pude imaginar, al principio nació como una solución a un problema específico, después se extendió a las masas y luego, y esto es lo mas interesante de la historia, se transformó en una forma de vida tanto para mí como para muchos tuquiteros (usuarios de Tuquito). Esto se debe a que Tuquito no es solamente una distribución de Linux, va mas allá de eso, Tuquito es una comunidad de personas que quieren mejorar el mundo o por lo menos el lugar que lo rodea, por eso participamos de muchos eventos, proyectos, que creemos beneficiosos para la comunidad. La guerra de la libertad se lucha de muchas maneras, la nuestra es por Tuquito, por el Figura 4. En esta imagen vemos todas las categorías que incluye Tuco, no podemos negar que es muy interesante instalar con tan solo hacer un clic en el software deseado software libre. Ariel Corgatelli: ¿Cuántas personas trabajan para llevar adelante Tuquito y el nuevo proyecto OLPC? Mauro Torres: Actualmente en la comunidad staff de Tuquito contamos con unas 50 personas, repartidas en las áreas de desarrollo, diseño, documentación y difusión. En el actual proyecto Tuquito OLPC formé un grupo fijo de 7 personas onsite (más la comunidad), donde trabajamos 5 horas al día de lunes a viernes, ya que tengo como finalidad poder aportar lo más posible al proyecto porque el futuro de nuestros niños debería ser una obligación de todos. Los miembros del grupo activo son: Mauro Torres, autor y coordinador general. Chris Arenas, Desarrollo y difusión.

Funciones adicionales

Hasta este momento no contamos ninguna novedad para cualquier usuario de Linux en general, pero desde ahora vamos a enumerar las ventajas o funciones adicionales que trae Tuquito 2. Tuquito 2 permite guardar los cambios realizados en un dispositivo extraíble (pendrive), de manera que al iniciar nuevamente el LIVECD tenemos el escritorio tal cual se lo dejó al guardar la sesión, conservando todas las configuraciones realizadas por el usuario, como así también los programas instalados. Contaremos con Tuco como instalador de programas más fácil en donde el usuario podrá instalar programas con unos cuantos clics, sin que esto requiera tener conocimientos de un sistema GNU/Linux, siendo este sistema muy similar a Klik pero nativo y desarrollado por el grupo Tuquito. Tuquito 2, brinda al usuario la posibilidad de elegir usar una distribución 100% libre. Dependiendo de la decisión del usuario, estarán o no disponibles algunas utilidades que no son libres pero que se incluyen para mejorar la adaptación de los nuevos usuarios al sistema. La distribución cuenta con la nueva versión de Garfio (www.garfio.org.ar), la cual implementa nuevas características. Una de las más relevantes es la posibilidad de instalar nuevo software en Tuquito mientras se lo está utilizando como LIVECD. Esta característica, combinada con la utilidad de Guardar Sesión,

añade una mayor adaptabilidad del software al usuario. Merece la pena mencionar también el nuevo script desde el formato gráfico #instalar-tuquito, en donde además de poder usar cfdisk podremos utilizar qtparted siendo este último un front gráfico más simple de utilizar.

Entrevista a Mauro Torres

La entrevista ha sido realizada el día 28 de febrero en Capital Federal (Argentina), luego de la presentación del proyecto OLPC. Además de la entrevista, Mauro Torres nos mostró todas las funciones del prototipo 49 de los • 50 que se encuentran dando vuelta por todo el mundo. •

Algunos Conceptos Previos
Booteo
En informática, el booteo (arranque) es un proceso que inicia el sistema operativo cuando el usuario enciende un sistema informático. En inglés se conoce como booting. Fue traducido del termino en inglés boot, como arranque o inicialización de un ordenador o dispositivo, concretamente suele referirse al arranque del sistema operativo. dio de almacenamiento normalmente CDROM o disquete, de forma temporal a modo de demostración. Generalmente para permitirlo se descomprime una parte en la memoria RAM del ordenador, para usar esta memoria como disco duro virtual, sin necesidad de una instalación. Algunos liveCD vienen con una utilidad que puede instalar opcionalmente, si el usuario así lo desea, el sistema operativo en el disco duro. Fuente: http://www.wikipedia.org

LiveCD
LiveCD es una característica para permitir ejecutar un sistema operativo desde un me-

76

Linux+ 5/2007

w

proyectos linux Linux en Argentina

También estamos trabajando en un panel de control, la nueva versión de Tuco (instalador de paquetes de Tuquito), e infinidades de novedades, realmente estará muy prometedor. Ariel Corgatelli: ¿Qué tipo de apoyo tiene el grupo Tuquito? Mauro Torres: Tuquito actualmente cuenta con el apoyo del gobierno de Tucumán (República Argentina), universidades de distintos países y principalmente con el apoyo de toda la gente de la comunidad. Ariel Corgatelli: ¿Algo más que nos quieras contar? Mauro Torres: Solamente me resta agradecerte Ariel por esta oportunidad de difundir el trabajo que estamos realizando con mucho esmero. Y para terminar me gustaría invitar a todos los interesados a participar de nuestro proyecto Tuquito y Tuquito OLPC, sería muy Figura 5. En esta imagen me encuentro junto a Mauro Torres, en la entrevista realizada en un local de comiinteresante que la comunidad crezca cada das rápidas de Buenos Aires vez más y podamos llevar esta tan adictiva • Gustavo Cortez, Difusión y documentaAriel Corgatelli: ¿Qué diferencia hay entre y sana carrera a la casa de todos. ción. Tuquito y las demás distros basadas en De• Gonzalo Delgado, Desarrollo y progra- bian? Conclusión mación. Mauro Torres: La principal diferencia de Desde hace más de un año me contacté con • Gonzalo Odiard, Desarrollo y programa- otras distribuciones es la usabilidad, es muy Mauro Torres para prestar mi apoyo en Tución sencillo y transparente hacia el usuario ya que quito y de forma automática me vi envuelto • Daniel Córdoba, Desarrollo y programa- apunta a los usuarios finales. en una campaña de envíos gratuitos dentro ción. Otra diferencia muy importante es que de Argentina en donde envié mas de 600 • Nicolás Montoza, Desarrollo y progra- utiliza garfio, otra de las aplicaciones desarro- Cds sin cargo alguno para el destinatario. mación. llada por mí, que le permite a Tuquito bootear De forma casi sorprendente los pedidos se • Claudio Ceballos Paz, Desarrollo y pro- desde livecd y ser instalable, garfio le da a Tu- multiplicaron día a día con lo que tuve que gramación. quito una velocidad mayor en tiempo y ejecu- abandonar dicha campaña. Sin importar esta • David Rodriguez, Desarrollo y adapta- ción desde livecd que otras distribuciones. acción me encontré con un grupo maravilloción del sistema operativo base. Ariel Corgatelli: ¿A qué perfil de usuarios so en donde la meta es el trabajo colaborativo está destinado, y por qué? principalmente, es gente excelente en donde Pueden informarse más del proyecto en Mauro Torres: Tuquito está orientado a los se han puesto una meta que es bien lograda, nuestro blog http://olpcblog.tuquito.org.ar y en usuarios finales, debido a que fue concebida y ésta es ser la distribución argentina más el wiki http://olpc.tuquito.org.ar. en ese ámbito y está totalmente testeada por simple de utilizar con todas las necesidades estos tipos de usuarios. Tuquito es y está he- que cualquier usuario pueda requerir. Con cho para usuario finales. todo me gustaría invitar a todos los lectores Ariel Corgatelli: ¿Qué tipo de cambios de habla hispana a que se descarguen la distraerá la versión 3 de Tuquito? tro y la prueben, es excelente, ésta es mi conMauro Torres: La versión 3 traerá cam- clusión final. bios muy innovadores en el mundo libre, traerá una instalación gráfica muy intuitiva y atractiva (ver screenshot) en donde solamente se instalará Tuquito en muy pocos En la red pasos, contará con lo que llamo sesiones vir- • Sitio oficial de Tuquito: tuales, lo que le permitirá al usuario tener en www.tuquito.org.ar Internet todo su home y aplicaciones insta- • Descarga de Tuquito 2: ladas, entonces con el livecd en la mano en www.tuquito.org.ar/?page_id=60 cualquier computadora con Internet podrá • Miembros que componen el grupo: Figura 6. En esta imagen pueden ver todo el panel tener su configuración, archivos, prograwww.tuquito.org.ar/?page_id=9 de configuración que tendrá Tuquito 3 mas etc...

www.lpmagazine.org

77

w

entrevista Entrevista a Richard Stallman

Entrevista a Richard Stallman
Richard Stallman lanzó el movimiento de software libre en 1983, y en 1984 comenzó el desarrollo de un sistema operativo libre, el sistema GNU. Desde la liberación en 1992 del núcleo Linux, el sistema GNU y el núcleo Linux se usan juntos en la combinación GNU/Linux. Cuando se habla de Linux, usualmente es asunto de esta combinación, GNU con Linux.

Puedo decir que España me gusta mucho, por mis amigos, por los montes, por la comida, por sus edificios antiguos...

Linux+: ¿Cómo y cuándo empezó tu aventura con el Software Libre? ¿Cuáles fueron los principios? Richard Stallman: En 1981 murió mi antigua comunidad de libertad y solidaridad, destruido por la empresa Symbolics. Después, mientras trabajaba para negarle el fruto de su acto de destrucción, busqué una manera de crear de nuevo una buena comunidad libre. Se sugirió este método: desarrollar un nuevo sistema operativo libre. La existencia de este sistema les proporcionaría a los usuarios la libertad y la posibilidad de la solidaridad. Por lo tanto en 1983 anuncié el plan de desarrollar un sistema operativo libre, de tipo Unix. Lo llamé GNU, es decir, GNU No es Unix (un acrónimo recursivo, algo muy divertido para los programadores). Fue también el comienzo del Movimiento del Software Libre. La idea básica del Movimiento de Software Libre es que el software debe respetar la libertad del usuario. Hay cuatro libertades esenciales: •

Libertad 1: libertad de estudiar y cambiar el código fuente del programa, para que haga lo que quieras. Libertad 2: libertad de ayudar a tu prójimo, es decir, de distribuir copias del programa a los demás, cuando quieras. Libertad 3: libertad de contribuir a tu comunidad, es decir, de distribuir copias de tus versiones cambiadas, cuando quieras.

Negarles estas libertades no es ético: todos los programas deben respetarlas. Es decir, deben ser libres. Un programa privativo, que priva de estas libertades al usuario, es un problema social. La meta del Movimiento de Software Libre es corregir este problema: es decir, es la liberación del ciberespacio y de todos sus habitantes. Para respetar siempre la libertad de todos, todo el software debe ser libre. L+: ¿Pensabas que iba a tener tanta repercusión el movimiento del Software Libre cuando lo iniciaste? Libertad 0: libertad de ejecutar el prograRS: Al comienzo, no pensaba más allá ma como quieras. de la meta de desarrollar un sistema opera-

tivo libre. Unos años más tarde, cuando componentes de GNU como por ejemplo GNU Emacs y GCC comenzaron a tener usuarios, pensaba en servir bien a los usuarios. Pero no imaginaba como sería el mundo de hoy. No tengo mucho talento de imaginar el futuro, pero sí el de ver las amenazas actuales a la libertad, y de combatirlas. L+: ¿Cómo aprendiste español, visitas a menudo España o América Latina, tienes algún país preferido? RS: Aprendí español con libros, cuando vi que sería bastante fácil, comenzando con mi conocimiento de francés. Comenzar con libros es el único método que funciona para mí. No tengo país preferido, como no tengo canción preferida ni comida preferida. Hay varios aspectos de un lugar, de una canción, o de una comida, que pueden ser agradables o no. Por lo tanto, no puedo ordenar todos en una sola dimensión. Puedo decir que España me gusta mucho, por mis amigos, por los montes, por la comida, por sus edificios antiguos, y por

78

Linux+ 5/2007

w
la música tradicional como la de La Musgaña. L+: Mucha gente confunde el sistema comexplicar la diferencia entre estas dos cosas? Novell y Microsoft? RS: Es un ataque a la libertad garantizatamiento.

entrevista Entrevista a Richard Stallman
L+: ¿Qué opinas del acuerdo alcanzado entre con nuestra palabra y con nuestro comporEn nuestra comunidad actual, no se dice

pleto GNU/Linux con el núcleo, Linux. ¿Podrías da por la GNU GPL. Hay muchos licencias ni se hace bastante, porque muchos tratan el libres: cada uno respeta las cuatro libertades software privativo como legítimo. RS: El núcleo es uno de los componen- del usuario que reciba un programa bajo ella. Por ejemplo, casi todas las distribuciones tes esenciales de un sistema de tipo Unix. La característica especial de la GNU GPL es de GNU/Linux contienen programas privaEn 1992, el sistema GNU era casi completo: practicar el izquierdo de copia (copyleft, en tivos. ¿Qué dice esta práctica al usuario? de los componentes esenciales, solamente inglés). La GNU GPL exige que cada copia Dicen, con su ejemplo, que el software prifaltaba el núcleo. En aquel año el desarro- distribuida la misma licencia y que cada vativo es legítimo. Si distribuyes un prograllador de Linux, el Sr. Torvalds, cambió uno que reciba un programa ejecutable tam- ma, dices implícitamente que no te parece la licencia de Linux, adoptando la Licen- bién reciba el código fuente. Por lo tanto, inmoral. Casi todas las revistas dedicadas cia Pública General de GNU (GNU GPL) el programa debe ser libre para todos sus al sistema GNU/Linux contienen publicicomo su licencia, (la GPL es una de las li- usuarios. cencias de software libre). Luego Linux dad de programas privativos. ¿Qué dicen al Para asegurar que el programa llega a tus usuario? Dicen, con su ejemplo, que el soft-

fue libre, y pudo llenar el último hueco en manos con las cuatro libertades, tenemos que ware privativo es legítimo. Sugerir el uso de el sistema GNU. La combinación, es de- prohibirles a todos los intermediarios que un programa dice implícitamente que no cir el sistema GNU con Linux o GNU/Li- corten las libertades antes de darte tu copia. es inmoral. nux, es el sistema al que se dedica esta re- Y es lo que la GNU GPL hace. vista. La decisión reciente de Ubuntu de L+: ¿Te parece bien que se incluya parte de promover más aun el software privativo

L+: ¿Has usado alguna vez en tu vida el siste- código privativo (por ejemplo unos drivers para no me sorprendió. Si algún proyecto acepma operativo Windows? En caso afirmativo, ¿hace una tarjeta gráfica), dentro de alguna distribu- ta una vez distribuir el software privativo cuánto que no lo usas? ción, para favorecer el desarrollo de entornos como para cualquier fin, incluso el de ayudar el RS: He usado Microsoft Windows de Beryl? éxito de otros programas libres, lo trata covez en cuando en varios lugares que visiRS: Si alguien da un paso hacia al Mundo mo legítimo. Hacerlo mientras dice o pientaba, pero nunca he sido usuario de Win- Libre, aunque no llegue, puede ser progreso, sa que el software privativo es un prodows. En 1983, cuando decidí desarrollar pero no necesariamente. Sí es progreso si es blema social es una contradicción, por lo GNU, no había Windows. un paso en un viaje que llega al Mundo Libre. tanto usualmente cesa pronto de decirlo L+: ¿Crees que Windows Vista supondrá un Pero si el viaje termina con ese paso, el paso y de pensarlo. Después los desarrolladores paso atrás en el impulso y la importancia del soft- no sirve. del proyecto no verán ningún problema ware libre? ¿Según tu opinión, será el último SO privativo de Microsoft? Un paso parcial probablemente será útil en promover más aun el software privatisiempre que se recuerde el destino del viaje: vo, cada vez que parezca útil para el mero Este camino no llega nunca a la libertad:

RS: No veo el porvenir, pero se ve que el escaparse del software privativo, y usar éxito. propósito de Windows Vista es imponer al únicamente el libre. La idea que el software usuario más Gestión Digital de Restriccio- privativo no es una solución sino el proble- es un fracaso que tenemos que evitar. Nuesnes (DRM en inglés). (Véase badvista.org). ma que corregir no se debe olvidar nunca. tro futuro no es cierto, pero es completamente A muchos no les gusta Windows Vista, lo Para que se recuerde, debemos sostenerlo cierto que los que acepten la legitimidad del que puede convencer a muchos a que migren a GNU/Linux. Pero Microsoft tendrá más poder sobre los usuarios que aceptan Windows Vista. La DRM frecuentemente se respalda con la tivoización. La tivoización es la práctica de construir una máquina de manera que versiones cambiadas del software no puedan funcionar: la máquina detecta que ha cambiado y se apaga. No se hace únicamente con Windows. Incluso se hace con programas libres, bajo la GNU GPL. Distribuyen el código fuente, y puedes cambiarlo e instalar tu versión cambiada, pero cuando lo haces, la máquina deja de funcionar. Es una manera de negarte la libertad número 1 en el sentido práctico, mientras teóricamente la respetan. Para asegurar la libertad real de cada usuario, la versión 3 de la GNU GPL prohibiRichard Stallman en España rá la tivoización.

www.lpmagazine.org

79

w

entrevista Entrevista a Richard Stallman
software privativo no harán el esfuerzo necesario para escaparse de él. L+: Cambiando un poco el tema, ¿cómo ves al software libre en España? ¿Está en una posición buena en comparación con otros países? RS: España tiene un movimiento entre los más fuertes del mundo, con el liderazgo de Extremadura y mucho entusiasmo popular. Pero al mismo tiempo hay oposición fuerte dentro de nuestra comunidad misma, por parte de los que hablan en nombre del código abierto. Si el lector presta atención cuidadosa a su discurso, verá que niega el valor de la libertad. Da por supuesto que la elección del programa a usar debe seguir únicamente las ventajas prácticas, sin atención a la libertad. Unos sí apoyan el desarrollo y uso de unos programas libres, pero sólo por sus ventajas prácticas, como para decir que el ser libre no cuenta para nada. Su apoyo práctico es útil y no sugiero rechazarlo, pero tenemos que asegurar que no pasen por el verdadero movimiento, que su oposición profunda se vea como oposición, que el público comprenda que en el debate ético están de acuerdo con Microsoft y no con nosotros. L+: ¿Qué opinas sobre los proyectos de algunas autonomías españolas de crear distribuciones GNU/Linux adaptadas a los centros de estudio, como Guadalinex en Andalucía, Molinux en Castilla-La Mancha y Lliurex en Valencia? ¿Crees que es una buena idea? RS: Montar una sola distribución para las escuelas y agencias de España, como gnuLinEx, me parece útil, pero no veo por qué cada región debe tener su propia distribución. (Salvo gnuLinEx y Lliurex, todos los nombres hacen referencia a Linux y no a GNU, lo que no es tratarnos bien.) L+: ¿Qué país es, según tu opinión, el que más está apoyando al software libre? RS: El país que apoya más el software libre como país (estado) es Venezuela, donde el presidente Chávez ha decretado que las instituciones del ejecutivo migren. En cuanto al apoyo popular, he visto mucho en Argentina, Brasil, Colombia, España, India y Venezuela. L+: ¿Crees que los proyectos como el instalador para instalar Ubuntu desde Windows, son positivos para el software libre o es una infidelidad a éste? RS: El poder instalar un sistema libre desde Windows, como manera de escaparse de Windows, me parece bueno, aunque no conozca en absoluto los detalles de ese programa. Lo malo en Ubuntu no está en cómo se instala, sino en el hecho que instale y sugiera programas privativos. Lo hace desde el comienzo, y recientemente han decidido hacerlo más aun. El hablar de fidelidad al software libre no tiene sentido. El software libre es éticamente legitimo, mientras el privativo no lo es, porque nos proporciona la libertad y la solidaridad social. Son la libertad y la solidaridad las que merecen nuestra fidelidad, y apoyar el software libre es la manera de realizarlas en el campo informático. L+: ¿Existe algún tipo de negociación con los desarrolladores del núcleo para que utilicen la licencia GPL 3? Sabemos que muchos de ellos la recibieron muy bien. RS: Los desarrolladores de Linux comenzaban a hablar un poco con nosotros cuando salió la noticia del acuerdo amenazador de Novell y Microsoft, que llevó a muchos a apreciar nuestro esfuerzo para prohibir tales acuerdos con la versión 3 de la GNU GPL, y comenzaron a desear que Linux se distribuya con esa versión. Los desarrolladores de Linux lo tomaron como presión, rompieron el contacto, y no lo han retomado. L+: ¿Por qué Linus Torvalds no quiso aceptar la GPL 3? ¿Cómo es tu relación con él? RS: No puedo hablar por él, pero ha dicho que se opone a nuestra meta de asegurar la libertad a cada usuario. Dijo que considera legítima la tivoización, y rechaza nuestro intento de prohibirla. L+: ¿La Free Software Foundation va a dar soporte a gNewSense? ¿Se va a contribuir con infraestructura (servidores) a dicha distribución? RS: Ya les hemos provisto infraestructura a los desarrolladores de gNewSense. L+: ¿Qué 3 puntos más fuertes crees que tiene ahora mismo gNewSense y qué cosas piensas que necesita urgentemente? El punto más fuerte de gNewSense es el de ser completamente libre, de no distribuir ni sugerir ningún software privativo, incluso han eliminado los blobs de firmware no libre que están presentes en el código fuente de Linux, en forma de binario disfrazado como números en el código fuente. Uso Ututo, otra distribución libre; por lo tanto, no conozco los detalles técnicos de gNewSense. L+: ¿Cuándo será Hurd una meta tan viable como Linux?¿Crees que veremos pronto resultados iguales? RS: El HURD (manada) de GNU es el núcleo que comenzamos en 1990. Me pone triste que no funcione bastante para recomendarse, pero no es un desastre: el Mundo Libre ya tiene otros núcleos, Linux siendo uno si se elimina los blobs. L+: Pasando un poco a los temas menos oficiales, mucho se habla de tus peculiares costumbres: no usar coche, no usar móvil, viajar con un colchón, etc. ¿Podrías contarnos un poco sobre ellos, a qué se deben? RS: Me gusta conducir, pero no quiero pagar los costes de un coche, por lo tanto no lo tengo. Al hacer economías, reduzco la cantidad de dinero que tengo que ganar, de forma que pueda hacer lo que quiero. Viajo con un colchón inflable porque no puedo dormir sobre una cama dura. Me produce dolor en los hombros y las piernas, y el dolor me despierta. He elegido la solución más fácil y cómoda. Un teléfono móvil sería muy cómodo, pero lo rechazo porque es una herramienta de vigilancia y seguimiento. El sistema nota en cada momento dónde estás, y lo graba, y puede darla al Gran Hermano meses o años después. El teléfono sigue emitiendo señales de ubicación mientras está desactivado: para que no lo haga, hay que quitarle la pila. También puede ser activado para escucharte cuando no has llamado ni contestado una llamada. Se puede hacer por la empresa de servicio, por la policía, o por cualquier cracker que haya aprendido el código de comando necesario. Es el deber de cada ciudadano el no alimentar al Gran Hermano. Con el mismo motivo no compro los productos con tarjeta de crédito. Los compro anónimamente con efectivo. L+: ¿Cómo es tu vida diaria y las actividades que te gusta realizar cuando tienes tiempo libre? RS: Paso mi tiempo libre leyendo o con mi novia. También me gusta mostrarles la música y los libros que me gustan a los demás. Me gustaba bailar pero ya no puedo, por tendinitis del pie que no secura. Me gusta mucho inventar juegos de palabras, y parodias de canciones, como Guantanamero (http://stallman.org/doggerel.html# Guantanamero). L+: ¿Te gustaría decir algo a nuestros lectores? RS: No aceptes ninguna excusa para no luchar por tu libertad.

80

Linux+ 5/2007

w Páginas recomendadas

www.diariolinux.com

www.elguille.info

www.gatolinux.blogspot.com

www.opensourcespot.org

www.hispabyte.net

www.linuxdata.com.ar

www.linuxhispano.net

www.linuxsantafe.com

www.usla.org.ar

Páginas recomendadas
www.mundopc.net

w

El tema principal del siguiente número de Linux+ será:

Internet e Intranet
El próximo número incluirá los siguientes artículos:
• Tráfico web • Django
Cómo aumentar el movimiento en tu portal Desarollo web con Python Primeros pasos en la implementación de GNU/Linux Redundancia de red, el mínimo de tarjetas SpamAssassin y ClamAV

• Squid 2.6 en la PYME • Bonding + 802.1q

• Para principiantes

Linux para uso hogareno Continuamos el tema de desarollo del juego en Linux

• Para programadores

• Antispam Open Source

DVD1 : Gentoo Linux 2007.1
Distribución Linux versátil y rápida orientada a desarrolladores y profesionales de la red, incluye un sistema avanzado de administración de paquetes Portage

DVD2 : Musix 0.99
Sistema Operativo Multimedia destinado a músicos, técnicos sonidistas, DJs, cineastas, disenadores gráficos, y usuarios en general: una enorme colección de programas libres

Programas comerciales: BinarySEC for Apache
Firewall para aplicaciones web. Aprende el tráfico legítimo de todas aplicaciones o sitios web basados en Linux Apache y detiene el tráfico anormal o sospechoso.

La Redacción se reserva derecho a modificar sus planes

w

w

Sign up to vote on this title
UsefulNot useful