Monday 11 October 2010

WoW Cataclysm três semanas depois

Boas,

Passaram três semanas que sou um Beta Tester da nova expansão do World of Warcraft (WoW para os amigos) que se vai chamar Cataclyms.

Nestas três semanas muita coisa aconteceu e infelizmente ainda não tenho nenhum boneco a nível 85.

Comecei por fazer as "quests" no druida e escolhi começar por Mount Hyjal. Esta minha decisão baseou-se no facto de querer conhecer um pouco mais do que poderá vir a acontecer com os druidas no jogo, pois, parece que a história começa depois da derrota do Archimonde numa das raids da TBC. Parece que todos começam por tentar acabar com esta terra mágica, pois, agora é a vez de Ragnaros, que depois de se juntar ao Deathwing para voltar a aterrorizar Azeroth.

Os dois primeiros níveis foram muitos fáceis de fazer demorei aproximadamente 6 horas para chegar a nível 82 sem fazer instâncias. Para fazermos as instâncias no Cataclysm temos que descobrir as suas entradas. Como podem imaginar, esta é uma tarefa que vai demorar algum tempo e é xata.

Em aproximadamente 3 dias (e só a jogar umas 5 horas por dia) estava a nível 84 e eis que o impensável aconteceu. Numa quest de Uldum (terceira zona do jogo) o meu druida ficou "out-of-phase". Estava a fazer uma quest com um veículo e depois de ter concluído a quest e antes de entregar a mesma, aceitei um summon para ir a uma instância e o meu boneco ficou na fase onde estava. Agora, como não estou no veículo, não posso entrega a quest. Já abandonei a quest e nada, já morri e nada, já usei a opção de estar preso e nada.... nada... é mesmo um bug. O máximo que posso fazer é reportar este bug e esperar.

Como agora já não posso usar mais o druida, resolvi começar a levelar outros bonecos e depois de muito ponderar entre o Mage ou Hunter, escolhi o Hunter.
Neste momento já estou atingi o nível 84 e estou de novo em Uldum e a pensar se vou fazer aquela quest ou não.

Com o Hunter pude também subir as profissões (Skinner e LetherWorking) bem como começar a subir a nova profissão Arqueologia. Infelizmente não tenho as profissões de Cooking e Fishing no máximo neste boneco.

Em conclusão, o Cataclysm vai mudar praticamente tudo que conhecemos sobre o jogo e as formas de jogar, pelo que, vai demorar um pouco até que todos possam estar a jogar decentemente o jogo.
Alguns jogadores vão adorar as alterações e outros nem por isso. Pessoalmente eu gosto das alterações, pois, estão a trazer algum equilíbrio entre as diversas classes.
Não gosto particularmente das builds, mas, ao mesmo tempo são menos complicadas e é possível personalizar os nossos talentos de uma forma que antes não era possível.

Vamos lá ver se no dia 7 de Dezembro temos a expansão para jogarmos.


Paulo Aboim Pinto


Sunday 3 October 2010

Estou no WoW Cataclyms Beta

A semana passada a Blizzard presenteou-me com a chave da próxima expansão denominada Cataclyms.

Já jogo WoW desde à 3 anos e testar a expansão antes de ela sair é algo presente que me deixou imensamente contente.

Neste blog irei começar a falar também de WoW e das alterações que vou descobrindo sobre o que vem ai no jogo.


Paulo Aboim Pinto

Wednesday 14 July 2010

JavaScript vs Silverlight - Please don't feed the trolls

Foi criado um Flame Post no JupiterJS.com que só server para alimentar alguns trolls que por ai andam intitulado "JavaScript vs Silverlight".
Estava eu a pensar numa forma de blogar sobre o assunto e eis que o Laurent Bugnion, criados no Light MVVM para WPF, Silverlight e WP7 respondeu da melhor forma.

Ao texto dele gostaria de acrescertar algo sobre debuging em .NET e JavaScript. Não só é completamente diferente como é antagónico. Desde que conheci sistema de debug facultado pela Microsoft que não quero um que tenho que fazer print do resultado das variáveis para o ecrã.
Considero contra-produtivo e até mesmo castrador no avanço do trabalho!

Outro ponto é a homogeneização do código. Quando estamos a programar em JavaScript temos que conhecer dezenas (quando não são mais) frameworks e que nem sejam coexistem entre si. Temos ainda que dominar o HTML para apresentação final e o Java para servir de Data Access Layer com a base de dados.
No Silverlight só temos que entender e saber de uma linguagem: C#. Para os mais radicais temos também o XAML que não é mais que uma representação dos ecrãs. O código de User Interface, de negócio e ainda o acesso aos dados é todo desenvolvido na mesma linguagem.

Para um gestor é muito melhor escolher uma equipa multi-disciplinar nas funções que também estar dependente dos conhecimentos sobre as diversas linguagens.

Pelas razões expostas pelo Laurent Bugnion e pelas que aqui tentei acrescentar a minha escolha é obviamente Silverlight.
Podem ler a sua resposta aqui.


Paulo Aboim Pinto

Tuesday 13 July 2010

BUGS? Só entre a cadeira e o teclado!

Pois é, venho vos falar de um erro que me assombra desde sexta-feira e que passei o fim de semana todo a pensar nele e só hoje é que descobri o que estava a acontecer.

Depois do post anterio, resolvi melhorar o meu código (ahahahah melhorar!!!!) e criar uma separação de responsabilidades em assemblies diferentes. Começei então pelo RIA Service que separei do projecto Web que estava inserido.

Ao fazer isto tudo deixou de funcionar. Passei a ter o seguinte erro:

Operation named 'GetContacts' does not conform to the required signature. Return types must be an entity, collection of entities, or one of the predefined serializable types.


Este erro explica muito pouco o que está a acontecer, mas, depois de lamber muias páginas descobri que não posso ter a seguinte declaração de método:

[Invoke]
public IEnumerable GetContacts(string name) { return null; }

Esta declaração não é possível porque se tiver que retornar uma lista (IEnumerable<>, IList<>, etc), este método necessita ser [Query] e não [Invoke].

Mesmo sabendo que isto já funcionou como o [Invoke] mudei para [Query], mas, ocorria outro erro estranho, o meu código nunca entrava no RIA Service e obtinha sempre um erro a indicar que o servidor indivaca que o método não tinha dito encontrado.

Mais lambidelas de páginas e mais páginas e nada... eis que me recordei que tinha um projecto simples na minha máquina que funcionava. O problema é: FUNCIONA PORQUE?

A razão é simples: Invés de criar o meu RIA Service com Add -> New Item -> Domain Service, estava a criar uma nova class e decorava-a com [EnableClientAccess].
Quando cria-se pelo template são adicionadas referências e um conjuntos de declarações using que eu não estava a fazer e por isso não funcionava.

Infelizmente demorei 4 dias para descobrir este erro simples e espero que vcs não tenham que passar por isso!


Paulo Aboim Pinto

Tuesday 6 July 2010

Silverlight também nos Nokias!!

Ora ai está uma boa notícia. Enquanto outras plataformas limitam o acesso da tecnologia, outras aumentam o leque de equipamentos onde podemos usar a tecnologia. A última notícia é que o Silverlight também corre em Nokias.

Com esta notícia podemos dizer que o Silverlight corre sistemas Windows, MacOsX, Linux, WindowsPhone, Symbian (Nokia)

Source: http://www.silverlight.net/getstarted/devices/symbian/

Paulo Aboim Pinto
Odivelas - Portugal

Silverlight + RIA Services + WCF + SQL Server (Arquitectura 4-Tier)



Nas últimas semanas me foi pedido para elaborar uma prova de conceito que juntasse o melhor de vários mundos. Uma aplicação em Silverlight, base de dados SQL Server e uma arquitectura de 4 camadas (4-Tier).
A aplicação Silverlight não tinha muito que saber pois, é um género de agenda simples onde adicionamos, alteramos e apagamos contactos. Assim a aplicação contem 2 formulários: Lista de contactos e edição de contacto. Associados a estes formulários, forma programadas as três operações CRUD (Create, Update e Delete).

A dificuldade aqui era integrar a arquitectura nesta prova de conceito, pois, a implementação tradicional de RIA Services não permite que a lógica da aplicação esteja noutro servidor, mas, no mesmo que a aplicação Silverlight está a ser executada.
A complexidade da arquitectura deve-se ao facto termos que desagregar o User Interface (UI) da lógica de negócio (Business Layer) e ainda tornar indisponível servidor de base de dados para o User Interface como demostra o gráfico em baixo:


Podemos ver que o UI acede aos dados a partir do Servidor Aplicacional que está por detrás de uma Firewall. A ligação entre o servidor Web e o servidor aplicacional é feita a por uma porta específica e de forma segura, enquando o servidor de base de dados só permite ligações do servidor aplicacional para garantir a segurança de comunicação entre os servidores.

Assim, para suportar esta arquitectura o que fiz foi :
  • desenvolver uma aplicação Silverlight que usa RIA Service como Wrapper do serviço que está no Servidor Aplicacional. Esta solução torna que seja possível fazer um "push" dos objectos de negócio para a aplicação Silverlight sem que seja necessário criar projectos de partilha de recursos.
  • Desenvolver um componente RIA Service no servidor Web que possiblita a invocação dos métodos que desejamosComo podemos ver, temos três métodos no RIA Service que poderão ser usados pela aplicação Silverlight. Como este RIA Service não tem acesso à base de dados, não implementa o LinqToEntitiesDomainService, mas, DomainService. Desta forma para invocar estes métodos temos que fazer na aplicação Silverlight o seguinte:Todos os acessos a RIA Services são efectuados assincronamente, pelo que necessitamos de definir o evento Complete para a operação. Neste caso o evento de Complete refresca a lista de contactos.

    Por fim, o RIA Service deve conectar-se ao serviço WCF que está no servidor aplicacional dentro da zona de servidores protegida. O componente WCF no servidor aplicacional pode ser um serviço windows ou uma console application que vai estar à escuta na porta 4534 (podia ser qualquer uma, eu escolhi esta).
  • Por último desenvolve-se o serviço WCF no servidor aplicacional que vai estar à escuta na porta 4534 por solicitações. Configurei para que esta comunicação seja NetTcp para garantir privacidade e performance.
    Este serviço WCF efectua operações na base de dados (operações CRUD) e usa EF4 como ferramenta de ORM.
Desta forma foi possível ir de encontro aos requisitos do cliente e criar uma total separação entre o servidor Web e o servidor aplicação / base de dados. De forma nenhuma, alguém vindo da Internet pode aceder ao servidor aplicacional e à base de dados.
Foi assim garantida assim a segurança dos dados de ataques indesejados.

Paulo Aboim Pinto
Odivelas - Portugal

Thursday 1 July 2010

Friday 25 June 2010

Silverlight + RIA Service / WCF + Database

Basicamente desde do TechDays2010 que todo o meu tempo  tem sido usado a estudar Silverlight 4. Para meu espanto, esta plataforma está avançada o suficiente para começar a pensar em desenvolver aplicações na Internet usando somente Silverlight.

Silverlight tem uma estrutura semelhante ao WPF (Windows Presentation Fundation), mas com a diferença que está focada em correr aplicações num Browser. Quando falo em aplicações, estou a dizer isso mesmo. Com Silverlight é possivel desenvolvermos aplicações profissionais com um “interface polido” que já conheciamos de outras plataformas como Java ou Adobe Flash.

Para aceder aos dados, que alimentam a aplicação, a equipa da Microsoft disponibiliza um componente chamado RIA Services (RIA = Rich Internet Application) que com base num modelo de dados cria todos os métodos CRUD para que possamos desenvolver a nossa aplicação e integra-se com qualquer ORM, apesar de eu aconselhar Entity Framework 4 (EF4).

Outra forma de aceder aos dados é usando componentes WCF que já estejam desenvolvido na organização. Outro tipo de utilização de componentes WCF é quando queremos dispersar os componentes da nossa aplicação: WebServer que disponibiliza a aplicação Silverlight, Application Server que disponibiliza os WebServices / Componentes WCF e o servidor de base de dados.

Neste ponto a base de dados é algo realmente remoto numa aplicação, pois, quem vai criar a aplicação só tem que se preocupar com RIA Service ou WCF e o que é exporto por estes componentes.

Silverlight está também disponível no WindowsPhone. Assim podemos ter o mesmo ambiente no browser ou no telefone.
Estou convencido que o Silverlight é a próxima grande coisa a acontecer na informática.

Tuesday 25 May 2010

Silverlight e WPF

Desde o TechDays 2010 que todo o meu tempo tem sido usado para estudar Silverlight e WPF.

O WPF (Windows Presentation Fundation) é claramente uma excelente forma de desenharmos as aplicações de futuro. Duvido que o WindowsForms vá desaparecer, mas, vai ser gradualmente substituido por esta forma hierarquica de representação das nossas aplicações.
Tem como inconviniente só poder ser executado em sistemas operativos Windows, pois, tenta tirar partido de tudo de bom que o sistema operativo tem para oferecer.

Já o Silverlight é uma agradável supresa. Tenho visto filmes e mais filmes sobre Silverlight, comprado livros, experimentado e não poderia estar mais espantado com o que podemos fazer.

Com Silverlight podemos finalmente desenvolver aplicativos para o browser sem a necessidade de aprender outa liguagem se não a que estamos habituados a usar, o C#.
Quem me conheçe sabe bem que detesto JavaScript (e até mesmo o Java) e sempre me fez impressão ter que aprender JavaScript para ter interfaces bonitos nos sites que desenvolvi.

I HATE JAVASCRIPT

Desta fotrma não é necessário aprender HTML, JavaScript, C# para desenvolver uma WebApplication com "interface rico". Usando o Silverlight só temos que saber construir forms em XAML e programar em C#... MAIS NADA.

Até hoje só com Adobe Flash é que podiamos criar sites com interfaces realmente ricos e dotar as nossas aplicações de um Look & Feel realmente poderoso, mas, como é que usamos o Flash para obter dados de uma base de dados, processar dados e envia-los de volta para a base de dados? Com muita dificuldade.
Esta simples acção é feita no Silverlight de uma forma natural. Em Silverlight não fazemos só animações, mas, aplicações completas.

Mesmo que isto fosse muito, ainda temos a possibilidade de instalar e correr as nossas aplicações Silverlight Out-Of-Browser. Estas aplicações, apesar de terem um acesso limitado ao disco e ao sistema operativo, são executadas a partir do computador do cliente e usar o protocolo HTTP para comunicar com o servidor.
Só boas notícias.

Irei publicar o que tenho descoberto sobre Silverlight e WPF e espero pelos Vosso FeedBack.


Paulo Aboim Pinto
Odivelas - Portugal

Thursday 11 February 2010

Hoje ganhei a minha primeira batalha com a ADO Entity Framework!

No CMS que estou a desenvolver - Olimpo CMS - sempre tive como requisito principal a modulidade. Assim sendo, cada módulo, para além de ser responsável pelas suas acções, é também responsável pelas suas tabelas e seus dados. Não faz sentido o módulo de criação dos menus ter acesso as tabelas com os componentes de cada página e vice-versa.

Sendo assim, faz todo o sentido que a ConnectionString seja partilhada por todos os módulos, ou pelo menos que esteja em local partilhado, já que cada módulo pode obter os seus dados do repositório de dados que entender.

Vamos imaginar que está tudo na mesma base de dados, colocamos a ConnectionString no Web.Config do WebSite tudo iria correr bem! Não poderíamos estar mais errados. Com a Entity FrameWork, temos que agora o conceito de MetaData que é onde está descrito os objectos criados e os seus mapeamentos. Sem a MetaData não é possível usar o ADO Entity FrameWork neste exemplo modular, pois, cada módulo necessita, adicionar ao Web.Config a sua ConnectionStrings e a sua MetaData.

O que fiz para resolver este assunto? Simples, no Web.Config coloco a  ConnectionString sem a informação de MetaData e adiciono essa informação em cada módulo quando invoco o objecto EntityModel respectivo, assim:

EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
            entityBuilder.Provider = "System.Data.SqlClient";
            entityBuilder.ProviderConnectionString = @"Server=LENOVO-PAP\SQLEXPRESS;Initial Catalog=TEST.NET;Integrated Security=True;MultipleActiveResultSets=True";
            entityBuilder.Metadata = @"res://*/NewModel.csdl|res://*/NewModel.ssdl|res://*/NewModel.msl";

Agora, basta invocar o objecto ADO.NET Entity gerado com a nova connection string.
            Entities model = new Entities(new EntityConnection(entityBuilder.ToString()));
            var lstRET = model.AAA_User.ToList();

Desta forma é possível com uma ConnectionString associar a qualquer objecto ADO.NET Entity sem termos que ter várias ConnectionStrings no Web.Config.

NOTA: Neste exemplo a ConnectionString está hardcoded, mas, no projecto final é para obtermos a partir do Web.Config.


Paulo Aboim Pinto

Wednesday 10 February 2010

Buzz, o novo Google Wave.

Hoje a internet acordou com a notícia da entrada do Google nas redes sociais com o Google Buzz. Logo que abri o meu GMail (como faço todos os dias de manhã) tinha a mensagem a dizer que podia aderir ao Google Buzz e  foi o que fiz.

Devo dizer que gostei. Tem algumas funcionalidades interessantes que não conseguimos ter com o Twitter, mas, que o FaceBook já tinha implementado. Por exemplo, ao responder a uma mensagem de um amigo, ela fica em jeito de Reply invés de ser uma nova mensagem. Isso é chato no Twitter, pois, manter uma conversa com alguém pode ser muito xato.

Outra coisa que gostei foi do retirar da limitação dos 140 caractares. É verdade que isso é que fez com o que Twitter seja o que é hoje, mas é uma limitação xata para não dizer mesmo sem sentido.

Em conversa com uma amiga minha (ainda de manhã) demos por nós a falar sobre a estratégia do Google em relação ao Google Wave. Devo dizer que sou fã das Waves e ainda uso frequentemente em reuniões, para fazer algum BrainStorming e para tirar notas. Posso dizer que o Google Wave é o meu Notepad online. O que mais gosto ainda é a possoibilidade de poder partilhar essas minhas notas com outras pessoas.
Claro que estou aborrecido com o facto de ainda não poder enviar mensagens para fora do Google Wave, por exemplo, transformar uma Wave numa mensagem de correio electrónico e enviar para alguém e ainda ao receber a resposta dessa pessoa, poder arquivar na Wave.

Devido a esta pequena (grande) limitação do Google Wave, as pessoas não aderiram tanto a este serviço, assim, perdeu-se o impto inícial à volta das Waves. Eis que a Google aparece com este add-on ao GMail que é o Buzz. Se olharmos bem, a ideia de enviarmos mensagens a outros pessoas e poder responder em forma de árvore é muito parecido ao estilo do Google Wave. Até quando alguém nos responde e temos o Buzz aberto a forma como a resposta aparece é muito ao estilo do Google Wave.

Não será o Buzz uma forma de aproximação das pessoas ao Google Wave?

Vamos ficar à espera do que a Google irá fazer a seguir.


Abraços
Paulo Aboim Pinto

Friday 29 January 2010

Último dia na Altran

Bem, hoje é o meu último dia na Altran. Entrei aqui, ainda na Altrantec, fundi-me com a Altior e ficamos todos Altior e por último fundi-me com a Altran-CIS para sermos uma só empresa, Altran Portugal.

Estive envolvimento em bons projectos e tenho a certeza que tudo fiz para fazer um bom trabalho. Trabalhei para a CP, ZON, Alcatel, Arval, AIGLife sempre com C# .NET.

A partir de segunda-feira vestirei outra camisola e irei para outro projecto, mas, isso é uma outra história.


Paulo Aboim Pinto

Saturday 23 January 2010

Módulos do OlimpoCMS

Um dos pontos fortes do Olimpo CMS é a sua capacidade de adaptabilidade a novos módulos (ou plugins). Usando um conjuntos de interfaces base que definem o comportamento dos módulos, estes passam a ser parte integrante do OlimpoCMS.

O olimpo.Web.Core é o namespace responsável pelo carregamento dinâmico dos vários módulos configurados nas posições definidas pelo template. O template é uma lista de módulos a serem carregados numa determinada página e está guardada em base de dados.
Podem ser carregados módulos para a MasterPage ou para uma página normal.

Em http://code.google.com/p/olimpotools tem a última versão (0.3) do Olimpo CMS em formato VS2010.
Com esta versão é possivel definir zonas na MasterPage (serão tags DIV) e nessas zonas podemos carregar um ou mais módulos ou ainda mais zonas.
NOTA: na versão 0.3 ainda não existe ligação a uma base de dados. Os templates estão definidos no DataProvider da aplicação.

Para que um módulo seja carregado para uma zona, é necessário que tenha um WebUserControl chamado Index.ascx e que implemente a interface IWebControl. Este interface é que define como o motor de carregamento de páginas entrega parametros ao módulo.
Na versão 0.3 tenho um projecto chamado olimpo.BasicModule onde podem ver como funciona.

Neste momento estou focado na forma como podemos colocar um módulo na página principal sem que este seja o módulo principal, por exemplo: um menu, um calendário, etc. Ao clicar nesse módulo, o site deve colocar na área de destaque as funcionalidades do módulo.
isso fica para outro post.

Thursday 21 January 2010

As escutas do apito dourado

É simplesmente incrivel como alguém pode ter sido ilibado com estas escutas. Fala-se categoricamente de “Fruta de dormir” para o JP (árbitro Jacinto Paixão) e não se conseguiu provar nada?

Incrivel!!!!

http://www.youtube.com/user/tripulha#p/a/u/2/CZAd9kYN5Z0

 

Paulo Aboim Pinto

Tuesday 12 January 2010

Olimpo CMS em MVC ou MVP?

Desde que começei a desenvolver em ASP.NET sempre tive a preocupação de tudo o que faça em WindowsForms seja facilmente portado para WebForms, mas, infelizmente a complicação dos componentes sempre foi mais forte e nem sempre fui capaz de criar um ponte entre a camada de negócio (Business Rules) e a camade de apresentação  (Presentation Rules).

Esta complicação sempre se deveu ao facto de as DropDownList e ComboBox e as GridViews em WindowsForms e WebForms terem comportamentos muito diferentes.
Mesmo assim, sempre fui fascinado pelo MVP (Model-View-Presenter) e pala capacidade que este padrão tem tornar a camada de negócio e a camada de apresentação. Podemos ter ainda várias camadas de apresentação, pois, basta que cada uma implemente uma determinada Interface.

No blog do Phil Haack (Product Manager of Koders.com) podemos ver um exemplo de uma implementação do MVP.

À uns dias encontrei uma implementação do MVP para ASP.NET (como fizeram com o MVC) que apesar de ser uma implementação exclusiva para ASP.NET, penso ser uma claro avanço na na definição deste padrão.
Com MVP, podemos continuar a usar o ViewState, Session e Server objects bem como toda a definição da framework AJAX.NET exisistente.

Uma vantagem é que deixamos de ter que dominar o JavaScript e quem me conhece sabe que eu detesto JavaScript.

Assim, vou usar este padrão no desenvolvimento do Olimpo CMS. O meu eterno Pet Project.


Abraços
Paulo Aboim Pinto

Monday 11 January 2010

Campeonatos de futebol em África

Penso que está mais que provado que os países do sul de África ainda não estão prontos para organizar eventos a nível mundial. Desde separatistas atacarem autocarros de atletas (não militares), raptos em trabalhadores de empresas que ajudaram a construir as infraestruturas, assassínio de dirigentes desportivos que escolhem um empreiteiro em detrimento de outro e o último, ameaças de morte a jogadores como Didier Drogba, jogador da Costa do Marfim (notícia no jornal O Jogo)

Como acham que será o Campeonato do Mundo de Futebol na África do Sul?


Paulo Aboim Pinto

Friday 8 January 2010

Negócios do século XXI

Este Natal resolvi oferecer a mim mesmo um livro. O que me ofereci foi o livro de Chris Anderson chamado "The Long Tail", em português "A cauda longa".

Este livro fala sobre empresas que vieram revolucionar a forma de vender produtos ou serviços. Invés desses produtos ou serviços terem um preço elevado e ser vendido a meia dúzia de clientes, baixaram o preço e passaram a vender a milhões de clientes por todo o mundo.

Esta teoria vai de encontro à teoria tradicional sobre gestão de empresas. Até à 10 ou 15 anos não havia muitas empresas que tinham preocupações globais, pois, praticamente estavam confinadas a uma região ou país. Com o advento da internet um produto pode ser vendido em qualquer parte do mundo. Um potencial cliente pode estar em qualquer parte do mundo e não só na nossa área de acção.
Esta é a magia de internet e desta aldeia global.

Outro ponto que gostaria de salientar é o número de empresas que nos últimos anos passaram de inexistentes a grandes empresas do sector cujo produto tem um valor de venda próximo de zero.
Empresas como Google, onde as pesquisas dos cliente, emails, documentos, etc. não tem custos, RainAir que se dá ao luxo a ter viagem de avião a um cêntimo, são empresas que apresentam lucros extraordinários em contrapostos com empresa tradicionais que despedem pessoas todos os dias e apresentam prejuizos cada vez maiores todos os anos.

Quem é que está certo ou errado? Quem ganha e quem perde com esta metodologia?
Não tenho respostas para estas questões, mas, tenho a certeza que o consumidor irá sempre sair beneficiado. Só não sei dizer que tem algum ganho efectivo se não, mas, isso será matéria de outro post.


Paulo Aboim Pinto
Odivelas -Portugal

Saturday 2 January 2010

Avatar – um filme dos diabos

À uns dias atrás fui ver o filme Avatar e devo vos dizer que fiquei espantado com a capacidade técnica daquelas pessoas.

O filme em si não é nada de especial. Tem como base a história da civilização onde uns pensam que são os mais fortes e que podem chegar e abusar dos recursos de uma área (neste caso planeta) nem que para isso tem que destruir uma civilização inteira.

Na história da nossa civilização isso já aconteceu vezes sem conta, onde quero destacar o extermínio dos Aztecas por parte dos espanhóis e o quase extermínio dos índios americanos por parte dos colonos.

O que realmente me espantou no filme é para começar o 3D. Desde o filme “A criatura da lagoa negra” que deu à uns anos na RTP1, que eu não via um filme no formato 3D. Na altura houve uma febre para comprarmos os ditos óculos 3D e mesmo com eles devo dizer que num vi nada bem o filme.

Avatar é um filme assenta bem nesta ideia futurista do 3D. É um excelente filme de acção, com imagens lindas de uma planeta que não existe onde o realizador James Cameron não podia ter feito um melhor trabalho.

Quero ainda destacar o milagre técnico que foi dar a bonecos as expressões humanas. Não foram só expressões genéricas do rosto, mas, a interpretação dos actores foi totalmente captada e reproduzida.
Com este avanço (ainda insípido e só em filme) podemos pensar que temos o caminho traçado para rapidamente podermos ter avatares em sistemas como o Second Life que mostram as nossas expressões faciais.

Não vejo este filme como um bom filme, mas, a forma de filmagem é um grande avanço para a humanidade e abre novas prespectivas e utilizações na nossa vida real.


Paulo Aboim Pinto