sexta-feira, agosto 30, 2013

Configurações do SQL Management Studio

Existem 2 coisas que costumo alterar nas configurações base do SQL Management Studio, ambas para me simplificarem a vida, mas é importante saber também as consequências que trazem.

A primeira alteração tem a ver com uma mensagem de erro que aparece com alguma frequência: "Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can't be re-created or enabled the optin Prevent saving changes that require the table to be re-created."

Uma maneira de contornar este erro é exactamente como diz a mensagem desactivar a opção de Prevent saving changes. Para fazer isso basta ir a Tools->Options...->Designers->Tables and Database Designers, e dentro deste menu desactivar a opção Prevent saving changes that require table re-creation. Se desactivar esta opção é ideal quando estamos na fase de estruturação da base de dados, a desenhar as tabelas e relações para a nossa aplicação, temos de ter consciência das suas implicações. Ao desactivar esta opção as tabelas vão ser recreadas sem que haja nenhum aviso ou alerta, e se elas tiverem dados estes vão-se perder.

A segunda alteração nem sempre a faço, só quando estou mais calão e não me apetece fazer updates através de statements e prefiro fazer alterações visualmente no designer, trata-se da opção Edit Top 200 Rows. Imaginemos que tenho uma tabela com 2000 registos e quero editar alguns deles, então o que me dava jeito era ter Edit Top 2000 Rows. Para fazer isso é necessário alterar a configuração  Tools->Options...->SQL Server Object Explorer->Commands, e colocar, por exemplo o valor 2000, na opção Value for Edit Top Rows command. No caso de se querer editar todas as linhas, colocar o valor 0, e aí independentemente do número de tuplos que a tabela tenha será possível editar todos. É preciso também saber que quanto mas linhas tiverem a opção de serem editadas pior será o desempenho e maior carga estaremos a fazer na máquina.


segunda-feira, agosto 26, 2013

Fim de semana em Madrid

Este fim-de-semana fiz uma viagem relâmpago a Madrid com dois objectivos, primeiro ir ao congresso da Amway no Hotel Auditorium e segundo aproveitando a viagem conhecer um pouco Madrid.

Quanto ao congresso foi espectacular, aprendi uma série de coisas novas, de pessoas com muito sucesso no negócio da Amway, que de certeza me serão úteis para poder evoluir o meu negócio. Sem dúvida que é um evento grandioso, o grand slam anual para a península ibérica, que só estando presente para perceber toda a dimensão do projecto Amway.


Apesar do evento da Amway ser extenuante, consegui arranjar 3 horas em cada dia para conhecer Madrid, e apesar de parecer pouco tempo, com alguma disciplina e orientação dá para ver muita coisa. A linha de metro é imensa e funciona muito bem, e para quem está habituado ao metro de Lisboa não é nada surpreendente. Evitar os taxis, são bastante caros apesar de me ter sido dito que Madrid é das províncias onde os taxis são mais baratos, que se formos para Barcelona, Bilbao ou Pamplona então são muito mais caros.


Uma coisa boa em Madrid é que apesar dos transportes e comidas serem mais caros, a entrada em museus ou edifícios de interesse turístico é muitas vezes gratuita e quando não o é, por norma é bastante mais barato que em Portugal. Toda a parte da cidade que visitei tem uma grande beleza arquitectónica, passeando pelas ruas conseguem-se ver vários estilos arquitectónicos, misturando um estilo moderno com um estilo clássico. Outra coisa boa é que apesar de Madrid ser uma cidade enorme, existem uma série de pontos de interesse concentrados em poucos quilómetros, logo facilmente e em pouco tempo se consegue percorrer vários locais.

No sábado consegui percorrer: Gran Vía (uma avenida tipicamente comercial), Plaza de España, Monumento a Cervantes, Templo de Debod (infelizmente só por fora, a entrada era gratuita e estava imensa gente para entrar, e com o calor e falta de tempo decidi que não valia a pena estar à espera para ver um templo aparentemente pequeno), Jardines Sabatini, Teatro Real (por fora não pareceu nada extraordinário), exterior do Palacio Real, Catedral de la Almudela (com umas portas belíssimas e com uma estátua do papa João Paulo II), Plaza de la Villa, Plaza Mayor, Palacio Santa Cruz e a Puerta del Sol (apesar de não ser nada do outro mundo é o símbolo da cidade). 

Já no domingo fui para a parte oriental: Fuente de Cibeles, exterior do Palacio de Cibeles, Museo Naval (já estava fechado à hora que passei), Fuente de Neptuno, Museu Nacional del Prado (só este museu levaria meio dia a visitar devidamente, estive 1 hora no interior e tive a sensação que só aproveitei 20% do que as exposições me podiam dar), Iglesia de Los Jerónimos, Puerta de Alcalá e o fabuloso Parque del Retiro, tendo no seu interior uma série de monumentos destacando o Palacio de Cristal, o Palacio de Velázquez (com uma exposição muito alternativa) e o espectacular Monumento Alfonso XII.


Foi um fim-de-semana a alta rotação sim, mas é algo que estou a pensar em repetir por outros destinos europeus, se formos a ver bem é uma viagem que me fica mais barata do que se for ao Gerês e demoro menos tempo para grande parte da Europa que demoro quando vou para o Algarve.

quinta-feira, agosto 22, 2013

Cascais-Constância de bicicleta

Quando me convidaram para ir fazer canoagem a Constância, lembrei-me logo da viagem nocturna de bicicleta que tinha feito à cerca de 1 ano de Vialonga a Castelo de Bode. Devo dizer que gosto imenso de andar de bicicleta à noite, logo, não podia perder esta oportunidade e desafiei o Tiago Neto e o Pre. Infelizmente o Neto não quis ir, então reeditei a dupla de sucesso com o Pre que já tinha feito a viagem a Santiago de Compostela.

Apesar de andar com muitos amigos de bicicleta, e de gostar de andar com todos, tenho de admitir que o meu gémeo na bicicleta é o Pre, é a pessoa com quem gosto mais de fazer viagens de bicicleta, tem um ritmo muito similar ao meu e acaba sempre por haver uma ajuda mutua ao longo de todo o percurso, não sentido que sou um estorvo para ele, nem que ele é um empecilho para mim.

A viagem começou com muito trânsito à 1 da manhã (como se pode ver no vídeo)! Junto ao Jamor apanhei o Pre e daí até ao parque das nações ainda apanhámos alguns carros, era a noite de 6ª para sábado e isso explica algo. A primeira paragem foi em Vila Franca, desde a saída que apanhámos uma nortada forte, que nos acompanharia de um modo cansativo durante toda a a viagem e que nos cansou mais do que qualquer outra coisa.

A seguir a passarmos a ponte foram mais de 20km num breu total, só as luzes da bicicleta se viam. Já em Salvaterra de Magos parámos numa rulote, onde a nossa fome era tanta, ou ali é o local onde se fazem as melhores bifanas que já comi. Ao sairmos de Almeirim depois da 3ª paragem começa o dia a nascer, a luz do sol soube bem mas ao mesmo tempo parecia que estava a provocar sono, não era para menos tínhamos pedalado a noite toda.

Daí até ao fim tenho de admitir que não estava muito confortável, já não conseguia ignorar as dores no rabo, e as dorsais voltavam a doer-me provavelmente ainda não restabelecidas do esforço que foi subir a Serra da Estrela. Chegámos a Constância por volta das 8:30, tínhamos 1:30 para tomar o pequeno almoço e prepararmos-nos para uma manhã de canoagem, onde teríamos de remar cerca de 10km. Foi uma viagem muito boa, tudo correu bem e foi divertido, tirando a parte do vento frontal bastante chato, mas é para repetir hajam malucos para me acompanhar.

terça-feira, agosto 20, 2013

Create e Update utilizando Integration Services

Uma funcionalidade comum quando se utilizam os Integration Services é a copia de informação de uma tabela para outra. Acontece que o habitual é existir algo que me controle a importação de informação (tabela auxiliar, coluna da tabela a importar, contador, identity, etc), e que me permita saber a partir de que linha preciso retomar a importação pois as anteriores já foram importadas.

Agora existe um problema, como vou lidar com as linhas que já importei previamente, mas que têm valores modificados na tabela de origem? A resolução tradicional para este problema, e que pode ser encontrada em vários posts é a seguinte:
Vamos obter as linhas da tabela base, fazemos um lookup para verificar se a tabela destino já contem a linha, e decidimos então se a linha é para inserir ou para actualizar. Isto acaba por não ser muito penalizador se estivermos a falar de 10.000, 20.000, 50.000 ou até 100.000 linhas, o problema é quando começamos a falar de centenas de milhares de linhas ou mais. 

Enquanto que o processo de inserção funciona com bulks, ou seja, são inseridos blocos de linhas, no caso da caixa marcada a vermelho na imagem anterior as actualizações, estas são feitas uma a uma, o que permitirá inserir valores a rondar as 500-600 linhas por minuto. Já se começa a perceber o problema desta solução, então o objectivo é eliminar o update e substitui-lo por algo diferente.

Então cheguei à solução seguinte, que tem um desempenho muito, mas muito superior:

A alteração principal é a utilização de uma tabela auxiliar que é exactamente igual à tabela principal e agora o processo é extremamente simples.
1) Copiar todas as linhas sejam novas, sejam para actualizar, para a tabela auxiliar
2) Eliminar todas as linhas da tabela principal (utilizando as suas keys), que iriam ser alvo de actualizações
3) Copiar todas as linhas da tabela auxiliar para a tabela principal
4) Apagar todas as linhas da tabela auxiliar, deixando-a pronta para uma nova execução.

quinta-feira, agosto 15, 2013

Arco de Luz

Devo dizer que não estava com muita vontade de ir ver os espectáculo Arco de Luz, que consiste numa projecção de luzes sobre o Arco da Rua Augusta e respectivas arcadas. Isto foi o que me disseram, mas o espectáculo é muito mais que uma simples projecção de luzes, e acabei por gostar tanto que o vi por uma segunda vez. 

Até dia 18 o Arco de Luz repete-se pelas 21:30, 22:30 e 23:30 e quem puder ir é algo que vale muito a pena. O espectáculo conta a história do Arco da Rua Augusta, das personagens que o constituem e consequentemente de parte da história de Portugal. Deixo aqui um vídeo de passagens do espectáculo.

terça-feira, agosto 13, 2013

Subida à Torre de bicicleta

Fazer a subida à Torre de bicicleta era uma das coisas que estava na minha bucket list e este fim-de-semana consegui cumprir esse objectivo. Decidimos aproveitar a viagem até ao Fundão, e o Tiago Neto lançou-me esse desafio como era óbvio não podia recusar.

Infelizmente o dia previa-se abrasador, como se veio a confirmar, mas não tínhamos muita escolha por isso fizemos-nos à estrada mesmo prevendo temperaturas a roçar os 40ºC. A primeira parte até chegar à Covilhã serviu como aquecimento, fomos calmamente fazendo quilómetros só para habituar o corpo ao esforço que aí vinha. Quando analisei a altimetria esta parte inicial quase que me parecia plana, não podia estar mais enganado, era um sobe e desce constante, o problema é que devido à subida da Torre a escala era tão grande que parecia que aquela parte inicial, que viria a ser o final também, era quase plana.

A primeira subida mais a sério começou à entrada da Covilhã, umas rampas nada simpáticas, com um empedrado péssimo que fazia ressaltar a bicicleta por todo o lado. Parámos frente à câmara da Covilhã para tirar umas fotos e a partir daí seria sem parar até à Torre, estávamos mais ao menos a uma altitude de 650m e a Torre estava à nossa espera a quase 2000m de altitude e apenas a 20kms de distância. À saída da Covilhã deparámos-nos com as primeiras rampas bastante agressivas, nessa altura ainda seguimos juntos, mas quando a inclinação diminuiu ligeiramente deixei de conseguir acompanhar o Neto e resolvi seguir ao meu ritmo.

Uma das partes mais duras da subida foi entre o parque de campismo e a pousada, especialmente nas zonas das curvas onde a inclinação era brutal, cheguei a pedalar a menos de 7km/h nessa zona. Após isso acalmou um pouco, deu para respirar e só voltou a custar um pouco mais a seguir aos 1400 metros de altitude, pouco antes do hotel com rectas longas onde parecia que estava parado e dava cabo da moral. Depois disso a única parte a descer logo a seguir à nave, onde até cheguei aos 60km/h, faltavam agora 6kms e 400 metros de altimetria para subir.

Este segmento para mim foi terrível, o que me custou mais, à passagem pelo túnel ia com um desgaste imenso eram rampas atrás de rampas a mais de 10% de inclinação, só desejava que a seguir à próxima curva viesse uma rampa mais ténue, o que nunca aconteceu. A seguir à estátua da santa tive de parar pela primeira vez, já estava no último quilómetro mas estava mesmo muito desgastado, nem saí da bicicleta, agarrei-me lá a um poste e respirei fundo durante 10 segundos e segui caminho. Já junto ao cruzamento da Torre e de Seia voltei a parar, estava a menos de 500 metros do topo, mas estava tão mal disposto e tão tonto que tive mesmo de parar 2 minutos, comer, beber e recompor-me.

Quando estava a fazer já a rampa de acesso à Torre já vinha o Neto em sentido contrário a ver se estava tudo bem comigo, ele já lá tinha chegado à mais de meia hora e começava a ficar preocupado. Altura de comer, tirar fotos e apreciar a beleza do cume da Serra da Estrela.


Demorei cerca de 2h30m a fazer a subida de 20km, doeu imenso, sofri, mas cheguei e consegui. Estava curioso para ver se com a altitude iria sentir a privação de oxigénio, mas aparentemente não foi um factor que me limitasse, talvez a altitude não fosse a suficiente para sentir a influencia.

Faltava agora a descida, que coisa medonha, só pensava que se o travões faltassem, ou se perdesse a concentração por milésimos de segundo que podia cair por um precipício ou estatelar-me ao comprido a uma velocidade que quase sempre era superior a 50km/h. À passagem pelas Penhas da Saúde senti o tempo a aquecer, o ar tornou-se muito mais quente e a temperatura voltava a sentir-se. A parte final da descida que era muito sinuosa até tive de abrandar porque apanhei um conjunto de carros e eles fazem as curvas muito mais devagar que nós de bicicleta.


O que demorou 2h30m a subir demorou agora 30 minutos a descer, mas tínhamos chegado os 2 inteiros à Covilhã e sem nenhum tipo de acidente. Restava agora voltar a casa, o tal percurso que parecia inicialmente ser plano...e que pena que não era, depois de todo aquele desgaste aquele sobe e desce final com um calor insuportável foi um 'petisco' nada agradável até casa.

quarta-feira, agosto 07, 2013

Pode a automatização substituir um humano?

Hoje pela primeira vez constatei que alguém pensou que poderia ter o emprego em risco devido ao trabalho que desenvolvo. Como informático, o meu trabalho é arquitectar soluções que simplifiquem e aumentem a produtividade de alguns processos.

Isto implica que alguns processos que seriam feitos manualmente passam agora a ser feitos de uma forma automática. Agora será que isto pode levar à despensa de pessoas que antigamente faziam o trabalho de uma forma manual? Em alguns casos acredito que sim, mas também quero acreditar que esses casos serão de pessoas que não se querem adaptar e que querem continuar na sua zona de conforto, e na maioria das vezes serão pessoas que não se estão para chatear.

Agora pelo que tenho visto ao longo dos anos (que não são muitos), as pessoas de qualidade tornam-se uma mais valia para as automatizações, porque acabarão sempre por surgir particularidades e situações que necessitem da intervenção humana para que se tome a melhor decisão, e não uma simples decisão com base em 0's e 1's.

segunda-feira, agosto 05, 2013

Sushi em casa

Já há bastante tempo que não fazia sushi em casa, e eu ainda me lembrava porquê, o tempo e o esforço de preparação são uma loucura. Começar por arranjar uma data de ingredientes que normalmente não se usam na culinária portuguesa: algas, molho de soja, arroz japonês, vinagre japonês, wazabi, sementes variadas, cebolinho, etc.

Segundo desafio, preparar o peixe. Tive 2 horas a preparar um salmão de quase 5kg, sim porque é difícil arranjar salmão inteiro de um tamanho razoável, e ainda uma pescada de 1kg. No final as costas já não me paravam de chatear com dores devido ao tempo que estive debruçado na bancada a arranjar os filetes.


Depois a refeição em si, o que vale é que era só para mim e para o Nuno, e ele ajudou-me na preparação e basicamente levámos tudo para a mesa e íamos fazendo e íamos comendo. Caso contrário aconteceria como das últimas vezes, que estaríamos a preparar tudo para toda a gente, e com a nossa fraca rapidez mal conseguiríamos satisfazer as pessoas que estariam a comer, e só no final conseguiríamos nós comer.


 Adoro sushi, mas devo dizer que fazer em casa é uma aventura e acaba por me retirar um pouco o prazer de comer sushi, e isto dito por alguém que adora cozinhar. Mas também gosto da parte onde todos nos sentamos à mesa descontraidamente a desfrutar da refeição e a conversar sobre coisas banais.


quinta-feira, agosto 01, 2013

Fomos feitos para correr?

Hoje o Pedro passou-me um vídeo cujo o título é: "Are we born to run?". Quando comecei a ver o vídeo reparei que havia algo de familiar dele, e então apercebi-me que já tinha visto este vídeo à uns anos atrás, provavelmente na altura que voltei a correr mais frequentemente. O que é engraçado é que na altura o vídeo não me disse grande coisa e agora passado uns anos, agora que corro e participo em provas regularmente, agora a mensagem que apanhei foi totalmente diferente. É curioso reparar que a mesma mensagem, variando o receptor pode ser interpretada de maneira totalmente diferente.

Mas voltando à questão - nós nascemos para correr? - o orador deste filme tenta explicar através de outras 3 questões, a resposta a esta pergunta.

1) O ser humano já existe na terra há 2 milhões de anos, as primeiras armas conhecidas têm 300.000-200.000 anos, tendo o ser humano necessidade de comer alimentos não necrotizados, como conseguia caçar?

2) As mulheres são muito piores corredoras que os homens e em curtas distâncias estarão sempre distantes da maioria dos homens. Mas se começarmos a pensar em grande distâncias, o recorde da maratona por exemplo a diferença é pouco superior a 10 minutos, e em distâncias maiores a diferença ainda fica mais esbatida ao ponto das mulheres conseguirem rivalizar com os melhores homens. Qual é o motivo?

3) Um maratonista atinge o seu pico aos 27 anos e depois entra em decadência, o curioso é que aos 65 anos ele ainda consegue correr tanto como quando tinha 19 anos. Qual o motivo da evolução ser tão rápida inicialmente e depois conseguir manter um ritmo elevado apesar da avançada idade?

A resposta a todas estas perguntas está no vídeo.