Entries Tagged as 'computação'

Monday, May 12th, 2008

Minha primeira viagem para o Rio de Janeiro

Conforme indicado nesse post sobre asa-delta, fui para o Rio de Janeiro no fim de Abril. Mas não foi minha primeira vez na cidade maravilhosa, e esse post vai comentar minha primeira viagem pra lá.

Foi no fim de julho e inicio de agosto de 2006. Eu era bolsista CNPq do grupo de probabilidade e estatística da UFRGS já fazia quase um ano. Bem nessa época aconteceria a EBP (escola brasileira de probabilidade) e IMS (international meeting of statistics) no IMPA (instituto de matemática pura e aplicada).

Minha professora orientadora conseguiu ajuda financeira para o grupo. Assim, tive a chance de ir para o RJ e participar dos congressos.

A melhor parte é que meu namorado, que também era bolsista, foi (na realidade foi antes até, porque ele foi num terceiro evento, dessa vez sobre série temporais).


Eu na frente do IMPA

Bom, o congresso foi muito legal, muito interessante e proveitoso. Uma ótima oportunidade de ver como estava a pesquisa em probabilidade (e possíveis aplicações na computação), entretanto no quesito turismo praticamente não tivemos tempo de aproveitar a cidade, mesmo ficando uma semana, afinal, congresso ia das 8 horas até as 17. E era bastante cansativo. Os únicos dias que tivemos oportunidade de conhecer a cidade foi no dia que cheguei e no dia de ir embora.

Além disso, choveu todos os dias.

Mas claro, como nossa hospedaria ficava em Copacabana, foi possível conhecer a belissima praia, a fachada dos belos hotéis (como o Copacabana Palace), ir no Cristo Redentor (que ainda não era maravilha do mundo), conhecer o IMPA, passear rapidamente no centro, jogar truco de noite, conhecer o Spolleto (que até então não tinha em Porto Alegre), e comer uma tapioca maravilhosa.


O cantor Vinny e eu bem animada no aeroporto

Então foi uma viagem majoritariamente de estudos. Só deu aquele gostinho da cidade maravilhosa. Por isso, fiquei na expectativa de ir de novo, dessa vez apenas como turista. E a oportunidade surgiu agora no fim de abril de 2008, que contarei num próximo post.

Wednesday, May 7th, 2008

Momento cultural: A palavra software em Português

Vocês sabiam que existe uma palavra em português para a palavra em inglês software? Não, não é programa. Software em português é logiciário. Vem do francês logiciel. Como todo mundo já sabe, os franceses (ao contrário dos japoneses) evitam usar estrangeirismos. Por isso, lá inventaram essa palavra para descrever software. Hardware na França chamam de matériel. Faz sentido: matériel significa material, ao passo que logiciel tem a mesma raiz que a palavra lógico. Claro, o hardware é o material, e o software é a parte lógica.

Engraçado que ninguém no Brasil, e nem mesmo em Portugal, onde valorizam mais a língua portuguesa, conhece logiciário. Menos mal, porque a palavra é muito feia : P

Por sinal, aqui um post que fala sobre estrangeirismos muito legal.

Friday, April 4th, 2008

Propagandas que atacam outras propagandas: comerciais provocativos

Aqui em Porto Alegre pelo menos, o cursinho pré-vestibular Universitário (o segundo maior depois do Unificado) fez uma campanha publicitária em grande escala, que consisitia de uma foto de um aluno que passou na UFRGS (a universidade com o vestibular mais disputado do Rio Grande do Sul) e a frase: Fiz Universitário e passei na UFRGS.

Mas ai, o cursinho Monteiro Lobato fez então uma propaganda sensacional: consistia em tentar provar que o fato desses alunos terem feito cursinho no Universitário não estava correlacionado a sua aprovação. Eram frases como essas que eles colocaram em propagandas:

- Comi banana e passei na UFRGS
- Dormi bastante e passei na UFRGS
- Viajei para o Paraguai e passei na UFRGS

E assim por diante.

A propaganda do cursinho rival foi tão humilhante o Universitário mudou a frase. Agora é apenas a sentença Passei na UFRGS e a foto do aluno.

Eu acho muito legal essas propagandas mais ousadas, que provocam, cutucam o adversário com vara curta.

E esses dias vi mais uma dessas propagandas. Só que dessa vez era de um livro que ensinava SQL (linguagem para bancos de dados). A propaganda atacava livros que prometem ensinar linguagens de programação como Java, C++, Python, entre outras, em prazos curtissimos. Pra quem não sabe, é muito comum ver livros com o título Java em 7 dias, ou Aprenda Python em 21 dias, ou ainda C++ em x dias (x é uma variável no qual quanto mais baixo o valor, mais o livro vende).

Esses prazos na realidade são uma grande bobagem, porque de fato, pra fazer programas pouco maiores do que um Hello World você realmente consegue aprender nesse prazo, agora vê se em com 7 dias sem nunca ter visto Java na vida, com um livrinho você consegue passar em alguma certificação da Sun, por exemplo, ou mesmo cuidar de qualquer sisteminha maior.

Mas voltando, a propaganda que tinha nesse livro de SQL, que se chamava SQL for Begginers era o seguinte: This book is for humans, not for clocks. Adorei, e só quem conhece esses outros livros captou a provocação.

Friday, March 28th, 2008

Programação em placas gráficas, área quente na pesquisa em CG

Uma das áreas da computação que está vislumbrando mais inovações é a computação gráfica. Por quê ? Além da pesquisa tradicional, no qual tarefas difíceis como a pesquisa e o desenvolvimento de novos métodos de calcular iluminação cada vez mais realista e rápidos, métodos para calcular fluídos em movimento (especialmente água), pêlos, cabelos, grama (vegetação em geral), etc, são estudados, existe um campo quase que inteiramente novo (ou que pelo menos aumentou as possibilidades de abordagem de temas antigos): a programação de placas gráficas, GPU em inglês (graphic processor unit).

Pra quem não sabe, as GPUs estão no nível de desenvolvimento absurdo. Isso fica claro quando vemos para vender por preços relativamente acessíves placas gráficas com 512 Mb de Ram. Pensem bem, 512 só para lidar com a parte gráfica. É muita coisa. Mas não é só o tamanho da memória que as GPUs estão altamente desenvolvidas. Alguns dizem que, a Nvidia (a maior desenvolvedora de placas gráficas do mundo, a Geforce por exemplo, é dela) já gastou tanto em pesquisa de tecnologia para fazer placas gráficas cada vez melhores, que atualmente, eles estão num nível que seriam capazes de criarem processadores (CPUs) melhores que os da lider no mercado, a Intel, e que só não começaram a vender porque desembolsar rios de dinheiro para entrar numa competição onde o concorrente tem mais de 90% do mercado é ou dar tiro no próprio pé ou suícidio.

Essa afirmação acima, pode parecer exagerada para alguns, mas o nível de complexidade que as GPUs tem hoje está muito próximo do nível que as CPUs têm. Não é nenhum absurdo pensar que a Nvidia poderia fazer CPUs.

geforce placa poderosa
Vamos programar esse bichinho?

Mas além da velocidade e tudo mais que as GPUs estão oferencendo, a parte realmente legal é que ela agora está ficando parcialmente programável. Parcialmente porque, a GPU utiliza a arquitetura pipeline. Arquitetura pipeline, resumidamente, é um hardware que é composto de vários módulos menores, e esses módulos devem funcionar concorrentemente. A vantagem da arquitetura de pipeline é que enquanto um dado está sendo tratado no segundo módulo, outro pode ser tratado no primeiro (se esse não depender do dado que está sendo tratado no segundo módulo). Por exemplo, uma fábrica que monta carros usa a arquitetura de pipeline, pois num módulo, o os pneus são colocados, em outro o carro é pintado. Com essa arquitetura, é possível que dois carros(ou mais, depende de quantos módulos tem o seus sistema) sejam produzidos quase ao mesmo tempo, evitando subutilização dos recursos de hardware.

A GPU permite a programação de dois desses módulos.

A grande diferença é que dessa vez, usaremos os recursos da GPU e não da CPU, ou seja, vamos usar a memória da GPU e as instruções da GPU, não a memória RAM da CPU, e tampouco suas instruções. Em outras palavras, você vai progamar para o processador da placa gráfica, e não para o processdor de propósitos gerais do seu PC (a CPU).

As vantagem é que como a placa gráfica é processador dedicado para gráficos, ele tem muito mais vantagens que a CPU. Por exemplo, ela possui comandos nativos para lidar com vetores, pixels, etc. Mas a grande vantagem, na realidade, é que a placa gráica consegue lidar com mais de um pixel por vez, ou seja, é uma placa que pode processar vários pixels em paralelo.

Para programar a GPU temos agora a disposição várias linguagens, e a mais usada é a C for graphics, que como o nome dá a entender, é bastante similar a C, mas para placas gráficas ; )

Na realidade, antes já existiam linguagens, mas era muito similares a um assembly, o que inviabilizava a programação para a maior parte das pessoas porque programar em assembly é um saco : P

Mas voltando, C for graphics permite atualmente a programação de dois módulos das GPUs atuais, o vertex shader, e o fragment shader. Num próximo post eu entro em detalhes sobre o pipeline das placas gráficas e consequentemente falo das vantagens e possibilidades programando o vertex e o fragment shader.

Tuesday, March 18th, 2008

Sono louco na aula

Hoje eu fui escolher um caderninho para meu início de semestre (na verdade já começou faz duas semanas, mas melhor comprar antes tarde do que nunca). Nisso, eu pensei e me dei conta que pouca gente usa caderno para escrever durante as aulas na minha faculdade. A maior parte prefere apenas prestar atenção no professor, e mais tarde, estudar através de livros recomendados na bibliografia, ou mesmo pelos slides, já que em geral eles são disponibilizados. Mas pra mim isso não adianta, eu preciso anotar. Na verdade, nem tanto pelas anotações em si, mas por um motivo muito maior: se eu não fizer isso, eu durmo. Sim, escrever é uma ótima maneira de não dormir nas aulas.

O pior, é que nao importa o quão interesante a aula esteja, chega uma hora que me bate um sono louco, praticamente irresistível. Às vezes ele pode ser tão forte, tão poderoso, que eu simplesmente durmo nas posições mais impensáveis na cadeira. Acho que talvez eu seja capaz dormir de pé, tal como os cavalos (alguém me disse que eles dormem de pé, será que é verdade?). Claro que isso já me rendeu diversas situações desagradáveis em aula, como por exemplo, acordar com os risos da turma pois o professor ficou me encarando enquanto eu dormia, na esperança que eu acordasse.

sono total

Cada pessoa tem um horário que tem mais dificuldades de se manter acordado. O meu certamente é a primeira aula, a das 8:30. Pra início de conversa, eu nunca consigo chegar na hora. Pra chegar as 8:30 na UFRGS, eu preciso acordar as 6:30. Eu não nasci para acordar nesse horário. Invariavelmente eu chego as 9 horas. Minha sorte é que esse semestre, de segunda a quinta, minhas aulas são as 10:30. Não teve um dia que eu tenha me atrasado, tampouco dormido.

Eu acho que essa questão do sono é crucial no rendimento acadêmico. Por exemplo, das 5 reprovações que eu tive até hoje, 4 foram cadeiras ministradas nesse horário maldito das 8:30. Será apenas coincidência?

Eu acho que devia ser feito um estudo completo sobre esse assunto. Por exemplo, descobrir por meio de entrevistas, qual o horário que a maioria das pessoas fica mais dispersa, sem atenção. Dessa forma, as comissões de graduação de cada curso poderiam manejar os horários das cadeiras de tal forma que as matérias consideradas mais fáceis fossem ministradas nesses horários critícos, e as cadeiras consideradas mais difíceis (ou seja, as com maior taxa de reprovação), em horários considerados bons.

Sociedade injusta que acha que quem acorda cedo é trabalhador e quem acorda tarde não !!! Protesto : P

Monday, March 10th, 2008

Orientação a objetos

Muito se fala em orientação a objetos no mundinho da programação. É a modinha atual. Parece que toda linguagem precisa ter. A famosa linguagem C não tinha. Fazer o que? Meta por cima tudo que precisa para ter orientação a objeto e temos C++. PHP também não tinha. Solução? PHP5 incorporou tudo (e por causa disso é quase uma linguagem distinta das versões anteriores). Qualquer linguagem nova quase sempre apresenta essa facilidade. Até Javascript, que era pra ser bem simplezinha, já tem.

Mas afinal, o que é exatamente orientação a objetos?

Orientação a objetos é um paradigma de programação. Um paradigma de programação é uma forma de pensar na hora de codificar. Em geral, a primeira linguagem que aprendemos são linguagens com o paradigma procedural (como Pascal, C, Ada, Cobol, Fortran, Clipper). Linguagens procedurais são aquelas no qual nosso código é dividido em subrotinas (procedures) ou function (funções). Uma procedure é uma função sem retorno (pode ser visto como uma função que não retorna nada, void). Se você realmente quiser modularizar seu programa, o melhor que você pode fazer é dividi-lo em várias subrotinas/funções, e num nível maior, em várias bibliotecas. Antes da programação estruturada, usava-se nos códigos o recurso do goto, que tornava a maior parte dos programas ilegíveis. Os famosos códigos espaguete.

A programação orientada a objetos é uma outra visão de como programar. Quando for pensar na estrutura e lógica do programa, você não vai pensar apenas em quais váriaveis você vai ter, e quais funções você vai aplicar nelas. Você deverá pensar em quais os objetos que formam seu programa. Você decide o que é o objeto. Num cadastro de uma faculdade, seus objetos podem ser alunos, professores e matérias, por exemplo. Você escolhe quantos objetos terá, de forma que facilite na sua implementação.

Cada objeto seu será uma classe (que você pode pensar como um Record do Pascal ou Struct de C). Entretanto, você não vai apenas declarar quais são as váriaveis que farão parte de sua record (ou Struct). Você dirá também quais são as funções que podem ser aplicadas nesse objeto (essas funções que são declaradas dentro da classe são chamadas de métodos). Seus métodos só poderão ser aplicados nos objetos aos quais eles pertencem.

Ou seja, a partir de agora você não vai dividir seu programa apenas em funções, você vai dividi-lo em objetos (classes pra ser mais específica … um objeto é uma instância de uma classe). Essa pequena mudança parece mínima, e talvez de pouca valia, mas faz muita diferença.

Uma linguagem considerada orientada a objetos também deve proporcionar modificadores de acesso (para facilitar encapsulamento de dados e depuração), herança (facilita a legibilidade do código e facilita o reuso dele). Pode também oferecer sobrecarga, polimorfismo, entre outras facilidades.

Em suma, a principal vantagem é que com orientação a objetos é muito mais fácil organizar o teu programa.

Claro que um programador MUITO organizado pode fazer programas lindos em linguagens procedurais, legíveis e organizados (assim como pode fazer um programa lindo com goto). Mas se um paradigma (no caso, a orientação a objetos) ajudar, melhor. Assim como se um compilador consegue detectar erros em tempo de compilação, melhor. Uma vez aprendida essa “nova” forma de programar, horas de trabalho podem ser economizadas.

Mas veja bem, orientação a objetos, só vai trazer uma vantagem substancial se seu programa não for muito pequeno. Se for muito pequeno, você não conseguirá dividir seu programa em muitas classes, e não conseguirá fazer muito reuso de código. E nesse caso talvez ela aparentemente não pareça útil. Assim como metodologias de engenharia de software como RUP e XP parecem que mais atrapalham do que ajudam para projetos MUITO pequenos.

A título de curiosidade, existem outros paradigmas, não tão populares quanto a procedural e orientado a objetos. Um deles é o paradigma funcional (exemplos são linguagens como Haskell, ML, Ocaml). Outro paradigma é o lógico, e sua linguagem mais famosa é o Prolog. São paradigmas bem mais complexos que a orientação a objetos, e que possuem ainda algumas limitações que não permitiram seu uso em grande escala.

Friday, March 7th, 2008

Michael Jackson é engenheiro de software

Você era um cantor de música pop famoso, mas por alguns pequenos problemas, sua carreira não deslancha mais? Não se sinta mais mal, existem outras possibilidades. Uma delas é virar engenheiro de software e publicar livros sobre o assunto. Compre já o seu na Amazon.

livro de engenharia de software do michael jackson

Quando será que chega o da Britney Spears e da Amy Winehouse?

Monday, January 14th, 2008

O iPod touch é incrível !

Quando o iPod começou a popularizar, achava um absurdo paga MUITO mais caro por um tocador de mp3 só porque ele é mais bonitinho. Isso até o meu namorado comprar um e eu ver como era de perto: apesar dos contras como a necessidade de usar software proprietário da Apple, o iPod é realmente muito melhor do que qualquer outro player, e não era apenas um tocador com design legal.

Depois de usar um iPod, você simplesmente não consegue usar outros players sem achar uma pilha de defeitos do tipo: a clickwheel faz falta, como esse negócio é lento, que telas feias, que tela pequena, etc. Logicamente, tive que comprar o meu, branquinho de 30 GB.

Mas ai lançaram iPhone. E todo um blá blá blá em cima. Novamente achei outra bobagem. Achei uma besteira tanta falação em cima de um negócio que não tem nada de revolucionário, apenas agregou um monte de coisa que já existia num aparelho só. Nem mesmo o Steve Jobs fazendo maravilhas com ele na apresentação do produto tinha me empolgado.

Bom, não tive exatamente a chance de mexer num iPhone, mas tive a de mexer num iPod Touch, que um colega do meu trabalho comprou. Pra quem não sabe ele é exatamente igual ao iPhone, exceto pelo fato de não fazer o principal: as ligações.

Ao contrário de minhas expectativas, fiquei encantada. A tela sensível ao toque funciona magicamente bem. É pequenininho e cheio de features, praticamente um palmtop com muito mais estilo.

ipod touch

Mesmo assim não pretendo compra-lo, meu iPod classic atende a todas as minhas necessidades, mas pelo menos agora entendo todo esse auê ao redor do iPhone/iPod Touch: O negócio ao vivo impressiona mesmo.

Tuesday, January 8th, 2008

Novos ares

Depois de quase um mês sem posts, o blog volta a ativa ! E agora com servidor e domínio próprio ! Atualizem-se ! O endereço agora é bitpop.info

E atualizem o feed também: agora é http://feeds.feedburner.com/bitpop

Logo (logo = uns 10 dias) esse endereço, bitpop.wordpress.com não funcionará mais. Então atualizem : D

Saturday, December 1st, 2007

A evoluçao da internet e o Twitter - Um retorno às origens dos blogs

Os blogs surgiram como um espaço para as pessoas contarem suas vidas, seu cotidiano, o dia-a-dia. Quando surgiram, foi uma febre. Todo mundo que eu conhecia (e que tinha internet) tinha um blog.

Mas daí foi passando o tempo e enjoou. Porque tem coisas na internet que são divertidissimas para o iniciante, o newbie, mas depois de um tempo enchem o saco. Chat do Terra e do Uol, eu frequentava avidamente, mas logo cansou, assim como passar madrugadas só teclando no icq ou msn. Blogs também cansaram.

Inclusive eu tive o meu blog nessa época, que nunca divulgarei. pois é tosco e mal escrito. Não que o bitpop seja ótimo, mas é bem melhor : P

Mas ai algumas pessoas comecaram a postar notícias, opiniões, a fazerem blogs “mais sérios” e que interessavam aos desconhecidos também, e não apenas a família e os amigos. Passou um tempo, e as pessoas que faziam blogs bons mesmo comecaram a por anúncios e ganhar dinheiro. Muito dinheiro. Até que surgiu os problogger, pessoas que param de trabalhar e vivem em função de seus blogs. A profissão deles é ser blogueiro.

E nisso os blogs que seguiam a concepção original de ser um diário público meio que sumiram, e a função dos blogs começou a ser discutida.

Quanto a minha opinião, o que eu gosto é da mescla. Gosto de textos que discutem um filme mas que ao mesmo tempo colocam no meio do texto algum acontecimento pessoal. Um texto que interesse a desconhecidos mesmo sendo pessoal. Não um texto asséptico, sem alma.

Mas dai surgiu o Twitter. Mas o que é o Twitter ? A idéia dele é postar em poucas palavras o que você está fazendo. Ele permite inclusive postar pelo telefone celular, assim você pode postar em qualquer hora e lugar. No Twitter não dá pra fazer textos grandes, só frasezinhas. E o Twitter está fazendo o maior sucesso. O Twitter é um retorno a essência do blog, postar por prazer apenas sobre sua vida, sem ambições monetárias e sem técnicas de SEO.

Recliclar coisas antigas está na moda mesmo.

Isso tudo é apenas uma constação. Não estou criticando querer ganhar dinheiro com o blog. Quem tem blog bom tem mais é que ganhar mesmo.

E não, não tenho Twitter. Nem terei de novo : P