29 março 2008

Utilização de Delegates em Genéricos

A minha primeira experiência com genéricos foi em C++, eram simplesmente brutais, autênticas macros, davam para fazer coisas simplesmente espectaculares. Eu sei que eram particularmente perigosos, obrigavam a que o programador soubesse o que estava a fazer.

Comigo geralmente funcionavam bem desde que tivesse sido eu a fazê-los, quando usava bibliotecas de genéricos era de facto muito mais complicado. Como tal não fiquei muito surpreendido por a Microsoft os ter simplificado em muito, mas confesso que foi uma verdadeira desilusão.

Ainda assim, volta e meia tento aprofundar as limitações que encontro, e mesmo quando não as encontro, é frequente quando volto a mexer nesse código tentar novamente.

E foi precisamente isso que hoje me aconteceu, peguei num pedaço de código já bem antigo, do tempo em que os genéricos chegaram ao mono:

public delegate void Event(T changed);

public abstract class A<T>
{
  public void Fire(Event aux)
  {
    aux(this);
  }
}
public class B : A<B>
{
}
public class C
{
  public static void Main(string[] args)
  {
    B b = new B();
    b.Fire(Yo);
  }
  public static void Yo(A<B> b)
  {
    System.Console.WriteLine("Yo");
  }
}

O que eu pretendia era que o Delegate Yo recebesse B e não A<B>, para além de complicar o código, implica estar dependente da hierarquia. Não sei porque motivo me escapou na altura, talvez algum bug do mono, dado que na altura o suporte era muito preliminar. Mas hoje tentei novamente e consegui:

public delegate void Event(T changed);

public abstract class A<T> where T : A<T>
{
  public void Fire(Event aux)
  {
    aux((T)this);
  }
}
public class B : AA<B>
{
}
public class C
{
  public static void Main(string[] args)
  {
    B b = new B();
    b.Fire(Yo);
  }
  public static void Yo(B b)
  {
    System.Console.WriteLine("Yo");
  }
}

Supostamente bastaria meter where T : A, mas não, tive de fazer um cast do this para T.
A classe é abstract, o método não é static, logo qualquer instância tem de ser obrigatoriamente T. Já que o compilador não consegue ver isso, espero que o JIT consiga.

28 março 2008

Pessoas gostam do nosso Parlamento da Vergonha

Foi com muita tristeza que hoje percebi que muitas pessoas apoiam a vergonha de política que nós temos.
Que pensam que efectivamente o trabalho da oposição é andar com estas pedradas ao governo.

Agora percebo porque as pessoas dizem que os políticos são um preguiçosos, que apenas estão ali para se encher. É porque as pessoas pensam que é esse o seu trabalho. As pessoas pensam que aquelas pedradas é o motivo pelo qual são eleitos.

Bem, assim sendo, se é isto que as pessoas pensam, então acho que não se devem queixar dos políticos que têm, é como na TV passa aquilo que as pessoas querem ver.

O que eu lamento é que seja desperdiçado tanto tempo e dinheiro assim, quando existe tanto para discutir e analisar com seriedade, não quer dizer que não se faça em debates aqui ou ali, mas não se faz de uma forma oficial. O oficial são as pedradas.

Nós devemos todos trabalhar em equipa para avançarmos, caso contrário, vamos continuar a atirar pedras uns aos outros, cada um de cima da sua árvore.

E depois quando for necessário um consenso, atiramos mais pedras e fica tudo na mesma, tal como temos feito nos últimos 30 anos.

Espanha aproveitou muitos fundos que Portugal desperdiçou neste jogo. Olhe para a Espanha.
Onde estão os Portugueses que cada um derrotava 4 Espanhóis?

Pois é, os Espanhóis avançaram e nós estamos nisto. Nós deviamos estar 4 vezes melhor que os espanhóis e ganhar 4 vezes mais. Mas eles é que nos estão a dar baile.

Eu vou ser honesto, este governo desilude-me muito, não pelo que fez, mas pelo que não fez. Existe muito mais para fazer que eles ainda não fizeram.
E não venha que para lhes bater está cá a oposição, que a oposição também não se mete nisso. E aí está o problema, ataca-se tudo, menos o que interessa.

Por exemplo, a flexisegurança é fundamental para o nosso país, um dia com calma aprofundo, basta-me usar umas comparações com o futebol para toda a gente perceber que é o melhor para todos. Mas o governo não avança com ela.

As dividas do estado, o estado tem melhorado, mas ainda demora muito a pagar.

O apoio real que o estado dá às pequenas empresas, tornando criminosos pequenos gestores que tentam salvar postos de trabalho.

A formação que o estado não dá aos gestores das PMEs.

Enfim, podia estar aqui horas a apresentar-lhe coisas que estão efectivamente erradas, e que nada se fez para efectivamente corrigir, e que me faz estar muito triste com este governo. Porque eles têm peritos que lhes indicam com muito rigor o que tem de ser feito, mas eles muitas vezes preferem adoptar medidas mais populares, mais visíveis, como por exemplo uma baixa de um ponto percentual no iva.

A oposição também sabe, por vezes até provoca com o assunto, mas quando está no poder faz o mesmo. Por isso muitas vezes se fala no passado, o que eu não concordo, porque devia ser mais um motivo para se tomar medidas já e não adiar mais.

Parlamento da Vergonha

Francamente acho que os deputados do nosso parlamento se esqueceram que o trabalho deles não é fazer oposição, mas sim ajudar o governo a governar.

É lamentável, a forma como tentam tirar coelhos da cartola que manipulam de uma forma audaz de modo a que o 1º ministro não tenha hipótese de dar uma resposta adequada. Como é que o 1º ministro pode saber tudo de cabeça, obviamente que não.

Em qualquer reunião, eu gosto que as pessoas preparem as reuniões, gosto de chegar lá e saber o que vamos discutir, porque chegar uma reunião e mandar palpites para ou ar, ou dar respostas estilo depois logo se vê, não é produtivo e detesto perdas de tempo.

Infelizmente, muitas vezes é complicado explicar isto aos clientes, não tem a noção de quão precioso e caro é o tempo, tanto nosso como o deles, porque recusam-se a dar detalhes que me permitam preparar reuniões. O que normalmente me obriga a tentar adivinhar tudo o que pretendem e em vez de demorar 30 minutos, posso chegar a demorar inclusive semanas.

Por isso é que muitas vezes prefiro as reuniões por msn, assim vão acontecendo reuniões, e sempre poupo tempo nas deslocações e nas preparações prévias. Porque posso dizer ao cliente, deixe-me analisar essa questão, que dentro de alguns dias eu dou-lhe uma resposta.

Mas chega de divagações, agora o 1º ministro por mais que queira não é possível ele adivinhar que recortes sensacionalistas ou distorções a oposição vai buscar. Porque o objectivo é precisamente esse, dizer umas coisas para ele depois ficar sem uma resposta conclusiva, para a oposição ficar bem na figura.

E o que o 1º ministro faz é, assim que algum assessor ou ministro lhe faz chegar a informação correcta, dá então a resposta atrasada que deveria ter dado ao deputado anterior. Enfim uma tristeza.

O que está em causa não é se o 1º ministro tem razão ou não, o que está em causa é que aquele tempo devia ser usado para beneficiar o país e não para ganhar votos, eles deviam estar a debater efectivamente. A dar o seu contributo para a governação do país, mas assim é uma guerra para o voto.

Porque se estivessem de boa vontade, forneciam os tópicos de discussão previamente e o 1º Ministro teria a oportunidade de discutir o assunto.

É com esta tristeza, que ajudam Portugal, com desinformações, com distorções, sempre a tentar apanhar o 1º Ministro desprevenido? Sempre a tentar fazer bonito porque lhe deram na cabeça? A baterem palmas uns aos outros como se ganhassem pontos? Não percebem que o país perde assim? Não percebem que assim não contribuem para a governação? Não percebem que assim cada vez mais as pessoas não vão acreditar neles?

É que por causa desta situação, que assuntos importantes não são devidamente debatidos, que se arrastam e vão passando de governo em governo e não se resolvem. Porque muitos deles são polémicos, e se a oposição faz barulho não há condições para avançar. Veja-se o que aconteceu com a regionalização, fosse boa ou má, quem não se lembra da desinformação que foi, com a publicidade dos tachos do CDS.

Mas existem muitos exemplos, TGV, Ota, Código do Trabalho.

É o que está acontecer actualmente com o código do trabalho que deveria evoluir no sentido da flexisegurança, mas que não há condições sérias sequer para discutir porque a oposição já conseguiu meter na cabeça das pessoas que é sinónimo de despedimentos em massa.

Para não me alongar, pensem apenas como seria o futebol e os ordenados se tivessem de cumprir o código geral do trabalho. Jogadores todos a ganhar o mesmo, a aumentar até à reforma. Jogadores com direito a jogar até aos 65 anos. Um jogador numa equipa não funciona e noutra funciona... Enfim lá se ia o futebol. Note-se que o nosso código do trabalho não promove uma cultura de mérito.

Engraçado porque os deputados atacam os grandes ordenados dos gestores, mas não os dos futebolistas? Porque as pessoas conhecem melhor esse mundo, e compreendem porque é que os futebolistas têm de ganhar mais, e como tal aí não ganham pontos, antes pelo contrário.

27 março 2008

Arroz salva Telemóveis Aquáticos?

Hoje li num artigo mais uma história de uma telemóvel que foi salvo temporariamente por arroz.

O principio é sempre o mesmo, colocar um telemóvel num ambiente em que se absorva toda a humidade.
Eu pessoalmente se tivesse um problema destes começava por lhe tirar a bateria, porque mesmo desligado, a maioria dos telemóveis estão ligados (ex. despertador).

Depois aquecia com um secador ou no forno arroz cru até uma temperatura morna para desidratar um pouco o arroz, depois deixava o arrefecer fechado para que ao arrefecer não absorvesse água do ar.

Quando o arroz estivesse frio, limpava eventual água da tampa do arroz e metia lá dentro o telemóvel e a bateria, e deixava lá um dia ou dois, provavelmente pelo meio voltava a desidratar o arroz.

Existem variações que podem incluir a utilização de desumidifadores, o que pode resultar se for um activo, só experimentando, ou a utilização de um secador, mas neste caso eu recomendaria não usar o secador no quente, apenas no ar frio. Mesmo assim, tenho algum receio que o secador empurre água para sítios onde esta não tinha chegado, uma vez que dependendo do tempo que esteve submerso a água poderá não ter chegado a todo o lado.

Pensando melhor, a melhor opção até deverá ser o desumidificador, embora seja um processo que eu suspeito que vá demorar mais tempo, até porque o que o desumidificador faz é tirar água do ar de uma zona mais ampla da qual faz parte o telemóvel.

Bem, a quem tiver este problema, boa sorte, já ouvi muitos casos de sucesso, mas não garanto nada uma vez que não tenho qualquer experiência neste assunto e cada telemóvel é um caso bem diferente, alguns até são à prova de água. Por isso avancem à vossa responsabilidade.

Apenas deixo aqui os meus bitaites para que quando tiverem um problema destes pensem no assunto primeiro.

25 março 2008

Abençoados telemóveis nas Escolas

É verdade que os telemóveis causam imensos problemas nas escolas.

Mas também é verdade que há muito tempo que eram comuns as agressões a professores e a colegas que passavam impunemente. Já para não falar questões de assédio sexual a professoras, que estas tinham vergonha de assumir.

As escolas, deviam ter câmaras de filmar em todo o lado e deviam ser supervisionadas por funcionários adequados com perfil psiquiátrico avaliado. Até nas casas de banho se sucediam no meu tempo as agressões, e ninguém via nada, ninguém fazia nada e tudo passava impune.

É preciso ver que não é preciso muito para que situações dessas traumatizem para sempre alunos ou professores. E o medo cala bocas, especialmente quando estamos a falar muitas vezes em diferenças etárias de mais de 8 anos, e que durante anos vão conviver na mesma escola. Não há como fugir.

Até porque geralmente as escolas não fazem nada, quando há queixas, ninguém viu, é a palavra da vítima, contra o agressor e os seus amigos.

É por estes motivos que se considera que a escola é o ambiente mais semelhante a um estabelecimento prisional.

Uma vez observada uma agressão ou qualquer outra situação grave, deviam ser tomadas as medidas adequadas.

Não podemos continuar a fechar os olhos ao que se passa em muitas escolas, provavelmente em todas.

Quem não sabe de coisas muito piores que se passaram nas escolas?

Eu sei que esta ideia de perda de privacidade assusta as pessoas, mas desde quando se têm privacidade numa escola?

Não terão muitos pedófilos começado nas escolas, por exemplo?
Não sabemos, não há como saber.

Mas indiscutível é isto, que jovens formamos com ambientes destes nas escolas?

17 março 2008

Utilização de Eventos em Asp.Net

Eu sempre fui um grande defensor da utilização de padrões em qualquer tipo de aplicação. Ao ponto de considerar que a grande maioria dos padrões deveriam ser parte integrante das linguagens de programação.

O problema é que nem sempre é possível integrar os padrões directamente, dado que frequentemente é preciso adaptar o padrão à utilização que pretendemos dar, ou seja temos de criar a nossa linguagem mais próxima do domínio. E para isto linguagens como o Lisp, com as suas macros são os claros vencedores.

O meu problema de hoje é precisamente com um padrão que foi integrado na linguagem. O motivo é simples, um padrão teórico é flexível e quando é instanciado é tornado mais específico. E o problema aqui era precisamente esse, seriam os eventos do .Net assíncronos ou síncronos?

É uma decisão de instanciação, ambos têm vantagens e desvantagens, mas qual teria Microsoft escolhido?

Já há bons anos que desenvolvo aplicações em .Net, na realidade no meu caso é mais em Mono, mas quando desenvolvo aplicações em Windows.Forms ou em GTK, não me importa, porque os eventos que são disparados pela interface são executados assincronamente.

Agora no restante tipo de aplicações Consola ou Web, sempre tive algumas reservas em utilizar eventos, como até agora não enfrentei situações que justificassem aprofundar esta questão, deixei andar.

Por várias vezes pesquisei sobre o assunto, mas não conseguia encontrar uma resposta clara, até que encontrei "When an event has multiple subscribers, the event handlers are invoked synchronously when an event is raised". Não foi propriamente a resposta que eu pretendia, mas por esta consigo inferir o motivo da minha dificuldade, em toda a documentação assume-se que os eventos são sempre síncronos. Então apenas importa esclarecer que mesmo quando são vários subscritores, a invocação é à mesma síncrona.

Mesmo com .net, é possível utilizar diferentes tipos de sistemas de eventos, tanto síncronos como assíncronos, como tal a documentação não devia assumir nada. Talvez noutros documentos que me escaparam a informação esteja mais clara.

16 março 2008

Populismo Anti-Governo

Estou cada vez mais farto do populismo anti-governo, não concordo com eles em muita coisa, mas bolas, medidas difíceis que deviam ter sido tomadas à anos, eles tiveram a coragem que faltou a outros governos. E cai o Carmo e a Trindade, mas nem a oposição se atreve a prometer que quando for governo volta a trás.

Estou farto deste populismo, ajudem o governo, proponham alternativas, não sejam vagos, sejam objectivos.
Mas tipo, chegar ao ponto de chamar fascista ao governo? Quando o PS até é dos grandes partidos, o único em que existe uma pluralidade real sem caças às bruxas?

Foi isso que este autor fez, embora voltando atrás na palavra em si, tentando dar a volta por outro lado. Eu percebo a angústia das pessoas, a sua insatisfação, mas estas medidas eram necessárias há muitos anos. Eu compreendo o seu ponto de vista, as pessoas têm é de ver o ponto de vista de todos, incluindo dos ministros que têm de tomar estas decisões que lhes custam votos. E ainda há demasiado para fazer, para trazer mais igualdade e justiça para Portugal, para que sejamos vistos cá, como os nossos emigrantes são vistos lá fora.

Bem, esta foi o comentário que lhe fiz.

Bem é sempre complicado comentar quando se percebe que obviamente está a ser parcial.

E existe uma simples resposta que permite tornar claro isso, já certamente viu a oposição ao governo adoptar o mesmo tipo de críticas, mas já os viu fazer promessas de voltar atrás nas alterações que o governo está a fazer?
Claro que não. Porque simplesmente, grosso modo sabem que o governo faz o que tem de fazer, e aproveitam-se dessas medidas duras para ganhar votos.

Ora veja, por exemplo, no caso da saúde, Portugal tem uma grande falta de médicos e o governo não pode criar médicos por decreto.
Como tal vê-se obrigado a geri-los da melhor forma possível, obviamente que tirar cuidados de saúde de proximidade é duro para as pessoas porque aumenta a sensação de insegurança.
Mas o governo fundamentou o seu trabalho com dados estatísticos em que mostrou que morreram menos pessoas, que a qualidade dos serviços melhorou, que Portugal subiu em rankings de saúde.
Viu por acaso a oposição contestar isso? Não, o que viu foi mudarem a conversa para a insegurança que as pessoas sentem.

Agora, em relação a afirmar que o governo é repressor, que reprime as pessoas, com todo o respeito já reparou que o maior inimigo do 1º Ministro é um deputado do seu partido, o Sr. Manuel Alegre.
Já reparou que o PS não é tão agressivo com ele, como os outros partidos são com a oposição interna? Repare agora o que se está a passar no PSD ou o que se passou recentemente no CDS ou o que se passa no PCP regularmente.

Um polícia visitar uma escola e fazer uma pergunta dessas é intimidar as pessoas, quando os polícias devem ir regularmente às escolas? Repare, essa ideia do policia inimigo é muito antiga.
Hoje em dia, um polícia deve ser considerado como um amigo do cidadão e não como alguém que se deva temer.
Como tal, eu não tenho problemas de colaborar com a polícia sempre que me é solicitado.
Agora se houve sindicatos que até forneceram informações à polícia para que os ajudasse com o trânsito, parece-me populismo aproveitar-se de ideias de antigo regime, para tentar conquistar pontos para o seu ponto de vista.

Mas lembre-se isso acabou com o 25 de Abril.

Agora a questão militar, eu pessoalmente também acho que os militares também deveriam ter o direito de se manifestar livremente. O problema não é esse.
O problema é que a falta de disciplina militar pode levar a golpes de estado e outras situações complicadas e um governo deve ter um exército que cumpra sempre as suas ordens.
Caso contrário, é o risco de anarquia, não é a minha opinião, mas parece ser a realidade do triste mundo em que vivemos.

Agora em relação à manifestação dos professores, durante 30 anos, os professores poderam eles próprios sugerir modelos de avaliação para não só promover o mérito, como remover nódoas da profissão.
Eu conheço muitas pessoas que hoje são pessoas da chamada geração recibos verdes ou 500€, em boa medida por causa de maus professores que tiveram.
Quer essas pessoas a manifestarem-se? Olhe que dava muito mais gente, o meu medo é que surja um Tino de Rãs que puxe por essas pessoas e depois vamos ter incidentes como os de Paris, por exemplo.

Portugal está de facto à beira de uma guerra civil, porque os partidos quando estão na oposição estão sempre a manipular as pessoas contra os governos.
E isto é profundamente errado, o dever de todos os partidos é ajudar a governar e não trocas de ofensas.

Existem muitos interesses instalados em Portugal, para os quais é fácil instigar as pessoas, por exemplo, os grandes lucros da banca, da Galp, da EDP, da PT, etc.

É por isso é que a situação actual aconselha muita calma e juízo.
Agora se quer atirar argumentos para o ar, continue, porque o povo poderá sair à rua.
Porque o que as pessoas querem é uma desculpa para descarregar a insatisfação que sentem.

Pode pensar que sou um defensor do PS, mas desengane-se discordo com eles em muitas coisas, mas uma pessoa tem de ter uma posição crítica objectiva.

Por momentos coloque-se no lugar do 1º Ministro e pense como faria melhor e proponha isso mesmo!