quarta-feira, 7 de dezembro de 2016

Data Nascimento em PHP

Código PHP para calcular a idade a partir da data no formato dd/mm/aaaa baseado na data atual (ano)

function calc_idade( $data_nasc ){

$data_nasc = explode("/", $data_nasc);
//~ $d = getdate();
//~ $data[2] = $d['year'];
//~ $data[1] = $d['month'];
//~ $data[0] = $d['mday'];
date_default_timezone_set('America/Sao_Paulo');
$data = date("d-m-Y");
$data = explode("-", $data);
$anos = $data[2] - $data_nasc[2];
if ( $data_nasc[1] >= $data[1] ){
if ( $data_nasc[0] <= $data[0] ){
return $anos; 
                        break;
}else{
return $anos-1;
        break;
}
}else{
return $anos;
}

sexta-feira, 10 de junho de 2016

Analisar Log Apache Tomcat

Analisando arquivo de log do Apache agrupando por data

-sh-4.1$ cat  localhost_access_log.2016-06-10.txt | cut -d " " -f4 | cut -c2-15 | sort | uniq -c
    371 10/Jun/2016:06
   8073 10/Jun/2016:07
  41605 10/Jun/2016:08
  63105 10/Jun/2016:09
  62293 10/Jun/2016:10
  19978 10/Jun/2016:11

Analisando arquivo de log do Apache agrupando por IP de chamada
-sh-4.1$ cat  localhost_access_log.2016-06-10.txt | grep 10/Jun/2016:11 |cut -d " " -f1 | sort | uniq -c
   3676  X.X.X.65
      4     X.X.X.167
  17912 X.X.X.73

Ajuda de Davi Lopes Carvalho

terça-feira, 19 de abril de 2016

Comando Linux find grep e ls

O problema resolvido abaixo é encontrar os arquivos criados há 12 dias que tenham no nome 'domicilio' e listem todos os atributos '-l' ordenado pelo tamanho '-S'

find . -maxdepth 1 -mtime -12 -exec grep domicilio -l {} \; | xargs ls -lS 

Encontrar os arquivos com extensão '*.html' que tenham no nome 'ie' e listar todos os atributos do arquivo.

find . -type f -name "*.html" -exec grep -l ie {} \; | xargs ls -l 


 Ajuda de Davi Lopes Carvalho

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);

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")

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

  • 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.
Exemplo de um problema NP Completo é "problema do caixeiro viajante". Não tem nenhum algoritmo eficiente conhecido. "Algoritmos de aproximação".

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/