Está en la página 1de 100
WWW.LINUX-MAGAZINE.COM.ES Linux va a CeBIT ‘Muestre sus productos y servicios en la seccién ‘especial dedicada a Linux en CeBIT 2005; (A) LINUXPARK Por cuarto afio consecutivo, un gran numero de ‘companias y proyectos de cbdigo abierto van a presentar sus saluciones de software, productos y servicios en LinuxPark En CeBIT 2005, LinuxPark seré de nue el purto de vista obligatoria para lo directivos T, espe: Cialmente aquellos provenientes de las PYMEs y de la administracion publica. Solo hay un sitioen CeBIT con toda la informacion sobre las tecnalo gas de cédigo abierto mas novedosas y como cexplotarlas de manera efectiva:LinuxPark ‘Su empresa también puede beneficlarse enor- _memente de esta plataforma, ideal para la pro- _mocién de sus soluciones de cédigo abierto. La solucién perfecta para su presencia feri + Comuniquese directamente con una gran variedad de clientes potenciales + Andnciese en un campatia promocional ante- ‘ior ala feriade gran envergadura + Realice su propia presentacién en el LinuxForum + Aprenda de ponentes de primera categoria, + Consolide sus relaciones con la comunidad LUnux internacional + Beneficiese del contacto con socios y patroci- nnadores de reconocido prestigio en el sector + Asu disposicion: paquetes feriales todo inclui- do desde 4 m2 Consiga mas informacién en +49 (0) 26 02 16 013746 profair@abresch.de GBIT HANNOVER 10.-16.3. 2005 Patrocnade pox Presentad por LINUX) CET crewmen PRoFaIR Ser o no ser E: ano del escrito io, el alto del escrito Ho... Ni que fuera un nuevo signo en el horéscopo chino Csi, sefiora su hijo nacié en el aio del escritorio, Jo que significa que la vida le depararé no pocos iconos"). Peto a mi entender, el tan cacareado “ano” del escritorio Linux ya fue, o mis bien, sigue siendo y, a a vez, esté por venir. Me explco. Esto no va 3 ser (ono fue, 0 nose. bueno, ya pazo) como el inven to de la gramola, que un dia conereto, alguien tuvotaidea y fue y lo consiruyé (y patents todo hay que deci) y ya esti aparece el producto temminado. El flo” del escritorio Linux probable mente abarque dévadas, tal vee inicién dose el dia que alguien com largas pati las y una corbata de lana tejda (luni forme de los programadores de los aos setentay primeros ochenta) se le acu rei6 que estaria bien dota a Unix de una pantalla para. grficos. Tal vez. ni siquiera estaba pensando en iconos y vventanas, sino lo tinico que queria era plotear na funcién potinémica 0 algo por el estilo, Cosas de los ingenieros. Lo due es servidor,levo tiizando escrito tios Linux desde el 96 y hoy en dia encuentro mis “intuitivo” (concepto tmaicionero como ninguno) que cualquier otra sistema de ventanas. Lo hhe dicho anes y to repito ahora: todo es alo que te acostumbras. Un escritorio Linux ¢ igual de dificil 0 facil que cualquier ao escrtoro al cual te has habituado. ¥ si el escritorio con el que te topas es radicalmente diferente a aquel con el quete has eviado, pues ten dras problemas. Por ejemplo, dltima mente me ha stimido en 1a més igno ‘miniosas de las depresiones el no enten- der nada el escritorio de un iMac con el ‘cual me he visto obligado 2 torear por Estimado Lector de Linux Magazine sazones profesionales. SI solo pudiese encontrar donde puedo abrir un termi nal de linea de comandos, tendrla donde agarrarme. Pero no. El maldito se me resiste, Claro que no ayuda para nada que esté todo en aleman (no pre: guntéis). Por no saber, no sé ni como se abre el DVD-ROM. Pero, cuando fii a comprar un teclado para dicha ‘maquina, el vendedor se interesé por las caracteristicas del artefacto en cuestién, Me pregunto por la RAM me retorci en mi asiento y murmuré un “No sé” Me pregunté por la velocidad del proce: sador. °)750 Mhz?" aventuré. “Imposible” sentencid él. “No hay inguin iMac a esa velocidad’. “Pues no sé” admitf de nuevo, cabizbajo, Una vez Je hube explicado el problema del ‘idioma me dijo: “Pulsa en la manzanita. La primera opeién te dard el perfil del ordenador”, Regresé a la ofieina y probé Jo que me habia sugerido y... jAlejop! Aparecieron todos lo entresijos de hard. ‘ware del cacharro. *;Ajal" pensé. Esto si cera agradable, No importa con que mo: dela de maquina te las estés viendo, ni que sistema operative estés cortiendo, si es un Mac, pulsas en la manzanita y Ja primera opcién es el perfil del sis tema. Y, aparentemente, todo es igual: Los mentis son consistentes de version a versién, siempre en el mismo lugar, siempre con el mismo comportamiento, Para un macignorante como yo, eso es Jo que yo amo una ventaja, Acostumbrado a Mandrake desde hace afios, la nueva version de Fedora que rogalamos con el mimero 1 de Linux Magazine, me ha dado incontables que- braderos de cabeza. Como con el Mac, no tengo ni idea de donde estén las «cosas y acabo siempre optando por abrir tuna consola y operando desde ahi, Al menos eso sf es consistente. Sin embar- 0, habré entre el respetable alguien que vea esto como un obstéculo para ‘que Linux se adopte como sistema ope: rativo de consumo entre lo poblacién en general. Esto de abrir una consola, PDTTORTAI EDI aU Nos sentimos orgullosos de nues- "tos rgenes come pubikacion,que seremontaa los primero dias dela ‘evoluddn Unux, Nuestra revista hhermana, a publicacion alemana LUnux Magazin fundads en 1994, fue Ia primera revista dedicada 2 LUnux en Europa. Desde aquellas tempranae fechas hasta hoy, nuer ‘ra redy experiencia han erecico y se han expandide 2 la par que la comunidad Linux ao acho tg {el mundo. Come lector de tix Magazine, te unes a una red de informacion dedicada ala distrib: ‘Gon de conocimiantoy experiencia ‘nica, No os limitamos a infor mat sabre el movimiento inuxy de Software Libre, sino que somos parte integral de teclear una instruceién, ver que no fan: ciona, corregir permisos, segunda prue- ba, no funciona, establecer variables de entorno, probar otra vez, makita sea, sigue sin funcionar... Que, no, que no veo a alguien que Jo que necesita es un escritorio para ser inmediatamente pro- uctivo, pasando por lo que yo he temido que pasar para hacer que OpenOffice se hablara con MySQL, por poner un ejemplo reciente. ;ConclusiOn? Unificacién de criterios y escritorios, Pero entonces jdénde queda la flexibil dad y la Ubertad de elegir que tan atrac. tivo hace los sistemas Linux? Amigo, he ahtel dilema, av Paul C. Brown Ditector [oun Premios LNM 6 Inseguridades 8 Negocios 10 Especial Hardware n Impresoras n No todas las impresoras funcionan bajo Linux. Vemos cual nos conviene con este completo articulo. Equipos Silenciosos 8 Vemos cémo diseiar un PC que no desentonars en el salén de us casa Camaras Digitales B Analizamos el software mas adecuado para conectar una ccimara a un equipo Linux. Grabadoras DVD 29 La batalla de los formatos puede dar al traste con la compra de nuestra grabadora, éste articulo explica qué comprar y émo no equivocarse, Perry Lalibreria SDL 2 Aprendemos a utilizar SDL en este taller de programacién de juegos. Interfaces . 38 Con curses podemos desarrollar interfaces de texto répidos y Ficientes. Blackjack 4 EL juego del 21 sirve para ilustrar el uso del paquete cusntico de Perl La API Pear 46 PEAR proporciona una API que simplifica la ereacién y sgestién de formulatios web, Gestiénde de Ficheros Bajo Python 2 ‘Todas las operaciones necesarias (y alguna mas) para traba- jar con fcheros se explican en este atiulo. Te PN VAL Sd TNF 12 impresoras bajo Linux La impresora que eliamos dependers dl uso que hagamos de cla, Los usuarios de Linux basan parte de su eleccién en el tipo de soporte que el sistema operat vo prove para su modelo de impresora. Este artealo propor clona_ Informa clén uit y una guia en la que basar decision 18 Equipos Silenciosos Un ontenadar beige, con ventiladores ruidosos y des ccuidadas ampliaciones * Se dadores de Lenovo empezaron su avents ra en una pequefa caseta en el campus de Beijing. Lenovo empez6 como dis tribuidor de terceros, precisamente de los ‘que ahora conforman uno de sus may- ‘ores competidores: Hewlett Packard. Y fue gracias a una temprana estruc: turacién de wna red de ventas como lleg6 alas cimas del éxito. . amlentos que le han levado a esta con: ‘lusién con datos extraidos de estudios independientes y, en algunos casos, incluso de los mismos informes en los {que se basé Microsoft para su campaia de “Get The Facts”, Todo ha de tomarse con cietio escepticismo, por supuesto, ya que al final de cuentas hablamos de tuna empresa que trata de vender su pro- ducto estrella: SuSE Linux, Pera es refrescante de todas maneras, . El ordenador doméstico ideal Un Sistema Perfecto Una caja de un ordenadorestandar de color beige puede que esté muy bien para la sala de servidores, pero cuando llega ieee) el momento de disefiar una equipo para casa, hay que pensar en la elegancia, Es muy probable que se pase muchas noches agradables con el ordenador en casa y tal vez sea el momento de darle un poco de glamour a tu equipo PORJOHN SOUTHERN vale la pena gastarse los ahor: ros de toda una vida en la decoracidn del hiogar ideal si no se piensa en un presupuesto para el ordenador personal. Que muestros ami {g08 admiren la decoracién, pero que comentan lo feo que es muestro orde nador es algo que cualquier usuario de EN PORTADA La Impresora Perfect nvoouu12 Teo lo que necesita saber antesde com rar una impresoa,yaseaparacasa opara Inoficina, Que se necesitateneren cuenta, quées iomis adecuado yqué opciones el ‘enparaasegurarnosdeuna perfecta compatibildad continue PCS SileCI0S 05x renon 18 ‘eros le mejores compenentes quese puedencomprar para acallar el ruido que axma un FC convenconal, con intencén eciearun PClobastanteslenceso como para que,ayaen el sa6n, Acalaese vent lado silence disco duro. No quieres que unordenador tube a par de tusratosde ed Camaras Digitales..... AAmedidaquelas chara digtalesco tindan gansndoelabtalaalascamares convencorales de artao,exst una mayor necesdad delntgraie con nuestros tema operatho favor Enesteantculo vemos como hace Tostadores de DVDS..e...29 Vile, asiquetenemes un Pslencieso, impresora paral fotony camara para tomarinstantineas..Pere quehacemos conlaspeliclasquegrabamos dea tele? ues tostarlasa DVD, porsupuesta Sn «embargo,comocon todaestoes mas ic Ge decirquedehacerEneste articulo vemos las tostadoras que mejerseadaptana tu superequipo, informética no se puede permitir. Pero, Jo que puede ser incluso més importante es el nivel de molestia proporcionada {que pronto nos confrontara debido a los ruidosos ventiladores que se encuentran en la mayoria de los PCs.EI ruido puede suponer la diferencia entre un sistema con encanto a uno que da espanto, Nos pusimos manos a la obra para averiguar como se puede producir un PC poco ru oso, si no completamente silencioso, maxime si tenemos en cuenta que la polucién sonora puede tener efectos negativos en la salud, Prabamos las mejores opelones en nuestros laborato Fos Linux, para darles a nuestros lectores la oportunidad de elegir las mejores propuestas. También estudi= amos en profundidad Ios complementos que se vayan a aadir al equipo. El primer periférico que habitual: mente se compra es una impresora. No todas las, impresoras cuestan lo mismo ni ofrecen las mismas funciones. Este mes presenta: mos a guia \efinitiva para la compra de un Impresora para un equipo Linux. La guia contempla desde las grandes impresoras léser er color que se encuentran en talleres de diseiio grfico, hasta econdmicas impresoras de inyec: cidade tina y liser monoctomo diseRadas para adaptarse a cualquier presupuesto. Y ahora que tenemos un equipo silencioso y una impresora a juego, s6lo necesitamos una cdmara dig. el pancho Sneha pt ad ge alge 6 balea 2 po tea perder ana ca beige en el fala, mutatis tu nucrD eaulpo de tiseno ¥ observa como ponen = a / ey envidia.m Decisiones de Impresion La impresora que elijamos dependera del uso que hagamos de ella.Los usuarios de Linux basan parte de su eleccién en el tipo de soporte que el sistema operativo provee para su modelo de impresora. Este articule proporciona informacién util y una guia en la que basar nuestra decision, POR TILL KAMPPETER lectrdnica est llenos de Impreso ras para diversas tareas. Desde Daratas impresoras de Inyeecién de tinta por menos de 50 délares hasta lds alto nivel y plotters de gran tamano que ficilmente puede dalares, las opciones parecen infinitas. :Cudl de esas impresoras es la opcién adecuada para los usuarios de Linux? La primera cuestién que nos debemos plantear no tiene nada que ver con el sis: tema operative. Los criterios mas importantes deben ser lo que pre tendemos imprimir y los volimenes de Impresién que esperamos. Las impresoras liser son ripidas y producen eopias de alta calidad pero no imprimen con buena calidad las fovograflas, Son bastante caras en espe- ial si necesitamos color. En el otro lado de Ia balanza el precio de manten: imiento y el del precio por copia es razonablemente bajo. Por otro lado, las impresoras de inyeccién de tinta son mucho mas baratas en términos de inversién inicial, siendo muchas de ellas capaces de producir fotogratias con calidad similar a la de los laborato- Desafortunadamente son micho més lentas y el coste por copia impresa es L: mostradores de las tiendas de er de costar miles de mucho mis alto, especialmente si uti Wamos papel fotogeafico. si nnecestiamos Imprimir mucho texto. y ‘casionalmente una copia a color puede que incluso debamos considerar com: impresoras: monocromo y una de inyeceién con color, Esto mitigaré el impacto de los castes de utilizacién de la impresora de inyeocion La parte més dificil respecto a comprar tuna impresora es encontrar un modelo con soporte Linux para todas las util dades de que disponga. Esto dependera de dos cosas: en primer lugar, el lenguaie de las descripcidn de la pagina que la impresora utiliza, y en segundo lugar, ue tipo de soporte Linux ofrece el fabri came u otros proveedores (como un proyecto libre). Postscript y PCL Una cosa esta clara desde el principio pata dispositives PostScript. Por Supuesto esto supone que el fabricante no ha escondido los comandos para acceder a ls utldades bajo un contro Indor DLL de Windows sino en un archivo ASCII. PPD” (PostScrit de descripcién de impresién) [1] como requiere el estindar. Esto garatiza al rar dos una Liser das En busca de la impresora adecuada para usuarios de Linux ‘menos el mismo nivel de funcionalidad para modelos PosiSeript que en Win dows NT. El soporte PCL no esté tan avanzado pero al menos podemos garantizar que tuna impresora basada en PCL. imprimira bajo Linux. Tambien nos permitirs con: trolar la configuracién bésica de la misma, como la resolucign o el tamatio del papel. Funciones especiales como las seleccién de la bandeja, el modo de ahoro de toner o el suavizado de fuentes puede que no estén disponibles ccon controladores Linux estandar. PostScript y PPDs Los fabrcantes de impresoras PostSexipt proporcionan habitualmente un PPD con controlador de MS Windows y MacOS. 1 PPD incluye comandos PostScript 0 PIL codificads para cada una de las tl: idades especiales del dispositive, como la impresion a dos caras,selecciOn de bandeja 0 inchiso el grapado y_agu jereado, Estos cédigos necesitan estar integrados en el archivo de la impresora para permit el acceso a las opciones de Ta tarea cuando estas sean analizadas gzamaticalmente por el intéxprete. Antes del sistema de impresién comtin de Unix (CUPS) se establecié como el estindar para Linux, los archives PPD eran igno rados habitualmente, Los archives CUPS pueden gestionar los archivos nativos de escripcién de impresoras, mientras que otros sistemas de impresin. mediante almacenamiento temporal (spooling) ‘usan el filtro Foomatic RIP para analizar la informacién en el PPD. Esto significa que existe un soporte completo para impresoras PostSeript en Linux. No obstante nos debemos asegurar de que el intérprete PostScript esté real mente integrada en el hardware del dispositivo en lugar de en una he: rramienta de emulacién basada en Windows PCLy PL los comandos especifcos PCL para impresoras se implementan principal mente como comandos PUL lengvaje de tarea de impresién). PIL es un estindar de facto. No siempre es posible hacer fave mestra impresora hable PIL, Las impresoras habitualmente se einen eetricamente a las seauencias de escape y comandos de PCL. En este caso solo podemos esperar que el fabricante pro porione documentacién util 0 que un dlesartollador curioso haya analizado la lida del controlador Windows y haya encontrado camo controlar la impresor, No obstante hay algunos modelos que implementan soporte PCL. sélo. por razones de compatibildad con programas 10S usando e controlador Windows para hacerlo, El programa DOS envia PCI. al controlador y el controlador conviete este céigo a un mapa de bts propietaro fn este cas0 10 tiene ningin sentido enviar datos PCL a a impresoa en Linux Protocolos de Alto Secreto Hay muchas impresoras que usan lenguajes propietarios o protocolos que sus fabricantes mantienen en e! mas alto secreto. La mayoria son dispositivos de bajo caste, pero hay algunos que en rea lidad son bastante caro. Sil fabricante no proporciona wn con: trolador, las impresoras que pertenecen a festa categoria son completamente initiles bajo Linux hasta que un desa rrollador independiente encuentre tiempo para examinar los resultados del controladar Windows y adivine el proto colo. incluso entonces la calidad de las resultados no suelen llegar al_nivel alcanzado en Windows. sélo ee EP Hive, LimuxPrinting.org ecwnepr ices oer eo tena re hn ae ii gy eee Eras Seana aoptaretae tae eae gna? a a a me tg rte Waa ae sie Lge bem Tye esi TED Et aa leanyplaci one on = ‘ome 9 eal ‘Rim spe pny oor aa cee 361 Taare evar fay oe Jong aj hsig Omran nacncateistes) Fgura r-Lnuxprintingorg esl sitio ideal para isi estamos teniendo difcultacs imprimiend bajo tino. Podemos comprobar la base de datos Foomatic en [3] para encontrar si una Impresora tiene soporte en Linux. La base de datos tiene una lista con todas las Impresoras conocidas e indica como se comportan con Linux. Este articulo Incluye una pocas de recomendaciones para varios tipos de impresoras y cate sgorias de precios, Inyeccién de Tinta a Color Al margen del gran mimero de fabré cantes de impresoras de inyeccién de tinta, solo hay dos cuyas ‘impresoras soporten el software Open Source real mente bien: Epson y HP. Las impresoras fpson Stylus son una eleecion particn Jarmente buena para Linx Epson desvelo informacién sobre sus protocolos a los desarroladores Gimp Print (4) hace bastante tiempo. Esto per mite a Gimp Print dar soporte a. las nuevas impresoras Epson tan pronto como son lanzadas al mercado, Gimp Print es software gratuito y proporciona resultados en color de alta calidad. La herramienta dspone de un amplio aba nico de posbiidades de configuracion de proporcionan al usar wn amplio nie calidad y velocidad hasta reproduc cones con calidad fotogrfica reabsta, Esto hace de las impresoras Epson wna cpeén interesante pars los fotegrafos a cionados en Linux OVER STORY. La mayoria de las impresoras sin Post Script de HP usan el controlador propio Libre de HP HPUS (5). Este controlador soporta la mayoria de las caracteristicas Je los dispositives HP, como la impre sidn duplex, seleceién de bandeja y la Impresidn a sels tintas, La calidad de fotografias y textos es impresionante, especialmente No obstante el controlador no dispone ide opciones para un control més deta: lado. Las impresoras de otros fabricantes eben ser evitadas. Puede que seamos capaces de soportar una impresora Canon con Ia licencia comercial Turbo: print [6] 6 con una licencia gratuita pero propietaria de Canon Japon (7). Li pagina ests en Japonés. Simplemente descargamos los RPMs y los instalamos. ‘Algunos modelos tienen nombres dite rentes en Japén, Europa y Estados Unidos. No todos los modelos estén soportados, modelos mas nuevos Lexmark y Canon Lexmark introdujo los primeros conto ladorespropietaros para algunos modelos hace algunos afios. Es dif! hacer que esta generacién de impresoras funcionen con los sistemas modernos. Lexmark ha introducido ahora un mero concent de controlador el coal, desafortnadamente, también es propietario, Las controladores son supuestamente capaces de funcionar 2s rosraon Figra2:La HP Deskjet 450s una buena opcin pra usuarios méviles. Soporte Linux buena calidad de Imprestn,impresion en sis colores sin requerimientos de fuentes de alimentacén. con las distrbuciones mis modemas (8) si bien no hemos sito capaces de confit ‘marlo hasta ahora. Al margen de un pobre soporte de los controladores, Lexmark también plende puntos debido al alto pre ciode sus consumibles. Solo hay dos 0 tres proyectos de con uwoladores gratultos para Lexmark y canon, pero la funcionalidad que propor estringida por que los desarrolladores tipicamente no tienen mas alternativa que hacerle ingenieria inversa con la salida del driver propie: tario, $i estas interesado comprucha la base de datos de controladores en Lin _printing.org en busca de la informaci6n, ‘mas reciente [9]. Ver figura 1 Los controladores para impresoras de ‘otros. fabricantes son desconacides. ‘Todos esto no lleva a que debemos optar or Epson y HPs estamos buscando una Jmpresora de inyeccion de tina con soporte Linux. HP disesia con el cabezal de impresién integrado en el eartucho desechable de tinta y esto es preferble fen ambientes donde las boquillas tien den a obstruirse, Por otro lado, Epson utiliza cabezales piezoeléctricos perma: nentes: los cartuchos son simple reservas de tinta, Epson también provee tintas especiales para conseguir determi nados objetivos, tintas en escala de stises y sistemas de tinta continua. Los usuarios deben ser prudentes con ofertas de bajo coste al comprar impreso- tas. El soporte es tipicamente malo 0 inexistente para las impresoras de esta ate gama de precios o los costes de mante: nnimiento son extremadamente altos {ebido al precio de los consumibles. Barata pero funciona Los modelos basicos de Epson son el C42 y el C4a. Ambos estén soportados por imp Print desde su versiin 4.2.6. Los precios de los cartuchos de estin en lo nds alto de la excala. El modelo C64 es buarato peso requiere la versién 4.27 0 superior de Gimp Printer. Los modelos bésicos de HP son las Deskjet 38x, 38x y 36x, Bos disposi tivosusanLIDIL(lenguajes de dispositivos de interfaces de imgenes ligeras) Como HPLIS no soporta comple tamenteLIDIL, esos modelos no pueden ser recomendados. Las impresoras PCL batatas con soporte HPUS son la series Bax y la Deskjet 5150. Impresoras de Sobremesa Robustas Las mejoras impresoras Epson para cualquier trabajo en papel Ad estindar son las Stylus C82 y C84 (ver figura 4). Disponen de cuatro cartuchos separados para los cuatro colores y proporcionan copias de alta calidad de texto y fotografias. Estos modelos usan tintas con pigmentos no menguantes. El mo- elo C84 necesita la version 4.2.7 0 superior de Gimp Print EI modelo Deskjet 5625 es nuestra elecci6n de HP como impresora de inyec: cidn en formato AA, Gracias a su unidad duplex usa la mitad de papel y si disponemos de cartuchos especiales de fotografia podemos usar el modo seis colores para impresién de fotografias Poems aiadir una bandeja secundaria para extender la capacidad de papel hhasta las 400 paginas. HPUS habilita todas las caracteristicas de estas impre soras excepto la impresion sin bones. Seguin HP, se estd trabajando en la habt- Tactn de esta caracterstca La mejor impresora portdtll det momento es la HP Deskjet 450 (ver figura 2). Ofrece a los usuarios méviles la misma calidad en copias que sus her manas de sobremesa ¢ incluso impresis ccon seis tintas en modo de ahorro de bateria y todo viene en un formato atrac tivo y compacto. Los modelos de la gama HP Business. Inkjet se recomiendan para amplios vvolimenes de impresion. Estos modelos son mas répidos y tienen mejores capact- dades de papel y tintas. La mayoria de las nuevas impresoras de inyeccién de HP nos permiten reem- plazar el cartucho de tinta negia por un ceartucho de tinta fotografia con depést: tos de tinta negra, eldn claro y magenta claro, Esto permite una calidad de impre sida de fotogealia perfecta. No hay necesidad de modificar el controlador para permitir el modo de impresién de seis tintas. La impresora gestiona el color internamente. Impresoras Fotograficas La gama Photosmart de HP ests especial: ‘mente disefiada para imprimir copias de Imagenes igitales. Casi todos. estos rmodelos disponen de un lector de tarje tas que permite la impresién directa sin PC. Las series 100 y 200 son modelos portdiles que admiten tamaios maxi: tos de papel de 10 x 15 em. La serle 7000 soporta A4 y la 7600 incluso ofece Impresién de ocho colores (negro, gris medio y claro, cin, magenta, amarillo, cin claro y magenta claro). El controlador de dispostivos mult funciones propio de HP, HPO! [10], permite el aceso a lector de tarjetas en Linux. Los iimos modelos (14x, 24x, Tax, 77x, 79nx) en realidad usan el lector de tarjetas como un dispositive de almacenamiento masivo USB La serie Epson Stylus Photo soporta la impresién de fotografia, Las impresoras lasicas de seis colores producen copias cexcelentes usando Gimp Print. Los made- Jos mas nuevos (R200, R300 y R800) no estan soportados todavia, por tanto los ‘modelos recomendados son el 8300, el 925 0 el 950. El 925 dispone de un lector de tarjetas que puede ser accesible como un dispositive de almacenamiento masivo USB (Kemel 2.4.21 0 superior) y el 950 tiene seis cartuchos de tinta separados. Dispositivos Multifuncion Estos incluyen dispositivos que propor conan impresién, escaneado y_ otras funciones como fax o lectura de tarjetas, todo en un dinico dispositive, Desafortu e ninguna de estos dispositivos ofrece soporte de fax basado en PC con software gratuito, La impresion, el escaneado y la lectura de tarjetas fun cionard en todos los dispositivos Epson y HP con la excepcién del Epson Stylus Photo RX500, si bien se estd trabajando en un controlador de Gimp Print. Los dispositivos de otros fabricantes impr iirin en algunos casos y en otros no hardin nada, Los dispositivos HP necesitan un con. trolador de bajo nivel para avceder a todos sus componentes. HPO propor cciona un interfaz que acepta tareas de resin, un controlador Sane para el lescdner y acceso al lector de la tarjeta via Mtools [11]. HPUIS se usa como el filtro de la impresora Los dispositivos Epson funcionan ‘como si fueran dispositivos separados de impresién, escaneado y lectura de tarie tas. El Sane epson soporta el escaneado y Ia lectura de ta tarjeta via almacenaje masivo USB. Con la excepeidn de las impresoras *LIDIL", los modelos PSC Lxxx y los Officejet 4xxx, podemos recomendar ‘cualquier modelo HP. Los dispositivos LIDIL. multifuncién estén parcialmente soportades por HPOJ. Hay que evitar el Epson RX80O puesto que Gimp Print no proporciona un controlador para este modelo. necesitamos imprimir en formato |A3 debemos ver los modelos de cuatro colores Epson Stylus Color 1160, 1520 3000 los modelos de seis colores Epson Stylus Photo 1290(3) y 2100. De HP, podemos probar las impresoras CP1700 y Jas Deskjet 93xx para impresién en cua tro colores. Hay cartuchos de de tinta na EPRISOA Fgura 3:La Epson (Bq etl yara uss generals delmpresin de nyocién.Serequlerelavewsién 4.27 de cimp rit para prover soporte perfecto para Linux, fotografiea disponibles para la. serie Deskjet 96x La Epson Stylus Pro puede imprimir formato DIN A3_sobredin Gimp Print gestiona esto sin ningin problema, No obstante los desarro adores no fueron capaces de calibrar correctamente Ja gestion y optimizacién del color para estas series debido 2 la falta de méquinas para pruebas. Las ‘impresoras Al Stylus Pro 7000 y 7500 hhan sido probadas y proporcionan cali dades similares a sus hermanas pequeas Stylus Photo, Las Stylus Pro 900 y 9500 son las ver siones AO de la 7000 y deben producir también copias de alta calidad. Gimp Print incluso soporta los modelos actuales de la Stylus Pro 7600 y 9600. Si decidimos optar por un producto de HP 0 de cualquier otzo fabricante debe: ‘mos aseguramos de que sea un modelo de alta gama con un intérprete de Post: Script basado en hardware, nsionado, Laser Monocromo La mayoria de los fabricantes de impre soras [éser no proporcionan. soporte nativo para Linux. Afortunadamente la mayorla de modelos usan lenguajes estdndar PCL y/o PostScript por lo que la mayoria de las impresoras perfectamente bien sin net soporte del controlador nativo. No obstante hay un gran nimero de impresoras (especialmente las de bajo presupuesto) que usan protacolos prop! elarios y na proporcionan soporte de controladores, Muchos de ellos tienen un sufifo, como “L” para “ligero” al final de sus nombres y la mayoria tienen her mayores que hablan PCL o PostScript. Debemos aseguramos de que elegimos el modelo de alta gama al com: prar una impresora. Muchas de las impresoras de bajo coste no soportan software libre. De nuevo, afortunadamente hay una pocas Impresoras PCL. y PostSeript e incluso tunos pocos controladores para protoco: los propietarios. En general debe ‘comprar una impresora P Debemos recordar que muchas impreso- ras liser de bajo coste pierden esta ventaja debide a consumibles caros, Laser de bajo coste Las impresoras Isser kyocera, con la excepcisn de los dispositivos multifan ciones, haan nocmalmente PostScript 0 ncionaran sidad del i wa ee Mua Figura 4 soporte Linuxes cuestonable en impresoras ise de bajo coste de Epson La Epson 7162001 sole dspone de soporte parcial puesto que usa protocols propetais. al menos PCL. Adicionalmente disponen de un tambor permanente que tiene el efecto agradable de ofrecer bajos costes de impresién por pagina. Los modelos de Kyoceza FS-1010 y FS-1020D hablan Post Seript, y la FS-1020D dispone ademas de unidad duplex. Las impresoras liser Lexmark son mucho mas amigables con el software libre que sus impresoras de inyeccién de tinta. La mayoria de sus modelos en el ango Optra hablan 0 PCL o PostScript Lexmark dispone de su propio intérprete y esto permite incluso a las Optras de bajo coste hablar PostScript La pagina Web de Lexmark indica la compatibilidad Linux de sus modelos y existe la posibilidad de descargar contro: ladores. PCLSe (compatible con HP Laserjet 4) Los modelos de comienzo Figura La Officejet 30 de HP esun dispsitivomulifuncién con buen soporte Linux Induso ‘odemosuiiizarsualimentador de corte depapelif £220 y £321 son buenas opciones de bajo cost. Brother prineipalmente tiene liser PCL. y PostScript. y proporcionan soporte nnativo Linux con sv propia pégina de controladores (13]. Muchas impresoras Brother que usan protocolos propietarios Brother funcionan bien, debido a que el fire Ghostscript t/?x0 ayuda a producir bbuenos resultados. Los médulos de toner y tambor separado permiten costes de ‘operacién bajos. Los modelos de bajo coste HL 1430 y HL $130 son ambas impresoras PCLSe. Las impresoras mas baratas de Epson son Jos modelos del rango EPL “L” (por ejemplo la EPL. 62001), sin embargo usan protocolos propietarios. Ver figura 4. Epson no proporciona controladores Linux y no proporciona ninguna otra {injormacién sobre el protacolo. A pesar de que un proyecto independiente esta trabajando en el desarrollo de un contro: lador [14], este rango de impresoras no puede ser recomendado, Slendo el mayor fabsicante del mundo de impresoras liser, HP dispone de un amplio abanico de impresoras PCL y PostScript. HP usa el controlador HPUS para soportar PCL y proporciona PPDs bajo la licencia gratuita MIY de Post Script (¢ incluso permite su distribucion através de Linuprinting.ong{15] Las impresoras liser mas baratas que proporcionan soporte completo para software libre son las laser PostScript 1L11200 y 1300, Los modelos LJ1010, 1012 yy 1015 tienden a colgarse debido a pro blemas de compatiilidad PCL. Tanto la HP Lasérlet 1000 camo la 1005 funcio: znan con el controlador foo2zis (16), pero ‘neeesitan cargar un soporte logico incor porado al Nuevamente probablemente es mejor evitar estos modelos Gama Media Elllamado grupo de impresoras de gama media dispone puertos de red y son extensibles. Todas estas impresoras soportan 0 PCL 0 Post Script y la mayoria de ellas también soportan PIL. Esto mas © menos solu ciona los problemas con software libre. ‘Tanto HP, Kyocera como OCE proparcio- ‘nan archivos PPD para sus modelos PostScript como software libre bajo licencia MIT (17). Epson proporciona ‘de motores més rapidos, controladores gratuitos para sus impre soras PCL (las serie EPL sin la “L” al final del identificador del modelo). Tanto Brother como Lexmark afrecen descarga de controladores. Pros y Contras ‘ads los fabricantes de impresoras tata dos en este articulo tienen sus pros y sus conras, Lexmark tiene impresoras més tdpidas y mejores microcédigos que HP al tnismo precio, Los catches de nay os tambores de HP se venden normalmente como unidades completas y esto puede suponer costes de operacién més allos Los tambores permanentes de Kyocera y tos consumibles separatos de Epson y Brother son més efcientes en costes. Pot cto Tado el hardware de HP tene la re pulacidn de darar més ‘Muchas impresoras Iiser a color de baja gama 0 no proporcionan soporte de soft ‘ware libre en ningin caso 0 este soporte esti sujeto a limitaciones, Este tipo de Impresoras no est recomendado, La HP Color Lasettet 1500 (el trabajo de desa rola un controldor ha empezado (18), la HP Lasetlet 3500 y la Ppson cul 1000 son ejemplos de esto. La Minolta Magleolor 2200 DL. y 2300 DI usan amb protocolos propielatios pero funcionan tmuy bien con el controlador foo2s ‘Al margen de esto de due PCL. 0 PostScript esta immplementado en el handware en lugar de cémo una emulacién. Los modelos ‘que proporcionan esto son las Kyocera FS-8000C y la HP Color Laserlet 2500, 3700 y 4600. Algunos fabricantes dan a Jos usuarios acceso a los controladores Hibres como para las Epson Aculaser 1900, 200, 400, 8500 y 8600. Impresoras Gama Alta La impresién en grandes voldmenes, grandes departamentos de empresas @ 4que tequleren tareas especiales como ta ladvar, grapar o doblar son del dominio tipico de impresoras lser de alta gama con velocidades de hasta 10 paginas por as bandejas de papel tienen capacidad para més de 2000 pag nas. Vienen con dispositivesadicionales due ofrecen cas de encuademado 0 capacidades de doblar, bandeja de correo y preparactén ¥ acabado de paginas impresas sobre Ia marcha Los dispositivos de este tipo normal: rente tienen un intérprete interno de PostScript. Funcionan perfectamente con soltware libre, Si usamos un archivo PED podemos acceder a las mismas opciones suarios de sistemas Window Comunicaciones via protocolos de Internet ncia notable a disposi: tivos. multifunciones en modelos de Hay una tend Figura 6:Para altos volimenes deimpresin Digimaster de Heidelberger. Estos monstuosn tienen rlnguna objciéna ser controlador por ordenadores Linux gama alta, Muchas impresoras de gama alta comenzaron su vida como foto- copiadoras con adicionales de impresién y escaneado, Si el escéner ofrece un interfaz Web y saca los datos de las imagenes como correas electrOnicos, HTTP o FIP podemos escanear con cualquier sis tema operative. Si capacidad de escaneo proporcionada por el dipos estard disponible en Linux. . In specicaciones en Formato PPD: tp// partners adobecom/asn/tech/ps/index fe [2] Tutorial Foomatic tia /inyun com? ay [a] Base de datos de Foomaticen Unvxpint Ingo: tp dwinnpriting org dligitales médulos no es asi la del proyecto im Pint: to-/hlip printsourcforgenet/ Proyecto del controlador HP: http. {61 Twrboprint controlador comercial par Impresoras de iryeccin:hirp./rwan sboprntde english {rT Controtadr para impresoras Canon: tp:/éewebcananiplérvupd i! aa __ irelicnintia onarrta_ ipo]Centrotador HP para ectores de chips de tarjeta: http /Arpois rinting orgidiver [a] Preject Sane escaner http: /ruwn sane projector i3] conv [ng]Desarrollodel controlador EPL ftp // oneplscurceforge net [DS]PPDs para ser de HP: tip //wwrw. ng.org/down [pel Foons hte /foozas hc ln] Descargas PD: htp:/wernuxpi 1gfdewnload/PP0/ [si] Proyectoparaliser de color de HP hte 4 faech ras fl PORTADA efioy construccién de un PC para el salén. Ejecucion silenciosa Un ordenador beige, con venti ladores ruidosos y descuidadas ampliaciones dificilmente con- vencerdn a un usuario que busca una estacién multimedia para su sal6n oun PC bien disefiado para un elegante despacho domestico. Este mes ayudamos al lector aele- gir los componentes adecuados para construir un sistema elegant a mayoria de los ordenadares per somtales estén en oficinas, No hay Kduda sobre esto, las cajas grise vulgares y corrientes con sus. venti ladores ruidosas, suministradas por 1a tienda de la esquina, sencillamente no tienen sitio en el saldn. Desde Inego, siel precio es el factor determinante, hhabr$ mucho margen para aislar el suido, componentes que ahorren electri idad o cajas elaboradas. Dicho esto, hay uuna notable tendencia hacia méquinas que sean de uso simple y que no hagan mucho raido mientras funcionan, Es decir, nada que se parezca a un onde nador corriente, Normalmente la eleecién de los com: ponentes estaré determinada por el papel que le asigne al ordenador, una consola de juegos, una estacién mult: media o una maquina para una oficina domestica. Elegir la caja correcta es deli cado, especialmente porque su tamaito y el numero de bahlas de dispositives con las que cuente determinaran el grado en que podra ampliar su mSquina en una etapa posterior, Las cajas compactas a de espacio incluso para aiadir un segundo disco duro. Consolas de Juego gran rendimiento, un adaptador grafico 3D medianamente potente y una tarjeta de sonido de un cierto nivel, Existe un rnmero de sistemas bisicos que cumplen nnecesitara un procesador de ‘este cometide bastante bien, como por ‘ejemplo la gama de Shuttle o la EXS-3008 de Elito Epox (veasé la Figura 1). Esta ultima se suministra con tna placa base para Pentium 4 realmente adecuada (EP. APGE con chipset Intel i865), un lector de tarjetas de memoria flash, y una pan. tala La pantalla nos permite reproducir MP3s @ CDs incluso ccon el ordenador apagado. El software festd almacenado en un area especial de Ja BIOS y puede ejecutarse pulsando un botén. 1 con pulsadores La placa base tiene un chip gratico integrado, pero se puede usar el slot AGP {8x para afar fécilmente otro adaptador distinto si fuese necesario. El equipo también dispone de un slot Firewire y un puerto de red Ethernet. Completa el con- junto un sistema especial de refrigeracién de 3G-Tek, que es famoso por ser extremadamente sllencioso. El sistema bisico cuesta alrededor de 250€ ‘en su tlenda favorita y esté ala venta en [1] entre otros. Grabadora de video Los requerimientos de una grabadora de ‘video son completamente dite adaptador grifico y la velocidad del disco duro no son demasiado impor- tantes y es improbable que la CPU tenga mucho trabajo que hacer. Por otra parte clestilo de la caja, la capacidad del disco duro y el nivel de ruido serén factores decisives para este equipo. La Travla 137 (1496) (2), como la mostrada en la Figura 2, es una solucién interesante, La alimentacién es similar a las fuentes de alimentaci6n de los portatles y su tarjeta de potencia interna es Inaudible en cir cunstancias normales. La placa base mini TTX Epla ME-6000 de VIA es una ‘buena eleccis ya que el radiador para la PU de G00 Miz queda bajo los agujeros de ventilacidn de la caja. Las unidades estan localizadas en un caballete sobre los slots PCI, Las bahias pueden aco: modar una unidad de perfil estrecho y tun disco duro de 3,5 pulgadas. El disco duro esta montado sobre pasadores de goma para impedir la transmisién de Tuldo a la caja. Sin embargo, el disco duro seguird siendo el componente mis tuldoso de! equipo. Aparentemente no ‘habrd problemas de temperatura. La caja tiene rendijas que, sin Ja ayuda de venti Jadows, facllitan la disipacién del calor tes. El Figura ata caja Casetronies Tvl 7 plata araficiimentealosprocessdores masardientes Lasrejilasdelatapafaorecen afc sipacion elcalr, Figural sistema compactoEX5-3005 de lt-Epoxes ampilablecon una ayjeta AGP yuna tayjetaPCl, Se puede usa el dstema como un reproductor de dsos CD y MP3 aunque el PC este apagado producldo por el disco duro y otros com: ponentes. iLevantate! EL hecho de que el equipo utilice cet geracién pasiva, proporciona un valor afadico, Un equipo de escritorio estén dar consume entre 100 y 120 vatios y esto puede significar unos costes de gasto eléctrco de 150€ al afo, Durante €l fancionamiento normal con dos trie tas DVB, un disco duro y un lector de DVD de perl estrecho, ef consumo eléctrco de el Trava c137 fue alrededor de 50 vatios, lo que supone un coste de menos de 70€ si deja la maquina fun cfonando durante todo un afo jaunque no hay una verdadera razén para ha cero asi! H kernel 2.4.2 acepla ACPI sobre Via pia ME-G000 realmente bin, tecleanda eho 2000-01-01 20:15:00 > ‘prcacpifalarm se le dice al equipo que Je levante alas 08:16 pm; sin embargo {cuando se eseribié esto) et equipo parecia ignorar la fecha, impidiendo a Jos usuarios de este méteco despertar el equipo mas de una vez al dia. La poten cia del Via Epia ME-G00) es COVER STORY perfectamente adecuado para ejecutar software de videograbacién, aunque la (CPU Eden se atraganta con DivX y otros formatos de video, Precisamente por es0 Via ha lanzado una versin a1 GHz. con refrigeracién pasiva, que permite a los usuatios reproducir formatos DivX y Quicktime sin ninguna molestia. Hay que indicar que la caja Travia 137 per mite la utilizacin de una tarjeta “Riser” de Via con 2 slots PCI. Frontal de Aluminio ‘Tenemos un frontal de aluminio solide, sujeto en su sitio com cuatro tornillos tipo “allen”, un slot para un lector de Compact Flash y también el hueco habi tual para el lector éptico de perfil estrecho. También hay un pequeio agu: jero para un receptor infrarroj0, preferentemente del tamaiio de un tran sistor tipo TSOP 1838, El receptor simplemente se pega a la parte posterior del panel frontal con un poco de resina epoxy, 0 adhesive térmico. Este ultimo tiene la ventaja de ser mas fécil de elim nar posteriormente, si fuera necesario, No es recomendable utilizar cola de con: tacto, Entonces coneciames el receptor xe fas infrarrojo al segundo puerto serie de la placa Epia usando un circuito adaptador [34]. Como alternativa, puede usar el conjunto veronf desde (5), que le perm tird encender y apagar el ordenador. Su Propio Equipo Silencioso Tampoco hay necesidad de tener un ordenador ruidoso en su salén, aunque la solucién de auto-construccién es decididamente més cara que comprar un equipo listo para usar al vendedor de ldnicos de la esquina, Una caja com pacta no es lo més indicado para una maquina con mucho uso y mas pronto 0 mas tare necesitara ampliar el equipo. La caja STH de tamaio mini-torre de Silemtmaxx [6] e5 una de las soluciones posibles. Esté disponible en color blanco, negro y plateado y cuesta alrededor de 135€ Las cajas Silentmaxx festin acondicionadas con espuma acolchada aislante, Un ventilador lento de 12 cm de didmetro, con control de temperatura, esta situado al fondo de la caja y suministra un flujo constante de aire. La silenciosa fuente de ali mentacién, con refsigeracién pasiva, Fanless 350PCS del mismo fabricamte ccuesta 199,95€ y puede adaptarse para otras cajas de PC. La fuente de ali mentacién esté refrigerada por un itradiador externo. Elegir la CPU adecuada es una decision dliffel. Las CPUs Pentium de Intel son apenas més répidas que los chips Athlon funcionando a la misma velocidad, pero ro generan tanto calor. Ademis, el calor Figura :Laetayetasacaptadoras gréicas3Dcon lchipeet as Radeon 7000 pueden ser erg das pashamente, estan bln secanocldas bajo Linux ofrecen vatedad de conenlones, Incluyando VGA,OVL salida deTV, se incrementa de manera proporcional con la velocidad de reloj Ralentizar la CPU, permite ralentizar el ventilador y asi se conseguiré un equipo més silenciaso, Dicho esta, no hay una respuesta general a la pregunta de cual es Ia velocidad de reloj que realmente se necesita. 2 GHz es excesivo para el uso de aplicaciones de oficinae Internet, pero sise quiere ver peliculas en HDTV o jugar juegos, simplemente no tendra suficiente potencia. El problema es que los fabri cantes tlenden a dejar de suministrar las CPU mas tentas y antiguas, debiendo recurtir aun chip usado. Algunas tarjetas le permiten ajustar el reloj manualmente y asi se tiene la posibilidad de hacer fan. cionar a 1,6 GHz, 0 menos, un CPU de 2GHz. También hay que resaltar que e consumo de potencia se incrementaré proporcionalmente al cuadrado de la velocidad de reloj. Recortar costes esta muy bien, pero no con en el ventilador de 1a CPU. Los ventiladores pequetios y de alta velocidad, igual que los de las adap- tadoras grificas, son los mas molestos de todos. El Heatlane Zen P4, que también ests disponible en etp//anw, overciockers.co.uky 0 fttpy//am, coolerguys.com,/ por 80€ usa tuberias de calor y se relrigera pasivamente por el ventilador de 12 cm de la caja. Los irra diadores de cobre con grandes, ventlladores y control de temperatura cestin en el mismo rango de precios. Tuberias de Calor Las tuberias de calor disipan muy ef: cientemente y bbombas, pero es necesario hacerlas a medida, No puede doblar 0 cortar un canalizador de calor ya tetminado. Por esta razén algunos fabricantes propor- cionan dos o incluso tres canalizadores de calor conectados a un irradiador de cobre. Desgraciadamente, aumentar los acoplamientos reduce el rendimiento de Ja disipacién del calor, haciendo dificil disear un sistema en el que pueda con- flar jy que la masilia termoconduetora no pueda mejorar! EL Powerold 1200 [7] es un ordenador completamente silencioso, Poses CPU Pa a 3.2GHz esté montado en una caja Zalman ‘Totally No Noise. La tarjeta sgraica es una GeForce FXS700 de 128 MBytes y la placa base es una Asus P4C800 Deluxe. Desgraciadamente el precio de 3650€ quizé sea algo excesiva. Solo la caja vale 1200 USS en los EE,UU sin ventiladores ni ieee nee eee ce 72 QE ®& vatoia ey mode i005 Tine m3 clr Tn Fakess30 BU ‘Strabane raptor Pin Cte pemterepeacd oynPzasdot sania cleale alpina ‘ante tKcon cate eT cenmtipesiteces yn ergo adipar concerexenste Fone de sive poarciesoW sepotenda ‘iamintone que onsen erat repo tempeauadezem weno ook ‘wwnilcom pepsi honors ‘oii ipye walt wap wwe mwmenimencde— mceinaede ae or eae Tia ory cen http://wwurdirectron.com y 1200€ en Europa Refrigeracién liquida Lo peor de a refrigeracién Higuida es tener que preccupatse de que las fugas nel sistema de retigeracin inunden su ordenador. A la luz de los actuales sis temas de presila, con sella doble, esas preocupaciones son infundadas. Es fil hacer un cone recta en tos tose inser: tarls en los conectores de la bomba o del bloque de rerigercién. No alvde purgar el sistema, ya sabe siminar las burbujas de are del interior del creaito despots de rlenaro 1 sistema de relrigeracién e¢ més 0 menos inaudible durante su for numero de altasrefrigeradoras con una fran superficie qe esta seta ala parte tmsera del PC, elimina In necesidad de vrentiladores, “La tinica cosa que escachari es el siencioso zumbido dela bbomba y el ventilador dela fuente de al rmentacién. El kt de refigeracion liguida ‘Thermaltake Aquarius Il disponible en {8} solo enra la CPU y cuesta 109€: un bloque dispador adicional para ia adap taora grifica puede costar alrededor de ase. Las ruidosas adaptadoras graficas. El rendimiento 3D no solo significa for mar imagenes mis répidamente, también implica un mayor consumo energético y de este modo mayor disi paci6n de calor. Las adaptadoras graticas actuales a menudo necesitan tener acoplada un pequento ventilador de alta velocidad para disipar el calor del chip sréfico. Estos ventiladores muchas veces son los ventiladores mis ruldosos del ‘ordenador. Si no necesita el rendimiento de una nVidia Geforce 40 una ATI Radeon 9600, puede ahorrarse un vent lador y un montén de dinero, Las tarjetas adaptadoras gréficas con el, I geramente obsoleto, chip grafico ATI Radeon 7000, pueden funcionar sin refrigeracién activa y tienen potencia sobrada para Parsee, Quake, y Tixracer ccon una resolucién de 1024x768 pixels. La versién de 32 MBytes mostrada en la figura 3. (y disponible en [91] cuesta alrededor de 35€, una fraccién del pre cio de una adaptadora moderna de alto rendimiento, pero mantentendo carac- teristicas tales como salidas DVI 0 de TV. Aemis de esto, la totalidad de los actuales distribuciones soportan el chipset ATI Radeon 7000 por defecto. Desde luego, una adaptadora gréfica con aceleracién hardware para 3D solo tiene sentido si va a usar el ordenador para jugar. Si, una placa base con el chipset. de la adaptadora gratica integrada deberia ser suficiente, como Jos 18456 0 i865G de Intel o incluso la gama de placas base Epia de Via, La :ayoria de los chips graficos integrados no son demasiado potentes, pero puede ejecutarlos como dispositive framebuyfer bajo Linux, lo cual es suficientemente bbueno para procesar textos y navegar por Internet. Discos ruidosos Los discos duros con un velocidad de rolacin alta, como 7200 o incluso 10000 rpm, no conviene usarlos en los PCs para el salén, Estos discos duros se oyen con facilidad por encima del ruido de fondo de un PC normal con ventiladores nuidosos. Hay dos discos de Samsung, el SVIGOAN de 160 GBytes y el SVOSO2N de 80 GBytes, que son harates y silenciosos. Ambos funcionan a S400 rpm y cuestan 150€ y 60€, respectivamente. Su tem: pperatura no tiende a sobrepasar el calor el cuerpo, incluso cuando fueron sometidos al test Bonnie de resistencia, de esta manera climinamos la necesidad fe sistemas de reirigeracién 0 venti ladores adicionales para el disco duro. Un disco duro IDE normal se conecta, con un cable plano de 80 pines que suele estorbar la ventilacién de los PCs, incluso en sistemas que funcionan con venti ladores de bajo régimen de revoluciones. Los cables bloquean el flujo de aire, que ya es bastante escaso de por si. Serial ATA podria ser una solucién, si tan solo puede encontrar un disco duro silencioso ‘gue se ajuste a las especificaciones. El Sinico en la actualidad que se aproxima es un adaptador SATAPATA para el disco ieee eee eels bs poe SD =_ Da m= owed ‘aang eae 00 Agusta Cool taco Seo ery Fecergeorene steseor0 on ripen pat, crungsacey Conpes ide rfforacen eu, figeopaala azanontctly Tet pafeaan sesernsb per regen Dicodvode ead. joie de rodoya ie funcnt soap cada apex erect OSM aden deovoRDVOMRy nad epee. Panel ‘revaipaa paracontbrls vetiadoesy ieecinene dy wn panonileon ‘www, smaconputrcm, wwe wlio cul, wma ae ERs aw ieee Mas duro de Samsung, suponiendo que se ha clegido una placa base que incluya los cconectores Serial ATA. Unidades DVD silenciosas A pesar de que las aberturas para unidades faciitan un manejo perfecto, a duras penas son idéneas para disposi tivos de pequento tamafo en ambientes sensibles al ruido. Por ejemplo, la Pio eer Slot Load (DVD-1208Z) esta alrededor de las 40€ y es més ruldosa que la mayorfa de las unidades con ban deja. Son preferibles las unidades de carga por bandeja de perfil bajo, como las utilizadas. en los ondenadores portatiles. En el caso de las unidades de peril bajo el disco ests directamente sujeto al eje rotor de la untidadl. Los dis positives normales de bandeja o slot ‘usa muelles para sujetarel DVD entre el ie rotor y el cojinete y esto puede pro- dlucir vibraciones, especialmente si el disco esté desequilibrado. Vale la pena incluir una unidad de DVD ROM, incluso si no desea reproducir DVD. Las unidades de DVD son mas lentas que las unidades de CDROM de 52X y e30 las convierte en mds silenciosas. También se puede intentar Adparm -E speed device para restringir la velocidad de la unidad 2 la deseada, sin embargo algunas ‘unidades no responderén a esta orden. Si se pretende quemar CDs, 0 incluso DVDs, nuestra recomendaciones son las srabadoras GSA-40818 0 GSA-40828 DVD de LC. Ambas unidades pueden ‘manejar todos los esténdar actuales de DvD, desde DVD RAM hasta DVD+RW, y alcanzar una velocidad de grabacién en DVD de 8x, dependiendo de la calidad del disco, La GSA-4081B es una unidad asequible, con un precio de venta de aproximadamente 120€. Este modelo etd siendo sustitulda por el GSA-40828. Maestro y Esclavo La eleceidn de la caja puede imponer restriceiones al cableado interno. Si opta por una Travla e137, se vera forzado a conectar el disco duro y la unidad de DVD al mismo cable IDE, como unidaces maesira y esclava, Por motivos de rendimiento es més sensato conectar cada umnidad a un controlador IDE sepa rado, asi subiré la velocidad a la cual se intercambiara la informacién entre los dispositivos, ya que solo un dispositivo IDE conectado a un mismo cable puede transferir datos en un momento dado Desde un punto de vista practico, esto en ‘modo alguno crear ninguna diferencia a su ordenador para el cuarto de estar. Después de todo, no se disefo para susti tuir al servider de ficheros y la unidad de DVD casi no serd usada a la vez que use el disco duro. Un segundo cable IDE solamente impedirs, de forma inneve: sarla, la distpacién del calor. Las unidades DVD de perf estrecho ‘como la Toshiba SDC2612 pueden causar reparos aqui. Fstén codificadas en hard ware para funcionar como Seleccionado por cable, y no se pueden cambiar para funcionar como Maestro o Esclavo. Para ue esta unidad funcione como esclava, necesitara coneciarla al conector central del cable IDE, y eso puede ser laborioso yen algunas. circunstancias - incluso imposible, dependiendo de 1a caja que hhaya elegido. La mayoria de las BIOS de los ordenadores le permiten iniciar desde lun dispositive conecado como esclavo, por lo que podra dejar la unidad de DVD como unidad maestia y al disco duro como esclavo, si es necesario. Esto es preferible, sin duda alguna, a tener que tsar eables extra laos que no se adaptan las especificaciones UDMA 100, solo por conectar el lector DVD come esclavo, Sin Teclado, Sin Monitor El panel MX2 de Matrix Orbital es una interesante manera de controlar un dis: positivo aislado usada como grabadora de video © como enrutador. El panel encaja en una bahia de 5,25 pulgadas y tiene un display LCD azul de dos lineas con 20 caracteres por linea y siete pul: sadores, mis de los que se necesitan para apagar o cambiar la direccién IP. EL panel uiliza USB para conectarse al ordenador; no hemos tenido problemas con los controladores. El modulo jtdl_sto reconoce el panel perfectamente. Un conjunto de pruebas en Java, esté disponible desde la pagina de Matrix Orbital [10]. EI CD que acompaia al panel tiene un cédigo de registro para unt software de control LCDC repleta de ear acteristicas. Se puede usar esta hhecramienta, para controlar medidas y extensiones de hardware como consultar los sensores de temperatura, o controlar los LED de estado, El Matrix Orbital (MX212 cuesta alrededor de 120€ en [11] [h} Sistema sien Eto Epox EXS 3005: et /twmackorplett cau http! epoxcom/httwavucdectroncomt [Bl Cajatrava asetronic Caz htp./muwe -minieccom/ http shop store yahoo. ‘commexpress/http/ iwi. imyelectroicsnlé [B] Guia para construirun receptor sere: eap/omocecorgecevershto [a] Receptor R montace: http. zopuay.deleindexihimn [s] tatde software wake con lan VORonf: tip /bome pagesatfinuesévattn! {6} Gjasaistadasacosticamenteyfuentes de allmentacionsinventiladores silent mays hta/Avwnwkustompescouk/ eap/oomoclentac: nett sientmavede! If] Poweroid noachttp//wunnpowercid [a] Katde veigeraciniquida Thermaltake Aquarius Water ht //uwuaverock (oul htp//munvcrasypecom/ hetp// wanvnew: generation? {o] Tajeta gratia AT Radeon ooorhttp// wanvoverdockerscauk/htp/ ww. ‘genvectcom’htp.irvwn computerlandnl/ [ho}Programa de prueba parael panel LCD: ttp/vmecmatrisonbital on! [rn] MaticOrbial nia: t/t Justompescouk/http//wwn. ‘matrxcritalcam/ hte /anv. Inyelecronicx nit Presupuesto Los PCs no tienen por que ser ruidosas cajas de color beige. Los disenos de caia alractivos y el alslamfento acdstico con vierten el PC en un suplemento agradable en cualquier sala de estar. Sin embargo, al igual que el silencio, la boelleza es dorada, Un sistema hecho a medida puede fécilmente costar dos ‘veces ms cara que un equipo listo para usar del vendedor de clénicos de la exquina, Hacéselo une misma nos ahor: raré diner, pero esto hard que se tenga ‘que pasar un montén de tiempo reflexio nando en la configuracin del sistema, Nada es mis molesto que descubris, cuando es demasiado tarde, que la ‘maquina de sus suefos no es }o bastante ppotente como para reproducir DivX, © jugar a Parseccomo unaseda, Mt Camaras digitales bajo Linux La Caja de Fotos Las camaras digitales progresiva- mente van reemplazando alas, ttadicionales en nuestras casas, Laforma tipicaen g Linux de transferirima- ‘genes desde la camara al discoduroescon gPhoto omediante el médulo basado en kernel de memoria imasivos USB. Los entornos {grficos como digikam prometen un uso mejorado. POR ANDREA MULLER mor mace oe copie en tune, Toes es tres coe os capa tuto cepo ton ar cos del pest ora fpaoe 36 esau ta jae Gra eps de iota tational no gi Siveoy ue han hecho canbe Sites deca cura hae tascranjanr sels weary oars ican cil dhs Sn fsa eee orien aI sore ange insoduocin 3 Conan tent para tener ass di opilons apedal parcours con el PCy es un modelo reciente, Puede ‘que podames utilizar el software pro ducido por el prayecto gPhoto [1]. Este articulo describe ambos pracedimientos ¥ nos introduce a software diseniado especificamente para interactuar con cémaras digitale. Montando la Camara Algunas cmaras, como las series Exilim de Casio o Alto, se comunican con el sis: tema como un disco duro SCSI de la misma forma que un dispositive de memoria USB se conecta al equipo. Podemos usar el comando mount para montar la cémara, comprobando el archivo /var/log/messages para descubrit el dispositive adecuado: Feb 1 19:27:18 aries Kernel: SCSI device sdb: 202087 biz-byte hdwr sectors (10 MB) Feb 1 19:27:18 aries kernel:? sdat Write Protect 1s off Feb 1 19:27:18 aries kernel:> sda: sdal EI siguiente comando ejecutado desde la raiz monta la cdmara detectada que ha detectado como un sda 1 vfat /dev/sdal> o umask=0 mount -t mnt usb en /mnt/usb. Los disposttivos son for mateados con el sistema de archivos EAT tipicamente usado en Windows 9x Como este sistema de archivos no tiene ningiin permiso, el administrador puede asignarlos usando la opcin wmask. 0 es el valor mas permisiva y asigna acceso de lectura y escritura a cualquier directo rio de la edmara a cualquier usuario, Una entrada en /etc/fstab permitira a usuarios sin privilegfos el montaje de la cémara. Las opciones de montale per “| i va OR | eye Figura La open de montaj“showexec” copia los permis de archivos de Windows bajo ino. miten métodos para los permisos como asignar a un grupo usbusers permisos para borrar los archivos de la eémara Tras erear el grupo y definir el punto de moniaje, la entrada puede ser algo como: fmtiusb auto users, > 333, umask-002,2 La entrada gid es seguida por una ID numérica como la almacenada en el archive /etc/group. Todos los miembros dol grupo tienen acceso de lectura y escritura a la cimara, La entrada users al contrario que user, permite a usuarios no privilegiados desmontar la cémara ‘adn si ellos mismos no la han montado, showexee le resuelve el problema resul tante de que VEAT privilegios de sistema. Se debe asignar pe umask para permitirles el acceso a la estructura del directorio, Un efecto secun: dario es que los archivos normales son cetiquetados como efecutables. Algunos programa de Linux como las versiones ‘mas antiguas del gestor de archivos Rox sehusan mostrar una previsualizacion de Podemos showexec para solucionar este problema puesto que em Windows, Los archivos con extensiones no disponga de misos de ejecucién a los usuarios en Imagenes ejecutables. usar ula el comportamiento de como .exe, bat como ejecutables pero no otras (ver figura 1), La entrada fstab permite a usuarios normales montar la cdmara en /ramt/usb usando mouna/dev/sdal. Los usuarios de Suse Linux pueden evi tar este trabajo manual, EI demonio hotphig crea automaticamente la. fstab _propiada tan pronto se detecta a conexi6n de un dispestivo de memoria masiva USB. ¥y-com son etiquetadas Podemos usar casi cualquier gestor de archivos para transferir archivos de ima duro. Si preferimos un programa espe: cializado debemos probar Digikam [2 Es el tnico que funciona con gPhoto 2 y también soporte dispositivos de almace: nnamiento masivo de memoria USB, desde nuestra cimara al disco El proyecto gPhoto. Photo 2, que alcanz6 la version 2.14 en enero del 2004 consiste en dos compo: Tibeerla Wbgphotz, que soparta mas de 400 tipos de cdmaras, y el programma linea de comandos gphoto2 due permit alos usuarios el acceso alas cémaras soportadas nnentes: la 1 proyecto tienen sus ‘gphot00.4.x, La versién antigua tenfa un interfaz grafico integrado y una arquitec ‘ura monolitica estructura modular y fue completamente reescrite por sus desarrolladares, La primera versién estable se comenz6 a poder descargase en febrero del 2002. Las nuevas versiones de este software estin Uisponibles cada pocos meses con ver slones beta y preestrenos para acortar el espacio entre versiones estables y perm tira los A medi por los distribuldores tienden a quedarse atrés respecto al actual estado de desar rollo, los usuarios con nuevos modelos ‘gphoto2 tienen una arios probar edmaras nuevas que las_ versiones Incluldas necesitan recopilar nuevos recursos. No pbstante, esto tambign nos obliga a recom: pilar nuevas interfaces gréficas y gikam puesto que esa herramienta no funeionard hhabitualmente con la hima versin siesta coneetada a tna libreria antigua, Antes de probar todas estas cosas debemas intraducir el comando gphotoz listcameras para buscar que dispost eh tivos se soportan en la versién suminis Si no encontramas nuestro modelo debemos ‘navegar hasta (3) para verifcar el listado de compatibilidades de Ia versién actual de gphoto2, Ulimamente, gPhoto 2 ha meforado et soporte a modelos nuevos. Muchas de las cémaras actuales usan el Protocolo de Transferencia de Fotografias (Picture ‘Transfer Protocol -PTP) [4] que asegura dispositivos PTP. Esto elimina la necesi dad de especiales y permite 2 cualquier ordenador el inter cambio de datos con cualqu trada con nuestra distribucién, én simple de archivos entre controladores + otro dispositivo P1P sin la necesidad de insta Jar ningin software adicional De hecho este tipo de dispositivo no tiene porque estar limitado a cémaras y cordenadores. E] intercambio de datos ccon teléfonos méviles © impresoras es igual de facil. Las cémaras PTP son ‘plug and play” en Windows XP y ‘MacOS X. Soporte Mejorado PTP Si bien el estindar fue publicado en et ao 2000, muy pocos fabricantes estaban preparados para adoptarlo desde el prin Cipio, siendo Kodak y Sony unos de los pioneros. Afortunadamente, otros fabri ventajas, por ejemplo, el del ahorro de costes, puesto que ya no necesitaban apreciar las producir sus ‘Photo 2 introdujo el soporte de cémaras PTP en junio del 2002. Al principto era bastante espartano, siendo solo capaz.de transferir archivos de imagenes a disco. (Otros comandos como sacar el listado de los archivos de imagenes, pistas dest nnadas a la reproduccion de errores 1/0 © interfaces basados en GUI solo funciona- ban a ratos, La establlidad se Increments 3.No fobstante, una cémara explieitamente lis propios controladores. ddramaticamente con la veri 2. ada en la lista de dispositivos soportados estaba mejor soportada que tuna cimara de clase genérica USB USB PYP Class Camera sigue en fase de pruebas, Esta caracteristica Permisos Si nuestra cimara esta soportada, atin tenemos que lidiar con el problema de Jos permisos a no ser que nuestro dis tuibuidor se haya preocupado de pesmitir 4 otros usuarios al margen de root el acceso a la camara, Las eémaras USB se detectan por el sistema ‘como entradas debajo del punto de montaje /proc/bus/ush, Aqui es donde esté lacalizado el sistema de archivos USB, El Kernel genera el sistema de archivos de forma sgenérica de forma similar al pseudo sis tema de archivos /proc {5}. Los cambios ‘en permisos se plerden eada vez. que se reinicia el sistema, Hay dos formas de permit acceso a la . Cambiando los opciones de montaje para el sistema de archivos USB, : Ajustando dingmicamente los permisos usando el demonio hotplug. El primer método es el mas simple de los dos, La siguiente entrada en /etc/fstab one /proc/bus/usb usbrs> devnode=0664,devgid=333 0 0 ‘monta en /proc/bus/usbv con permisos de lectura y escritura para usuarios y ‘grupos con Ja Identidad (1D) de 333 (estos son los usuarios USB en nuestro sistema]. Los usuarios que no sean parte de este grupo solo tienen acceso de lec: tra Estas opciones de montaje son validas para cualquier dispositivo USB y no s6lo para cémaras. El demonio hotplug proporciona una forma més elegante de resolver este problema, Monitoriza los puertos USB del sistema y reconoce cualquier disposi tivo USB conectado por sus respectivos Ids, los cuales se almacenan en archivos jetc/hoiplug. Dependiendo de nuestra distribucibn, el demonio analiza el archive /ete/hotplug/usb.usermap 0 el archivo Figura 3: gPhoto 2 muestra una let de las imagenes enlacémara, [eceuneanonieatoe centre one Figura 2:gPhoto2reconoce nuevas camarasconectadas automaticamente por conexion USB. /etc/hotplug/usb/usbeam.usermap para Ja cimana, Scripts Cuando el demonio conecta con un ds positivo lama algo Jete/hetplug/usb/usheam, que ajusta los permisos para la cémara conectada, ibg- photo2 proporciona cuatro cédigos de siemplo, Si construimos el oSdigo nosotros mismos, los encontraremas en el itectorio de oddigo fuente bajo packa- sing/linechotplug. La mayoria de las istibuciones los almacenan bajo (sr/share/doc ttbgphoto2-versionnamber. ‘Los cuatro scripts de ejemplo suminis ‘ados consisten en: usbeum group, donde el administrador introduce el grupo al que asignar los permisos correctos, shear user, el cual espera el nombre del usuario al que asignar permisos, usb aumxttapp, el eual—‘lanzard inmediatamente gPhoto y usbeam.console El codigo requiere PAM [6], instalado por defecto en Red Hat 0 Mandrake Linux. Este asigna todos los permisos de Ja cémara al usuario conectado a la con: sola, $i construimos nuestra propia versi6n de gPhoto, necesitaremos actua: lizar—usbeam.usermap usando el siguiente comando: fusrfocal/ib/1ibgphoto2/> print-usb-usermap >? fetcrhotplug/usb/usbcam.usermap Si nuestra istribucln analiza ush.usermap deberemos borrar cualquier aw archivo que comience con usdecamt y Juego aftadir el ID de la cémara al final del archive: fusr/Vocal/1b/Vibgphotoz/ > print-usb-usermap >>> /etc/hotplug/usb.usermap La configuraci6n de las cdmaras de esta forma garantiza el acceso a usuarios nor males. Un interfaz grifico no es absolutamente mecesario. La he rramlenta de la linea de comandos de Photo 2 proporciona un amplio abanico ide fanciones, La siguiente sintaxis aphoto2 --auto-detect Muestra nuestra cémara tal y coma es detectada por el programa [ver figura 2) Camara en la Linea de Comandos Solo se requieren unos pocos pardmetros para el acceso bésico. «lista los directo Flos, -L aflade los nombres de los archivos. Los usuarios pueden hacer re ferencia a los niimeros de serle en estos resultado (ver figura 3) usando la sin taxis -p number(n) para flliar archivos especificos. -Phace referencia a todas las imagenes encontradas en el directorio actual de trabajo. Si solo gueremos transferir archivos de imagen especiticos al disco duro podemos indicar gphoto2 -p 2.4.5 para descargar las imagenes 2, 4 y 5 0 especi ficar un rango, por ejemplo gphoto2 -p 2-4, es bastante fécil exchuir archivos de tun rango. Por efemplo gphoto -p 2-6,4 descarga las imagenes 2, 3, 5 y 6, pero no la numero 4 Nombres Intuitivos El programa puede hacer muchas mas cosas. Las cimaras digltales asignan Figura 4 parametro asta lascapacidedes de a cdmaraindicando sl ‘dmarasoporta miniatura, poreerplo.mentaclé, nombres de archivo a las imé- genes que son francamente poco intutives, pero gphoto2 Puede cambiar el nombre cuando descarga los archivos, Para hacer esto debemas indicar el parémetro filename seguido por un nombre, ~fle- ame acepta formatos Upicos de fechas (date) como ‘y, 4m, y $d para aftos, meses y das. Adicionalmente, specifica un nimero, %C el sulijo de un archivo y final: mente %f especifica un nombre de archivo sin sulijo. gphoto2 -P filename cunpleafios juanito s6n.%C descarga las fotogratias de Ja cimara y construye el nombre del archivo con la ristra cumpleaiios juanito_, el nimero de Ja imagen, un punto y el sufijo del archivo, Los parimetros -T' y -t mimero(s) descargan cualquier 0 una seleccién de ‘miniaturas de nuestra coleccion de fotos. Si disponemos de una cimara que puede almacenar clips de video, al margen de Imagenes, podemos —__especificar getaudio dara riimero(s) 0 ~getattan diodata para acceder a estos archivos. ara hacer sitio a nuevos archivos intro wdeletefiles mimer(s) -delete-al files: Las funciones que gPhoto 2 ofr dependen en parte de la cémara que cconectemos. gphoto2 -a nos mostraré las fanciones de la dispositive conectados (ver figura 4) Algunas cémaras_permiten que les subamos archivos de imagenes. El ppardmetro -m seguida de un nombre crea un directorio en la camara y gphoto2 -u nombrefichero sube archivos. Los resul fades de gploio2 ano son. completamente fables, Si bien se supone que el controlador para nuestra cémara de ensayo no soporta capture segiin el programa, es posible controlar la eémara motamente y gphota2 ~captureimage capturara una imagen, Desafortunada mente, la opcién -- capture-sound nos lev a etrores entrada / salida en nu esto laboratario Linux, El pardmetro ~siell permite al usuario navegar pot Jos directorios de la cémara ‘gual que haria por los sistemas de archives locales. Los usuarios pueden introducir gphoro2 ~shell para desplegar ducimos Figura 5Clary funcional GU de GTKam. la linea de comandos intema del pro: grama, Si alguna vez hemos usado un cliente basado en texto FTP, no debemos tener problemas en encontrar el camino. Funciones Adicionales freip muetstra lista de los comandos disponibles para gPhoto2, help rombre- comando muestra a sintaxis de comandos individuales. Is lista los archivos. cd cambia a ote directorio de Ja camara. delete file borra un archivo, get file inicia la descarga de una fotografia al directorio actual, y gecthumbnait hace 1 mismo con la miniatura de la imagen actual. Si abri- ‘mos el shell de gPhoto en un directorio para el que no tenemos privilegios de eseritura, podemos escribir led derectory para cambiar a otro directorio local. El comando show-exif fichero esta disefiado para mostrar los meta-datos del archivo de una imagen, pero no funcioné en nuestro laboratorio. q, quit 0 ext finaliza programa de la linea de comandos, Entornos graficos Sino estamos contentos con la linea de comandos, podemos probar uno de los entornos grifces de gphoto. Hay tmuchos compitiendo actualmente por la posicisn de mejor amigo del forsgrafo 1 competidor mds antiguo ex gtkam {71 competidor fuerte (ver figura 5) que solo provee fancionalidades bésicas Seleccionando Camere | Add | Camera Detect inca al programa que aceda 3 la funcién de avi reconocimiento de Photo 2. Podemos wear ana vista tipo Sbol del gestor de archivos en una cémara que Io soporte. GTXam muestra imigenes en la parte derecha del panel das La vista miniaturizada pro porciona una vista general inicial, E] mem File nos per mite descargar todas las imagenes 0 solo as. selec: cionadas. y borrar de la camara cualquier imagen que hemes transierido correcta: mente a nuestro disco duro digikam ——_proporciona ‘muchas ms vemtajas para ef usuario. En lugar de aban: donar al usuario was la descarga, la herramienta tam: bign gestiona imagenes en el disco duro, Las imagenes se omganizan fen albumes, los cuales con en realidad simples directories. El programa mostrar los dlbumes en lugar de simple mente ofrecer una vista general del sistema de archivos, Las vistas miniatur izadas se muestran en la zona derecha del panel (ver figura 6). Podemos arras: tar y soltar una imagen para copiarla 0 ‘moverla a otro dlbum en la vista arbol Digikam, la estrella emergente Digikam muestra utliza una métoto ablero a ta hora de montar una ciara, ‘Al margen de lea modeles soportedos por gPhoto 2, offece ademés acceso a USB. Podemos seleccionar USB Mass Storage e introduce un pinto de montaje (ver figura 7) para ajstar este tipo de Aispostivos, Seleccionando Camera | Connect mantamos el disposiivo en el archivo da sistema ‘Ademds dela finciones de descarga y borado de imdgenes, Digikam tambien tiene la funcion de subir imégenes, Para verimigenes a excala completa podemos abrirlas opcionalmente en un visor fexterno en lugar de en el visor interno. Los programas KDE coma katckshow y fview son algunos ejemplos de visores externos. Una funcion de presentacin de diapositivas que opcionalmente archivos redondea el programa, La mieva versién 0.7 acaba de salir. sta version tend funcionalidades adi cionales.Digkam usa una arguitectra piig-in en la neva versisn, permitienso 4 los desaroliacores extender Ia for cionaiad del programa. Los candidatos de version 1 y 2 ya disponfan de una ccoleccién de funciones plug-in ‘que proporcionaban las siguien- tes ampliaciones entre otras . Presentaciones de dia positivas com efectos. . Codificador MPEG que puede usar la he rramientas mjpeg: © Imagemagick — para crear videos para Ves, VCDs o DVDs. . Galeria HTML, una extensidn de los plug ins de Konqueror Gallery : Editor de comentarios. ; Ayudante de impresin de fotogratia para ordenar miiltiples imi: genes en la misma hoia . Archivo de CD (nece sita K3b). . Funciones de correo electrénico con opciones para cambiar el tamano y ratio de compresion de los archivos. Funciona con KMall, Sylpheed y Mozilla En lo que se refiere a la gestién ¥ archivo de imagenes digitaes, Digikam ha desarrollado fun: ciones que atienden a todas las necesidades de les usuarios. Aphoto [8] usa un método cis ‘into, El programa es realmente tuna herramienta de gestion de imagenes que ofrece acceso a la cémara como un afiadido. La hherramienta carece de la opcion de borrar imagenes de la cimara. El didlogo Album | Import | Camera proporciona tuna solueién facil no obstante. Cuando arraneamos este pro: grama, FLPhoto—detecta ‘automaticamente la cémara y muestra previsualizaciénes en miniatura de las imagenes en la ventana de transferencia (ver imagen 8). ‘Cee tans Cage See Yow Be SOU Ra wo | Ball a PS ell ‘unos mewiohey micotipe mutton nt figs BS ie 8 Figra 6: Vista deol vista cdmarayprevisualzacionenDigkam [amen Semas [Gel Seios ) aa F heoesiaon oe ee ———— ° $y : fen CD sv j | Soe Figura: Digikam también soporta cémaras que elsistema detcta ‘como sistemasde almacenamiento mative USB. Delt ec: (Saleen one Figura 8:Importacion de imiigenes desde una cmara digital en iPhoto, aw ‘que la tipica vista en forma de rbol, puesto que deja més espacio para la imagenes en el cescritorio (ver figura 9), Si preferimos usar el mismo programa para todas las opera clones con nuestros archivos, puede que lo prefetible sea foptar por usar el gestor de archivos KDE Konqueror para transferir imagenes desde muestra cmara al disc. Gracias a la Kloslave camera la herramienta de gestisn de archivos de KDE puede usar la Nbreria bgphota2 para acceder 4 cualquier camara digital soportada como si estuvieran Jocalmente conectada al sis tema, Escribiendo camaera:/ en Ja linea de direcciones URL, el proceso de auto deteccion le indica a Konqueror que debe ‘mostrar el directorio raiz de la ccimara, Informacién Exif Las Imigenes de algunas, ccdmaras digitales incluyen et amado Exif (Formato de inter cambio de archivos de imégenes- Exchangeable Image File Format) [9], que ‘almacena informacién come la fecha y hora, la distancia focal, el modo del flash o el tipo de cémara, Los usuarios que deseen mantener esta meta informacién mientras procesan las imagenes, no pueden usar herramientas de manipulacién de imagenes tradicionales, puesto que 1a meta-informa ign se pierde al guardar las Imagenes de la camara al disco duro. Se esté buscando una solu cién a este problema en la proxima versién de Gimp, puesto que es capaz de guardar Ja informacién Exif. Mientras tanto debemos optar por el comando llamado jhead (10) Las funciones de gestidn de imagenes seleccionamos Image | Remeove para bo- jhead analiza la cabecera de Exif, la son muy avanzadas. El programa trabaja rar una imagen del élbum, no borramos almacena y luego manda la imagen a ccon dlbumes, que en realidad son Ja imagen fisicamente de nuestro disco. otto programa donde pueda ser editada. archivos de texto que contienen los nom- La barra de previsualizacién en la parte La siguiente sintaxis ejecutaré exacta- bres de las imagenes del lbum. Si inferior de Ja ventana es mis prdctica mente esta tarea head ~cnd *jpeatran -rot 2702 Ai > tot foto-retrato.Jpg {pegeran rota la imagen 90 grados ala izquierda (rot 90 rotaré el mismo Jngulo pero hacia la derecha). Esto es algo que los fot6grafos aficionados nece sitan habitualmente cuando hacen fotogratias con la camara en posicion vertical. jhead é con el nombre del archivo original. &0 se reflere a un archivo temporal donde los resultados serin almacenados. jhead inserta la ccabecera Exif en este archivo y reem: plaza la imagen original con la rotada Como el programa automaticamente asigna el nombre del archivo correcto podemos usar comodines como *.ipg para procesar méitiples imégenes en un mismo lote JPegtran: M Imagemagic! Comparado con convert del paquete Imagemagick, el progiama JPeguan usado en nuestzo ejemplo tiene la ventaja de creat archivos jpeg sin péridas, $i usamos convert, el almacenaje de ims genes recomprimirs la imagen y perder datos de la misina, JPegtsan es parte de Uibjpeg y debe estar disponible con la mmayoria de las distrbuciones. La solucién més directa para visu alizar cabeceras Exif actualmente en Fque GTK es un programa llamado gexif, disponible para su descarga desde la be na. e ra. 9 m0 gina Web del proyecto libexif [11] Usa pestafias para mostrar Jos campos individualmente e incluso muestra explicaciones de algunos tipos de con- tenidos (ver figura 10). La_wltima versién de Digikam, a partir de la 0.6, dispone de la misma funcién, cexiftags (12) es Gul para mostrar infor smacion de Exif en la linea de comandos. Sepata el resultado en la cdmara y las, partes especificas de la imagen. El mismo paquete incluye adicionalmente exifeom, que puede ser utilizarse para rellenar el campo de comentarios del usuario (UserComment} de la cabecera ie Exif (se supone que la propia cémara fija este campo). lamar ala herramienta sin ningin tipo de indicador o parémetro mostraré un comentario, si est Lisponible, exitcom “4 "ny? comment "2 tmaget le. Jpg fijara © sobrescribira et comentatio. St deseamos prevenir que exifcom nos sollcite permiso antes de sobreseribir, simplemente debemos afadir el pardmetro Con Buena Voluntad... Algunas personas ain mantienen que Linux no implementa multimedia como otros sistemas. Obviamente hace tiempo {gue no prestan atencidn al mundo de las cémaras digitales, puesto que se han roducido unos [ernie a.4s0009 nate Alblgphotoa:hitp//wwwmgphetoora/ [2] Digitamhttp//dglam sourceforge net! 1B] stad las eamarascompatblescon gPhotoz:http/~wwmgphotaoryproy/ Iingphoto2/support. php {a} Software gratuito consoporte PTP ht tesourceforge net [5] sistemas de archivos de dsposttves USE: eep/wnveiewr ustorgUSB-guide? ght 16} PAM htp:/wc kernel ong publi” Iislpame 1 Gtamhtip//wnegphotaorgipray than’ [8] flohoto:htps/Amavecsysnccom/-mike? Siphotor [6] bt ammonite hola: http/warnsentexnet/ ~mwvandeljheod’ In gent hte Acureforgenetircecs/ text Inlesags:httpzjohnst oraswvexiRags/ progresos tremendos en esta area a lo largo de los dtimos meses, El proyecto KDE, Digikam,es un buen ejemplo esta afirmacién: es un paquete potente y cémodo de utilizar, que hace {que el procesado de imagenes en Linux sea un verdadero placer. Incliso si no tenemos suerte y Digikam no soporta nuestra edmara, adn podemos utilizar ‘como ditimo recurso un lector de tarjetas bbasado en USB que nos garantizard ser ccapaz de transferir nuestra fotografias a nuestro disco duro . feecweime at avo aceasta antec | Figura: Ventana de previsalzacionyvisualizadordeimagenes de FuPhoto. Figure o:Gexif muestra todala gama deinformacion Exif desde laconfigu- ‘acién dea cimarahastaminatuas, Prueba de seis grabadoras de DVD La Tostadora programas de grabacién especiales paca escribir DVD-RAMSs. El dispositive de grabacién funciona exactamente como un disco duro cuando un DVD. RAM es insertado, pudiendo ser particionado, formateado y escrito sein se requiera. Para formatear un nuevo DVD-RAM con Ext3 simplemente podemos escribir mkezfs J /dev/sed0 antes de ir a mount /dev/sed0 /mant para controladores i iva Figura DVDs compuesto de ds discos pegadosconjuntamente de .6ilimetos de espeso.Lacaps de eflexis, que se daha muy (adlmente, est protegida en el centro ene los dos discos. usar el medio de la misma forma que un dlisquete, Problemas “Plus” Uno de los mayores factores que evitan que el DVD+R tenga mayor difusién es el hecho de que fue introducido con pos: terioridad. Es habitual que el firmware de un reproductor DVD sea incapaz de soportar DVD+Rs. ¥ los medios DVD reescribibles son una fuente constante de problemas. Estos reflejan solo entre el 18 vel 30 por ciento de la luz del laser (ver figura 2) en comparacién con un DVD: ROM de capa simple, consiguiendo por tanto reflexdones tipicas de DVD-ROM de doble capa donde los datos estan almace- nados en capas superpuestas. das Se requiere que el laser enfoque de forma distinta para medios de capa doble y para medios de capa simple. Es bastante comtin que el firmware use el nivel de reflexién como un indicador. Esto normalmente provoca que los reproductores més antiguos confundan DVD-RW y DVD+RW con DVDROMs de doble capa, y, puesto que el laser no puede enfocar la segunda capa, no se pueda reproducir el diseo, Omnivoros y Huelgas de Hambre La batalla entre el formato “Plus” segin cexté sopottado por los fabricantes y ef formato “Minus” aprobade por el foro DVD continia siendo frenética, Por este motivo hemos restringide nuestras pruc bas a dispositivos de grabado de formatos miiples que anuncian soporte para ambos formatos, lo que nos dej8, como usuarios, en el lado seguro de la fuerza. Hemos probados un toal de seis Aispositivs SCSI con controladores ATAPI que actualmente solo se utlizan en estudios profesionales. Tabla resumen de las grabadoras del ensayo ar = we tee wi stad spo Duk oe oa ‘tone iplmepaconmnuR” ——Mmecaok eu po deeper mae 2p ane noe 200 Formats wiod dade de grabacle: - - Dean we a a a yo-2OvOW asta one oh whe rar DRDO ROA pn eta er m7 7 coucD AED HOM aaa ese roar eae sean Programa de grabocin en Un Dio aportados ect moDW 20 OYORDO-RL, DIODE YON YDRENDIRH DID RDWO RH, DIDADIO EN OWOREVOABY —__DNDARINDAR ries BrDsRDNO.RW DespNo4RW rings oroRDNDUW ROO, sRDNDAW ‘abe Debts, ‘anlesDYORCDR, Neste Wirsone DosRDWoRW DO RDWDRN, DosR YON pombe Bawedars Indie econpa) abi DE ae at, Pro earn, sate Widowe ‘abelDetares rperhenamieta xraccea orn, riciguasetusre Wee ates etl, Drove windows us BUS Nose pales enPdst VOR oust Figuraa:vita deloe 5 discos grababes de DVD: DVD-RW amb ala zquera,OVDSRW arriba a derecha, DVD-Rabaj a laqulerda OVD+R abajo ala derecha y DVD RAM abajo. La lferendasen as cractristicadereflesiin son ficlmente reconocbles, Para las pruebas, escogimos delibera damente discos sin marea de gama baja, de precio por debajo de 2 euros. Los pro ductos de marca pueden sec muy caros fen comparacién, costando mente de 3 a5 veces més que los de marca blanca, siendo este el motivo de ‘que discos como Prodisk, Princo 0 Xcitek sean tan populares, Los resultados fueron ambivalentes, no pudiendo todos los. dispositivas ‘manejar todas los discos que utilizamos con ellos. En el caso de la grabadora BTC DRW-1004, incluso disco DVD-R de ‘marca como TDK 0 Teac no funcionaron. Solo las grabadoras LG GSA-4040B y la Iomega Super DVD aceptaron todos los discos sin protestar. Lamentablemente no solo fue el pro bblema de compaginar los discos y las grabadoras. El programa de grabacién dodrecord simplemente no pudo soportar algunos discos, por ejemplo los discos Prodisk en ninguna grabadora. La tabla proporciona una vista general de la com: paracién de discos, grabadoras programas de grabacion, habitual Los ganadores El ganador de muesto ensayo es LG. La seabadort GSA40408 cuesta unos 150 euros (140 para mayoristas), lo que sig. nifica en torno a un 25 por ciento menos que la Tomaga Super DVD. Ninguno de estos dispositives nos dieron el més mia imo problema a lo largo de pruebas, funcionando las dos perfecta ‘mente con un amplio abanico de discos ¥ programas de grabacién, Par etro Jad, solo los dispositivas LG © lomega son capaces de escribir DVD. RAMs. Estos discos (ver la parte inferior de la figura 2) son bastante caros (de 8 a 12 délares cada uno}, pero pueden ser reescritos hasta 100.000 veces, lo que significa una 100 veces mis que los DVD-RWs o los DVD + RWs en teoria, Estos lo convierte en una alternativa interesante alas cintas o los diseos mag: netogSpticos (MODs) en aplicaciones donde gran cantidad de datos necesitan ser transportados frecuentemente. Por supuesto que el DVD-RAM no oftece la misma velocidad que un disco duro Firewire 0 USB 2.0, El tercer lugar ha sido para la popular NBC DV-1300*, Bs tan cara como el dis: positive ganador pero no puede grabar DVD-RAMs. Tuvo problemas con los DVD-Rs de Prodisk usando los programas dudrecord y growisofs pero si los pude ‘usar con el programa edrecord-ProDVD. nuestras EPRISOA La grabadora Teac DV-WSODK fue ‘ocupa tna modesta euarta plaza. Bs silo tun poco més barata que la omega Super DUD pero no soporta discos DVD-RAM. En el pemiltimo lugar encontramos la Plextor PX-708A con un precio de 280 lates, siendo 1a unica grabadora de la comparativa capaz de grabar DVD+ Rs a tuna velocidad de 8, lo que explica la diferencia en precios. No obstante, la Plextor no puede grabar DVD-RAMs. Hubo una cosa que nos ocurtié con un disco defeetuoso de DVD+RW. Cuando _growisofs cancelé el proceso de grabacién ebido al error del disco tuvimos que e la bandeja el dispositivo para convencerlo de que aceptara el disco. BI intentar montar el disco sin abrir la bandeja primero prove: caba que nuestro ordenador se colgara una y otra vez. En otfos casos, el sistema y el comando montar se colgaban juntos durante casi media hora La grabadora BIC DRW-1004 se clast {icé la ditima en el ensayo. Al igual que Ja ganadora, cuesta en tomo 2 150 dolares, pero tuvo muchos problemas con los discos DVDR de Prodisk, Princo, TDK, y Teac independientemente del programa de grabacién que usdsemos. O el dispositive rehusaba escribir el abrir y cerrar manualmer isco 0 el disco no funcionaba en un reproductor de DVD posteriormente. Los discos Xcitek DVD+RW tampoco fun- cionaban correctamente, siendo de hecho la grabadora BTC muy selectiva can los discos que usa. Nuestra recomendacién es la grabadora LG GSA-40408, Conclusién Los dispositivos de grabacién de DVD funcionan en Linux, si bien deberiamos matizar esta declaracién, Un conjunto compuesto por una grabadora, disco y software de grabacién puede no fun clonar, como prueba el caso del dvidrecord. Nuestra recomendacién es clegir o la version actual de growisofs 0 la comercial de edrecord-ProDVD (que es gratuita para usuarios privados) puesto que ninguno de estes programas nos ha dado ningén problema, . Pease [i] Foro DvD organizaiondela tstandarizacion del OVD: mn araforum og i va Moviendo “Sprites” por la pantalla Cash and Carry Enla primera parte de este tutorial vimos como cargar una imagen en una superficie, como transferir un bloque (bit) sobre la pantalla. Este mes, mostraremos cémo esas operaciones basicas de carga y transferencia de bloque se pueden utilizar para componer la pantalla completa del juego. POR STEVEN GOODW N uestra pantalla de titulo en ef J numero 1 de Linux Magazine, BW pubticada en ta pagina 28, con sistid en superficie yuna transferencia de blogue (bli). Pero con tuna superficie y varias transferen blogue, podemos hacer mucho més {Cémo? Bien, pues si tomamos una sola superficie y seialamos un érea de 32 por 32 pixeles. A cada area la llamaremos ladrillo, 0 regin. Podemos entonces transferir un blogue desde cada larillo a lugares especificas en la superficie de la pantalla para construir una imagen com: pleta. Como podemos transferir en bloque varias veces desde un ladrillo (y 4 varios lugares diferentes), uUlizaremos ‘menos memoria que en la pantalla de bienvenida, aunque cubriremos 1a ‘misma drea. La mayorfa de las platafor mas de Juegos usan este método. Incluso en Ios juegos de estrategia en tlempo teal (como Command & Conquer y Warcraft) uusan este sistema, aunque sus graficos sean isométricos en apariencia ‘Al hacer el tamafio del ladrillo uni forme a través de todo el juego, nuestros srificos pueden presentarse en lugares predecibles de la superficie de la imagen haciendo que el eédigo de control sea fentonces mucho mas facil de escribir. También estipularemos que cada super ie deba ser 640 pixeles de ancho, dando tun nme constante de ladillos (20) en cada linea. Esta es una decision arbi tuaria para hacer el trabajo del artisia mis uniforme: mientras mis opciones proponga, jmas sito habr para el error! 1 e6digo para dibujar un solo ladrillo en Ja pantalla seré entonces como el rmostrado en el Listado 1 Aunque cada ladrillo serd alineado sobre un espacio limitado de 32x32, E83 a Trai) Fgura Un grupo de bloques de muestra Figura 2 Alaizquieda, Explorer Dug desprovisto eum alpha. Ala derecha,con unalpha de 28. ruestia funcién exDrawTite ha de ser escrita para dibujar ladrills en cualquier posicion arbitraria, petmitiendo que sea reutlizada por el cédigo renderizador para el jugador y su enemigo. Determi: nar que lado se dibuja y en que lugar se colocari es la responsabilidad de un ‘bucle y una simple matsiz de indice de ladrillos Podemos hacerlo eon una breve funeién como la dl Listado 2. Puesta que ne tenemos ningiin medio de estirar muestros ladrills, cualquiera de las cosas grandes en nuestros niveles (como la puerta de sada) tendra que ser construida combinando varias ladrillos més pequefios. For el contrario, cualquier imagen que sea mas pequeia que 32332 solo ocupara una porcidn del Jaduillo y tendremos que utilizar pixeles ‘wansparentes para ocular el resto. Abriendo puertas [La transparencia se maneja com una 16: nica conocida como afinado det color. Por cada superficie que requiera trans: ere eur ns ladrillo vold exDrauT!1¢(SOL_Surface sprite, Int 1Region, Int x, int ») It SOL Rect sre, dest srcax = (Region % iNuaTiTeWidth) * iTHewtath: sresy = (Region / iNusTiTeWidth) * iTHeHe ight: sre. = iTiTeWiath: sre.n = iTiletetghts dest.x - x: dest.y = ¥3 dest.w = ITiekidths /* No son necesaries actualnente. 92 que son tgnorados */ est.n = (Tieketghts 1 (SDL_s1itSurfacecp tie, sre, pScreen, Sdest) < 0) fprintf(stderr, "Slit errort Bs", SOL GetError()): ’ parencia especificamos wn color simple que, en lugar de ser transferido en blogue, sera ignoradio, No existe un color specifica que tenga que usarse para este propésito. Tampoco deberia haberl. Puesto que todos los juegos son dife- rentes y cada grifico en el juego utlizaré tun sistema de colores distinto, debemos elegir un color clave especifico. Sin embargo, un color cuidadosamente elegida ser, normalmente, suficiente para todos los grficos del juego. Las mejores opciones son los colores, muy beillantes, extremos, los que, por lo general, nadie usaria. En Explorer Dug, uusaremos el verde brillante jlncluso el verde fluorescente! Con unos compo- nentes RGB de 0, 255, 0 es muy improbable que alguien pueda ‘acciden- talmente’ usarlo como parte de un srifico autentico, inchiso para la hietba. Silos artistas quieren un verde brillante seguro que 0,254,0 es suficientemente bbueno, com tal de cue tengamos bastante resolucién con la profundidad de color elegida (Véase el cuadro “Claridad de Color”). He utlizado siempre una clave de color verde intenso en mis juegos. y sin embargo nunca he tenido un pro- bema, Hemos elegido un color, ahora te- nnemos que decile ala superficie cual es SDL_SetColorkey(pGeneralTi1eGfae + SDL_SRCCOLORKEY, SDL_MapRGRCU pleneralT\1eGFx->fornat, 2 0, 255, 003: Esta fumcién toma la superficie y le aplica una clave de color verde brillant. Laclave de color tiene que ser dada en el mismo formato que la superficie y por tanto necesitamos usar la funcién ‘SDL. MapRGB (la cual pasa el formato de la superficie), para convert los compo: nents de color RGB. Si estamos usando color de 8 bits (p.e. una superfile patet- zada), entonces esta funcién buscara el resultado més cercano a los valores ados de RGB en su tabla. Fspecificando después la clave de color para la superfi- cig, cada transferencia de bloque para esta superficie ignorard todos los pixels de ese color, traténdolos como transpa- rentes, Desde Iego que puede cambiar la dave de colar en cualquier punto durante su aplicacién o desviarla com- pletamente con: Dg reed ara ahorrarespacioentarevist, a var ables usadas enlos recortes del cdg normalmenteson abreviatuas del codigo fuente actual. Porejempl,notara quela ‘arable global team noesta presente cenla mayaradeloslstadoeque ofrecemos SDL SetColorkey(pGeneral TileGtx> 0,0: Esto posibilia reemplazar la clave de color para grificos concretos (0 incluso para regiones de ladrillos especificas) en 1 juego sin tener que crear una super Ge separada, Desafortunadamente, SDL no facilita una forma facil de retomar la dave de color actual, pero puede alcan- zatla directamente en la estructura de la superficie para conseguirla como en el Listado 3 EL valor old_colour_key mantiene el color en un formato que la superficie pueda entender y asf no necesita la fun- con SDL_MapXGB_-—— cuando ze-apliquemos la clave a la superficie. Made in Japan ‘Ademés de hacer un solo color tanspa- renle, a veces queremos hacer transparente la superficie completa. No totalmente, pero si parcialmente. Esto daré a la imagen una apariencia fantas- ‘magérica, de tal manera que podamos ver al personaje y al escenario detrés de 41, Para hacer esto necesitamos aplicar un canal alpha. Los efectos especiales hhacen un uso exhaustive de canales alpha; explosiones, humo y lluvia usan eee a sy int inueTitetieight ~ 20, iNunTHTeHetoht = 153 J rellenar una pantalla de 640x480 */ int (THewtdtn = 32, iTHeketght = 32: for(tyr0; tycinunT! leHetght: tyt) For(txe0; txCinuntitevidth; txtt) exDrawTile(pTi leSurface, rmap_datattx + ty * ‘Nun Teb ith. tatiTilewidth ty*iTIeHeraht); DESARROLLO [i SDL Figura 3 Aplade de las superficie. varias texturas sobrepuestas, cada una con su propio componente alpha Usaremos alpha para un propdsito mucho m4s- simple: desdibujar al jugador al comienzo del juego, para indicar que es imbatible, El componente alpha de una superficie se mantiene Claridad de Color sitasup clavede: SDL LoadaMP, usard coor de24 bt igniicacue bitsd componente verde esolucion, a9 as5deben partesilasuperficesolo tiene color de 6 bits, entonces es probable que elverde slo ‘ocupe 506i. ft perdidade precision ignificaquea54y235sonelmiemocolar ficar elformatode lasupertcie 105 grficosson cendos fuer juego noesta disponible Enveals poner dag7suponiendo una preciionde § no importa, iemprey cuando el verde deloscolores real ‘como un simple valor de 8 bits, que el Tango de SDL_ALPHA_ TRANSPARENT (0) a SDL_ALPHA_OPAQUE (255). Por tanto cualquier valor entre estos dos es valido, aunque internamente 128 se trata como un caso especial y por eso se procesa més répidamente. Es posible utilizar las claves de color y las superti cies alpha al mismo tiempo, Como can la clave de color, SDL no proporciona una forma d valor alfa de una superficie sin referirse a Ja variable directamente, como en el Lis: tado 4 También es posible espectficar una cantidad distinta de alpha para cada pixel individual, lo cual nos permitirs rear un borde mucho mas brumoso alrededor del recuperar el personaje. De todos modos, esto es muy lloso, ya que la mayorla de los formatos de fichero no incluyen esta informacién. El formato XCF de GIMP lo hace, pero actualmente no hay muchas librerias que apoyen este formato, En vez de eso, tenemos que cargar dos imagenes, una contiene alpha y otra contiene la informacion grafica {intensidad) y unifi ca mente mediante la lectura de los pixeles especificos de la super cie alpha y combinéndolas con Ia superficie de intensidad. Esto, sin embargo, excede nuestro propésite actual, Ahora Todos Juntos Ahora estamos listas para combinar las tres partes de nuestra pantalla de juego (telén de fondo, nivel de ladrllos y obje tos dindmicos). Esto se puede hacer de un par de maneras. podemos dibujar cada una de las partes por turnos, obstante, para mejorar la velocidad del La mas obvia, ‘como en el listado 5. No juego, pondremos una condieién adi tional: El primer ladsillo (cegién 0) nunca sera renderizado en el area de juego. Nunca, Esto es porque la mayor parte de este area ests, de hecho, vacia, Se p eso de Ja CPU si la mayor parte del cédigo de renderizado involucrade dibu Jara blogues, Jeria un montén de tiempo de pro eT Rte eae Cerne eee colour key fx 18 SDL SRCCOLORKEY d.colour_key SDL SetAloha(pPla SDL_SRCALPHA xpos. pr SDL SeralphavpP' Figura 4:Completandolaimagen deljuega. transparentes en la pantalla y, en los jue £805, siempre nos alegramos de descubrir ‘optimizaciones de velocidad, La manera mas répida para dibujar alga es no di jarlo en absoluto, asi que sacrificaremos cesta mintiscula cantidad de memoria al ‘gran dios de la velocidad. Podemos mejorar la velocidad mas aun mediante la combinacion del telon de fondo y les ladtillos en una Gnica funcidn de renderizado. Esto se puede hacer muy facilmente diciendo que si queremos dibujar el primer ladrillo (el transparent transterir un ‘completamente ccopiamos realmente (p. bloque} una porcién del teln de fondo sobre la pantalla, Por otra parte, dibu jaremos un ladrillo en vez del telén de fondo, De este modo, en una pantalla ‘con 300 lacrillos (20x15) dibujaremos 300 ladrillos con datos validos, Mien. tras que, en la propuesta original, habriamos dibujado 600. La cuestion de es mas répido dibujar un ladrillo grande (el tel6n de fondo) qué varios Pequeftos” se la dejaré a las pruebas de rendimiemto. Hay muchas variables a cconsiderar en este tipo de optimtzacién y la dna forma de saber que método se ejecutard ms rapido es probar ambos, Durante el desarrollo que la solucién uusaba met (alrededor del 8% eso la adopte. varios pequeios’ proceso segiin top) y por Usando esta idea, ahora podremos escribir una rutina especial para dibujar un ladrillo plano, que deberia (0 no ddeberia) copiar la superticie del telon de fondo en lugar de un ladrillo (Véase el Listado 6) Si hay ladrillos que impliquen transpa: también necesitaremos copiar al telén de fondo antes de dibujarlos Determinar que ladrillos especiticos tienen, pixeles transparentes no es dificil, pero es lento Asi que comprobar cualquiera de cuando comienza el juego, 0 indicarle al artista que solo los ladrillos con 8 0 superior (por ejemplo} pueden tener transparencias. Eh la segunda opei6n, pademos Borrando y rebobinando ‘Ahora somos capaces de dibajar Ia pan tala una vez) necestamos ser capaces de dibujaria varias veces. Lo cual nos permits animar’ algunos enemigos movigndose en la parte superior. El céaigo para esto es muy fc, pero ha de ddesagradables chismes en la pantall tuna carga innecesaria para la CPU (Véase el Listado 7), Por “dinamica realmente queremos decir dos cosas: Pete REC ea) ladrillo plano Odjetos que: © Objetos que permanecen quie tos, pero animados Componer la pantalla implica eliminar cada objeto dindmico de ella, asi que nos hemos quedado con el fondo estitico otra vez. Esto se puede hacer de una ccuantas formas distinias Primeramente, podriamos interrogar a cada objeto dindmico para recordar a que se parecfa la pantalla antes de hhaberla dibujado y entonces redibujar ese bloque cuando solicitemos una reposicidn. A pesar deser aceptable, esto implica un montén de trabajo en la parte de cada siderando que dos (0 més) abjetos ‘Aun asi, éte ruede ser seguramente el métoclo mas objeto y no estamos con. puedan_ superponerse. eliciente de reposicién, Ademas podriamos lamar a exDraw Static otra vez, Esto podria pero seré muy lento, Sin embargo, sila imagen del telén de fondo alguna vez estuvo animada necesitariamos imple mentaresta solucin enol) Peele circ) Pye) Pe) Doble Bufer 8ajoXn,podemos conseguir grifen suaves porque nunca exribimes drectamenteen lapantalasexibimos en un ber separado _y SDL tasfie os bloquesala pantalla Sin embargo algunoscontroladoresescriben lian, terght, 16, 7 SDL_HWSURFACE | SDL_OOUELERUF): Estoahade dos biferesalasuperficiedela pantala,unbiferfrotaly un bifertasero Podemos escribir en esta superficie como ‘normal conta func SOL_BitsurfaceySOL sco excibira dentro de un bifercen el trasero.Entonces.en lugar de actualizarla pantallacon UpdateRect intercamblamos losbiferes de pantalla usande: SOL_FVip(pSereen) sto realizard una copia dela nuevaimagen desde lifer traseroal bier deanteroy estaremas istos para escribir elsiguente uadro.£s el ufer delanteroe que entonces semuestra ena pantalla, 1a tercera opcién es hacer uso de la funcidn exDrawLevelTile y redibujar el ladrillo por debajo de cada objeto dindmico usando cédigo existente. Esto es un punto intermedi entre ambas ‘opciones razonable, tile_x = EnenyCobj).xpos /> sTitelidths tile y = EnenyCobj).ypos /> ‘sTiletet ght; exDrawLevelTile(tilex, tiley Si los enemigos se extienden sobre dos a ‘mas ladrillos, entonces cada uno de esas ladrillo necestaré ser redibujado, Detectar esto es bastante fécl puesto que nos hemos cerciorado de que cada ladillo del juego tiene el mismo tamafio: 32332, Ast que sila pposicin del enemigo no estéen el limite de los 32 pixels (pe. 0, 32, 64, 96, 128, etc debe superponerse por lo menos a mas de ‘un ladrilo, Podemos ampliar el cédigo anterior paraincticlo en el Listado 8. Para eso necesitamos un reciclador C, cl simbolo de porcentaje (54) es el ope- rador del modulo y devuelve el resto del caleulo (en nuestro caso xpos/Ancho) ‘As{que sl aparece un resto es que esta: ‘mos solapando el ladrillo veeino. Desde aqui podemos dibujar y actua- lizar la pantalla completa. También podemos llamarla repetidamente en un bucle para moverlos enemigos alrededor dela pantalla Capta el mensaje SDL utiliza un paradigma conocido como programactin orientada a eventos. Esto funciona de a misma manera qe lo hace X Windows, Microsoft Windows ¥ la ma- yoria de la programacion para entornos ‘grificos de usuario (CUI para los amigos}. Tambien ests algo relaconado con la po- gramacion de redes. En una aplcacin “tradicional” para consols, el programa comlenza, hace algo y temmina. Un soft ‘ware allamente interactivo-no_ pueden trabsjar de este modo, por culpa de la tapa “esperar una entradlinpm)”. Men tras esperamos una entrada, no puede suceder nada y si ocurre algtin tipo de entrada que no es la que esperamos (como una entrada de ratén, mientras esperamos una pulsacon de telado) se remos incapaces de procesara. Adem, Ja muting de enti ests ciiendo que ests “blogveada”, lo cual impide qe el resto de la accién (como las actuaiza: ciones de pantalla 0 las animaciones) fcura hasta que se recba Ia entmada esperada, Los juegos basados en tum, tomo el ajedrez,funcionan bien con el bloqueo de entrada, per los juegos de accion como el muesto no to hacen, as que tendremos que usar el paradigma de [pogramacisn orientado a eventos (Con la programacién arientada a even- tos, en lugar de_preguniar, cuando queremos, a Linux por una entrada specifica, nuestro programa se pone en tun bucley continuamente pregunta “hay alguna entrada, hay alguna entrada”. Entonces, cuando llega la entrada (que puede ser de cualquier tipo), la proce- saremos y continuaremos con nuestro Tiny Siac Peeled oo 08 buele exDranstatict while(TheGame. bis Running) 1 exfepainScreen(): /* Quitar todos los objetas dinamtcos */ exUpdatetevel(): /* Actualizar os odjetos dinamicos */ exDrawDynamic(); /* Dibujar Jos objetos dinimicos que regresan 9 1a pantalla */ SDLUpdate(pScreen, 0.0.0.0): 1 Preguntando de muevo “hay alguna erarada, hay alguna entrada’. Este proceso también es conocido como encuesta (polling). Fijémonos que se llama “orientada a eventos” y na “orien tada a entrada” porque Linux puede ecimos varias cosas (como que la ven tana se ha redimensionado © se ha cerrado} y no solamente que el teclado 0 el ratén envian una entrada de datos, Bajo SDL. nos da eventos cuando: Hay sefial de entrada desde el teclado, el ratén o la palanca de juegos Nuestra ventana se ai desactiva Nuestra ventana se redimen- siona (solo ocurre si se llama a SeiVideoMode desde ‘SDL_VIDBORESIZE) Nuestra ventana se cierra, en aose Sete eact et cies limites del ladrillo iF (EnenyLobj] xpos iTHewidtn) exDrawLevel Tilect ile xl, they): IF (EnenyLobj].ypos ITH leHeignt) exDrawlevel Tle(t te_», tie ys) if ((Eneny[obj].xpos © iTilevidth) 84 (Enenyfob].ypos iTiTeHeight)) exDravlevel Tilectile xt, tile ysl; reer er Mana rce Cae rcteaenicy Pn rie sa acs pir SOL Event ev: wh! 1e(SDL_Polevent(gev) >= 0) t (* ev. type representa el tipo de mensaje que recibinos */ J Waneja el mensaje y continua 1a encuesta para mis eventos */ if (ev.type = SDLOUIT) /* Debemos manejar esto */ break 7 Otros manejadores de rrensajes van aqut */ ' ccuyo e380 debemos salir del bouce de eventos ycerare ro sma + Nuestra ventana necesita red bujarse (en ese caso debemos amar a SDL, UpdateRec) Estos eventos son puestos en una cola Imemamente ynos tos dan cuando pre- guntamos por ells, uno por uno con la facia SDL. PltEvent ste bucle funciona muy mal :Por «set Porgue no hay nocisn del tiempo. Primero, con un lazo tan apretujado, Linux tiene may poco tiempo pare procesar algo. 6s el equivalente moder no del (10 GOTO 10 Este problema se puede resolver fécilmente introduciendo tin coo retraso con la. funcién SDL_Delay que vimos el mes anterior Esperando an miliseundo cada vez que sjecutamos el bucle no significa mucho ara nuestro juego (seguimos sintiendo ue el teclado y el raton responden), Dero para el Sistema Operativo sers la diferencia entre trabajar bien y dete: nerse completamente El segundo problema con el tiempo ex que el juege se ejecutara tan rapido como pueda, De tina forma bastante divertda, pero es0 no es lo que quere ‘mos. Los juegos deben funcionar tan Tipido como sea posible, pero no al Imiximo, Si nuestro monitor reresca sv pantalla 7. veces en un segundo, fentonces tendremos 70 imsgenes dif rentes cada segundo. Si nuestro monitor refresca a 85 Hz tendremos 85 ima. genes. Este es un limite natural prove- cado porque la funcin SDL_UpdateRect espera hasta el siguiente ciclo de red- ibujado del monitor antes de permitir que nuestro juego contimie. Para hacer esta temporizacién uniforme tenemos que manejarla nosotros mismos Introduciendo blogueos de cuadro, donde el ritmo de presentacion de cuadros se tapona hasta pararlo si exceder un valor espectfico, Los juegos comerciales de 3D (como Unreal) siempre marcan 60 marcos por segundo, ya que esto esta bastante cerca del indice de refresco de una tele- visiin © de un monitor y hace que el juego parezca que va fino 60 cuadros por segundo (ps) significa que debemos terminar el proceso de cada cuadro en menos de 16,666 milise- gundos. Desde luego que se puede conseguir, si bloqueamos nuestro juego a 60 fps. Si conseguimos producir el cuadro actual mds aprisa que esto, esperaremos tun rato (oua vez, con 1a funcién de ‘SDL Delay) hasta que han expirado nu estios 16,666 milisegundos, si no continuaremos con el cuadro siguiente. Sin embargo, cada vez que completemos tun ciclo de nuestro bucle esperaremos siempre 1 ms, lo minimo para cercio- ramos de que el procesador, y otros aplicaciones (tales como les demonios el servidor) consiguen un momento de respiro. Podemos medir tiempo con la funcién. SDL_GeiTicks. Esta devuelve el niimero de milisegundos desde que el programa fue iniciado y puede ser colocada en cualquier parte del cédigo de actua- lizacién del dibujo para averiguar cudmto tempo toms el cuadso anterior Esto debe estar en tomo a algunos milisegundos. El resultado de SDL_GetTicks se alma: ceena en un Uinr32 lo que significa que el contador de tempo se reiniciaré después de alrededor de 4 mil millones de milise- sundos 0, en otras palabras, 49 dias. En nuestro juego, esto solamente sucederd si usted juega 49 dias seguidos. Esto es inverosimil, y los efectos secundarios (negativos) serin probable- ‘mente minimos. Pero en los juegos en linea con acceso masivo de multi- jugadores tales como Ultima Online, esta acontecimiento es Ja norma, no la excepclén, As{ que si estd utilizando Dg Listado 10: Un manejador Pas eacerunce simpatico para Explorer Dir 01 SOLEvent ev; 02 Vint32 prev tive, curr_time; 03 Uint22 period, delta time: 04 period = 1000/60; /+ 16 nil Hsegudos entre cuadras */ 05 TheGane.bIsRunning = TRUE: 05 prev_tise = SOL_GetTicks( 07 wnile(SOL Pollevent iter) >= 0 44 TheGame.bIsRunning) 03 | 09 exUpdateinterFace(tev): /* procesado de eventos de] teclado/palanca etc */ 10 do | 11 curr_tine ~ SOLGetTicks(); 12 J+ Comprobar si han pasado 49 tas */ 13 if Courr_tine > prev time) 14 dette tine = curr_tine-prev_times 15 else 16 delta tine = oxtteetett (prey_time-cure time) + 1: 37 SoL_petay(1): 1B) 19 while(SOL Poll event (ter) >= 0 48 delta time < period) 20 prev_tive = curr_tine; 21 if Cey.type = SDL_OUIT) 22 breaks 23 exRepatrScreents 26 exUpdateLevel 0; 25 exDraudynamic(); SOL_UpdateRect(TheGane. pscreen + 0.00.0) 2) esta funcidn ya estd advertido sobre el tema y de los pasos convenientes para evitar el problema, como hacemos en el Listado 10, Ahora tenemos un lazo de evento en estamos listos para procesar evento que recibamos, sea del rat6n, el teclado o, incluso, de una palantca de juegos. Pero por lo que se refiere a abarcar completamente esos acontecimientos, y lo més importante, c6mo los utilizaremos para controlar nuestro juego, tendremos que esperar hhasta el mes pr6ximo... . Interfaces de Texto con curses Dialogando se Entiende la Gente El otro dia estuve en un taller mecénico de esos que tanto me gusta poner como ejemplo (silos frenos de mi coche ya funcionan de nuevo, gra- clas por preguntar) y tuve ocasién de comprobar por enésima vez lo queya mencionéen esta misma seccién hace un mes: ahi os tenias, dos orde- rnadores Pentium de trigésima generacién,corriendo Ventanuflas eXPlosién, chupando miles de megas de RAM, requiriendo tarjetas graficas de ultima generacién y discos duros del tamaiio del desierto de los Mone- gros y todo gpara qué? Para que el personal de administracién corriese tn programa de facturacién en modo texto. Que desperdicio! O tal vez no. Creo que cada vez hay més gente aparte Je mi que piensan que para lo tinico correr programas en modo texto, due sin DVDs y dons es para jugas, V Bs la Gnica manera de estar que no se cuelgue o se comprometa el sistema con algtin fallo de seguridad. A mi entender, comprar un superorde: nador, més potente que los que se utllizaron para poner a los primeros hombres en la Luna, y pagarle una Hicencia a Microsoft para eso, es una burrada L Ya puestos, sirve una insta Jn de Linux (0 BSD) en modo texto, sobre cualquier trasto viejo rescatado del deswén yun buen programa en curses, que con un poco de trabajo, se puede hacer de todo, Precisamente, el ejercicio de este mes consiste en demostrar Io sencillo que es crear otones en una aplicacién de consola Envolveremos todo en clases C++ y nos ba iiciamas el mes pasado. remos en la aplicacion que ya ejemplo que implementaremos es una ventana de idlogo con tres botones: “Aceptar "Abortar”. El usuario ha de ser capaz. de navegar por los botones (utilizando, por ejemplo, las teclas cur ‘Cancelar ejemplo, Enter. Al pulsar esta diltima 1a de pader recuperar el valord botén pulsado para asf actuar e Si os d ceurses.tar.ge que encontraréis en http ‘wut finuxmagazine.com.es/ Maga: pownloads/02 y lo compilais (se incluye tun Makefile para simplificar este pa ddescubriréis que el programa de ejemplo 50), funciona como se ha deserita en el pa- rrafo anterior. Una vez con la aplicacién ccortiendo, si pulsamos en 7 se abre una ventana de didlogo con los tres botones descritos, Podemos movernos de izquierda a derecha 0 de derecha a izquierda con las teclas de cursor, y se iin iluminando cada uno de los botones (ver Figura 1). Cuando pul- samos Enter ef didlogo se cierra y la aplicacién recoge el valor e imprime el ‘hombre del botén pulsado (ver Figura 2). Para salir de la aplicacién y volver a la linea de comandos, pulsaremos Ese Aplicaci6n Lo primera es scharle um vistazo a la funcién main. Como podemos obser- var en ol Listado 1, sigue siendo ‘minimal, Aungue hacemos tna lamada aun nuevo método (diatwin()) en el bce principal dela foc, qe es pre cisamente la que se encargars de poner tun cuadro de dislogo en 1a pantalla, Como en ia vasa mayorta de Ios casos, 1 nimero de botones que contiene un [erence 01 include “application.h 03 int maincy ot int ch, cDialogos-1; application my_App(TRUE, “Mi Aplicacién ndmero ¥1".1); while ((ehemy_App.wGetch()) 1-27 ) 1 y_App air te(1.2,"Yuel ta nt: 31" counters: if (ehekeV_F)) i my_App.dia1Nin(50,10,"Esto se supone un Di8iog0.","Disiogo 41" cDialogos++); ’ didlogo son dos, Aceptar y Cancelar aunque nuestro ejemplo eontenga tres), fen aras de la simplicidad y para man- tener el cédigo simple, no ‘mplementamos ningin método en la clase appttention (ver Listado 2) que sirva para personalizar los botones (esto vverems como se hace en futuras entre- gas de esta sete). ¥ ya que hablamos de application, veamos como ha cambiado desde el mes pasado. Como podlemos ver en el Listado 2, es Igualmente muy sen- illo y minimal. Primero tenemos un nuevo tipo de dato, el tipo button, del que después hablaremos, y con él ereamos un vector que almacena los datos de los tres botones, Aceptar, Can- ceelar y Abortar, que vamos a mostrar Para aquellos no familiarizados con la clase vector, os diré que es una adicién muy ail al arsenal de clases de C++ Para utlizarlo, hay que inchir el fichero de cabecera vector (con #include < vee tor>). Bisicamente, un vector en C+ + es un array que puede admit cualquier {ipo de dato, primitivo o no, e imple- ‘menta una serie de ditiles métodos para afladir nuevos elementos, devolver ele- ‘mentos de una posicién determinada (con el método at(indice), del que después veremos un ejemplo) 0 para cal cular su tamaiio tanto en bytes, como en snimero de elementos. Para llenar el vee- tor utilizamos el método push back() asociad a la clase vector que lo que hace es afiadir un elemento a la cola del vee- tot. El siguiente paso consiste en crear tun objeto window (en este caso lo lla- mamos dial_box) y, como tenemos sobrecargado el constructor de la clase ‘window (después lo veremos), al pasarle como parimetto el vector de botones, fentve owes, se invoca al constructor que crea una ventana de didlogo, Bisica- ‘mente eso es todo, puesto que, una vez amada, el conteal se pasa a la ventana de dialogo, que implementa su propio Duele y que no cede el control de vuelta 2 application hasta que se seleccione tuno de los botones y se pulse Enter. Cuando esto sucede, application puede consular el botén activo en el momenta de cerrar la ventana de dislogo reco- giendo el valor devuelto por el métode closeWindow). El valor devuelto por closeWindow() es un mimero, que en esto caso puede ser 0 0 (Aceptar), 0 1 (Cancelar), © 2 (Abortar). En nuestro Dg ejemplo, el método dial Wind) se limita a imprimir la etiqueta del botGn para efec- tos de depurad, Ventana Pasemas ahora a los métodas de la clase window, que son los que hacen la mayor parte del trabajo sucio. Podemos ver un fragmento del archivo window.cpp en el Lisiado 3. Lo primero que destaca es el constructor que implementa las ven- tanas de dislogo. Tenemos un atributo, aE TCR Cte) dialwin() en erates) 01 void application: :diaTwinCint Gial_Width, int dial_Height, string dial_Text, string dial_Title="untitied" 021 03 button ‘the_sutton(1.dia1_Hetght-4,"Ac eptar): 04 vectarcbutton> dtal_suttons: 05 in]_Buttons.push_back(the But tons 06 ‘the_Button-button¢11.dial_Heig ht-4,"Cancelar") 07 i9]_Buttons.push_back(the But ton): ‘the_Button-buttont22,dial_Heig hited, *Abor tar"); 1a1_Buttons.push_back(the But on 10 11 nakestringtdiat_ritted 12 window dia) Box(die1_width, dial Height, diol_text, dial Buttons, 0, dial Title): 1B Mint button Pressed-dial_Box.closell indow(): 15 16 app Window wirite(2,2,d1a)_But ‘tons. at (button Pressed) .getTag On v4 Pe) Listado 2: Los métodos relevantes de window en window.cpp 001 02 03 008 006 006 007 08 09 a0 on nz a3 a8 a1 016 07 a8 as oo oa 022 023 ozs 02s 026 oer ozs a9 a0 om az oa 03a 135 036 037 038 039 40 oan oz us include "window.f window::window(int wide, int high, string content. vector buttons, int button Num, string win None="Untitled”...) 1 w buttonseputton borders _tnact ive push back(Acs_ ULCORNER: borders _Inact ive.push back(ACS_URCORNER, borders _Inact ive. push back(ACS_LLCORNER) borders _Inact ive. push back(ACS_LRCORNER) borders _Inact ive.push_back(ACS_HLINE): borders _Inact ive.push_back(ACS_YLINE?: borders_Act ive.push_back(ACS_ULCORNER|4_STANODUT % borders Act ive.push_back(ACS_URCORNER|A STANODUT ‘i borders_Active.push_back(ACS_LUCORNER| A STANDGUT » borders _Active.push back(ACS_LRCORNER|A STANDGUT ds borders Active.push_back(ACS_HLINE|A STANODUT) ; borders_Active.push_back(ACS_VLINE|A STANDOUT) active Button-button Num; iF Gide>cOLs || nigh>LIVEs) 1 rmakeDiaogue( 20.10, “Dialogue too big, Error” closeltindoxt); ' mmakeStr ing(win_Nane makeDiaToguetwide.nigh.content win Name): int. window: :closeWinéow() 1 de1_panelp_Handte): etwin(y Handle): refresh); return (active Button); 048 ous 045 oy og og 050 051 52 asa 054 055 056 os? 058 059 050 61 052 053 058 055 056 087 068 069 070 ort ore 073 ora 075 076 077 078 079 go gl 082 083 84 as 086 oer 088 89 090 091 092 093 098 095 void window: :nakeDfaloguetint wide, int high, string content,string win Hone) 1 {nt poste(COLS/2)-(wide/2); ‘nt post=(LINES/2)-(nigh/2); Hanal e=newinthigh,wide.posy posi): titlenwin Name; has_Frome=TRUE; p-Handle=new panel (u Handle); putTittecd: wirite(0.0.content) activeputton(); showPanels(; tal Loop¢ Void window: :dtatLoop! } 1 nt ch hiteC¢chegetch())1=13) U switch (ch) 1 case KEY_LEFT: if(active Button=0) active Button-y Buttons. size(); active Button-+; activeButton(); break: case KEY_RIGHT: active Button; iF(active Buttonew Buttons. size)) active sutton=0: activesuttont) break: 1 Jake ite(0,1,"Botén Bi" active Button): Jsikeite0,2,"Pul sado 4i",ch) ’ Bg Ba Per tere ACS RAUL UL 3) ok COS sco 097 | 098 for(unsigned int 1-0;icx_Buttons.sizet i++) 099 100 dranButton(w_futtons.at¢i) .getTaa( ).w Buttons. at, ().gatPx(), Buttons at(1) getPy(),borders_Inactive) ; , drawsutton(w_tuttons.atCactive Button) .getTag(), vw Buttons.at (active sutton) getPx(). vw Buttons at (active Sutton).aetPy(), borders Active): 1 void window::éraxButton¢string Tabet, int but_t, int but_Y, vectoréchtype> borders? 1 {Primera fila del poten nwadéch(w_Handle,but_Y, but_K,borders.at(0)); Fortunsigned int i=D:i

También podría gustarte