Revista programar 19ª Edição - Abril 2009

Download Revista programar 19ª Edição - Abril 2009

Post on 06-Apr-2016

216 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

A Revista PROGRAMAR um projeto iniciado e desenvolvido por membros da comunidade Portugal-a-Programar, com o objectivo de suprir a falta de uma revista de qualidade sobre programao e de promover a criao de contedos relacionados com programao, em portugus. Site: http://netponto.org/revista-programar

TRANSCRIPT

  • editorial ndice3411 14 20 26 notciastema de capa- GWTa programar- Processamento de texto em AWK- Microsoft Windows PowershellGNU/Linux- Linux Graphics Stackinternet equipa PROGRAMARcoordenadoresJoel RamosPedro AbreueditorAntnio SilvacapaDaniel CorreiaredacoCristian GonalvesFbio FerreiraJoo MatosPaulo Cabralequipa de revisoBruno OliveiraFernando MartinsMiguel RentesNuno JooSrgio Lopesequipa de divulgaoDavid Ferreiracontactorevistaprogramar@portugal-a-programar.orgwebsitewww.revista-programar.infoissn1647-0710

    Novos HorizontesEsta a nossa primeira edio como coordenadores, depois da sada do Miguel Pais anunciada na ltima revista. Parece-nos estranho, mas o diferente cargo que agora ocupamos no tornou o ciclo de preparao desta edio diferente de qualquer outro em que j estivemos envolvidos. Mas, no final de contas, bastante natural que no sintamos grande diferena - coordenar, articular, preparar cada edio da revista apenas a partir da vossa colaborao voluntria foi o que sempre fizemos, e o que pretendemos continuar a fazer agora, da mesma forma, embora agora com uma diferente responsabilidade.Por outro lado, claro que o novo cargo no exactamente igual queles que desempenhmos durante todo este tempo. Acresce-nos agora a responsabilidade de darmos a cara pelo projecto, de conseguirmos mant-lo sem o suporte do Miguel Pais da maneira a que nos habitumos e nessa frente que apostamos para tornar a mudana na equipa o menos brusca possvel. Desta forma, e no seguimento de algumas sugestes do antigo coordenador, tencionamos mudar vrios aspectos relativos equipa.Em primeiro lugar, e uma vez que nenhum de ns tem muita experincia na gesto de uma equipa e de um projecto destas dimenses, vamos procurar expr todos os assuntos internos da revista a toda a equipa, envolvendo mais os restantes colaboradores na gesto desta. Assim, vamos tambm recolher opinies da equipa antes de tomar quaisquer decises, porque vinte cabeas pensam sempre melhor que duas.Em segundo lugar, tambm numa tentativa de procurar suporte adicional nossa coordenao e de colmatar algumas falhas que nos tm sido apontadas, crimos dois grupos responsveis, respectivamente, pela reviso lingustica dos artigos e pela divulgao da revista. Esperamos que a diferena se faa notar j a partir desta edio, com menos erros lingusticos e um discurso mais apropriado a uma publicao como a nossa, se possvel culminando num maior nmero de downloads.Finalmente, fruto dos resultados do recente inqurito do Portugal-a-Programar, confirmmos que a mudana da imagem, quer da prpria revista, quer da sua presena na web, uma das nossas maiores prioridades. Este um dos aspectos em que nos vamos concentrar ao longo das prximas edies, embora os resultados visveis ainda possam tardar.Destaque ainda para o novo editor, Antnio Silva, colaborador frequente do projecto h j algum tempo. Resta-nos apenas esperar que a nova equipa consiga manter o seu trabalho ao nvel do que tem sido este projecto, cada vez mais uma referncia para os programadores em Portugal e alm fronteiras. Joel Ramos e Pedro Abreu

  • notciasLanamento do Debian 5.0 http://www.debian.org/News/2009/20090214Mozilla lana o Bespinhttp://labs.mozilla.com/2009/02/introducing-bespin/Lanamento do LLVM 2.5http://llvm.org/releases/2.5/docs/ReleaseNotes.htmlLanamento do Google Code Labshttp://google-codeupdates.blogspot.com/2009/03/introducing-labs-for-google-code.htmlLanamento do Internet Explorer 8http://www.microsoft.com/windows/Internet-explorer/Lanamento do GNOME 2.6h t t p : / / l i b r a r y . g n o m e . o r g / m i s c / r e l e a s e-notes/2.26/Lanamento do Parrot 1.0http://www.parrot.org/news/2009/Parrot-1.0.0Prximos eventos2 Edio do Concurso de Projectos de Programao P@PNo mbito do Concurso de Projectos de Programao P@P, cujo objectivo a dinamizao e divulgao das diversas linguagens de programao, assim como reconhecer os programadores pelos seus trabalhos, est a decorrer a sua segunda edio.Esta segunda edio decorre na categoria Software Proprietrio, na qual podem participar todos os projectos que no possuam uma licena de software livre. A entrega do cdigo fonte no obrigatria e no ser avaliada.O calendrio desta edio o seguinte:Incio do Concurso: 01-03-2009Prazo de Entrega: 17-04-2009Anncio de Finalistas e Votao do Pblico: 24-04-2009Fim de Votao e Anncio do Vencedor: 01-05-2009Para mais informaesh t t p : / / w w w . p o r t u g a l - a -programar.org/forum/index.php/topic,32312.0.htmlOlimpadas Nacionais de Informtica 2009 http://www.dcc.fc.up.pt/oni/2009/Take Off 2009 25 de Abril, no Departamento de Engenharia Informtica da Universidade de Coimbrahttp://takeoff.ideias3.com/2009/CPAS - Concurso de Programao para Alunos do Secundrio 29 de Abril, no Colgio Internato dos Carvalhos Inscries at ao dia 24 de Abrilhttp://e-escola.cic.pt/cpas/

  • Google Web ToolkitIntroduoCertamente muitos de vocs j tiveram necessidade de desenvolver algum tipo de aplicao para a Web e, como tal, devem ter investigado sobre plataformas que j dessem algum suporte ao desenvolvimento deste tipo de aplicaes. Com uma rpida pesquisa no Google encontrmos um grande nmero de plataformas Web sobre as mais diversas tecnologias e, a quantidade e diversidade tal, que se torna difcil saber qual plataforma escolher. Mas, este artigo no ir focar as plataformas Web existentes, mas sim sobre uma plataforma em particular, o Google Web Toolkit. O Google Web Toolkit foi desenvolvida pela Google (tal como o nome sugere), inicialmente com o objectivo de dar suporte aos seus engenheiros no desenvolvimento de aplicaes Web. Posteriormente a Google teve a amabilidade e a brilhante ideia de disponibilizar a plataforma para a comunidade em geralA vida Pr-GWT... Javascript vs BrowserJavascript, uma linguagem muito utilizada na Web, pela tecnologia AJAX (Asynchronous JavaScript and XML) criada para a construo de pginas dinmicas sendo directamente interpretada pelo browser. O nome Javascript chega a ser enganador pois, numa primeira abordagem, pensamos logo ser uma derivao do Java o que no de todo verdade, pois esta linguagem possui este nome simplesmente por questes de marketing, j que na data em que o nome lhe foi atribudo o Java era linguagem sensao. Um dos problemas do JavaScript o facto de esta possuir uma relao estreita com os diferentes browsers, na medida em que cada um tem a sua prpria interpretao do cdigo, ou seja, no existe um padro que permita a correcta interpretao da linguagem, em todos os browsers. Trocando por midos significa que, ao programar em JavaScript, corre-se risco de as funes criadas no terem comportamento semelhante em todos os browsers. Imagine-se o programador, confortvel na sua secretria, a desenvolver uma aplicao Web, fazendo umas coisas engraadas com JavaScript e, na altura de testar, todo entusiasmado, repara que a aplicao no funciona correctamente em todos os browsers. E porqu???

    Simplesmente porque o JavaScript precisa de ser refinado de forma a ser bem interpretado por cada um deles claro que qualquer bom programador quer que sua aplicao seja executada de uma forma correcta e completa, independentemente do browser, e como tal comea a procurar os potenciais problemas, investigar sobre incompatibilidades e entra no terrvel ciclo de procurar, modificar, testar, procurar, modificar, testar. realmente muito incmodo andar a programar mdulos para que a mesma aplicao corra correctamente em todos, ou pelo menos, na maioria dos browsers. Isso implica que o programador tenha conhecimentos dos problemas de incompatibilidades e tempo para que possa corrigi-los (e tempo no mundo do desenvolvimento de software preciosssimo). Foi ento que os engenheiros da Google, pessoas experientes no desenvolvimento de aplicaes com tecnologia AJAX como o GMail, Google Calendar, Google Maps, cansados de incompatibilidades, correces e testes, sentiam necessidade de usufruir de uma plataforma que desse suporte correco de tais incompatibilidades, e que torna-se o processo de desenvolvimento das aplicaes mais produtivo, mais flexvel e consequentemente mais rpido.Como resultado surgiu o Google Web Toolkit.Google Web Toolkit A caixinha mgicaEsta plataforma revelou-se bastante poderosa na medida em que quem a utiliza pode desenvolver as suas aplicaes Web puramente em Java verdade, Java. O GWT, como j foi dito, uma plataforma Web, e como tal consiste num conjunto de APIs e componentes visuais que facilitam o processo de desenvolvimento das aplicaes, sendo que este feito utilizando a linguagem Java, uma linguagem madura, robusta, orientada a objectos, utilizada por muitos programadores e cuja documentao na Web vasta. Para alm disso, o GWT permite a escolha de um IDE Java onde ser desenvolvida a aplicao. Assim sendo, para utilizar a plataforma basta apenas fazer o download da mesma, escolher um IDE Java e comear a trabalhar, to simples quanto isto. Mais adiante, no tpico GWT Primeiros Passos, este processo inicial ser explicado com mais pormenor. Mas o que torna o GWT mesmo interessante o facto de que, depois de desenvolvida a aplicao, o que o

    tema de capa

  • este faz compilar todo o cdigo Java para cdigo Javascript, para que possa ento ser correctamente interpretado pelo browser, corrigindo automaticamente todas as incompatibilidades. JAVA[script]?Java para Javascript dizem vocs Vamos, como se costuma dizer, take a look inside the Box. O que acontece que o GWT possui um compilador Java-to-JavaScript responsvel por traduzir todo o vosso cdigo Java para o respectivo cdigo JavaScript tendo em conta factores importantes como optimizao de espao, ou seja, o cdigo JavaScript gerado, percorrido e analisado de forma a determinar se todo o cdigo utilizado, pelo que se houver alguma seco que nunca utilizada, esta simplesmente descartada. Por outro lado, so apenas includas as bibliotecas que so realmente utilizadas. Espao e optimizao foram factores considerados fundamentais pela equipa que desenvolveu o GWT. Java-to-JavaScript MasNo meio de todo este processo engraado existe um Mas, ao qual precisamos de ter muita ateno. que, como muitos sabem a linguagem Java mais madura e mais evoluda que a linguagem JavaScript e, como tal, existem classes e bibliotecas da primeira que no so suportadas por esta ltima. Falando concretamente no GWT 1.5 (ltima verso disponibilizada para a comunidade) que j compatvel com Java 1.5, e onde por exemplo, genricos j so suportados. Mas para uma viso geral e completa, o melhor mesmo consultar a documentao disponibilizada pela Google (http://code.google.com/docreader/#p=google-web-toolk it-doc-1-5&s=google-web-toolk it-doc-1-5&t=RefJreEmulation). GWT Primeiros PassosAgora que j tm noo do que e para que serve a plataforma GWT vamos meter mos na massa De seguida, sero explicados os passos de demonstrao de como comear a utilizar o GWT. Ir ser criada a estrutura da aplicao e do projecto para ser importado no Eclipse. Note que neste caso utilizado o Eclipse mas, como j foi referido anteriormente, as aplicaes GWT podem ser desenvolvidas utilizando qualquer IDE Java da sua preferncia.Passo 1 Descarregando o Google Web Toolkit para o nosso computador Antes de mais necessrio descarregar o GWT. Para tal, v a m o s h t t p : / / c o d e . g o o g l e . c o m / i n t l / p t -PT/webtoolkit/download.html e fazemos o download da ltima verso da plataforma (GWT 1.5). Depois de descarregado o GWT, extraia a pasta, copie-a para a localizao C:\ e renomeie-a com o nome gwt.

    Passo 2: Variveis de Ambiente - Adicionar o GWT ao PATH Uma vez que os aplicativos anteriores so invocados por linha de comandos e para evitar colocar todo o endereo sempre que estes so invocados, o melhor a fazer adicionar a aplicao GWT ao PATH do sistema, ou seja, s Variveis de Ambiente. Para isso v at ao menu Iniciar, clique com o boto direito do rato sobre O meu computador e escolha Propriedades. De seguida ir surgir uma nova janela, como mostra a figura seguinte, que d acesso as Variveis de Ambiente. Selecione o separador avanadas e posteriormente: Variveis de Ambiente.

    Ao abrir a respectiva pasta podemos reparar em dois aplicativos: o applicationCreator e o projectCreator, que j permitem, atravs da linha de comandos, criar a estrutura da aplicao e do projecto respectivamente, para que este possa ser ento importado no Eclipse.

    tema de capa

  • Finalmente surge a janela das Variveis de Ambiente. Clique sobre a varivel PATH e de seguida clique em Editar.

    J dentro da varivel PATH, digite C:\gwt (note que tem de separar todos os endereos por ponto e vrgula, tal como mostra a figura).

    Passo 3: Gerar a estrutura do Projecto Uma vez que o GWT j foi adicionado ao PATH do sistema agora mais fcil invocar os aplicativos applicationCreator e projectCreator na linha de comandos. As linhas executadas para os aplicativos tm a seguinte sintaxe, para o applicationCreator:

    tema de capa

    Para gerar a estrutura do Projecto basta especificar o nome do Projecto e a sua localizao. Este gera um conjunto de pastas e ficheiros que iro consistir na estrutura do projecto a importar no Eclipse. Voltando ao trabalho, crie uma nova pasta em C:\ com o nome GWT_Projects. Esta ser a pasta onde ficar guardada a sua primeira aplicao GWT. Agora abra a linha de comandos e v para a pasta GWT_Projects. projectCreator -eclipse NOMEDOPROJECTO -out LOCALIZAO

    Como podem ver, existem trs seces importantes que definem respectivamente, o nome e localizao do projecto e (a terceira linha) o local onde os ficheiros java sero guardados (sempre dentro da LOCALIZAO). Pode especificar esta terceira linha como quiser, no entanto, convm que seja do tipo *.client.* ou *.server.* apelando assim organizao do cdigo (cdigo do lado cliente, cdigo do lado servidor). Para o projectCreator: applicationCreator -eclipse NOMEDOPROJECTO -out LOCALIZAO gwt.myfirst.sample.NOMEDOPROJECTO.client.NOMEDOPROJECTO

    Depois s clicar em OK e est feito O GWT est adicionado a varivel PATH.

  • Para criar a estrutura da sua primeira aplicao GWT, designada HelloWorld digite a seguinte linha:

    Criada a estrutura da aplicao, agora ser criada a estrutura do projecto. Para tal, digite agora a seguinte linha:

    A partir deste momento j possvel executar a aplicao, embora esta ainda no tenha sido importada para o Eclipse. Pode se observar pela imagem acima que foram criados dois novos aplicativos, o HelloWorld-compile e o HelloWorld-shell. O primeiro permite compilar todo o cdigo Java para cdigo JavaScript para que a aplicao possa ento ser colocada e executada na Web enquanto que o segundo permite executar a aplicao em Hosted-Mode.

    Mas e o que significa Hosted-Mode?Esta outra das particularidades do GWT, que permite que as aplicaes sobre ele desenvolvidas sejam executadas em dois modos: Web-Mode e Hosted-Mode. Web-Mode consiste na execuo da aplicao sobre a Web, onde todo o cdigo Java j foi convertido para Javascript, ou seja, a aplicao j corre sobre a plataforma para a qual foi criada, a Web. Hosted-Mode consiste num browser interno do GWT, usado durante a fase de...