Categoria: Geral

  • Conhecimentos fundamentais

    Ja faz algum tempo que tenho notado em diversas listas de discussões da área de informática que alguns profissionais de nossa área parecem estar entrando para o mercado de trabalho sem ao menos ter alguns conhecimentos mais fundamentais sobre computação.

    Um “Conhecimento Fundamental” não é um “Conhecimento Essencial” mas é extremamente útil ter esse tipo de conhecimento quando se trabalha com qualquer coisa.

    Na minha simplória definição um “Conhecimento Fundamental” é um tipo de conhecimento que não necessariamente é aplicado diretamente na resolução de um problema mas que certamente enriquece muito a ‘teia’ de informações disponíveis em nossa mente. Esse enriquecimento faz com que a gente consiga apresentar soluções muito mais criativas e eficientes para determinados problemas.

    Para esclarecer um pouco melhor o que eu estou tentando dizer vou citar algumas situações reais que ocorreram com algumas pessoas próximas à mim.

    Operações bit-a-bit

    Quando eu fiz escola técnica no segundo grau eu tive um professor (Victor) que passou um semestre inteiro explicando aritmética binária, operações bit-a-bit e um básico de lógica booleana (que no semestre seguinte foi complementada de maneira adequada por outro professor).

    Nessa época vários colegas de classe ‘matavam’ essa aula porque ela realmente era bastante teórica e pouco prática e esses alunos estavam mais interessados ou em jogar Truco no páteo do colégio ou em ver o último livro de Clipper (que era a ‘sensação’ da época da mesma forma que Java é a ‘sensação’ do momento).

    Eu assisti essas aulas e aprendi sobre deslocamento de bits, soma, subtração, multiplicação binária, aprendi como um número negativo era representado binariamente (complemento de dois e afins), e por aí vai.

    Quase uma década depois eu e mais algumas pessoas em Curitiba fizemos um teste prático em linguagem C para entrar no meu atual emprego no INdT. O desafio proposto pra mim era corrigir uma função de um compressor de arquivos que fazia deslocamentos de bits e umas operações bit-a-bit com máscaras.

    Corrigi a função (estourei um pouco do tempo disponível) e passei no teste. Algum tempo depois um atual-companheiro de trabalho saiu da sala e havia me dito que ele se atrapalhou com o desafio dele (que também envolvia deslocamentos e manipulações de bits) porque ele não lembrava a sintaxe da linguagem C para fazer deslocamentos de bits (>).

    Se eu estivesse na mesma situação que ele eu teria solucionado o problema usando uma ‘alternativa’ à sintaxe da linguagem C e faria sucessivas multiplicações e divisões por 2 que fazem com que os bits se desloquem para à esquerda e direita respectivamente.

    Esse foi um caso real onde um “Conhecimento Fundamental” teria ajudado esse meu amigo. De qualquer forma ele se deu bem no restante do teste e hoje ele trabalha aqui do meu lado.

    Recursividade

    A algum tempo atrás precisei desenvolver um pequeno script pra um provedor de internet que calcularia o valor com pulsos gastos pelos assinantes desse provedor para que posteriormente fossem oferecidos produtos de banda-larga para clientes que fazem uso maior de internet.

    No momento em que estava pensando na forma que eu resolveria esse problema (que eh desnecessariamente complicado) emergiu dos fundos de meus “Conhecimentos Fundamentais” as minhas aulas sobre recursividade. Usei uma prática muito simples de ‘dividir e conquistar’ as ligações que encaixavam em diversas categorias diferentes de tarifação chamando a mesma função de cálculo recursivamente.

    Evidente que esse script não prevê todos os casos e situações diferentes com as quais uma operadora de telefonia precisa se preocupar mas serviu adequadamente para resolver o problema em questão.

    Recentemente um amigo que presta serviços para um provedor de internet que pertence à uma operadora de Telecom me disse que a equipe de desenvolvimento dessa empresa estava ‘batendo cabeça’ a várias semanas tentando resolver o mesmo problema.

    Eram desenvolvedores que não possuem “Conhecimentos Fundamentais” para exercerem suas funções. Passei esse script para que o pessoal usasse.

    Conhecimentos Fundamentais não envelhecem

    Os profissionais de informática hoje perdem muito tempo escolhendo uma faculdade ou outra, um curso ou outro porque uma delas usa Windows e a outra Linux. Uma usa Java e a outra .Net. Algumas ainda usam Pascal e outras começam a usar Python. Os alunos ‘brigam’ com seus professores para que os mesmos ensinem Java ou C# mas nunca brigam com eles pedindo para que explique sobre Autômatos Finitos ou máquinas de Turing.

    Saber Java ou C# hoje é o mesmo que ter sabido Clipper ou Cobol à alguns anos atrás. É um tipo de conhecimento que ‘envelhece’ e perde o sentido. Não é um conhecimento desnecessário, mas a aquisição desse tipo de conhecimento deveria ter uma prioridade menor do que os “Conhecimentos Fundamentais”.

    Fundamentar o conhecimento é algo imprescindível que torna mais fácil, inclusive, adquirir outros tipos de conhecimentos.

  • À Sombra de Titãs

    Não, eu não morri. Sim, estou passando por uma crise criativa. E já vou avisando que esse post está completamente mela-cueca e “puxa-sacos” 🙂

    Todo nerd é saudosista. Se isso não fosse verdade nós não nos interessariamos por coisas como MSX, TRS-80 e Apple II. Como nerds costumamos chamar de antigüidades enquanto os outros chamam apenas de lixo ou velharia.

    Com meu ‘bit’ saudosista habilitado (só nerd pra escrever essas coisas) resolvi fazer um levantamento do meu envolvimento com as pessoas da Comunidade do Software Livre brasileira.

    Eu tive uma sorte muito grande de sempre ter convivido ao lado de “Titãs” do Software Livre. Se fosse possível “aprender por osmose” eu certamente seria um gênio mas infelizmente não é. Para homenagear essas pessoas resolvi dar nome aos GNUs (ha ha ha que tentativa horrível de fazer um trocadilho).

    O legal desses GNUs é que nem sempre eles aparecem ‘na mídia’ ou são tratados como ‘personalidades’ por outros membros da comunidade mas certamente eles fizeram algo pelo Software Livre.

    Meu envolvimento com Software Livre começou efetivamente em 2000 quando comecei a trabalhar na Conectiva. Antes disso os programinhas Clipper que eu fazia eram liberados mas não sabia que isso era SL.

    Hoje eu tenho a impressão que fui trabalhar lá por causa de uma ‘falha’ no processo de contratação. Só pode ter sido isso essa a razão. Afinal, nessa época eu não me envolvia com comunidade, me batia por dias tentando estabelecer uma conexão PPP (e nem era Winmodem :P) e nunca tinha conseguido concluir com sucesso uma compilação de kernel :). Nunca tinha feito uma linha de código em C para ambientes Unix (só para DOS) e mesmo assim fui parar no departamento de Pesquisa & Desenvolvimento da Conectiva. Meu inglês hoje é muito ruim, imagine naquela época 🙂

    Lá na Conectiva, que hoje se chama Mandriva, trabalhava a elite do Software Livre brasileiro. Alguns desses profissionais ainda estão por lá e outros estão ‘por aí’. Para citar alguns: Arnaldo Melo (acme), Cavassin, Rodarvus (vulgo Rodrigo), Gustavo Niemeyer (Python, Smart, …), Sérgio Bruder (PontoBR), Cláudio Matsuoka (um moonte de coisas), Hélio (KDElio), Alfredo Kojima (WindowMaker, apt-rpm, …), Aurélio (verde, que à época era o verde666), Paulo César Andrade (driver Vesa pro XFree86), etc etc etc etc etc… E eu lá, no meio desse monte de gente 🙂

    Não preciso dizer que ter trabalhado na Conectiva é equivalente a jogar na Seleção Brasileira para um jogador de futebol.

    Algum tempo depois fui trabalhar Objective Solutions onde tive o privilégio de conhecer caras muito bons, entre eles: Klaus Wuestfeld (Prevayler). Na Objective eu aprendi a programar usando Orientação à Objetos.

    Trabalhar com Python também faz com que a gente tenha contato com pessoas fora do comum no quesito inteligência. Não é qualquer comunidade que dispõe de pessoas do naipe de Luciano Ramalho, Érico Andrei, Jean Ferri, Rodrigo Senra, Pedro Werneck, Xiru, Sidnei da Silva, Gustavo Barbieri, José Nalon, etc etc etc.

    As pessoas que fazem muito blablabla (chamados de “Boi” pelo Júlio Cezar Neves) deveriam se inspirar no trabalho dessas pessoas citadas aí em cima e parar de ficar discutindo coisas inúteis sobre “Melhor distribuição Linux”, “Gnome vs. KDE” ou outra coisa do tipo.

  • A LER e a DORT

    Por falta total de idéias para postar por aqui e por ter participado hoje de uma ginástica laboral no trabalho resolvi tratar de saúde.

    Não existiria alguém mais inadequado para falar de saúde do que eu, um inveterado anti-atividades-físicas, mas nos casos específicos da LER e das DORT eu até atrevo a emitir uns comentários. Me atrevo porque já sofri consideravelmente com dores nos pulsos causadas por uma tendinite tratada à base de repouso prolongado e anti-inflamatórios.

    Para nós programadores ‘repouso prolongado’ geralmente causa alguns problemas financeiros (principalmente quando se trabalha como ‘terceirizado’) e para evitar esse tipo de problema para meus colegas de trabalho vou tentar dar alguns conselhos de vários tipos para poupá-los de tais problemas.

    Antes de começar vamos definir de forma simplista o que significa LER (Lesão por Esforço Repetitivo) e DORT (Distúrbio Osteomuscular Relacionado ao Trabalho).

    A LER é uma lesão (como o nome diz) que é causada pela movimentação repetitiva de partes do nosso corpo. Exatamente o tipo de movimento que meus dedos estão fazendo enquanto digito esse texto ou movimentando o mouse.

    A LER é um tipo de DORT. DORT é qualquer problema causado à nossas estruturas ósseo/muscular por atividades relacionadas ao trabalho. A LER é a mais famosa delas.

    Após essas definições supersimplificadas que certamente causarão arrepios aos mais experientes professores de educação física e fisioterapeutas que lerem esse post vamos à algumas medidas que visam melhorar as nossas chances de não desenvolver um desses problemas.

    Postura

    Quando eu me sento para trabalhar pareço um lord-inglês. Postura ereta, cabeça posicionada corretamente, pés plantados completamente no chão e os braços e pernas formando ângulos retos. Essa posição dura cerca de 5 minutos. Esse é o tempo necessário para que eu me perceba praticamente deitado no assento das cadeiras e as mão digitando na altura da cabeça.

    Esse problema tem sido o mais difícil de resolver e minhas costas já estão avisando que é bom eu providenciar rapidamente uma solução. Se eu praticasse alguma atividade física que fortalecesse a musculatura das costas esse problema diminuiria consideravelmente mas, definitivamente, sou preguiçoso demais para fazer isso 🙂

    Estou pensando em me amarrar com um cinto bem apertado na linha da cintura à cadeira (da mesma forma que a gente usa cintos de segurança de 2 pontas). Assim eu não ‘escorregaria’ para baixo da mesa 🙂 Vou consultar algum especialista na área, experimentar isso e depois falo qual foi o resultado 🙂

    Eu não achei uma boa ilustração para colocar aqui com a postura ideal para se usar um computador mas basta lembrar de algumas regrinhas:

    • Braços e pernas formam ângulos de 90 graus.
    • Braços apoiados completamente sobre a mesa.
    • Pés plantados completamente no chão.
    • Tronco ereto e olhos olhando para o ‘horizonte’.
    • Parte de cima da tela do monitor deve estar exatamente na altura dos olhos.

    Equipamentos

    Algumas dicas importantes para o uso do ‘equipamento’:

    • Não use aqueles apoios de braço. Eles fazem com que seu braço não fiquem totalmente escorados na mesa.
    • Use luvas imobilizadoras somente sob orientação de médico. Essas luvas podem até piorar a situação. Cuide também para, caso usá-las, não apertar muito para não prejudicar a circulação.
    • Se você tiver dinheiro para ‘gastar’ compre bons teclados e mouses. Gaste mais dinheiro nisso do que naquela super nVidia 9000GXF+++ que você estava pensando em comprar. Mouses e Teclados são um caso à parte por isso tratarei separadamente.
    • Eu prefiro monitores LCD aos CRT. Não só pela beleza e estética mas porque eles não oscilam e me dão menos dor-de-cabeça. Não sei se essa sensação tem algum fundamento científico mas minha experiência pessoal prefere o de LCD.

    Teclados

    Para nós programadores essa é a ferramenta mais usada. Então porque gastamos fortunas com placas de vídeo, memória e processador e sempre economizamos nesse dispositivo? Eu não entendo. Mas vou colocar aqui algumas coisas que eu, em minha experiência pessoal sem base científica/estatística alguma, percebi:

    • Teclados ABNT são melhores que teclado US para nós programarmos. Digitamos menos para obter um “ç”, ‘”‘ ou uma “‘” tão comuns para delimitar strings em um programa. Digitamos menos porque nos teclados ABNT essas teclas são separadas das teclas de acentuação tornando desnecessário ‘”‘+espaço para obter uma ‘”‘.
    • Prefira teclados cujas teclas tenham o ‘curso’ menor. Teclados de notebook são assim e alguns teclados para desktops à venda também possuem esse tipo de tecla.
    • Eu troquei o meu Caps Lock de lugar com o Control Esquerdo, assim, evito 2 problemas: ficar apertando Caps acidentalmente sempre que uso a letra “A” e fazer malabarismos para digitar as combinações Ctrl+A, Ctrl+S, …
    • Me disseram que teclados DVORAK economizam esse movimentos dos dedos, mas não sei se isso é verdade.

    Mouse

    Evite usar o Mouse. Crie muitas teclas de atalho nos programas que você usa. O movimento teclado-mouse-teclado prejudica o braço.

    O Resto

    Algumas outras dicas importantes:

    • Participe das ginásticas laborais no seu trabalho caso elas existam. Se não existirem tente convencer a ‘chefia’ para que elas aconteçam (não tente fazer você mesmo essa ginástica pois fazer essas atividades de maneira errada pode atrapalhar mais que ajudar).
    • Instale o Workrave em sua máquina e desative a opção de ‘postpone’ :). Recomendo seguir as atividades propostas pelo programa. Tem algumas muito legais. Dica: desligue esse programa antes de entrar no Counter-Strike 🙂
    • Eu não gosto, mas se você gosta: pratique algum esporte/atividade física.
    • Evite programar em linguagens que exijam muita digitação: ‘public static int main(int argc, String argv[]) { System.out.println(“foo”); }’. Prefira ‘print “foo”‘ 🙂

    Seguindo essas dicas você garante mais alguns ‘anos de vida’ para seu pulso.

  • AppleScript e Python

    O meu amigo Aurélio (verde) publicou um comparativo entre as linguagens AppleScript e Python para que programadores AppleScript possam começar a programar em Python e para que programadores Python possam começar a programar para AppleScript.

    O comparativo esté em: http://aurelio.net/doc/as4pp.html

    A muuuito tempo atrás eu programei um pouquinho (bem pouquinho mesmo) para AppleScript para automatizar algumas funcionalidades do QuarkXPress (software de editoração eletrônica) em um jornal que trabalhei e me lembro que realmente era muito fácil desenvolver nessa linguagem.

    Na minha opinião ela peca por excesso de ‘verborragia’ e o principal problema dela é o fato de funcionar apenas na plataforma Apple.

    Para os que pretendem desenvolver aplicações maiores para essa plataforma seria legal dar uma olhada na linguagem Objective-C e nos bindings Python para Objective-C.

  • Mini-curso Python

    Sexta-feira passada ministrei um mini-curso de Python no meu trabalho.

    O pessoal gostou da linguagem e achou ela bastante prática. Mas não faltaram as reclamações de sempre:

    …blablabla ter que colocar o ‘self’ na declaração do método blablabla…

    Ou ainda aquela:

    …blablabla bloco de código definido por indentação blablabla…

    E tem aquela “inédita” da:

    …blablabla SEM TIPAGEM MEU CÓDIGO VAI FICAR TODO BUGADO! blablabla…

    Se tipagem reduzisse a quantidade de bugs de um sistema dificilmente uma aplicação Java tinha erro.

    Ah… e já ia me esquecendo da famosa:

    …blablabla É LENTO!!! blablabla…

    Essa repetição de argumentos já está me deixando cansado. Podiam começar a usar alguns argumentos novos para o debate (como o fato da nomenclatura de métodos e classes dos módulos da biblioteca padrão serem todos ‘despadronizados’ ou coisa do tipo).

    Mas de todas as que eu ouvi lá a que eu mais amo de paixão é a frase:

    Python não serve para desenvolver sistemas grandes.

    É… Alguém precisa avisar o pessoal do Google disso…

    Acho que uma pessoa menos cabeça-dura/teimosa do que eu já estaria acreditando em tudo isso que foi dito e estaria feliz programando em XML… ops… Java com Struts em algum departamento de TI Dilbertiano me achando o programador mais feliz do mundo por estar “ganhando dinheiro” com isso.

  • Tempo e disciplina

    Apesar de ser ainda muito jovem (tá, eu admito que estou com alguns fios de cabelo branco aparecendo e alguns dos fios pretos insistem em se suicidar pulando da minha cabeça) eu programo computadores a bastante tempo. Pra falar a verdade eu programo computadores desde meus 9 anos de idade (nasci em 1977) quando programava em LOGO (aquela da tartaruga) e Basic (MSX e Apple).

    Já notaram como nerds são saudosistas? 🙂

    Apesar da minha pouca idade eu era um mini-nerd muito disciplinado. Sempre que começava a desenvolver alguma coisa parecia uma máquina de produzir código (e quando eu vi alguns desses códigos recentemente descobri que eu programava muito melhor do que hoje). Sentava diante do meu Expert e começava a ‘fritação’, comia os lanches oferecidos na minha jaula… digo… quarto com uma das mãos enquanto a outra digitava ‘if opc$ = “a” then gosub 10000: rem subrotina foo’…

    Nos finais de semana meus colegas do bairro (sim, eu era um nerd com amigos, não me pergunte como eu fazia) iam todos para casa jogar no meu computador. Mas não iam jogar “Kings Valley” da Konami, iam para jogar o ‘superjogo’ feito por mim “ED-209” (inimigo do Robocop) que movimentava “Sprites” e fazia side scrolling… jogo bom mesmo.

    Hoje eu não consigo mais essa façanha. Pareço um doente de ‘DDA’. A desculpa que eu dava era a de que eu não tinha tempo. Mas neste exato momento eu tenho tido bastante tempo e mesmo assim não tenho produzido nada.

    Posso tentar criar diversas desculpas para esse problema mas a verdade é que minha disciplina foi-se embora a muito tempo e mal consigo segurar um pouquinho dela para fazer um post para esse blog.

    Esse tipo de situação faz com que eu sinta uma inveja muito grande (uma inveja sadia daquele tipo que parece muito com admiração) de pessoas como o Gustavo Niemeyer. O Gustavo parece ter um dia de 36 horas para trabalhar. É impressionante a lista de projetos que ele consegue produzir. Ontem ele lançou a versão 1.0 do módulo DateUtils para Python. Isso foi pouco tempo depois dele ter apresentado uma palestra na EuroPython sobre o outro módulo Python para resolução de problemas de restrições que ele também fez. Ele também fez o Smart e o Pybot, tem também o LunaticPython e o … e o … e o …

    Não é pra ter inveja? 🙂

    Eu não fiz links para os projetos dele porque deu preguiça e porque todos estão listados na página pessoal dele.

    Para compensar a total falta de coisas feitas em casa eu tenho feito bastante coisa legal no trabalho. Tenho trabalhado com Python (e C, já que estou fazendo bindings para uma biblioteca feita em C) para fazer com que essa linguagem seja bastante usada na plataforma Maemo.

  • 800!

    Parece que estou inspirado hoje… Acho que o motivo é que passamos a marca dos 800 membros na nossa comunidade pythoniana 🙂

    Agora é trabalhar bastante para continuarmos crescendo até dominar o mundo… 🙂

    Conseguimos superar essa marca porque o BR-Linux publicou uma notícia falando sobre o sucesso de nossos amigos Rodrigo Senra e Gustavo Niemeyer estão fazendo na Europython.

    Parabéns à todos que contribuíram para atingir esse número de usuários e parabéns ao Rodrigo Senra e ao Gustavo Niemeyer pelo trabalho realizado.

  • Codegen Definition file generator

    Já dizia meu pai: ‘Cabeça não pensa, o corpo sofre’. Precisei de um gerador automático de arquivos de definição (.defs) usados pelo codegen do PyGTK para gerar automaticamente os bindings Python para o PyGTK aqui no meu trabalho.

    Após uma rápida procura dentro do diretório codegen do PyGTK não achei nada que poderia fazer esse tipo de tarefa e então parti para a ‘ação’ e fui implementando um scriptzinho que fizesse isso.

    Hoje me deu um ‘estalo’ e eu resolvi perguntar para o Kiko se ele sabia de algo que fazia isso. Ele me respondeu: ‘codegen/h2def.py’.

    Resultado: trabalho perdido ?

    De qualquer forma eu usei uma maneira ligeiramente diferente para resolver o mesmo problema.

    Acontece que o meu script não está completo ainda (falta parsear estruturas ‘enum’) e estou com pressa para terminar meu trabalho. Como já existe um script pronto para fazer isso vou usá-lo agora e futuramente termino o meu.

    Para o caso de eu demorar para voltar ao meu script vou disponibilizá-lo aqui. Se alguém quiser mexer nele, ou, submetê-lo para o pessoal do PyGTK, mande bala.

  • Python, Pygame e Nokia 770

    Hoje eu e o Rudá fizemos o teste definitivo do Python com Pygame no Nokia 770. Testamos ele com o jogo Solarwolf que é um dos joguinhos mais completos no site do Pygame. Enquanto eu preparava ele pra rodar no 770 (eu tive que truncar a imagem que originalmente era 800×600 para que ela coubesse na tela de 800×480) eu pensei: “Isso não vai funcionar. Vai ficar lento toda a vida”.

    A boa notícia: não ficou lento! 🙂 A má notícia: O protótipo que a gente tem aqui não está com o som configurado ainda, logo, o jogo ficou mudo.

    Particularmente fiquei superfeliz com o resultado. A gente já tem todos os pacotes prontinhos para rodar isso dentro do Scratchbox. Só não disponibilizamos publicamente ainda porque estamos com um probleminha que tá impedindo que a gente se conecte com nosso servidor Web.

    Além desse trabalho eu estou fazendo os bindings Python para a biblioteca Hildon da plataforma Maemo. O segredo para isso é gerar uns arquivos com a extensão ‘.defs’ (com sintaxe Scheme) com as definição das APIs da biblioteca em C. Para não ficar fazendo ‘trabalho de macaco’ eu estou fazendo um gerador automático de ‘.defs’. Se funcionar direito eu acho que será útil para o pessoal que desenvolve o PyGTK também.

  • Arrogância Pythonica

    Não é muito raro ouvir (ver) em alguns sites pessoas dizendo que a comunidade Python é arrogante. Também não é difícil notar que existem talvez umas 3 pessoas que dizem isso. Este post se tornou necessário porque apesar de serem poucos essas pessoas são extremamente ruidosas.

    Se o trabalho deles é o de ‘destruir’ a nossa comunidade temos que agir imediatamente para derrubar o mito criado por essas pessoas.

    A comunidade Python no Brasil hoje está crescendo num ritmo bom que garante que ela aumente de tamanho sem perder a qualidade, ou seja, estamos crescendo e não inchando.

    Para todos os pythonistas brasileiros é importante ter pessoas esforçadas em aprender e a estudar essa ferramenta e não sangue-sugas que simplesmente entram para o time porque é sexy usar uma ‘linguagem alternativa’ ou porque precisam entregar um trabalho para o seu professor e precisam de alguém para fazer o serviço (esse tipo, aliás, não é exclusivo de nossa comunidade).

    Algumas das pessoas que propagam que a comunidade Python brasileira é ‘arrogante’ fazem parte dessa minoria que tenta dar uma de espertos para cima da nossa comunidade.

    Coisas do tipo “<loser> Ei! faça o meu trabalho de faculdade? <pythonista_arrogante> Não <loser> Nossa! Como vocês são arrogantes!” são menos incomums do que deveriam ser.

    Uma outra coisa que também faz com que o clima esquente em nossas listas de discussão é: intolerância. Fico impressionado como as pessoas andam intolerantes. Juntando à essa intolerância a impossibilidade de expressar sentimentos via e-mail e o estrago está feito. Vou ilustrar algo real que aconteceu em nossa lista recentemente em uma discussão que falava sobre a total liberdade que Python dá ao programador e sobre os perigos que isso representava:

    Parece coisa de C o programador sabe o que ta fazendo ele
    permite fazer qualquer loucura heheh

    Uma opinião pessoal interessante, com um “heheh” no final que demonstra claramente que trata-se de uma brincadeira. A resposta para isso foi:

    Cuidado com este tipo de comentário. Está sugerindo
    programadores em Python não sabe o que está fazendo?

    A nossa sorte que a pessoa que mandou a primeira mensagem era uma pessoa legal e não resolveu sair da lista e sair por aí falando que todos os pythonistas agem dessa maneira. Não é legal condenar toda uma comunidade por um equívoco cometido por um dos membros. O pythonista que foi descuidado em sua resposta, por exemplo, é um excelente membro da lista e prontamente responde à todos que solicitam ajuda, mas dessa vez, admito, pisou na bola.

    Esse problema também ocorre em diversas outras listas de discussão que eu participo e por isso eu digo e repito à todos que estão lendo isso aqui: Sejam tolerantes em discussões, principalmente nas ocorridas através de mensagens escritas onde a carga emocional não pode ser trasmitida de forma satisfatória.

    Uma outra dica para os recém-chegados ao meio do Software Livre em geral: ninguém tem obrigação de te ajudar em nada no universo do Software Livre. As pessoas te ajudarão em solidariedade e no interesse de que a comunidade do Software Livre cresça com pessoas esforçadas. Na comunidade do Software Livre não tem bobos e ‘nerds babões’ como dizem por aí, portanto, não tentem dar uma de espertos pra cima da gente que não vai colar. Demonstre que você já tentou solucionar os seus problemas antes de enviar uma dúvida para uma lista.

    E o recado mais importante: Antes de mandar uma mensagem para uma lista de discussões (qualquer uma e não apenas a python-brasil) dê uma lida nesta página para que depois você não fique nos chamando de arrogantes.