sexta-feira, dezembro 31, 2010

S. Silvestre da Amadora

O último post deste ano vai coincidir com o meu último desafio deste ano, a corrida de S. Silvestre da Amadora. Vai se a primeira vez que antes de uma passagem de ano vou fazer uma S. Silvestre, e prevejo que depois de 10km a correr, eu não me vá encontrar nas minhas perfeitas capacidades para passar a noite toda a 100 à hora.

Quanto ao resultado da prova em si não estou à espera de conseguir bater o meu tempo da corrida do Tejo, esta semana tive treinos duros todos os dias e já vou um bocado "moído" para a prova, para não falar que não conheço o percurso e que o tempo tem estado horrível, a humidade não me favorece nada. A ideia é cumprir os mínimos e acabar a prova em menos de 50 minutos o que vier por acréscimo será bom.

domingo, dezembro 26, 2010

Programação da noite de natal

A única coisa que posso dizer é que quero que todas as noites sejam noite de natal para os canais portugueses, nada de telenovelas só filmes com alguns filmes de animação bem engraçados e que possibilitam um programa que é efectivamente para toda a famílias, desde as crianças até aos avós.

quinta-feira, dezembro 23, 2010

XL Party - FIL

No fim-de-semana passado estive na FIL na XL Party a promover o Orion's Belt. O resultado foi um pequeno acréscimo do número de jogadores, mas o mais importante ainda foi receber opiniões novas e perceber as dificuldades de quem entra no jogo pela primeira vez.

Uma coisa percebi claramente e é algo que temos debatido dentro da equipa, o jogo tem de ser muito mais interactivo, o primeiro impacto tem de ser melhorado as coisas têm de se desenvolver mais rapidamente, possibilitando aos jogadores numa primeira aproximação ter diversas tarefas a fazer, nunca estando à espera que algo aconteça para poderem desenvolver a próxima acção.


quinta-feira, dezembro 16, 2010

Amortizar e calcular a nova prestação

Muitas vezes falo com amigos meus sobre o assunto crédito habitação e sobre as amortizações. Apesar de não sermos consensuais quanto a ser bom amortizar ou não, eu sou um defensor das amortizações, mas não vou entrar agora nessa discussão. O objectivo deste post é mesmo demonstrar os cálculos feitos para obter a antiga e nova prestação, para isso vou usar como exemplo números redondos para simplificar os cálculos, contudo são valores perto da realidade.Imaginando o seguinte cenário:

Empréstimo de 100.000€, prazo de 30 anos (360 meses), spread de 0,8% e euribor a 1,2%, temos a pagar mensalmente:

Juros= (0,8% + 1,2%) * 100000 / 12 = 166,67€
Amortização = 100000 / 360 = 277,78€
Total = 444,45€

Imaginando agora que se faz uma amortização de 5000€ vamos refazer as contas:

Juros= (0,8% + 1,2%) * 95000 / 12 = 158,33€
Amortização = 95000 / 360 = 263,89€
Total = 422,22€

E quanto isto representa em poupança de juros ao longo dos 360 meses de prestações que faltam? Aqui fica a resposta

Poupança = (444,45 - 422,22) * 360 -5000 = 3002,3€

E este valor é obtido através de uma euribor simpática de 1,2%, agora se a euribor chegar por exemplo a um valor de 3,2% que é um valor expectável, refazendo as contas a poupança alcança os 6000€ ao final dos 360 meses. Agora voltando um pouco a discussão de se vale a pena amortizar ou não, não vale a pena amortizar se em 360 meses se conseguir com 5000€ obter um retorno superior a 6000€.

terça-feira, dezembro 14, 2010

Eval para C#

Por acaso nunca tinha precisado de avaliar uma string em C# para calcular o valor numérico dela, e fiquei surpreendido quando me apercebi que o C# não tinha de framework uma função equivalente ao Eval do javascript. Como a minha necessidade era só para contas simples somas, multiplicações, etc resolvi perguntar ao meu amigo Google se ele tinha alguma coisa que me resolvesse o meu problema.

Apesar de não ter encontrado nenhum código facilmente 'digerível' em meia dúzia de minutos e que não fosse uma black-box, encontrei um código que sabia fazer umas continhas, mas só funcionava para números com um dígito e para ter noção de precedência tinham que forçosamente serem colocados parêntesis. Após alterar esse código cheguei ao seguinte resultado:
public static double Evaluate(String input){
String expr = input.Substring(0, 1) == "(" ? input : "(" + input + ")";
expr = expr.Replace("+", ")+(");
expr = expr.Replace("-", ")-(");
Stack<string> ops = new Stack<string>();
Stack<double> vals = new Stack<double>();
  for (int i = 0; i < expr.Length; ++i){
    String s = expr.Substring(i, 1);
    if (s.Equals("(")) { }
    else if (s.Equals("+")) ops.Push(s);
    else if (s.Equals("-")) ops.Push(s);
    else if (s.Equals("*")) ops.Push(s);
    else if (s.Equals("/")) ops.Push(s);
    else if (s.Equals(")")){
      int count = ops.Count;
      while (count > 0){
        String op = ops.Pop();
        double v = vals.Pop();
        if (op.Equals("+")) v = vals.Pop() + v;
        else if (op.Equals("-")) v = vals.Pop() - v;
        else if (op.Equals("*")) v = vals.Pop() * v;
        else if (op.Equals("/")) v = vals.Pop() / v;
        vals.Push(v);
        count--;
      }
    }else{
      int idx = expr.IndexOfAny(new char[] { '+', '-', '/', '*', ')' }, i);
      vals.Push(Double.Parse(expr.Substring(i, idx - i)));
      i += (idx - i - 1);
    }
  }
  return vals.Pop();
}

segunda-feira, dezembro 13, 2010

Patinagem no gelo

A semana passada aproveitei para dar uma voltinha maior e resolvi ir a Elvas experimentar a pista de gelo. Como nunca tinha experimentado estava a confiar nas minhas fracas capacidades de patins em linha, mas mal ponho o patim no gelo percebi que não ia ser a mesma coisa. Os patins começaram logo a mexer-se por todo o lado como se tivessem vontade própria. Mas homem que é homem não anda agarrado ao bordo lateral, vamos mas é lá para o centro.

Devo dizer que a primeira volta deve ter sido feita tão rápida como se fosse uma tartaruga, mas a coisa lá foi melhorando e apesar de ter posto as mãos no chão uma meia dúzia de vezes não dei nenhum trambolhão também conhecido por 'bate cu'. Realmente o problema ali é a aderência, ou falta dela, enquanto era a direito tudo bem, quando era para curvar ai estava a dificuldade, curva...curva...curva e o corpo parecia que não mudava de direcção, outras vezes a curva saía tão bem que entrava em peão.

Outra coisa engraçada foi a temperatura, quem já tinha ido avisou-me para levar casaco que aquilo era frio e pelo senso comum gelo igual a frio eu confiei. Efectivamente antes de entrar na pista dá jeito, passados 5 minutos o que apetece é estar em t-shirt pois suava tanto que parecia manteiga a derreter no Verão. Conclusão, é uma modalidade que vale a pena experimentar por ser diferente e bastante divertida, com amigos que sejam patinadores nabos também já agora, assim dá para fazer competições do género quem aguenta mais tempo só tendo os patins em contacto com o chão e mais nenhuma parte do corpo.

sexta-feira, dezembro 10, 2010

Spartacus: sangue e areia

Esta série que conheci por portas e travessas, tenho de dizer que é a melhor série que vi nos últimos tempos e entra para o meu pódio das melhores séries juntamente com o 24 e o Prison Break. O título original da série é Spartacus: Blood and Sand, e como é expectável conta a história de Spartacus de uma forma mais ou menos verídica.

Claro que não é uma série que possa dar em horário nobre devido à imensa violência e cenas de sexo, mas é com grande estranheza que não a vejo publicitada ou falada em vários meios, nem que seja na própria internet, quando acabo por ver séries medíocres como o Walking Dead ter um destaque brutal, inclusive em telejornais portugueses quando a série nem é emitida em Portugal.

Pelo que sei a season 2 do Spartacus encontra-se em risco devido ao actor principal (Andy Whitfield) que representa o papel de Spartacus ter um linfoma, mas com pena minha tenho de dizer "The show must go on", arranjem um actor parecido, façam tratamento por computador, qualquer coisa, mas não deixem esta excelente série morrer.