Categoria: Programação

  • análise exploratória sobre arquivos de log de acessos do apache

    Na tentativa de entender um pouco mais sobre o desempenho do nosso site fiz um script python 3 para uma analise preliminar dos arquivos.

    def file_IPs(fname):
    counter = 0;
    IPs = {};
    with open(fname) as f:
    for linha in f.readlines():
    counter += 1;
    IP = linha.split()[0];
    if IP in IPs:
    IPs[IP] += 1;
    else:
    IPs[IP] = 1;
    distinctIPs = 0;
    maximo = 0
    minimo = counter;
    for ip, ipcount in IPs.items():
    # print(ip, ipcount);
    if (maximo < ipcount): maximo = ipcount; if (minimo > ipcount):
    minimo = ipcount;
    distinctIPs += 1;
    # print("total = ", counter, "distintos = ", distinctIPs, "maximo = ", maximo, "minimo = ", minimo, "media = ", counter/distinctIPs);
    print(fname[-8:], "; ", counter, "; ", distinctIPs, "; ", maximo, "; ", minimo, "; ", counter/distinctIPs, "\n");
    return


     

     

     

  • mudando para php 7.x no provedor  Locaweb

    mudando para php 7.x no provedor Locaweb

    Sempre chega a hora em que é necessário atualizar a versão dos softwares de apoio da sua hospedagem. Neste momento estou tentando passar de php 5.6 para php 7.x no provedor Locaweb.

    Em outros provedores, isso é feito simplesmente alterando a configuração de suporte ao PHP para a nova versão no CPanel. Aqui não funcionou.

    Primeiro, a alteração no Painel de Controle pede 15 minutos para tornar a nova configuração ativa.

    Atenção: Versão de PHP alterada. Ela poderá levar até 15 minutos para processar. Aguarde o tempo necessário e verifique se houve a alteração de acordo com sua solicitação.

    Isso é estranho, mas mesmo esperando a página continua mostrando mensagens como:

     

    ou

     

    Procurando por ajuda, encontrei um post no blog do provedor “Saiba como alterar a sua versão PHP para o PHP 7” de 16 de março de 2016. Encontrei ainda as instruções em “Como alterar a versão do PHP“. Por estas instruções, fica claro que a simples alteração no Painel de Controle da Hospedagem não funciona. Nem mesmo esperando os 15 minutos pedidos.

    Atendimento do Suporte por chat, quanto finalmente consegui passar do atendimento do robot, para o atendimento humano, fui colocando em uma fila “Informações às 19:15, Nov 28: Nesse momento, você é o número 16 na fila de atendimento. ” ! Ainda estou na  fila “Informações às 19:53, Nov 28: Nesse momento, você é o número 1 na fila de atendimento. Por favor aguarde a resposta de um dos nossos analistas. Informações às 19:55, Nov 28: Você está agora conversando com lucas.silva.”

    Estranho o atendimento pedir

    Poderia informar os dados de FTP, host, usuário e senha?

    Acho que não gosto disso. De qualquer forma, quando passei estes dados para o atendente, ele providenciou os ajustes de configuração para que a hospedagem voltasse a funcionar.

    Porque ele precisa se usuário e senha para ajustar a configuração? Isso compromete as trilhas de auditoria. Senhas alteradas depois do processo para preservar a segurança.

    O que foi feito? Quais os ajustes que foram feitos? Porque os processos automatizados no painel de controle não funcionaram? Mesmo as receitas disponíveis não funcionaram. O que foi feito de diferente que agora funcionaram?

    Ao que parece eles substituíram o arquivo php.ini da instalação com alterações de configuração no que se refere a locais de biblioteca para o php e referencias de compatibilidade no ambiente.

    Recebi por eMail a mensagem

     

    Título: Alteração da Versão PHP

    Olá, Osvaldo.

    Sabia que agora você consegue alterar a versão PHP da sua Hospedagem de Sites sozinho, sem a ajuda do nosso Suporte?

    Você encontra essa possibilidade no painel de Hospedagem, clicando em Administrar Site e depois em Informações da Hospedagem no link Configurar versão.

    Nosso objetivo é sempre melhorar a sua experiência 🙂
    Por isso, se você tiver mais alguma sugestão, não deixe de nos contar clicando aqui.

    Um abraço!
    Equipe Locaweb

     

    Será que eles não percebem que esta automação do processo não está funcionando?

    Referências

    1. Migrating from PHP 5.6.x to PHP 7.0.x

     

     

     

  • encapsulando Fortran em Python

    “Estamos tendo dificuldades em encontrar pessoal para dar manutenção e evoluir o nosso programa de calculo de estruturas escrito em Fortran” (CRC).

    Bom! Devemos considerar que a linguagem continua sendo usada nas áreas de engenharia e processamento cientifico. Encontrar pessoal qualificado e interessado no desenvolvimento e manutenção de acervo Fortran, realmente pode ser um desafio.

    Se a “dor” está na inteface (entrada de dados e apresentação dos resultados), uma primeira possibilidade é o interfaceamento com o Python através da biblioteca F2PY que agora é parte do NumPy.  Scripts Python podem preparar arquivos de entrada para o programa Fortran, que chamado automaticamente, processa e grava arquivos de saida, em formato “combinado” com a continuação do script Python para uma apresentação conveniente.

    As limitações desta solução pode estar bem próximas:

    • disponibilidade de mão de obra, agora para manter acervo nas linguagens Fortran e Python. Aqui a obsolecencia não foi programada e a diversidade causa problemas.
    • evolução dos ambientes computacionais (sistemas operacionais, hw, compiladores, etc), provocando a obsolecencia da configuração.
    • novos requisitos para a configuração, demandando evolução da implementação.

    O artigo Experience converting a large Fortran-77 program to C++, (de Ralf W. Grosse-Kunstleve, Thomas C. Terwilliger, Paul D. Adams Lawrence Berkeley National Laboratory, One Cyclotron Road, BLDG 64R0121, Berkeley, California, 94720-8118, USA.) dá uma idéia do empreendimento no caso extremo de se querer converter codigo Fortan para C++!

    Referrencias:

  • OpenBiblio – +1 Relatório

    OpenBiblio - a library system that's free
    um sistema de biblioteca que é livre

    Vou anotar aqui as minhas observações sobre a criação de um relatório adicional para a nossa instalação do OpenBiblio (http://cedom.net/biblioteca/).

    Sentimos a falta do histórico de um exemplar, para saber por onde ele andou, quem o retirou. Estas são as notas sobre o processo de criação de um tal relatório para a nossa biblioteca. O detalhamento destas notas é condicionado ao processo criativo.

    Nada se cria, tudo se copia….

    Meu modo básico de criar um novo relatório, eu copio um relatório existente (~/reports/defs/*.rpt) com um novo nome. Se possível, escolho um relatório parecido com o que quero criar….

    Identificação

    Cada relatório deve ter o seu nome, e cada nome somente deve ser usado para um relatório…. assim,

    .title HistoricoCirculacao

    alterei a primeira linha do meu novo relatório para ter uma palavra chave para o nome do meu relatório. Sim, esta deve ser somente uma palavra chave, que será o nome do relatório, se quiser que ele seja decodificada em sua lingua local, inclua uma linha de decodificação no arquivo ~/locale/pt/reports.php com o formato

    $trans["HistoricoCirculacao"]  = "\$text = 'Histórico de Circulação';";

    ainda no tema Identificação cabe definir a linha

    .category Circulation

    para indicar em que bloco de relatórios, este novo item deve entrar.

    … encontrei um relatório muito parecido

    Encontrei um relatório muito parecido com o que eu precisava em Reports, assim esta saga de escrever relatórios para a nossa biblioteca ficou para uma próxima oportunidade.

    … Relatórios.

    • Acompanhamento de Catalogação ganhou uma nova versão agora com a possibilidade de demarcar a data de inicio e data de fim do periodo de analise. Status : Instalado em testes.
    • Titulos – uma lista de titulos, com a contagem de exemplares. Status: Instalado em testes.
    • Leitores – especialmente preparado para crítica do cadastro de leitores com data de atualização, nome e sobrenome, endereço, telefones, grupo, e contagens. Status: A Desenvolver.

    Perguntas

    • Comentários – como eu incluo comentários em meu relatório? afinal quero deixar claro o que estou fazendo para quem for ler este programa.

    Referências

    • Reports – uma lista de relatórios prontos que podem ser úteis.
    • WritingReports – a documentação sobre o módulo de relatórios do OpenBiblio na sua versão 0.6x.
    • RPTSyntax – a Sintaxe dos arquivos de configuração de relatórios. Pode não ser realmente completo, mas dá uma boa idéia do que pode ser feito e como fazê-lo.
    • OpenBiblio Customization – encontrei aqui bons recursos adicionais para a nossa instalação do OpenBiblio. Relatórios adicionais com contagem foi bem proveitoso.
    • MySQL Outer Join Tips – algumas dicas de outer join do mysql que ajudam na construação de relatorios.
    • Sintaxe Join – em último caso, sempre recorrer ao manual do MySQL.
  • Expressões Regulares… RegEx

    regex
    regex

    Isso sempre parece mesmo obra do demonio!!! Mas, o fato é que sempre podemos aprender um pouco mais sobre as expressões regulares e conseguir bons resultados com eles.
    Referências: