Jumpi’s Notepad

My annotations about the life, universe and everything!!! ;)

Archive for the ‘Pessoal’ Category

Quinto Encontro de Programadores C/C++ Brasil

with one comment

Olá pessoas,

Após muito tempo ausente, resolvi atualizar esse blogue…

Bem… posso dizer que foi uma ausência significativa, afinal de contas, aconteceram diversas coisas que não me deixaram ter mais tempo para atualizar esse blogue…

Enfim… vamos deixar de “chorumelas” (será que e assim que escreve isso???) e vamos ao que interessa…

Ontem tive um dia bem divertido, ao lado de grandes amigos programadores de C e C++, sim… fui em um evento muito legal na Microsoft, onde só tinham caras muito bons e pessoas de altíssimo nível palestrando e nesse post irei fazer um pequeno resumo do que foi o nosso encontro.

Logo pela manha, tivemos a abertura com o Otavio Pecego da Microsoft que deu uma boa introdução sobre a sua experiência e seu contato inicial com C e C++ e foi ilustrando toda a sua caminhada com os livros que foram importantes na jornada… inclusive, ate peguei algumas sugestões como o livro do John Lakos e o livro do Plauger de STL que eu não conhecia, tenho o C Standard Library que gosto muito… 😀

Em seguida, foi a vez do Rodrigo Strauss, um velho conhecido da comunidade falar sobre as ferramentas utilizadas por ele para facilitar o processo de programação e detecção de problemas, ele comentou desde as ferramentas da sysinternals ate o windbg, tirando os problemas que ocorreram com o microfone (dizem que foi sabotagem dos programadores C#) a palestra foi muito produtiva, principalmente para o pessoal que era mais iniciante.

Depois tivemos uma verdadeira aula de Concepts com o Leandro, enfim, posso dizer que já havia tentado ler o livro do Alexandrescu e quando vi isso, fiquei meio aterrorizado, porem, como o tempo era curto, não deu para o palestrante demonstrar tudo o que sabia sobre o assunto, enfim, percebi que preciso ler e dar uma pesquisada melhor nisso.

Well… hora do almoço… e logo apos o mesmo, tivemos uma palestra bem diferente e interessante com o Felipe Almeida, que nos falou sobre Linguagens Embutidas em C++, confesso que a palestra foi bem interessante, porem, achei o exemplo meio que inusitado para a ferramenta especificada, mais enfim… e bom saber que existe esse tipo de coisa na boost…

Depois foi a vez do “meu irmão” a.k.a. Fabio Galuppo dar uma palestra sobre C++ Nativo no Windows Vista e Server 2008 e mostrar coisas bem legais como NTFS Transacional e Thread Pools… e claro, se tratando do nosso amigo Galuppo, não poderia terminar sem o interop de C++, porem, um assunto que muito me interessa e que ele tratou na palestra e que me fez correr atrás das palestras do Gamefest, afinal, já tinha guardado o link aqui e não tinha visto, foi o lance do PPL (Parallel Pattern Library) que e a nova lib de paralelismo que substitui a antiga TPL. Isso pareceu ser bem interessante… 😀

E para terminar o set de palestras com chave de ouro, foi a vez do nosso amigo e grande colaborador do grupo, Basílio Miranda falar sobre File Mapping no Windows em C++ e demonstrar exemplos interessantes sobre o assunto… 😀

Em seguida, foi a vez dos lighting talks onde o Andre e o Lamarão falaram sobre os seus respectivos projetos em conjunto com a comunidade, sendo que o foco principal foi a otimização da pixman pelo André e a convocação ao publico para trabalharmos em conjunto.

Logo após, houveram os sorteios e dessa vez quem levou a premiação de ajuda a comunidade foi o Pedro Lamarão que ganhou o livro autografado do Sutter

E apos isso, fomos ao bar para poder dialogar sobre o que mais gostamos e um fato curioso foi que pela primeira vez, apareceu uma garota na nossa ida ao bar… sim!!! Para mostrar que nessa comunidade também existem mulheres!!! Porem, o fato mais interessante foi que compareceram varias pessoas novas e as mulheres dessa vez estavam em um numero bem admirável no evento, espero que aumente ainda mais e que as mulheres realmente mostrem a sua forca e parem com esses bla-bla-bla e autopromoções… 😀

Enfim, que venha o próximo encontro… que vai ser o encontro de Embarcados…

See ya in the next event!!! 😀

Written by jumpi

October 6, 2008 at 12:01 am

Posted in Pessoal, Programming

Tagged with , , ,

O Python e a sua misteriosa otimização de chamada de função

with 4 comments

Continuando a saga de Fibonacci, eu e meu amigo Marcio fizemos algumas correções e tcharam… devo reconhecer… o script python quando faz chamada de função consegue ser incrivelmente mais rápido que o script perl, também fazendo chamada de função. Porem descobrimos uma coisa muito bizarra e que nos chamou a atenção enquanto realizávamos os testes e por isso foco a minha atenção em relação ao teste feito com python…

Rodando o seguinte código, feito inline em python:

#!/usr/bin/python
for i in range(1000000):
a, b = 0, 1
for j in range(71):
a, b = b, a+b
return b

Profiling do código com chamada de função:


alan@desenv:~$ python -m cProfile fibo.py
1000005 function calls in 86.083 CPU seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 86.083 86.083 :1()
1 57.280 57.280 86.083 86.083 fibo.py:7()
1 0.000 0.000 86.083 86.083 {execfile}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
1000001 28.802 0.000 28.802 0.000 {range}

E agora o mesmo código, só que realizando chamada de função:


#!/usr/bin/python
import sys
#import psyco
def fib(n):
a, b = 0, 1
for j in range(n):
a, b = b, a+b
return b

x = int(sys.argv[1])
y = int(sys.argv[2])
for i in range(x):
fib(y)

Profiling do código com chamada de função:


alan@desenv:~$ python -m cProfile fibo.py
2000005 function calls in 35.174 CPU seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 35.174 35.174 :1()
1 4.785 4.785 35.173 35.173 fibo.py:6()
1000000 25.671 0.000 30.327 0.000 fibo.py:6(fib)
1 0.000 0.000 35.174 35.174 {execfile}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
1000001 4.718 0.000 4.718 0.000 {range}

Ou seja, tirando o tempo de overhead do profile, o programa que realiza a chamada de função, consegue ser incrivelmente mais rápido que o programa inline, mesmo efetuando mais chamadas.

Bem… achei isso muito bizarro, sendo que, teoricamente o esperado era que o inline fosse mais rápido. Bem, se alguém puder me explicar isso eu agradeço bastante, pois a única conclusão que consegui tirar ate aqui, e que o python, mesmo sem usar otimizadores, vide psyco, já tem uma otimização natural de funções, o que torna as chamadas de função extremamente rápidas, porem eu queria entender essa otimização de chamada de funções, pois gostei bastante e fiquei interessado em saber como tal feature funciona.

E agora a minha conclusão em relação ao que eu aprendi com esse teste ate aqui, se você precisa fazer um programa bem rápido para testar qualquer coisa, use perl, resolve na maioria dos casos, agora se você precisa de um teste mais elaborado, com chamada de função, vou começar a pensar em usar o python…

Written by jumpi

January 11, 2008 at 3:06 am

Posted in Pessoal, Programming

Tagged with , ,

Fibonacci Series Test (Perl and Python)

with 7 comments

Post in portuguese about my tests with Fibonacci Series using perl and python…

Esses dias, para ser mais exato, na segunda-feira, o meu colega de trabalho marcio a.k.a. tio estava falando sobre a sua escolha para criar um projeto de site que ele esta fazendo e para testar ele implementou o algorítimo de Fibonacci usando C, C++, Ruby e Python e mediu o tempo utilizando o comando time… C e C++ entraram na lista so para ele poder criar um parâmetro. E então ele decidiu escolher pelo python devido ao tempo, porem, ele esqueceu do nosso velho amigo Perl e eu disse a ele que perl executava o mesmo teste mais rápido que python e ele me desafiou, ou seja, estou fazendo esse teste para demonstrar que o nosso velho amigo perl pode ser bom, lembrando que não sou um bom programador python, mais tentei deixar o código o mais próximo possível entre ambas as linguagens para que nenhum boi-corneta (como diria o meu amigo Caloni, gostei da expressão, por isso a utilizei aqui também) venha se espantar aqui…

Bem… para a realização desse teste, utilizei o meu laptop, um macbook com perl 5.8.8 e python 2.5.1 como podem ver abaixo:

[jumpi@Painkiller]~/Sources: perl -v
This is perl, v5.8.8 built for darwin-thread-multi-2
level (with 1 registered patch, see perl -V for more detail)
Copyright 1987-2006, Larry Wall
[jumpi@Painkiller]~/Sources: python -V
Python 2.5.1

Para fazer os testes, utilizei uma versão iterativa do algorítimo de Fibonacci (afinal de contas, poderia apelar para a recursiva, porem achei melhor utilizar essa para o teste), segue abaixo o código:

Em perl:

#!/usr/bin/perl
use strict;
my $n = shift;
my ($a,$b)=(1,2);
print "$a\n$b\n";
for(1..$n-2) {
  ($a,$b) = ($b,$a+$b);
  print "$b\n"
}

Em python:

#!/usr/bin/python
import sys
def fib(n):
 a, b = 0, 1
  for i in range(n):
   print b
   a, b = b, a+b
n = int(sys.argv[1])
fib(n)

E executei ambos os códigos, fazendo 10000 iterações e medindo o tempo usando o comando time, onde obtive o seguinte resultado:

Em perl:

real	0m0.188s
user	0m0.054s
sys	0m0.047s

Em python:

real	0m10.778s
user	0m8.104s
sys	0m0.231s

Well… ai esta a prova, pelo que posso ver o nosso velho amigo rabugento perl terminou a sua tarefa em um tempo menor que o python, pelo que posso enxergar, 10x mais rápido???

Brincadeiras a parte, através desse teste simples, podemos perceber que o perl, mesmo estando ultrapassado na visão de muitos, ainda executa muito bem o serviço, logico que poderíamos utilizar n técnicas em ambas as linguagens. Porem, como eu disse no principio, tentei simplificar ao máximo para não criar vantagens para nenhum dos lados.

Quero nesse post agradecer ao tio, pois sem ele, não teria o porque executar esses testes e ao amigo Caloni de onde tirei expressões para compor esse post…

Tio, vamos fazer o projeto utilizando perl + catalyst??? Hein??? Hein??? To Brincando!!! ;D

Written by jumpi

January 9, 2008 at 4:07 am

Posted in Math, Pessoal, Programming

Tagged with , ,

Exemplo didatico sobre tratamento de exceção

with 2 comments

Um dos exemplos mais didáticos que eu ja vi sobre tratamento de exceções foi dado hoje aqui na empresa onde trabalho, estávamos na cozinha, no coffee time, quando começamos a discutir sobre tratamento de exceções e eis que o meu colega de trabalho, Marcio Andrey a.k.a. tio nos faz a demonstração de como ele explicou tratamento de exceções a outro colega aqui da empresa que estava com duvidas no entendimento do tratamento de exceções e precisava de ajuda para fazer a sua prova.

Segue abaixo o exemplo de código (com permissão do autor, e algumas correções para nao divulgar nomes, of course…):

Pessoa individuo = new Pessoa(“individuo”);

Pessoa gostosa = new Pessoa(“uma gbr gostosa”);

Cerveja cerveja = new Cerveja(“Skol”); //variável antes do try que precisei

individuo.tomaBreja(cerveja);

try {

individuo.pegaNaCintura(gostosa);

individuo.pegaNoPeitinho(gostosa);

individuo.chupaPeitinho(gostosa);

Camisinha johnson = new Camisinha(“Lubrificada”); // precisei de uma variável local aqui.

individuo.poeCamisinha(johnson); // usei a variável local aqui.

individuo.comeASafada(gostosa);

}
catch(TapaNaCaraException e) {
System.out.println(“a gbr tentou te dar um tapa na cara e te deu uma escroteada”);
}
catch(TeEmpurrouException e) {
System.out.println(“a gbr te empurrou e te deu uma escroteada”);
}

catch(TeEmpurrouException e) {
System.out.println(“a gbr te deu uma escroteada”);
}
finally {
individuo.vaiEmbora();
}

Quer exemplo mais didático que esse??? Depois dessa o individuo nunca mais vai se esquecer como fazer uso correto do try/catch…. 😀

Meus sinceros agradecimentos ao tio por contribuir com esse post tao instrutivo e ao mesmo tempo engraçado!!! 😀

Sorry for Advogato’s people by wrote this in portuguese, I need wrote this and any questions about I wrote, send me a message and I explain 😀

Written by jumpi

December 11, 2007 at 7:35 pm

Posted in Pessoal, Programming

Tagged with , , ,

mudanças mode on

leave a comment »

Well… well… muito tempo ja se passou desde a ultima vez que escrevi aqui nesse local.. enfim… vamos aproveitar e dar uma revisada nas mudanças que ocorreram na minha vida… enquanto compilo o kernel do NetBSD em uma imagem aqui que criei para meus testes e enquanto ouco no player Queensryche… 🙂

Enfim… muita coisa mudou na minha vida, arrumei novo emprego (isso ja fazem 3 meses… ate mudei o about), sim… sim… agora eu sou Engenheiro de Software de uma empresa (http://www.opencs.com.br) que desenvolve softwares de seguranca… bem interessante o trampo la, a convivencia, os amigos… estou aprendendo varias coisas novas sobre o mundo microsoft… mundo antes desconhecido por minha pessoa… afinal de contas tive muito pouco contato com esse mundo… esta sendo divertido esse mundo de windbg, visual studio, C++ o dia inteiro, isso sem contar nas risadas, piadas e situacoes engracadas do dia-a-dia, sem contar que a equipe e muito competente e todos sao muito receptivos… o que torna o ambiente super agradavel para se desenvolver as tarefas… tanto que eles me motivaram a continuar… e hoje para inaugurar a nova fase desse blog… ja que ninguem le aqui… ele vai se tornar um pouquinho mais tecnico, tentarei dar mais enfase a assuntos tecnicos que ocorrem no meu dia-a-dia, curiosidades, enfim… um blog beeeeeeeeeem mais informativo e agradavel principalmente para nerds… 🙂

Sim… outra mudanca foi no layout… achei esse layout bem mais bonitinho… enfim… e ele que eu vou usar daqui pra frente…

Well… hora de esperar o ./build.sh -O ../obj -T ../tools -u -U distribution terminar para dar continuidade ao meu trabalho… como diria um amigo meu do trampo… “Poder fazer um update fresquinho no sistema” e coisa linda de deus!!! 🙂

Ate a proxima… 🙂

No play: Queensryche – Greatest Hits – 04: Take Hold of the Flame

Written by jumpi

July 19, 2007 at 4:34 am

Posted in Pessoal

You’re Perl

with 3 comments

After long time that dont post here… I’m posting here again the result of language test that I see and answering… 😀

Ohhhhhhh… This test is very funny!!!! Perl is my favorite language for write scripts… I like this…

You’re Perl

“You are Perl. People have a hard time understanding you, but you are always able to help them with almost all of their problems.”

For all that answering the questions too, the phrase above contains the link!!!

Thanks for all that see this blog… 😀

Written by jumpi

April 30, 2007 at 5:07 pm

Posted in english, Pessoal

Meu ultimo fim de semana

leave a comment »

Sorry, but today I dont write post in english here… 🙂

Caras… Esse final de semana foi simplesmente incrivel!!! Very fuckin’ good!!! 🙂

Vamos la… estava meio desanimado na 6a feira com tudo que vinha acontecendo na minha vida e tal… porem… tudo comecou na 6a a noite… eu fiquei impressionado como julgamos as pessoas por aparencias e as vezes elas acabam nos surpreendendo… posso dizer que fui surpreendido… mais isso nao vem ao caso… o fim de semana comecou na 6a… fomos eu e o Alex a.k.a. adevogado e guitarrista da freshmeat (sim… freshmeat e a minha banda… ) la no estudio… estava dando um rolo e fomos la… resolvemos a paradinha, conversamos sobre os rumos da banda e enfim… e bom saber que nao sou apenas eu que estou animado com essa historia… sabadao chega… dei um rapido pulo no Guaruja para pegar meus patins… sim… sim… resolvi voltar a andar de patins… Agressive Street mode on… eu nem aproveitei a praia… nem deu tempo de comer alguma coisa e ver o mar!!!! Mais tudo bem… afinal de contas tinha curso… aquele curso de aprimoramento em matematica que ando fazendo e que ja devo ter comentado aqui… e realmente esta sendo muito bom… Aprendi como utilizar transformada de Laplace e o quao ela e util para a resolucao de Equacoes Diferenciais… isso facilita bastante… sabia??? 🙂
Domingao… ahhhhhhhhhh domingao… mais um dia de curso… acordei cedo e aprendi novas coisas… como por exemplo… sobre Al Barr e Paul Bourke… sendo que esse ultimo eu ja conhecia o trabalho… mais nao sabia que fosse tao importante… e ambos os trabalhos tem relacao um com o outro… o trabalho do Al Barr fala sobre Superconicas… uma equacao para o quadrado… ja o do Paul Bourke e sobre Superconicas em um espaco tridimensional… varios filmes ja utilizaram essas tecnicas para modelar seus desenhos… principalmente os filmes da Pixar como Toy Story e A Bugs Life… well… tambem aprendi um pouco mais sobre wavelets… e posso dizer que fiquei interessado pela ideia… sei la… e de se pensar… Apos o curso nem voltei para casa… fui la e peguei o Alex e fomos para o Via Funchal… pra que??? Comprar o ingresso do TestamenT!!! Isso sim!!! Agora fudeo… Depois fomos procurar um lugar para comer… e achamos um lugar maneiro la perto do estudio em moema… que servia pizza de sorvete como sobremesa… muito legal… 🙂

Depois fomos rumo ao estudio… ensaio da Freshmeat… primeira vez nossa com nova afinacao… todos em C (Do)… ficou muito foda o som… esse ensaio foi bem divertido… pena que faltou a vocalista e um dos guitarristas, porem, comecamos a fazer testes para a linha melodica/harmonica de 3 musicas, a linha de guitarra/baixo/bateria… e posso dizer que o resultado esta ficando muito foda… fiquei muito feliz… voces nao tem nocao!!! Como diria a Elaine… vocalista da Freshmeat… “FRESHMEAAAAAT PORRAAAAAAAAA!!!”

Apos o ensaio, fomos comer algo e ficamos discutindo sobre a banda… projetos… e posso dizer uma coisa… a nossa apresentacao esta mais proxima do que esperam… Logo teremos otimas noticias aqui… e logo voces poderao ouvir os nossos sons… espero que gostem… estamos nos dedicando ao maximo!!! 🙂

Enfim… hoje voltei a semana bem animado… apenas uma noticia me preocupou… tenho que entregar o pre-relatorio da Iniciacao Cientifica no dia 08/03… e tinha esquecido completamente… FUDEOOOOOOOOOOOO!!!! Pergunte se eu escrevi algo??? 🙂

Outra coisa… resultado de um quiz que eu fiz… acho que tem a ver!!! 🙂

You scored as Death Metal.

You are a death metaller! You like growled vocals and blisteringly fast drums. Death to the false metal!

Death Metal 95%
Thrash Metaller 90%
Old School Heavy Metal 60%
Grindcore 50%
Power/Prog Metal 45%
Metal Troll 35%
Stoner 30%
Black Metaller 30%
Glam Metal 25%
Nu Metal/Metalcore 15%

Ate a proxima pessoas!!! 🙂

Para quem estiver interessado, segue abaixo os links que foram citados nesse post…

Al Barr (Superconicas):  http://www.gg.caltech.edu/~barr/

Paul Bourke (Superconicas Tridimensionais):  http://local.wasp.uwa.edu.au/~pbourke/

Ingrid Daubechies (Wavelets): http://www.pacm.princeton.edu/~ingrid/

Freshmeat Band: http://www.purevolume.com/freshmeatband

Written by jumpi

March 5, 2007 at 3:30 pm

Posted in Pessoal