terça-feira, dezembro 11, 2007

Alterar a prioridade dos estilos do HTML

Existem 4 modos de definir o estilo num elemento HTML:

1) Os browsers já têm estilos por omissão;
2) Ficheiros CSS externos;
3) Dentro da tag de head definir uma região de estilo;
4) Inline no próprio elemento.

No caso de haver sobreposição de regras, a que tem mais prioridade é a 4), seguindo até à 1) que é a que tem menor prioritária. Mas pode-se querer alterar a prioridade por algum motivo, imagine-se que se quer que a regra aplicada ao nível da CSS se sobreponha à regra definida inline.

Regra inline: <h1 style="font-size:12px;">Texto de Teste</h1>

Regra CSS: h1{ font-size: 50px !important; }

O facto de colocar !important faz com que a regra ao nível do CSS se torne mais prioritária. Como última nota há a referir que este mecanismo não é suportado pelo antiga versão CSS1.

segunda-feira, dezembro 10, 2007

Importar dados do Excel com C#

Após muito procurar pela internet como fazer uma simples leitura dos dados num ficheiro excel, cheguei a uma solução que considero fácil de perceber. As soluções que encontrei passavam sempre por abrir uma conecção OleDb que eu queria evitar por achar que não deveria ser preciso tanto, achava (e bem) que conseguia através de objectos/métodos recolher a informação de determinadas células.

O primeiro coisa a fazer é adicional uma referência para a dll de COM com o nome "Microsoft Excel 11.0 Object Library". Depois, e ainda não percebi porquê, é necessário que os regional settings da máquina estejam iguais aos do Excel, se não levamos com a excepção "Old format or invalid type library".

O código é tão simples como o seguinte:
private static void ReadExcelInfo(string fullFilePath)
{
    //Get Excel interop object
    Application objExcel = new Application();

    //Validate object allocation
    if (objExcel == null)
    {
           return;
    }

    //Don't show Excel windows
    objExcel.Visible = false;

    //Open a connection to the excel file
    Workbook objWorkbook = objExcel.Workbooks.Open(fullFilePath, 0, true, 5,"", "",
                                             true, XlPlatform.xlWindows, "\t",
                                             false, false, 0, true,null,null);

    //Get sheets collection
    Sheets sheets = objWorkbook.Worksheets;

    //Get first sheet (like others interop objects the start index is 1)
    Worksheet objWorkSheet = (Worksheet) sheets.get_Item(1);

    //Get cell value from A1 to A3
      for (int i = 1; i <= 3; ++i)      
     {      
          string data = (string) objWorkSheet.get_Range("A"+i.ToString(), Missing.Value ).Text;
     }
    //Close the connection
    objWorkbook.Close(false,null,null);
}

quarta-feira, dezembro 05, 2007

Efeito fato e gravata

Nas últimas semanas fui obrigado a tirar o mofo e as traças dos fatos para os voltar a usar ao fim de 6 meses de descanso. Esta altura coincide com a época natalícia onde vou mais frequentemente às compras e é aqui que noto o que chamo "efeito fato e gravata".

A nossa sociedade é mesmo hipócrita e padronizada, se for às compras vestido como quando vou trabalhar as pessoas são simpáticas, ajudam de todas as maneiras que podem, no fundo tratamento VIP; se for vestido como gosto de andar normalmente (calças de fato de treino, t-shirt, ténis, etc) sou simplesmente mais um puto às compras e acabaram-se as simpatias. Eu sou a mesma pessoa estando vestido da maneira que estiver, continuo a ter o mesmo dinheiro para gastar, continuo a dirigir-me aos funcionários das lojas da mesma maneira.


terça-feira, dezembro 04, 2007

Creches para homens

O termo é algo infeliz e até depreciativo, mas o conceito é excelente. Os "inventores" deste conceito foram os nuestros hermanos e só espero que devido à proximidade geográfica e até cultural, este conceito se expanda rapidamente para o nosso país.

Quando um homem vai às compras o que acontece? Sabe o que quer comprar e dirige-se directamente à secção ou loja em causa, aqueles estratagemas de colocar os produtos alimentares no final da loja para passarmos por todos os artigos e mais algum antes de chegarmos ao que queremos, e assim ainda comprarmos algo que não queríamos inicialmente, não funciona com os homens. As mulheres ao contrário dos homens vêm um produto, vão a outra loja comparar, voltam à inicial e por vezes não levam nada do que inicialmente queriam mas vão cheias de compras que não estavam planeadas...e os maridos...andam o tempo todo a "reboque" das mulheres enquanto estas fazem as suas compras.

O conceito de creches para homens é ter um lugar nas lojas, tipo sala de entretenimento, onde os homens são "deixados" pelas mulheres enquanto estas fazem compras. Nessa sala os homens têm: sofás, revistas masculinas, televisões com canais desportivos, jornais e até vídeo consolas, ou seja, o paraíso dentro do inferno que é o centro comercial!

segunda-feira, dezembro 03, 2007

Beowulf

Se há filmes que têm de ser vistos no cinema este é um deles. Na minha opinião este filme vai ser considerado um marco no cinema, por dois motivos:
  1. A nível de animações foi claramente uns passos mais à frente, a caracterização das personagens é soberba, em certas alturas até nos perguntamos - "Será que aquele não é mesmo o Anthony Hopkins ou aquela não é a Angelina Jolie e aquele o John Malkovich?". Até detalhes como tiques físicos, reflexos na água ou movimentos dos cabelos estão espectacularmente realistas. Só não gostei muito do galopar dos cavalos, demasiado artificial, mas se calhar por o resto do filme estar a um nível tão bom esses pequenos "defeitos" fiquem mais realçados.
  2. É o primeiro filme com um 3D a sério que vejo, a noção de profundidade, aproximação da imagem transporta-nos para dentro do filme, uma sensação que creio só ser reproduzível num cinema.

Oh meu...vai-te catar

Mais irritante que comentários anónimos de pessoas com falta de coragem para se assumirem são comentários/SPAM como este:

"NADA A VER SEU COMENTARIO A RESPEITO DA GOTA Q CAI COMO SE ESTIVESSE PRESA A LENTE...

SUPERFICIAL SEU COMENTARIO...
SE QUISER SABER O PQ...ME MANDA UM E MAILL

FRED_SUPERIA@HOTMAIL.COM"

What the hell...Como alguém é tão estúpido ao ponto de escrever comentários destes, totalmente descontextualizados com o post em questão e esperar que eu os aceite ou que mande um mail de volta?Ai, ai, ai, há por aí muita gente sem nada de produtivo para fazer!

terça-feira, novembro 27, 2007

Custo do acesso à base de dados

Costumo dizer que aceder à base de dados é como ir às compras, mais vale ir uma vez e trazer o carrinho cheio do que ir 2 vezes e voltar a casa 2 vezes para trazer 2 produtos. Com isto quero dizer que mais vale fazer um acesso à base de dados e trazer um tuplo tamanho familiar, do que ir nem que sejam só duas vezes à base de dados para trazer 2 valores.

sexta-feira, novembro 23, 2007

5 Filmes e 3 Actores

Entrando na onda dos muitos bloggers que andam a apresentar os 5 filmes que mais gostaram aqui vai um post com os meus 5 filmes preferidos, mais o bónus dos meus 3 actores preferidos. Engraçado do meio disto é que os 5 filmes não têm a participação de nenhum dos 3 actores. Como vão poder reparar gosto imenso de filmes épicos. Não consigo colocar por uma ordem de preferência nem filmes nem actores por isso vou por por ordem cronológica. Em relação aos actores sem dúvida que estes 3 se destacam dos restantes, quanto aos filmes infelizmente tive de deixar muitos de fora.

Forrest Gump (1994)

Uma história uma pouco irreal em que a bondade infantil e inocente é recompensada com uma vida cheia de surpresas. Gosto do modo como o realizador transmite os sentimentos da personagem principal, as flutuações de infelicidade/felicidade e a maneira de encarar uma situação negativa sempre de um ponto de vista positivo. (8,4/10 pontuação IMDB).

Braveheart (1995)

O "nascimento" do país Escócia, assente numa coragem heróica de um homem que preferiu quebrar a vergar-se. (8,3/10 pontuação IMDB).

Saving Private Ryan (1998)

Um dos poucos filmes de guerra moderna que gosto. A história da vida de um homem que por uma série de circunstâncias passou a valer mais que a vida de um grupo de homens. Gosto especialmente do pedido que é feito ao Ryan no final da guerra - "Aproveita bem a tua vida de modo a que valha o mesmo que todas as vidas que foram perdidas para te salvar" - no fundo um pouco a minha filosofia de vida - "Aproveita ao máxima a vida pois ela é curta". (8,4/10 pontuação IMDB).

Gladiator (2000)

A honra de um homem que consegue mudar o destino de um império em decadência. O general que se tornou gladiador, o gladiador que desafiou o imperador, o imperador que caiu aos pés da justiça. (8,2/10 pontuação IMDB).

Troy (2004)

A história do lendário Aquiles e da queda da cidade de Tróia. Este é o filme em que pequenos actos mudam o rumo da história e desta vez o final não é feliz. (6,9/10 pontuação IMDB).

Sean Connery (1930)
  • 007 (vários)
  • Hilander
  • Indiana Jones and the last crusade
  • The hunte of Red October
  • Robin Hood: prince of thieves
  • Dragonhearth
  • The Rock
Jack Nicholson (1937)
  • One flew over the cuckoo's nest
  • The shining
  • The witches of Eastwick
  • Batman
  • Wolf
  • Anger management
  • The departed
Anthony Hopkins (1937)
  • The good father
  • The silence of the lambs
  • Dracula
  • Nixon
  • Meet Joe Black
  • Instinct
  • Hannibal
  • Bad Company
  • Alexander

O excepcional

O que é ser excepcional? É ser uma excepção à regra algo inesperado ou que foge a um padrão. Vou atribuir o título de Excepcional ao autor da pérola que vou mostrar em seguida e que deveria ser intitulada “Como NÃO utilizar as excepções”.
public void Caller()
{
...
AuthenticateApplication_(appName, appPasswd, out BoolAuthenticated);
if(!BoolAuthenticated)
{
 throw new Exception("Application Authentication is invalid!");
}
...
}

public int AuthenticateApplication_(string StrAppName, string StrAppPass, out bool BoolAuthenticated)
{
BoolAuthenticated = false;
...
try{
  ...
  if(result!= StrAppPass)
  {
    throw new Exception("Invalid Application Authentication! : " + result );
  }
  else
  {
    BoolAuthenticated = true;
  }
  ...
}
catch(Exception e){ 
}
}

quinta-feira, novembro 22, 2007

Evento Microsoft

Aqui fica a minha retrospectiva ao evento Microsoft de ontem.

Visual Studio 2008 e .NET Framework v3.5 o que há de novo?Podia ter sido melhorzinho, perdeu-se demasiado tempo a contextualizar com a Framework 2.0 e a fazer aqueles exemplos típicos de guiões MS. No fundo acabei por perceber que o 3.5 era uma simples união do 2.0 e o 3.0 numa única instalação.

O que há de novo no SQL Server 2008
Esta apresentação superou as minhas expectativas, se calhar por não estar tão a par dos desenvolvimentos do SQL 2008. Mas coisas novas e interessantes vão aparecer nesta versão, merge de tabelas (com algumas limitações a nível do merge entre estruturas diferentes, colunas a NULL ou com a existência de primary keys, mas de qualquer forma está dado o mote para novos desenvolvimentos), passagem de estruturas aos SP, novos tipos DateTime, etc.

O que é o LINQ?
Grande apresentação sem dúvida, mais uma ver o Luis Falcão esteve ao nível que já nos habituou. O LINQ é uma grande revolução no modo de encarar os dados e o seu tratamento, agora também não acredito que isto dentro de um ano esteja a ser utilizado em todo o lado e mais algum como foi dito, na minha opinião as empresas não gostam de mudanças (por isso algumas ainda andam a fazer desenvolvimentos em framework 1.1) por isso acho que isto vai pegar só quando sair o VS 2012 ou algo parecido.

Desenvolvimento de aplicações em utilizando Silverlight
Um bom orador que viu a sua apresentação ser constantemente "sabotada" por problemas técnicos. Contudo acho que a apresentação foi demasiado focado no resultado final e não como chegar a esse resultado final, deu para ver o potencial do Silverlight.

Serviços Live. Como criar aplicações utilizando os serviços Live
Quanto a esta apresentação não me posso pronunciar, não consegui assistir até ao fim pois valores mais altos se levantaram (PORTUGAL).