terça-feira, 21 de dezembro de 2010

Informática e poder

O poder não é único e concentrado em um único ponto, mas é distribuído como uma teia [é isto que quer dizer a palavra inglesa web], uma rede por toda a sociedade. Aqui aparecem as redes de computadores (vários computadores interligados, na maioria das vezes através de linhas telefônicas). Cada computador, dessa forma, representa um ponto de concentração de poder e, por meio dessa interligação, eles acabam formando uma "teia" de poder, permeando toda a sociedade. Dessa maneira, a informática pode ser vista como um instrumento que propicia o controle da vida das pessoas, devido ao seu alto grau de concentração das informações e à alta velocidade com que elas são propagadas. Em poucos segundos pode-se ter acesso a banco de dados onde se concentra um número muito grande de informações sobre um determinado assunto ou pessoa.

(Ângelo Soares apud Marilena Chaui, Convite à filosofia, 2005, p. 304)

terça-feira, 14 de dezembro de 2010

Script shell para normalizar nomes de arquivos

Vamos utilizar a computação para minimizar as tarefas repetitivas: desenvolvi este pequeno script shell a fim normalizar nomes de arquivos de imagem para um projeto que estou trabalhando. Fiz algumas adaptações e o mesmo pode ser usado para normalizar qualquer tipo de arquivo dando a eles ordem numérica.

Troque os valores das variáveis FORMATOF e  NAMEOF para definir qual o tipo de arquivo que será normalizado (use * para todos) e qual será o nome desejado para o(s) arquivo(s) de saída, respectivamente.

# Script criado a fim de normalizar nomes de
# arquivos em "batch", dando então 
# ordem numérica a eles.

# Autor: Marcos Garcia - Marcker
# E-mail: marckfree@gmail.com
# Idioma: PT-BR

# Nota: OF = of file(s)

FORMATOF="jpg"
NAMEOF='image'
ls *.$FORMATOF > list-of-files
count=0
for i in `cat list-of-files`
do
count=`expr $count + 1`
mv "$i" "$NAMEOF""$count"."$FORMATOF"
echo "$i alterado com sucesso."
done
ls -a 

terça-feira, 19 de outubro de 2010

Web app para conversão de moedas

As vezes desejamos converter um valor em moeda corrente para uma moeda estrangeira, baseando-nos na cotação de câmbio daquele dia. Para tanto, pode-se encontrar uma infinidade de web apps (web applications - aplicativos web [na internet]) que executam esta atividade - inclusive a própria Google faz isso: basta digitarmos o valor em moeda e no resultado da busca é nos dado o valor correspondente aproximado.

Mas a Yahoo! também tem seu web app - http://br.finance.yahoo.com/moedas/conversor/ - e foi o que mais gostei: é muito fácil de usar, possui um guia de moeda, taxa de câmbio atualizada entre outras coisas.
Portanto, recomendo a utilização deste web app e espero que vá de encontro ao que você procura.
Segue abaixo uma amostra da interface da aplicação de conversão de moedas:

Figura 01 - Aplicativo conversor de moedas da Yahoo!.

quarta-feira, 22 de setembro de 2010

Das campanhas presidenciais: Brasil X EUA

Este texto não tem caráter acusatório, antes que alguém diga. Trata-se apenas de reflexões sobre a campanha eleitoral de Dilma Rousseff com relação a campanha do atual presidente dos EUA, Barack Obama.


Primeiro vou falar sobre o que eu observei a respeito do design visual da campanha do PT, que assemelha-se muito com o do Obama. Vamos analisar os seus logotipos de campanha:

1. Este é o logotipo da campanha da Dilma.

2. Este é o logotipo da campanha do Obama.


É notável alguma semelhança na construção do logotipo? São três pontos que relevei na minha avaliação.
O primeiro - podendo até ser uma simples conhecidência - trata-se do caráter circular no logotipo; tendência estética esta seguida por ambos. 
O segundo ponto é a inspiração temática do logotipo, ou seja, a bandeira do país respectivo. Note que ambos o logotipos usam o solo, ou chão da esfera com a(s) faixa(s) da(s) bandeira(s). O mesmo para as cores: os dois modelos usam no solo e no céu as cores da bandeira.
O terceiro e último ponto: o número 5 (cinco). Quantas estrelas tem no logotipo da Dilma? E quantas faixas possuem o logotipo do Obama? Para ambas as perguntas a resposta é 5. 
Conhecidência ou não estes são apenas os fatos. Não vou especular sobre o que estes dados significam. O marketeiro da campanha deve saber o objetivo desse símbolo. E é sobre isso que irei falar.

O ano passado estava lendo a respeito da futura (hoje presente) campanhas para a presidência do Brasil.  E cheguei a esta informação: Ben Self (o marketeiro da campanha presidencial do Obama) iria ser o "cara" da campanha da Dilma em 2010http://bit.ly/cTsMv . Isso me fez suspeitar da frase: "I love this guy" (http://bit.ly/d6IuoG).
Teria Lula e Obama trocado experiências?

Não tenho a informação de quem é o comercializador da Dilma, mas seja quem for inspirou-se no Obama e na sua trajetória eleitoral. Vocês, leitores e importantes eleitores, lembram qual era o principal elemento vocabular dos discursos do Barack Obama? Mudança - exatamente: "Change, we can believe in Change!", ou em tradução livre: "Mudança, nós podemos acreditar em Mudança!". E o da Dilma Rousseff? "Por acaso" é mudança também - exatamente: "Para o Brasil seguir mudando" - ?

Seguindo com estas exposições de idéias faço o convite ao ato de pensar sobre estes acontecimentos, e fazer indagar sobre os fatos: existindo as conhecidências ou não.

Lembre-se também que Dilma e seu time não foram os primeiros a pensar (ou seguir) tendências de marketing político do Obama: http://bit.ly/aIECBW

sábado, 20 de março de 2010

Global call to action

Introduction:
At this time, I seek out a company that tries me to corruption, violence and treachery against my fellow man. Authors call this social anomaly (Émile Durkheim), judging the event with severity and rigor.

For a change happen you have to think very, very categorically disciplinary ideas or cause a shock. Pure truism to say these words, but we must, lest we forget the fact-target object. But I was engendering in recent times? It was the systematic construction of some ideas? And to get into something solid, workable, so to speak, I have drawn the guidance of some professionals in thinking, philosophy? Indeed so. I even Aristotle, Voltaire, Machiavelli, Descartes, Shakespeare, Jean-Paul Sartre, Nietzsche and many anonymous to name a few, and found an abyss of doubt, many of which, fair and organized into books, very well written and defined, others in informal dialogues. Nevertheless, doubts that were contradicted.

This made me reflect more mature: I declined the works of Nietzsche, for example, saw the horizon is that he wanted to tangier. I noticed his melancholy (natural philosophy), his passion for Richard Wagner and the french (see Ecce Homo, 1888) your right about the saying about the morality, saw his illness, his anger, his courage and abused his defeat.


Action:
From these studies will be worth nothing if they are applied, they say. A comment such that these words deserve applause. Speak the truth! I think constantly in a revolution. To destroy the ruling class, to break the paradigms and rules imposed by these people - do not want to be a hero, before anyone says. Just see capitalism as something extremely bad for humanity and nature. It is not necessary to read anything to reach this reasoning, absolutely nothing!

Facts are sufficient to prove. The State (companies) do not want your well-being, but its work force, so he'll qualify, you start driving and all its prospect for improvement. Today I have this perspective. And you, reader, you can also get it. Study society. See I'm not being a liar or giddy with this survey. This is not an imposition. Think for yourself. Observe and together we will strive to improve. Let's do it ceases to be an idea. We plan. Systematize the change. Understand the problem and thus the order, we will do our action plan in force. Reflect.

Chamada global para a ação

Introdução
Neste tempo, busco sair de uma sociedade que tenta-me à corrupção, violência e deslealdade contra os meus semelhantes. Autores chamam isso de anomalia social (Émile Durkheim, para citar um nome), julgando o fato com severidade e rigor.
Para acontecer uma mudança é preciso pensar bem, muito categoricamente disciplinar as idéias ou causar um choque. Truísmo puro é dizer estas palavras, mas é preciso, para que não esqueçamos o fato-objeto-alvo. Mas, que estive engendrando nestes últimos tempos? Foi a construção sistemática de algumas ideias? E para chegar em algo sólido, praticável, por assim dizer, baseei-me a orientação de alguns profissionais em pensar, em filosofar? Deveras que sim. Cheguei a Aristóteles, Voltaire, Maquiavel, Descartes, Shakespeare, Jean-Paul Sartre, Nietzsche e muitos anônimos para citar alguns, e encontrei um abismo de dúvidas, muitas das quais, justas e organizadas em livros, muito bem escritos e definidos, outras em diálogos informais. Não obstante, eram dúvidas que se contradiziam.
Isso me fez refletir com mais maturidade: declinei-me nas obras de Nietzsche, por exemplo, é vi o horizonte que ele queria tanger. Notei sua melancolia (natureza filosófica), sua paixão por Richard Wagner e os franceses (cf. Ecce Homo, 1888) sua razão quanto ao que dizia sobre a moralidade, vi sua doença, sua cólera, sua coragem abusada e sua derrota.

Ação:
De nada valerá estes estudos se não forem aplicados, dirão. A estes que pronunciarem tais palavras merecem aplausos calorosos. Falam a verdade! Penso constantemente em uma revolução. Em destruir a classe dominante, em quebrar os paradigmas e as regras impostas por estas pessoas - não quero ser herói, antes que alguém diga. Simplesmente vejo o capitalismo como algo extremamente ruim para a humanidade e a natureza. E não é necessário ler nada para chegar a este raciocínio, absolutamente nada!
Fatos são suficientes para provar. O Estado (empresas na verdade) não quer seu bem-estar, mas sim sua força de trabalho, por isso ele te qualifica, te dirige e arranca toda sua perspectiva de melhoria. Hoje tenho essa perspectiva. E você, leitor, também pode obtê-la. Estude a sociedade. Veja que não estou sendo mentiroso ou leviano com este levantamento. Isso não é imposição. Pense por si só. Observe e juntos vamos lutar para melhorar. Vamos fazer isso deixar de ser uma ideia. Vamos planejar. Sistematizar a mudança. Entenda o problema e, assim, com ordem, faremos nosso plano de ação vigorar. Reflita.

quarta-feira, 17 de fevereiro de 2010

Installing and playing a bit with Python 2.x

Recommendation: This article is aimed at users of Linux (I use Ubuntu 9.10). However, those who use MS Windows and Mac can take advantage of many of the things that are said here.

In this article we will see:
  • How to install Python 2.4 through the Shell Linux; 
  • Using Python on the command line itself Shell; 
  • How to run a python code (.py file) using the Shell; 
  • Where to learn Python. 

Installing Python 2.x through the Linux Shell:

Come on! Before you start coding you need to have Python installed on your computer. Many versions of Linux already have Python installed. Check this by typing in the Shell:

$ python

After that, press ENTER to confirm. By doing this you can see if Python is or is not installed on your machine (because his version will appear if you are) and at the same time, start your own.

Now, if you do not really have Python installed on your machine install it through the package manager APT-GET:

$ sudo apt-get install python2.4

Done the above steps you have prepared the Python environment and are ready to encode. The folder structure of Python when installed can be attested by typing one of the following commands:

$ whereis python

Or:

import sys
sys.path

In my case, the following result was shown - a list of paths:

['', '/usr/local/lib/python2.6/dist-packages/virtualenv-1.4.3-py2.6.egg', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0', '/usr/local/lib/python2.6/dist-packages']


Using Python on the command line itself Shell:

To start, you type python Python Shell in Linux. Once that's done we can use the Python commands via the command line.
For example, if I want to know the result of the mathematical expression: 10 * 30 / 2, simply enter to get the number 150, which is the correct result:

10*30/2
150

Python can be used as a calculator: use the operators + (to add), - (to subtract), * (to multiplication) and / (to division). Do as the above operation. Enter values and operators to determine the outcome.

Let us for a more complete example. Enter the following commands:

varA = float(raw_input("Digite um número: "))
varB = float(raw_input("Digite outro número: "))
result = varA + varB
print "O resultado da soma é: " + str(result)

Well, what we did was something very simple: First (line 01) create a variable called varA and attach to it the value of the keyboard (raw_input). Then we transform the value entered into a floating point number (float()).
The same was done in the second line varB.
On line 03 we create another variable (called results) and attach to it the result of the sum of varA and varB.
Finally, in line 04 printed on standard output, the screen (print) the result for the variable results in transforming the character set (string) with str().
Along the same line the sign serves as a concatenation (and the comma (,), if you prefer), adding our message with our result, being a set of characters. If we had not used the function str() to transform results in string would cause an error, because objects of type float can not be concatenated with objects of type string.


Running a python code (.py file) using the Shell:

Files of type .py are understood by the interpreter python you have installed and can be run in the Shell. To create a file of this type simply open a text editor (VIM for example) and start code (hehehehe!).

$ vim calculo_sum.py

Then enter these codes, same as above, but with the increase in the first and second line on the encoding of the editor. Your code will get this:

#!/usr/bin/python
# vim: set fileencoding=utf-8:

varA = float(raw_input("Digite um número: "))
varB = float(raw_input("Digite outro número: "))
result = varA + varB
print "O resultado da soma é: " + str(result)

To run this program at Shell type:

$ python calculo_sum.py

And the program will run.

We will now increase our small program with some statements: the if/else commands, for example.
To not have problems with errors in the indentation, remember: always use the tabsize your editor with the value 4. Python does not have braces "{" "}" as a delimiter scope, so a bad indentation certainly give rise to errors.

In VIM, to configure the tabsize type:

:set ts=4

And the code will get this:

#!/usr/bin/python 
# vim: set fileencoding=utf-8:  

varA = float(raw_input("Digite um número: "))
varB = float(raw_input("Digite outro número: "))
result = varA + varB

if result < 0:
    print "Resultado final inferior a zero: " + str(result)
elif result > 0:
    print "Resultado final superior a zero: " + str(result)
else:
    print "Valor final igual a zero!"

Well, as was said this was just a simple example which defines the field response in three possibilities: negative, zero and positive.
We use the command "if, elif and else" to obtain it.


Where to learn Python:

On the internet there several websites that provide opportunities to study this programming language (and other).
I also noticed that the vast majority are in english. But for those who do not speak the language can also study in Brazilian websites.
Below is a short list of options. If you want to search for more references on Google or another search engine of your preference:

Instalando e brincando um pouco com Python 2.x

Recomendação: Este artigo é dirigido para os usuários de Linux (eu uso Ubuntu 9.10). Não obstante, quem usa MS Windows e MAC poderá aproveitar muitas das coisas que serão ditas aqui.

Neste artigo veremos:
  • Como instalar Python 2.4 via Shell do Linux;
  • Utilizando Python em linha de comando no próprio Shell;
  • Como rodar um código python (.py) utilizando o Shell;
  • Onde estudar Python.


Instalando Python 2.x via Shell do Linux:

Vamos lá! Antes de começar a codificar é necessário ter o Python instalado em seu computador. Muitas das versões do Linux já possuem o python instalado. Verifique isso digitando no Shell:

$ python


Após isso, tecle ENTER para confirmar. Ao fazer isso você poderá constatar se o Python está ou não instalado em sua máquina (pois a versão dele irá aparecer caso esteja) e, ao mesmo tempo, iniciará o próprio.

Agora, caso você não tenha realmente o Python instalado em sua máquina instale ele por meio do gerenciador de pacotes APT-GET:

$ sudo apt-get install python2.4

Feito os passos acima você preparou o ambiente Python e já está pronto para codificar. A estrutura de pastas do Python quando instalado pode ser atestada digitando-se um dos comandos abaixo:

$ whereis python


Ou ainda:

import sys
sys.path


No meu caso, o seguinte resultado foi exibido - uma lista com os caminhos:

['', '/usr/local/lib/python2.6/dist-packages/virtualenv-1.4.3-py2.6.egg', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0', '/usr/local/lib/python2.6/dist-packages']



Utilizando Python em linha de comando no próprio Shell:


Para iniciar o Python você digitará python no Shell do Linux. Feito isso já podemos utilizar os comandos do Python via linha de comando.
Por exemplo: se quero saber o resultado da expressão matemática: 10*30/2 basta apenas digitarmos para obtermos o número 150, que é o resultado correto:

10*30/2
150


O Python pode ser usado como calculadora: utilize os operadores + (para somar), - (para subtrair), * (para multiplicação) e / (para divisão). Faça como na operação acima. Digite os valores e os operadores para ter o resultado.

Vamos então para um exemplo mais completo. Digite os comandos abaixo:

varA = float(raw_input("Digite um número: "))
varB = float(raw_input("Digite outro número: "))
result = varA + varB
print "O resultado da soma é: " + str(result)


Bom, o que fizemos foi algo bem simples: Primeiro (linha 01) criamos uma variável chamada varA e atribuímos à ela o valor da entrada do teclado (raw_input). Em seguida transformamos o valor inserido em um número de ponto flutuante (float()).
O mesmo foi feito na segunda linha para varB.
Na linha 03 criamos outra variável (chamada results) e atribuímos à ela o resultado da soma entre varA e varB.
Por fim, na linha 04 imprimimos na saída padrão, a tela (com o print) o resultado atribuído à variável results transformando-a em conjunto de caracteres (string) com a função str().
Nesta mesma linha o sinal + funciona como um concatenador (assim como a vírgula (,), se preferir), juntando nossa mensagem com nosso resultado, sendo ele um conjunto de caracteres. Caso não tivessemos utilizado a função str() para transformar results em string ocasionaria um erro, pois objetos do tipo float não podem ser concatenados com objetos do tipo string.



Rodando um código python (.py) utilizando o Shell:

Arquivos do tipo .py são entendidos pelo interpretador python que você instalou e podem ser executados no ambiente Shell. Para criar um arquivo deste tipo simplesmente abra um editor de textos (VIM por exemplo) e comece a codificar (hehehehe!):

$ vim calculo_sum.py


E digite estes códigos, igual ao anterior, porém com o acréscimo na primeira e segunda linha relativo a codificação do editor. Seu código ficará com este aspecto:

#!/usr/bin/python
# vim: set fileencoding=utf-8:

varA = float(raw_input("Digite um número: "))
varB = float(raw_input("Digite outro número: "))
result = varA + varB
print "O resultado da soma é: " + str(result)


Para executar este programa digite no Shell:

$ python calculo_sum.py


E o programa será executado.

Vamos agora incrementar nosso pequeno programa com algumas instruções: o comando if/else por exemplo.
Para não ter problemas com erros de indentação, lembre-se: sempre utilize o "tabsize" do seu editor com o valor 4. O Python não possui chaves "{" "}" como delimitador de escopo, portanto uma má indentação com certeza ocasionará erros.

No VIM, para configurar o tabsize (tamanho da tabulação) digite:

:set ts=4


E o código ficará com este aspecto:

#!/usr/bin/python 
# vim: set fileencoding=utf-8:  

varA = float(raw_input("Digite um número: "))
varB = float(raw_input("Digite outro número: "))
result = varA + varB

if result < 0:
    print "Resultado final inferior a zero: " + str(result)
elif result > 0:
    print "Resultado final superior a zero: " + str(result)
else:
    print "Valor final igual a zero!"

Bem, como foi dito este foi apenas um simples exemplo ao qual delimita o campo de resposta em três possibilidades: Negativa, zero e positiva.
Utilizamos o comando "if, elif e else" para obtermos isso.


Onde estudar Python:

Na internet existe uma infinidade de websites que fornecem possibilidades para estudar esta linguagem de programação (e qualquer outra).
Notei também que a grande maioria está no idioma inglês. Mas para quem não domina o idioma é possível também estudar em websites brasileiros.
Abaixo segue uma pequena lista de opções. Caso queira mais referências procure no Google ou outro buscador de sua preferência:

sexta-feira, 29 de janeiro de 2010

Society: Where do you go?

Article reprinted: There is a question I try to decipher the time - one of many: that mankind "run"? Where it "wants" to go?
According to Malinowski, in his work, the Scientific Theory of Culture (1944), there are universal in human motivations and Langer said: "perhaps the man 'run' to evolve (...)".
Henceforth, if you look microscopically this 'individual' will see that their bodies
work for their survival and that acting in organized performs this task very well. The human body is so. Performs tasks to survive, now if we take a magnifying glass to observe these beings 'individual' will see that the new bodies are observable and that, in complex and its macroscopic form new organizations giving structure to an entirely new universe - the society. Perhaps this is a truism. But I think that is relevant to quote.
Now, take again the 'magnifying glass' covering the whole and what we have? everything?
And that this 'all' serve? Improve constantly and generate new cosmos? To maintain the social sense? What exactly?
For now, I agree with the aforementioned philosopher Susanne K. Langer, where he says the man runs to evolve. I understand that this will generate new questions and issues to be studied: evolution, motivation, individual and others. Sorry.

Sociedade: para onde vai?

Artigo reeditado:

Existe uma dúvida que tento decifrar a tempos - uma das muitas: para que a humanidade "corre"? Para onde ela "quer" ir?
Segundo Malinowski, em sua obra, Teoria Científica da Cultura (1944), existem motivações universais no homem e Langer disse: "talvez o homem 'corra' para evoluir (...)".
Doravante, se olharmos microscopicamente este 'indivíduo' veremos que seus órgãos
atuam para sua sobrevivência e que agindo de forma organizado executa esta tarefa muito bem. O corpo humano é assim. Executa tarefas para sobreviver; Agora se tirarmos a lupa que observa estes seres 'individuados' veremos que novos organismos são observáveis e que, de forma complexa e macroscópica estes formam novas organizações dando estrutura a um universo inteiramente novo -- a sociedade. Talvez isso seja truísmo. Mas creio que seja relevante citar.
Agora, retire mais uma vez a 'lupa' que cobre o todo e o que temos? tudo?
E para que este 'tudo' serve? Aprimorar-se constantemente e gerar novos cosmos? Para manter o senso social? Que exatamente?
Por hora, concordo com a citada filósofa Susanne K. Langer, onde diz que o homem corre para evoluir. E entendo que isto gerará novas indagações e questões à serem estudadas: evolução, motivações, indivíduo entre outros. Lamento.