Inception – A Origem


Bem, depois de aguentar uma semana e algumas desmarcações para ver o filme, lá o vi no sábado passado. Muito francamente, já me tinha passado um pouco aquele frenesim inicial, não sei bem porquê: só vi boas críticas ao filme.

Dito isto, provavelmente fiquei com as expectativas demasiado elevadas. O filme é bom, mas faltou aquele efeito “WOW” do Matrix. Isto aliado a algumas (poucas) falhas detectadas, e o facto de o final ficar em aberto, não ajuda.

De qualquer forma, é um grande filme, com as expectativas elevadas a destruírem um pouco a obra. Leonardo DiCaprio volta a escolher bem o papel, e está rodeado de bons actores. Os efeitos especiais estão brilhantes, e custa a crer que não são reais. Mas isso já é um pouco o pão-nosso-de-cada-dia no cinema actual. Recomendado, e facilmente um dos filmes do ano.



Need for Speed: Hot Pursuit


Tenho que pôr aqui o trailer da E3… está de fazer crescer água na boca! :D



Avatar – The Movie


No passado sábado fui ver o Avatar, o novo filme-sensação de James Cameron, com Sam Worthington e Zoe Saldana nos principais papéis, e nomes como Sigourney Weaver, Stephen Lang e Michelle Rodriguez a dar-lhes suporte. É um filme grandioso, com efeitos espectaculares e uma estória que convence.

Um marine, que ficou paraplégico após sofrer um acidente, é enviado para um planeta distante (Pandora) para substituir o seu falecido irmão gémeo – devido ao seu código genético ser igual – numa missão de aproximação à raça nativa, de forma a negociar uma relocação em nome de uma empresa que está interessada em explorar um minério existente no planeta. esta missão requer que ele tome controlo de um avatar (daí o nome do filme :P ), um corpo híbrido fabricado recorrendo a uma mistura entre o código genético de um humano – que se torna o seu controlador – e dos alienígenas.

Ao conviver com a tribo nativa, o protagonista começa a ver as coisas de forma diferente, apaixona-se, e… vão ver o filme! Vale a pena ver no cinema, e segundo me disseram, vale ainda mais a pena se for em 3D.

Tirando a parte de ter que pagar extra pela versão 3D, não tendo hipótese de desfrutar dela (não tenho visão estereoscópica), recomendo.

Ah, e Boas Festas!



Uma Aventura na entrega do Projecto


Quero partilhar convosco a “série de eventos desagradáveis” (referência cinematográfica :P ) que sucederam nas últimas 3 horas antes do limite para a entrega do Projecto. É uma história longa, mas de alto nível de entretenimento e emoção. Pelo menos foi o que nos pareceu ao fim da noite.

Tudo começou, estava eu e o mobes no ISEL a tratar dos últimos detalhes para a entrega, quando demos pela falta do código da aplicação servidor. Como tinha sido eu o último a fazer alterações à mesma, procurei no portátil e na pen USB, os dois únicos sítios onde poderia estar, chegando então à conclusão que estaria, em vez disso, no computador de casa. Ora, eu costumo ter o remote desktop activado, mas naquele dia não tinha por causa de umas alterações na rede caseira, após as quais não reconfigurei o router de modo a permitir o acesso remoto.

Como já estávamos a ficar sem tempo e ainda tínhamos algumas coisas para fazer, decidimos deixar para a hora da impressão final do relatório a ida a minha casa para obter o código, após o que voltaríamos, já com o relatório impresso, e faltaria só tratar das versões electrónicas.

Como nota, aquando da entrega do relatório, é necessário entregar 3 cópias impressas do mesmo, mais 3 discos, contendo a versão electrónica do relatório, e todo o material produzido relevante para o projecto.

Terminámos as preparações por volta das 20h30, tempo mais que suficiente para imprimir o relatório, ir buscar o que faltava, fazer alguns testes e entregar. Ou, pelo menos, foi o que pensámos.

Fomos então à reprografia ver se ainda lá estava alguém, tendo já em mente que já poderiam ter fechado, e capacitados que teríamos que ir ao Vasco da Gama para fazer as impressões. Ideia esparvoada, como se poderá ver à frente.

Chegámos à reprografia da AE do ISEL, e como só fechavam às 21h00, resolvemos fazer lá as impressões. Entretanto, lembrámo-nos que não tínhamos paginado as folhas do relatório, e lá fui eu a correr ao departamento buscar o portátil para fazermos a paginação na reprografia. Terminada a paginação, com as devidas complicações devido aos cabeçalhos/rodapés, às folhas em branco e às páginas de título, as quais já tínhamos mandado imprimir antes, lá mandámos imprimir e encadernar as 3 cópias, e fizemo-nos ao caminho até minha casa. Faltavam então 5 minutos para as 21h.

Chegado a casa, e enquanto procurava pelo projecto no computador, liga-me o mobes, que tinha ficado no carro a olhar para o relatório, e a conversa foi mais ou menos assim:

“Olha…”

“Sim?”

“Temos um problema no relatório…”

“Ah sim? O quê?”

“Estão aqui uns erros no índice. Se calhar não actualizámos depois de fazer as alterações.”

“Ah. Pois não…”

O que aconteceu: durante a edição do relatório, eliminámos alguns capítulos, movemos outros, e não actualizámos o índice, pelo que, na hora da impressão, o Word não sabia o que meter como número de página. Mas isto só apareceu na impressão, abrindo o documento no Word aparecia tudo bem.

Então lá actualizei o índice, e imprimi uma folha com o mesmo, e partimos para uma nova missão: encontrar uma loja, que fizesse encadernações, e que estivesse aberta às 21h30.

Primeira paragem: Centro Comercial da Portela. De Sacavém, entenda-se. Aquele que faz de rotunda-gigantesca-com-estacionamento-à-volta-com-parquímetros-que-irrita-fortemente-o-pessoal-que-lá-quer-ir. Felizmente que àquela hora já não se paga. Ainda mais felizmente porque as lojas de interesse já estavam fechadas.

Próxima paragem: Spacio Shopping, ex-Olivais Shopping. Chegámos lá eram 21h45. fomos à loja de impressões, explicámos o problema, que era substituir uma folha numa encadernação já feita.

“É possível?” – perguntei.

“Sim. Mas com essa encadernação não, que não tenho máquinas com essa medida”

Desespero.

“Onde podem conseguir a esta hora é no Staples, no Office Centre. Eles fecham às 22h30″

Nova esperança. “Obrigado!”

E lá fomos nós dar a volta para irmos ao Staples, que ainda é uma voltinha grande, quando vista a distância a que fica o Staples do Spacio.

Chegámos lá eram 22h10, o que contando com semáforos não foi assim tanto. Chegados ao portão, estavam os seguranças a fechá-lo, pelo que já não conseguimos entrar, e lá fomos novamente dar a volta para voltar ao Staples, desta vez já com o conhecimento de que o parque fechava mais cedo, e com o intuito de deixar o carro no parque do Lidl e ir a pé até ao Staples.

Estacionado o carro, arrancámos então para o Staples, onde chegámos às 22h20, e encontrámos um letreiro a dizer o seguinte (ou algo parecido):

“Horário de funcionamento: __:__ – 22h00″

E o edifício todo fechado e Às escuras. Novo ataque de pânico. Lá fomos a correr de novo para o carro (por esta altura já se notava o peso sobre o ponteiro da gasolina) e fomos ao Vasco da Gama.

Lá, fomos à tabacaria ao pé do continente, onde vimos que não tinham máquinas de encadernação, e de seguida à Papelaria Fernandes, já sem grandes esperanças. Na PF, a menina informou-nos:

“O único sitio aqui onde fazem isso é na gare, no centro de cópias”

O problema era que o Centro de Cópias da Gare já tinha fechado. Foi aí que desistimos e voltámos para o ISEL, para ir falar com o Engenheiro e explicar-lhe a situação.

Após a explicação, fomos informados de que poderíamos entregar a versão em papel na 2ª feira, desde que entregássemos a versão electrónica até à hora limite.

2h30 desperdiçadas, entre a busca pelo software que estava na pen, e a busca pela loja de encadernação. E nós com falta de tempo… yay.

Eram 23h00 quando regressámos ao departamento. Acabámos de produzir a versão electrónica, 3 discos gravados, eram 23h27, mais coisa menos coisa. O mobes foi para cima, para ver se o segurança não nos trancava lá dentro (para quem não sabe, o edifício é fechado às 23h30, e só reabre às 00h00, e a partir daí de hora a hora), enquanto eu fiquei a acabar de testar o último disco.

Quando cheguei à entrada do DEETC, estava o segurança a trancar a porta. Por sorte, quando apareci ainda ele tinha a chave na fechadura, e fez o especial favor de não me deixar trancado lá dentro.

Vim depois a saber que o mobes quase andou à porrada com ele porque ele não queria estar à espera mais um minuto (entretanto eram 23h30), porque senão “txinhá ki ficá à isspérá dji todumundu, e nãum sáiá dji lá até àis duáis”. Enfim. Maitê ftw.

Passado isto, (não, ainda não acabou =D ) fomos ter com o Engenheiro para entregar o projecto. No caminho, lembrei-me que não tinha identificado os discos, e que não tínhamos caneta de acetato para o fazer. “Talvez o Eng. tenha…!”

Mas não tinha. Estava uma sala aberta com duas pessoas, as quais também não tinham caneta, e que até iam também precisar.

Então, na sala do fundo, com uma probabilidade daquelas que ronda os infinitésimos, Estavam dois colegas nossos, numa 6ª à noite, após as 23h30, a ter uma discussão de uma cadeira, no preciso dia em que terminava o prazo para a entrega do Projecto. E melhor ainda: um deles TINHA MESMO uma caneta de acetato!

Assim, atribuladamente, finalmente conseguimos entregar o Projecto…

Espero sinceramente que aquele colega tenha tido uma nota brutal na cadeira a que estava a fazer discussão! :D

E que o segurança tenha sido violado a caminho da paragem. Por homens brutos. Que cheirassem mal. E que ele não gostasse. Mas isso não interessa!

Então? Foi emocionante ou não? :D



Execução de gatilhos DML em SQL Server 2005+


Coisa interessante que descobri há momentos, quando andava a pesquisar informação relacionada: um trigger é executado na transacção implícita da instrução SQL que o desencadeou.

DML triggers are invoked when a data manipulation language (DML) event takes place in the database. DML events include INSERT, UPDATE, or DELETE statements that modify data in a specified table or view. A DML trigger can query other tables and can include complex Transact-SQL statements. The trigger and the statement that fires it are treated as a single transaction, which can be rolled back from within the trigger. If a severe error is detected (for example, insufficient disk space), the entire transaction automatically rolls back.

O que faz todo o sentido: se um trigger “pertence” a uma instrução SQL, é natural que seja executado no mesmo contexto que a instrução.



Win32 – Criar controlos com identificadores


Em MFC é fácil.

Em win32, também! Basta passar no parâmetro hMenu do CreateWindow o valor do identificador do controlo, algo do género:

CreateWindow(TEXT("BUTTON"), TEXT("MyButton"), WS_VISIBLE | WS_CHILD, 10, 10, 100, 32, hWnd,
    (HMENU)100, // O ID do botão será 100
    hInst, NULL);

Ou, melhor ainda,

enum ControlIDs { ID_BUTTON_ONE = 100 };
CreateWindow(TEXT("BUTTON"), TEXT("MyButton"), WS_VISIBLE | WS_CHILD, 10, 10, 100, 32, hWnd,
    (HMENU)ID_BUTTON_ONE, // O ID do botão será 100
    hInst, NULL);

Não encontrei isto documentado em lado nenhum, segui o código da biblioteca MFC para ver como eles resolviam (uma vez que o método Create dos controlos, como botões, aceita o ID como parâmetro) e cheguei a esta conclusão.



Updates – Cinema


Já há uns meses que não escrevo nada… que altura melhor para fazer um apanhado dos últimos filmes que vi no cinema? (Ou, pelo menos, daqueles de que me lembro…) E sem ser por ordem nenhuma, a não ser aquela que me lembrar 8-)

Transformers: Revenge of the Fallen

Ora bem, uma sequela. Esperar muito e arriscar a desilusão, ou esperar pouco e arriscar uma boa surpresa?

Foi um filme que fui ver a medo. Gostei bastante do primeiro, e temia que este desiludisse. Completamente errado! Conseguiram contornar bem o final do 1º, inventando uma espécie de continuação; os efeitos especiais (sem os quais não havia filme) estavam muito bons, sem cair no exagero; e a comédia foi mais arrojada que no primeiro, não sendo poucas as vezes em que a plateia quase mandava o cinema abaixo de tanto rir!

Terminator: Salvation

Outra sequela. De uma sequela. Da sequela do primeiro. Ok, poderia ter sido a receita para o desastre. Mas não foi! O filme não se porta como uma sequela, entenda-se que os elementos dos outros filmes estão lá, mas não soam a sequela. É mais uma história com princípio, meio e fim. E com duas cenas que me ficaram na memória: uma logo no início, a da queda do helicóptero, e outra já para o final em que fiquei de boca aberta uns cinco minutos. Não vou dizer o que foi, porque quem não viu ainda se pode surpreender, e quem já viu deve chegar à cena de que estou a falar. É aquela em que o John Connor vai finalmente encontrar o futuro pai… e em vez disso encontra outra coisa. Foi uma cena fantástica!

Fast & Furious

Ora bem… Mais uma sequela. A diferença é que este foi o primeiro filme da série que vi. E gostei. Não sou adepto de tuning (sim, tuning só leva 2 n, e não são pegados), gostava que ficassem todos sem gasolina para sempre, mas gostei do filme. Porquê? Não sei. Mas também gosto dos jogos Need For Speed (tirando aquela coisa que foi o ProStreet). MAs isso não interessa nada. O filme foi engraçado. Isso sim, interessa!

Monsters vs. Aliens

Ah, finalmente uma não-sequela!

Este foi o primeiro filme 3D que vi. Infelizmente sou estrábico, não tenho visão tridimensional, pelo que não pude apreciar essa parte do filme. A parte boa é que não fiz figura de parvo de cada vez que um objecto se aproximava da câmara :D Mas, uma vez mais, foi um filme giro. Tenho que começar a ver filmes maus, é chato estar sempre a dizer o mesmo…

X-Men Origins: Wolverine

Afinal deste posso dizer um bocadinho de mal. E o mal que vou dizer é que INVENTARAM P’RA CARA…ÇAS, FO…NIX! O WOLVERINE É IRMÃO DO SABRETOOTH? WHAT? CUREM-SE!! E QUE TAL LEREM OS LIVROS?? E A TORTURA POR QUE O WOLVERINE PASSOU DEPOIS DE LHE METEREM O ADAMANTIUM NOS OSSOS?? E O QUE DIZER DE O CYCLOPS SER UM ADOLESCENTE NA MESMA ALTURA, E A WHITE QUEEN IDEM??? E O DEADPOOL TEM LÂMINAS NOS BRAÇOS? WHAT??? E COMO É QUE OS DOBRA??

Ai… antes que me dê uma coisinha má (não estou habituado a gritar assim)… Se não olharmos às BARBARIDADES que descrevi no parágrafo anterior, o filme até foi giro. Ryan Reynolds é sinónimo de gargalhadas, e o resto dos actores também soltaram as suas piadolas. Mas por favor, para a próxima não inventem tanto.

Star Trek

Começar por dizer que nunca fui fã da série, nem dos filmes. Mas este filme cativou-me. Porque não tem nada a ver com os filmes anteriores nem com a série (à excepção de um certo personagem com orelhas pontiagudas…). Imaginaram muito bem a passagem de testemunho das personagens antigas para as novas, com uma história que gira em torno de viagens no tempo, coisa que costuma dar para o torto, mas que neste caso resultou bem. Recomendo.

Knowing

Nicolas Cage é um dos meus actores preferidos, e este filme é mais um que brilha no seu currículo. Uma série de números é transmitida a uma criança com comportamento estranho no fim dos anos 50, que vêm mais tarde a revelar-se uma lista de calamidades, a maioria das quais já ocorreram, mas com algumas ainda no futuro.

Efeitos especiais espectaculares em 3 ocasiões, que tornam este filme digno de ser visto no cinema, ou numa sala com um home cinema a sério.



Impedir abertura automática de novo documento num projecto MFC


Para impedir a abertura automática de um novo documento numa aplicação MFC, basta alterar o método InitInstance de forma a que, quando o método ProcessshellCommand for chamado, o campo m_nShellcommand tenha o valor FileNothing em vez de FileNew:

BOOL CMyWinApp::InitInstance() {
    //...
 
    // Parse command line for standard shell commands, DDE, file open
    CCommandLineInfo cmdInfo;
    ParseCommandLine(cmdInfo);
 
    // NOVO CODIGO
    // Não criar uma nova janela quando a aplicação é aberta
    if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
      cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
 
    // Dispatch commands specified on the command line
    if (!ProcessShellCommand(cmdInfo))
        return FALSE;
 
    //...
}


O meu TV-B-Gone!


Uma das razões que me levou ao CodeBits (além da possibilidade de encontrar alguns membros do Portugal-a-Programar, e [claro!] da pura diversão), foi a apresentação do excelentíssimo senhor Mitch Altman, não que o conhecesse muito bem, embora já tivesse ouvido falar dele, mas porque a sua filosofia inventiva me cativou bastante.

O que eu não sabia era que viria a sair de lá com um bichinho destes:

TV-B-Gone
TV-B-Gone

O Mitch é uma celebridade (pelo menos no mundo geek), o que leva a que ficasse admirado pela sua simplicidade. Tinha um stand ao pé da zona dos “comes-e-bebes”, ao qual convidou toda a assistência a ir para aprender a soldar. E lá fui eu. Conversei um pouco com ele, enquanto ele dava indicações a quem já tinha comprado o kit de como o soldar correctamente. E depois de receber algumas dicas de como soldar, acabei por lhe comprar o kit do TV-B-Gone, o pequeno aparelho-maravilha que desliga grande parte das tvs que encontro por aí. E tive um sucesso enorme a soldá-lo (já em casa).

Tenho apenas pena que o pequeno aparelho não desligue televisões da LG. Mas hei-de descobrir como lhe meter os códigos para as televisões comercializadas na Europa.



Abrir linha de comandos através dos menus de contexto das pastas


Dá muito jeito ter este atalho no menu de contexto das pastas no Explorer. Para isso, no Windows 2000 e XP, basta copiar o os seguintes comandos para um ficheiro .reg e executá-lo:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\CommandPrompt]
@="Abrir linha de comandos aqui"
[HKEY_CLASSES_ROOT\Directory\shell\CommandPrompt\command]
@="cmd.exe /k cd %L"

menu a demonstrar o comandoet voilá! Nem é preciso reiniciar o Explorer.
No Windows Vista e Server 2008 ainda é mais fácil: basta pressionar a tecla shift enquanto se clica no botão do lado direito sobre uma pasta.

Página Seguinte »

apetites is proudly powered by WordPress and themed by Mukkamu