O IPython já é velho conhecido de quem desenvolve em Python, dispensa introduções etc... Mas outro recurso interessante, e que ainda não é muito explorado, é o recurso de notebook: um caderno onde se pode desenvolver de forma interativa.
Ele é igual a ideia dos notebooks, worksheets etc... para quem já usou o Mathematica, o Sage ou outros softwares matemáticos: um documento que concentra todo o código-fonte, junto (ou não) com a descrição e/ou a documentação dele.
Para usá-lo? Simples: digite ipython notebook --pylab inline no terminal, e pronto, vai abrir uma janela do seu browser. Daí é só criar um novo notebook.
Todos os recursos do IPython estão disponíveis (exceto o %debug, que requer uma interatividade que o 'notebook' ainda não suporta). E inclusive é possível embutir vídeos, imagens etc... dentro do documento! Excelente para a geração de aulas, tutoriais, e outras coisas que não são tão práticas de fazer com outros softwares (inclusive certos softwares proprietários :)
Ele também se demonstra um ótimo ambiente para trabalhar com Octave, R, etc... ou (para quem gosta - acho que todos sabem que eu não faço parte dessa estatística) com o MATLAB, através das extensões do IPython.
Outra vantagem, que eu não explorei, é a execução dele num servidor dedicado ou na nuvem: tchau à necessidade de instalar uma cópia do ambiente em cada máquina, basta ter um browser razoavelmente atual e pronto.
Uma possibilidade final que o IPython fornece é executar em um 'terminal gráfico' em Qt, usando o comando ipython2 qtconsole --pylab inline. Essa é mais interessante para scripts que executem e forneçam seus resultados de forma visual.
Opiniões e considerações sinceras sobre temas diversos, vindas de um engenheiro que escreve nas horas vagas (ou o contrário).
domingo, 2 de dezembro de 2012
sábado, 3 de novembro de 2012
ENEM estão preparados
Hoje (03/11) e amanhã, está acontecendo o ENEM (por sorte só precisei fazer uma vez, em 2007, na época em que ainda não era válido como entrada para o vestibular). Como todos os anos e em qualquer concurso público de grande porte, sempre há alguma trapalhada - felizmente nesse ano não houve nenhum vazamento de prova - e invariavelmente existem pessoas que conseguem fazer besteira.
Começa pelo falso anúncio de um suposto cancelamento da prova, que percorreu as redes sociais e foi o suficiente para muita gente perder a prova. Chegamos a uma inversão fantástica, sobre a qual já falei aqui no blog: um quase-anônimo, um troll, falando em uma rede social tem mais peso e gera mais buzz do que o próprio organizador da prova!
Outros chegaram atrasados, como sempre encontrando bodes expiatórios: foi o trânsito. Foi isso e aquilo. Faltou ônibus. Pode ser que tenha faltado, mas nada invalida a irresponsabilidade de chegar uns 30 minutos antes da prova. Aliás, se fosse para ir a qualquer outra coisa sem ser uma prova, essas pessoas estariam lá horas, dias antes. Teriam todo um esquema de deslocamento para ir a uma festa ou a uma final de um jogo, mas não fazem o mesmo para uma prova? Interessante...
Alguns dos que entraram, já começaram sendo expulsos por tirarem fotos das provas ou twittarem de dentro da sala de prova. E o mais legal de tudo: dá pra ver o username de uma dessas pessoas... e olhando no Instagram dela: ela deletou a foto, já tarde demais. Que legal, não? Que orgulho para todos os amiguinhos e familiares dela ver o nome dela estampado nos sites de notícias, junto com a informação de que a prova seria anulada. E mais bonito ainda é não ter responsabilidade pelo que faz e sair correndo para consertar as cagadas.
Mas o pior de tudo: gente que, não tendo sido enganada pelo cancelamento da prova, e nem tendo chegado atrasada, tirado fotos das provas ou esquecido de marcar o cartão, "chutou todas as questões", estava cansada pois tinha ido a uma festa na noite anterior. Quais são as prioridades dessa pessoa mesmo?
Muitos nem sequer leram (ou deixaram para ler na última hora - como é de praxe na cultura do virar a noite estudando) o manual do candidato, o edital etc... que deixava claríssimas todas as regras da prova. Preferem a opinião de um qualquer-um nas redes sociais à documentação oficial.
Simplesmente: queria ver essas pessoas em uma faculdade. Quanto tempo iriam durar lá dentro e com que aproveitamento iriam se formar (se é que iriam) se eles se portassem da mesma forma que se comportaram no ENEM, chegando atrasados, esquecendo de colocar respostas na prova e "chutando tudo" - não lembro de nenhuma prova onde eu tenha conseguido chutar.
Talvez toda essa imaturidade e irresponsabilidade explique os índices de desistência e de reprovação (combatidos com um emburrecimento da matéria nas faculdades - afinal, eles precisam de estatísticas positivas para conseguir verba, e professor que reprova muito é carrasco, só serve pra ferrar os alunos, e outras palavras impróprias para o horário).
Infelizmente, nosso problema não é apenas educação; é a completa falta de maturidade necessária para realizar uma prova e cursar o ensino superior, é a falta de capacidade de interpretação de regras e de instruções, é a falta de capacidade de diferenciar o que é verdade do que é fraude, calúnia ou enrolação, é a falta de capacidade de lembrar de um compromisso e se preparar de forma correspondente (mas garanto que se fosse uma festinha, eles já estariam preparados 2 horas antes e com todo um esquema de transporte planejado).
Ainda temos um caminho muito longo a percorrer até conseguirmos arrumar a geração de idiotas que formamos: a geração que leva tudo na brincadeira, que precisa colocar tudo a perder apenas para satisfazer seu desejo de compartilhar e de fazer piadinha, a geração irresponsável.
Créditos da foto: G1
Começa pelo falso anúncio de um suposto cancelamento da prova, que percorreu as redes sociais e foi o suficiente para muita gente perder a prova. Chegamos a uma inversão fantástica, sobre a qual já falei aqui no blog: um quase-anônimo, um troll, falando em uma rede social tem mais peso e gera mais buzz do que o próprio organizador da prova!
Outros chegaram atrasados, como sempre encontrando bodes expiatórios: foi o trânsito. Foi isso e aquilo. Faltou ônibus. Pode ser que tenha faltado, mas nada invalida a irresponsabilidade de chegar uns 30 minutos antes da prova. Aliás, se fosse para ir a qualquer outra coisa sem ser uma prova, essas pessoas estariam lá horas, dias antes. Teriam todo um esquema de deslocamento para ir a uma festa ou a uma final de um jogo, mas não fazem o mesmo para uma prova? Interessante...
Alguns dos que entraram, já começaram sendo expulsos por tirarem fotos das provas ou twittarem de dentro da sala de prova. E o mais legal de tudo: dá pra ver o username de uma dessas pessoas... e olhando no Instagram dela: ela deletou a foto, já tarde demais. Que legal, não? Que orgulho para todos os amiguinhos e familiares dela ver o nome dela estampado nos sites de notícias, junto com a informação de que a prova seria anulada. E mais bonito ainda é não ter responsabilidade pelo que faz e sair correndo para consertar as cagadas.
Mas o pior de tudo: gente que, não tendo sido enganada pelo cancelamento da prova, e nem tendo chegado atrasada, tirado fotos das provas ou esquecido de marcar o cartão, "chutou todas as questões", estava cansada pois tinha ido a uma festa na noite anterior. Quais são as prioridades dessa pessoa mesmo?
Muitos nem sequer leram (ou deixaram para ler na última hora - como é de praxe na cultura do virar a noite estudando) o manual do candidato, o edital etc... que deixava claríssimas todas as regras da prova. Preferem a opinião de um qualquer-um nas redes sociais à documentação oficial.
Simplesmente: queria ver essas pessoas em uma faculdade. Quanto tempo iriam durar lá dentro e com que aproveitamento iriam se formar (se é que iriam) se eles se portassem da mesma forma que se comportaram no ENEM, chegando atrasados, esquecendo de colocar respostas na prova e "chutando tudo" - não lembro de nenhuma prova onde eu tenha conseguido chutar.
Talvez toda essa imaturidade e irresponsabilidade explique os índices de desistência e de reprovação (combatidos com um emburrecimento da matéria nas faculdades - afinal, eles precisam de estatísticas positivas para conseguir verba, e professor que reprova muito é carrasco, só serve pra ferrar os alunos, e outras palavras impróprias para o horário).
Infelizmente, nosso problema não é apenas educação; é a completa falta de maturidade necessária para realizar uma prova e cursar o ensino superior, é a falta de capacidade de interpretação de regras e de instruções, é a falta de capacidade de diferenciar o que é verdade do que é fraude, calúnia ou enrolação, é a falta de capacidade de lembrar de um compromisso e se preparar de forma correspondente (mas garanto que se fosse uma festinha, eles já estariam preparados 2 horas antes e com todo um esquema de transporte planejado).
Ainda temos um caminho muito longo a percorrer até conseguirmos arrumar a geração de idiotas que formamos: a geração que leva tudo na brincadeira, que precisa colocar tudo a perder apenas para satisfazer seu desejo de compartilhar e de fazer piadinha, a geração irresponsável.
Créditos da foto: G1
sábado, 13 de outubro de 2012
A morte do PC: ainda não
Os rumores sobre minha morte foram exagerados. - Mark Twain
Virou lugar-comum dizer que o PC está obsoleto e que estamos na era de um "pós-PC" baseado em tablets e smartphones. Nada poderia estar mais longe da verdade. Vejamos por que:
O que já vemos é um maior consumo de conteúdo em dispositivos móveis - que é o que a maioria dos usuários casuais faz - e o computador sendo deixado para eventualmente fazer algum trabalho mais elaborado. Nos usuários corporativos (especialmente quem não depende de softwares de nicho e nem de processamento pesado para seu trabalho), veremos uma situação similar: o computador fica na empresa, o tablet vai a campo e o smartphone fica 24 horas com a pessoa.
Mas isso está longe de ser o canto do cisne do computador pessoal: ninguém conseguiu substituir ele de forma completa, exceto talvez para os usuários muito casuais e cujo uso seja restrito a navegar em alguns sites e brincar com alguma app (vejo a maioria das apps como brinquedos) de vez em quando. O caminho provavelmente vai ser a convergência, e todos viverão felizes para sempre.
Virou lugar-comum dizer que o PC está obsoleto e que estamos na era de um "pós-PC" baseado em tablets e smartphones. Nada poderia estar mais longe da verdade. Vejamos por que:
- Em primeiro lugar: a maioria dos computadores atuais já atingiu um
patamar de "bom o suficiente" para a maioria das pessoas. Não vai ser a troca
de um Core 2 Duo para um i3 ou i5 que vai tornar um usuário doméstico
ou corporativo comum (Office, internet e talvez alguma outra coisa) mais produtivo.
Claro que sempre haverão áreas onde é necessário maior poder de processamento. Mas eles representam ínfima parcela do mercado (quantos daqui realmente são gamers ou trabalham profissionalmente com edição de áudio/vídeo ou desenvolvimento?), não pesam muito nas estatísticas.
A situação é ainda mais estável em ambiente corporativo: aquele velho Pentium 4 é mais do que suficiente para acessar o sistema da empresa e o IE 6 (e consequentemente o Windows XP) necessário para acessar a intranet desta. Há também todo um custo - nada bem-vindo em tempo de crise - envolvido para atualizar e homologar novos sistemas operacionais.
A consequência disso? Um alarmismo de 'as vendas de computadores novos se reduziram', o que está levando à falaciosa conclusão de que 'o PC está morrendo'. Ele não está morrendo: trata-se simplesmente dele ter chegado ao nível 'bom o suficiente' para muitos. - Produtividade em tablets e smartphones? Ainda é limitada. Não consigo
imaginar ninguém produzindo grandes documentos nesses dispositivos, ou
fazendo qualquer atividade que exija maior poder computacional.
Sim, eu posso usar teclado externo nesses dispositivos, mas... (invocando o Philosoraptor) daí eles não se transformam em notebooks?
Para desenvolvimento? Pior ainda: tablets estão longe de ser autossuficientes, não podemos desenvolver software para eles neles mesmos. Os dispositivos da Apple nunca terão essa característica por razões bem óbvias (tornaria a App Store, menina dos olhos da Apple, desnecessária), e mesmo no Android o desempenho do hardware inviabiliza grandes compilações. - A nuvem... ah, a nuvem. Pena que ela seja inviável no Brasil e em muitos
países em desenvolvimento, onde a infraestrutura de internet móvel
ainda é limitada, e mesmo nos países 'desenvolvidos' ela esbarre em
problemas de cobertura e principalmente: limites de tráfego.
Alguns gigabytes de franquia vão com facilidade quando tudo está online, e então voltamos à velocidade de discada. Sem falar nos óbvios problemas com privacidade, direitos de usuário etc... - Desktops e notebooks ainda são mais baratos que tablets, principalmente
nos países em desenvolvimento, e entregam muito mais valor.
Mesmo um desktop de 5 anos de idade, que pode ser comprado usado, consegue rodar softwares atuais de forma adequada com alguns upgrades não tão caros (passar um computador de 2 para 4 GB de RAM é muitas vezes suficiente). O mesmo não se pode dizer (ou melhor, não se poderá dizer - veremos daqui a uns anos, quando o primeiro iPad fizer 5 anos) dos tablets. - PCs dão uma liberdade muito maior do que dispositivos que precisam de
rooting ou jailbreak para permitir o uso irrestrito. Em um PC, posso instalar o
sistema operacional e o software que eu quiser (por meios lícitos ou não), sem depender de uma loja
de aplicativos.
Se o Windows não me permite ou me limita a fazer alguma coisa, posso usar o Linux, e o contrário também é verdadeiro; ou posso usar diversos sistemas ao mesmo tempo - algo obviamente impossível de fazer com um dispositivo móvel. Se o meu sistema operacional tem problemas com licenças ou DRM, uso outro: algo que nenhum tablet ou smartphone permite sem gambiarras extensivas.
- É muito mais difícil garantir a segurança de um dispositivo móvel do
que a de um computador preso a uma mesa. Nem preciso enumerar os casos
de vazamentos de dados e as complicações trazidas pelo fato de alguém
esquecer seu smartphone ou tablet em algum lugar.
- Por fim: nos dispositivos móveis, existe o
consumismo burroencanto de saiu um modelo novo com mais recursos/hardware melhor, o que por si só já é suficiente para motivar a troca de dispositivo: mais uma vez, inflando o mercado.
O que já vemos é um maior consumo de conteúdo em dispositivos móveis - que é o que a maioria dos usuários casuais faz - e o computador sendo deixado para eventualmente fazer algum trabalho mais elaborado. Nos usuários corporativos (especialmente quem não depende de softwares de nicho e nem de processamento pesado para seu trabalho), veremos uma situação similar: o computador fica na empresa, o tablet vai a campo e o smartphone fica 24 horas com a pessoa.
Mas isso está longe de ser o canto do cisne do computador pessoal: ninguém conseguiu substituir ele de forma completa, exceto talvez para os usuários muito casuais e cujo uso seja restrito a navegar em alguns sites e brincar com alguma app (vejo a maioria das apps como brinquedos) de vez em quando. O caminho provavelmente vai ser a convergência, e todos viverão felizes para sempre.
segunda-feira, 13 de agosto de 2012
Keep calm and ask on Stack Exchange
Descobri a rede Stack Exchange quando estava com uma dúvida em um programa no qual estava trabalhando e, quando o Google não adiantou, lembrei do Stack Overflow (o primeiro site dessa rede). Embora não participe do Stack Overflow ativamente, uso outros sites da rede; e muitas vezes eles são mais convenientes do que o Google para achar respostas de alta qualidade.
Algumas coisas de que gosto nela:
- A principal: ela NÃO é um fórum ou uma rede social (e quem tentar usá-la dessa forma vai quebrar a cara rapidinho), mas sim um espaço para Q&A de alta qualidade. Perguntas subjetivas, que podem gerar flames ou mimimi, trollagens etc... não duram muito tempo antes de serem rejeitadas pela comunidade (que pode votar em perguntas/respostas de alta ou baixa qualidade), fechadas ou sumariamente deletadas. Não é um Yahoo! Respostas e suas pérolas.
Na própria descrição da rede:We welcome questions that are clear and specific, representing real problems that you face; Stack Exchange is not the place for conversation, opinions, or socializing.(Somos abertos a perguntas claras e específicas, representando problemas reais que você venha a encontrar. Stack Exchange não é o local para conversas, opiniões ou fazer amigos.)A atividade social mais próxima disso são as salas de "bate-papo". Não, não é em nada parecido com os velhos e bons (???) bate-papos do UOL/Terra/etc...: servem, por exemplo, para que um usuário possa pedir esclarecimentos acerca de uma pergunta.
- Usuários recebem pontuação por boas perguntas/respostas e podem ser premiados com badges por feitos (por exemplo, uma pergunta com mais de mil visitas, ou que recebeu mais de 10 votos, ou um usuário generalista, que responde perguntas de diversos assuntos).
- A comunidade é a moderação: conforme o usuário vai ganhando pontuação, ele ganha o direito de editar questões, votar, entre outras atividades. Questões ruins ou inadequadas ao propósito de um dos sites? Quem as modifica, ou recomenda o fechamento delas, é a comunidade. Efetivamente um usuário de alta pontuação não tem muitas diferenças em relação a um moderador (a principal diferença: a palavra dos moderadores é final, e eles tem poderes como bloquear usuários).
- Aliás, é a comunidade quem promove a criação de novos sites, através do Area 51. Um processo de feedback: os interessados propõem novos sites (ou demonstram interesse nos que já existem) e, assim que é atingida a massa crítica, o site é lançado em caráter experimental: disto ele pode vir ou não a sobreviver.
Através desse processo já foram lançados sites para diversos temas: de Linux a judaísmo, passando por bicicletas e ficção científica. Outros encontram-se em "beta": xadrez, design gráfico, processamento de sinais etc...
O Stack Exchange foi um dos serviços que realmente demonstrou a capacidade de atrair perguntas e respostas de alta qualidade, vindas de profissionais e entusiastas das mais diversas áreas. Altamente recomendado, apesar do caráter potencialmente viciante, para programadores, administradores de sistemas, DBAs, usuários Linux ou para quem se interessa por matemática, física ou eletrônica, entre outras coisas.
quarta-feira, 8 de agosto de 2012
A culpa é da NASA?
Como era de se esperar, depois da recente chegada da Curiosity à Marte, vemos uma tonelada de mimimis do tipo a NASA gasta dinheiro para isso, enquanto tem gente morrendo de fome na Terra: a velha história de colocar a culpa no lugar errado.
Simples: Não reclamem com a NASA, ela não tem nada a ver com isso, ela não é ONG ou instituição de caridade e tampouco está na missão dela o combate à fome.
Reclamem com os verdadeiros culpados: os bancos de investimento, que deliberadamente mantêm os preços dos alimentos altos para dar lucro aos seus clientes. Os governos, que dão financiamento para exportação de alimentos, mas que cobra impostos de quem produz alimentos para consumo interno. As multinacionais da alimentação, que monopolizam (com complacência do Estado) as terras (ainda) não-exauridas dos países em desenvolvimento, posto que nos seus países de origem elas já não servem mais para sustentar os hábitos de consumo.
A NASA não tem nada a ver com o estado em que os países ricos deixaram (e deixam, até hoje) os países emergentes, nem com o fato de boa parte das nossas terras ser usada para agricultura de alto impacto (com defensivos agrícolas - eufemismo para agrotóxicos) e pecuária.
E por sinal: ela custa apenas US$ 18 bilhões (ou 0,5%) do orçamento dos EUA - contraste, por exemplo, com o custo do Ministério da Defesa americano (algumas centenas de bilhões de dólares).
NASA's FY 2011 budget of $18.4 billion represents about 0.5% of the $3.4 trillion United States federal budget during the year. (wikipédia)
(O orçamento da NASA para o ano fiscal de 2011 representa cerca de 0,5% dos US$ 3,4 bilhões do orçamento federal dos EUA no ano [de 2011]).
Somando-se a isso o fato de muita da tecnologia empregada nesses programas ser produzida e desenvolvida nos Estados Unidos: algo extremamente bem vindo, se contrastarmos com o made in China de cada dia. Aliás, essa é uma das melhores razões para que qualquer país tenha um bom programa espacial: desenvolver tecnologia de ponta (já que ela não será facilmente comprada, por motivos muito óbvios). Um progresso muito mais desejável do que o simples desenvolvimentismo cego, de baixo valor agregado e de grande impacto social e ambiental que vemos nos países "emergentes".
A propósito, boa parte da tecnologia de ponta e boa parte do que usamos hoje surgiu ou foi aperfeiçoada com ideias desenvolvidas para aplicações espaciais. Se você usou telefone celular, GPS, um computador atual etc... pode ter certeza que passou pelos resultados da exploração espacial: e aí, são pesquisas "inúteis" mesmo?
Ao contrário do que pode parecer (talvez pela escassez mundial no jornalismo científico para os não-cientistas), cortar os investimentos em pesquisas julgadas inúteis não significa necessariamente que eles irão para resolver problemas sociais, e vice-versa: a existência de um não implica a (não-)existência do outro.
Simples: Não reclamem com a NASA, ela não tem nada a ver com isso, ela não é ONG ou instituição de caridade e tampouco está na missão dela o combate à fome.
Reclamem com os verdadeiros culpados: os bancos de investimento, que deliberadamente mantêm os preços dos alimentos altos para dar lucro aos seus clientes. Os governos, que dão financiamento para exportação de alimentos, mas que cobra impostos de quem produz alimentos para consumo interno. As multinacionais da alimentação, que monopolizam (com complacência do Estado) as terras (ainda) não-exauridas dos países em desenvolvimento, posto que nos seus países de origem elas já não servem mais para sustentar os hábitos de consumo.
A NASA não tem nada a ver com o estado em que os países ricos deixaram (e deixam, até hoje) os países emergentes, nem com o fato de boa parte das nossas terras ser usada para agricultura de alto impacto (com defensivos agrícolas - eufemismo para agrotóxicos) e pecuária.
E por sinal: ela custa apenas US$ 18 bilhões (ou 0,5%) do orçamento dos EUA - contraste, por exemplo, com o custo do Ministério da Defesa americano (algumas centenas de bilhões de dólares).
NASA's FY 2011 budget of $18.4 billion represents about 0.5% of the $3.4 trillion United States federal budget during the year. (wikipédia)
(O orçamento da NASA para o ano fiscal de 2011 representa cerca de 0,5% dos US$ 3,4 bilhões do orçamento federal dos EUA no ano [de 2011]).
Somando-se a isso o fato de muita da tecnologia empregada nesses programas ser produzida e desenvolvida nos Estados Unidos: algo extremamente bem vindo, se contrastarmos com o made in China de cada dia. Aliás, essa é uma das melhores razões para que qualquer país tenha um bom programa espacial: desenvolver tecnologia de ponta (já que ela não será facilmente comprada, por motivos muito óbvios). Um progresso muito mais desejável do que o simples desenvolvimentismo cego, de baixo valor agregado e de grande impacto social e ambiental que vemos nos países "emergentes".
A propósito, boa parte da tecnologia de ponta e boa parte do que usamos hoje surgiu ou foi aperfeiçoada com ideias desenvolvidas para aplicações espaciais. Se você usou telefone celular, GPS, um computador atual etc... pode ter certeza que passou pelos resultados da exploração espacial: e aí, são pesquisas "inúteis" mesmo?
Ao contrário do que pode parecer (talvez pela escassez mundial no jornalismo científico para os não-cientistas), cortar os investimentos em pesquisas julgadas inúteis não significa necessariamente que eles irão para resolver problemas sociais, e vice-versa: a existência de um não implica a (não-)existência do outro.
sábado, 2 de junho de 2012
Python como ambiente de desenvolvimento científico
Cada vez mais recorro ao Python para resolver problemas relacionados à engenharia ou mesmo que aparecem no dia-a-dia. Por que?
Mas infelizmente, temos algumas desvantagens:
Ferramentas que eu uso:
Embora existam alternativas livres ao MATLAB, como o Octave, o Scilab etc..., depois de um tempo trabalhando com Python, essas ferramentas me parecem um enorme retrocesso, copiando alguns vícios da linguagem de "inspiração".
Para seu próximo projeto, que tal fugir das linguagens proprietárias e tentar alguma linguagem nova, que pode ser melhor e ainda por cima vir a custo zero? Pois bem, experimente o Python.
Tirinha: XKCD
- Custo, disponibilidade, licença etc...: nem preciso falar disso, se considerarmos que uma licença do MATLAB ou do Mathematica com algumas toolboxes pode custar tanto quanto um carro usado.
Sem falar que recentemente precisei fazer um trabalho com o MATLAB, e tive diversos problemas: simplesmente dava erro irrecuperável durante a execução, fazendo com que eu perdesse todo meu trabalho, além de alguns problemas com plotagens (o mesmo comando que funcionava no Windows simplesmente falhava no Linux, sem explicação aparente).
Python e suas bibliotecas encontram-se facilmente disponíveis nos repositórios de qualquer distro Linux. E para instalação de pacotes pode-se facilmente utilizar o easy_install, parte do setuptools.
No que toca as licenças, já dei minha opinião sobre formatos proprietários aqui no blog, e o mesmo vale para as linguagens proprietárias. Ciência livre requer software livre e formatos abertos. - Comunidade: a comunidade do Python é enorme! Muito maior do que a do MATLAB ou do Mathematica. No Stack Overflow, a tag python tem mais de 100 mil perguntas, enquanto a tag MATLAB tem 9 mil.
- Flexibilidade: temos bibliotecas para absolutamente tudo, científico ou não. Interfaces gráficas, conexão a banco de dados etc... são tarefas simples de fazer em Python, que muitas vezes não poderiam ser realizadas nos outros programas (por exemplo, não acreditei que o MATLAB não permitia exportar gráficos em SVG, embora estejamos em 2012 e esse formato já seja amplamente aceito) de forma direta.
Mas infelizmente, temos algumas desvantagens:
- Python no Windows? Haja saco para instalar todo o ambiente de desenvolvimento (aliás, haja saco para qualquer coisa no Windows). Uma das melhores soluções é o PythonXY, que já instala toda a bagaça (Python, SciPy, Qt etc...) com alguns cliques.
- Existe um ecossistema enorme ao redor do MATLAB e do Mathematica, principalmente para aplicações científicas, e isso
é o suficiente para desmotivar muitos potenciais usuários.
É, como eu já citei anteriormente, o círculo vicioso da ditadura da maioria: todo mundo usa, logo mais pessoas são obrigadas a utilizar. - O desempenho pode ser menor, mas para isso podem-se escrever partes de programas usando C++ junto com o Cython, assim obtendo-se o melhor dos 2 mundos: a eficiência do C++ com a simplicidade e a praticidade do Python.
Ferramentas que eu uso:
- Ambiente de desenvolvimento: Editor de texto + terminal (onde uso o IPython, o debugger etc...). Simplesmente não vejo vantagem em uma IDE completa, mas para quem gosta, a que me deu a melhor experiência foi a Spyder (que parece muito com o MATLAB).
Um ambiente bem prático para desenvolvimento "interativo" é o Sage, sobre o qual já falei aqui no meu blog. Outra alternativa é o IPython. - Bibliotecas que eu uso mais frequentemente:
- SciPy, NumPy, matplotlib, SymPy: são básicas para que o Python possa ser usado para fins científicos. Incorporam funções especiais, plotagem, resolução de integrais (numericamente e simbolicamente) etc....
- DEAP: otimização por algoritmos genéticos.
- PyQt: desenho de interfaces gráficas, utilizando o Qt como toolkit (ou seja, posso desenhar janelas usando o Qt Designer). Para plotagem pode-se usar a PyQwt
- python-control: projeto de sistemas de controle. É bem similar, no que diz respeito à sintaxe, à Control Systems Toolbox do MATLAB.
Embora existam alternativas livres ao MATLAB, como o Octave, o Scilab etc..., depois de um tempo trabalhando com Python, essas ferramentas me parecem um enorme retrocesso, copiando alguns vícios da linguagem de "inspiração".
Para seu próximo projeto, que tal fugir das linguagens proprietárias e tentar alguma linguagem nova, que pode ser melhor e ainda por cima vir a custo zero? Pois bem, experimente o Python.
Tirinha: XKCD
domingo, 29 de abril de 2012
Sobre backups, arquivos e lixo digital
Recentemente, joguei fora uma coleção de CDs e DVDs gravados, a qual só servia para ocupar espaço no meu porta-CDs e no armário. Permito algumas considerações:
(foto: morgueFile)
- Não vale mais a pena gravar CDs com distribuições Linux, ao menos para uso pessoal. No máximo um CD de uma ou outra distro para uma emergência - no meu caso é o Ubuntu e talvez o Arch.
Para instalação, um pen-drive supera perfeitamente qualquer mídia óptica: chega de instalações falhando no fim por um arranhãozinho microscópico na mídia, chega de esperar 5 minutos para o sistema inicializar. E instalação pela rede é melhor ainda, se tivermos uma conexão boa: economiza-se o tempo de atualizar o sistema. - Acumulamos lixo digital, e como: arquivos que gravamos uma vez
para nunca mais achar, esperando uma catástrofe que nos deixe isolados
do mundo - talvez aí tenhamos condições de ler aquele torrent de 100 GB de e-books.
- Achamos fotos, músicas, vídeos de quando nossos gostos e interesses eram muito diferentes. E sentimos vergonha: achei algumas montagens que eu arrisquei a fazer no Photoshop há muitos anos atrás.
- Gravar em mídia de má qualidade, arquivar em formatos proprietários, etc... são efetivamente a mesma coisa que não gravar. Vários discos estão ilegíveis, dão erros. Muitos arquivos não podem ser abertos por eu não usar mais o software no qual gerei eles.
- Backups em mídia óptica já não são muito úteis: não são práticos se comparados com a simplicidade e a praticidade de um HD externo, com o qual as cópias de segurança podem ser automatizadas.
- Não faça backup do que você pode baixar de novo. Atualizações, instaladores etc... invariavelmente ficarão desatualizados (alguém quer um instalador do Firefox 3.0? O SP2 para o Windows XP?) e podem ser encontrados facilmente na internet de novo. Fazia sentido na época da internet discada ou das conexões de 1Mbps, e faz se você precisa formatar máquinas com frequência, o que não é meu caso.
- Arquivo baixado é arquivo armazenado no lugar certo. Sem essa de um diretório genérico e "organizo depois": invariavelmente isso leva à procrastinação, ao "arrumo outra hora", etc...
- Lixo entra, lixo sai: arquivos de má-qualidade (músicas, vídeos, fotos etc...) já são descartados no ato. Realmente é relevante eu guardar uma foto toda tremida, ou um "bootleg" de baixíssima qualidade?
- Diretórios são de graça: não custa nada colocar todos os arquivos relacionados ao mesmo tema (todos os arquivos gerados por um projeto, ou todos os documentos referentes a uma disciplina ou a um trabalho) juntos, em um diretório com nome descritivo.
- Organizo artigos científicos utilizando o Mendeley Desktop, que já permite criar grupos de compartilhamento (chega de "envia pra mim"), renomear arquivos de acordo com o seu título etc....
- A nuvem (Dropbox e afins) é um ótimo complemento para pen-drives: não se
perdem, não pegam vírus por serem inseridos em máquinas Windows de uso
promíscuo, sincronizam entre infinitos computadores/smartphones
automaticamente etc...
- Porém, a nuvem não substitui backups offline completamente, e nem é interessante para dados confidenciais, por motivos óbvios.
- Arquivos desatualizados ou irrelevantes vão embora, assim como múltiplas cópias do mesmo arquivo: fica apenas a mais recente.
- Para qualquer forma de desenvolvimento, gerenciamento de versões é fundamental. Com o GitHub, o BitBucket e outros sendo gratuitos para projetos pequenos, não existem motivos para não empregá-los seu no próximo projeto.
(foto: morgueFile)
Assinar:
Postagens (Atom)



