# Pós-II Seminário Portabilidade e Performance

Caloni, 2010-12-21 <ccppbr> [up] [copy]

O nosso seminário da semana retrasada sobre portabilidade e performance teve um clima mais familiar, lembrando os antigos eventos. O tamanho menor da sala, aliado ao fato dos palestrantes não precisarem usar microfone, como foi da última vez, fez com que houvesse mais interação com o público, com destaque para minha própria palestra, onde tivemos um hiato significativo para falar sobre o desempenho da classe std::string e outros assuntos mais obscuros.

A ordem das palestras também ajudou muito a tecer os conteúdos individuais para algo maior e em comum, que eram os temas do seminário: se com Galuppo tivemos uma pitada do desenvolvimento concorrente, com Fernando conseguimos entender de uma maneira simples e didática como funcionam os recursos de sincronismo entre threads rodando em múltiplos cores, com uma pequena ajuda de um exemplo em C levado ao nível de assembly, onde foi possível acompanhar o que já havíamos aprendido com a palestra do Caloni.

Pra terminar, um apanhado de boas práticas e  a experiência de quem já mexeu muito com análise e desempenho no código: Rodrigo Strauss. Além das dicas e do bom humor costumeiros, tivemos uma pequena prévia do que poderemos ter em breve com o tema "C++ com outra linguagens".

Deixarei disponibilizado para download minha transparência, onde infelizmente não estão embutidos o áudio nem o vídeo do momento realmente importante,que foi a interação do grupo durante a apresentação. Se você perdeu, so sorry. Até a próxima!


# Trabalhando em múltiplos ambientes

Caloni, 2010-12-27 [up] [copy]

Existem diversas maneiras de se trabalhar com o Bazaar. Eu já havia definido como fazer na máquina de desenvolvedor para modificar o mesmo código-fonte em projetos paralelos, onde basicamente tenho um branch principal conectado no servidor (assim todo commit vai pra lá) e crio branches paralelos e desconectados para fazer quantos commits eu tenho vontade durante o desenvolvimento. Após todas as mudanças e testes básicos, atualizo o branch principal (com mudanças dos meus colegas) e faço o merge com o branch paralelo onde fiz todas as mudanças. Antes de subir com o commit final, ainda realizo um build de teste local, se necessário.

Nos casos em que eu trabalho em casa (ou em outro ambiente), posso fazer basicamente a mesma coisa, só que meu branch paralelo é copiado para outra máquina:

   C:\>cd \Src\projeto-principal
   
   C:\Src\projeto-principal>bzr get . ..\projeto-principal.TravamentoServico.MeuNotePessoal
   Branched 950 revision(s).

Geralmente o que faço depois é compactar a pasta gerada (se desejar, use uma senha forte nesse passo), fazer uma cópia para um PenDrive e descompactar na máquina que irei trabalhar.

   C:\Src\projeto-principal.TravamentoServico>hack hack hack
   
   C:\Src\projeto-principal.TravamentoServico>bzr ci -m "Uma mudancinha inicial"
   Committing to: C:/Src/projeto-principal.TravamentoServico/
   added teste.txt
   Committed revision 951.
   
   C:\Src\projeto-principal.TravamentoServico>hack hack hack
   
   C:\Src\projeto-principal.TravamentoServico>bzr ci -m "Vamos ver se funciona"
   Committing to: C:/Src/projeto-principal.TravamentoServico/
   modified teste.txt
   Committed revision 952.
   
   C:\Src\projeto-principal.TravamentoServico>hack hack hack
   
   C:\Src\projeto-principal.TravamentoServico>bzr ci -m "Não funcionou. Mais uma vez."
   Committing to: C:/Src/projeto-principal.TravamentoServico/
   modified teste.txt
   Committed revision 953.
   
   C:\Src\projeto-principal.TravamentoServico>hack hack hack
   
   C:\Src\projeto-principal.TravamentoServico>bzr ci -m "Desconfio de uma coisa..."
   Committing to: C:/Src/projeto-principal.TravamentoServico/
   modified teste.txt
   Committed revision 954.
   
   C:\Src\projeto-principal.TravamentoServico>hack hack hack
   
   C:\Src\projeto-principal.TravamentoServico>bzr ci -m "Corrigido travamento."
   Committing to: C:/Src/projeto-principal.TravamentoServico/
   modified teste.txt
   Committed revision 955.
   
   C:\Src\projeto-principal.TravamentoServico>doc doc doc
   
   C:\Src\projeto-principal.TravamentoServico>bzr ci -m "Comentando e documentando solucao."
   Committing to: C:/Src/projeto-principal.TravamentoServico/
   modified teste.txt
   Committed revision 956.

Terminado o trabalho naquela máquina, geralmente gero um branch novo (para limpar o diretório) e recompacto a solução, copio para o Pendrive, e descompacto na máquina da empresa. O resto do caminho é como se eu tivesse feito as modificações na própria máquina:


[2010-11] [2011-01]