Revista programar 32

58

description

 

Transcript of Revista programar 32

  • 1. EDITORIALEQUIPA PROGRAMAR RIP No inicio de Outubro faleceu Steve Jobs, mais precisamente um dia antes do lanamento da edio anterior da Revista PROGRAMAR. Sete dias depois faleceu Coordenadores Dennis Ritchie. Doze dias depois faleceu John McCarthy. Independentemente de se Antnio Silva gostar ou no, a verdade que aquilo que fizeram influenciou a vida de muitas Fernando Martins pessoas. Dennis Ritchie foi um dos pais do C, linguagem que influenciou a vida de todos os programadores, quer directa quer indirectamente, quer usem ou no C para programar. John McCarthy foi o pai do Lisp, que apesar de no estar to Editor disseminado na programao, tm uma grande relevncia, principalmente na rea Antnio Santos da Inteligncia Artificial. Steve Jobs levou a Apple rumo ao sucesso, depois da empresa sem si ter afundado, quase a ponto de se extinguir. E verdade que cada um fez muito mais, estes so, no entanto, e na minha opinio as marcas mais Design importantes de cada um deles. Srgio Alves Twitter: @scorpion_blood Assim, no tenho qualquer receio de afirmar que todos eles merecem a nossa considerao pelo que fizeram e alcanaram, quer se concorde ou no com algumas ideias e filosofias. Mas a verdade que o mais destacado foi sem dvida Steve Redaco Jobs. Mereceu notcias de abertura em canais de televiso, notcias de primeira Bruno Pires pgina em jornais e revistas, entre outras, enquanto Dennis Ritchie e John McCarthy Augusto Manzano Sandro Pereira ficaram quanto muito com algumas linhas em jornais e revistas, e um pouco mais em Fernando Martins revistas e comunidades ligadas programao e tecnologia. Muitos insurgiram-se Nuno Godinho pelo facto de no haver o mesmo destaque entre todos. Mas a verdade que ambos Paulo Morgado viviam muito mais sombra da sociedade em geral que Steve Jobs. Contudo no Srgio Ribeiro foram esquecidos. O Fedora 16, lanado cerca de um ms depois da morte de Vtor Tomaz Dennis Ritchie foi-lhe dedicado. Durante a sua vida John McCarthy recebeu tambm Flvio Geraldes inmeros prmios, como por exemplo o prmio Turing. Tambm verdade que muitos se apressaram quase a colocar Steve Jobs num pedestal, removendo-lhe os defeitos. Mas ele tinha os seus, tal como Dennis e John. Mas seria melhor pessoa, Staff melhor informtico que os outros dois? provvel que no. Apenas era mais Antnio Santos visvel, e o mediatismo fez o resto. Mas a verdade que terminaram a sua existncia Fbio Canada terrena tal como a conhecamos. Talvez sem puderem dizer um adeus a quem Fbio Domingos gostavam ou queriam, tal como Dennis Ritchie que faleceu sozinho em sua casa. Jorge Paulino Pedro Martins Da minha parte resta-me deixar um obrigado aos trs pela sua contribuio Sara Santos para as tecnologias da informao, e um at sempre a todos os leitores e equipa da Revista PROGRAMAR, pois esta ser a minha ltima edio como coordenador. Contacto Foram mais de 3 anos de participao neste projecto, passando por redactor, revistaprogramar@portugal-a- revisor, editor e agora coordenador. Bastante tempo, considerando que o projecto programar.org tem aproximadamente 6 anos. Mas saio com a sensao de dever cumprido, sabendo que fiz todos o que estava ao meu alcance para levar a revista mais longe, com ajuda de toda a equipa da Revista PROGRAMAR, a quem deixo tambm um Website muito obrigado. Durante o tempo que estive como editor e coordenador mudmos o http://www.revista-programar.info visual para algo mais apelativo, crimos parcerias com comunidades, passamos a distinguir os artigos mais votados, entre vrias outras mudanas internas. Tudo isto graas excelente equipa que torna possvel a existncia da Revista PROGRAMAR. ISSN Saio tambm com a certeza de ser bem substitudo pelo Antnio Santos, aqum 1 647-071 0 deixo desde j um obrigado, e desejo que com a sua a ajuda a Revista PROGRAMAR chegue ao infinito e mais alm. At sempre, Antnio Silva A revista PROGRAMAR um projecto voluntrio sem fins lucrativos. Todos os artigos so da responsabilidade dos autores, no podendo a revista ou a comunidade ser responsvel por alguma impreciso ou erro. Para qualquer dvida ou esclarecimento poder sempre contactar-nos. 2
  • 2. NDICETEMA DE CAPA 7 iOS, Cocoa Touch & MVC Conhea mais algumas tcnicas de programao para os dispositivos mveis da Apple. Bruno PiresA PROGRAMAR 15 Gerao de Nmeros Aleatrios (Parte 2) O segundo de 4 artigos do mesmo autor da excelente srie Programao em Lua, desta vez sobre gerao de n- meros aleatrios. Augusto Manzano 18 Automatizao de tarefas usando atributos Continuao do artigo sobre atributos em C# da edio nmero 30. Neste artigo, conhea melhor o funcionamento do conceito de contextos nesta linguagem. Flvio Geraldes 24 SQL Azure Fedarations Introduo s SQL Azure Federations. Victor Tomz 29 Enigmas de C#: Arrays Saiba porque motivo, um array pode invocar uma System.ArrayTypeMismatchException. Paulo MorgadoCOLUNAS 31 Visual (NOT) Basic - Um pouco mais de Windows Phone 7 Saiba como pode tirar partido de algumas funcionalidades e caractersticas no desenvolvimento de aplicaes para esta plataforma. Srgio Ribeiro 40 Core Dump - Free as in Beer Atualmente, as empresas usam software open source, no por ser livre, mas por ser grtis. Conhea a opinio do au- tor sobre este tema. Fernando MartinsCOMUNIDADES 42 AzurePt - Como suportar mltiplas identidades no seu WebSite com Windows Azure AppFabric ACS Saiba como resolver o problema das identidades em demasia atravs do Azure. Nuno Godinho. 47 NetPonto - BizTalk Server - Princpios Bsicos dos Mapas Explore atravs deste artigo, o editor de mapas do BizTalk Server. Sandro PereiraEVENTOS 03 Dez 2011 - 4 Evento da Comunidade Azure PT 16 a 18 Dez 2011 - Windows Phone 7 App Code Camp (Palmela) 17 Dez 2011 - 25 Reunio Presencial da Comunidade NetPonto em Lisboa 27 Fev a 1 Mar 2012 - XIX SINFO - Semana Informtica IST 17 Maro 2012 - SQL Pass Saturday Portugal #115 Para mais informaes/eventos: http://bit.ly/PAP_Eventos 3
  • 3. NOTICIASO que a Microsoft, Oracle, IBM e SAP invulgares para a facturao da entrada e sada de dados nosNo Dizem aos Clientes sistemas. Gaughan tambm disse que uma grande transio tecnolgica que estava a guiar as receitas da SAP durante os Os quatro grandes vendedores de software ltimos anos - movimentando clientes existentes do velho - Microsoft, Oracle, IBM e SAP tm mo- sistema R/3 par o novo Business Suite - est quase termina- tivos escondidos que os clientes precisam da, o que significa que a SAP ter que ser mais agressiva de compreender, de outra forma podem ser com taxas de manuteno. Ele recomendou o bloqueio dos levados a comprar produtos e servios que preos de manuteno agora. no servem as suas necessidades. Esse De uma forma geral, Gaughan disse que a maior parte da o takeaway de uma palestra recente da inovao que est a ser feita por estas empresas est nos Gartner na Austrlia, relatado pela IT News. seus braos de pesquisa. O seu verdadeiro objectivo proteger o satus quo o maior tempo que for possvel.Num simpsio esta semana, o analista da Gartner, DennisGaughan, explicou o que os quatro grandes vendedores estorealmente a tentar fazer, baseando-se na experincia da Gart- Fonte: Business Insider, 19 de Novembro de 2011ner com os seus clientes. Traduo: Sara SantosA Microsoft quer principalmente proteger Windows e oOffice. A Microsoft uma empresa de plataformas e o seu Programao com Lego Vence Quin-maior objective proteger os seus monoplios altamente lu- ta Edio de Codebitscrativos de Windows e Office, enquanto ao mesmo tempoestabelece outras plataformas que faro com que seja mais Uma aplicao que usa peas Lego com o objectivo de permi-difcil para os clientes separarem-se delas mais tarde. A nova tir que crianas consigam fazer programao informtica ga-funcionalidade dada a conta-gotas aos utilizadores dessas nhou o primeiro prmio da edio deste ano do Sapo Code-plataformas medulares, mas os novos produtos existem para bits.proteger o ncleo. Ele aconselhou a que fosse tida extrema O Codebits, que comeou na quinta-feira e terminou este s-precauo antes de mudar para o Office 365, e disse que no bado, reuniu cerca de 800 participantes, que se dividiram emse entre numa mentalidade toda-Microsoft. equipas para o habitual concurso de desenvolvimento de pro- jectos as equipas tm 48 horas para criar e apresentar umaOs produtos da Oracle no funcionam muito bem juntos. ideia. Para alm dos prmios (computadores, telemveis eA fora de vendas da Oracle extremamente agressiva em outros aparelhos), as melhores ideias recebem apoio do Sapoempurrar um conjunto de produtos, mas tem muito menos para serem desenvolvidas. O jri atribuiu o primeiro prmio apontos de integrao do que a SAP. De facto, a integrao uma aplicao mvel que fotografa uma base onde possvelnormalmente deixada inteiramente ao cuidado do cliente. A colocar peas Lego e que converte a disposio e cor dessasOracle est igualmente muito relutante em falar sobre mapas peas num pequeno programa informtico.de produto por temer que produtos futuros canibalizem osexistentes. A empresa obtm mais de 90% dos seus lucros O conceito foi trazido ao Codebits pelo programador alemo aatravs de taxas de manuteno e far o que for necessrio viver em Portugal Peter Bouda. O informtico Pedro Leite, umpara manter essas taxas em entrada. Gaughan tambm ex- dos elementos da equipa de trs pessoas que desenvolveu apressou alguma surpresa por tantos clientes continuarem a aplicao, explica que a ideia permite s crianas usaremtrabalhar com a Oracle apesar de relatarem que a Oracle o algo tangvel para fazerem programao informtica (umavendedor com quem mais difcil lidar. tarefa que tradicionalmente envolve escrever cdigo usando linguagens com sintaxe prpria). A IBM quer apoderar-se da tua estratgia de TI. A IBM Na demonstrao feita no Codebits, uma sequncia de peastoma-se a si prpria como um lder rgido, mas o seu verda- Lego foi usada para animar, no ecr, uma pequena figuradeiro negcio vender servios de consultoria. Parra prospe- tambm da conhecida marca de brinquedos. As primeiras trsrar, os gestores de conta da IBM tentam obter controlo sobre peas (duas vermelhas e uma verde) eram usadas para dar aa estratgia de TI de uma empresa de forma a poderem conti- instruo de que a figura devia mover-se para a direita e asnuar a empurrar novos produtos. Gaughan recomenda que se trs peas imediatamente frente indicavam quantas vezestome uma aproximao colaborativa ou de parceria. esse movimento deveria ser feito. A linha seguinte dava uma nova instruo figura (por exemplo, saltar). E a linha final A SAP confunde os clientes com o preo. Muitos dos cli- pode servir para determinar se a animao pra ou se a se-entes da SAP pedem a Gartner ajuda para descobrir os pre- quncia novamente seguida.os e licenciamento da SAP, uma vez que a SAP tem termos 4
  • 4. NOTICIASO significado atribudo s sequncias de peas depende da- As 25 Piores Palavras-passe do Anoquilo para que a aplicao que as fotografa tiver sido concebi-da uma aplicao pode interpretar trs peas vermelhascomo uma instruo para emitir um som e outra como uma A empresa SplashData, especialista em aplicaes parainstruo para mostrar um nmero. smartphones incluindo gesto de palavras-passe, divulgou a lista das 25 piores passwords de 2011. Ou seja, aquelas que mais facilmente so descobertas por hackers.Com este conceito, as peas Lego podem ser usadas para Esta lista da SplashData baseia-se no estudo de milhes decriar imagens animadas, fazer msica, construir uma calcula- palavras-passe roubadas durante este ano e que foram pos-dora ou, teoricamente, para qualquer tipo de efeito que se teriormente divulgadas online por hackers.consiga produzir com uma linguagem de programao. Muitos dos utilizadores usam sequncias numricas e alfab-Este processo implica que as crianas ou algum por elas ticas carregando em teclas contguas do teclado - comomemorize o que significa cada sequncia de peas. As crian- 123456 ou qwerty - ou ento a prpria palavra password.as so uma esponja, afirmou Pedro Leite, mostrando-se De acordo com o director-executivo da SplashData, Morganconfiante de que isto no ser um obstculo utilizao do Slain - citado pelo site especializado em tecnologia Mashableconceito. Porm, admitiu que, uma vez desenvolvida a tecno- - mesmo que as pessoas sejam encorajadas a escolher pala-logia, ainda necessria a killer app a expresso tipica- vras-passe seguras e fortes, muitas continuam a escolh-lasmente usada para designar um uso de uma tecnologia que fracas, fceis de adivinhar, colocando-se em risco de fraude epromove significativamente a sua adopo e, eventualmente, de roubo de identidade.a transforma num sucesso comercial. A hesitao dos utilizadores na escolha de uma passwordNo ltimo dia do Codebits, que decorreu no Pavilho Atlnti- difcil poder prender-se com o facto de, actualmente, cadaco, em Lisboa, foram mostrados cerca de 80 projectos, com pessoa ter de decorar vrias palavras-passe para os diferen-cada equipa a ter 90 segundos para fazer a apresentao, tes servios que consulta online.num ltimo esforo para convencer o jri (que acompanhou o Um estudo de 2007, levado a cabo pela Microsoft, concluiutrabalho das equipas ao longo dos dois dias) e ainda com o que, em mdia, cada pessoa utiliza 25 palavras-passe dife-objectivo de conseguir os sete prmios atribudos pelo pbli- rentes e que, diariamente, usa oito delas. Desde 2007 queco, que podia votar nos projectos no final de cada apresenta- este nmero ter certamente aumentado.o. O roubo de palavras-passe um problema que afecta muitasO Codebits faz parte da necessidade de o Sapo ter sangue pessoas em todo o mundo. Em 2010 a Comisso Federal denovo, afirmou, no encerramento do evento, Ablio Martins, Comrcio dos EUA recebeu 1,3 milhes de queixas por fraudeadministrador do Sapo (que pertence ao grupo PT), referindo- ou roubo de identidade.se ao facto de as ideias nascidas no Codebits poderem serintegradas no Sapo ou desenvolvidas em parceria com a em- Como pode, ento, tornar a sua password mais segura?presa. Vinte destes projectos sero contactados para traba- Usando uma variedade no sequencial de letras, nmeros elharem connosco, adiantou. smbolos e mudando a palavra-passe a cada seis meses. Outras dicas importantes: no use sempre a mesma pas- sword e evite usar palavras verdadeiras. Finalmente, no use nenhuma destas 25 piores palavras- passe do ano elencadas pela SlashData: 1.password, 2.123456, 3.12345678, 4.qwerty, 5.abc123, 6.monkey, 7.1234567, 8.letmein, 9.trustno1, 10.dragon, 11.baseball, 12.111111, 13.iloveyou, 14.master, 15.sunshine, 16.ashley, 17.bailey, 18.passw0rd, 19.shadow, 20.123123, 21.654321, 22.superman, 23.qazwsx, 24.michael, 25. football. Fonte: www.publico.pt 5
  • 5. TEMA DA CAPAiOS, Cocoa Touch & MVC
  • 6. TEMA DA CAPAiOS, Cocoa Touch & MVCMVC Entre as frameworks do Cocoa Touch de maior relevo estoA grande maioria das plataformas de desenvolvimento de as seguintes:software permitem aos programadores desenvolver softwarecom base nos mais diversos padres de arquitectura. Essa Core Animationabordagem oferece um elevado grau de liberdade, permitin-do ao programador escolher a melhor soluo para o seu Core Locationproblema, com os recursos que dispe. Core Audio Controller Core Data UIKit A mais importante das frameworks que compem o Cocoa View Model Touch sem dvida a UIKit. Esta framework, baseada em Objective-C, disponibiliza uma Figura 1 - MVC vasta quantidade de funcionalidades e ferramentas que per- mitem ao leitor desenvolver UI, gerir eventos (toque, gestos),Nos ltimos anos tem-se vindo a assistir a uma evoluo e aceder ao acelermetro, cmara fotogrfica, bateria, sensorconsolidao neste campo, principalmente quando o tema de proximidade e biblioteca de imagens.so os padres de camada de apresentao e o CocoaTouch no foge a essa tendncia. Apple definiu o padro dearquitectura de software Model-View-Controller (MVC), comopadro de referncia para o desenvolvimento de aplicaespara os dispositivos que utilizam iOS (iPod, iPhone, iPad).O tema do MVC j foi abordado na edio n27 da revistaPROGRAMAR, pretendido que o leitor tenha em mente oconceito, pois este tema incontornvel no decorrer do arti-go. Figura 3 Alguns dos componentes de UI do UIKitCocoa Touch O leitor vai, com toda a certeza, reconhecer alguns dos com- uma camada de alto nvel do iOS, composta por um con- ponentes da figura 3 disponibilizados pela UIKit Framework.junto de frameworks que disponibilizam ferramentas que A documentao acessvel e objectiva, permite desenvol-permitem ao leitor utilizar todo o potencial que a plataforma ver aplicaes para iOS num curto espao de tempo, o de-iOS tem para oferecer, ao mesmo tempo, permite desenvol- sign e a experincia de utilizao proporcionada pelos com-ver aplicaes que transmitem ao utilizador uma sensao ponentes de esta framework so transversais a todo o Siste-familiar durante a sua utilizao graas utilizao transver- ma Operativo, o que garante ao leitor que o utilizador se vaisal nas vrias aplicaes do Sistema Operativo. sentir familiarizado com as suas aplicaes. aconselhado ao leitor, que antes de prosseguir, tenha em mente o artigo Introduo ao Objective-C e plataforma iOS publicado no n 30 da revista Programar. Leitor de RSS Para consolidar os conceitos apresentados anteriormente, o melhor passar prtica e desenvolver um leitor de RSS. Execute o XCode, ferramenta includa no iOS SDK, e crie um novo projecto recorrendo ao template Navigation-based Ap- plication. Figura 2 A arquitectura do iOS 7
  • 7. TEMA DA CAPAiOS, Cocoa Touch & MVC Este template contm uma View (RootViewController.xib) e um Controller (RootViewController.h/.m). A View, j contm um controlo do tipo UITableView, que apresentado na figura 5 e o Controller contm os mtodos e eventos necessrios para fornecer ao controlo UITableView a informao necessria para apresentar os dados na View. Sendo assim, torna-se necessrio criar um Model que forne- a ao Controller o tipo de objectos a serem manipulados e enviados para a View.Figura 4 Template Navigation-based ApplicationEste template oferece uma estrutura serve como ponto departida para desenvolver a nossa aplicao.Sem escrever qualquer tipo de cdigo, se o leitor executar oprojecto, vai verificar que a aplicao se apresenta j umformato reconhecvel. Figura 6 Adicionar uma nova classe necessrio adicionar uma nova classe, definida como uma sub-classe de NSObject, ao projecto com o nome RssFeed, onde vo ser definidas as propriedades de uma feed, confor- me as figuras abaixo apresentam. #import @interface RssFeed : NSObject {} @property (nonatomic, retain) NSString *FeedTitulo; @property (nonatomic, retain) NSString *FeedSumario; @property (nonatomic, retain) NSString *FeedUrl; @end Figura 7 Interface da classe RssFeed Figura 5 Primeira execuo do projecto #import "RssFeed.h"O template escolhido fornece um conjunto de funcionalida- @implementation RssFeeddes bsicas para uma aplicao que pretende ter um interfa- @synthesize FeedSumario;ce de navegao, o que o caso. @synthesize FeedTitulo; @synthesize FeedUrl;Considera-se que um leitor de RSS bsico, necessita de pelo @endmenos um ecr com uma lista de feeds e um outro que per-mita visualizar o detalhe de um feed. Figura 8 Implementao da classe RssFeed Agora que j est definido o modelo, vamos criar um reposi- trio que tem como objectivo fornecer ao Controller a lista de feeds a apresentar, repetindo o passo executado na figura 6, mas desta a classe vai chamar-se Repository. Nesta classe so definidas uma estrutura de dados para guardar os feeds e um mtodo que devolve uma lista de feeds, conforme as figuras embaixo apresentam. 8
  • 8. TEMA DA CAPA iOS, Cocoa Touch & MVC De seguida, vamos proceder s alteraes necessrias ao#import "RssFeed.h"#import Controller para este obter os dados para alimentar a View.@interface Repository : NSObject { Para isso, torna-se necessrio criar uma estrutura de dados NSMutableArray *FeedsList; no RootViewContoller.h para acomodar os dados provenien-} tes do Repository.+ (NSArray*)getRssFeeds;@endFigura 9 Interface da classe Repository #import "Repository.h" #import "DetailViewController.h" #import #import "Repository.h" @interface RootViewController :@implementation Repository UITableViewController { }+ (NSArray*)getRssFeeds{ @property (nonatomic, retain) NSArray *feeds; @end NSMutableArray *feedList = [[NSMutableArrayalloc] init]; Figura 11 Interface do Controller RootViewController for (int i = 0; i