RSS

Posts Tagged ‘programação’

Compilando fontes em separado no FORTRAN.

Sunday, January 10th, 2010

Para compilar um programa que está modularizado em diversos fontes, compilando cada fonte de cada vez, é muito simples e muito útil, haja visto que você não precisará recompilar todos os módulos a todo o tempo, e sim somente o módulo alterado e os dependentes do módulo alterado.

Vou dar o exemplo utilizando 3 arquivos fontes, o aleatorio.f90, rotinas3.3.f90 e teste.f90. E utilizando o compilador ifort, o qual é distribuído gratuitamente pela Intel para uso não comercial, não estou querendo fazer propaganda da Intel, mas os compiladores dela, na minha humilde opnião, humilham os compiladores da GNU, mas isso é uma discussão a parte.

A interdependêcia está assim: teste.f90 depende de aleatorio.f90, o qual depende do rotinas3.3.f90.

Primeiro compilamos os dois primeiros como objeto, utilizando a opção -c do ifort:

$ ifort -c rotinas3.3.f90
rotinas3.3.f90(56): (col. 9) remark: LOOP WAS VECTORIZED.
rotinas3.3.f90(61): (col. 9) remark: PERMUTED LOOP WAS VECTORIZED.
$ ifort -c aleatorio.f90
aleatorio.f90(59): (col. 16) remark: LOOP WAS VECTORIZED.

Confira os objetos criados:

$ ls *.o
aleatorio.o rotinas3.3.o

Então compilamos o último programa para gerar o binário:

$ ifort teste.f90 rotinas3.3.o aleatorio.o -o teste.bin

E pronto, o último programa foi compilado, sem recompilar todos os outros módulos, usando um -v você conseguira ver que o ifort não recompila os objetos.

Isso tras uma vantagem imensa para projetos de muitos módulos, pois não há necessidade de recompilar tudo toda hora, por exemplo, se eu fizer um alteração em aletorio.f90, eu só preciso recompilar este módulo e o que depende dele, o arquivo teste.f90, evitando a recompilação desnecessária do arquivo rotinas3.3.f90.

Espero que a dica seja útil.

Script para atualização automática do WordPress via shell.

Sunday, January 10th, 2010

Hoje fui atualizar o WP, já que não tinha nada melhor pra fazer, e como sempre, estava reclamando pra cacete de como acho chata essa atualização manual do WP, então fiz um script que faz backup dos arquivos estáticos, da database, compacta ambos em bz2, depois baixa a versão mais nova do WP e faz o update.

Está porco, pois foi feito as pressas, mas funciona, e definitivamente você terá de alterá-lo conforme as suas necessidades!

Segue o código:

#!/bin/bash

# Script para atualizacao do wordpress – versao 0.110/1/2010

# Por Leonardo Marques, analyser. – analyser(no_spam)mail.analyx.org

#Variaveis
DATE=$(date +%d.%m.%y)
DB_PASS="SUASENHADODB"
DB_USER="SEUSUARIONODB"
DB="SUABASEDEDADOS"
STORE_IN="/home/analyser/bkp_site/"
LOG="$STORE_IN/update_log.txt"
SITE="analyx.org"

#Execucao

#Bkp do DB
echo "fazendo dump do db…."
mysqldump -u $DB_USER -p$DB_PASS $DB > $STORE_IN/site-bkp-$DATE.sql
echo "comprimindo db…"
bzip2 –best $STORE_IN/site-bkp-$DATE.sql

#Bkp dos aquivos
mkdir $STORE_IN/$SITE-bkp-$DATE
echo "Copiando os arquivos estaticos…"
cp -rf /aletta/sitios/$SITE/htdocs-prod/ $STORE_IN/$SITE-bkp-$DATE
cd $STORE_IN
echo "Compactando o backup…."
tar -cf $SITE-bkp-$DATE.tar $SITE-bkp-$DATE
bzip2 –best $SITE-bkp-$DATE.tar
rm -rf $SITE-bkp-$DATE

#Atualizao do WP
cd /home/$USER/
echo "baixando nova versao do wp…."
wget http://wordpress.org/latest.zip
echo "descomprimindo wp…"
unzip latest.zip
echo "removendo wp-admin e wp-includes…."
rm -rf /aletta/sitios/$SITE/htdocs-prod/wp-admin /aletta/sitios/$SITE/htdocs-prod/wp-includes
echo "sobrescrevendo os arquivos…"
cp -rf wordpress/* /aletta/sitios/$SITE/htdocs-prod/
echo "limpando os arquivos tmp…."
rm -rf latest.zip wordpress
echo "#Wiki Backup feito em $DATE – Arquivo Gerado: $STORE_IN/analyx-bkp-$DATE.tar.bz2" >> $LOG
 

Clique aqui para baixar esse código fonte.

Espero que seja útil! Abraços!

Update @ Trabalhos da Graduação.

Thursday, December 31st, 2009

Adicionei todos os programas da disciplina Programação para Sistemas Físicos a seção Trabalhos da Graduação, são 12 ao total, todos feitos com Fortran 90/95 testados e compilados com o gfortran e ifort (intel), alguns até mesmo com o compilador da SUN.

E btw, feliz ano novo a todos!