segunda-feira, 24 de dezembro de 2012

Por que eu realmente não gosto do MATLAB

Acredito que todos que me conhecem saibam que eu realmente não gosto do MATLAB e já tenham me ouvido expressar meu desprezo por ele. Não deveria (afinal, ele é o ganha-pão da área onde eu trabalho), mas deixo isso bem claro toda vez que eu falo sobre ele. Vamos a alguns motivos:

Primeiro: a linguagem dele é péssima, tanto é que surgiram infinitos 'hacks' em cima. Impossibilita código limpo, por não ter coisas como uma boa implementação de argumentos nomeados, namespaces e uma orientação a objetos de verdade.

E por sinal, uma das maiores (na minha opinião) abominações é que o arquivo de código (.m) precisa mandatoriamente ter o mesmo nome da primeira função neste presente. Porque aparentemente includes são luxo: imaginem uma linguagem C onde em vez de stdio.h tivéssemos printf.h, scanf.h, etc...? Legal, só que não.

Segundo:
ambiente proprietário, bugado, com pouca integração com o resto do sistema, lento (quem foi o jênio que teve a ideia de que Java era uma boa ideia? Qual o problema com C/GTK ou C++/Qt?) e limitadíssimo. Várias vezes ele simplesmente acusou um fatal error no meio do trabalho e depois fechou.

Terceiro: limitações imbecis. Outro dia eu implementei um algoritmo que beneficiaria extremamente de processamento paralelo (tenho um i7, e não é justo que eu só consiga ocupar um dos núcleos). Para isso existe a toolbox de processamento paralelo do MATLAB, mas adivinhem a limitação completamente burra que existe: um "for" paralelizado só funciona quando o iterador é inteiro.

Tirando da própria documentação dele:

parfor loopvar = initval:endval, statements, end allows you to write a loops for a statement or block of code that executes in parallel  [....] initval and endval must evaluate to finite integer values [...].

Em tradução livre: parfor var_loop = val_inicial:val_fim, comandos, end" permitem você escrever um loop para um conjunto de comandos que executa em paralelo [....] val_inicial e val_fim precisam ser números inteiros [...] (grifo meu)

Sim, é isso mesmo: ou o loop só itera sobre números inteiros ou eu subutilizo minha CPU. Uma limitação totalmente arbitrária. Claro que vão aparecer gambiarras diversas para contornar a limitação: sinal de um sistema mal-projetado.

E principalmente: a maioria das pessoas usa ele por não ter que comprar a licença (afinal, tem no Pirate Bay ou é só pedir o DVD pra um dos colegas). Se tivessem que pagar por cada toolbox  - não, ele não vem com esse monte de toolboxes (eu queria ver o custo de cada uma, mas preciso preencher um cadastro que realmente não estou animado a fazer) - queria ver se existiria tanta babação de ovo em cima dele. Queria ver se professores iriam montar cursos inteiros em cima dele, ou se haveria tanta gente usando ele para mestrados e doutorados.

Aliás, queria ver se o pessoal ia defender software proprietário tão descaradamente e ia ficar nessa preguiça de procurar alternativas se não fosse fácil assim piratear. Mas isso é assunto para outro post. Lembrem, enquanto isso, das discussões sobre a necessidade de fazer ciência com software livre e formatos abertos.

Existe a versão para estudante? Sim, que é uma piada de mau gosto: limitadíssima. Só 32-bit (quase em 2013, quando qualquer computador atual já vem com SO 64-bit) e com recursos desativados. Comparar com a versão para estudante do Mathematica: nenhuma limitação técnica - apenas restrições contratuais de uso (não pode explorar comercialmente, precisa fornecer comprovante de que é estudante etc...).

Quanto à questão das licenças, podem me perguntar: e o Octave? e o Scilab?. Ambos imitações que copiam os vícios da linguagem de inspiração. Imitar uma coisa ruim torna a imitação igualmente ruim - se não pior.

Enquanto isso, fico com o Python e a comunidade fantástica que existe ao redor dele. Se eu tiver que usar um software científico proprietário, fico com o Mathematica - que, apesar da estranheza da linguagem, entrega muito mais valor pelo mesmo preço (várias das toolboxes que são opcionais no MATLAB estão incluídas por padrão nele). Minha 'loja' de toolboxes é o PyPI, o GitHub etc...  Considere o Python para seu próximo projeto, não dói nada (principalmente para quem vem do MATLAB: a NumPy, SciPy etc... são projetadas para fornecerem um ambiente de fácil adaptação).

PS: no quarto parágrafo, a escrita errada de jênio foi intencional.

domingo, 9 de dezembro de 2012

Como ser sem-noção ou mal-intencionado mesmo: o caso Tecnomania

Todo mundo já conhece a Tecnomania, da gloriosa Tekpix, a excelente câmera que ninguém tem, ninguém nunca viu e que tem lentes de diamante, processador de imagens com tecnologia da NASA e cartão de memória quântico de 216.5 TB, podendo fotografar o invisível e ser tão ou mais poderosa que o Hubble e um microscópio de elétrons ao mesmo tempo  - isso justifica o preço de mais de R$ 3500.


Mas eles não se restringem a isso: já pensou em comprar um tablet Android genérico pelo preço de 2 iPads? Eles vendem. Um tablet de 7", com recursos tão avançados quanto os de 'relógio' e 'configurações'.

  
Para comparação, o preço do iPad mais caro disponível no Brasil, na mesma data era de R$ 1999:





Acho que eles tomaram umas lições com a unidade brasileira da Apple, com a diferença que o produto deles não pode nem ser chamado de Héppow. Provavelmente é um tablet genérico, desses que se encontra às pencas na China e que custa US$ 40~60 no atacado:



Ainda não está satisfeito? Você pode comprar um cartão SD de 2 GB por R$ 299. Excelente compra, não? Vendo os cartões de 2 GB que eu tenho aqui na gaveta por R$ 100, cobrindo o preço da concorrência!

Sem falar nos outros produtos disponíveis na loja, todos com um preço que passa longe de ser minimamente coerente. Como exemplo, temos esse forno elétrico, que custa US$ 170 na Amazon e R$ 1600 na Tecnomania. Não sabia que R$ 10 = US$ 1 (chamaram a hiperinflação de volta pro poder?).

Fico pensando onde eles querem chegar com isso. Como não é ideal atribuir à malícia aquilo que pode ser explicado pela ignorância (a navalha de Hanlon), prefiro acreditar que eles querem fisgar o babaca que lê em 12 vezes sem juros e sai correndo comprar, ou que simplesmente são pseudo-vendedores burros esperando a ignorância de alguém?

Realmente existem otários a dar com pau (nos múltiplos sentidos) por aí; de outra forma, o que justificaria tudo isso?



Já que eu falei em Tekpix, aprenda a usar a sua com esse vídeo da Rede 2112 de Colaboradores:


E eles que se atrevam a deletar os produtos do site... tenho ibagens de todas essas páginas guardadas aqui e vou fazer questão de publicar elas em todas as formas.

domingo, 2 de dezembro de 2012

IPython: notebook e Qt Console

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.

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

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:

  • 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 burro encanto 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.
Concluindo: os tablets e os smartphones estão ganhando mercado? Sim, mas ele não é excludente com o mercado já estabilizado dos computadores pessoais. Faça um teste: conte quantas pessoas que você conhece tem um computador, um smartphone e um tablet. Ficou óbvio agora, não?

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.

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?
  1. 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.
  2. 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.

  3. 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.
Além disso, muitas vezes sai mais prático escrever um programa em Python do que gambiarrar um shell script que faça a mesma coisa. (admito: não sei shell script muito bem)

Mas infelizmente, temos algumas desvantagens:
  1. 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.
  2. 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.
  3. 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.
Entre várias outras disponíveis (como eu já disse, existem bibliotecas para tudo, basta ver no Python Package Index).

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
E algumas outras políticas que uso para gerenciamento de arquivos:
  1. 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...
  2. 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?
  3. 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.
  4. 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....
  5. 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...
    1. Porém, a nuvem não substitui backups offline completamente, e nem é interessante para dados confidenciais, por motivos óbvios.
  6.  Arquivos desatualizados ou irrelevantes vão embora, assim como múltiplas cópias do mesmo arquivo: fica apenas a mais recente.
  7. 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.
Dessa forma, economizo tempo e espaço em disco (apesar da vontade de simplesmente jogar tudo e, quando o HD encher, ter desculpa para comprar um maior), além de evitar outros aborrecimentos: múltiplas versões desatualizadas e incoerentes do mesmo arquivo, arquivos de baixa qualidade etc...

(foto: morgueFile)

sexta-feira, 23 de março de 2012

Em caso de dúvida, não clique nem compartilhe


Clique para ver quem visitou seu Facebook, sua conta foi bloqueada, entre outros: palavras que constam de boa parte dos murais no Facebook e que são alvos certeiros dos filtros de spam, e que vemos todos os dias a ponto de ser irritante. Assim como correntes e supostos grandes negócios que aparecem na internet: tudo não passa de um conjunto de armadilhas planejadas para pegar as pessoas pela sua curiosidade (ou desespero) e pela falta de ceticismo.

Muitos de nós somos (in)felizmente fisgados pela curiosidade de saber as últimas fofocas, de ter aquele desconto mágico ou de ganhar dinheiro fácil pela internet, ou pela preocupação que uma mera linha de assunto dizendo sua conta tem uma irregularidade pode trazer. Infelizmente, somos vítimas facílimas de uma boa dose de engenharia social explorada por esse tipo de golpe.

Uma dose razoável de ceticismo poderia evitar diversos problemas causados por esse comportamento: bastaria pensar por alguns minutos para perceber que ninguém que tivesse descoberto como ganhar dinheiro na internet, ou como comprar produtos por 1% do preço deles, sairia divulgando esse fato abertamente, e que não faz sentido eu honrar avisos de que foi bloqueada uma conta em um banco no qual nunca pisei.

(Claro, existem outras causas de crimes virtuais, roubo de dados etc...? Existem: nenhum sistema está absolutamente imune a um exploit ou a um invasor suficientemente obstinado; mas arrisco dizer que essas são exceções)

A mesma coisa pode-se dizer para outros comportamentos que, embora não caracterizem crimes, já se tornam inconvenientes: pessoas com a mania de compartilhar tudo, sem verificar fontes, sem verificar validade das informações lá descritas. E ainda por cima, se julgam ativistas, ou como eu vi esses dias, protestam contra a manipulação da mídia - que interessante: protestam contra a manipulação usando mentiras e meias-verdades para manipular pessoas.

(Felizmente, a maioria das redes sociais já fornece ferramentas para controlar isso; aplaudo especialmente o Google+, que permite um bom nível de granularidade na composição da minha página).

Compartilham causas e histórias sem pesquisarem sobre a veracidade delas, compartilham revoltas infundadas, simplesmente porque todo mundo está compartilhando. Qualquer refutação é recebida com falácias, com ataques pessoais, e outros comportamentos não tão racionais, humanistas (aham, sei) como já vi algumas dessas pessoas se auto-intitularem.

Por fim, vemos pessoas compartilhando notícias fakes, de sites como o Sensacionalista, G17 e afins, e ficando irritadas quando elas eram corrigidas. Porque obviamente, qualquer opinião divergente significa alguém que está contra ela, visto que é óbvio que os brasileiros são a escória do Facebook e que o Mark Zuckerberg demonstrou incomodação - tem que ser muito idiota pra não ver isso, certo?

Ceticismo - ao contrário do que pode parecer para muitos, até mesmo pelos contextos em que a palavra é comumente usada - não se refere apenas a questionar religiões e ideologias: ele pode (e deveria) ser aplicado a qualquer situação no dia-a-dia. Principalmente quando você está colocando dinheiro, dados pessoais ou mesmo sua reputação em jogo. Em caso de dúvida, não clique e nem compartilhe: você não vai ganhar um iPhone, nem vai ganhar milhas, fazer grandes negócios ou salvar as baleias.

segunda-feira, 27 de fevereiro de 2012

Considerações sobre software livre, compartilhamento e ciência


Recentemente, li o artigo The case for open computer programs na revista Nature, o qual trata sobre a relação entre a questão do código-fonte aberto e a reprodutibilidade de um experimento científico. Considero, então, relevante fazer algumas reflexões sobre a importância e a necessidade do software livre na ciência.

Primeiramente, se considerarmos que a reprodutibilidade é uma das partes fundamentais do método científico, compartilhar o código-fonte empregado em experimentos e em pesquisas torna-se tão fundamental quanto compartilhar os próprios resultados. Certamente não é interessante ler um artigo desenvolvemos um software para tal coisa, veja nossos resultados e não ter acesso a ele, não poder repetir os mesmos casos de teste e exemplos que os autores usaram, não poder achar bugs etc...

Simplesmente descrever o código, colocar pseudocódigo, ou colocar as equações empregadas serve em algumas circunstâncias, mas em casos onde a maior parte dos resultados são obtidos usando ferramentas computacionais, já não basta: não tenho como comparar com a implementação que você usou, não tenho como verificar se você não deixou um bug que possa ter invalidado seus resultados, tampouco sei quais os métodos que você empregou para resolver o problema e quais as limitações (ex. limitações de precisão, erros numéricos) etc... que você possa vir a ter encontrado no decorrer da sua pesquisa.

Torvalds afirmou em uma entrevista de 2004 uma posição similar:

I compare it to science vs. witchcraft. In science, the whole system builds on people looking at other people's results and building on top of them. In witchcraft, somebody had a small secret and guarded it -- but never allowed others to really understand it and build on it.

Eu [Torvalds] comparo [o software livre contra o proprietário] como ciência vs. magia negra. Na ciência, o sistema inteiro se constrói com pessoas olhando para os resultados de outras pessoas e construindo a partir deles. Na magia negra, alguém tem um pequeno segredo e o guarda -- mas nunca permitindo que os outros efetivamente entendam-no e construam a partir dele.

Ciência feita com métodos computacionais, mas sem o código-fonte, é quase magia negra, simplesmente porque torna-se praticamente impossível reproduzir resultados. Eu consigo entender o que você fez e ter uma visão geral de como isso foi feito, mas não consigo entrar em detalhes.

É importante notar que o Linus não diz que o modelo "magia negra" é ruim em outra entrevista:
But I don't think you need to think that alchemy is "evil." It's just pointless because you can obviously never do as well in a closed environment as you can with open scientific methods. 

Mas eu não quero que você pense que alquimia é 'ruim'. É apenas sem sentido, porque você obviamente não pode fazer tão bem em um ambiente fechado como você faria em um ambiente aberto.

Após, temos outro motivo para a adoção de software livre na ciência: o custo da maioria dos softwares científicos é altíssimo, o que prejudica principalmente os países em desenvolvimento, aqueles que justamente mais precisam de pesquisa e desenvolvimento para se manterem competitivos. Muitas vezes, acaba-se em um círculo vicioso: usa-se um programa proprietário - várias vezes sem licença - por ser o que todo mundo usa, impondo-se assim uma ditadura da maioria.

Existem as licenças para estudantes ou educacionais? Existem, e elas são uma solução extremamente lucrativa para os fabricantes (no aspecto mindshare), mas elas não atacam o segundo problema. Pelo contrário, podem fazer com que ele se aprofunde: formam-se futuros profissionais usando ferramentas proprietárias, os quais continuarão empregando elas em sua carreira profissional, e assim sucessivamente.

O software livre é a maior chance que temos para quebrar esse ciclo de dependência: empregar as diversas ferramentas e bibliotecas já existentes, evitando a reinvenção de rodas (reinvenções essas que muitas vezes saem quadradas, frágeis e com material de péssima qualidade), e saindo da condição de meros consumidores de ferramentas para produtores de ferramentas. No ambiente acadêmico e científico, onde estão sendo formados os profissionais do amanhã, torna-se uma forma de cortar os problemas da pirataria e da dependência tecnológica pela raiz, ou ao menos diminuí-los.

Mesmo que alguma pesquisa precise de uma ferramenta proprietária (como é extremamente comum na engenharia), ainda assim é possível tirar proveito das metodologias de software livre e do compartilhamento: muitas dessas ferramentas são baseadas em scripts ou pequenos programas, os quais também podem ser compartilhados e servirem para outros cientistas. Podem inclusive servir como fundamentação para criar um software livre que desempenhe o mesmo trabalho.

Com o compartilhamento, abre-se um enorme potencial para um peer review mais amplo do que aquele feito pelos revisores, para críticas e sugestões, melhorias no código - e até mesmo vários códigos menores tornarem-se parte de um programa maior (o exemplo que me vem à cabeça agora é o Sage, sobre o qual já falei no meu blog).

Por fim, dados abertos podem evitar problemas de retraction (quando um periódico tira um paper de circulação, seja por erros, problemas com direitos autorais etc...) e também permitir novas descobertas: vários pesquisadores podem usar diferentes ferramentas para processar esses dados, podem aplicar diferentes metodologias, permitindo a extração de novas conclusões ou a refutação de resultados anteriores.

Assim, tendo em vista o fato de cada vez mais pesquisas serem computacionais ou envolverem software no seu decorrer, considero que faz-se necessário o compartilhamento de código-fonte e o uso de formatos abertos na ciência; o cientista tem pouco ou nada a perder com isso. Também faz-se extremamente importante a adoção de software livre na pesquisa, como forma de promover a colaboração tão necessária para uma construção de conhecimento que possa vir a gerar lucro (não apenas no aspecto financeiro) para todos.

"In mathematics information is passed on free of charge and everything is laid open for checking."
"Na matemática, informação é distribuída sem custo, e tudo está aberto para verificação." . Por que não adotar este approach para as outras áreas do conhecimento?

sábado, 18 de fevereiro de 2012

Só tem porcaria? e outras coisas

Frequentemente vemos no Facebook, e em outras redes sociais, gente furiosa com os artistas que estão fazendo sucesso, ficam de mimimi, ficam reclamando que atualmente só tem porcaria, a música boa morreu, e defendem que esses músicos e compositores devem morrer ou sofrer de forma cruel; igualmente, falam da sexualidade deles, falam disso ou aqui. Talvez a música deles realmente não seja um paradigma de qualidade, talvez ela seja algo projetado para vender, mas ainda assim cabem algumas pequenas considerações.

Primeiramente, só existe porcaria musical, e realmente nada atual presta, ou é você que não sabe procurar? Ninguém está te obrigando a ouvir o que está tocando no rádio. Talvez esse argumento colasse há 10 anos atrás, quando a descoberta de novos estilos era muito mais difícil para quem não tinha uma boa rede de contatos, mas hoje não existe mais desculpa para não escolher o que se ouve.

Outra coisa interessante é que eu já vi gente auto-intitulada racionalista, humanista, que diz carregar a bandeira do não ao preconceito, tolerância, paz, defendendo violência contra esses artistas. Como no caso do vocalista do Restart que levou uma pedrada: vi pessoas dizendo que o viadinho colorido (olha o bloco da intolerância aí, gente!) tinha merecido aquilo. Que comportamento interessante para alguém que se diz contra a violência.

E muitas vezes, eles são os mesmos que dizem que a sociedade não sabe interpretar/não está pronta para/não respeita/etc... o estilo deles, que são vistos como bagunceiros, etc... É inegável que existem preconceitos e existe intolerância, mas a resolução deles torna-se muito mais difícil se as vítimas continuarem a apontar a mesma arma que elas odeiam ver apontadas para o grupo delas.

Também, justamente as pessoas que não conseguem tirar o nome do Restart ou do Michel Teló da boca, são as que mais odeiam. Falam neles mais, talvez, do que os fãs desses artistas. Conhecem cada detalhe da vida deles. Interpolam isso em todas as conversas e fazem questão de explicitar seu ódio, mesmo que não tenham perguntado.

Atiram críticas vazias, falaciosas para todos os lados, e se exaltam para estabelecê-las, como numa competição para descobrir quem grita mais alto: caps-lock? Falar gritando e com erros de português? Ataques pessoais? Tudo está lá, pois um argumento sem conteúdo precisa ser embrulhado em uma embalagem chamativa. Falsas dicotomias: se você não odeia, você imediatamente ama, e portanto você também merece tomar pedradas. Xingar todos os membros da família desta pessoa. Interpretações intencionalmente erradas de frases.

Ficam zumbizando, vagando por fóruns, sites de notícias, pelo YouTube, pelo Twitter etc... até aparecer uma notícia ou mensagem na qual elas possam dizer que Fulano é uma porcaria, que Sicrano é um artista comercial, que certo artista não merece o sucesso que ele faz (afinal, lá no Cazaquistão teve um carinha que fez muito mais, morreu com 27 anos e ninguém lembra dele - e se você não conhece, você é o alienado ignorante) , e que apenas o estilo dessa pessoa é o verdadeiro (foi nessa mesa que pediram uma falácia do escocês?).

Sim, acho a música de muitos artistas atuais extremamente enjoativa e chata
. Simplesmente não os ouço, eles não me ouvem, não perco nada e não ganho nada, e continuo a vida, procurando coisas das quais eu goste, e não que eu odeie. E o melhor nessas horas, como já aprendi, é ficar longe da linha de fogo, e mais longe ainda da audiência.

A música deles não é de qualidade? Primeiramente, conceitue qualidade e defina métricas para dizer que música (ou qualquer outra arte) é boa ou ruim. Critérios objetivos e mensuráveis, que possam ser avaliados por qualquer observador. Ficou um tanto óbvio que aquilo que uma pessoa subjetivamente julga como bom pode ser visto como ruim para outra pessoa, não?

Ah, mas não tem técnica. Já ouvi músicos com técnica perfeita mas que não me agradaram em nada: achei a música deles desagradável, não fez meu estilo, simplesmente não gostei. Deletei o CD ou fechei o vídeo e continuei minha vida. Se apenas a técnica bastasse, qualquer pessoa que soubesse gramática e ortografia poderia escrever textos de excelente qualidade, por exemplo.

Ah, mas é comercial, música feita para vender. Hein? Gravadoras, rádios etc... são negócios e têm a missão de dar lucro para seus funcionários. Elas têm a obrigação de disponibilizarem aquilo que dá retorno para elas, e você tem a liberdade de não consumir os produtos delas.

O mimimi hater do só existe porcaria não cola mais, exceto para quem quer continuar nessa condição: um idiotinha que percorre a internet procurando formas de demonstrar que sim, ele odeia, que sim, ele não é alienado. Que ui, ele é revoltado, ele odeia os coloridos viadinhos. Em vez de ficar reclamando, saia da porcaria do hating e de ficar dando atenção para o que você mais odeia, e vá procurar coisas que você goste.

P. S. : não, você não tem a missão de evangelizar os outros para o que você gosta.

domingo, 12 de fevereiro de 2012

Idiotas em bibliotecas


Há um tempo atrás, fui fazer um trabalho na biblioteca da faculdade, e após ver certas atitudes extremamente desagradáveis lá, me motivei a escrever algumas pequenas considerações sobre certos comportamentos não tão educados de algumas pessoas lá.

O primeiro deles: usar os terminais de consulta para fazer tudo, menos para procurar livros. Em um período de algumas horas, vi algumas pessoas usando esses para baixar músicas, para ficar horas e horas passeando no Facebook ou no Orkut, para fazer trabalhos, entre outras coisas. Aparentemente, não existem outros lugares para isso (nos laboratórios de informática é tudo bloqueado, e isso é chato), e quem quer procurar livros pode ir direto ao acervo, não é?

Na universidade onde estudo (e em outras também, acredito) há uma demarcação clara entre os computadores a serem usados para consulta e para pesquisa - isso exclui navegação geral - que pessoas insistem em desrespeitar.

Outro tipo característico, e extremamente chato, é aquele que usa a conexão da biblioteca para baixar filmes (ou qualquer outra coisa) e aproveita o ambiente para assistí-los. Ele dá risadas histéricas, afinal todo mundo quer compartilhar da sua intensa diversão. E se ele não está a fim de assistir nada? A biblioteca é o melhor ambiente para ele jogar online e ficar gritando, narrando tudo que ele vê na tela.


Lembro de uma pessoa que inventou de jogar Colheita Feliz/Mini Fazenda/qualquer outro jogo do momento na biblioteca e simplesmente achou genial convidar seus amigos para darem pitaco no jogo. De biblioteca a lan-house em alguns minutos: versatilidade nunca antes vista para seus ambientes.

E curioso é ver que às vezes, quando certos sites são bloqueados, o ambiente se torna mais agradável: menos bagunçado e com pessoas usando os recursos de forma produtiva.

Também existe o revolucionário, o torcedor, o romântico, pessoas que vêem nas paredes, nas mesas e nos livros um amplo espaço para protestar, homenagear ou mesmo deixar recados anônimos. Escrever contra o sistema, homenagear seu time preferido, declarar amor para uma pessoa cuja existência é duvidosa (queria saber qual o nível de Forever Alone desse), etc... tudo isso pode ser mais divertido que estudar certas matérias.

E ainda por cima, depois pode-se reclamar que falta infra-estrutura, que está tudo sujo, que ninguém cuida do patrimônio público, pode incluir isso tudo na coleção de mimimis.

Já que falei em mimimis, existe um outro tipo que também é extremamente desagradável: aquele que usa a biblioteca para conversar e para chamar a atenção. Seja no celular - invariavelmente com um toque espalhafatoso - seja encontrar os amiguinhos para aquela conversa deliciosa pós-almoço, a biblioteca torna-se um lugar ótimo para você contar cada pedacinho do seu - muitas vezes irrelevante e, de acordo com certos assuntos que já ouvi, até mesmo vazio - dia.

Por fim, o pior tipo (na minha opinião, e acredito que muitos compartilharão dela) é aquele que não assume as consequências de estar com um livro emprestado em suas mãos. Ele suja os livros, ele os risca, ele acha engraçado desenhar bigodes nas fotos e fazer carinhas, sem falar nos sublinhados e nas marcações de texto, ele acha divertido rabiscar nos livros que os outros usarão. (E geralmente, culpa os outros: os outros isso, os outros aquilo, etc... mas isso é assunto para outro post).

Não estamos falando de nenhuma igreja (embora alguns falariam em "templos do conhecimento", metáfora bem razoável), de nenhum lugar santo onde todos sejam obrigados a se comportar impecavelmente e a ficarem perfeitamente quietos, estamos falando de regras de convivência que deveriam ser tão simples e tão triviais - a ponto de ser desnecessário colocar avisos pedindo silêncio

Mas infelizmente, já vi funcionários tendo que mandar pessoas calar a boca na biblioteca, e sinceramente, na hora eu me senti como se eu tivesse voltado ao ensino fundamental. Pensava que as pessoas conseguiam deixar isso para trás quando se formavam, mas não, ainda haviam pessoas que achavam que lá era o melhor lugar para rir alto e trocarem gritos.


(Foto: "Books on a Shelf", disponível em http://www.sxc.hu/photo/492740).

quinta-feira, 26 de janeiro de 2012

O mimimi da orkutização (ou "Não se misture com a gentalha")

Vejo um grande falatório resmungão sobre orkutização de tudo. Tudo banalizou, perdeu-se uma suposta exclusividade que existia antigamente (existe exclusividade naquilo que é fabricado em escala industrial?). Qualquer coisa, quando cai no gosto popular, se torna magicamente ruim. Tudo precisa ficar no underground para sempre, pois existe o risco do povão estragar tudo.

Não se aplica apenas a serviços on-line
: pode ser uma marca, pode ser uma banda ou um programa de televisão, se passa na TV ou é lançado no mercado brasileiro e está disponível, vai orkutizar, vai atrair posers, entre outros adjetivos. Inclusive, já vi pessoas que deixaram de ser fãs de bandas justamente porque essa mesma banda se tornou popular. (interessante esse tipo de "fã")

Primeiramente: é interessante ver que muitas pessoas que hoje reclamam dela são as que antigamente participavam de "jogo do add" no Orkut, são as mesmas que ficam segue que eu sigo no Twitter, que fazem de tudo para chamar a atenção na internet etc...


Elas se contradizem: se algo que elas julgam bom é desconhecido aqui, somos um país de pessoas sem cultura, sem bom-gosto, que só consome porcaria; mas se algo que elas gostam é conhecido aqui, banalizou, popularizou demais, o povão está consumindo, orkutizou. Se uma marca não está disponível aqui, reclamam que custa caro importar,  mas quando ela se estabelece aqui, ela vai banalizar. A culpa é de quem compra um iPhone ou um MacBook em 12 vezes no cartão.

Não quero que serviços online e produtos sejam exclusividade de algumas pessoas: pelo contrário, eu quero que eles sejam acessíveis para todos. Que internet seja algo ubíquo, tão comum quanto a eletricidade e tão banal quanto acender a luz. Tudo isso dá motivos para a criação de novas tecnologias, de concorrência, faz o mercado funcionar e impede que empresas fiquem na sua zona de conforto, vendendo apenas para uma elite. Com algumas exceções, por que uma empresa iria lançar um serviço se não para que ele atingisse as massas e portanto maximizasse o lucro dela?


Por sinal, fico perguntando: e se uma dessas pessoas fosse a criadora de um serviço, ela não gostaria de ver ele sendo usado pelas massas, sendo divulgado, e trazendo mais retorno? Ela realmente gostaria que o serviço dela ficasse restrito a uma pequena camada de pessoas? A mesma coisa com música, arte etc.... Eles realmente gostariam que a banda deles não ficasse conhecida? Que o produto deles não deslanchasse e não vendesse bem?

Sim, algumas coisas que muitas pessoas compartilham são desagradáveis: também não gosto de gente colocando fotos de animais mortos, em redes sociais, e nem de gente que se sente na incumbência de dar retweet em tudo que vê no Twitter e de compartilhar centenas de memes por dia. Para isso, essas redes sociais fornecem ferramentas que me permitem selecionar o conteúdo relevante. Unfollow, cancelar assinatura, ou mesmo deixar de frequentar um site.

É chato ver coisas escritas incorretamente? É, a ponto de muitas vezes eu desistir de ler algo por erros de português ou inglês. Mas os reclamões falam como se apenas brasileiros falassem errados, o que é uma grande inverdade: pessoas de vários outros países também escrevem errado (é comum ver indianos, paquistaneses, entre outros, massacrando o inglês em fóruns, listas de discussão etc...).

É cansativo ouvir a mesma música tocando direto no rádio ou na TV? É. Mas não lembro de ter perdido o direito a trocar de canal ou de baixar o volume.

Cada vez mais a história de orkutização soa como uma desculpa para quem quer uma exclusividade que nunca existiu. Um resmungo de classe-média-sofre, que tem medo de ver alguém inferior com os mesmos direitos do que ela, que tem medo da mudança na distribuição de renda. Um excelente pretexto para pessoas tão iguais, tão padronizadas, que precisam consumir para se sentirem superiores.


Por fim, lembremos que em redes sociais, quem escolhe as amizades é você, o mesmo valendo para toda a internet. O Facebook está cheio de gentalha? O Twitter está cheio de gente chata? Simples: basta não seguir ou não manter relacionamentos e todos ganham, exceto quem perde a sua razão de reclamar. Não aguenta mais ouvir falar do Big Brother ou da Luiza que voltou do Canadá? Simples, basta procurar outros assuntos.

quinta-feira, 19 de janeiro de 2012

Os interesses de uma SOPA indigesta

Recentemente vimos a lei SOPA, que daria grandes poderes para o combate à pirataria (aham, de boas intenções o inferno está cheio), e entre seus defensores estão as gravadoras, estúdios de cinema, companhias de televisão a cabo etc... e outras centenas de moscas - a partir disso fica bem claro o sistema de interesses por trás desta legislação.

O interesse do combate à pirataria, embora por vezes ele use o pretexto do roubo de propriedade intelectual (embora eu nunca tenha visto roubo que não prive a vítima do objeto roubado), não é apenas proteger a inovação, a indústria, ou combater a falsificação, mas também transformar a internet em uma televisão onde só passem conteúdos autorizados. Conteúdos esses que refletem o pensamento dominante e impedem qualquer crítica (que pode ser derrubada através de denúncias de violação de propriedede intelectual ou de marcas registradas).

Exatamente pois esse é o maior medo dos grandes conglomerados da informação e do entretenimento: informação independente, muitas vezes produzida com recursos de uso comum: uma câmera digital que custa algumas centenas de reais, um computador pessoal, ou mesmo um celular ou smartphone com uma câmera boa o suficiente - para narrar o desenrolar de um evento, pode ser mais eficiente e mais dinâmica que uma câmera profissional.

Não preciso ter dinheiro para escrever e publicar um blog ou um livro, ou distribuir um filme amador ou semiprofissional, nem preciso pagar jabá para tocar minha música em uma rádio - a internet possibilita todo esse poder. Tudo que a grande mídia não gostaria de ver: pessoas produzindo conteúdo que reflete a realidade delas, e não a utopia que ela quer passar.

A desculpa da proteção à propriedade intelectual serve como uma fachada para a repressão: não gosto de críticas a minha empresa? Basta eu alegar que o autor desta crítica está violando minha propriedade intelectual. Simples, e com a SOPA se tornará mais rápido ainda: elimina-se toda a diligência necessária. Torna-se mais fácil condenar alguém por pirataria do que por qualquer outro crime. Torna-se perigoso para sites de ambientalistas, de ideologias que não a dominante, etc...

Por exemplo, que tal a Rede Globo tirando do ar qualquer blog que critique o Big Brother, as novelas etc... e use trechos destes programas para exemplificar? Que tal a Igreja usando esse instrumento legal para tirar sites ateus do ar? Tudo isso se torna possível com legislação deste calibre.

O problema da pirataria existe? "Existe" (muito embora não lembre de nenhuma grande empresa ter falido especificamente por ele), sendo principalmente prejudicial para o software livre e o copyleft, e legislações malucas apenas contribuem para agravar o problema. Já notaram que qualquer esquema de proteção é quebrado rapidamente, e ainda assim, empresas insistem neles - os piratas burlam sem dificuldades enquanto os usuários são vítimas de DRM e afins.

Pirataria não se conserta com leis malucas ou aceitando a derrota e comprando licenças de software a preço de dumping. O único caminho para reduzi-la é a adoção maciça e irrestrita do software livre e do copyleft em tudo aquilo que é público - abrindo o caminho para mostrar que existem alternativas à pirataria. E, potencialmente, formando uma geração que vá além de simplesmente consumir tecnologias proprietárias.

Estranhamente, Microsoft, Adobe e outras eram a favor da SOPA, mas viraram a casaca. Não apenas por pressão externa, mas sim porque a pirataria é parte do modelo de negócios delas: só graças à pirataria é que o Windows é o sistema operacional mais utilizado e que softwares tornam-se metonímias ("faz um Photoshop na minha foto", "entra no MSN").

domingo, 15 de janeiro de 2012

Windows em ARM? Não tão simples assim


[Avisos: 1) post bastante técnico 2) 'x86' refere-se de forma indistinta a CPUs de 32 e 64 bits, a menos que o contrário seja dito]


Na CES 2012 e em outros eventos, foram demonstrados tablets baseados em processador ARM rodando o Windows 8. E alguns analistas já demonstraram seu ceticismo perante esta plataforma. Infelizmente, para quem sonha em ter um sistema operacional unificado entre diversos dispositivos, as coisas não são tão simples; neste post faço algumas considerações sobre o Windows em arquiteturas não-x86.

O principal problema: falta de aplicativos para sistemas Windows baseados em ARM. Claro, muitos programas baseados em .NET, ou outras linguagens interpretadas, poderão (teoricamente) rodar com poucas modificações, mas como fazer com programas complexos escritos em C ou C++, os quais nem sempre são portados de forma simples? Não é só dar um ./configure; make ou ir no menu da IDE e mandar compilar. No Google achamos diversos relatos de problemas de compilações em ARM.

Por sinal, a Microsoft já anunciou que apenas aplicativos Metro irão rodar em tablets ARM. Ou seja, isso evita vários dos problemas anteriormente mencionados, mas traz outros: quantos desenvolvedores irão portar seus programas para essa nova tecnologia? Empresas que desenvolvem para os 3 maiores sistemas operacionais irão querer dar suporte para mais um? Incerto.

A Microsoft já flertou com outras arquiteturas de processadores na época do Windows NT: o Windows NT 4 executava nas arquiteturas Alpha, PowerPC e MIPS. Porém, foi apenas uma curtição para tentar tomar parte do mercado do UNIX, e o Windows nessas plataformas sempre teve suporte deficiente no aspecto do software: não haviam aplicativos pois não havia mercado, e não havia mercado pois não haviam aplicativos - caindo naquele velho paradoxo do ovo ou a galinha.

Em tablets, ainda há espaço para tentar coisas novas (ninguém reclamou que o iOS ou o Android não rodavam os mesmos programas do desktop), mas no desktop - se é que um dia veremos desktops ARM sendo vendidos para o grande público, a situação é pior ainda: retrocompatibilidade e bom suporte a hardware, coisas que o Windows em x86 fornece de forma aceitável, são premissas, não luxos adicionais. Seria interessante que a Microsoft higienizasse o Windows e tirasse os legados? Certamente, inclusive iria resolver diversos problemas de segurança, mas às custas de incomodar os usuários.

Por fim, há o ponto de vista do usuário: ele vai ver "Windows 8" no desktop (x86) e no tablet (ARM) e vai presumir que ambos são exatamente iguais... exceto que não são. Isso pode potencialmente causar frustrações e dores de cabeça: "por que esse programa roda no meu desktop e não funciona no meu tablet?". Cria-se um 'fork', uma distinção que pode causar inconveniências.

E o Linux, como fica? Fica bem para aplicações específicas - eu não me importaria em ter um Linux rodando em ARM como servidor de arquivos ou para passar vídeos na minha televisão - mas tendo em vista que ele já apresenta deficiências em hardware comum (especialmente em dispositivos móveis), quem dirá em ambientes mais exóticos? Além disso há a falta de codecs e de plug-ins propretários (Flash, Java etc...), sendo que um port deles depende da boa vontade dos fabricantes.

A história de Windows rodando em dispositivos móveis e em outras arquiteturas não-x86, ainda é muito nebulosa e bastante questionável: não creio que vá ser algo suave e "just works", que será um sucesso de público como o iOS é no tablet ou o Android é no smartphone.

sábado, 7 de janeiro de 2012

Reflexões sobre revistas de informática

Recentemente, estava refletindo sobre o fato da grande mídia nunca noticiar sobre o software livre e as licenças de copyleft como alternativas à pirataria, tampouco falarem sobre DRM, guerra de patentes etc.... o que me leva a algumas considerações sobre o jornalismo de tecnologia, especificamente nas revistas.

Nos anos 80 e 90, era comum vermos artigos extensivos em revistas: páginas e mais páginas de benchmarks entre diversos softwares competidores. Era interessante pois cada avaliação vinha com um comentário aprofundado, explicava a metodologia empregada para o teste e suas limitações etc... Pode ser que não fosse imparcial, mas certamente era muito melhor do que as revistas atuais. Coisas que eram extremamente bem-vindas, afinal um computador era caríssimo, a internet era inexistente ou limitada, dificultando o feedback e a troca de opiniões.

Porém atualmente, o que vemos são verdadeiras revistas de gadgets e de tendências: apps que você precisa para seu dispositivo com iOS. Como ganhar dinheiro com o Facebook ou como ser o próximo Zuckerberg. Benchmarks de notebooks caríssimos que estão fora do seu alcance (aham, Cláudia, aham que alguém gasta R$ 9 mil em um notebook). Ou mesmo revistas de fofocas: temos uma foto em baixíssima resolução do iPhone 5 e vamos especular sobre os possíveis recursos. Fulano de Tal fez tal coisa no Twitter e conseguiu 500 mil seguidores. Nada muito profundo.

Comentários mais técnicos, mais aprofundados? São raridade. Comparativos honestos entre softwares - tanto livres quanto proprietários - onde qualquer pessoa tenha acesso à metodologia usada para fazê-los? Idem: benchmarks se restringem a quantos FPS conseguimos com tal jogo. Discussões sobre aspectos éticos e sociais da tecnologia? Inexistem ou são bastante rasas - até porque discussões mais profundas provavelmente causariam a ira de muitos anunciantes - a Microsoft não gostaria de ver um anúncio seu do lado de uma matéria na qual está sendo analisada a questão do DRM e das patentes de software.

Por sinal, pergunto-me: comparativos de softwares ainda são relevantes? Talvez fossem importantíssimos na época da internet discada, onde um download de 50 MB levava uma tarde toda, mas atualmente posso baixar vários programas, instalar em máquinas virtuais recicláveis e tirar minhas próprias conclusões - tudo isso em pouco tempo. Se eu precisar de um software para alguma coisa, procuro no Google e na hora acho resenhas e comparativos; ou acompanho blogs nos quais frequentemente acho sugestões e ideias interessantes.

Finalmente, uma revista mensal é inadequada para uma área onde tudo pode mudar em questão de semanas. Não me interessa saber que mês passado saiu a versão nova de X, quando um blog já noticiou isso assim que X saiu. E tampouco adianta fazer uma "edição digital" que se comporte exatamente como uma edição física: recursos fundamentais de revistas digitais são índices, poder copiar e colar, links que funcionem. Cada vez que você gera um PDF sem índice, um bebê foca morre.

Felizmente, satisfaço essas necessidades com blogs e fóruns excelentes: Phoronix, Linux TodaySlashdot, BR-Linux (inclusive costumo dizer que meu dia não começa sem que eu tenha lido o BR-Linux e o Slashdot), entre vários outros que leio por RSS.

Sinto falta de revistas feitas para quem emprega tecnologia profissionalmente no seu dia-a-dia. Revistas que se aprofundem em assuntos interessantes e relevantes ao usuário profissional, e não simplesmente a quem folheia um catálogo de brinquedos eletrônicos. Revistas feitas para serem apreciadas, com conteúdo para aprendizagem e aplicação, e não simplesmente para irem para a sala de espera do dentista depois que eu terminei de ler.
 
Aliás, entro no site de uma certa revista e uma das notícias mais lidas é... o lugar onde o Zuckerberg passou o Reveillon. Estou lendo uma revista de tecnologia ou uma Caras do mundo nerd? (aliás, uma revista de fofocas do mundo da informática se chamaria T.I.-T.I.-T.I.? :)




Créditos da foto: Tim Malone