João Medeiros em 11/11/12

Algumas vezes temos problemas de memória alocando matrizes grandes usando o openmp. Nesses casos podemos aumentar o limite de memória ou deixá-lo o maior possível com o comando

ulimit -s unlimited

Tags:

João Medeiros em 03/10/12

Em algumas situações desejamos saber quanto um certo tipo de arquivo ocupa de espaço na árvore de diretórios, para isso podemos usar o find em conjunto com o awk


find . -name "*.pdf" -ls | awk '{total += $7} END {print total}'

O comando acima procura, a partir do diretório atual, todos os arquivos com extensão pdf, soma o tamanho deles e exibe o valor total no final.

No CentOS, as vezes necessitamos descobrir qual pacote fornece um determinado arquivo. Para isso, basta usar o comando yum whatprovides …

Por exemplo, para saber qual pacote fornece o arquivo libstdc++.so.5, execute

# yum whatprovides libstdc++.so.5

O resultado deve ser parecido com


Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: mirror.gtdinternet.com
* extras: mirror.gtdinternet.com
* rpmforge: mirror.awanti.com
* updates: mirror.gtdinternet.com
compat-libstdc++-33-3.2.3-61.i386 : Compatibility standard C++ libraries
Repo : base
Matched from:
Other : libstdc++.so.5

No caso acima, o pacote é compat-libstdc++-33-3.2.3-61.i386. Basta agora instalar o pacote com o comando

# yum install compat-libstdc++-33-3.2.3-61.i386

Os comandos acima foram testados no CentOS 5.4

Para aquele, que como eu, está em busca de alternativas ao google, uma maneira de adicionar novos motores de buscas na barra de pesquisas do Firefox é a seguinte:

  1. Instale o complemento Add To Search Bar (https://addons.mozilla.org/en-US/firefox/addon/add-to-search-bar) no Firefox.
  2. Após a instalação do complemento, reinicie o Firefox.
  3. Abra a página do motor de busca que deseja adicionar no Firefox.
  4. Posicione o cursor do mouse dentro da caixa de buscas e clique com o botão direito do mouse (Se estiver usando um Mac, pressione Control e clique), no exemplo abaixo, estamos usando o Gibiru
  5. Selecione “Adicionar à Barra de Pesquisa”
  6. Escolha um nome e um ícone e pressione OK. O resultado deve ser algo parecido com

Você pode esolher o motor de buscas que achar mais interessante.

João Medeiros em 05/05/12

O google está presente na vida online das pessoas, pelo menos a minha, em quase todas as áreas. A pergunta é: dá para ter uma vida online sem o google?

Dentre os serviços do google, certamente os mais utilizados são as buscas e o email. Existem algumas opções para os serviços de busca e de email.

Serviços de busca: DuckDuckGo, Gibiru

Serviços de email: ZoHo, Mail.com. Uma comparação entre vários serviços de email está na Wikipedia

Pessoalmente, não tenho nada conta o fato do google estar de posse da maioria dos meus dados online. Mas isso está começando a me incomodar e decidi ir contra a corrente. Estou iniciando um processo de “desgooglelização”, retirar, na medida do possível, meus dados de lá a passar a usar outros serviços de buscas, email, etc. Certamente não será um processo fácil, uma vez que utilizo bastante os serviços google (buscas, email, docs, apps, etc) desde 2005.

O primeiro passo será a mudança dos serviços de buscas e de email. O serviço de busca é mais fácil basta colocar o novo serviço de busca como página de entrada do navegador.

O de email é mais crítico. De maneira que para o email o caminho será o seguinte:

  • Passar a enviar mensagens somente a partir do novo serviço de email.
  • Enviar para os mais próximos o novo endereço de email.
  • Mudar o email de contato nos diversos serviços online.
  • Esperar o tempo passar até que não receba mais emails pessoais no gmail.
  • Eventualmente, cancelar a conta no gmail, ou deixá-la apenas para receber spams.

O serviço de email, terá que, necessariamente, oferecer a possibilidade de acesso via webmail e imap, de maneira que possa manter meus email em meus computadores e acessar via web quando não estiver na frente de um dos meus computadores. Após analisar algumas opções, resolvi voltar para minha antiga conta no mail.com (eu já tinha um email para toda vida lá com direito a acesso pop3/imap). Mas uma boa opção certamente é o ZoHo.

Bom, é isso. Depois conto mais sobre esse processo.

 

João Medeiros em 01/05/12

Para instalar o compilador Java da Sun no Ubuntu 12.04 faça o seguinte:

  1. Execute o download do JDK dessa página, ou mais especificamente daqui se você está usando a versão 64 bits.
  2. Extraia o arquivo:
  3. joao@ubuntu12:~$ cd Downloads/
    joao@ubuntu12:~/Downloads$ tar xzf jdk-7u4-linux-x64.tar.gz
    
  4. Mova os arquivos extraídos para seu local
  5. joao@ubuntu12:~/Downloads$ sudo mv jdk1.7.0_04/ /usr/lib/jvm/
    
  6. Instale a nova versão no sistema
  7. sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_04/bin/javac 1
    sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_04/bin/java 1
    
  8. Escolha o java como padrão
  9. joao@ubuntu12:~/Downloads$ sudo update-alternatives --config javac
    Existem 2 escolhas para a alternativa javac (disponibiliza /usr/bin/javac).
    
      Selecção   Caminho                                      Prioridade Estado
    ------------------------------------------------------------
    * 0            /usr/lib/jvm/java-6-openjdk-amd64/bin/javac   1061      modo automático
      1            /usr/lib/jvm/java-6-openjdk-amd64/bin/javac   1061      modo manual
      2            /usr/lib/jvm/jdk1.7.0_04/bin/javac            1         modo manual
    
    Pressione enter para manter a escolha actual[*], ou digite o número da selecção: 2
    update-alternatives: a usar /usr/lib/jvm/jdk1.7.0_04/bin/javac para disponibilizar /usr/bin/javac (javac) em modo manual.
    joao@ubuntu12:~/Downloads$ sudo update-alternatives --config java
    Existem 2 escolhas para a alternativa java (disponibiliza /usr/bin/java).
    
      Selecção   Caminho                                         Prioridade Estado
    ------------------------------------------------------------
    * 0            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      modo automático
      1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      modo manual
      2            /usr/lib/jvm/jdk1.7.0_04/bin/java                1         modo manual
    
    Pressione enter para manter a escolha actual[*], ou digite o número da selecção: 2
    update-alternatives: a usar /usr/lib/jvm/jdk1.7.0_04/bin/java para disponibilizar /usr/bin/java (java) em modo manual.
    
  10. Teste a instalação
  11. joao@ubuntu12:~/Downloads$ javac -version
    javac 1.7.0_04
    

A saída do último comando deve ser semelhante a de cima. Ou seja, deve mostrar 1.7.0_04.

João Medeiros em 30/04/12

A nova versão do Ubuntu vem com o Unity. Para aqueles que gostam do Desktop antigo ai vão algumas instruções de como instalá-lo.

O primeiro passo é instalar o pacote gnome-session-fallback, para isso abra um terminal, clicando no painel inicial

Em seguida, digite term e dê enter

Após a abertura do terminal, execute o comando abaixo

sudo apt-get install gnome-session-fallback

Após a instalação, encerre sua sessão atual e na tela de login, clique no símbolo do Gnome 

selecione a opção Gnome Classic

e faça seu login normalmente.

É isso, o Gnome Clássico ainda é muito usado, principalmente no ambiente corporativo.

Em algumas situações, necessitamos saber qual parte do nosso código consume mais tempo de CPU para poder saber onde otimizá-lo e tornar o programa mais rápido. Para isso podemos usar o GNU gprof, que é um utilitário para análise de dados de execução.

O processo como um todo envolve três passos:

  1. Compile seu código com a opção -pg
  2. Execute seu código normalmente, isso vai gerar um arquivo chamado gmon.out no diretório de execução do programa (se seu programa faz alguma mudança de diretório o gmon.out será gerado no último diretório).
  3. Finalmente, execute o comando
gprof executavel > relatorio.out

O comando acima irá gerar um relatório com estatísticas de execução das diversas funções de seu programa.

  %   cumulative   self              self     total
 time   seconds   seconds    calls   s/call   s/call  name
 95.97    148.37   148.37  1752000     0.00     0.00  func1
  2.02    151.49     3.12        1     3.12   154.42  MAIN__

Vamos dar um exemplo mais completo. Digamos que seu arquivo fonte esteja em /home/joao/fontes/main.f e você está usando o ifort (se estiver usando o gfortran, basta substituir o ifort por gfortran no comando abaixo) . Então o procedimento deve ser o seguinte:

    1. Compile seu fonte com o comando:
ifort -O3 -pg -o main main.f
    1. Execute o programa normalmente
    ./main
    1. Gere o relatório com o comando
 gprof ./main  >relatorio.out

Você pode agora visualizar o relatório com seu editor de textos preferido ou com algum outro comando como o cat ou more.

O gprof tem muitas opções, você pode aprender sobre elas com o comando man gprof ou nessa página
http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html

A medida que o tempo passa, eventualmente o seu disco de backups do time machine pode ficar cheio e o time machine começa a apagar os backups mais antigos. Se você não quiser que isso aconteça, uma possível solução é mudar o seu disco de backups para um maior. Abaixo segue um breve procedimento de como fazer isso (baseado neste site).

        1. Utilize um disco novo e formate-o com uma partição única Mac OS Expandido, utilize o Utilitário de Discos disponível no Mac.
        2. Vá em Abrir Preferências do Time Machine e selecione a opção Inativo.
        3. Desmonte e monte novamente o disco do Time Machine (o disco deve ser montado com a cor alaranjada).
        4. Abra o utilitário de disco e selecione a aba “Restaurar”.
        5. Arraste o disco antigo para o campo Fonte
        6. Arraste o disco novo para o campo Destino
        7. Deixe a opção “Apagar Destino” marcada. Se você não fizer isso, a cópia irá falhar.

      1. Clique em Restaurar, certifique-se que está tudo correto na janela que abre em seguida. A operação deve demorar bastante.
      2. Após a restauração, desmonte e desconecte o disco antigo.
      3. Abra a tela de configuração do Time Machine e ative-o
      4. Ainda na tela de configuração do Time Machine, pressione “Selecionar Disco” e escolha o novo disco. Você deverá observar que o ícone do disco mudou a cor de verde para laranja.

Você pode fazer agora um teste abrindo o Time Machine e verificando se o histórico de backups está no novo disco. Sugiro que você faça um teste de recuperação de um arquivo antigo para fazer um teste completo de recuperação antes de descartar/formatar o disco antigo.

Em algumas situações, quando temos um parque da máquinas, é interessante descobrir informações de hardware e software pela linha de comandos. No Macs isso pode ser feito com o comando


system_profiler SPHardwareDataType SPSoftwareDataType

Tags: