Esta página contem informações úteis para o dia a dia de meu trabalho
quinta-feira, 31 de março de 2016
Como utilizar o método FISH/QTCR/5SS para ler artigos científicos
Já virou clichê dizer que atualmente o ritmo de produção de novas informações e dados não para de crescer. E isso se reflete nas pilhas (virtuais ou físicas) de artigos científicos que acumulam todos os dias na área de trabalho.
Assim, melhorar a leitura de artigos, tanto na velocidade quanto na visão crítica, é uma ferramenta valiosa para acompanhar essa enxurrada de informações.
A metodologia FISH/QTCR/5SS ajuda a reconstruir o processo de elaboração do artigo, revelando o rationale por trás da história, facilitando assim a compreensão dos métodos e conclusões.
Vamos ao que interessa.
1. Introdução com FISH
Field: simples, qual é o campo do artigo? Tente ser específico.
Importance: por quê o artigo é relevante para você, como cientista, e para a sociedade?
Supporting data: quais as principais informações prévias fundamentais para a compreensão do artigo?
Hypothesis: muitas vezes esse tópico é o mais difícil de descrever, já que muitos autores escondem a hipótese, ou quando o estudo é exploratório.
2. Lendo as figuras com QTCR
Agora que você tem uma visão geral do artigo, use o QTCR em cada figura do artigo.
Question: qual é a pergunta que está tentando ser respondida com esse experimento?
Tools: quais foram as técnicas e ferramentas utilizadas para responder à pergunta? Seja sempre crítico: as ferramentas são adequadas para responder a pergunta? Quais outras ferramentas os autores poderiam ter utilizado? Caso haja análise estatística, certifique-se de incluir o tipo e os principais parâmetros.
Controls: um dos mais importantes. Novamente, seja crítico quanto aos controles. Há algum controle faltando? Os controles são suficientes para tirar conclusões do experimento? Imagine resultados um pouco diferentes dos que foram obtidos, isso auxilia a verificar se os controles são robustos.
Results: quais conclusões você pode tirar desse conjunto de experimentos? Lembre-se que muitas vezes as suas conclusões podem não coincidir com as conclusões dos autores, principalmente se há algum problema com os controles utilizados.
Finalmente a discussão: Após ler a discussão retire a principal mensagem do artigo ou o 5-SS (5 second summary). Imagine que você tem que contar ao seu orientador, que é, provavelmente, ocupadíssimo, sobre o artigo que você leu.
Não se esqueça de sempre ter em mente as suas próprias conclusões das figuras, muitos autores extrapolam e tiram conclusões que não são suportadas pelos experimentos realizados no artigo.
Observe que com o QTCR para cada figura, a leitura do texto com os métodos e explicação do experimento fica muito mais fácil, senão dispensável. O cerne dessa metodologia é, justamente, os painéis com os experimentos.
Um conselho prático é fazer as anotações FISH/QTCR no próprio artigo, seja escrevendo no canto da página ou por anotações no arquivo.
E, para complementar, faça um desenho ilustrativo do modelo gerado com esse estudo, nada rebuscado, apenas para concretizar as conclusões retiradas.
O que achou do método? Já usou e teve bons resultados? Pretende usar? Deixe sua opinião nos comentários!
. . .
Texto escrito por Dimitrius Santiago, bacharel em Bioquímica pela Univesidade Federal de Viçosa e aluno do mestrado Bioquímica na FMRP-USP.
Fonte: http://posgraduando.com/fish-qtcr-5ss-leitura-artigos/?utm_source=feedburner&utm_medium=email&utm_campaign=Feed%3A+posgraduando+%28PosGraduando%29
segunda-feira, 28 de setembro de 2015
SQL - Demorada
Consultas demoradas
SELECT pid, now(), datname, usename, now()-query_start as tempo_execucao, waiting, client_addr, query
FROM pg_stat_activity
WHERE query not like '%%' and query_start < now() - interval '5 seconds' order by 3 desc;
Cancelar uma consulta
SELECT pg_cancel_backend(pid of the postgres process);
SELECT pid, now(), datname, usename, now()-query_start as tempo_execucao, waiting, client_addr, query
FROM pg_stat_activity
WHERE query not like '%
Cancelar uma consulta
SELECT pg_cancel_backend(pid of the postgres process);
quinta-feira, 27 de agosto de 2015
Lendo dados CSV com R
Para leitura de um arquivo CSV em R
dados = read.csv(file="C:/caio/SNAS/CREAS/CREAS/Bases de Dados/CensoSUAS2014_CREAS_DadosGerais_Divulgação.csv", sep=";", quote='"', header=TRUE)
Relação dos campos lidos
names(dados)
Apresenta os dados da coluna q2
dados$q2
Média dos valores da coluna q8_1
mean(dados$q8_1)
Quantidade de linhas
nrow(dados)
Quantidade de colunas
ncol(dados)
Menor valor
min(dados$q8_1)
Maior valor
max(dados$q8_1)
Desvio Padrão
sd(dados$q8_1)
Variância
var(dados$q8_1)
Quartiles
quantile(dados$q8_1)
BOXPlot
summary(dados$q8_1)
Lista todas as variáveis definidas
ls()
Salva os dados como um objeto do R.
dataDaPesquisa = date()
save(dados, dataDaPesquisa, file="C:/caio/SNAS/CREAS/CREAS/Bases de Dados/CensoSUAS2014_CREAS_DadosGerais_Divulgação.Rda")
Carrega o objeto salvo sem precisar consultar novamente no banco!
dataDaPesquisa = date()
load("C:/caio/SNAS/CREAS/CREAS/Bases de Dados/CensoSUAS2014_CREAS_DadosGerais_Divulgação.Rda")
Lista todas as variáveis definidas
ls()
Salva os dados como um objeto do R.
dataDaPesquisa = date()
save(dados, dataDaPesquisa, file="C:/caio/SNAS/CREAS/CREAS/Bases de Dados/CensoSUAS2014_CREAS_DadosGerais_Divulgação.Rda")
Carrega o objeto salvo sem precisar consultar novamente no banco!
dataDaPesquisa = date()
load("C:/caio/SNAS/CREAS/CREAS/Bases de Dados/CensoSUAS2014_CREAS_DadosGerais_Divulgação.Rda")
terça-feira, 25 de agosto de 2015
Algoritmo e Estrutura de Dados Capitulo 1
Algoritmo é qualquer procedimento computacional bem definido que toma algum valor ou conjunto de valores como entrada e produz algum valor ou conjunto de valores como saída. É uma ferramenta para resolver um problema computacional bem especificado.
Uma instância de um problema consiste na entrada que satisfaz a quaisquer restrições impostas no enunciado do problema necessária para se calcular uma solução para o problema.
Um algoritmo é dito correto se para cada instância de entrada, ele para com a saída correta.
Diz-se que um algoritmo correto resolve o problema computacional dado.
Os algoritmos incorretos podem ser úteis, se sua taxa de erros pode ser controlada.
O único requisito é que a especificação deve fornecer uma descrição precisa do procedimento computacional a ser seguido.
Estrutura de dados é um meio para armazenar e organizar dados com o objetivo de facilitar o acesso e as modificações. Nenhuma estrutura de dados única funciona bem para todos os propósitos, e assim é importante conhecer os pontos fracos e as limitações de várias delas.
Problemas NP-Completos
Exercício:
1.1-1 Forneça um exemplo real no qual apareça um dos problemas computacionais a seguir:
ordenação: Listagem de alunos ou produtos por nome, ou código ou sobrenome, ou fabricante
determinação da melhor ordem para multiplicação de matrizes: Para solução sistema de equações lineares, utilizando método de Gauss
localização da envoltória convexa: topografia, determinar o terreno que envolve os pontos levantados, Curvas de nível
1.1-2 Além da velocidade, que outras medidas de eficiência poderiam ser usadas em configuração real?
Espaço utilizado para solução, custo financeiro dos recursos utilizados, por exemplo: banda de conexão, tempo de processamento.
1.1-3 Selecione uma estrutura de dados que você já tenha visto antes e discuta seus pontos fortes e suas limitações.
Vetor
Pontos fortes: rapidez no seu acesso. pode-se acessar qualquer posição do vetor diretamente
Pontos fracos: alocação em geral é estática, necessita de uma engenharia para alocar mais espaço, desde que esteja utilizando alocação estática.
1.1-4 Em que aspectos os problemas do caminho mais curto e do caixeiro viajante anteriores são semelhantes? Em que aspectos eles são diferentes?
Aspectos semelhantes: a dificuldade para encontrar a solução mais eficiente esta no tamanho da quantidade de pontos, cidades que se queira analisar, quanto maior o número de cidades, pontos do problema mais difícil fica a solução do problema.
o problema do caminho mais curto pertence a classe P
o problema do caixeiro viajante pertence a classe NP Completo
1.1-5 Mostre um problema real no qual apenas a melhor solução servirá. Em seguida, apresente um problema em que baste uma solução que seja “aproximadamente” a melhor.
Solução Ótima: Quantidade de dinheiro necessária para quitar as dívidas do dia (contas a pagar)
Solução Aproximada: Encontrar o zero de uma função utilizando o método das secantes.
https://meitcher.wordpress.com/2015/01/27/1-1-algoritmos/
O estudo do algoritmo é necessário para demonstrar que o método da solução adotada termina e obtém a resposta correta.
Boa prática da engenharia de software - bem documentada e projetada.
1.2-1 Forneça um exemplo de aplicação que exige conteúdo algorítmico no nível da aplicação e discuta a função dos algoritmos envolvidos
A solução de classificação multivariável, por exemplo aplicação do algoritmo de PROMETHEE, tem que aplicar algoritmo de ordenação, classificação, comparação entre os critérios selecionados.
1.2-2 Vamos supor que estamos comparando implementações de ordenação por inserção e ordenação por intercalação na mesma máquina. Para entradas de tamanho n, a ordenação por inserção é executada em 8n^2 etapas, enquanto a ordenação por intercalação é executada em 64n lg (n) etapas. Para que valores de n a ordenação por inserção supera a ordenação por intercalação?
Elaborando uma tabela com três colunas, n, tempo para o algoritmo por inserção e o tempo para o algoritmo por intercalação tem-se a tabela abaixo. O algoritmo por inserção tem menos etapas para n variando de 1 a 31, depois disso, ou seja, para n>26 o algoritmo por intercalação tem menos etapas. Foi utilizado lg = log na base 2.
1.2-3 Qual o menor valor de n tal que um algoritmo cujo tempo de execução é 100n^2 funciona mais rápido que um algoritmo cujo tempo de execução é 2^n na mesma máquina.
Elaborando uma tabela com três colunas, n, tempo para o algoritmo 1 e o tempo para o algoritmo 2 tem-se a tabela abaixo. O algoritmo 2 é melhor até n=14, a partir de n=15 o algoritmo 1 tem melhor desempenho.
Uma instância de um problema consiste na entrada que satisfaz a quaisquer restrições impostas no enunciado do problema necessária para se calcular uma solução para o problema.
Um algoritmo é dito correto se para cada instância de entrada, ele para com a saída correta.
Diz-se que um algoritmo correto resolve o problema computacional dado.
Os algoritmos incorretos podem ser úteis, se sua taxa de erros pode ser controlada.
O único requisito é que a especificação deve fornecer uma descrição precisa do procedimento computacional a ser seguido.
Estrutura de dados é um meio para armazenar e organizar dados com o objetivo de facilitar o acesso e as modificações. Nenhuma estrutura de dados única funciona bem para todos os propósitos, e assim é importante conhecer os pontos fracos e as limitações de várias delas.
Problemas NP-Completos
- embora ainda não tenha sido encontrado nenhum algoritmo eficiente para um problema NP completo, ninguém jamais provou que não é possível existir um algoritmo eficiente para este fim. Desconhece-se se existem ou não algoritmos eficiente para problemas NP completos.
- Se existe um algoritmo eficiente para qualquer um deles, então existem algoritmos eficientes para todos.
- Vários problemas NP Completos são semelhantes, mas não idênticos, a problemas para os quais conhecemos algoritmos eficientes. Uma pequena mudança no enunciado do problema pode provocar uma grande alteração na eficiência do melhor algoritmo conhecido.
Exercício:
1.1-1 Forneça um exemplo real no qual apareça um dos problemas computacionais a seguir:
ordenação: Listagem de alunos ou produtos por nome, ou código ou sobrenome, ou fabricante
determinação da melhor ordem para multiplicação de matrizes: Para solução sistema de equações lineares, utilizando método de Gauss
localização da envoltória convexa: topografia, determinar o terreno que envolve os pontos levantados, Curvas de nível
1.1-2 Além da velocidade, que outras medidas de eficiência poderiam ser usadas em configuração real?
Espaço utilizado para solução, custo financeiro dos recursos utilizados, por exemplo: banda de conexão, tempo de processamento.
1.1-3 Selecione uma estrutura de dados que você já tenha visto antes e discuta seus pontos fortes e suas limitações.
Vetor
Pontos fortes: rapidez no seu acesso. pode-se acessar qualquer posição do vetor diretamente
Pontos fracos: alocação em geral é estática, necessita de uma engenharia para alocar mais espaço, desde que esteja utilizando alocação estática.
1.1-4 Em que aspectos os problemas do caminho mais curto e do caixeiro viajante anteriores são semelhantes? Em que aspectos eles são diferentes?
Aspectos semelhantes: a dificuldade para encontrar a solução mais eficiente esta no tamanho da quantidade de pontos, cidades que se queira analisar, quanto maior o número de cidades, pontos do problema mais difícil fica a solução do problema.
o problema do caminho mais curto pertence a classe P
o problema do caixeiro viajante pertence a classe NP Completo
1.1-5 Mostre um problema real no qual apenas a melhor solução servirá. Em seguida, apresente um problema em que baste uma solução que seja “aproximadamente” a melhor.
Solução Ótima: Quantidade de dinheiro necessária para quitar as dívidas do dia (contas a pagar)
Solução Aproximada: Encontrar o zero de uma função utilizando o método das secantes.
https://meitcher.wordpress.com/2015/01/27/1-1-algoritmos/
O estudo do algoritmo é necessário para demonstrar que o método da solução adotada termina e obtém a resposta correta.
Boa prática da engenharia de software - bem documentada e projetada.
1.2-1 Forneça um exemplo de aplicação que exige conteúdo algorítmico no nível da aplicação e discuta a função dos algoritmos envolvidos
A solução de classificação multivariável, por exemplo aplicação do algoritmo de PROMETHEE, tem que aplicar algoritmo de ordenação, classificação, comparação entre os critérios selecionados.
1.2-2 Vamos supor que estamos comparando implementações de ordenação por inserção e ordenação por intercalação na mesma máquina. Para entradas de tamanho n, a ordenação por inserção é executada em 8n^2 etapas, enquanto a ordenação por intercalação é executada em 64n lg (n) etapas. Para que valores de n a ordenação por inserção supera a ordenação por intercalação?
Elaborando uma tabela com três colunas, n, tempo para o algoritmo por inserção e o tempo para o algoritmo por intercalação tem-se a tabela abaixo. O algoritmo por inserção tem menos etapas para n variando de 1 a 31, depois disso, ou seja, para n>26 o algoritmo por intercalação tem menos etapas. Foi utilizado lg = log na base 2.
| n | 8*n^2 | 64*n*ln(n) |
| 1 | 8.00 | 0.00 |
| 2 | 32.00 | 88.72 |
| 3 | 72.00 | 210.93 |
| 4 | 128.00 | 354.89 |
| 5 | 200.00 | 515.02 |
| 6 | 288.00 | 688.04 |
| 7 | 392.00 | 871.77 |
| 8 | 512.00 | 1,064.67 |
| 9 | 648.00 | 1,265.60 |
| 10 | 800.00 | 1,473.65 |
| 11 | 968.00 | 1,688.12 |
| 12 | 1,152.00 | 1,908.41 |
| 13 | 1,352.00 | 2,134.04 |
| 14 | 1,568.00 | 2,364.60 |
| 15 | 1,800.00 | 2,599.73 |
| 16 | 2,048.00 | 2,839.13 |
| 17 | 2,312.00 | 3,082.54 |
| 18 | 2,592.00 | 3,329.71 |
| 19 | 2,888.00 | 3,580.44 |
| 20 | 3,200.00 | 3,834.54 |
| 21 | 3,528.00 | 4,091.84 |
| 22 | 3,872.00 | 4,352.19 |
| 23 | 4,232.00 | 4,615.45 |
| 24 | 4,608.00 | 4,881.49 |
| 25 | 5,000.00 | 5,150.20 |
| 26 | 5,408.00 | 5,421.47 |
| 27 | 5,832.00 | 5,695.21 |
| 28 | 6,272.00 | 5,971.31 |
| 29 | 6,728.00 | 6,249.70 |
| 30 | 7,200.00 | 6,530.30 |
| 31 | 7,688.00 | 6,813.03 |
1.2-3 Qual o menor valor de n tal que um algoritmo cujo tempo de execução é 100n^2 funciona mais rápido que um algoritmo cujo tempo de execução é 2^n na mesma máquina.
Elaborando uma tabela com três colunas, n, tempo para o algoritmo 1 e o tempo para o algoritmo 2 tem-se a tabela abaixo. O algoritmo 2 é melhor até n=14, a partir de n=15 o algoritmo 1 tem melhor desempenho.
| n | 100^n | 2^n |
| 0 | 0 | 1 |
| 1 | 100 | 2 |
| 10 | 10000 | 1024 |
| 14 | 19600 | 16384 |
| 15 | 22500 | 32768 |
https://meitcher.wordpress.com/2015/01/27/1-2-algoritmos-como-tecnologia/
http://clrs.skanev.com/
sexta-feira, 26 de junho de 2015
Replicação Postgresql utilizando SLONY (Instalação)
Necessitei trabalhar com replicação de banco de dados pensando em alta disponibilidade de acesso aos dados. O local onde o servidor de dados esta instalado não possui um no break. Tenho que fazer uma migração para outro local, porém como todos os sistemas acessam este banco de dados, não conseguia pensar em uma estratégia para esta migração.
A solução que implantamos faz o seguinte:
A solução que implantamos faz o seguinte:
As minhas informações são gravadas no Banco 1. Todas as minhas aplicações estão apontando para o Banco 1. A estratégia adotada foi replicar o Banco 1 no site 1 para o Banco 2 no site 2. Tanto o banco como o ambiente do Site 2 são mais atualizados que do site 1.
Assim que as aplicações forem atualizados pode-se desligar o site 1 ou inverter a replicação.
Para replicação utilizei o Slony. A escolha do Slony aconteceu antes de entender todas as possibilidades de replicação que o Postgresql oferece.
Para instalação do Slony 2.2.4 em ambiente linux, segui a receita:
1) Baixar o Slony do site http://slony.info/downloads/, quando escrevi este post, a versão mais atualizada disponível era: slony1-2.2.4.tar.bz2.
2) Na pasta onde baixei o pacote, executei o comando:
tar -vjxf slony1-2.2.4.tar.bz2
faz com que o pacote seja descompactado e cria uma pasta denominda: slony1-2.2.4
3) É necessário ter instalado um compilador C em sua máquina / servidor. No lugar se utilizar o configure.sh que vem na pasta slony1-2.2.4 utilize o configure.sh seguinte:
export PGMAIN=/DBA/postgresql/9.4.1
./configure \
--prefix=$PGMAIN \
--bindir=$PGMAIN/bin \
--datadir=$PGMAIN/share \
--libdir=$PGMAIN/lib \
--with-pgconfigdir=$PGMAIN/bin \
--with-pgbindir=$PGMAIN/bin \
--with-pgincludedir=$PGMAIN/include \
--with-pglibdir=$PGMAIN/lib \
--with-pgsharedir=$PGMAIN/share
onde na variável PGMAIN deve ser inserida a pasta onde esta sua instalação do POSTGRESQL.
Execute do arquivo configure.sh.
Caso você receba a mensagem:
checking PostgreSQL for thread-safety... configure: error: PQisthreadsafe test failed - PostgreSQL needs to be compiled with --enable-thread-safety
Procure em sua máquina, a pasta onde esta instalado o arquivo: libpq-fe.h
find / -name libpq-fe.h
/usr/include/postgresql/libpq-fe.h
Coloque o resultado no arquivo configure.sh na variável with-pgincludedir
export PGMAIN=/DBA/postgresql/9.4.1
./configure \
--prefix=$PGMAIN \
--bindir=$PGMAIN/bin \
--datadir=$PGMAIN/share \
--libdir=$PGMAIN/lib \
--with-pgconfigdir=$PGMAIN/bin \
--with-pgbindir=$PGMAIN/bin \
--with-pgincludedir=/usr/include/postgresql \
--with-pglibdir=$PGMAIN/lib \
--with-pgsharedir=$PGMAIN/share
Execute novamente o arquivo configure.sh
4) Em seguida execute os comandos:
make all
make install
5) Esta instalado o Slony em uma máquina.É necessário repetir procedimento para cada servidor de banco de dados.
6) Para entender como funciona o Slony utilizei o tutorial que encontrei no site:
http://slony.info/documentation/2.2/tutorial.html
Infelizmente tem alguns erros neste tutorial que podem ser resolvidos lendo os arquivos de LOG gerados.
quarta-feira, 20 de maio de 2015
GRANT POSTGRES
Problema: Configurar acesso a um usuário para fazer consultas em TABELAS no NOME_SCHEMA
Comando para garantir acesso ao NOME_SCHEMA
GRANT USAGE ON SCHEMA nome_schema TO usuario
Comando para dar autorização de CONSULTA ao NOME_SCHEMA
segunda-feira, 20 de abril de 2015
Conselhos de um velho programador
Ache um emprego que te faça o mais feliz possível. Que te dê espaço para utilizar sua criatividade. Que te dê tempo para praticar e experimentar novas tecnologias. E que, principalmente, te cerque de pessoas como você. Pessoas que te inspiram, que te motivam e que reclamam de tudo e de todos. Uns totais insatisfeitos.
Ache um emprego no qual não seja tão difícil acordar de manhã (ou qualquer que seja o seu horário) e ir trabalhar.
Fonte:http://gizmodo.uol.com.br/conselhos-de-um-velho-programador-antissocial-e-ranzinza/
Assinar:
Comentários (Atom)




