segunda-feira, dezembro 31, 2012

Retrospectiva de 2012

Não sou muito de retrospectivas, mas este ano acho que vale a pena pelo bom ano que foi. A lista está por ordem cronológica e não propriamente por ordem de importância, pois isso seria complicado para mim porque não consigo dizer o que foi mais ou menos importante.
  • Início do projecto Amway
  • Afinal consegui ter férias apesar do apêndice, excelentes dias passados em Armação de Pêra
  • 2ª participação no Survival com a magnífica equipa dos Malfeitores da Passarinha
  • Casamento da minha irmã

segunda-feira, dezembro 17, 2012

Estágio de Taekwondo 2012

Este ano, mais uma vez participei com muito prazer no estágio de Taekwondo da escola Mais TaeKwonDo. O pessoal é 5 estrelas e sinto-me integrado no grupo como se fosse praticante e treinasse com eles todas as semanas. 

Uma novidade deste ano foi a carrinha da viagem, o Paulo desencantou uma carrinha de 9 lugares para irmos todos juntos o que fez com que a viagem fosse muito mais animada, além disso e como podem ver pela fotografia, a carrinha foi motivo de risota durante toda a viagem.


Este estágio foi bastante diferente do ano anterior, muito menos físico e muito mais em comunhão com a natureza. Paisagens fenomenais no meio dos bosques ao redor do Buçaco, com um tempo enublado que deu um ambiente muito mais épico a toda aquela natureza. Por nossa grande sorte não choveu nada durante toda a tarde, sempre a ameaçar mas tínhamos o S. Pedro do nosso lado desta vez.


Para terminar o estágio na manhã de domingo ainda treinámos algumas defesas pessoais o que para uma pessoa sem experiência nenhuma é sempre mega divertido, e é como ensinar a uma criança a unir as peças de um puzzle, era assim que eu me sentia.

Uma palavra ainda para as apresentações que o Paulo fez sobre a história do Taekwondo, poderia-se dizer que para mim não me interessaria nada, mas bem pelo contrário, para mim foi aprender um pouco com a história dos outros, e como diz o provérbio: "Aprende com o teu passado e serás inteligente, aprende com o passado dos outros e serás sábio".

segunda-feira, dezembro 10, 2012

Relações Many-to-Many em JPA

Apesar de não serem muito comuns há situações onde é necessário utilizar relações many-to-many. Se a nível da BD existe uma tabela intermédia que promove a relação entre outras duas tabelas, a nível de objectos (classes), apenas vão existir 2 em que cada um delas tem uma lista da outra.

Imaginando que temos uma tabela de federateds e uma tabela de scores, em que um federated tem vários scores mas que um score também pode pertencer a vários federateds quando estes formam uma equipa num determinado evento.

Como se pode ver a nível de BD a tabela federated_score promove a relação entre as duas tabelas que realmente interessam a federated e a scores. Agora a nível de código como fica implementando em JPA:

@Entity
@Table(name = "scores")
public class Score {
[...]
    @ManyToMany
    @JoinTable(name="federated_score",
       joinColumns=@JoinColumn(name="score_id", referencedColumnName="id"),
       inverseJoinColumns=@JoinColumn(name="federation_code", 
       referencedColumnName="federation_code")
    )
    private Collection<Federated> federateds;
[...]
}

@Entity
@Table(name = "federateds")
public class Federated {
[...]
    @ManyToMany
    @JoinTable(name="federated_score",
       joinColumns=@JoinColumn(name="federation_code", referencedColumnName="federation_code"),
       inverseJoinColumns=@JoinColumn(name="score_id",  referencedColumnName="id")
     )
     private Collection<Score> scores;
[...]
}


segunda-feira, dezembro 03, 2012

Power Metal - As minhas 88 eleitas

Os meus amigos mais próximos sabem o meu gosto pelo Power Metal, mas a maior parte deles acha que simplesmente é uma música barulhenta, do 'demo', com arranhadelas nas cordas de uma guitarra e por aí fora...

Por outro lado tenho amigos que me acompanham em alguns concertos e que falamos sobre música, que vão dizer que eu sou um menino, que esta música que compilei é muito levezinha. Mas no fundo estas são as 88 músicas que até agora representam para mim o que é o Power Metal, são as músicas que me acompanham no trabalho, são as músicas que me deixam numa 'boa onda'.

quarta-feira, novembro 21, 2012

Factura da água

Realmente olhar para uma factura da água com olhos de ver é algo que tem de deixar qualquer um revoltado. Vejamos, a última factura que me chegou para pagar é cerca de 28.5€, desse valor pago 1.88€ referentes a 2 metros cúbicos de consumo de água, todo o valor restante é para taxa de disponibilidade, taxa de saneamento e mais umas quantas taxas de não sei do que, e em cima disto tudo ainda vem o belo do IVA.

Isto é a mesma coisa que irmos a um restaurante e dizerem o custo da sua refeição é 5€, mais 80€ de taxa de estamos abertos para si, mais 20€ de taxa de gorjeta, mais 10€ de taxa de disponibilidade do WC, e no topo disto tudo ainda levas com o IVA.

segunda-feira, novembro 12, 2012

Subtracção de datas em Java

Para quem vem do C#, e não trabalhava em Java mais a sério já há uns anos, existem coisas que me irritam pela complexidade desnecessária e pouca versatilidade que têm.

Um exemplo disso é a subtracção de datas, algo que em C# faria numa linha aqui tenho de ter meia dúzia de linhas para o fazer. Vejamos uma função que retorna a diferença de anos de uma data qualquer para a data corrente.

public int SubYears(Date data){
                int currentYear = Calendar.getInstance().get(Calendar.YEAR);
                Calendar c = Calendar.getInstance();
                c.setTime(data);
                int yearBirth = c.get(Calendar.YEAR);
               return currentYear - yearBirth;
}

É só a mim ou isto parecem demasiadas 'cambalhotas' para fazer uma coisa tão simples?

segunda-feira, outubro 29, 2012

País por um canudo

Ontem tive a ver a grande reportagem da SIC sobre o desemprego nos licenciados, após quase 2 anos de eu também já ter escrito sobre o assunto, parece que as reportagens continuam a ser sensacionalistas e não tentam analisar devidamente os dados para perceber o porque do desemprego nos licenciados.

Acrescentando ao que eu já escrevi, para mim o desemprego nos licenciados tem fundamentalmente dois culpados, 1º as pessoas que escolhem ir para cursos fáceis que não têm mercado, lei da oferta e da procura (devo frisar que retiro daqui enfermeiros por exemplo, que são obrigados a emigrar apesar da dificuldade do curso e do alto nível de especialização que têm), 2º os nossos governantes, eleitos por nós, que possibilitam a proliferação destes cursos da tanga para depois poderem dizer que as estatísticas indicam que somos um país altamente educado e com formação superior.

Outro factor que começo a notar na minha área, e provavelmente acontece nas outras, é que os novos licenciados quando procuram emprego na área cada vez pedem ordenados mais baixos, achando assim que se tornam mais competitivos. Totalmente errado, e eu sei isso porque na minha empresa sou uma das pessoas responsáveis por fazer entrevistas a novos candidatos, o factor de competitividade só pode ser dado pela excelência do trabalho executado. As empresas de software quando querem trabalho de qualidade duvidosa, a muito baixo custo contratam indianos. Mas depois tem de estar alguém aqui para apagar os fogos, e esse alguém só podem ser os trabalhadores que se quiserem distinguir dos outros pela qualidade do seu trabalho.

segunda-feira, outubro 15, 2012

Pavia 200

Foi a primeira vez que participei num evento dos Randonneurs e tenho que em primeiro lugar elogiar a simpatia e boa disposição de toda a organização. Quanto à prova em sim, foi dura, muito dura, acho que nunca tinha sofrido numa prova durante tanto tempo, posso dizer que metade da prova foi feita mesmo em piloto automático tentando esquecer as dores e desconforto.

Comecemos pelo princípio, eu com a minha bicicleta de BTT com pneus finos pensei que não estava em grande desvantagem em relação aos meus amigos que iam com bicicleta de estrada, tentei sempre manter o ritmo vivo sem me desgastar muito (pensava eu) para não empatar os meus 2 companheiros de viagem. Por volta das duas horas de prova já tínhamos percorrido 60kms do total de 215km, o ritmo era bom, aliás bom demais, o meu objectivo era fazer 20-25km/h. O Pre ao aperceber-se do ritmo demasiado forte até pediu para pararmos um pouco propositadamente para me obrigar a descansar.

Por volta do quilómetro 80 apanhámos a primeira subida mais a sério e aí apercebi-me do meu mau estado, as coxas começaram a ficar cheias de ácido láctico provocando-me dores constantes. Ao chegar a Pavia ainda íamos com uma boa média, cerca de 4h para percorrer 102kms. Em Pavia estive 15 minutos com as pernas para o ar o que aliviou bastante, as dores passaram e os músculos ficaram mais relaxados.


Consegui fazer mais 40 quilómetros sem grandes dores mas elas estavam de volta e ainda faltavam 75 quilómetros para o fim. Cheguei a pensar que não ia conseguir concluir pois a cada pedalada parecia que estavam a prensar as minhas coxas, se não fosse o Pre e o Guilherme aos quais peço desculpa por  os ter atrasado e agradeço a força que me deram, teria muitas dificuldades em concluir e demoraria muito mais tempo.

No final foram pouco mais de 10 horas de tempo gasto, muito perto das minhas melhores expectativas antes de começar a prova. As próximas provas que participar deste tipo, e são todas com distâncias ainda maiores, tenho de reformular a estratégia, arranjar uma bicicleta de estrada ou controlar melhor o ritmo inicial não me deixando ir em loucuras e ingerir mais sais de forma a minimizar os efeitos do ácido láctico. Fica aqui um pequeno vídeo da prova:

sexta-feira, outubro 12, 2012

Survival VII - Prova 4

Passadas 2h30m de nos termos deitado já nos estavam a bater à tenda para uma nova prova. Devo dizer que ponderámos como equipa não fazer a última prova, depois de tudo o que se tinha passado na última prova, aliado ao facto de termos sido a última equipa a chegar ao campismo e haverem equipas que dormiram quase a noite toda e nós nem tivemos o mínimo descanso necessário.

Lá arrumámos tudo à pressa para não falharmos o horário, desmontamos as tendas e tudo para dentro do carro amontoado. Depois de 1h de atraso por parte da organização em relação ao tempo em que tínhamos de ter tudo arrumado, lá nos dirigimos de carro (alguma ideia boa finalmente em vez de irmos a pé durante quilómetros) até ao local da última prova.

Começámos logo por ser penalizados de 2 maneiras, 1º o Jorginho não conseguiu recuperar do esforço das provas anteriores e cheio de bolhas nos pés não nos podia acompanhar na última prova, 2º como tínhamos arrumado tudo à pressa a t-shirt toda suja do Survival, devido a já ter sido usada nas provas anteriores, estava arrumada já juntamente com a roupa suja, logo não podíamos por o 'equipamento oficial', penalização por falta de equipamento. É pá usar a mesma t-shirt suja, molhada e suada durante 3 dias não me parece que seja razoável, mas pronto é a minha opinião...

Esta prova acabou por nos correr na perfeição, como não tínhamos nada a perder decidimos arriscar, tínhamos de passar por 4 pontos, 2 deles distantes e 2 ao pé do final. Fomos primeiro para os distantes e entre eles a decisão foi atalhar com algum risco pelo meio do mato em vez de andarmos pela estrada que era muito mais longe. O risco foi controlado sim, porque estávamos num planalto e tínhamos em linha de vista o ponto seguinte, conseguíamos ver mais ou menos o que nos esperava. Ainda tivemos de passar no meio de arame farpado, cardos, silvas e mato, mas compensou conseguimos ultrapassar 2 equipas neste atalho e cansámos-nos menos.


Em cada um dos pontos tínhamos de fazer uma prova de team building que acabou por nos correr melhor que o esperado, conseguimos ser extremamente rápidos em todas as provas.

Infelizmente o meu GPS morreu já perto do final, mas devemos ter feito cerca de 10km nesta prova, o que pelo meus cálculos devemos ter poupado mais ou menos 1,5-2km com os nossos atalhanços.

Contas finais acabámos por ser extremamente penalizados na prova 3 e apesar da nossa argumentação a organização não nos quis tirar a penalização de tempo a mais, quanto a nós por erros deles e não nosso. A justificação é que todas as equipas foram prejudicadas com os erros, verdade, mas umas foram mais que outras porque demoraram mais tempo a perceber dos erros aos quais eram alheias. Acho que não quiseram tirar a penalização pois mexeria radicalmente na classificação final, mas isso não posso eu dizer...

Detesto vitórias morais e apesar de achar que os Malfeitores da Passarinha estiveram muito bem não me contento com a vitória moral e podem achar que estou a dizer isto por haver um prémio de 500€ para a equipa vencedora, longe disso, aliás até acho que a existência de prémio monetário vai contra a ideologia do Survival, tornando a competição entre equipas menos salutar. A minha sugestão era mesmo que deixasse de existir prémio monetário e que o valor das inscrições baixasse, assim beneficiariam todos e seria mais fácil terem mais inscrições o que significaria mais competitividade e ao mesmo tempo acredito que existiria uma maior camaradagem entre equipas.

Gostei da atitude da organização quando nos despedimos, foram simpáticos e admitiram os erros e fundamentalmente por isso não descarto na totalidade uma nova participação no Survival. Contudo só voltarei a participar com a equipa Malfeitores da Passarinha e acho que nenhum dos outros elementos da equipa tem vontade de voltar a participar devido a estes erros e não terem sido corrigidos como nós achávamos que era justo. Em todo o caso se não participar como equipa, deixo já aqui a minha disponibilidade para ajudar a organização no próximo evento no que eu puder para tentar que estes erros não se repitam. Devo ainda dizer que os erros que achei que o Survival VI teve foram corrigidos neste Survival, por isso tenho esperança que os erros do Survival VII não aconteçam no Survival VIII. Fica aqui um pequeno vídeo da participação dos Malfeitores da Passarinha neste Survival.

Survival VII - Prova 3

Depois de termos terminado o Quebra Ossos às 17h estava a contar ter algumas horas de descanso...correcto, o conceito de 'algumas horas' é que não foram tantas como estava à espera e por volta das 22h recebíamos mais uma prova, a prova 3 o Mastermind.

Esta prova começou logo de um modo chato e parvo, andar 4km pela estrada só para chegar ao primeiro marcador...que grande seca ainda por cima com o cansaço acumulado. De seguida um ponto mal marcado pela organização que nos fez andar às voltas durante quase 1h. Com isto tudo já tínhamos gasto mais de 2h numa prova que tinha o tempo máximo de 5h para a concluir. Finalmente encontrámos o ponto, uma casa assombrada onde encontrámos 2 números: um 6 e um 7, não sabíamos mas estes números viriam a ser importantes.

De seguida seguimos até à margem do rio onde 2 de nós tinham de atravessar o rio de kayak para fazer a prova do outro lado. Como estava com algum frio e ainda alguma energia fui eu e o Neto a remar para o outro lado. Do outro lado estavam 2 elementos da organização que só nos diziam password. Eu e o Neto já passados com tudo, pelos pontos mal marcados pela organização, pelo cansaço acumulado, pelo frio (um obrigado a um dos elementos da organização que me emprestou um casaco naquela situação) e depois de tentativas falhadas de acertar na password, dissemos que preferíamos ser penalizados mas voltar para o outro lado para junto da equipa e continuarmos porque estávamos sem imaginação para mais.

Fomos aconselhados a continuar a tentar, o que relutantemente aceitámos. Fartámos-nos de olhar para a porcaria de uma folha que nos tinham dado com a descodificação de código Morse para alfabeto, até que levantei o raio da cabeça do papel e reparei que do outro lado da margem estava uma luz a piscar...bingo era a nossa password a ser transmitida pelos restantes elementos da equipa que tinham ficado na outra margem. Pensando bem agora à posteriori, era óbvio que tinha de ser algo do género, o Survival é um jogo de equipa, não fazia sentido haver uma prova que só 2 elementos da equipa participavam. No fim da prova foi-nos dado o número 9 e mais 2 coordenadas.


Na primeira coordenada encontrámos parte de uma nova coordenada, percebemos logo que a segunda coordenada nos iria dar o que restava da nova coordenada. O problema é que a segunda coordenada estava novamente mal marcada pela organização. Mais um tempão perdido até que um elemento da organização apareceu para esclarecer o problema, neste momento já eram 3h30m e já estávamos totalmente fora de horário, graças aos pontos mal marcados e à nossa insistência em sermos perfeccionistas e irmos exactamente onde estavam os pontos marcados no mapa e só chamar a organização em último caso.

Achado o marcador e a restante parte da coordenada lá fomos para o ponto da nova coordenada. Esta prova tinha uma premissa, tínhamos de ser subtis e não nos podíamos deixar fotografar por elementos da organização que se fizessem passar por sentinelas. Quando chegámos ao ponto da coordenada aí estavam os fotógrafos/sentinelas. Nem nos preocupamos em esconder ou fugir, a frustração e cansaço eram tantos que só queríamos chegar ao último ponto e regressar à tenda. 1001 fotos depois encontrámos um cadeado de 3 dígitos que tínhamos de abrir. Claro que os dígitos 6, 7 e 9 que tínhamos apanhado nas provas anteriores eram a resposta só os tínhamos de ordenar correctamente.


Lá abrimos o cadeado e agora era a longa volta para o campismo, mais uma viagem parva de 6 longos quilómetros sem sentido nenhum entre o ponto da última prova até ao campismo. Nesta altura já o Jorginho estava com os pés cheios de bolhas o que ainda ajudou a atrasar o ritmo. Eram 5h30m e finalmente chegámos ao parque de campismo, cansados e super chateados pelo tempo que perdemos nos pontos mal marcados pela organização. Fica aqui o track GPS desta prova: