quinta-feira, 7 de dezembro de 2017

Instalando Ruby no Mac OS High Sierra

O Mac OS 10.13 High Sierra, última atualização do SO da Apple, já vem com o Ruby pré-instalado, mas sua versão não é atualizada e não permite o desenvolvimento "direto da caixa". Para desenvolvedores, é preciso instalar a versão mais nova (que, por sinal, já resolveu alguns problemas de compatibilidade recentemente descritos). Como algumas de minhas páginas são baseadas em Jekyll, preciso da nova instalação.

A versão nativa de Ruby no Mac OS 10.13 é a 2.3.3p222 (2016-11-21 revision 56859). Vamos instalar a mais recente. Para isso, prefiro usar o gerenciador de pacotes Homebrew. Antes de qualquer coisa, é preciso ter o Xcode instalado e atualizado na máquina, pois nossa configuração vai depender da biblioteca gcc.
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ \
master/install)"
Isso vai instalar o Homebrew no mac. A seguir, usando o instalador para Ruby rbenv:
$ brew install rbenv ruby-build

# Adicione rbenv ao bash para que ele carregue sempre que o terminal é chamado
$ echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> 
~/.bash_profile
$ source ~/.bash_profile

# Instale o Ruby (versão recomendada)
$ rbenv install 2.4.2
$ rbenv global 2.4.2
$ ruby -v
Para gerenciar minhas gems e suas dependências, eu uso o Bundler, o qual recomendo para quem usa Jekyll. Instalar é trivial:
$ gem install bundler
Após isso, basta ir para a pasta de seu projeto e criar lá um arquivo Gemfile com suas dependências:

source 'https://rubygems.org'
group :jekyl_plugins do
    gem "github-pages"
    gem "jekyll-compose"
  # gem "jekyll-seo-tag"
    gem "jekyll-sitemap"
end
Em seguida, instale as dependências para seu projeto:
$ bundle install
E lembrar de utilizar sempre o comando bundle para chamar a versão local das gems do seu projeto:
$ bundle exec jekyll build
$ bundle exec jekyll serve

sexta-feira, 1 de dezembro de 2017

Your new academic repository: Zenodo

Stop the press! Do you want to embark on open science? Or just feel like dusting off that data buried in your file drawer and post it somewhere? Maybe you saw the cool kid from the front door lab bragging about "free and open data" and got envious. Whatever. I've got the perfect means especially to you: zenodo.org. It is free, it is open, it is non-profit, it is backed by OpenAIRE and CERN! Cool!

I've made some reviews about free and open repositories for datasets and academic stuff, but I am convinced that Zenodo is the top of all. Read my previous accounts on PeerJ Preprints, F1000research, and Figshare. Each one has strengths and drawbacks. However, a fast comparison shows how Zenodo has superiority in this field: all of them are for-profit, featuring free and paywalled versions, although equally open access. They have very different policies regarding content regulation, and neither is completely transparent about it. Plus, Zenodo features an easy integration with GitHub. Let's chart a comparison between them:



DOI
Preprint
Postprints
Datasets
Slides
Posters
Google
Scholar
PeerJ Preprints
+
+
-
+
+
+
F1000Research
+
-
-
-
+
-
Figshare
+
+
+
+
+
+
Zenodo
+
+
+
+
+
+
Slideshare
-
-
-
-
+
-

Figshare and Zenodo are the most complete services, but Zenodo is not-for-profit, backed by EU OpenAIRE megaconsortium, and based upon CERN's mammoth cloud infrastructure. Talk about securely store lots of data. It automatically indexes content in Google Scholar and seamlessly integrates with GitHub. So, I myself decided it to be my prefered alternative academic venue to deposit data, prepublish drafts, publish projects, archive published documents, and the sort of.

An example of my stuff deposited in Zenodo:


Phase IIa (proof of concept) Trial of Valproic Acid with Chemotherapy and Radiotherapy for Patients with Diffuse Intrinsic Pontine Glioma in Childhood and Adolescence - VALQUIRIA
This is a project of a clinical study that was approved by the IRB of my institution and then deposited in Zenodo. It is written in Portuguese.


Retrospective analysis of off-label treatment with beta-blockers in pediatric patients with hemangiomas diagnosed between January and December 2009 at Hospital Infantil Albert Sabin.
Letter of approval from the IRB of another clinical study. The project is in doc format and in Portuguese language.

Instalando Python 3 no Mac OS High Sierra

No Mac OS X 10.13 High Sierra, a versão de Python que vem embarcada é 2.7.10, instalada no diretório /usr/bin/python. Porém, vem sem o gerenciador de pacotes nativo pip. Por definição, o sistema protege as pastas /System /bin /sbin /usr contra edição, mesmo usando usuário root. A Apple chama isso de SIP - System Integrity Protection. Na verdade, é uma característica interessante do ponto de vista de organização. Eventualmente, você pode desejar usar a versão mais atualizada (e recomendada) de Python, a 3.X (atualmente 3.6.3). Instalar essa versão é extremamente fácil e pode ser feito de duas maneiras:

Instalando Python

1. Primeiro método:

Navegue até python.org/downloads e baixe o pacote de instalação oficial. Clique nele e siga as instruções até o fim. A instalação será feita no diretório /Library/Frameworks/Python.framework. Uma chamada no terminal vai revelar, porém, outro diretório onde está um hard link:
$ which python3
$ /usr/local/bin/python3
Esse método é o mais simples e garantido pelos desenvolvedores oficiais do Python, mas não é o preferido pelos desenvolvedores em geral. Antes, eu também preferia instalar via gerenciadores de pacote, mas ultimamente sempre tenho dado preferência ao instalador oficial quando existe um. No entanto, é preciso avisar, especialmente a quem tem menos experiência, que podem ocorrer erros de dependências se você misturar os métodos (por exemplo, instalar o Python 3 com o instalador oficial e o Python 2 com homebrew, coisa que particularmente faço, mas não recomendo a todo mundo).

2. Segundo método:

Usando o Homebrew é possível fazer instalações seguras e funcionais que ficarão localizadas na pasta /usr/local/bin, eliminando problemas de compatibilidade. Antes de fazer isso, é necessário instalar as ferramentas de desenvolvedor do Xcode (via Apple Store) e o Command Line Tools:
$ xcode-select --install
Depois, é só instalar o Homebrew, se já não estiver no sistema:
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew
  /install/master/install)"
E, antes de instalar o Python, colocar a pasta de destino no $PATH:
$ export PATH=/usr/local/bin:$PATH
Esta linha pode ser acrescentada no ~/.bash_profile para maior comodidade.
$ echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bash_profile
Por fim, para instalar a nova versão do Python:
$ brew install python
Checando a versão e o local:
$ which python3
/usr/local/bin/python3

$ python3 --version
Python 3.6.3

Instalando a versão mais recente do Python 2.X

Usar o Homebrew para instalar outra versão de Python permite que a versão nativa conviva harmoniosamente com a nova. É possível até instalar a versão mais nova do Python 2.X e usá-lo separadamente, sem interferir com as outras. As instruções de Marina Mele são esclarecedoras.

Note que você acaba com 3 versões de Python que podem ser usadas sem interferir uma com a outra!
Python nativo:
$ which python
/usr/bin/python
$ python --version
Python 2.7.10
$ pip install virtualenv
-bash: pip: command not found #pip não está instalado!
Python 2 atualizado:
$ which python2
/usr/local/bin/python2
$ python2 --version
Python 2.7.14
$ which pip2
/usr/local/bin/pip2
Python 3:
$ which python3
/usr/local/bin/python3
$ python3 --version
Python 3.6.3
$ which pip3
/usr/local/bin/pip3
Finalmente, instalar pacotes à vontade será fácil apenas usando o comando pip2 install.

Usando virtualenv com Python 2.X

A melhor forma de instalar dependências específicas no Python 2.X é usando um ambiente virtual, para assegurar separação e organização das diversas instâncias.
Para instalar virtualenv e virtualenvwrapper:
$ pip2 install virtualenv
$ pip2 install virtualenvwrapper
Em seguida, criar uma pasta que vai conter os ambientes virtuais.
$ mkdir ~/.virtualenvs
Abrir ou criar o arquivo ~/.bashrc e colocar:
export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
Nota 1: se não existir arquivo .bashrc, deve-se incluir o código seguinte no .bash_profile.
if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

Nota 2: é preciso mudar a variável de ambiente que chama o Python instalado pelo Homebrew.
$ vi /usr/local/bin/virtualenvwrapper.sh

# Locate the global Python where virtualenvwrapper is installed.
if [ "${VIRTUALENVWRAPPER_PYTHON:-}" = "" ]
then
    VIRTUALENVWRAPPER_PYTHON="$(command \which python2)"
fi                                                   ^

Por fim, ativar estas mudanças:
$ source ~/.bashrc
Dessa forma, será possível criar um novo ambiente virtual:
$ mkvirtualenv --python=python2 myenviroment
Na pasta ~/.vitualenvs/myenvironment que será criada pelo script. O ambiente será automaticamente ativo. Trocar de ambiente é simples como:
$ workon myenvironment
(myenvironment) $
E, para desativar os ambientes:
(myenvironment) $ deactivate
$
Deletar e listar os ambientes:
$ rmvirtualenv <nome_do_ambiente>
$ lsvirtualenv

Usando ambientes virtuais no Python 3.X

O Python 3 já tem o módulo nativo venv para gerenciar os ambientes virtuais. Logo, é possível usá-lo "direto da caixa" sem necessidade de instalar mais dependências. Para criar um ambiente:
$ python3 -m venv ~/.virtualenvs/myvenv
Dentro do ambiente, o comando python invoca de forma correta a instalação do Python 3.X. Para ativar o ambiente:
$ source ~/.virtualenvs/myvenv/bin/activate
(myvenv) $
Módulos instalados durante o uso de um ambiente virtual python permanecem apenas no ambiente ativo. Para desativar o ambiente:
(myvenv) $ deactivate
$
A versão mais recente do módulo virtualenvwrapper também pode ser usada com o Python 3.X:
$ pip3 install virtualenvwrapper
No entanto, eu nunca tentei instalar este módulo para duas versões diferentes de Python na mesma máquina e estou certo de que isso significa problema. Aconselho a usar o módulo virtualenvwrapper apenas em uma versão do Python. Na minha máquina, eu uso apenas para o Python 2.X

segunda-feira, 9 de outubro de 2017

Instalando Xcode e Command Line Tools no Mac OS High Sierra

O sistema operacional da Apple está na sua mais recente versão, a 10.13 High Sierra. Para o usuário final, é uma das melhores experiências de utilização dentre todos os SO. Para os desenvolvedores, embora existam sistemas melhores para tarefas específicas, o Mac OS ainda é um dos mais usados. Para ser usado por desenvolvedores, o sistema precisa de alguns ajustes a mais. O primeiro de todos é instalar o Xcode, disponível na Appstore (na verdade, é possível pular a instalação do app, o qual é requerido para desenvolver aplicativos compatíveis com o SO Apple).


Se o Xcode já estiver instalado, certifique-se de que tem a última versão, a 9.2. Para atualizar, o processo é semelhante ao de instalar. Após sua instalação, ainda serão necessárias algumas checagens no Terminal. Para checar se o Xcode foi devidamente instalado:

$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
Se você tentar usar um compilador como gcc ou make, talvez veja uma mensagem de erro. Isso significa que ainda precisa instalar o Command Line Tools:

$ xcode-select --install
Ao usá-lo pela primeira vez, será pedido que você concorde com os termos do Apple Developer Program. Verificando se a instalação foi concluída e já se pode usar o compilador gcc:

$ xcode-select -p
/Library/Developer/CommandLineTools

$ gcc --version
Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.0.0
Thread model: posix
Pronto! Já é possível instalar Ruby, Rails, Python, Golang, Node.js, as linguagens e aplicativos de sua preferência, e trabalhar na sua máquina Mac OS. Bom desenvolvimento!

Créditos: este artigo foi parcialmente baseado neste outro em inglês.

sábado, 22 de abril de 2017

Marcha pela ciência é um movimento mundial









Organizada por um grupo independente de cientistas dos EUA para refletir a Marcha das Mulheres e outros movimentos contra o governo Trump e sua política de redução de financiamento para a pesquisa, a Marcha pela Ciência (March for Science) ecoa em diversos países do mundo. Pelo menos 8 países da Europa e vários pelo mundo já tem suas Marchas oficiais, ligadas ao movimento principal, que tornou-se um símbolo internacional. Aqui no Brasil, a Marcha pela Ciência ocorre principalmente em São Paulo, onde está o movimento oficialmente ligado à Marcha americana, porém outras 15 cidades aderiram ao movimento e vão ter suas Marchas, inclusive Fortaleza.

Por que a Marcha pela Ciência tornou-se um movimento internacional? Isso decorre de uma percepção de que existe um clima generalizado de irracionalismo no planeta Terra, algo jamais visto antes (ou pelo menos não a muito, muito tempo). O conhecimento científico tem recebido críticas pertinentes nos últimos anos, porém tem sido atacado mais frequentemente ainda por idéias com pouco ou nenhum fundamento, as quais são propagadas com a velocidade das mídias sociais de forma acrítica e, às vezes, ligadas a interesses de terceiros. Cada vez mais o cientista médio percebe a intrusão da política na própria ciência e na forma como o conhecimento é produzido e divulgado. Isso é visto como uma perigosa extrapolação das prerrogativas sociais e políticas. A sociedade, de certa forma, ou partes dela, não objetiva mais controlar o emprego do conhecimento científico, mas o próprio conteúdo da ciência em si, o que se aproxima da manipulação autoritária do conhecimento como foi feito, por exemplo, no comunismo soviético, no regime nazista ou no período macartista. Tantos outros exemplos podem ser citados, independentes de orientação política, todos unificados pela característica da necessidade de manipulação da opinião publica por governos autoritários.

Some-se a isso uma crise econômica mundial que força os governos a arrochar investimentos e uma crise de credibilidade generalizada ligada a escândalos políticos nacionais e internacionais, tem-se uma situação de alto risco para a ciência. A soma de descrédito pela sociedade, manipulação política e perda de fontes de financiamento desembocam numa crise como jamais foi vista nos meios científicos internacionais. Esse é o combustível do movimento internacional Marcha pela Ciência, que traveste-se de apartidarismo, mas tem um viés claramente anticonservador na maioria dos locais onde é empreendida.

O exemplo brasileiro é fiel à receita. O físico Luiz Davidovich, presidente da Academia Brasileira de Ciências, vê como um desastre com repercussões para as próximas gerações o que está ocorrendo, e liga a falta de credibilidade do executivo e legislativo brasileiros e cortes estruturais como a PEC 55 e as reformas trabalhista e da previdência ao panorama completo. Ele entende a opção do governo brasileiro atual como uma priorização do capital financeiro em detrimento do capital produtivo. Aponta que uma das medidas de sucesso comprovadas em economias que se recuperaram de crises foi o investimento em ciência, tecnologia, pesquisa e educação, caminho oposto ao trilhado agora em nosso país. Segundo ele "o país está matando a galinha dos ovos de ouro". Recentemente, o governo brasileiro tomou medidas que significam a redução da capacidade de produção científica e o investimento em políticas de C&T, como a extinção do Ministério da Ciência e Tecnologia, um histórico corte recorde no orçamento e o fim de programas como o Ciência sem Fronteiras. Essas medidas foram muito impopulares no meio científico e acadêmico brasileiro, gerando uma insatisfação crescente com o governo atual.

Apesar disso, não existem ligações diretas do movimento brasileiro com partidos de oposição ao atual governo. Nos EUA, as sociedades científicas estão apoiando o movimento "a uma distância segura" em sua maioria, temerosos de estimular uma agenda política cada vez mais forte no meio científico. É uma percepção generalizada que a intrusão política na ciência está na raiz de muitos dos males atuais. Dessa forma, o movimento americano tenta desvincular-se de propostas com viés político. De forma análoga, os principais críticos do movimento o apontam como uma oportunidade para mais intervenção de movimentos sociais e políticos na ciência, o que afasta algumas pessoas.

No Brasil, onde a polarização política ocorre num nível muito baixo de diálogo (ou de falta dele), a versão tupiniquim da Marcha pela Ciência tenta ser apartidária e sem nenhuma ligação com a "esquerda", palavra que, hoje em dia, carrega uma forte rejeição motivada pela campanha institucional de estilo macartista que foi empreendida recentemente em nosso país. Mesmo que abracem idéias progressistas, os integrantes do movimento rejeitam o rótulo e levantam a bandeira de mais investimentos e atenção do governo para a C&T. No meio deste estandarte, entram idéias afins com as da oposição brasileira. Por exemplo, na defesa da educação básica, recentemente enfraquecida por mudanças da legislação. Luiz Davidovich declara:
Professores de educação básica são desprestigiados, ao contrário do que acontece em outros países. Quando você pergunta para um jovem estudante na Coreia do Sul o que ele quer ser quando se tornar um profissional, você vai ver vários dizerem querer se tornar professores. Você pergunta por que e ele vai dizer que é uma das profissões mais admiradas. Ganha muito bem, tem um dos salários mais altos.
Da mesma forma, a Sociedade Brasileira para o Progresso da Ciência aponta os graves erros da política de educação ora em implantação no Brasil, denominada "Escola sem Partido". Para os cientistas, iniciativas como essa mostram apenas a vertente mais autoritária dos governos que tentam moldar o conhecimento que é ensinado nas escolas a seu bel prazer, para favorecer a manutenção de seu status quo, sem interesse na verdade ou no desenvolvimento de um pensamento crítico. A história mostrou vezes sem conta que, seja em governos autoritários de direita ou de esquerda, este é um erro fatal para toda a sociedade.

No movimento original, a declaração de sua missão estabelece que "a Marcha pela Ciência defende o financiamento e divulgação públicos da ciência como um pilar da liberdade e prosperidade humanas. Nós nos unimos como um grupo diverso, não-partidário para pedir pela ciência que defende o bem comum e para que líderes políticos promulguem políticas baseadas em evidência no interesse público." E acrescentam os autores dos objetivos do movimento: "agendas e políticas anticientíficas têm sido propostas pelos políticos em ambos os lados, e eles prejudicam a todos - sem exceção".

Também o movimento March for Science original todavia, pende para bandeiras progressistas. Com efeito, eles declaram firmemente:
The March for Science does not tolerate hate speech, bigotry, or harassment within or outside our community. Targeting individuals or communities with violent language, including statements that reflect racism, sexism, ableism, xenophobia, homophobia, transphobia, or any form of bigotry, will result in banning and/or blocking. Personal attacks based on religious affiliation or lack of religious affiliation will also lead to banning and/or blocking. 
Levantando bandeiras antipreconceito que geralmente são usadas pelos setores políticos mais progressistas. O movimento também apontou três presidentes honorários para ajudar a promovê-lo: Mona Hanna-Atisha, uma pediatra descendente de iraquianos que escreveu recentemente um artigo contra a política de Trump no New York Times, Lydia Villa-Komaroff, uma reconhecida cientista da biologia molecular e ativista pela diversidade e contra o preconceito no meio acadêmico, e Bill Nye, famoso cientista, comediante e apresentador de TV, além de ativista ambientalista e atual presidente da Planetary Society (fundada por Carl Sagan). Esta lista de notáveis aponta uma clara tendência anticonservadora também no movimento original.

Desa forma, não é impossível classificar a Marcha pela Ciência de um movimento apartidário, porém com tendências progressistas, voltado contra o recente assalto global de políticas conservadoras, autoritárias e anticientíficas que ocorre em todo o planeta, inclusive em nosso país, o Brasil. A Marcha pela Ciência, é claro, tem todo o meu incondicional apoio.

Clique aqui!

2015 A.C. Camargo academic journals acesso aberto adverse drug reactions alergia alquilantes alto custo ambiente ambientes virtuais analgésicos anomalias vasculares anti-eméticos anti-helmínticos anti-histamínico antianêmicos antiangiogênico anticâncer anticoagulantes antifúngicos antiprotozoários antivirais artemisinina arXiv asma asthma atopia atualização aula aulas auto-arquivamento avastin avermectina bevacizumab biologicals bioRxiv Blogger brain tumor bundler cancer cancerologia pediátrica Carlos Chagas carne vermelha cauterização Ceará CERN child chronic fatigue syndrome ciência ciência brasileira ciências biológicas e da saúde cientistas influentes cirurgia CLI Command Line Tools conselho internacional crime virtual CT scans Curtis Harris darbopoietina dermatite desenvolvedor diabetes dieta disautonomia dislipidemias doença renal doenças cardíacas doenças parasitárias dor DPOC eczema editoras predatórias efeitos adversos eficácia ensino e pesquisa eritropoietina erlotinib ESA escleroterapia estatinas esteróides estilo de vida exercícios F1000Research farmacogenética farmacologia fatores de crescimento fibromialgia Figshare Fisiologia e Medicina fitness flu FMJ Fortaleza fosfoetanolamina fraude acadêmica fraude eletrônica genetics GitHub glioblastoma gliomas Google Books Google mapas gordos green way Harald zur Hausen hemangiomas hemophagocytic lymphohistiocytosis High Sierra homebrew horário imagem immunology imunossupressores imunoterapia infecção urinária inibidores de ECA inibidores tirosina-quinase iniciação científica insulina irracionalismo ivermectina Jeffrey Beall Jekyll journal hijack Lectures lepra leucemia leukemia linfangiomas Mac OS Mac OS X macrophage activation syndrome magrinhas mal-formações March for Science Marcha pela Ciência medicina personalizada meta-análise Milton Santos modelos monoclonais monoclonal antibody mortalidade morte mudança Mulliken neuro-oncologia neuroblastoma neurology ngram viewer Nobel Nobel em Medicina ou Fisiologia novas drogas novos tratamentos obesidade ômega 3 open access open science OpenAIRE osteoporose Osvaldo Cruz package installer pediatria pediatric cancer pediatric tumors pediatrics peer review PeerJ personalized medicine PET/CT pharmacogenetics pharmacological treatment pharmacology plágio política de C&T posters postprints predatory publishers Preprints pressão arterial prevenção progressista projeto de pesquisa propranolol próstata publicação publicação científica publicações publication pubmed Python python 2 python 3 quimioterapia radiation radioterapia rapamycin rbenv recidiva regressão espontânea Regulação médica repository resposta resultados retrospectiva revisão por pares risco Ruby Satoshi Ömura Scholarly Open Access science ScienceNOW seguimento selênio self-archiving sequestro de periódico científico serotonina SIDA sildenafil slides sobrevida sulfa suplementos survival tacerva targeted therapy temozolamida temozolomide terapia alternativa tireóide tratamento tuberculose tumores cerebrais tumores pediátricos vaccine vacina venv via dourada via verde virtualenv virtualenvwrapper vitamina E vitaminas William C. Campbell Xcode Youyou Tu Zenodo

Postagens populares