sábado, 1 de dezembro de 2007

Script em python para benchmark em sistemas de arquivos

O script abaixo foi idealizado como ferramenta de benchmark para testar a criação de arquivos de tamanhos de 1KB, 1MB ou 1GB em diferentes sistemas de arquivos.

# -*- coding: iso-8859-1 -*-
#Autor: George Kihoma de Britto Lopes
#mail:kyowa_at_bol.com.br
#imponderavel.blogspot.com

import time
import sys
import os


def limpa_tela():
if sys.platform != "win32":
os.system("clear")
else:
os.system("cls")

def criar_arquivo(arquivo,tamanho):
if tamanho == 'KB':
tam=1024
elif tamanho == 'MB':
tam=1024*1024
elif tamanho == 'GB':
tam=1024*1024*1024
i=0
tempo1=time.time()
arq=open(arquivo,"w")
while i < tam:
arq.write("0")
i=i+1
arq.close()
tempo2=time.time()
tempox=tempo2-tempo1
arq_log=open("touch.log","w")
arq_log.write("\t\t-=-=-=-RESULTS-=-=-=-\n"+"\t\tFile created = "+arquivo+"\n"+"\t\tSize of "+str(tam/1024)+" KB\n"+"\t\tTime spent = "+str(tempox)+" seconds\n"+"\t\t-=-=-=-=-=-=-=-=-=-=-=-\n\n")
arq_log.write("\t\t-=-=-=-RESULTADOS-=-=-=-\n"+"\t\tArquivo criado = "+arquivo+"\n"+"\t\tTamanho de "+str(tam/1024)+" KB\n"+"\t\tTempo gasto "+str(tempox)+ " segundos\n"+"\t\t-=-=-=-=-=-=-=-=-=-=-=-\n\n")
arq_log.close()
print "\n\n"
print "\t\t-=-=-=-RESULTS-=-=-=-\n"+"\t\tFile created = "+arquivo+"\n"+"\t\tSize of "+str(tam/1024)+" KB\n"+"\t\tTime spent = "+str(tempox)+" seconds\n"+"\t\t-=-=-=-=-=-=-=-=-=-=-=-\n\n"
print "\t\t-=-=-=-RESULTADOS-=-=-=-\n"+"\t\tArquivo criado = "+arquivo+"\n"+"\t\tTamanho de "+str(tam/1024)+" KB\n"+"\t\tTempo gasto "+str(tempox)+ " segundos\n"+"\t\t-=-=-=-=-=-=-=-=-=-=-=-\n\n"

def ajuda():
limpa_tela()
print "\n*********************************** HELP *************************************"
print "This program requires 2 parameters, the name of the file to be created and the\nsize of it (1 KB or 1MB or 1GB). At the end the program will create an output\nlog file named touch.log which contains the time taken in seconds to create\nthe test file. Each of these parameters must be separeted by a single space. \n\nEx: python touch-plus.py file.txt MB log.txt\n\nFor author info type python touch_plus.py about"
print "\n*********************************** AJUDA ************************************"
print "Este programa necessita de 2 parametros para seu correto funcionamento, o\nnome do arquivo a ser criado e o tamanho do arquivo a ser criado (1 KB ou 1MB\nou 1GB). Ao fnal do programa sera criado um arquivo de saida chamado touch.log,\no qual contem o tempo gasto em segundos para criar o arquivo de teste.Cada\nparametro deve ser separado por um espaco simples.\n\nEx: python touch-plus.py file.txt 4 MB log.txt\n\nPara info sobre o autor digite python touch_plus.py sobre"

def info():
limpa_tela()
print "\n*******************************************************************************"
print "* Autor: George Kihoma de Britto Lopes *"
print "* Mail:kyowa_at_bol.com.br *"
print "* Program Version 1.0 *"
print "*******************************************************************************"

try:
if ((sys.argv[1]=="help") or (sys.argv[1]=="--help") or (sys.argv[1]=="-h") or (sys.argv[1]=="h")):
ajuda();
elif ((sys.argv[1]=="sobre") or (sys.argv[1]=="about")):
info()
else:
criar_arquivo(sys.argv[1],sys.argv[2])
except:
ajuda()


sexta-feira, 26 de outubro de 2007

Falácias, mentiras e descaramento

Que a grana faz o mundo girar, todo mundo sabe. Ou como dizem na língua de Shakespeare, money makes the world go around. Dentro desse pensamento, faz todo o sentido que uma companhia procure falar mal dos concorrentes. Lógica de mercado. Se a marca A é ruim, a marca B é boa. E B terá mais clientes que A.
No mundo da informática, em específico no mercado de software, isso também existe. Mas esse mercado é algo sui generis, na medida em que software é uma abstração da realidade, ou seja, uma modelagem em linguagem de computador de um método, ação, etc. A rigor, uma idéia sobre algo. Da mesma forma que um método matemático, por exemplo. Por isso as leis de patente da Europa não contemplam o software algo algo patenteável. A tradição cultural européia (lembre-se do ilumisnismo, René Descartes, Galileo, Da Vinci, Mendell, etc, a lista é interminável e remonta à Grécia antiga) enxerga o software exatamente como ele é. Uma abstração. E define como item patenteável não a idéia em si, mas o produto FÍSICO dela. Ou seja, um engenho, uma peça, algo de propriedade física palpável. Dentro dessa perspectiva histórica percebe-se os avanços tecnológicos da humanidade, na medida em que as idéias e a capacidade de tê-las não são exclusivas do homem A ou B. Ou da empresa A ou B.
Refletindo sobre isso, é de se estranhar, do ponto de vista do respeito à capacidade criativa da Humanidade, que os EUA aceitem a patente de software. Ou pior, a patente de idéias. Como é o caso do duplo clique do mouse.
Mas aí é preciso considerar também a natureza sócio-político-econômica da psiquê dos estadunidenses, em especial dos que querem patentear suas idéias e daqueles que consideram tais patentes como algo plausível. A lógica deles, estadunidenses, é manter o estilo de vida deles a qualquer preço.
E isso se aplica no mercado de software também. As armas usadas vão desde o falar mal abertamente, ao cooptar pessoas por meio financeiro (pagar) para que difundam nos seus países de origem as idéias que são benéficas a eles lá nos states. Por isso se vê tanta gente "defendendo" o indefensável. E usando os mesmos argumentos da matriz.
Confesso que o que mais me chateia nesses casos, é o insulto à minha inteligência quando vejo argumentos tecnicamente furados ou coisas do tipo " a empresa X faz melhor que o tal software livre". Diz que faz melhor, mas não diz o que exatamente.
Parece até um tal de Steve Ballmer, dizendo que o software livre infringe patentes da MS. Só não diz quais. E nem processa por isso, o que seria um direito dela, MS, caso ocorresse de fato a tal infração. E tem gente que acredita...

quarta-feira, 24 de outubro de 2007

Planejamento de longo prazo

De uns tempos para cá venho me preocupando com minha conta de energia elétrica. Não que ela seja alta. Mas tenho refletido que, se posso economizar, por que não fazê-lo?
Com esse pensamento procurei alternativas de equipamento que consomem menos. O primeiro passo foi a aquisição de um monitor LCD de 17'. Comprei um usado pelo mercado livre. A aquisição me custou, com frete por sedex, uns R$ 550,00.
Mas fiz essa compra apenas depois de um cálculo muito simples: meu antigo monitor de 15' CRT consumia em torno de 70W. O LCD consome em torno de 35W. Apenas nesse equipamento eu reduzi em 35W/h meu consumo de energia.
Daí, comecei a pensar: o nosso Estado, e isso já faz alguns anos, implementa o horário de verão em várias unidades da federação com o intuito de economizar energia. Além disso, passsamos por um apagão elétrico no último governo do FHC. E como desgraça pouca é bobagem, os analistas econômicos de plantão sustentam a tese de que a capacidade de geração de energia elétrica do país esta próxima de um dead-end. E o governo, como parece não saber pensar em medidas de redução, planeja a construção de mais hidrelétricas.
Fica a minha sugestão singela aos nossos administradores. Ao invés de propor mais gastos governamentais (leia-se dinheiro dos nossos impostos) com a construção de usinas, busquem alternativas de redução da demanda. Mesmo porque o gasto financeira da construção de uma usina é calculável. O "gasto" ambiental em época de aquecimento global, esse não é possível calcular.
Sem mais demoras, vamos aos cálculos:

Vamos supor o órgão X. Pode ser um ministério, por exemplo. Pode até ser o ministério das Minas e Energia, que é para o assunto ficar em casa.
Supondo que o referido órgão possua um parque computacional de 1.000 computadores, todos eles com monitor CRT de 15' e consumo médio de 70W/h. Em cada jornada diária, o consumo seria de 8 horas X 70W = 560W/h para cada monitor. Multiplicando por 1.000, teríamos o consumo diário de 560.000 W/h. Ou 560 KW. Por dia.

Em 01 (hum) mês de funcionamento (22 dias úteis), teríamos então 560.000W X 22dias. Isso equivale à 12320000 W/mês. EM 01 ano, 12320000W X 12 = 147840000W. Ou, na unidade de MW, teríamos o consumo anual de 147,84 MW.
A simples substituição dos monitores CRT por LCD geraria a economia de 50% (considerando o consumo do CRT em apenas 70W e do LCD em 35 W) no gasto de energia por apenas um aparelho. Isso, em números, daria uma economia no consumo anual de 147,84MW (monitor CRT)/2=73,92MW.

O cálculo acima foi realizado para um parque computacional de 1.000 unidades. Fico pensando qual o número total de computadores que ficam ligados 08 horas por dia na administração pública federal e nas undidades da federação. E quanta economia de energia poderia ser realizada apenas com essa substituição. Mas parece que nossos administradores julgam ser mais fácil construir uma hidrelétrica e linhas de transmissão.

E para aprofundar a medida acima, ou seja, a substituição dos monitores CRT por LCD, o governo federal e os estaduais poderiam isentar durante 01 ano os monitores de LCD de qualquer imposto. E se fosse o caso, subsidiar a aquisição dos mesmos, de modo que toda a indústria e os cidadãos civis pudessem realizar a troca. No longo prazo, penso que o esforço é plenamente justificável.

Um cálculo sugerido ao Ministério de Planejamento de Longo Prazo: calcula aí Mangabeira, qual o impacto dessa substituição na nossa capacidade de geração e transmissão de energia elétrica?

Para quem quiser refazer meus cálculos, aconselho procurar as páginas de internet dos fabricantes de monitores. Nelas vocês encontrarão o consumo dos equipamentos.

terça-feira, 26 de junho de 2007

O Iníco de Tudo

Eis que me decidi por adentrar o universo blogueiro.