domingo, maio 21, 2006

O Código Da Vinci

Há algum tempo que não via uma euforia tão grande por um filme. Sábado à noite tentei ir à sessão das 0:30 (ou seja já era domingo) ao Cascaishopping, espanto o meu mas estava esgotado...esgotado, eu quando vou ao cinema a essa hora nunca estão mais de meia dúzia de "gatos pingados". Vou a acelerar até ao CascaisVilla para tentar ainda chegar a tempo, e ainda mais espanto, só havia lugares para a 1ª fila, torcicolo não muito obrigado.

Domingo à tarde lá tentei num cinema que nunca tinha ido, no Beloura shopping. Sim desta vez havia lugares e para uma sessão a meio da tarde. Só posso dizer que adorei o cinema: sítio fácil para estacionar o carro, tela gigante, sem putos aos guinchos e a mandar pipocas, filas extremamente desniveladas que até se podia sentar um cabeçudo à frente sem nos chatear e ainda umas pipocas espetaculares.

Passando ao filme em si, para mim, está um filme bem conseguido em termos de realização, cenários, etc, mas por outro lado não passa de mais uma história que interliga: Santo Graal, templários, priorado do Sião, Sudário e a Capela de Roslin. A destacar o desempenho do actor Ian McKeller que dá um toque de brilhantismo a toda a intriga.

Em termos da veracidade das histórias sobre este tema, haverá sempre quem acredita na história contada pela igreja e quem acredite na falsidade sobre a qual assenta todo o cristianismo. Facilmente descobrem-se inconsistências entre histórias e coincidências entre outras. Por exemplo segundo alguns, Da Vinci saberia que Jesus teria tido descendentes e tentaria que essa verdade não fosse incoberta ou pelo menos esquecida, por outro lado, outras histórias dizem que o Sudário não tem uma imagem de Jesus mas sim de Da Vinci e que o próprio Da Vinci o teria "fabricado". Estas histórias são claramente inconsistentes, porque Da Vinci por um lado defenderia a verdade e por outro criaria uma mentira? Acho o último diálogo entre as personagens Robert e Sophie, muito interessante e que basicamente dá uma resposta a toda a polémica - Que interessa a verdade? interessa é o modo como as pessoas agem perante o conhecimento que têm.

sábado, maio 20, 2006

Mais um enforcamento

Ai não é enforcamento que queria dizer era mesmo casamento (fugiu-me a boca para a verdade).
Desta vez o condenado...condenado não, noivo, bolas tou só a enganar-me... dá por nome de Hugo Vicente, mais conhecido como "Montes da Bués", o nosso caro colega iseliano. Hoje a tarde apareceu-me ele em minha casa com um convite todo bonitinho (claro que a ideia não foi dele foi da possível futura esposa), para dia 16 de Setembro.

terça-feira, maio 16, 2006

Apresentação - "Gestão de Identidades"

Posso dizer que apesar de não ter sido um evento extraordinário, foi um evento que não me desiludiu totalmente. A primeira coisa a focar é a excelência do discurso do sr. Rafal Lukawiecki, do melhor que tenho assistido. Em relação ao conteúdo em si, agradou-me conseguir fazer alguns paralelismos graças ao conhecimento que adquiri nas cadeiras de segurança informática, o que significa que aprendi qualquer coisa importante e que me dá capacidade de raciocinar sobre assuntos relacionados com a matéria.

sábado, maio 13, 2006

New como modificador de métodos em C#

Apesar de já ter ouvido sobre o assunto, enquanto estava a escrever algumas linhas de código, fiquei na dúvida sobre o que o modificador new fazia quando aplicado a um método, então resolvi fazer uma pequena pesquisa e tirar as minhas conclusões.
Em C# existem 6 modificadores de métodos: static, extern, abstract, virtual, override e new. Passando rapidamente pelos três primeiros, static tem o objectivo de definir um método de tipo e não de instância, extern apesar de nunca o ter usado serve para indicar que um método é definido externamente por exemplo numa DLL e abstract tem como objectivo não dar implementação ao método, obrigando que a derivada da classe lhe dê implementação, para se ter métodos abstract é necessário que a classe também seja marcada como abstract (a classe é encarada como uma interface).
Os atributos virtual e override são os que considero mais importantes pois são os que efectivamente possibilitam o polimorfismo, por isso darei um pouco mais de atenção mais a frente. Analisando o código seguinte fica a pergunta, qual a diferença entre o funcionamento dos dois métodos?
     
public class Base { public void Met1() { Console.WriteLine("Base.Met1"); } public void Met2() { Console.WriteLine("Base.Met2"); } } public class Derivation1 : Base { public void Met1() { Console.WriteLine("Derivation1.Met1"); } public new void Met2() { Console.WriteLine("Derivation1.Met2"); }
public static void Main() { Base bas = new Derivation1(); Derivation1 der1 = new Derivation1(); bas.Met1(); der1.Met1(); Console.WriteLine(); bas.Met2(); der1.Met2(); Console.ReadLine(); } }
A resposta é nenhuma, a referência para base como esta tem implementação dos métodos irá chamar os seus métodos e a referência para a classe derivada como seria espectável irá chamar a sua implementação.
Base.Met1
Derivation1.Met1
Base.Met2
Derivation1.Met2
Então para que serve o new? O seu objectivo é simplesmente forçar a ideia que se está a esconder um método não virtual da classe base, o que na prática simplesmente vai evitar um warning do tipo “'Derivation1.Met1()' hides inherited member 'Base.Met1()'. Use the new keyword if hiding was intended”. Creio que o motivo do new existir em C# vem dele não existir em C++, ou seja, como em C++ o programador inadvertidamente poderia esconder métodos e só o iria detectar em runtime porque o comportamento não seria o esperado, em C# pelo menos tem um warning em compile time.
Complicando mais um pouco, o código seguinte mostra a interacção entre o virtual, o override e o new.
public class Base{
  public virtual void Met1() { Console.WriteLine("Base.Met1"); }
  public virtual void Met2() { Console.WriteLine("Base.Met2"); }
  public virtual void Met3() { Console.WriteLine("Base.Met3"); }  
}  
public class Derivation1 : Base { public override void Met1() { Console.WriteLine("Derivation1.Met1"); } public new virtual void Met2(){Console.WriteLine("Derivation1.Met2");} public override void Met3() { Console.WriteLine("Derivation1.Met3"); }
public class Derivation2 : Derivation1 { public override void Met1() { Console.WriteLine("Derivation2.Met1"); } public override void Met2() {Console.WriteLine("Derivation2.Met2");} public new virtual void Met3(){Console.WriteLine("Derivation2.Met3");}
public static void Main() { Base b = new Derivation2(); Derivation1 d1 = new Derivation2(); Derivation2 d2 = new Derivation2();
b.Met1(); d1.Met1(); d2.Met1(); Console.WriteLine(); b.Met2(); d1.Met2(); d2.Met2(); Console.WriteLine();
b.Met3(); d1.Met3(); d2.Met3(); Console.ReadLine(); } }
Na chamada ao Met1, apesar de ter diferentes referências, como estou a construir um objecto Derivation2 desde que os métodos sejam polimórficos vou chamar o Met1 de Derivation2. Na chamada a Met2, tendo como referência a Base, o que vai acontecer é que se vai chamar o Met2 da Base, isto porque o new na Derivation1 está a criar um novo método com a mesma assinatura, logo está a isolar as suas classes base das suas derivadas. O raciocínio para o Met3 será o mesmo, o output será o seguinte:
Derivation2.Met1
Derivation2.Met1
Derivation2.Met1

Base.Met2
Derivation2.Met2
Derivation2.Met2
Derivation1.Met3
Derivation1.Met3
Derivation2.Met3

Safira

Para quem não sabe a Safira não é só uma pedra preciosa, também é o nome de uma empresa portuguesa ligada ao ramo da engenharia informática. Ao final da tarde de ontem eu, o Pre e o Pyro tivemos uma reunião na Safira a convite do Pedro Penedo, onde além das nós, ainda esteve o Luís António também em representação da Safira.

Nessa reunião abordámos basicamente o nosso percurso académico, o nosso projecto final de curso e o posicionamento da Safira ao nível do mercado. Posso dizer que foi uma reunião que me agradou bastante, em primeiro lugar o Pedro Penedo e o Luís António são duas pessoas aparentemente descontraídas que nos deixaram bastante à vontade, em segundo lugar porque a postura da Safira perante o mercado e o nível de colaboradores que me pareceu ter a torna uma empresa muito atractiva. Uma coisa que me admirou foi o facto deles não terem um conhecimento do curso de Engenharia Informática e de Computadores do ISEL, parece que o ISEL, a Safira ou as duas partes andaram a dormir. De qualquer modo acho que conseguimos dar uma boa imagem do nosso curso.

sexta-feira, maio 12, 2006

Mais uma entorse

Parece que isto se está a tornar um problema crónico, em ambos os tornozelos. Ontem após a acção de formação fui jogar uma futebolada com o pessoal do ISEL. Passado uma meia hora de estar a jogar, lá torci o tornozelo mais uma vez. Para variar, ainda tentei continuar a jogar, conclusão ainda piorei as coisas...

Estava a contar ter um fim-de-semana desportivo lá foi tudo por água abaixo, a prova de natação no sábado e o torneio de ping-pong no domingo, que azar :-(

sábado, maio 06, 2006

Gestão de Identidades

Inscrevi-me ontem no evento da Microsoft Gestão de Identidades - Um grande passo na Segurança Informática da sua Empresa. Este evento irá realizar-se dia 16 deste mês no Centro Cutura de Belém, e terá como orador o senhor Rafal Lukawiecki dito como um especialista no assunto.

Para dizer a verdade estou com algum receio que este evento não corresponda às minhas espectativas, o que eu desejava ouvir seria um assunto relacionado com segurança informática, mas este evento pode ter um discurso mais voltado para os gestores e menos para os programadores. Vejamos o que dará.

quinta-feira, abril 27, 2006

Acção de formação em .Net

Hoje foi o primeiro dia de seis, da acção de formação em C# .Net 2.0.
Estas primeiras sessões tiveram como focus as novidades da plataforma 2.0, e ainda algumas coisas relativas à futura versão 3.0. Apesar de já ter conhecimento de algumas características, agradaram-me bastante todas as apresentações porque acho que todas tiveram no mínimo detalhes importantes a crescentar ou a rever no meu conhecimento.

Alguns dos pontos em estudo foram: tipos e métodos genéricos, iteradores, métodos anónimos, tipos nullable, classes parciais, linq e outros. Espero que as próximas sessões continuem na mesma onda porque estão a ser bastante produtivas.

quarta-feira, abril 26, 2006

Estou de volta

Este podia ser um post de tamanho bíblico tal a semana que passei em Punta Cana, mas como gosto de ser sucinto vou tentar descrever o que passei de uma forma rápida.

Em primeiro lugar tenho de dizer que tudo o que se vê nos folhetos é verdade, aquilo é mesmo um paraíso em termos de beleza costeira e de confortabilidade dos resorts. Por outro lado a Républica Dominicana é um país do 3º Mundo onde impera a pobreza e falta de higiene, claro que quem permanecer nas rotas turísticas nem se irá aperceber.


Em termos de comidas foi excelente pois conseguiam ter uma enorme variedade de comidas, sendo assim capazes de satisfazer quase todas as culturas do globo. As pessoas eram de uma amabilidade espetacular, apesar de algumas o serem só para tentar vender algo, mas a grande maiorio era simpática mesmo porque é esta a sua maneira de ser.

Destaco pela negativa apenas o tempo de viagem, são 8 horas de avião para lá e 7 horas para cá, o que torna a viagem bastante cansativa. Ainda em relação a viagens, mas estas já terrestres, lá não existem condutores com carta, existem sim esquibadores porque o objectivo é esquivarem-se aos acidentes automobilísticos (parece a república das bananas em termos de regras de trânsito).

Por fim destaco as coisas que gostei mais de fazer: mergulho onde além dos habituais peixes de cores exuberante, ainda vi uns enormes tubarões tigre; catamarã onde se consegue atingir uma velocidade bastante elevada para uma embarcação sem motor; e em último, mas não menos, as canoas que são um óptimo exercício físico.

domingo, abril 16, 2006

Arrumar as malas

Pois é já amanhã que vou para Punta Cana, na viagem de finalistas. Hoje finalmente fiz a mala, o que demorou imenso tempo... 20 minutos, vamos lá ver é se não me esqueço de nada!

Só espero é que corresponda às espectativas que tenho, pelo menos o companhia é porreira, o local pelas imagens é mesmo paradisíaco e o clima costuma ser do melhor. O mais chato ainda vão ser as horas a viajar de avião, mas teremos sempre um baralho de cartas para matar o tédio.

Agora vamos mas é à diversão...