Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Jogos: Puzzle Pirates, FreeCiv Book Review: Ruby, for teams... Agosto / Set 07 :: Número 4 Linux no Geral • Tudo o que queria saber sobre criptografia... • Um dia sem X • Escolhendo uma distribuição Linux • A Internet Assimétrica • Open Source na prática • Paravirtualização • Concentrando-nos no Utilizador Final CS em Linux Controle o seu desktop com o seu telemóvel através de bluetooth. Entrevista com Vasco Costa O programador português do jogo FreeCiv fala-nos da sua experiência em programação de jogos open source. Jogue um dos melhores FPS no seu sistema operativo favorito. Revista Linux Editorial C omo todos os leitores devem ter reparado, não houve edição de Junho/Julho. Tal deveu-se à falta de disponibilidade da equipa que compõe o núcleo de colaboradores permanentes. Todos se encontravam a trabalhar ou a gozar umas merecidas férias. Esclarecida a nossa ausência, estamos agora de volta com a edição Agosto/Setembro, que não tem um tema principal, mas cuja qualidade não consideramos de todo inferior às edições anteriores. É notória também uma grande colaboração de colegas brasileiros nesta edição – como nunca tivemos antes. Tal só prova a universalidade da revista em território lusófono que contribui para uma melhor comunicação entre as diferentes comunidades. Temos recebido alguns emails com pedidos de divulgação de tecnologia (programas, projectos, etc.) mas só devemos fazêlo por meio de artigos. Assim, se alguém quiser divulgar um projecto, pode escrever um artigo sobre ele, seguindo as regras no site oficial, e enviar-nos. Convém também explicar nesta altura o porquê da restrição da publicidade da lista de empresas a empresas portuguesas: O Linux e demais software open source não têm ainda tanta divulgação/uso em Portugal como noutros países (esta foi uma das razões pela qual a Revista Linux foi criada). Por outras palavras, Portugal ainda está muito dependente das tecnologias de uma empresa grande, normalmente associada a cifrões brilhantes. Ao haver um espaço na revista com as escassas em- presas portuguesas dedicadas ao software livre, estamos a indicar a eventuais clientes que tais empresas existem e podem assegurar um melhor serviço com as melhores tecnologias. Se colocássemos a lista ao dispor, por exemplo, das empresas brasileiras, certamente metade das páginas da revista seriam para publicitar essas empresas. Quem nos dera a nós não haver sequer a lista de empresas portuguesas por essa razão – só indicaria que chegámos a um nível bom de divulgação do software livre. dadeira Revista Portuguesa de Linux. Com os melhores cumprimentos, Joaquim Rocha Com o apoio do Núcleo de Estudantes de Engenharia Informática da Universidade de Évora Pedindo mais uma vez a compreensão dos leitores pela nossa ausência, espero que gostem de mais uma edição da Ver- A Equipa Coordenador de Projecto/Editor Joaquim Rocha Colaboradores Permanentes Duarte Loreto, Joaquim Rocha, Luís Rodrigues, Pedro Gouveia, Ruben Silva, Valério Valério Colaboradores Avi Alkalay, Gustavo Homem, Mayko Nestor, Pedro Gaspar Revisores Helena Grosso Website Luís Rodrigues, Joaquim Rocha, Pedro Gouveia Design Joaquim Rocha, Ruben Silva Contacto: editor@revista-linux.com Linux é uma marca registada de Linus Torvalds. A mascote Tux foi criada por Larry Ewing. 3 Número 4 :: www.revista-linux.com Revista Linux Número 4 Tudo o que que- Um dia sem X para quando, ria saber sobre Aporsolução alguma razão, não tecriptografia... mos acesso ao ambiente Uma descrição da criptografia para clarificar o seu conceito. pág. 8 Blogosfera gráfico? pág. 11 Escolhendo uma distribuição Linux Conceitos a saber sobre o tipo de distribuição a adoptar. pág. 14 Uma reflexão sobre o "jornalismo" pessoal em forma de página web. pág. 17 A Internet Open Source Assimétrica O estado da internet n a p r á t i c a portuguesa actual. Como jogar oppinião sobre o pág. 19 CS no Linux Uma software open source acFinalmente poderá aprender como jogar este fantástico FPS em Linux. pág. 22 tual. pág. 24 Paravirtualização Conceitos base sobre virtualização. pág. 26 Concentrando-nos no Utilizador Final Uma visão diferente com para onde orientar o Linux. pág. 28 BluePad Agora pode controlar o seu Linux com um telemóvel através desta aplicação inovadora. pág. 33 pág. 36 Número 4 :: www.revista-linux.com 4 Novidades do Kernel 5 Book Review 37 Jogos: FreeCiv Puzzle Pirates 38 42 Entrevista: Pedro Costa 30 Kernel Pan!c 45 Soluções Open Source 47 Agenda de Eventos 48 Novidades do Kernel parte 4: Entradas e saídas por Luís Rodrigues ste é o quarto artigo na série sobre o desenvolvimento de controladores de vídeo para Linux. Este artigo descreve como uma aplicação pode determinar quais as entradas e saídas que estão disponíveis num dado dispositivo e seleccionar quais as que pretende utilizar. E Em muitos casos, o adaptador de vídeo não tem muitas opções de Entrada e Saída. O controlador de uma câmara, por exemplo, fornecerá a câmara e nada mais. Noutros casos, a situação é mais complicada. Uma placa de TV pode ter entradas múltiplas correspondentes aos vários conectores na placa, pode ainda ter múltiplos sintonizadores capazes de funcionar independentemente. Algumas vezes estas entradas têm características diferentes, umas podem ser capazes de sintonizar um leque mais variado de standards de vídeo que outras. O mesmo se pode afirmar para as saídas. Claramente, para uma aplicação ser capaz de utilizar a totalidade de um dispositivo, terá de ser capaz de encontrar as entradas e saídas disponíveis e ser capaz de seleccionar quais as que deseja operar. Para esse efeito, a API vídeo4Linux2 fornece três chamadas ioctl() para tratar as entradas e três equivalentes para as saídas. Os controladores devem implementar as três (para cada funcionalidade que corresponde ao hardware). Os controladores devem também ser capazes de fornecer valores por omissão razoáveis. O que um controlador não deve fazer é limpar a informação das entradas e saídas quando a aplicação termina, tal como os outros parâmetros de vídeo, em que essas configurações devem permanecer inalteradas. Standards de vídeo Antes de entrarmos nos detalhes sobre entradas e saídas, temos de ver os standards de vídeo. Estes standards descrevem como o sinal de vídeo é formatado para a transmissão, resolução, frame rate, etc. São geralmente definidos por entidades reguladoras nos várioas paí- 5 ses. Existem três tipos principais de standartds de vídeo: NTSC (usado principalmente na América do Norte), PAL (na maioria da Europa, África e Ásia) e SECAM (França, Rússia e partes de África). Existem ainda variações nos standards entre os vários países que usam o mesmo, alguns dispositivos podem ser mais ou menos flexíveis no suporte destas pequenas variações. A camada V4L2 representa os standards de vídeo com o tipo v4l2_std_id (que é uma máscara de 64bits). Cada um dos standards é um bit na máscara. Assim, o “standard” japonês NTSC é V4L2_STD_NTSC_M com o valor 0x1000, a sua variante V4L2_STD_NTSC_M_JP tem o valor 0x2000. Se um dispositivo consegue processar todas as variantes do NTSC, pode simplesmente colocar o tipo a V4L2_STD_NTSC que tem todos os bits relevantes activados. Conjuntos equivalentes de bits existem para as variantes PAL e SECAM. Mais informação online (1). Número 4 :: www.revista-linux.com Imagem original da autoria de De'Nick'nise Revista Linux :: Kernel Revista Linux :: Kernel Para o User Space, a V4L2 fornece um comando ioctl() VIDIOC_ENUMSTD que permite à aplicação inquirir que standards são implementados pelo dispositivo. O controlador não necessita de responder às questões directamente, simplesmente necessita de actualizar o campo tvnorm da estrutura video_device com todos os standards que suporta. O comando VIDIOC_G_STD usado para inquirir que standard está activo num dado momento é também tratado pela camada V4L2 através do retorno do valor no campo current_norm na estrutura video_device. O controlador deve, aquando da inicialização, actualizar o campo current_norm para reflectir a realidade. Algumas aplicações podem ficar “confusas” se não estiver activo nenhum standard. Quando uma aplicação deseja activar um dado standard utiliza a chamada VIDIOC_S_STD, que é passada ao controlador com: int (*vidioc_s_std) (struct file *file, void *private_data, v4l2_std_id std); O controlador deve programar o hardware para utilizar um dado standard e retornar zero (ou um código de erro negativo). A camada V4L2 tratará da actualização do current_norm para o novo valor. A aplicação pode necessitar de saber qual o tipo do sinal de vídeo de entrada. A resposta é fornecida pelo VIDIOC_QUERYSTD, que chega ao controlador com: int (*vidioc_querystd) (struct file *file, void *private_data,v4l2_std_id *std); O controlador deve preencher este campo com o maior detalhe possível. Se o hardware não fornece essa informação, o campo std deve indicar quais os standards que podem estar presentes. Todos os dispositivos de vídeo devem suportar (ou pelo menos afirmar que suportam) no mínimo um standard. Os standards de vídeo fazem pouco sentido para as câmaras que não estão ligadas a um regime regulatório específico. Dado que não existe nenhum standard para “Eu sou uma câmara e posso fazer tudo o que quiser” alguns dos controladores de câmara afirmam retornar dados PAL ou NTSC. Entradas A aquisição de vídeo iniciar-seá ao enumerar as entradas disponíveis com o comando VIDIOC_ENUMINPUT. Na camada V4L2 transformar-se-á numa chamada ao controlador com: int (*vidioc_enum_input) (struct file *file, void *private_data, struct v4l2_input *input); Nesta chamada, o campo file corresponde ao dispositivo de vídeo aberto e o private_data é um campo privado actualizado pelo controlador. A estrutura input é onde a informação real é passada e tem alguns campos de interesse: • __u32 index: é o número da entrada à qual a aplicação pretende aceder; este é o único campo a ser definido pelo user space. Os controladores devem atribuir números às entradas começando com zero e seguindo a partir daí. Uma aplicação que pretenda saber toda a informação acerca das entradas variáveis deverá chamar VIDIOC_ENUMINPUT começando com ze- Número 4 :: www.revista-linux.com 6 ro e seguindo a partir daí; assim que o controlador devolve EINVAL, a aplicação sabe que chegou ao final da lista. O índice zero deverá existir para todos os dispositivos com entradas. • __u8 name[32]: o nome da entrada definido pelo controlador. Em casos simples pode ser “câmara” ou algo igualmente simples. Se um dispositivo tem múltiplas entradas o nome deverá corresponder ao que está impresso no conector. • __u32 type: o tipo da entrada. Neste momento existem dois: V4L2_INPUT_TYPE_TUNER e V4L2_INPUT_TYPE_CAMERA. • __u32 audioset: descreve que entradas de áudio podem ser associadas com entradas de vídeo. As entradas de áudio são enumeradas pelo índice tal como as entradas de vídeo, mas nem todas a combinações de áudio e vídeo podem ser seleccionadas. Este campo é uma máscara de bits com o bit activado para cada entrada de áudio que funciona com a entrada de vídeo que está a ser listada. Se nenhuma entrada de áudio é suportada, ou se apenas uma entrada pode ser seleccionada, o controlador pode colocar este campo a zero. • __u32 tuner: se esta entrada é um sintonizador (o tipo é V4L2_INPUT_TYPE_TUNER) este campo irá conter o número do índice corrrespondente ao dispositivo sintonizador. A listagem e controle dos sintonizadores serão apresentados numa próxima oportunidade. • v4l2_std_id std: descreve que standars de vídeo são suportados pelo dispositivo. • __u32 status: dá o estado da entrada. O conjunto de opções pode ser encontrada na docu- Revista Linux :: Kernel mentação do V4L2 (2). Cada bit activado no status descreve um problema, pode incluir falta de energia, ausência de sinal, entre outros. • __u32 reserved[4]: campo reservado. Deve ter o valor zero. Normalmente, o controlador deverá colocar os valores dos campos acima e retornar zero. Se o índice está fora do intervalo de entradas suportadas deve ser devolvido -EINVAL. Quando uma aplicação quer alterar a entrada, o controlador deverá receber a chamada a vidioc_s_input(): int (*vidioc_s_input) (struct file *file, void *private_data, unsigned int index); O significado do index tem o mesmo significado que antes (identifica a entrada desejada). O controlador deve programar o hardware para utilizar a entrada escolhida e retornar zero. Outros valores de retorno possível são -EINVAL (para índice inválido) ou -EIO (para problemas de hardware). Os controladores devem implementar esta chamada mesmo que apenas suportem uma entrada. Existe também uma chamada para descobrir qual a entrada que está activa: int (*vidioc_g_input) (struct file *file, void *private_data, unsigned int *index); Aqui o controlador coloca o *index com o número o índice da entrada activa. Saídas O processo de enumerar e seleccionar as saídas é muito simi- lar ao das entradas, assim a descrição será mais breve. A chamada que suporta a enumeração é: int (*vidioc_enumoutput) (struct file *file, void *private_data struct v4l2_output *output); Os campos da v4l2_output são: estrutura • __u32 index: o valor do índice corespondente à saída. Este índice funciona da mesma maneira que o índice de entrada: começa em zero e continua a incrementar. • __u8 name[32]: o nome da saída. • __u32 type: o tipo da saída. Os tipos de saídas suportadas são V4L2_OUTPUT_TYPE_MODULATOR para um modulador de TV analógico, V4L2_OUTPUT _TYPE_ANALOG para uma saída de vídeo analógica e, V4L2_OUTPUT_TYPE_ANA LOGVGAOVERLAY para dispositivos analógicos de VGA. int (*vidioc_g_output) (struct file *file, void *private_data, unsigned int *index); int (*vidioc_s_output) (struct file *file, void *private_data, unsigned int index); Qualquer dispositivo que te saída de vídeo deve três chamadas de saída das mesmo que só seja vel uma saída. suporter as definipossí- Com estes métodos criados, uma aplicação V4L2 pode determinar quais as entradas e saídas disponíveis num dado dispositivo e escolher entre eles. A tarefa de determinar qual o tipo de dados de vídeo que passa entre estas entradas e saídas é algo mais complicado. No próximo artigo serão apresentados os diferentes formatos de dados de vídeo e como negociar com o user space. Ver na Web • __u32 audioset: conjunto de saídas de áudio que funcionam com esta saída de vídeo. (1) http://v4l2spec.bytesex.org/ spec/r7410.htm#V4L2-STD-ID (2) http://v4l2spec.bytesex.org/ spec/r7058.htm#INPUT-STATUS • __u32 modulator: o índice do modulador associado a este dispositivo (para dispositivos com o typo V4L2_OUTPUT_TYPE_ MODULATOR). Sobre esta secção • v4l2_std_id std: os standards de vídeo suportados por esta saída. • __u32 reserved[4]: campos reservados, devem ter o valor zero. Os artigos apresentados nesta secção são traduções autorizadas de artigos relacionados com o kernel do Linux do jornal online Linux Weekly News - http://www.lwn.net . Estas são as chamadas para obter e definir a saída corrente, espelham as chamadas de entradas: 7 Número 4 :: www.revista-linux.com Tudo o que queria saber sobre criptografia... e tinha medo de perguntar por Avi Alkalay riptografia vem do grego e significa “escrita escondida”. Bem, ainda não temos a tecnologia dos filmes de fantasia onde um pergaminho aparentemente em branco revela um mapa do tesouro quando exposto ao luar, mas a criptografia simula isso transformando a informação em algo ilegível ou aparentemente sem valor. Muito fácil: se eu rabiscar bem um cheque de 100.000 € ele também perde o seu valor por ficar ilegível. C O difícil é o inverso: tornar legível o ilegível, e é aí que está a magia da criptografia. O primeiro lugar onde alguém pensaria em usar criptografia seria na guerra, para comunicar estratégias de movimentação a tropas distantes, espionagem, etc. Se o inimigo intercepta essa comunicação, principalmente sem o primeiro saber, ganha a guerra. Por isso, quem primeiro estudou técnicas de criptografia foram os militares, governos e instituições de pesquisa secretas. Os seus principais interesses focavam-se em duas coisas: como criptografar melhor e como descriptografar as mensagens do inimigo (criptoanálise). Na Era da Informação e Internet, a criptografia tem um papel central porque viabiliza uma comunicação segura. Mais até: não teríamos uma Era da Informação se a criptografia não fosse de uso dominado por qualquer cidadão, simplesmente porque o mundo comercial não entraria nessa onda de trocar informação (e fazer negócios) por redes abertas se não houvesse um meio de garantir confidencialidade. Trata-se de um tema muito vasto, fascinante, com muitos desdobramentos tecnológicos. Então vamos somente preocuparmo-nos em entender aqui o vocabulário desse mundo. Criptografia de ChaveSimétrica A criptografia digital já era usada secretamente desde 1949 por militares e governos. Em meados da década de 1970 a IBM inventou o padrão DES (Data Encription Standard) de criptografia, que passou a ser largamente utilizado até aos dias de hoje. A partir daí tudo mudou. Como exemplo do seu funcionamento: se a Paula quer enviar uma mensagem secreta para a Tatiana, ela deve fazer isto: Número 4 :: www.revista-linux.com 8 Artigo adaptado para Português-Europeu Mensagem + ChaveSimétrica = MensagemCriptografada Então, a MensagemCriptografada é enviada para a Tatiana por uma rede aberta que, para a ler terá que fazer o seguinte: MensagemCriptografada + ChaveSimétrica = Mensagem Uma analogia a estas equações seria como se ambas trocassem caixas que abrem e fecham com uma chave (a chave simétrica) que contém cartas secretas. Para a Tatiana abrir a caixa da Paula, terá que usar uma cópia da chave que a última usou para fechá-la. O que representamos pela soma (+) é na verdade o algoritmo de cifragem (ou o mecanismo da fechadura) que criptografa e descriptografa a mensagem. Hoje em dia, esses algoritmos tem geralmente o seu código fonte aberto, e isso ajudou-os a tornarem-se mais seguros ainda, pois foram limpos e revistos ao longo dos anos por muitas pessoas de várias partes do mundo. A Chave Simétrica é uma sequência de bits e é ela que define o nível de segurança da Imagem original da autoria de bebop717 Revista Linux :: Teoria Revista Linux :: Teoria comunicação. Ela deve ser sempre secreta. Chama-se simétrica porque todos os interessados em comunicar-se devem ter uma cópia da mesma chave. Mensagem + ChavePública(Tatiana) = MensagemCriptografada O DES com chave de 56 bits pode ser quebrado (a MensagemCriptografada pode ser lida sem se conhecer a chave), e outros cifradores de chave simétrica (symmetric-key, ou private-key) mais modernos surgiram, como 3DES, AES, IDEA, etc. MensagemCriptografada + ChavePrivada(Tatiana) = Mensagem O maior problema da criptografia de chave simétrica é que o remetente envia a chave secreta ao destinatário através de uma rede aberta (e teoricamente insegura). Se um intruso a descobrir, poderá ler todas as mensagens trocadas. Mais ainda, comprometerá a comunicação entre todo o conjunto de pessoas que confiavam nessa chave. Criptografia de Chave Pública Estes problemas foram eliminados em 1976 quando Whitfield Diffie e Martin Hellman trouxeram à tona os conceitos da criptografia de chave pública também conhecida por criptografia por par de chaves ou de chave assimétrica. Trata-se de uma revolução no campo das comunicações, tão radical quanto é o motor a combustão para o campo de transportes. Eles descobriram fórmulas matemáticas que permitem que cada usuário tenha um par de chaves de criptografia matematicamente relacionadas, uma privada e outra pública, sendo a última, como o próprio nome diz, publicamente disponível para qualquer pessoa. Estas fórmulas tem a impressionante característica de o que for criptografado com uma chave só pode ser descriptografado com o seu par. Então, no nosso exemplo, Paula agora enviaria uma mensagem para Tatiana da seguinte maneira: E Tatiana leria a mensagem assim: E Tatiana responderia para Paula da mesma forma: Resposta + ChavePública(Paula) = RespostaCriptografada Ou seja, uma mensagem criptografada com a chave pública de uma, só pode ser descriptografada com a chave privada da mesma, então a primeira pode ser livremente disponibilizada na Internet. E se a chave privada da Paula for roubada, somente as mensagens para a Paula estariam comprometidas. O cifrador de chave pública tido como mais confiável é o RSA (iniciais de Rivest, Shamir e Adleman, seus criadores). A criptografia assimétrica permitiu ainda outras inovações revolucionárias: se a Tatiana quer publicar um documento e garantir a sua autenticidade, pode fazer: Documento + ChavePrivada(Tatiana) = DocumentoCriptografado Se um leitor conseguir descriptografar este documento com a chave pública da Tatiana significa que ele foi criptografado com a chave privada da Tatiana, que somente ela tem a posse, o que significa que somente a Tatiana poderia tê-lo publicado. Nasce assim a assinatura digital. Infraestrutura para Chaves Públicas O PGP (Pretty Good Privacy) foi o primeiro sistema de segurança que ofereceu criptografia de chave pública e assinatura digi- 9 tal de qualidade para as massas. Ficou tão popular que se tornou o padrão OpenPGP e posteriormente recebeu várias implementações livres. É largamente usado até hoje, principalmente em troca de e-mails. A sua popularização exigiu que houvesse uma forma para as pessoas encontrarem as chaves públicas de outras pessoas, que muitas vezes nem eram conhecidas pelas primeiras. No começo dos tempos do PGP, havia sites onde as pessoas publicavam as suas chaves públicas para as outras as encontrarem. Talvez esta fosse a forma mais rudimentar de PKI ou Public Key Infrastructure. PKI é um conjunto de ferramentas que uma comunidade usa justamente para a classificação, busca e integridade das suas chaves públicas. É um conjunto de ideias e não um padrão nem um produto. Conceitos de PKI estão hoje totalmente integrados em produtos de colaboração como o Lotus Notes da IBM, e seu uso é transparente ao usuário. Certificados Digitais Como pode a Tatiana ter certeza que a chave pública da Paula que ela tem em mãos e que está prestes a usar para enviar uma mensagem segura, é realmente da Paula? Outra pessoa, agindo de má fé, pode ter criado uma chave aleatória e tê-la publicado como sendo da Paula. Podemos colocar isso de outra forma: como posso ter certeza que estou acedendo realmente ao site do meu banco e não a um site impostor que quer roubar a minha senha e o meu dinheiro? Não gostaria de confiar nos meus olhos só porque o site realmente se parece com o de meu banco. Haveria alguma forma mais confiável para garantir isso? Em 1996, a Netscape, fabrican- Número 4 :: www.revista-linux.com Revista Linux :: Teoria te do famoso browser, atacou este problema juntando o que havia de melhor em criptografia de chave pública, PKI (através do padrão X.509), mais parcerias com entidades confiáveis, e inventou o protocolo SSL (Secure Socket Layer ou TLS, seu sucessor). Foi graças a este passo que a Internet tomou um rumo de plataforma comercialmente viável para negócios e mudou o mundo. Para eu mandar a minha senha com segurança ao site do banco e poder movimentar a minha conta, o site precisa primeiro de me enviar a sua chave pública, que vem assinada digitalmente por uma outra instituição de grande credibilidade. Em linhas gerais, os fabricantes de browsers (Mozilla, Microsoft, etc) instalam nos seus produtos, na fábrica, os certificados digitais dessas entidades, que são usadas para verificar a autenticidade da chave pública e identidade do site do banco. Este, por sua vez, teve que passar por um processo burocrático junto a essa entidade certificadora, provando ser quem diz ser, para obter o certificado. que o fabricante do browser instalou, acedendo às suas configurações de segurança. O leitor vai encontrar lá entidades como VeriSign, Thawte, Equifax, GeoTrust, Visa, entre outros. Segurança Real da Criptografia Quanto maior for a chave de criptografia (número de bits) mais difícil é atacar um sistema criptográfico. Outros factores influenciam na segurança, como a cultura em torno de manter bem guardadas as chaves privadas, qualidade dos algoritmos do cifrador, etc. Este último aspecto é muito importante e tem de ser estabilizado num bom nível alto, porque esses algoritmos têm sido produzidos num modelo de software livre, o que permite várias boas mentes auditá-los e corrigir falhas ou métodos matemáticos fracos. A segurança real de qualquer esquema de criptografia não foi comprovada. Significa que, teori- O SSL descomplicou esta malha de credibilidade, reduzindo o número de instituições em quem podemos confiar, distribuindo essa confiança por todos os sites que adquirirem um certificado SSL. Na prática funciona assim: 1 :: Acedo pela primeira vez ao site de uma empresa que parece ser idônea. 2 :: Ele pede o número do meu cartão de crédito. 3 :: Se o meu browser não reclamou a segurança desse site, posso confiar nele porque... 4 :: ...o site usa um certificado emitido por uma entidade na qual eu confio. Pode-se verificar os certificados camente, qualquer um que tiver muito recurso computacional disponível pode usá-lo para quebrar uma mensagem criptografada. Teoricamente. Porque estaríamos a falar de centenas de computadores interconectados trabalhando para esse fim. Na prática, hoje isso é intangível, e basta usar bons produtos de criptografia (de preferência os baseados em software livre), com boas práticas de administração, e teremos criptografia realmente segura à nossa disposição. Sobre o Autor Avi Alkalay foi, por alguns anos, responsável pela segurança corporativa da IBM Brasil, e já trabalhou praticamente com todas as tecnologias da web. Hoje é arquiteto de soluções e consultor de Linux, Padrões Abertos e Software Livre na IBM. Número 4 :: www.revista-linux.com 10 Um dia sem X por Luís Rodrigues J á alguma vez pensou ser possível sobreviver sem o seu ambiente gráfico? Imagine que na actualização da sua distribuição de Linux preferida o pacote do Xserver está corrompido e não consegue aceder ao X. O Linux tem um grande conjunto de aplicações de linha de comandos, umas utilizam a biblioteca curses e/ou o framebuffer para as suas interfaces. Assim poderá ouvir música, navegar na Internet, etc enquanto espera calmamente por uma nova versão da actualização com o X a funcionar. Segue uma lista de aplicações organizada pelas secções que consideramos mais importantes para um utilizador de computador da actualidade. Esta lista não é, nem pretende ser, uma lista exaustiva de todas as aplicações por cada secção, visto que isso seria impossível de concretizar. Navegar na Internet Quando o X não funciona, em geral, a primeira preocupação é navegar na Internet. Assim, esta é a primeira secção que iremos apresentar. Muitas das páginas da actualidade fazem uso do AJAX e CSS, essas não funcionarão convenientemente mas todas as outras (em princípio) estarão navegáveis. Existem vários browsers em mo- do de texto: Lynx (1) , Links (2) , w3m (3) e elinks (4). O Lynx e o w3m são bastante simplistas não suportando frames nem tabelas. O Links suporta praticamente todo o standard HTML4.0 excepto CSS, mas não é activamente desenvolvido. O elinks é um fork do links activamente desenvolvido que suporta frames, tabelas, algumas das funcionalidades do CSS e ECMAScript. A minha sugestão para navegação é assim o elinks. Email Para além da poder utilizar a interface web (utilizando o elinks), pode ainda utilizar o cliente POP3 ou IMAP. Para tal, existem duas opções: O Pine (5) ou o Mutt (6). O Pine foi desenvolvido pela Universidade de Washington, é freeware e suporta practicamente tudo o que se espera de um moderno cliente de email. O Mutt está sob a licença GPL e, tal como o Pine, suporta a maioria das funcionalidades que se espera de um cliente de e-mail. Tem a vantagem de poder integrar um filtro de SPAM. A escolha entre estas duas aplicações é mais complicada, sendo um pouco uma questão de gosto. Eu prefiro o mutt, logo, é esse que aconselho. 11 Chat Após a navegação e o email a preocupação que se segue é o chat. Existem vários clientes para os vários protocolos disponíveis. Para Jabber/GTalk existe o freetalk (7), para AIM temos o Naim (8) e para IRC o IRSSI (9). Ter uma aplicação a correr por cada conta que o utilizador tem pode tornar-se chato além de desperdiçar muita memória, tal como o Pidgin (10), que junta ao nível gráfico diversos protocolos, temos o Finch para a consola. Então, o melhor cliente a utilizar é o Finch dado que suporta praticamente todos os protocolos existentes. Ler RSS Para todos os leitores que subscrevem muitas RSS têm à sua disposição um excelente cliente de consola: o Raggle (11). Este tem uma interface limpa e intuitiva, é muito rápido e quase não ocupa memória. Pode ainda importar o seu ficheiro OPML utilizando uma opção da linha de comandos ficando com todas as suas feeds à disposição. Gestão de Ficheiros Se não está a navegar, conversar ou a ler/escrever e-mail provavelmente estará a navegar pela sua drive. O Midnight Com- Número 4 :: www.revista-linux.com Imagem original da autoria de Rafi Abramov Revista Linux :: Prático Revista Linux :: Teoria mander (12) é a ferramenta ideal para esta tarefa. Tem uma interface similar ao Norton Commander e é muito fácil de utilizar. Imagens Até agora, tem sido fácil suportar um dia sem X. O que acontece se alguém enviar uma imagem espectacular das suas férias em África que o leitor tem mesmo de ver? A solução é utilizar uma aplicação de framebuffer que utiliza a SVGAlib que dá pelo nome ZGV (13). Vídeo Para vídeo pode utilizar o MPlayer (14) que tem várias opções de saída de vídeo. Desde o típico framebuffer até a utilizar caracteres em modo texto para codificar a imagem (aalib). Música Não ter X não que dizer que o leitor não possa ouvir as suas músicas preferidas. O Cplay (15) é um leitor extremamente leve excelente para o ajudar a sobreviver no seu dia-a-dia sem X. Para controlar o volume do áudio pode sempre utilizar o alsamixer (se tem o ALSA instalado – o que é bastante provável – o alsamixer estará também instalado). Edição de Texto Para a edição de texto existem duas grandes opções: vim (16) e emacs (17). Geralmente, toda a gente já os conhecem e, normalemnte, têm uma opinião muito forte. Para não fomentar essa discórdia, não irei sugerir nenhum deles deixando ao leitor essa escolha. P2P Na sociedade da informação em que nos inserimos, uma das acções mais importantes é a partilha de informação. Para partilhar informação nada melhor que um protocolo P2P, como é o caso do Bittorrent. Um dos melhores clientes é o Rtorrent (18). É uma aplicação baseada na libcurses com uma utilização de memória quase desprezável. O Rtorrent é capaz de competir facilmente com o uTorrent ao nível da utilização de memória e velocidade. O único problema (para algumas pessoas) é o facto deste utilizar um esquema de atalhos de teclado parecido ao emacs, o que torna a curva de aprendizagem algo elevada. Gravação de CDS Existe ainda uma outra aplicação que é o screen (21) que também permite a gestão de diversas janelas numas única tty, na minha opinião o twin, visto que é mais “gráfico” do que o screen. Será mesmo possível sobreviver um dia sem X? Quando comecei a utilizar Linux o X não era o que é hoje e muitas vezes servia apenas para ter um conjunto de terminais (xterm) abertos a correr várias aplicações. Actualmente é mais complicado dado que a maioria dos utilizadores estão habituados às suas aplicações terem cores brilhantes e à fácil integração no ambiente de trabalho. Deixo, no entanto, o desafio ao leitor mais intrépido: tente pelo menos um dia recordar os “bons velhos tempos” em que o Linux não tinha o GNOME e o KDE! Agora que o leitor já se está a habituar a não usar o X, por que não gravar cds com o bashburn (19)? O bashburn é uma aplicação de consola que faz a interface entre as aplicações Ver na Web que realmente gerem/gravam cds, nomeadamente cdrtools e (1) http://lynx.browser.org/ dvd+rw-tools, entre ou- (2) http://links.sourceforge.net/ tras. (3) http://w3m.sourceforge.net/ Gestão de Janelas (4) http://elinks.or.cz/ (5) http://www.washington.edu/pine/ Suponho que o leitor se (6) http://www.mutt.org/ está a questionar como (7) http://www.gnu.org/software/freetalk/ é possível a gestão de (8) http://naim.n.ml.org janelas sem X. Não ter o X a funcionar não que (9) http://www.irssi.org/ dizer que não possa ser (10) http://pidgin.im/ possível ter à sua dispo- (11) http://www.raggle.org/ sição janelas para me- (12) http://www.ibiblio.org/mc/ lhor trabalhar com as suas aplicações de con- (13) http://www.svgalib.org/rus/zgv/ sola. O Twin (20) é uma (14) http://www.mplayerhq.hu/ aplicação que usa a lib- (15) http://mask.tf.hut.fi/~flu/cplay/ curses que permite (16) http://www.vim.org/ abrir subterminais dentro de um ambiente cur- (17) http://www.gnu.org/software/emacs/ ses. O Twin permite ter (18) http://libtorrent.rakshasa.no/ o elinks, mutt, raggle ou (19) http://bashburn.sourceforge.net/ qualquer outra aplica- (20) http://linuz.sns.it/~max/twin/ ção de consola aberta (21) http://www.gnu.org/software/screen/ na mesma tty. Número 4 :: www.revista-linux.com 12 Escolhendo uma distribuição Linux por Avi Alkalay Artigo adaptado para Português-Europeu É importante começar por dizer que todas as distribuições Linux, incluíndo as comerciais — Red Hat Enterprise Linux, SUSE Linux, Xandros, etc — e não-comerciais — Debian, Slackware, Gentoo, etc — atendem a maioria das necessidades reais. Escolher uma melhor entre elas é mais uma questão de gosto pessoal do técnico que já a conhece do que pelas suas funcionalidades. Mas uma empresa precisa pesar mais aspectos — além do gosto — para garantir uma escolha estratégica de benefícios de longo prazo. mente as chamadas distribuições enterprise incluem suporte junto ao seu produto. Para um usuário, suporte significa: 1 :: Um parceiro disponível a curto e a longo prazo, para transferir riscos operacionais Este é o ponto mais importante. As empresas não querem correr riscos — especialmente os riscos inerentes ao Open Source. Suporte e Certificação 2 :: Acesso rápido a actualizações de qualidade No geral, as empresas têm recursos limitados para compilar, testar e integrar atualizações de software Open Source. Todas as distribuições Linux empacotam, de uma forma ou de outra, mais ou menos os mesmos softwares Open Source (o Kernel, Apache, Samba, bibliotecas, Gnome, KDE, etc), mas so- 3 :: Acesso a um grande número de fabricantes independentes de hardware (IHV) e de software (ISV) certificados e disponibilidade de soluções complexas pré-testadas Número 4 :: www.revista-linux.com 14 Uma parte crítica de qualquer projecto de TI consiste em correlacionar a certificação entre os seus componentes (hardware, storage, middleware, SO, etc). A característica mais importante e valorizada que uma distribuição pode prover, mais do que as tecnologias embutidas no SO, é a sua capacidade de criar ecossistemas de hardware e software homologado. Modelo de Subscrição versus Preço por Licença Empresas que vendem software comercial (como a Microsoft, IBM, Oracle, etc) vão permitir o uso dos seus produtos somente após a compra de um direito de uso. Esses “direitos compráveis” são hoje em dia chamados de licença comercial. O software contido em qualquer distribuição Linux é sem custo. Os programadores desses Imagem original da autoria de Gregory Barton Revista Linux :: Teoria Revista Linux :: Teoria softwares licenciaram o seu trabalho sob a GPL, BSD, Mozilla Public, IBM Public ou alguma outra licença Open Source, que garante a qualquer um o direito de usar e redistribuir o software sem ter que pagar por isso. É errado dizer que se “compra” uma distribuição Linux (ou uma licença de seu uso). Não se pode comprá-la. Na prática ela já é sua. É como dizer que um usuário irá comprar o conteúdo de um site. Não há nada material para adquirir. Por outro lado, o que se pode dizer é que está a assinar-se um serviço que provê assistência técnica, acesso a actualizações e ingresso num ecossistema de produtos que inter-operam de uma forma prétestada e certificada — os pontos de suporte referidos anteriormente. Então, empresas que fazem distribuições enterprise (como Red Hat, Novell, Xandros) vendem esse serviço e não o software, porque o último é gratuito. Escolhendo a Melhor Distribuição Há duas formas responsáveis e maduras de usar distribuição Linux nas operações de TI de uma empresa: 1 :: Adquirir a subscrição de uma distribuição enterprise global como as vendidas pela Red Hat e Novell A subscrição junta o software Open Source a um suporte de escala global, criando um ambiente estável e favorável para o florescimento de um ecossistema de ISVs e IHVs certificados. 2 :: Usar distribuições gratuitas como Debian ou Slackware e adquirir serviços de suporte de uma companhia local independente Isto pode trazer mais risco por causa da operação de suporte não-global e pela falta de inte- gração entre o empacotamento do software e o seu suporte, o que leva a um ecossistema fraco ou inexistente de ISVs e IHVs. Em termos de flexibilidade técnica e escolha de fornecedor — pontos que coincidem nos custos —, as duas opções são iguais. Todos os benefícios da segunda opção estão presentes na primeira, enquanto que na segunda há uma ausência dos aspectos de ecossistema de ISVs e IHVs da primeira. Para uma empresa que precisa de tomar decisões pragmáticas, parece fazer mais sentido adquirir directamente um produto como o RHEL e SLES, que junta suporte ao software na fonte, do que manualmente integrá-los em níveis regionais. A segunda opção, com Debian etc, também tem sido escolhida com sucesso por empresas principalmente do sector público, e trazem benefícios sociais e económicos gerais por manterem o dinheiro a circular dentro do país. As empresas devem prestar atenção aos seguintes pontos, mais ou menos por esta ordem, quando estão a escolher uma distribuição Linux para correr as suas aplicações de negócio: 1 :: Com qual fabricante de distribuição eu tenho melhores relacionamentos comerciais ? 2 :: Qual o fabricante que tem o melhor preço de subscrição pelo valor oferecido ? 3 :: Qual a distribuição que os meus técnicos conhecem melhor ? 4 :: Qual a distribuição que é suportada e certificada por quem me fornece produtos de hardware e software ? 5 :: A não ser que se saiba muito bem o que se está a fazer, as empresas devem ser responsáveis e usar distribuições enterpri- 15 se. Para empresas que precisam de escolher rapidamente uma distribuição, há duas opções enterprise que tem um forte ecossistema e implementação no mercado: Red Hat Enterprise Linux e Novell SUSE Linux Enterprise. Algumas diferenças entre elas têm-se tornado cada vez maiores ao longo do tempo, enquanto que a maioria tem convergido ou desaparecido. Veja uma comparação na tabela. Outras Distribuições Enterprise Há alguns provedores de distribuições Linux com um modelo de negócio similar ao adoptado pela Red Hat e pela Novell. As mais famosas são Ubuntu (tecnicamente baseado no Debian), Mandriva (fusão da Conectiva, Mandrake e outras), Xandros (também baseado no Debian), para citar algumas. Estas estão focadas em prover um produto global de tal forma que o suporte e os serviços possam ser disponibilizados automaticamente ou num modo de self-service. Há uma lei intrínseca do mercado que busca o equilíbrio disponibilizando duas opções de escolha. Uma opção pode ser boa (na verdade não há opção quando só um caminho existe), duas opções maduras é melhor, enquanto que três ou mais opções já é muita coisa para o mercado digerir. E parece que o mercado já definiu suas duas escolhas maduras com a Novell e Red Hat. Mesmo que estas e outras distribuições para empresas tenham produtos melhores, elas terão que investir uma quantidade considerável de energia para construir um ecossistema de ISVs e IHVs. Mais do que isso, ISVs e IHVs terão que fazer uma pausa nas suas operações Número 4 :: www.revista-linux.com Revista Linux :: Teoria para ouvir o que estas novas distribuições têm a oferecer. Ecossistema é tudo o que importa. Um produto com um bom ecossistema pode facilmente tornar-se melhor que um excelente produto sem ecossistema. Provavelmente este é o aspecto mais importante a considerar quando uma companhia esco- lhe uma distribuição. Não se pode dizer que certa distribuição é melhor que todas as outras. Devem sempre colocarse na balança aspectos pragmáticos visando uma boa aderência à sua empresa ou a um certo projecto. Ver nota biográfica sobre o autor na página 10 Número 4 :: www.revista-linux.com 16 Revista Linux :: Teoria Blogosfera por Avi Alkalay U m blog é um website qualquer cujo conteúdo é organizado como um diário (log, em inglês), ou seja, por datas e em ordem crono- artigo adaptado para Português-Europeu bridades –, só porque agora eles tem acesso a uma plataforma de publicação independente e directa: a Internet. Os bloggers (pessoas que possuem e escrevem em seus blogs) visitam e lêem outros blogs, fazem comentários, criam links e referenciam-se uns aos outros, criando uma espécie de conversa distribuída. lógica. O nome apareceu quando “web log” virou “weblog” que, numa brincadeira, se transformou em “we blog”, para por fim se popularizar em “blog”. A cultura dos blogs tem um dicionário próprio: Post: um artigo, uma publicação que pode conter texto, imagens, links, multimédia, etc. Um post tem um título, data e hora e é categorizado sob um ou mais assuntos como “tecnologia”, “vinhos”, “viagens”, “poesia”, etc., definidos pelo dono do blog. Este usa geralmente uma linguagem mais directa e descontraída, e pode ser tão longo quanto um extenso artigo, ou ter só três palavras. Um blog é uma sequência de posts. Comentário: Visitantes do blog podem opinar sobre os posts e este é um lado muito importante da interactividade dos blogs. Permalink: um link permanente, o endereço directo de um post específico. Trackback e Pingback: um post que faz referência a outro post, talvez noutro blog. Feed: Há ferramentas que permitem ler vários blogs de forma centralizada, sem ter que visitá-los separadamente. O feed é uma versão mais pura do blog, contendo somente os últimos posts em formato XML (RSS ou ATOM) e serve para alimentar essas ferramentas. Podcasts nada mais são do que feeds contendo média, ao invés de só texto. Blog é um nome mais actual para o que se costumava chamar de “home page”. A diferença é que antes da era dos blogs, uma pessoa que quisesse ter um website pessoal, tinha um enorme trabalho para publicar conteúdo de páginas, que geralmente eram estáticas, não interativas, e francamente, sem graça. Era um processo manual que exigia algum conhecimento técnico e por isso eram geralmente técnicos que publicavam o conteúdo na web. A consolidação da cultura dos blogs fez surgir alguns serviços como Technorati, Truth Laid Bear, Ping-omatic, Digg, que tem a habilidade de seguir a conversa. Mais ainda, eles conseguem medir a popularidade de um blog ou de um assunto e calcular a sua vitalidade na web. Usando extensamente idiomas XML como XHTML, RDF, RSS e ATOM, eles conseguem “avisar” um post de que foi referenciado noutro blog, ajudando o primeiro a publicar automaticamente um pingback ou trackback, mostrando quem o referenciou e como. A Blogosfera é o fenómeno sócio-cultural materializado nessa malha de interações dinâmicas e semânticas entre os blogs e seus autores. Como diz Doc Searls no seu Mundo de Pontas, a Internet é uma grande esfera oca com a superfície formada por pontas interconectadas. Bem, nós somos as pontas e ela é oca porque não há nada no meio que limite a nossa interacção. Esta metáfora explica como os bloggers ganharam voz activa na sociedade livre da Internet, onde falam bem de quem gostam e denunciam quem ou o que não gostam. Sendo público e interativo, qualquer assunto verídico e bem conduzido tem potencial de virar uma bola de neve ao ponto de iniciar um escândalo político, obrigar uma empresa a admitir que deve fazer um recall de produtos defeituosos, ou dar informações muito precisas sobre o míssil que caiu no bairro durante uma guerra (warblog). Com a padronização do conteúdo por ordem cronológica em posts, surgiram uma série de ferramentas e serviços de blogging, sendo os mais conhecidos o Blogger, WordPress, LiveJournal e MovableType. Eles facilitaram a publicação de textos, links, multimédia de forma organizada e apelativa e a web ficou muito mais interessante. Se antigamente um escritor precisava de ter contacto com editoras para publicar trabalhos, hoje qualquer pessoa é um escritor em potencial. E, sim, os blogs revelaram inúmeros ótimos escritores – alguns viraram cele- Várias empresas têm usado blogs como forma de se aproximarem dos seus clientes. A sua linguagem descontraída, não-institucional e principalmente interactiva derruba barreiras e potencializa comunidades. Bons blogs corporativos passaram a ser a peça chave do ciclo de desenvolvimento de produtos, como plataforma de divulgação das próximas novidades e ponto de recepção directa de opiniões de usuários. Do que está à espera para ingressar na Blogosfera? Ver nota biográfica sobre o autor na página 10 17 Número 4 :: www.revista-linux.com Revista Linux :: Teoria A Internet Assimétrica por Gustavo Homem N uma época em que se fala diariamente sobre "banda larga", a situação de assimetria a esta associada não é totalmente clara para a maioria dos utilizadores. É fácil encontrar hoje em dia serviços de acesso à Internet com elevado débito unidireccional, ou seja no sentido ISP -> cliente. De facto, é habitual contratar débitos downstream de 8,16,20 ou mesmo 24 Mbps. No entanto, quando se fala de débitos upstream, ou seja no sentido cliente -> ISP, o cenário parece ser mais nebuloso. Por um lado, as campanhas de divulgação raramente fazem referência ao valor de upstream - assume-se que o cliente final não é sensível a este factor. Por outro, não é fácil, saindo dos serviços standard cujos débitos são limitados, ter uma noção imediata dos custos envolvidos, visto que as tabelas de preços não são em geral públicas. Apesar disto, a necessidade de débitos upstream supe- riores aos actuais é um facto, consequência natural da evolução tecnológica das PME e do acesso generalizado a software servidor de grande qualidade disponível em domínio público (1,2). A capacidade de disponibilizar informação de forma independente liberta as empresas das demoradas “interacções” com o suporte técnico dos ISP e deve fazer parte do roteiro para a inclusão das PME portuguesas. Nesse sentido, respondamos às três questões mais frequentemente colocadas quando se discute o presente assunto. 1) Porque é que os débitos de upstream são tão baixos nos serviços ADSL e Cabo em Portugal? As razões são várias: a) As tecnologias são assimétricas por natureza (3,4) ... o que no entanto não parece justificar 19 as classes de tráfego tal como estão definidas em Portugal. As normas ADSL, mesmo as iniciais, suportam até 1Mbit de upstream e é conhecido que pelo menos parte dos DSLAMs existentes em Portugal o permitem. Nas soluções de Internet por Cabo a mesma coisa se passa (4,5). b) O limite no upstream é o “travão” do tráfego P2P nacional. Ao aumentar este limite o tráfego P2P vai aumentar imediatamente e os ISP poderão não estar particularmente interessados nisto (questões legais, tráfego trocado no GigaPix (12), ...). c) Os circuitos com upstreams superiores a 1024Kbps, que em Portugal são vendidos invariavelmente como circuitos dedicados, são extremamente dispendiosos (um circuito G.SHDSL 2Mbit simétrico pode custar entre 300 e 700 EUR mensais de- Número 4 :: www.revista-linux.com Revista Linux :: Teoria pendendo da capacidade negocial da empresa e da quantidade de serviços contratados). Por esta razão, os ISP acreditam que estão a proteger este mercado ao limitarem os débitos upstream do ADSL (11). d) Os ISP possuem serviços de datacenter/alojamento e ao limitarem os débitos de upstream estão a proteger este negócio, impedindo os clientes de se tornarem mais autónomos a nível de disponibilização de serviços e conteúdos. 2) É expectável que a situação vá mudar de futuro? A situação só poderá mudar quando os ISP se aperceberem de que: a) Os clientes pretendem maior flexibilidade na utilização que fazem do serviço de Internet que contratam, incluindo alojamento local de serviços e acesso remoto a informação interna. b) Ao tentarem proteger certos segmentos de negócio (ver acima) os ISP estão a eliminar outros segmentos. Por exemplo, há muitos clientes potencialmente interessados em pagar um serviço um pouco mais caro, com um melhor upstream mas que nunca estarão interessados nos serviços dedicados cujo patamar de custo lhes é inacessível. Dada a diferença de custos, este tipo de cliente (tipicamente PME) acaba por se manter no serviço mais básico, o que conduz a perda de negócio para o ISP. Repare-se que, mesmo a ser disponibilizado com upstreams melhorados, um serviço ADSL/Cabo nunca terá o mesmo "nível de serviço" que um circuito dedicado (débito garantido, contenção, taxa de disponibilidade, prazos de reparação, etc), pelo que a diferença de custos continuará a fazer sentido1. c) Não se pode aumentar indefinidamente o débito downstream sem aumentar o upstream, visto que todo o tráfego TCP está sujeito ao respectivo tráfego de ACK (acknowledge (7)) que flui no sentido inverso. Isto pode ser rigorosamente calculado em função dos tamanhos dos pacotes enviados. No entanto um simples teste com ferramentas universalmente acessíveis (wget, iptraf) permite obter que: %tcp upstream rate ~ 1,84 % de onde se obtém as relações: 2 Mbps => 36.80 kbps 4 Mbps => 73.61 kbps 8 Mbps => 147.22 kbps 16 Mbps => 294.45 kpbs 20 Mbps => 368,06 kbps 24 Mbps => 441,67 kbps Os valores acima referem-se a débitos efectivos a nível IP (ou seja, os débitos calculados pelas aplicações) medidos sobre um serviço ADSL. Para se poderem comparar com os débitos anunciados pelos ISP com os débitos efectivos é necessário descontar os overheads dos protocolos subjacentes: Ethernet para serviço de Cabo e PPP+Ethernet+ATM para servi- ços ADSL (6,12). No entanto, a existência de overheads não afecta a relação entre os valores, pois afecta ambos os lados da "equação" acima. Daqui se conclui que, por exemplo, o serviço 24/400 vendido até há pouco tempo por um ISP nacional (9) era matematicamente impossível, porque a taxa máxima atingível em download está limitada pelo débito de upstream disponível que ficará saturado antes de se atingir o valor máximo downstream. A situação foi entretanto corrigida por aumento de taxa de upload disponível. Conclui-se ainda que mesmo com um serviço 20/400 o utilizador só poderá usufruir de 20Mbps em download, se não estiver a efectuar nenhuma espécie de upload, pois a linha será totalmente tomada pelos pacotes de ACK. Caso contrário, a performance downstream cairá para valores muito inferiores. A Netcabo foi o primeiro ISP a tomar a iniciativa de aumentar as taxas de upstream disponibilizando o serviço Netcabo Pro com débitos 8Mb/1Mb (8). Seguiram-se muito recentemente a Vodafone e a Clix (ADSL). 3) Que alternativas economicamente viáveis existem para aumentar a taxa de upstream? Enquanto a situação de mercado não se altera, uma alternativa a contratar um serviço dedicado é contratar N vezes o servi- 1 De facto, é importante referir que os parâmetros de largura de banda anunciados para os serviços ADSL/Cabo representam valores máximos teóricos apenas possíveis em situações de baixo congestionamento. No caso dos serviços ADSL a largura de banda anunciada é garantida apenas entre o CPE e o DSLAM, estando a partir daí sujeita à taxa de contenção, que é o quociente entre o débito disponível DSLAM <-> ISP e a soma dos débitos CPE <-> DSLAM. No caso da Internet por cabo, não há sequer qualquer garantia de débito, visto que a largura de banda é partilhada continuamente por todos os CPE ligados ao mesmo canal. 2 Este tipo de configuração designa-se habitualmente por multi homing. Número 4 :: www.revista-linux.com 20 Revista Linux :: Teoria ço de melhor upload disponível, à custa de algum investimento em tempo de configuração2. Por exemplo, um serviço com 2 Mbits pode “conseguir-se” com dois serviços Netcabo Pro 8Mb/1Mb tendo em conta que: - é necessário ter um servidor ou router com 2 interfaces de rede - é necessário configurar DNS round robin (10) – vários Ips para o mesmo hostname - só se conseguem obter 2Mbits no somatório do tráfego; cada ligação individual está limitada a 1Mb mas estatisticamente conseguem-se os 2Mbits Ver na Web (1) http://www.linux.com (2) http://www.apache.org (3) http://en.wikipedia.org/wiki/ADSL (4) http://en.wikipedia.org/wiki/Cable_internet (5) http://en.wikipedia.org/wiki/DOCSIS (6) http://tldp.org/HOWTO/ADSL-Bandwidth-Management-HOWTO (7) http://en.wikipedia.org/wiki/Transmi...ntrol_Protocol (8) http://www.tvcabo.pt/Internet/SpeedProMais.aspx (9) http://acesso.clix.pt/ (10) http://en.wikipedia.org/wiki/Round_robin_DNS (11) http://www.isp-planet.com/news/2005/cerf_f2c.html (12) http://www.oplnk.net/files/WhitePaper_EncapsOverheads.pdf (13) http://www.fccn.pt/index.php?module=pagemaster& PAGE_user_op=view_page&PAGE_id=8 Abreviaturas: CPE Customer Premises Equipment. Equipamento instalado no cliente: modem/router de acesso à Internet. DSLAM Digital subscriber line access multiplexer. Agrega as ligações de múltiplos clientes DSL num único link. ISP Internet Service Provider. Fornecedor de serviços Internet P2P Peer to peer. Tráfego Internet “ponto-a-ponto” ou seja directo entre diferentes utilizadores sem depender de um servidor central. Sobre o autor Gustavo Homem é o director técnico da Angulo Sólido, uma empresa especializada em serviços profissionais open source. Mais informações em http://www.angulosolido.pt 21 Número 4 :: www.revista-linux.com Como jogar CS em Linux por Pedro Gaspar com o apoio de hdd.com.pt C ounter-Strike é o FPS Online mais jogado em todo o mundo. Counter-Strike, mais conhecido por CS, foi jogado pela primeira vez em 1999 pouco depois de Half-Life entrar no mercado. Desde essa data até aos dias de hoje, CS tem sido um dos jogos mais jogados em todo o mundo, responsável pela popularização das Lan-Houses em todo o mundo. Sendo considerado um “desporto” para muita gente, este jogo movimenta muito dinheiro, havendo vários patrocínios de marcas conhecidas (como a NVIDIA e a Intel), e mesmo jogadores a receber um ordenado fixo para jogar. $ sudo wget http://wine.budgetdedicated.com/ apt/sources.list.d/feisty.list -O /etc/apt/sources.list.d/winehq.list Ao longo do tempo, as versões do CS foram evoluindo: desde a primeira versão até às versões de hoje houve muitas mudanças. CS é um mod para o popular jogo Half-Life. Como foi referido anteriormente, pouco tempo depois do lançamento do HalfLife, Minh "gooseman" Le e Jess Cliffe criaram a primeira versão do CS. Desde então, têm vindo a evoluir progressivamente até à versão 1.6, sendo que a partir desta o jogo passou a ser apenas jogado no Steam (ver caixa sobre o Steam). Recentemente, em Novembro de 2004, saiu o novo Half-Life 2 e com ele uma nova versão do CS (chamado Counter-Strike: Source). Contudo, são muitos os jogadores que ainda jogam CS 1.6 pois, apesar do CS: Source ter um grafismo muito melhor, o GamePlay do CS 1.6 é significativamente mais interessante. $ apt-get install cvs build-essential bison flex-old libasound2-dev x-window-system-dev libpng12-dev libjpeg62-dev libfreetype6-dev libxrenderdev libttf2 libttf-dev msttcorefonts libfontconfig1-dev Debian Etch (4.0) $ sudo wget http://wine.budgetdedicated.com/ apt/sources.list.d/etch.list -O /etc/apt/sources.list.d/winehq.list $ sudo apt-get update $ sudo apt-get install wine 2 – Instalar o WineCVS em Ubuntu e Debian Outras distribuições $ wget http://winecvs.linux-gamers.net/ WineCVS.sh $ sh WineCVS.sh 3 – Instalar os tipos de letra da Microsoft Os tipos de letra da Microsoft são necessários porque o steam requer o tahoma.ttf Estes tipos de letra (2) devem ser descompactados e colocados dentro da directoria ~/.wine/drive_c/windows/fonts Nota: Caso esta directoria não exista, o leitor deve executar qualquer aplicação com o WINE para que ela seja criada, ou simplesmente executar winecfg Como jogar CS, HL e outros 1 – Instalar o WINE (1) em Ubuntu Feisty (7.04) Número 4 :: www.revista-linux.com 22 Imagem original da autoria de ladyphoenix1999 Revista Linux :: Prático Revista Linux :: Prático - Steam bloqueia caso o kernel seja inferior ao 2.6.15 Solução: Executar uname -r na consola e, caso o kernel seja inferior ao 2.6.15, actualizar para um mais recente. - O jogo paralisa ao início Possível solução: executar o winecfg e no separador áudio escolher as drivers OSS - O jogo desaparece da barra de tarefas quando se faz Alt+Tab Possível Problema: Isso normalmente acontece quando se está a jogar e se muda de aplicação para o Steam Solução: killar o processo, para evitar que esta situação ocorra novamente. Aconselhamos que, ao executar o jogo, se feche o steam para o trayicon. Figura 1 (comando para configurar o WINE) 4 – Instalar o Steam Antes de mais, o leitor deve fazer download do steam a partir de (3). Agora, através da consola, execute o seguinte comando dentro da directoria para onde fez o download do Steam: wine SteamInstall.exe Nota: Muitas das distribuições existentes já suportam a abertura dos ficheiros .exe pelo duplo clique do rato. Caso a sua distribuição ainda não os suporte, a forma de o fazer explicada anteriormente é a única possível Agora deverá aparecer no ecrã uma janela igual à da Figura 1. Os passos da instalação são intuitivos, pelo que não consideramos que seja necessário entrar em detalhes. - Ao iniciar um jogo ocorre um erro deste género : “The registry was in use by another process” Possível razão: Isto normalmente acontece quando o jogo é mal fechado, killado ou simplesmente acontece sem razão aparente. Solução: No steam no separador “Os meus jogos” clique com o botão direito no jogo em questão e cliquem nas propriedades do mesmo. Depois, no separador “Local Files”, terá um botão chamado “Verify integrity o game cache” em que deverá carregar. Este processo irá demorar alguns minutos, mas depois de concluído o jogo deve correr na perfeição. No fim da instalação, o Steam deve executar-se automaticamente fazendo de imediato updates. Depois desta etapa, deve aparecer uma nova janela perguntando se pretende criar uma nova conta, ou fazer login com uma já existente. Depois de fazer o login, aparecerá a primeira janela do steam com uma página em branco. Isso deve-se a um bug que ainda não foi corrigido e tanto a primeira página do steam como os “motd” aparecerão assim ao entrar nos servidores. Agora o leitor deve dirigir-se ao separador “Os meus jogos” e aí aparecem todos os jogos a que a sua conta tem direito. Jogos que funcionam usando o WINE *: • Half-Life • Half-Life 2 • Counter-Strike: 1.6 • Counter-Strike: Source • Day of Defeat: Source Sobre o Steam Steam é uma aplicação de gestão de direitos digitais criada pela Valve que tende a combater a pirataria e a fornecer actualizações automáticas aos jogos por ele geridos. Esta aplicação permite também comprar jogos sem precisar de aceder a nenhuma página, ou receber correio com os Cds, pois no fim de pagar o jogo (via cartão de crédito ou outros) é feito o download do jogo para o PC. Ver na Web (1) http://www.winehq.org/site/download (2) http://corefonts.sourceforge.net/ (3) http://www.hdd.com.pt/902733 Erros conhecidos: * Estes são os únicos jogos que confirmamos que joguem, no entanto, certamente que haverá muitos outros que também funcionam. 23 Número 4 :: www.revista-linux.com Revista Linux :: Teoria Open Source na prática Artigo adaptado para Português-Europeu por Avi Alkalay O O primeiro a propor a ideia de Open Source Software (OSS) foi Richard Stallman na década de 70, que a formalizou com a ajuda de alguns advogados na famosa licença GPL. Ninguém se interessou ou sequer ouviu falar disso, até que em meados da década de 90 tudo mudou com a vertiginosa popularizacção do Linux, sistema operacional OSS. O termo popular “Software Livre” não é a melhor tradução de Open Source Software, cuja designação correcta é Software de Código Fonte Aberto. É importante notar isto porque muitas vezes o termo é erradamente associado à ideia de não-proprietário, ou não-comercial. A verdade é que um software pode ter o seu código fonte aberto mas ser comercial e/ou proprietário e vice-versa, portanto são conceitos que não devem ser confundidos. A ideia é simples: eu escrevo um programa e o leitor pode copiá-lo à vontade sem nem sequer me notificar. Pode inclusive modificá-lo e redistribuí-lo, contanto que também mantenha as suas modificações abertas e informe qual a origem e os auto- res anteriores do software. Isso não quer dizer que teremos diversas versões desconexas do mesmo software, num dado momento. Cada modificação passa por um processo muito bem organizado de aceitação ou rejeição, onde boas melhorias retornam à base e são incorporadas à nova versão do software. Na verdade, actualmente, a maioria dessas contribuições não é mais feita por indivíduos, mas por empresas de tecnologia. É comum – e errado – pensar que OSS significa a morte de todo o software de código fechado. Isso não acontece porque a tendência é para que as grandes inovações continuem a ser exploradas pelo modelo fechado. Imagine um mundo hipotético que ainda não conhece editores de folhas de cálculo. É natural que, ao lançar esse produto, o seu inventor opte pelo modelo de código fonte fechado, para maximizar os seus lucros através do total controlo da sua invenção. Contudo, conforme essa invenção se populariza, desenvolve um mercado e adquire concorrentes. O OSS surge como uma das formas – a mais inovadora – para repensá-la. O OSS inova ao reimplementar o Número 4 :: www.revista-linux.com 24 que outros inventaram e exploraram anteriormente. Recentemente, porém, a indústria começou a usar OSS directamente para lançar certas inovações, justamente pelo seu poder de agregar comunidades e criar ecossistemas. Também é comum – e errado – acreditar que se o software em si é gratuito, elimina-se por completo os gastos. Mas haverá sempre a necessidade deum suporte confiável. O OSS altera o eixo do valor agregado do software, movendo-o do software em si (que não custa nada), para o serviço de suporte. No seu processo de amadurecimento, a única diferença prática entre um software OSS e outro de código fonte fechado é a ordem pela qual as coisas acontecem. Um fabricante comercial terá que criar estrutura e suporte regional antes de vender o produto. Já no OSS, ofertas de suporte só surgem (espontaneamente) depois deste gozar de uma boa gama de usuários. Mas seja qual for a ordem, a única coisa que garante maturidade a qualquer software ou produto é um ciclo de desenvolvimento–uso–suporte, que estimula mais desenvolvimento. So- Revista Linux :: Teoria mente essa maturidade garante a aceitação do produto em empresas responsáveis. E hoje os OSSs como o Linux, o Apache, o OpenOffice.org, o Samba e outros já gozam desse ecossistema cíclico de uma forma vasta, global e vigorosa. Hoje, o OSS tem aplicações mais maduras em infraestrutura e alguns nichos de middleware. Por sua vez, os softwares de código fonte fechado apresentam maior desenvoltura de mercado nas funcionalidades de maior valor agregado ao negócio (ERPs, CRMs ou processos empresariais). Isto porque estas funcionalidades têm uma amplitude menor de usuários, o que inviabili- za o surgimento de suporte espontâneo – factor vital para a maturidade do OSS. A indústria tem procurado um balanço saudável para misturar componentes fechados com OSS, a fim de maximizar o seu benefício sem abrir mão da maturidade de ponta a ponta. Prova disso é que tem sido cada vez mais comum a implantação de ERPs maduros – geralmente de código fechado – sobre plataformas abertas maduras – como distribuições Linux com suporte. chado, o uso de padrões amplia as escolhas e a liberdade da empresa que compra TI para compor a melhor mistura do momento, com opções OSS e/ou de código fechado. Ver nota biográfica sobre o autor na página 10 A receita para o melhor balanço é insistir no uso de Padrões Abertos. Por garantirem uma interoperabilidade fácil entre camadas abertas e de código fe- 25 Número 4 :: www.revista-linux.com Revista Linux :: Teoria Artigo adaptado para Português-Europeu Paravirtualização por Avi Alkalai E m TI, a virtualização é usada para simplificar, esconder ou mascarar detalhes de funcionamento infra-estruturais de um hardware ou software. Faz com que um componente se comporte ou emule outro tipo de equipamento. Então, o que se executa sobre a plataforma virtualizada passa a dar mais foco à sua super-estrutura ou lógica de negócio. Isto torna-se de mais fácil compreensão quando classificamos alguns tipos interessantes de virtualização: • Driver de Dispositivo. Esconde detalhes de um dispositivo específico criando uma representação virtual de um dispositivo genérico. É uma das formas mais populares de virtualização. • Virtualização de Hardware. Geralmente um software que simula todos os aspectos de um computador, incluindo firmware e dispositivos. • Virtualização de Sistema Operacional. Ou simplesmente SO. Provê APIs genéricas que podem ser usadas por uma ou várias aplicações simultaneamente. É uma das virtualizações mais completas, mais usadas e menos associadas à ideia de virtualização. • Virtualização de Servidor de Aplicações. Idêntica em todos os aspectos à do SO, mas provê APIs e serviços de ordem mais abstracta. Os SOs modernos como o Linux e o Windows já incluem esta camada como parte das funcionalidades que provêem. Como exemplo, temos J2EE e várias outras APIs no universo Linux e .NET no mundo Windows. • Grid. Pode ser visto como um novo SO cujas APIs simplificam, escondem e automaticamente geram uma malha de recursos computacionais heterogéneos e distribuídos. Há outros tipos de virtualização, mas o importante agora é entender que os principais objectivos do uso de virtualização são a independência e a separação lógica entre camadas de funcionalidades diferentes, uma melhor gestão de políticas de segurança e um melhor aproveitamento de recursos computacionais. Este último ganhou uma maior expressão nos últimos anos, abrindo mão exaustivamente da Virtualização de Hardware e muitas vezes negligenciando outros tipos de virtualização – especialmente a do SO – que pode trazer os mesmos benefícios de forma mais simples e barata. A Virtualização de Hardware é especialmente prática porque permite manejar o que antes era metal e silício físico, como se fosse agora um software, gravável numa mídia, transportável pela rede, etc. Mas a separação lógica entre hóspede e hospedeiro não lhes permite cooperar de forma mais eficiente. Por exemplo, o hospedeiro não consegue ter a mínima idéia de como seu hóspede está usando a memória física. Assim, pode haver um re-trabalho em coisas comuns como gerência de memória virtual, etc. A princípio, a Paravirtualização parece uma Virtualização de Número 4 :: www.revista-linux.com 26 Hardware, mas propõe que o SO hóspede “saiba” que está a viver sobre uma camada virtual e possa interagir com ela. Isto implica alterações no SO hóspede, mas garante uma cooperação sem precedentes entre as duas camadas. O datacenter do futuro – vislumbrado com tecnologias de paravirtualização do presente – será todo virtual. O que hoje está num servidor físico dedicado, estará num servidor virtual dedicado, sobre um servidor físico dedicado. Simplesmente porque a perda de performance da paravirtualização tende a zero e porque se ganha muita flexibilidade na gerência. A máquina paravirtual passa a ser um líquido que se adapta a qualquer recipiente, pode ser migrada a quente com milissegundos de indisponibilidade real, armazenada em backup ou fazer parte de um esquema de alta disponibilidade de máquinas virtuais. Agora só a imaginação é o limite. O primeiro SO moderno que implementou estas modificações foi o Linux, com o projeto Xen. A ideia espalhou-se, o mercado de virtualização gostou e fabricantes como VMWare e Microsoft aderiram a ponto de mudar as suas estratégias nesse sector, sendo que, actualmente, há um diálogo bem sucedido na indústria sobre padronização das interfaces hóspede-hospedeiro. Ver nota biográfica sobre o autor na página 10 Concentrando-nos no Utilizador Final por Mayko Nestor artigo adaptado para Português-Europeu N ão podíamos iniciar este artigo sem antes definir o conceito de utilizador fi- nal: O “utilizador Final” é simplesmente aquele utilizador que quer que as coisas funcionem automaticamente, sem intervenção de linhas de comando e de uma forma prática para seu uso no dia-a-dia. Utilizador, do latim usuariu, é aquele que possui ou desfruta alguma coisa pelo direito de uso. Do ponto de vista do programador um “utilizador Final” é a pessoa que utiliza o sistema no seu dia-a-dia. O programador cria o sistema mas o utilizador é sempre o outro, aquele que utiliza. Migração Devemos também ter em conta que este utilizador já tem um conhecimento prévio de um sistema operacional proprietário e que existe um tempo de aprendizagem, em que se aprendeu por necessidade, por não haver uma alternativa ao sistema operacional a ser utilizado como existe hoje em dia. Por isso mesmo, podemos utilizar este tempo de aprendizagem para fazer com que este utilizador utilize o sistema operati- vo GNU/Linux (1)? Distribuições como o Famelix GNU/Linux (2) desenvolvido por uma Faculdade (3) no sul do Brasil fez isso. Transformou com base em diversas distribuições (Debian (4) Kurumin (5), e Knoppix (6)), um sistema operativo GNU/Linux num ambiente similar ao do Windows XP (7). Existem também outras distribuições como o Freedows (8) e o Blanes (9) que são interfaces gráficas que podem ser instaladas em qualquer distribuição GNU/Linux. Como é referido num dos principais objectivos do projecto Famelix/GNU/Linux: “Desenvolver uma distribuição de modo a que o utilizador final esteja habituado a trabalhar até ao momento em que o mesmo já esteja apto a escolher a sua própria distribuição, de acordo com as suas necessidades.” Porém, esta situação origina uma grande discussão entre os programadores GNU/Linux, pois alguns acreditam que o GNU/Linux deve ter a sua própria identidade, com as suas característi- Número 4 :: www.revista-linux.com 28 cas intocáveis, e outros crêem que se o GNU/Linux for parecido com o Sistema operativo Windows facilita a migração do utilizador deste para um sistema operativo GNU/Linux. Acreditando que o utilizador final esteja já cansado de aprender devido ao seu investimento de tempo e dinheiro para aprender o que já sabe, é viável considerar a alternativa de criar um GNU/Linux de acordo com o conhecimento que o utilizador possui. Não cabe a nós, programadores, criticarmos e decidirmos isto, cabe ao próprio utilizador decidir qual o tipo de GNU/Linux utilizar. Além de esquecer que todos nós diariamente vivemos o papel de utilizador, o programador esquece também que este utilizador – indeciso, amedrontado, receoso de nos fornecer e conseguir informações, hostilizado por algumas equipas por ser considerado alguém com pouco conhecimento de informática – é a pessoa para o qual o sistema se destina. Sem ele, o trabalho de um programador não teria o mesmo valor, aliás, talvez nem existisse trabalho. Imagem original da autoria de Stefan Koopmanschap Revista Linux :: Teoria Revista Linux :: Teoria Utilizadores como os descritos acima tentam todos os dias obter respostas pela Internet em Fóruns, ou até mesmo por email para programadores, solicitando alguma ajuda ou propondo alguma solução. E muitos destes programadores, por terem criado algum projecto, sentem-se prepotentes e respondem (quando respondem) aos utilizadors com dúvida: Ex: - Você tentou procurar no Google? - Não tenho tempo para responder, estou com muito trabalho no projecto... - RFM. (Read the ******* Manual. - Leia a ***** do Manual.)... - Descarregue o manual no link: x... (Esse é raro) Existem utilizadores sem muito conhecimento que tentam fazer algumas perguntas sobre o funcionamento de algum sistema e fazem esta pergunta de uma maneira banal, (para os olhos do programador) que este responde de forma grosseira e definitiva, para que o utilizador não responda ou não peça mais ajuda. Ex: - O meu computador não acende a luzinha do “Scrool Lock” quando eu o pressiono, ele está com algum problema no sistema operativo? É uma pergunta muito simples de ser respondida (como: o seu teclado deve estar com algum problema, ou algo assim), contudo um programador, quando recebe uma mensagem como esta, responde duma tal maneira que rebaixa o utilizador, fazendo com que este nunca mais utilize esse sistema. Devemos pensar, quando pensamos em difundir o Sistema Operacional GNU/Linux, que de- vemos atender o nosso público, os utilizadores e, se estes não têm o tratamento adequado nas respostas às suas dúvidas, como iremos alcançá-los nos seus computadores? Não podemos julgar os nossos utilizadores. Na verdade, não devemos julgar ninguém pelas suas atitudes. Além do mais, como julgaríamos alguém que tivesse a atitude de tentar aprender perguntando ao próximo? Infelizmente, os programadores GNU/Linux têm muito que aprender quando se trata de tratamento ao utilizador, não há um tratamento adequado para com o consumidor de seu sistema, este deve baixá-lo, instalá-lo sem questionamentos. Se houver, de forma alguma deve perguntar ao programador. Mas não são todos os programadores que agem desta maneira, um exemplo são os programadores do Ubuntu GNU/Linux (10), pois estes tem um sistema de respostas aos utilizadores que entende as necessidades dos mesmos e tratam cada utilizador do seu sistema como se fosse único. Não poderia ser este o motivo desta distribuição ter sido difundida tão rapidamente entre os utilizadores de computador? Este artigo não pretende atingir nenhum programador, nem distribuição. Foi escrito somente para ajudar aos programadores a entender o que um utilizador passa antes de aprender o que ele espera utilizando uma distribuição GNU/Linux, e visa apenas melhorar a aceitação deste sistema operativo que todos estão interessados em ter nos seus computadores, ou pelo menos tentam. Ver na Web (1) http://www.linux.org (2) http://www.famelix.com.br (3) http://www.fameg.edu.br (4) http://www.debian.org (5) http://www.guidohardware.com.br (6) http://www.knopper.de (7) http://www.microsoft.com (8) http://www.freedows.com.br (9) http://www.blanes.com.br (10) http://www.ubuntu.org Sobre o Autor Mayko Nestor Meier, possui graduação em Administração - Sistemas de Informações Gerenciais pela FAMEG - Faculdade Metropolitana de Guaramirim (2005). Atualmente é técnico em desenvolvimento de sistemas nesta Faculdade. Tem experiência na área de Ciência da Informação, com ênfase em Desenvolvimento de Sistemas Operacionais. Participa Ativamente do Projeto Famelix, Sistema Operacional Famelix GNU/Linux é uma distribuição criada com a finalidade de oferecer um ambiente similar ao Windows XP ("Linux com cara de XP"), de tal maneira que facilite a migração de usuários do sistema operacional proprietário a um sistema livre, e que se possa aproveitar os conhecimentos já adquiridos pelos usuários. (www.famelix.com.br) 29 Número 4 :: www.revista-linux.com Revista Linux :: Entrevista Entrevista com Vasco Costa entrevista conduzida por Duarte Loreto O nosso convidado desta edição para a secção de entrevista é Vasco Costa. Constando deste número o artigo sobre o jogo Freeciv, afigura-se esta como sendo a melhor altura para entrevistarmos um dos seus actuais administradores, que é português! Revista Linux: Como tomou conhecimento do projecto Freeciv? Vasco Costa: Foi quando eu estava a estudar na universidade. Era Verão, eu tinha imenso tempo livre, já tinha jogado todos os meus jogos de computador. Peguei no disco de uma distribuição de Linux e percorri a lista de jogos de A a Z. Tinha jogado o Civilization da Microprose no secundário e achei interessante voltar a pegar num jogo assim. Desta vez ia poder jogar através da Internet com outras pessoas no Linux. RL: Desde quando está envolvido na equipa de desenvolvimento do Freeciv? VC: O Freeciv começou a ser desenvolvido em 1995. Eu comecei a programar para o projecto em 1998. Faço parte da equipa de administração desde 2001. A nossa equipa de desenvolvimento é internacional. Temos pessoas da Europa, Américas, Oceania e Ásia. Dezenas de pessoas, sem acesso de escrita ao repositório público de dados, contribuem para o projecto. Temos trinta e oito membros com acesso de escrita ao repositório. Destes trinta e oito, sete são a equipa de administração. RL: Que papel assume dentro da equipa e qual a área do jogo em que mais está envolvido? VC: Já fiz um pouco de tudo. Programei o cliente gráfico GTK+, resolvi problemas no código de rede, mexi no código do motor do jogo para tornar as regras mais flexíveis e configuráveis, dei início à tradução do interface para Português e coloquei a nossa nação e bandeira no jogo. Ajudei as pessoas, que estavam a tentar fazer o jogo funcionar melhor em Windows e Mac OS X, a resolver problemas. Ajudei na manutenção do website e dos serviços de rede. Nos últimos anos, as minhas tarefas têm sido principalmente administrativas e de suporte ao projecto: mudança dos conteúdos web para a plataforma CMS MediaWiki, arranque dos fóruns para utilizadores, mudança de CVS para SVN. A nossa carga de serviços era claramente excessiva e a nossa gente estava sobrecarregada. Incentivei o outsourcing de serviços não nucleares ao projecto para fornecedo- Número 4 :: www.revista-linux.com 30 res como SourceForge.net, Gna.org e Wikia.com de modo a não bloquear o desenvolvimento. Conseguimos fazer outsourcing dos serviços críticos como o repositório de dados e os conteúdos web. Contudo, o nosso serviço de servidores públicos de jogo sofreu um colapso por falha de hardware. RL: Há algum momento durante o seu envolvimento no Freeciv em que se tenha sentido especialmente contente, designadamente com a conclusão de algum sub-projecto ou implementação de alguma funcionalidade? VC: Vários, por exemplo: - A primeira vez que consegui jogar um jogo completo, com o cliente gráfico que tinha feito. - Quando me deram acesso de escrita ao repositório. - Quando vi o interface traduzido para Português, após o esforço de várias pessoas. - Quando vi o nosso fórum de utilizadores ultrapassar os 100 utilizadores registados. Agora temos mais de 2000. Fora das tarefas do projecto: - Quando dois dos nossos jogadores, que se conheceram através do nosso jogo, decidiram dar o nó e tiveram crianças. RL: Consegue conciliar facil- Revista Linux :: Entrevista mente a vida pessoal e profissional com o seu envolvimento no Freeciv? VC: Nos últimos anos eu, bem como todos os administradores, temos tido mais responsabilidades na nossa vida profissional. No meu caso, isso levou a que tivesse de deixar de lado as tarefas mais intensivas que eu gosto, como a programação em C neste projecto, para outras pessoas. Tento ajudar naquelas tarefas que os outros programadores de C normalmente não gostam de fazer, mas que eles ou os nossos jogadores precisam e que têm tendência a ficar para o fim ou a nunca ser feitas. Tento contribuir nos meus tempos livres e férias, que são cada vez mais reduzidos, à medida que assumo mais responsabilidades na minha vida pessoal e profissional. Dado que isto tem sido problema para os administradores em geral, tivemos uma quebra de ritmo no desenvolvimento do projecto. Conseguimos recentemente atrair uma nova geração de programadores. Por isso, tenho confiança no futuro deste projecto. Estamos sempre abertos a mais gente e ideias novas. RL: O seu envolvimento no Freeciv contribuiu ou trouxe de alguma forma benefícios durante a sua licenciatura ou, posteriormente, para a sua vida profissional, nomeadamente pela experiência de áreas de desenvolvimento, gestão de equipas ou de trabalho em equipa com equipas remotas? VC: A experiência que obtive em desenho de interfaces, programação e administração de redes, bem como auto-gestão tem sido de grande ajuda. Na empresa em que trabalhei anteriormente, é política usar software livre ou aberto sempre que possível. Os sócios não só eram bons líderes de pessoas e comunicativos, como possuidores de saber técnico, abertos a novos e melhores modos de fazer trabalho. O facto de eu já ter experiência na comunidade ajudou-me a conseguir a entrevista. Quem conhece a comunidade sabe que nós somos pessoas motivadas para o trabalho, que não precisam de muito esforço de gestão para obter resultados. Como diz o ditado: quem corre por gosto não cansa. Tenho recorrido cada vez mais ao trabalho remoto com outras pessoas. Certos gestores demonstram algum grau de abertura a esta forma de trabalho. Infelizmente, penso que muitos gestores ainda têm a mentalidade enraizada numa era pré-Internet, em que as pessoas têm horários fixos para trabalho em locais fixos. Apoiam-se em métodos subjectivos e qualitativos de avaliação. Querem ver a cara das pessoas, vê-los de corpo presente para ficarem descansados que se está a trabalhar de facto. Nos projectos de software livre nós reconhecemos trabalho produzido, usamos métricas quantitativas como linhas de código, índices de actividade, funcionalidades implementadas, bugs corrigidos. Sabe-se que para atingir resultados de qualidade em software, é necessário dar tempo para este amadurecer. Que às vezes é preciso sair de frente do PC, mudar de ambiente, para as ideias surgirem. Penso que existiu mais disciplina de desenvolvimento e engenharia de software pura e dura nos projectos de software livre, que nos projectos de software tradicional em que participei. Para não falar que, devido à dimensão do nosso mercado, as equipas de desenvolvimento são tradicionalmente mais pequenas cá que nos projectos de software livre. RL: Costuma também jogar Freeciv com frequência ou limita o tempo de jogo ao necessário pa- 31 ra testar e detectar bugs? VC: Não jogo mais. É demasiado viciante. Se jogasse não tinha tempo para fazer mais nada! [Risos] RL: A decisão de integração do Freeciv com o "GGZ Gaming Zone" deveu-se apenas à expectativa de atrair mais jogadores/divulgar o projecto ou teve outros motivos? VC: Os nossos jogadores adoram servidores públicos em que podem jogar contra outras pessoas. Os nossos servidores públicos entraram em colapso por falha de hardware, temos de arranjar um substituto menos centralizado, mais resistente a falhas. RL: Quais são algumas das futuras funcionalidades que poderão vir a ser implementadas no Freeciv? VC: - Serviço de jogos descentralizado. - Gráficos melhorados. - Editor de jogo integrado. - Cliente SDL completo. - Cliente para Mac OS X que não necessite de X-server instalado. - Mais campanhas e cenários de jogo. - Suporte IPv6. - Suporte para zoom do mapa. - Música e som melhorados. RL: Têm algum tipo de estatísticas ou valores aproximados que vos permitam saber qual a percentagem de utilizadores em cada uma das diferentes plataformas suportadas (ou, pelo menos, entre Linux/UNIX, Windows e Mac)? Se sim, esses valores estão de acordo com as vossas expectativas? VC: Sim. Temos estatísticas das pessoas, que se tentam ligar a servidores de jogo através da Internet. Ficamos surpreendidos por a maioria dos nossos utilizadores, ao contrário de há dois anos atrás em que havia Número 4 :: www.revista-linux.com Revista Linux :: Entrevista mais gente com Linux, utilizar a plataforma Windows. Porquê mais gente com Windows? O jogo está mais fácil de instalar e lançar. Também penso que as pessoas estão fartas de comprar PCs novos com placas gráficas 3D topo de gama para jogar um jogo de estratégia. Penso que não temos mais utilizadores de Mac OS X devido a não termos um cliente gráfico nativo, fácil de instalar, que não necessite de X-server instalado. O cliente gráfico mais utilizado ainda é o GTK+ que eu desenvolvi originalmente e depois converti para GTK+ 2.x. Disponibilizo umas estatísticas baseadas no sistema operativo de jogadores que se tentaram ligar aos servidores públicos no primeiro semestre dos últimos três anos. RL: Pessoalmente, acha que há mercado económico para jogos comerciais que tenham uma versão Linux? Por que acha que a maioria das produtoras ignora esta plataforma? VC: Sim, penso que existe mercado para jogos comerciais para Linux. No desenvolvimento de software os custos estão na concepção e produção, sendo os custos de replicação quase nulos. Compreendo as razões das produtoras. Se eu fosse uma produtora tentaria alcançar a maior audiência possível, com os menores custos de desenvolvimento de software. Algumas pensam que conseguem isto utilizando DirectX. Assim já podem vender para Windows e Xbox. Pensam que o esforço de fazer versões para outras plataformas é inusitado. E é inusitado se forem usados os canais tradicionais de distribuição, como vender jogos em caixas na FNAC, para depois ficarem na prateleira. RL: Qual considera ser a maior limitação técnica ao desenvolvimento de mais jogos para Linux, quer comerciais, quer Open Source? Ou acha que é tudo uma questão de política e economia? VC: Não é apenas política e economia. As APIs de multimédia no Linux são fracas. Precisamos de mais APIs de software livre e aberto multi plataforma, fáceis de usar, que também funcionem em Windows, Mac OS X e nas consolas. Precisamos de melhores drivers para 3D. RL: Acha que os jogos online de mundos persistentes (MMORPG's) são o futuro dos jogos, em que os actuais jogos offline estão condenados a desaparecer, ou há espaço para ambos os tipos? VC: Penso que os jogos offline continuarão a existir, mas o meio de aquisição por excelência será a Internet. O modelo Número 4 :: www.revista-linux.com das caixas na prateleira não faz sentido. A ideia que um jogo é algo que se faz uma vez para ter poucos patches só faz sentido para jogos simples. Jogos complexos, com elevados custos de desenvolvimento, que os jogadores jogam de forma intensiva, adaptam-se melhor a um modelo de subscrição mensal. RL: Pessoalmente, que jogos costuma jogar, sem ser o Freeciv? Algumas recomendações (jogos que corram em Linux nativos ou através de Wine/Cedega/Crossover Office)? VC: De estratégia: “Europa Universalis III” e “Galactic Civilizations II : Dread Lords” na plataforma Windows. “Wesnoth” na plataforma Linux. Cada vez tenho menos tempo para estes jogos intensivos de estratégia. Adoro os velhos clássicos das máquinas de jogos. Jogo um bocado, divirto-me, e desligo. Esses posso jogar em qualquer plataforma, graças ao MAME. RL: Por último, para ficar como indicação para os nossos leitores, há algum conselho que ache adequado transmitir a estudantes (ou outros) que estejam tentados a iniciar contribuições para o mundo Open-Source? VC: Encontra algo que queiras mudar ou adicionar ao teu software favorito. Trabalha, submete o teu trabalho a quem de direito. Aceita críticas construtivas. Não esperes glória ou reconhecimento imediato. Sobre o entrevistado Vasco Costa, 29 Anos. Estudante de Doutoramento em Computação Gráfica no Instituto Superior Técnico. 32 Revista Linux :: Prático BluePad por Joaquim Rocha e Valério Valério N a cadeira de Computação Ubíqua da Licenciatura em Engenharia Informática na Univerdade de Évora o projecto final da cadeira teria que ser proposto pelos alunos. Assim, e após várias ideias descartadas por nós (Joaquim Rocha e Valério Valério), numa explanada de um jardim de Évora surgiu a ideia de desenvolver um software para dispositivos remotos, nomeadamente telemóveis, que permitisse o controlo remoto de um computador. A ideia por detrás deste software é a de o utilizador poder configurar que teclas quer pressionar no telemóvel e que teclas do PC são simuladas. A utilização do comando estaria, obviamente orientada a controlar apresentações, filmes e música mas quisemos estender o uso do software e permitir também controlar jogos. Ou seja, qualquer pessoa poderia usar o seu telemóvel como comando de jogos e não precisar do teclado ou de carregar consigo um “game pad”. Para a comunicação escolhemos usar o bluetooth, assim, escolhemos o nome BluePad para o nosso sofware. O BluePad, após a sua avaliação na cadeira, foi lançado sob a licença GNU GPL e está agora disponível a todos na sua página oficial (1). No PC O BluePad é dividido no programa para computador e no programa para telemóvel. O programa para computador foi escrito em Python usando o módulo PyGTK para produzir um interface GTK. A simulação das teclas é conseguida através do envio de identificadores das teclas para módulo “uinput” do kernel. Este módulo é usado por exemplo por joysticks e simula teclas interagindo com a janela que está em foco. A comunicação por bluetooth é manipulada no PC usando o módulo PyBluez. No telemóvel O programa para telemóvel foi escrito em J2ME o que permite, juntamente com os outras técnicas de programação, a sua utilização em várias plataformas. A manipulação da comunicação por bluetooth foi conseguida através da API JSR 82. É no telemóvel que o utilizador escolhe tanto as teclas do telemóvel que deseja atribuir a uma funcionalidade, como as teclas do computador. Então, quando o utilizador pressiona uma tecla configurada, é enviada ao computador a informação com o código da tecla que o este deve simular. BluePad no PC 33 Número 4 :: www.revista-linux.com Revista Linux :: Prático Ao clicar com o botão direito do rato em cima deste para ver o menu onde deverá escolher a opção “Preferences”. Ecrã de menus no telemóvel Instalação Para a instalação no telemóvel pode fazer download (2) dos ficheiros .jar e .jad que permitem a fácil instalação e cuja explicação deverá vir no manual do telemóvel a instalar. No caso do computador, para sistemas baseados em Debian (Ubuntu, Alinex, etc.) pode fazer download do pacote “deb” (3) e facilmente instalá-lo. Para outras distribuições não é mais difícil, basta fazer download do código-fonte (4) e correr o script “bluepad”. Uso Após inicializar o BluePad (por execução do script ou através do menu do GNOME) e quer o seu ambiente gráfico seja o GNOME ou KDE, deverá aparecer uma janela a pedir a password de root. Tal permissão é necessária devido à simulação das teclas do PC ser conseguida através do módulo “uinput” do kernel. Neste momento deverá aparecer o “splash” do programa e a seguir o ícone do BluePad aparece no tray do seu gestor de janelas. Uma janela muito simples surgirá então e deverá clicar no botão “Find” para depois seleccionar o seu telemóvel do menu “drop-down” – será de lembrar que deverá ter o bluetooth do seu telemóvel previamente activo – e clicar em “Connect”. Se a ligação correu bem, aparecerá um balão com o nome do dispositivo ao qual o seu PC se encontra ligado e o ícone do tray deverá ficar azul (significando que está conectado a um dispositivo remoto). No telemóvel, após escolher a língua e aceder ao menu principal, deverá escolher a última opção: “Selec. Dispositivo”. Após a busca lhe devolver a lista de dispositivos no alcance do telemóvel, escolha o correspondente ao seu PC e escolha a opção “Ligar ao disp.”. A máquina vistual do Java do seu telemóvel dever-lhe-á pedir permissão para a conexão e, após dar a permissão, deverá estar ligado ao seu PC. A magia forma, se fosse controlar um filme após ter controlado uma apresentação teria que configurar de novo as teclas para o filme... Em cada categoria, os ícones (que são originários do conjunto de ícones Tango para GNOME) descrevem as acções e as teclas do telemóvel que a desempenham estão escritas à frente destes. Caso pretenda configurar as teclas do PC ou do telemóvel, pressione a tecla correspondente ao “Menu” (o nome “menu” pode variar conforme o modelo e marca do telemóvel) e escolha que teclas quer configurar – PC ou Telemóvel. Então ser-lheá apresentado um interface tipo “roda-da-sorte” onde pode escolher as teclas configuráveis. Problemas Como projecto novo que é, não poderiam deixar de existir alguns problemas. Temos alguns problemas de multi-thread devido à natureza do GTK+. Como o projecto foi desenvolvido primariamente sobre e para o ambiente GNOME, também existem alguns problemas de integração com o KDE, que espe- Voltando ao menu principal, existem três categorias principais para controlo do seu PC: Apresentações; Filmes; Jogos. Dentro de cada uma destas, pressionando as teclas configuradas do telemóvel, as teclas correspondentes do PC serão simuladas neste último, controlando a janela que está no focus. Mas, desta forma, para que existem categorias distintas? A lógica de existência de categorias são, basicamente, o poder ter três configurações de acções/teclas em simultâneo. De outra Número 4 :: www.revista-linux.com 34 Perfil de filmes/música Revista Linux :: Prático ramos serem resolvidos brevemente. Alguns jogos mais elaborados também parecem ignorar os inputs dados através do BluePad, problema que desconhecemos a razão e que será por isto mesmo, desafiante. Conclusão O BluePad encontra-se na sua fase “jovem” onde alguns aspectos necessitam ser melhorados mas apresenta-se já como algo útil e pronto a ser usado, ainda que com algumas limitações. O número de downloads logo nos primeiros dias deixou-nos contentes e recompensados pelo nosso trabalho, esperamos que aumentem. Será de extrema importância a colaboração que quem estiver interessado com testes em telemóveis que não constem na lista que se apresenta no site oficial do projecto. Outro tipo de colaboração serão traduções para outras línguas ou o simples feedback a anunciar o seu uso (por exemplo em palestras), que sempre nos encoraja a continuar o desenvolvimento. A configurar as teclas A escolher um tecla Ver na Web (1) http://bluepad.sourceforge.net (2) http://downloads.sourceforge.net/bluepad/bluepad_0.1_mobile.tar.gz? use_mirror=dfn&filesize=101397 (3) http://downloads.sourceforge.net/bluepad/bluepad_01-Debian_i386.deb? use_mirror=dfn&filesize=78752 (4) http://downloads.sourceforge.net/bluepad/bluepad_0.1_computer. tar.gz?use_mirror=dfn&filesize=70244 35 Número 4 :: www.revista-linux.com Revista Linux :: Eventos por Valério Valério P ela primeira vez em Portugal vão ser distinguidos os programadores de Software Livre nacionais, no Concurso Nacional Software Livre (CNSL). Vão ser avaliados e premiados os projectos de Software livre desenvolvidos por portugueses. Este concurso é organizado pelo Núcleo de Estudantes de Engenharia Informática da Universidade de Évora(1), em colaboração com várias personalidades e empresas do mundo do Software Livre, sendo este parte integrante do evento Open Delta aLANtejo 2007(2). Com o CNSL pretende-se não só divulgar o Software Livre em Portugal, mas também promover o seu desenvolvimento e distinguir os seus produtores. Incentivar a partilha de conhecimento entre os participantes visando incutir espírito de entreajuda é outra das metas. Podem participar no CNSL todos os programadores de software livre que tenham nacionalidade portuguesa, é possível concorrer com projectos pessoais, com projectos em equipas até 3 elementos, ou com uma contribuição para um projecto de larga escala. Por exemplo, um programador que tenha feito um novo módulo, uma nova funcionalidade, plugin, etc, para o Firefox pode concorrer no CNSL. Existem no site do concurso regras (3) bem definidas para a participação no mesmo. Em caso de dúvida é possível consultar uma FAQ (4) ou contactar a organização do concurso através do fórum (5) do evento Open Delta aLANtejo. Como a credibilidade é um dos factores chave, foi designado um júri composto por diversas personalidades internacionais de renome no meio para avaliar os projectos a concurso (ver caixa júri). Todos os projectos a concurso serão divulgados no site do evento e na Revista Linux, mas, acima de tudo, os candidatos terão a oportunidade de mostrar as suas criações aos gurus do Software Livre. Os que receberem melhor cotação serão apresentados no evento Open Delta aLANtejo, para além de ganharem bons prémios (ver caixa prémios CNSL). A pré-inscrição (6) no concurso é obrigatória e deverá ser feita até ao dia 18 de Setembro de 2007. A entrega dos projectos deverá ser feita até dia 23 do mesmo mês. Ver na Web (1) www.neei.uevora.pt (2) www.alantejo.uevora.pt (3) Regras do CNSL (4) FAQ do CNSL (5) www.alantejo.uevora.pt/2007/forum (6) Pre-inscrição CNSL Júris Alex Beregszászi - Programador do Mplayer e FFmpeg. Damien Sandras - Criador do software de VoIP Ekiga. Dario Rapisardi - Programador do GNU/Linex. (http://rapisardi.org/) Gael Duval - Criador da famosa distribuição Mandrake e da nova distribuição Ulteo. Isaac Clerencia - Programador do jogo Battle for Wesnoth. (http://people.warp.es/~isaac/blog/) Jon 'maddog' Hall - Presidente da Linux Internacional. Jono Bacon - Responsável pela comunidade mundial do Ubuntu e criador do software de gravação e edição de áudio - Jokosher. Marcelo Tosatti - Red Hat e responsável pela versão 2.4 do kernel do Linux. Mirco Müller - Participa nos projectos OpenGL, Cairo, GTK+, gstreamer entre outros. (http://macslow.thepimp.net/) Número 4 :: www.revista-linux.com 36 Revista Linux :: Book Review Book Review Everyday Scripting with Ruby for Teams, Testers and You por Joaquim Rocha Ficha Técnica: Autor: Brian Marick Editora: Pragmatic Bookshelf ISBN: 0-9776166-1-4 Idioma: Inglês Nº Páginas: 310 Edição: 1º Edição (Janeiro 2007) assaram-se 12 anos desde que Yukihiro Matsumoto lançou a primeira versão do Ruby. Agora que o Ruby conseguiu a popularidade em massa, cada vez mais gente está a aprender esta nova, e talvez estranha, linguagem. Entre outras funcionalidades, o Ruby é muito adequado para desenvolver scripts ultra-rápidos e aprender como escrever estes é o principal objectivo deste livro. P O livro foi escrito à volta de quatro interessantes projectos que lhe ensinam desde o básico do Ruby até alguns aspectos úteis desta linguagem. Estes projectos são um verificador de desinstalação, um sistema de controlo de versão, um seleccionador de informação de páginas web e um monitor de sistema para vigiar programas que estão a correr no sistema e enviar informações através de e-mail ou mensagens instantâneas. Ainda que o gráfico na contracapa do livro diga que este está destinado a utilizadores entre o nível de principiante e de experiente, consideramo-lo especial- mente bom para principiantes. Arriscaríamos mesmo dizer que o livro é até adequado para os principiantes mais inexperientes devido ao facto de Brian Marick explicar como instalar a linguagem, usar uma consola do sistema bem como a programação orientada a objectos, etc... O autor consegue tudo isto sem recorrer a outras linguagens. Isto, ainda que seja muito bom para principiantes, pode por vezes aborrecer um pouco os programadores mais experientes mas não será nada com que estes não consigam lidar. Brian Marick guia-nos através do livro usando uma linguagem simples e directa, por vezes com um ligeiro sentido de humor para acalmar as coisas. Ele não só ensina como usar a linguagem mas também encoraja os leitores a usá-la referindo-se a eventuais “bugs” e outras coisas que possam parecer estranhas a principiantes. Outra boa característica é a organização dos capítulos “Ruby Facts”: estes são como resumos que introduzem brevemente alguns conceitos como no ca- 37 pítulo 10 - “Ruby Facts: Regular Expressions”.. O livro pretende que o leitor vá praticando ao longo deste como livro prático que é. Não se ensinam aqui conceitos profundos e extensos, nem sequer há uma introdução relembrando a história do Ruby. Assim, este é um livro prático, directo e “pronto a usar” sendo o seu alvo principal os “testers” que poderão querer automatizar algum do seu trabalho. Concluindo, apesar do facto do nome do livro acabar com “for Teams, Testers and You”, todo ele parece ter sido escrito a pensar nos “testers”. Recomendamos este livro especialmente para principiantes que queiram aprender o Ruby como sua primeira linguagem de programação e para pessoas que não conhecem o Ruby e queiram aprender de modo rápido como escrever scripts. Assim, atribuímos a este livro uma classificação geral de 4/5. Número 4 :: www.revista-linux.com Imagem da autoria de Alessandro Revista Linux :: Jogos Freeciv por Duarte Loreto er o líder de uma civilização. Gerir a sua expansão desde os primórdios do desenvolvimento tecnológico até à conquista do espaço. Lutar contra outras civilizações ou formar alianças e pactos de nãoagressão. Explorar, conquistar, descobrir... Para quem conhece e gosta do Civilization, jogar Freeciv será um prazer, o voltar às origens. Mesmo para quem não jogou esses jogos que marcaram uma época, mas é fã de jogos de estratégia, encontrará aqui horas de divertimento. S A História do Freeciv O jogo Civilization original começou por ser um jogo de tabuleiro (1), lançado no mercado no início da década de 80. Este jogo de estratégia em tabuleiro teve posteriormente algumas expansões, com óptima aceitação dentro do seu mercado. Em 1991 foi lançado o Civilization (2), jogo de computador, para o DOS, Mac, Amiga e Atari ST. Em 1994 saiu uma versão melhorada para Windows e versões para SNES e Sega Genesis. Tanto pela disponibilização em várias plataformas, como pela qualidade do jogo em si, do conhecido Sid Meyer, este tornouse num sucesso, que teve várias expansões e novas versões. Em 1995, três estudantes de informática dinamarqueses queriam poder jogar este mesmo jogo em Linux mas não existia nenhuma versão para este sistema operativo. Descobriram na Internet um projecto de implementação em Open Source do jogo, chamado OpenCiv, e que estava a ser desenvolvido em Python. No entanto, este projecto estava pouco evoluído e os três amigos decidiram iniciar a sua própria implementação, em código C. Assim nasceu o Freeciv (3), “Porque a Civilização deveria ser Livre” (no original “Because Civilization should be Free”). Em 1996, poucos meses depois de iniciado o desenvolvimento, foi tornada pública a primeira versão. O jogo foi evoluindo e criada uma comunidade em torno do mesmo. Os programadores iniciais acabaram por se afastar do projecto mas este continuou, cheio de vida, até aos dias de hoje. Número 4 :: www.revista-linux.com 38 As Funcionalidades do Freeciv Neste momento, a versão estável do Freeciv é a 2.0.9, estando em fase avançada de teste o que vai ser a nova versão, a 2.1.0. Iremos sempre falar da versão 2.1.0, visto esta incorporar novos desenvolvimentos interessantes e também porque a actual versão beta4 se encontra estável ao ponto de ser a mais utilizada. O jogo encontra-se disponível em várias plataformas, nomeadamente Linux, várias versões de UNIX, Amiga, Windows e MacOSX. Adicionalmente, encontra-se traduzido em dezoito idiomas, entre eles o Português. O Freeciv tem um conjunto de regras compatíveis com as do Civilization II e do III, dispondo de mais de 50 unidades diferentes e mais de 100 nações sob cuja bandeira jogar. Outra funcionalidade relevante é o sistema de nevoeiro de jogo, em que cada jogador apenas consegue visualizar o terreno que controla, tornando invisíveis as movimentações das civilizações adversárias. Revista Linux :: Jogos O conjunto de gráficos (tilesets) pode ser alterado, para quem deseja que o seu jogo tenha um aspecto diferente. A aplicação dos gráficos apenas afecta a versão local, mesmo em jogos em rede, visto que apenas a aparência do jogo muda, permanecendo inalteradas todas as regras. Existem vários conjuntos de gráficos disponíveis no site (4). Estão ainda disponíveis na página do Freeciv, na secção Extras (5), mapas diversos e Modpacks. Estes últimos são conjuntos de alterações que além de terem gráficos diferentes, têm também conjuntos de regras que diferem das do Civ II ou III. Esta página tem ainda pacotes com ficheiros de som, instaláveis à parte, e outros utilitários diversos. O Freeciv permite que joguem até 30 jogadores simultaneamente, numa mistura de humanos e inteligência artificial. Para equilibrar o jogo, permite também definir o tamanho do mapa de jogo, podendo este ser uma réplica da terra ou um mapa gerado aleatoriamente. Além de combater abertamente os adversários, é também possível utilizar a diplomacia para forjar alianças, trocar segredos tecnológicos, subornar ou roubar. No caso de se optar pelo multijogador, este pode ser alcançado quer numa rede interna (LAN), quer jogando através da Internet, num servidor de jogos. Iremos falar mais sobre esta possibilidade na secção seguinte. Jogar Freeciv Dependendo da forma como se quiser jogar, existem alguns procedimentos iniciais que diferem. Depois, a forma de jogar é sempre a mesma, existindo quatro formas de o fazer: sozinho con- tra vários adversários controlados pelo computador; contra outras pessoas em rede local; contra outras pessoas num servidor público do Freeciv; contra outras pessoas na Internet através do GGZ Gaming Zone. Ao iniciar-se o Freeciv, o primeiro ecrã que surge apresenta as várias opções disponíveis. Iniciar um novo jogo, iniciar um cenário, ler um jogo gravado, ligarse a um jogo em rede ou ligarse à GGZ Gaming Zone. A escolha de um novo jogo ou de um cenário abre um ecrã onde é possível ajustar várias variáveis (a maioria acessível através de um botão para “mais opções”), entre elas o número total de adversários. Aceitando os parâmetros, é aberta a janela para que o jogador seleccione a nação que vai representar e qual o seu nome. Se o jogador seleccionar imediatamente a sua nação e avançar, irá jogar sozinho contra adversários controlados pelo computador. No entanto, se desejar jogar contra outras pessoas na sua rede local, basta aguardar que estes iniciem o Freeciv nos seus computadores e seleccionem jogar em rede local. O joga39 dor inicial irá surgir automaticamente como servidor local e os restantes podem juntar-se ao jogo. Tudo isto tem de ser feito antes de se seleccionar a nação que se vai utilizar. Para jogos em rede, há duas opções: uma é jogar na rede local, em que se existir algum servidor na rede local este é apresentado automaticamente na janela. Seleccionando esse servidor, passa-se para a fase de seleccionar a nação. Para jogar na Internet, é possível juntar-se a um jogo que esteja prestes a começar, num servidor público. Estes jogos são anunciados na página de Metaserver do Freeciv (6), e é onde este vai automaticamente buscar os servidores existentes para mostrar ao jogador. Recentemente, os servidores públicos deixaram de estar disponíveis devido a uma falha crítica de hardware na máquina que suportava estes servidores de jogo. Por último, é ainda possível, apenas a partir da versão 2.1.0, jogar pela Internet utilizando o sistema de jogos online disponibilizado pelo GGZ – Gaming Zone (7). Num cliente compilado com suporte para o GGZ, no ecrã inicial está disponível um Número 4 :: www.revista-linux.com Revista Linux :: Jogos edifícios construir em cada cidade, etc., há ainda um determinado nível de micro-decisões sobre as quais o jogador pode, opcionalmente, debruçar também a sua atenção, tais como definir rotas privilegiadas de trocas comerciais e níveis de impostos, com as suas naturais consequências, também influenciadas pelo estilo de regime político adoptado pela sua nação. botão que permite “Ligar à Gaming Zone”. Depois basta seguir as instruções. Esta é a alternativa ao jogo pela Internet com base no Metaserver do Freeciv. Independentemente dos adversários serem reais ou inteligência artificial, todo o resto do jogo se desenrola da mesma forma. Cabe ao jogador seleccionar a nação que vai representar e o seu nome, enquanto líder dessa civilização. O jogo propriamente dito começa com apenas uma parte do cenário visível. O jogador dispõe de cinco unidades, dois colonos, dois trabalhadores e um explorador. Os colonos podem ser utilizados para fundar cidades ou realizar trabalhos de alteração do terreno, construção de estradas, etc. Os trabalhadores podem realizar todas as tarefas dos colonos excepto fundar cidades. O explorador consegue percorrer terreno mais rapidamente para descobrir o que está “escondido” pelo nevoeiro. A primeira decisão do jogador será então onde fundar as suas cidades. A partir daí, definir quais as prioridades produtivas e na pesquisa tecnológica irão influenciar o desenvolvimento da civilização. Certas unidades ou edifícios apenas podem ser construídos se a nação tiver já conhecimento sobre determinadas tecnologias. A forma como se realiza a expansão no terreno terá também influência. No momento em que se tomar conhecimento com outras civilizações, torna-se possível fazer guerra ou iniciar contactos diplomáticos (caso já se tenha tecnologia para construir unidades de diplomatas) com vista à criação de alianças. Com os avanços tecnológicos, além de maior escolha de edifícios e unidades para construir, decorre também a possibilidade de construir uma “Maravilha do Mundo”. Todas as civilizações que cumprirem os pré-requisitos tecnológicos poderão iniciar a construção de uma Maravilha. Apenas a primeira civilização a terminá-la ficará com ela. Cada Maravilha dá um bónus para a civilização que a detiver, ainda que algumas destas se venham a tornar obsoletas com posteriores avanços tecnológicos. Além de uma gestão mais macro de onde fundar cidades, que Número 4 :: www.revista-linux.com 40 Existem três finais possíveis para o jogo nos conjuntos de regras base. Se, após guerras, apenas sobreviver uma civilização, esta é declarada vencedora. Outra possibilidade de vitória é ser o primeiro a colocar no espaço uma nave que chegue com sucesso ao sistema solar Alfa Centauri, sendo necessário realizar a pesquisa da tecnologia para a construção dos componentes e a construção dos mesmos. O último final possível é o de, chegando-se ao ano 2000 DC sem que nenhuma das condições anteriores se tenha verificado, se atribuir uma pontuação a cada civilização, baseada no seu desenvolvimento, expansão e poder, e dar a vitória à civilização com mais pontos. O Freeciv é razoavelmente complexo, mas sem se tornar uma dor de cabeça. Permite obter muitas horas de prazer, principalmente quando jogado online contra outros jogadores. Preparem-se, no entanto, para sofrer grandes derrotas nos primeiros tempos. Para facilitar a compreensão do jogo e dar melhores possibilidades aos iniciados, o projecto possui um Manual Introdutório (8) e um Manual de Jogo (9). Adicionalmente, quer na página Web quer no próprio cliente de jogo, existe bastante documentação sobre os vários tipos de terreno, unidades, edifícios, Maravilhas, tecnologias e demais questões, bem como dicas de estratégia. Revista Linux :: Jogos Para quem gosta de jogos baseados em turnos, de estratégia, e procura desafios com diferentes pessoas, terá no Freeciv horas de divertimento. A sua comunidade de jogadores e programadores garantirá um suporte e desenvolvimento continuado, com novas funcionalidades, por muito tempo. Poderá contactar ou conviver com alguns elementos dessa comunidade no IRC (servidor irc.freenode.org, canal #freeciv) ou nos fórums (10). Ver na Web (1) http://en.wikipedia.org/wiki/Civilization_(board_game) (2) http://en.wikipedia.org/wiki/Civilization_(computer_game) (3) http://www.freeciv.org (4) http://freeciv.wikia.com/wiki/Tilesets (5) http://freeciv.wikia.com/wiki/Extras (6) http://meta.freeciv.org/metaserver.phtml (7) http://www.ggzgamingzone.org (8) http://freeciv.wikia.com/wiki/Introduction_to_Freeciv (9) http://freeciv.wikia.com/wiki/Game_Manual (10) http://forum.freeciv.org/ e a-s o c i d ad de e osofi o no c r il u d So a f guin eme s n s m e o pe iga ns vo e r s O ue s e, co litati orqu verti o i g a P q d d Jo s qu is. da de jogo liber ível rcia bem a n me sa e tar lun co esen erto r um s co se A pr ab nte rta ém a a igo ma e ofe tamb d có tanto ao d res iro! en nte s liv inhe d lha guin star n a i g p m se 41 Número 4 :: www.revista-linux.com Revista Linux :: Jogos Puzzle Pirates por Duarte Loreto oda a acção decorre num ambiente que se assemelha ao descrito em histórias sobre os tempos de pirataria nos mares das Caraíbas. Mas este jogo está longe de ter violência. É sim um jogo que mistura os puzzles e paciências com jogos e actividades de cariz social. Vamos embarcar neste divertido mundo da pirataria! Ahrrr! T Obter o Puzzle Pirates Na página oficial (1) existem links para se obter o jogo ou jogar imediatamente. A segunda opção realiza primeiro a instalação caso o jogo não esteja ainda instalado. A página de download detecta automaticamente o sistema operativo do utilizador e oferece a opção adequada. O Puzzle Pirates foi desenvolvido em Java e funciona na generalidade dos sistemas, desde que estes tenham o Java 1.4.2 ou superior. Como é um jogo que não recorre a grandes efeitos gráficos, os requisitos mínimos de equipamento são um Pentium II a 500Mhz com 256Mb de RAM. Adicionalmente, o tamanho total do download são cerca de 50Mb. Uma vez o jogo instalado, ao iniciar-se uma sessão é necessário indicar o utilizador e senha para a nossa conta. Caso não tenhamos uma, podemos criá-la no momento, gratuitamente. Existem vários servidores de jogo, denominados “oceanos”. Uma nova conta é alocada a um oceano de forma aleatória. Caso o jogador esteja a criar uma conta com o objectivo de jogar com outras pessoas que conhece, deverá certificar-se de que altera o oceano pré-definido para aquele que lhe interessa. Existe ainda um tipo de oceano em que para evoluir o pirata para uma conta paga existem algumas diferenças. Caso pondere a hipótese de vir a pagar para jogar, será aconselhável ler a secção sobre subscrições e dubblons, na página do jogo (2). O passo seguinte é criar um pirata. Cada conta pode ter até três piratas. A personalização da aparência do pirata é algo limitada, dado o estilo gráfico do jogo. Além da sua aparência física, é nesta fase que definimos o nome do pirata, que outras pessoas irão ver. Terminada a criação do pirata (ou, em vezes seguintes, selecção de um já exis- Número 4 :: www.revista-linux.com 42 tente), entramos no jogo propriamente dito. Jogar Puzzle Pirates Com franqueza, o grafismo deste jogo não é nada de maravilhoso. Todo ele é feito com gráficos em 2D com uma perspectiva isométrica, sem qualquer tentativa de foto-realismo. Na verdade, todos os gráficos acabam por ter uma aparência de banda desenhada, num misto de cómico com “fofinho”. Claramente um formato que apela a um grupo muito distinto de jogadores, quando comparado com a maioria dos jogos online tradicionais ocidentais. Posta esta questão de lado, poderemos observar que toda a iniciação do jogador neste novo mundo é extremamente acompanhada. São sugeridos vários tutoriais para nos apresentar as funcionalidades e regras do jogo, além de nos introduzirem a alguns dos puzzles mais comuns. Cada tutorial dura normalmente cerca de 5 a 15 minutos a completar. Adicionalmente, existe um bom manual de jogo na página (3), além de existir uma “Enciclopédia do Pirata”, Revista Linux :: Jogos linha”. Para além destes três puzzles, existem outros. Na verdade, são cerca de quinze e esporadicamente são adicionados novos. Mas é aqui que entra uma das limitações de se ter uma conta gratuita. Alguns dos outros puzzles apenas podem ser jogados em dias específicos da semana, ao passo que quem tem uma conta paga os pode jogar todos os dias. A bordo de um navio chamada YPPedia (4). Seguindo os tutoriais, chegamos ao cerne do que é este jogo. Temos a parte de jogo propriamente dito, nos puzzles, e a parte social, nas roupas, esquadras (uma transposição do conceito de guildas) e jogos sociais. Cada actividade de pirataria consiste num puzzle diferente. Quanto melhor for a execução de um pirata num determinado puzzle, mais este contribui para a capacidade de navegação ou combate do navio em que está. Os três puzzles mais comuns consistem em bombear água para fora do navio (bildge), concertar buracos (carpentry) e manejar as velas (sailing). Um pirata iniciado irá por norma executar uma ou várias destas funções num navio de outro pirata, obtendo em contrapartida uma parte do resultado da pilhagem conseguida. Com a prática vai-se ganhando um nível de “fama” em cada puzzle, nível este que pode ser visto pelos outros jogadores, existindo inclusivamente uma lista dinâmica com os melhores a cada momento. E como são estes puzzles? “Sailing” é uma espécie de tetris, em que caiem peças num poço e o jogador deverá dispô-las por forma a eliminar blocos específicos, de acordo com cores. “Carpentry” consiste na colocação de peças de diversas formas em “buracos”, sendo a pontuação tanto maior quanto melhor aproveitadas forem as peças (evitar sobreposições, etc.). “Bildge” é um puzzle em que temos uma secção do ecrã cheia de esferas de várias cores e as podemos apenas trocar de posição com as vizinhas para eliminar conjuntos num estilo “4 em Na vertente social existem duas áreas. Uma prende-se com a personalização do pirata, especificamente no que toca à roupa que este tem vestida e a espada que utiliza nos seus combates. A maioria da roupa, especialmente a mais bonita, está reservada apenas a quem tem contas pagas. Aos piratas com conta gratuita, são reservadas as roupas mais simples. A outra vertente social é a dos jogos sociais, nas tascas das várias ilhas. Aqui o pirata pode degladiar-se com outros piratas em jogos de Espadinha, Copas, Poker, “Drinking” e “Treasure Hunt” (estes dois últimos não são jogos de cartas). Estes torneios podem ser jogados “a dinheiro” e são um bom destino para os dobrões de ouro ganhos nas pilhagens ou a traba- Sobre a ThreeRings (5) Esta empresa nasceu em 2001, nos E.U.A. O seu primeiro projecto foi o desenvolvimento do Puzzle Pirates. Iniciaram-no também em 2001 e no final de 2003 o jogo entrou em produção. Posteriormente, a empresa lançou um segundo jogo, denominado “Bang Howdy” e está a desenvolver um terceiro, “Whirled”, além de ter um kit para que qualquer pessoa possa criar mini-jogos que ficam albergados nos servidores da empresa (Game Gardens). A ThreeRings é adepta do Open Source (6). Além de disponibilizar algumas das APIs e projectos internos em Open Source, contribui para vários projectos já existentes. Os jogos são desenvolvidos em máquinas Debian e os servidores de produção são FreeBSD, utilizando mySQL como base de dados. A maioria dos seus desenvolvimentos são na linguagem de programação Java. 43 Número 4 :: www.revista-linux.com Revista Linux :: Jogos lhar para a Marinha. Durante os torneios, existe uma área de conversação exclusiva entre os adversários. Alguns destes jogos também não se encontram sempre disponíveis aos piratas com conta gratuita, existindo dias específicos para quem tem contas gratuitas. E que tipo de vida pode um pirata levar neste mundo? Pode-se perder pelas tascas, a jogar às cartas e na conversa... Pode decidir tornar-se num pirata que navega e pilha, ganhando assim dinheiro para si ou para a sua esquadrilha. Ou pode tornar-se num mercador, quer transportando bens entre ilhas vivendo do lucro, quer abrindo lojas nas ilhas, comercializando aí os bens que produziu (existem puzzles para produzir bens). Puzzle de carpintaria Mais uma vez, os piratas com conta gratuita estão limitados nas suas carreiras. Para se comprar um navio e deste se ser capitão, é necessário ter uma conta paga. O mesmo se passa para se alugar uma loja. (1) http://www.puzzlepirates.com Em Jeito de Conclusão (2) http://www.puzzlepirates.com/Pricing.xhtml O Puzzle Pirates é um jogo bastante divertido. Os seus puzzles são simples de compreender, difíceis de dominar. Uma grande vantagem é que se pode jogar por apenas 30 minutos e depois desligar. (3) http://www.puzzlepirates.com/DocumentationIndex.xhtml As limitações impostas sobre as contas gratuitas não são muito pesadas. Não retiram de todo o prazer da experiência nem mesmo de recorrentemente se jogar. Ainda assim, para quem realmente se empenhe e deseje ir mais além no jogo, uma mensalidade de 10€ não é cara, comparando com as mensalidades da maioria dos restantes jogos online. (6) http://www.threerings.net/code/ A maior parte da sua comunidade apresenta um agradável grau de maturidade e isto reflecte-se principalmente nos jogos de cartas, possivelmente uma razão boa o suficiente para de vez em quando se jogar Puzzle Pirates. Ahrrrr! Número 4 :: www.revista-linux.com Ver na Web (4) http://yppedia.puzzlepirates.com/Main_Page (5) http://www.threerings.net/ se a edica- do d is mercia osofia os Co sigam a fil ma forg o J u o ) na de ue de ue nã ulação A colu tar jogos q ade, mas q m e ( a d n r r s t e e e u s o lib te apre erto e ou de Normalmen do, b ) a s o o códig ários nativ inux. merca iin s em L relevo no rém ma (b ser jogado o r de p do vad e le u e m q a , e s s poss gos d adore cluído rão jo de jog ão estão ex e m tes se m volu uins n quer e ue os ping l! rq cia os. Po ento comer im t r e div 44 Revista Linux :: Kernel Pan!c Kernel Pan!c secção administrada por Valério Valério Se os restaurantes funcionassem como a Microsoft: Cliente: Empregado! Empregado: Olá, o nome é Bill e vou ser o seu empregado. Há algum problema? Cliente: Há uma mosca na minha sopa! Empregado: Experimente a comer outra vez, talvez a sopa não esteja aí desta vez. Cliente: Sentei-me e pedi a Sopa do dia! Cliente: Não, continua aqui. Empregado: Já considerou fazer upgrade para a última Sopa do Dia? Empregado: Talvez seja da forma com que você está a usar a sopa. Tente comê-la com um garfo desta vez. Cliente: Mesmo usando um garfo, a mosca continua aqui. Empregado: Talvez a sopa seja imcompatível com a tijela; que tipo de tijela é essa? Cliente: É uma tijela de SOPA! Empregado: Hmmm, assim devia funcionar. Talvez seja um problema de configuração; como é que a sopa foi aí colocada? Cliente: Vocês têm mais do que uma Sopa do Dia cada dia? Empregado: Sim, a Sopa do Dia muda a cada hora. Cliente: Bem, qual é a Sopa do Dia agora? Empregado: A Sopa do Dia actual é sopa de legumes. Cliente: Ok. Traga-me uma sopa de legumes e a conta. Já estou a ficar atrasado. O empregado sai e volta com uma tijela de sopa e a conta. Cliente: Você trouxe-me a sopa numa tijela grande e depois colocou-a aqui... mas o que é que isso tem a ver com estar uma mosca na sopa!? Empregado: Aqui está. A sopa e a sua conta. Empregado: Consegue-se lembrar de tudo o que fez antes de ter dado conta da presença da mosca na sopa? Empregado: Sim, a sopa de legumes ainda não estava pronta. Um cafutador 45 Cliente: Mas isto é sopa de tomate! Cliente: Bem, eu estou tão esfomeado que como qualquer coi- Número 4 :: www.revista-linux.com Revista Linux :: Kernel Pan!c "Concedido!", diz o génio. O empregado vai-se embora. O gestor de projectos coça o queixo e diz: "Hmmm, eu quero aqueles dois nos escritórios assim que a hora de almoço acabar!" Cliente: Está um mosquito na minha sopa! A conta: Sopa do Dia ..................... $5.00 Actualização para uma nova Sopa do Dia ......................... $2.50 Apoio ao cliente pelo empregado ..................................... $2.00 Um engenheiro de hardware, um programador e um gestor de projectos estão a passear na hora de almoço no jardim da empresa e vêm uma lâmpada mágica. Um esfrega a lâmpada e aparece um génio. O génio diz: "Como me libertaram da lâmpada, vou-vos conceder três desejos, um a cada um!" Engenheiro de Hardware: Eu quero estar agora no pacífico a comandar um iate onde toda a tripulação é constituida por raparigas bem roliças. O génio levanta a mão e puf! O engenheiro desaparece! Programador: Eu gostaria de estar agora no Havai a ser massajado por duas raparigas da qualidade da tripulação do iate! Dez sinais que indicam que a sua mulher está a ter um "affair" online: 10. A altas horas da noite ela senta-se nua; 9. Depois de desligar a sessão, fuma sempre um cigarro; 8. Tem um "disco rígido" de borracha que ela guarda secretamente numa gaveta; 7. De manhã, o ecrã do computador está todo embaciado; 6. Adquiriu uma grande técnica em escrever só com uma mão; 5. Faz comentários sarcásticos sobre o seu pequeno "software"; 4. Batom no rato; 3. Quando fazem amor, ela diz: "Aspas, barra, enter, insert!"; 2. Você não se lembra de lhe ter tirado aquelas fotos que estão na pasta "web_cam"; 1. O problema da impressora era uma peça de langerie encravada. Se a Microsoft fabricasse carros: - O livro para o dono do carro teria 1300 páginas e pesaria 3 quilos; - Nos test-drives, algumas "features" do carro não estariam dis- Número 4 :: www.revista-linux.com 46 poníveis: exceder os 20 Km/H, fazer marcha-a-trás, ar-condicionado, piscas... - A garantia diria a letras pequenas que o carro não tinha sido feito para viajar; - Quando se abrisse a porta do carro pela primeira vez, apareceriam os termos da garantia; - Haveria um indicador luminoso de "Falha geral no veículo"; - A viatura só poderia andar em 5% das estradas e 10% do tempo sem falhar; - O volante teria que ser reinstalado a cada 6 meses. Kernel Pan!c é a secção mais bemdisposta da RL, contamos com o leitor para a tornar ainda melhor. Para isso envie piadas ou imagens engraçadas para vdv100@gmail.com . sa. Revista Linux :: Empresas Soluções Open Source Esta secção quer-se como uma listagem de empresas portuguesas que oferecem soluções em software open source sobre Linux. Se quiser adicionar a sua empresa a esta lista, envie um email para correio@revista-linux.com com o assunto "Lista de Empresas". Deverá incluir o nome da empresa, contacto, logotipo, página web, local da sede e os serviços oferecidos através de palavras-chave. Empresa Contacto geral@angulosolido.pt Sede Serviços Lisboa migração, redes, servidores, ... www.angulosolido.pt info@dri.pt e-commerce, formação, migração,soluções web, ... Lisboa www.dri.pt geral@caixamagica.pt Lisboa www.caixamagica.pt log@log.pt Lisboa www.log.pt formação e certificação, soluções empresariais, consultoria, migração, outsourcing, ... consultoria, desenvolvimento (Perl e PHP), integração de sistemas (CRM e CMS), migração; outsourcing, ... Gondomar www.linuxkafe.com cibercafé, redes, migração, servidores, formação, desenvolvimento de software, soluções opensource, ... Lisboa www.microskills.eu consultoria, administração de sistemas, comunicações, internet, software, hardware, formação mail@linuxkafe.com geral@microskills.eu 47 Número 4 :: www.revista-linux.com Revista Linux :: Agenda de Eventos info@ecomsis.com Almancil - Loulé www.ecomsis.com vmn@vmn.pt Matosinhos www.vmn.pt soluções opensource, migração, consultoria, integração de sistemas(CRM e CMS), web development, e-commerce, redes, hardware, ... Consultoria, implementação de soluções Desktop e Servidor em Linux, VoIP, Software à Medida, Hardware e Software Eventos Open Source Esta é uma listagem de eventos relacionados com Linux e Open Source na Europa e em países de língua portuguesa. Para divulgar um evento envie um email para correio@revista-linux.com com o assunto "Lista de Eventos". Deverá incluir o nome, a data do início e do fim, local e página web do evento. OSiM 07 http://osimconference.com I Fórum Software Livre http://www.softwarelivre.com.pt Open aLANtejo | 07 http://alantejo.uevora.pt Número 4 :: www.revista-linux.com 18-19 Setembro 07 12-13 Outubro 07 19-21 Outubro 07 48 Madrid, Espanha Lisboa, Portugal Évora, Portugal