terça-feira, 30 de agosto de 2011

Postfix e arquivos XML/PDF NF-e

Atualmente tivempos a necessidade de remover os anexos dos e-mails no postfix e salvá-los em um diretório para que um software pudesse utilizá-los para emissão de NF-e.
Procurei na internet e vi que muitas pessoas também tinham essa necessidade. Nessas buscas pela internet eu achei um post do Sr Nick Jeffries (http://tech.jeffri.es/2010/09/automatic-ripping-and-saving-email-attachments-with-postfix/) e partindo desse post adaptei a solução dele à nossa necessidade.

O script original remove os arquivos PDF e descarta a mensagem, o script foi alterado para remover os arquivos PDF/XML e devolver a mensagem pro postfix, afim de evitarmos perdas de e-mails.

Muitas pessoas utilizam scripts no crontab com munpack, o que também é uma boa opção quando seu hardware é mais antigo e não tem tanto desempenho. O desempenho depende do hardware que você utiliza, utilizamos um servidor Dell com 2 processadores Intel(R) Xeon(R) CPU E5504 @ 2.00GHz 4 Cores, com 16GB RAM, HD SAS 500GB em raid 1.
Aparentemente a utilização do script dentro do postfix como um "filtro" não fez nem cócegas no servidor.

A solução implantada aqui utliza: postfix (www.postfix.org) e ripmime (http://www.pldaniels.com/ripmime/).

Nesse post estamos nos baseando que já há um postfix instalado, configurado e funcionando.
Utilizamos o Ubuntu 10.x mas esse filtro funciona em qualquer distribuição, basta ajustá-lo.

A solução segue o original do Jeffries e está dividida nos passos:
  • Instalação do ripMIME
  • Configurando o postfix para executar um filtro na chegada dos e-mails (incoming mail)
  • Criando o script de filtro
  • Ajustes finais

Instalação do ripMIME

Primeiro de tudo, nós precisamos instalar o ripMIME, que é um utilitário para extrair o anexo de um e-mail e salvá-lo em algum lugar. Vamos precisar efetuar o download, compilação e instalação, uma coisa bem simples e fácil.

Antes de mais nada você precisa do compilador gcc instalado em seu sistema, caso você não o tenha instale-o. Para instalar o gcc utilize o aptitude ou o yum para instalar (aptitude install gcc / yum install gcc).
Aconselho criar um diretório e baixar o ripMIME para esse diretório.

No prompt do servidor digite:


mkdir temp
cd temp
wget http://www.pldaniels.com/ripmime/ripmime-1.4.0.9.tar.gz
tar zxvf ripmime-1.4.0.9.tar.gz
rm -f rip*.gz
cd ripmime-1.4.0.9/
make
sudo make install


Por padrão o ripmime se instala em /usr/local/bin , você pode alterar o local de instalação dele mas vamos utilizar o padrão.

Configurando o postfix para executar um filtro na chegada dos e-mails (incoming mail)

Vamos criar um script para executar com o postfix, o postfix vai "chamar" o script para verificar o e-mail que chegou, esse script vai fazer o papel de filtro e devolver a mensagem pro MTA.

O que precisamos no momento é adicionar as linhas abaixo no final "master.cf" do postfix (/etc/postfix/master.cf)


# Inserido por fulano : fulano@mail.com data: dd/mm/aaaa
# Begin
saveattachment unix - n n - 10 pipe
flags=Rq user=mail argv=/usr/bin/saveattachment -f ${sender} -- ${recipient}
# End

Essa linha diz ao postfix que o filtro chamado "saveattachment" é um script unix. Os e-mails de entrada (incoming) que utilizam esse filtro serão desviados para o script que está localizado em "/usr/bin/saveattachment"

Utilizamos esse filtro somente para os e-mails que chegam (incoming), procure a linha abaixo e adicione essa linha também ao "master.cf":

#
smtp inet n - - - - smtpd
#alterado por fulano: fulano@mail.com data DD/MM/AAAA
# Begin
-o content_filter=saveattachment:dummy
# End

Utilizei o usuário "mail" para execução do script, será com o id/gid desse usuário que os arquivos serão salvos, logo o usuário deverá ter permissão rwx no diretório que utilizaremos para deixar os arquivos extraídos.


Criando o script de filtro

O script utilizado é derivado do exemplo existente na documentação do Postfix (http://www.postfix.org/FILTER_README.html#simple_filter) .
O script salva os anexos e copia qualquer pdf/xml para um diretório, renomeando o anexo.
O script pode ser alterado facilmente ajustado conforme a necessidade.

--- Inicio do arquivo ---
#!/bin/bash

# Version 1.0 of script to save mail attachments
# Requires ripmime
# Original script http://tech.jeffri.es/wp-content/uploads/2010/09/saveattachment.txt
# Original script by Nick Jeffries
# Adjusted by Murilo Vitorino http;//mgvitorino.blogspot.com/


# alterar variavel "INSPECT_DIR" para o diretorio temporario que sera utilizado para extrair o arquivo
INSPECT_DIR=/maildir/temp/
# alterar variavel "TARGET_DIR" para diretorio onde serao colocados arquivos pdf/xml
TARGET_DIR=/maildir/server/
SN="saveattachment:"

# linha para reenvio da msg ao postfix
SENDMAIL="/usr/sbin/sendmail -G -i" # NEVER NEVER NEVER use "-t" here.


# Exit codes from <sysexits.h>

EX_TEMPFAIL=75
EX_UNAVAILABLE=69

# Clean up when done or when aborting.

trap "rm -f in.$$ *textfile*" 0 1 2 3 15

echo "$SN Starting scan of incoming email"

# Start processing.
cd $INSPECT_DIR || {
echo "$SN $INSPECT_DIR does not exist"; exit $EX_TEMPFAIL; }

cat >in.$$ || {
echo "$SN: Cannot save mail to file"; exit $EX_TEMPFAIL; }


# Now invoke ripmime to process the temporary file

echo "$SN Invoking ripmime"

/usr/local/bin/ripmime -v --prefix -i in.$$ || {
echo "$SN Ripmime failed"; exit $EX_TEMPFAIL; }

NUM_SOURCE_FILES=`ls -1 *.pdf | wc -l`

# Adicionado ao script original para filtrar arquivos xml
#
NUM_SOURCE_FILES1=`ls -1 *.xml | wc -l`
#
#

if [ $NUM_SOURCE_FILES -gt 0 ]; then
for f in *.pdf
do
TARGET_FILE=${TARGET_DIR}$$_$f

echo "$SN Setting perms and copying $f to $TARGET_FILE"
chmod 775 $f
mv $f $TARGET_FILE
done
else
echo "$SN No PDF files to copy"
fi

# adicionado para pegar arquivos xml de nf-e
#

if [ $NUM_SOURCE_FILES1 -gt 0 ]; then
for f in *.xml
do
TARGET_FILE=${TARGET_DIR}$$_$f

echo "$SN Setting perms and copying $f to $TARGET_FILE"
chmod 775 $f
mv $f $TARGET_FILE
done
else
echo "$SN No XML files to copy"
fi


#
#

# linha para reinject da msg no postfix
$SENDMAIL "$@" <in.$$

exit $?

--- Fim do arquivo ---


Ajustes Finais

Precisamos criar os diretórios para que o script funcione:

sudo chmod 755 /usr/bin/saveattachment
sudo mkdir -p /maildir/temp
sudo mkdir /maildir/server
sudo chown -R postfix: /maildir
sudo chmod 770 /maildir/temp
sudo chmod 770/maildir/server
sudo chown mail:postfix /maildir/server
sudo chown mail:postfix /maildir/temp

Para testar o script você pode criar um arquivo de mensagem com xml/pdf, enviar via telnet ou através do próprio script saveattachment. Primeiro vamos criar uma mensagem em formato mime com um pequeno xml dentro:


vi ~/mensagem
--- Inicio do arquivo---
Content-Type: multipart/mixed; boundary=00032555b4663d720b04ababfe2e

--00032555b4663d720b04ababfe2e
Content-Type: multipart/alternative; boundary=00032555b4663d720304ababfe2c

--00032555b4663d720304ababfe2c
Content-Type: text/plain; charset=ISO-8859-1

--
Atenciosamente,
--00032555b4663d720304ababfe2c
Content-Type: text/html; charset=ISO-8859-1

--00032555b4663d720304ababfe2c--
--00032555b4663d720b04ababfe2e
Content-Type: text/xml; charset=US-ASCII; name="teste.xml"
Content-Disposition: attachment; filename="teste.xml"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_grxzndh50

PD94bWwgdmVyc2lvbj0iMS4wIj8+DQo8YXZpc28+DQo8cGFyYT5QYXJhIFhNTCAiMDEvMDQvMjAw
MCI8L3BhcmE+DQo8ZGU+VGVzdGU8L2RlPg0KPGNhYmVjYWxobz5MZW1icmUtc2U8L2NhYmVjYWxo
bz4NCjxjb3Jwbz5BbWFuaGEgdm9jZSB0ZW0gcHJvdmEgZGUgbWF0ZW1hdGljYTwvY29ycG8+DQo8
L2F2aXNvPiANCg==
--00032555b4663d720b04ababfe2e--

--- Fim do Arquivo ---


Agora vamos usar o script para enviar essa mensagem:

/usr/bin/saveattachment -f remetente@dominio.com -- destinatario@dominio.com < mensagem

Verifique o diretorio escolhido para os arquivos XML onde deve conter um arquivo xml com o nome $idmsg_teste.xml .

Qualquer dúvida, estou à disposição.

segunda-feira, 21 de março de 2011

CERTIFICAÇÕES RED HAT

Como em diversas entrevistas eu sou "testado" e querem que eu escreva comandos que já não me recordo mais, esses os quais esqueço pelo simples fato natural: tudo que você aprende e não usa fica esquecido. "Esqueci" tais comandos devido a uma série de fatores, tais como: fisioterapia, faculdade, trabalho com outras plataformas, etc. Daí a importancia de sempre estar trabalhando (a pratica leva à perfeição). No fundo sei que não esqueci, simplesmente não os tenho utilizado a muito tempo e estou "enferrujado", precisando apenas voltar as atividades para que sirvam como um belo "WD". Tenho algumas certificações da Red Hat as quais, 'aparentemente', não servem para nada ou estão sendo ignoradas em meu CV. Para quem não sabe as certificações Red Hat são realizadas através de prova prática (ao contrário da Microsoft, LPI), ou seja: não adianta decorar e acertar no chute, tem que colocar a mão na massa e fazer acontecer. Hoje estava navegando na internet e loguei no site da Red Hat para ver as novidades, já que a muito tempo não fazia isso.
Como parece que tem gente que dúvida das minhas certificações, resolvi dar um print da tela da Red Hat (https://www.redhat.com/wapps/certifications/tx/certificationList) e postar no blog.
Bom, esta aí o print para quem não acredita e também para quem quiser me dar uma oportunidade de "por a mão na massa" e fazer meu potencial "funcionar" novamente.

Um abraço!

Murilo Vitorino

quarta-feira, 9 de fevereiro de 2011

VOCÊ É KAIROS OU CHRONOS?

Mais um texto que recebi por e-mail a algum tempo atrás:
VOCÊ É KAIROS OU CHRONOS?

FERNANDO HENRIQUE DA SILVEIRA NETO
CONSULTOR DO MVC - INSTITUTO M. VIANNA
COSTACURTA ESTRATÉGIA E HUMANISMO

A festa estava realmente muito animada. Eu conversava com um grupo que acabara de se formar naquela noite, mas parecia que já nos conhecíamos há anos.
Sabe, aquelas reuniões para as quais se é convidado e não conseguimos dizer não. Mas daquelas em que preparamos estratégias antes de entrar, do tipo se fulano estiver na sala, passo de fininho, digo olá e sigo para o outro extremo da casa.

E um grupo bem interessante acabou se formando naquele extremo da casa, certamente cada um fugindo de algum fulano. Falamos de tudo, jogamos conversa fora e ouvimos histórias interessantes.

E na hora em que falávamos sobre o significado do tempo (o papo estava sério mesmo!) chegou-se ao grupo o Zezo, um dos fulanos da sala. Não, não era o fulano que me fizera ir para aquele local, mas o fulano que fizera com que Judite se juntasse ao nosso grupo.

Quando Zezo chegou, ela educadamente perguntou-lhe como estava passando, e como tinham sido suas recentes férias no exterior.
O pior é que ele contou. Mais ou menos assim.
Foi razoável, mas com muitos contratempos.
-O vôo de ida saiu quase no horário, mas o de volta atrasou quase quatro horas, e eu fiquei super irritado com a empresa aérea, que me deixou sem qualquer atendimento ou informação sobre os motivos do atraso, plantado no aeroporto.
Além disso, o hotel me fez cumprir o horário de saída ao meio-dia, mesmo sabendo que o vôo era à noite. Fiquei esperando um bom tempo no hall, cheio de malas e sem nada para fazer.
Quando ia continuar, Zezo foi chamado de volta à sala para contar para outro grupo um fato ocorrido na viagem, e Judite deu força para que ele fosse.
-Vocês me desculpem, mas volto assim que puder.
Tão logo o Zezo saiu, Judite voltou ao papo sério de antes:
-O grego tem duas palavras ligadas ao tempo: chronos e kairos. Zezo é chronos, tempo para ele tem a ver apenas com horários, atrasos, prazos e duração de eventos e atividades, e isto é o que nos diferencia. Tempo para mim é kairos, tem a ver com valores e qualidade no uso do mesmo.
Paulinho comentou logo a seguir:
-Mas Judite, como é que você contaria a mesma história do Zezo? Afinal, deve ter sido uma chatura ficar no hall do hotel sem fazer nada, e pior ainda esperar por quatro horas num aeroporto, louco para embarcar de volta para casa.
Ao que Helena Maria acrescentou:
-É, não dá para dizer que tudo isso é natural e que nada aconteceu...
-Tem razão, disse Judite, mas a percepção do que aconteceu e a escolha do que fazer é que fazem a diferença entre um chronos e um kairos.
Paulinho então pediu:
-Judite, se fosse você contando o ocorrido, como teria sido?
Judite falou:
-É claro que não vou alterar os fatos, pois isto não faz sentido. Talvez teria interpretado e dito de uma maneira diferente. Mais ou menos assim.
- A viagem foi cheia de surpresas. Visitei todos os lugares que havia planejado, e ainda dei uma fugida de dois dias até Boston, pois sempre tive muita curiosidade sobre a cidade, e nunca aparecia uma oportunidade. Você sabe, trabalhei numa multinacional, e toda viagem internacional era do tipo casa-avião-trabalho-hotel-trabalho-avião-casa. Dessa vez consegui!
No dia do retorno, tentei um late check-out no hotel, mas não obtive. Pois pouco depois do meio-dia botei as malas no maleiro do hotel e fui almoçar no Four Seasons, e só me dei conta da hora quando eram quase quatro da tarde! Aquele restaurante é demais, e é tão bom a gente poder ficar perdido no tempo, sem qualquer compromisso imediato...
Resolvi então voltar a pé, olhando vitrines e demorando o quanto quisesse em cada uma delas, já que só no final da tarde iria para o aeroporto.
E não é que o vôo atrasou? Fiquei uma fera no balcão , falei que queria ser tratado como consumidor, que tinha horários para cumprir ainda no dia da chegada ao Brasil, mas ao final pensei: bem, como gastar quatro horas num aeroporto sem se chatear muito? Nas free-shops e nas livrarias. E foi o que fiz, e quase perdí a hora do vôo...
Helena Maria então disse, surpresa:
-Ué, é verdade que ele foi até Boston por dois dias, e que também almoçou no Four Seasons?
-Não, apenas ele foi até Boston, mas não pôde visitar o MIT porque senão iria se atrasar. E me disse que na próxima viagem vai arranjar um tempo para ir ao Four Seasons para almoçar...
-Mas que bobagem, disse Paulinho, a oportunidade estava lá e ele não a aproveitou...

Esta pequena história é bem próxima da que realmente aconteceu, a menos dos nomes das pessoas envolvidas.

Ela mostra claramente duas possíveis interpretações para o mesmo fato a partir da visão do que significa o tempo para cada um de nós. A realidade não mudou, e não estamos defendendo uma visão exclusivamente kairos do tempo.

Mas pensar apenas chronos é limitar e estreitar o uso do tempo ligando-o apenas ao relógio, aos afazeres e tarefas, deixando de lado o usufruir, o aproveitar e o usar o tempo com qualidade e não como quantidade.

---------------------------------------------------------
Acho que o texto dispensa comentários....

quarta-feira, 12 de maio de 2010

Você é "Hands on"?

"Hands on", Are you?
Max Gehringer

Hoje resolvi criar um blog, depois de anos sem querer entrar nesse "modismo" (apesar do twiter ser a "nova onda" do momento).É incrível como ficamos afastados das coisas durante certos períodos da vida e também é incrível como nos voltamos a essas coisas...
Recebi um e-mail hoje de um amigo com o esse título: "Hands on", e parei para pensar no conteúdo dele.
Depois de uma cirurgia no tornozelo, 2 meses deitado em uma cama, 8kg mais magro e alguns dias de fisioterapia o que eu mais queria era voltar a trabalhar. Ahhhh... como eu queria...
É fantástico como somos, trabalhamos muito e queremos não fazer nada, pedimos férias... ficamos muito tempo em casa parados, nos sentimos de certa forma "inúteis" e queremos trabalhar. 3 meses de "férias" forçadas eu não via a hora de voltar a trabalhar e para minha surpresa voltei mas fui "convidado" a voltar para casa novamente, só que dessa vez sem emprego. A vida é uma caixinha de surpresas, mas o bom da vida é que ela sempre nos ensina e podemos analisar as coisas de muitos ângulos, vários pontos de vista e isso é fantástico.
Fui "forçado" a começar a procurar um "espaço" no mercado de trabalho novamente. Trabalhei praticamente metade da minha vida, farei 30 anos em 4 dias, com informática. Desde os tempos das redes coaxiais, dos primordios 386, 486, nossos super hds de 540mb, as memórias de 8mb, DOS, OS2, Win 3.x, WinNT, Win2k, Win2k3, Win2k8, Novell 5, SCO, Linux Guarani, RHEL, HPUX, Barata Eletrica, Axur05... e por ai vai.
Passei anos ajudando pessoas no IRC da rede-rs e brasnet (e aprendendo também), nos canais de software livre, sistemas aberto, sistemas Microsoft, warez e por ai vai... Madrugadas a dentro nos foruns da underlinux, colaborando e aprendendo com milhares de mentes famintas por informação... Diversos conteúdos postados na antiga slacklife (meu apelido era cdrom) e anos aprendendo através de livros (caros na época), yahoo, google e cursos diversos.
Desde o tempo que comecei a trabalhar com isso, por volta de 1996, não haviam faculdades que ensinavam algo de útil (vamos assim se dizer) no campo da informática (hoje Tecnologia da Informação), nos meados do ano 2000 era muito mais prático e útil as certificações e cursos dos produtos ao qual se desejava trabalhar: Microsoft, Novell, Oracle, HP, IBM, etc. Independente do produto, você não encontraria conhecimento nas faculdades e hoje, ainda me pergunto se encontramos isso lá...
Nesse tempo um certificado Microsoft pesava muito mais do que uma faculdade e, claro, seguindo a lógica da deficiência das Universidades isso era de total compreensão, mas, os tempos mudaram. É claro, comecei a cursar uma em meados de 2002~2003 pois trabalhava em uma faculdade e só queria um diploma. Confesso que não assisti 1 aula, pois tudo que estavam ensinando na faculdade eu já sabia, já tinha aprendido ou nesses meus anos de experiência em diversos clientes ou nos mais de 40 cursos que fiz voltados aos produtos.
Sempre fui uma pessoa muito "tecnica" e gostava de trabalhar com os computadores, tá aí a importancia de se fazer uma faculdade (lidar com pessoas), hoje estudo psicoterapia, filosofia, psicologia e outras coisinhas mais "humanas" e acho muito legal.
Resumindo, não terminei a faculdade e hoje vou ter que começar a fazer uma novamente, pois o mercado de trabalho "exige" para que você possa trabalhar.
Vejam, não sou contra se fazer uma graduação, muito pelo contrário, acho que a faculdade tem papel importante na formação das pessoas pois, nela, você aprende a conviver com outras pessoas e isso é fundamental em uma empresa. Porém, ainda sou da filosofia de que se "por a mão na massa" e solucionar problemas, principalmente tecnicos, são mais importantes que um certificado de graduação (vão entender ao ler o texto). É como aquela velha piada sobre 3 candidatos que são entrevistados e perguntam sobre qual a coisa mais rápida do mundo, sabem? O contratado no final é o cara que diz "a diarreia". Realmente, você precisa entender de "cagadas" para resolver problemas, ou seja, tem que ser prático e resolver os problemas não debater quem o fez.
Bom, dei essa volta toda para chegar ao título desse meu primeiro post, mas o fiz para que se entenda o que eu quero dizer (e o que, no meu ponto de vista, o e-mail quer dizer).
Você é Hands on?
Max Gehringer (Colunista Revista EXAME)

Vi um anúncio de emprego. A vaga era de gestor de atendimento interno, nome que agora se dá à seção de serviços gerais. E a empresa exigia que os interessados possuíssem - sem contar a formação superior - liderança, criatividade, energia, ambição, conhecimentos de informática, fluência em inglês e não bastasse tudo isso, ainda fossem hands on. Para o felizardo que conseguisse convencer o entrevistador de que possuía essa variada gama de habilidades, o salário era um assombro: 800 reais. Ou seja, um pitico. Não que esse fosse algum exemplo fora da realidade. Pelo contrário, é quase o paradigma dos anúncios de emprego. A abundância de candidatos permite que as empresas levantem cada vez mais a altura da barra que o postulante terá de saltar para ser admitido.

E muitos, de fato, saltam. E se empolgam. E aí vêm as agruras da super-qualificação, que é uma espécie do lado avesso do efeito pitico...
Vamos supor que, após uma duríssima competição com outros candidatos tão bem preparados quanto ela, a Fabiana conseguisse ser admitida como gestora de atendimento interno. E um de seus primeiros clientes fosse o seu Borges Gerente da Contabilidade.
* Fabiana, eu quero três cópias deste relatório.
* In a hurry!
* Saúde.
* Não, isso quer dizer "bem rapidinho". É que eu tenho fluência em inglês. Aliás, desculpe perguntar, mas por que a empresa exige fluência em inglês se aqui só se fala português?
* E eu sei lá? Dá para você tirar logo as cópias?
* O senhor não prefere que eu digitalize o relatório? Porque eu tenho profundos conhecimentos de informática.
* Não, não. Cópias normais mesmo.
* Certo. Mas eu não poderia deixar de mencionar minha criatividade. Eu já comecei a desenvolver um projeto pessoal visando eliminar 30% das cópias que tiramos.
* Fabiana, desse jeito não vai dar!
* E eu não sei? Preciso urgentemente de uma auxiliar.
* Como assim?
* É que eu sou líder, e não tenho ninguém para liderar. E considero isso um desperdício do meu potencial energético.
* Olha, neste momento, eu só preciso das três có...
* Com certeza. Mas antes vamos discutir meu futuro...
* Futuro? Que futuro?
* É que eu sou ambiciosa. Já faz dois dias que eu estou aqui e ainda não aconteceu nada.
* Fabiana, eu estou aqui há 18 anos e também não me aconteceu nada!
* Sei. Mas o senhor é hands on?
* Hã?
* Hands on.. Mão na massa.
* Claro que sou!
* Então o senhor mesmo tira as cópias. E agora com licença que eu vou sair por aí explorando minhas potencialidades. Foi o que me prometeram quando eu fui contratada.

Então, o mercado de trabalho está ficando dividido em duas facções:
1 - Uma, cada vez maior, é a dos que não conseguem boas vagas porque não têm as qualificações requeridas.
2 - E o outro grupo, pequeno, mas crescente, é o dos que são admitidos porque possuem todas as competências exigidas nos anúncios, mas não poderão usar nem metade delas, porque, no fundo, a função não precisava delas.
Alguém ponderará - com justa razão - que a empresa está de olho no longo prazo: sendo portador de tantos talentos, o funcionário poderá ir sendo preparado para assumir responsabilidades cada vez maiores. Em um a empresa em que trabalhei, nós caímos nessa armadilha. Admitimos um montão de gente superqualificada. E as conversas ficaram de tão alto nível que um visitante desavisado confundiria nossa salinha do café com a Fundação Alfred Nobel.
Pessoas superqualificadas não resolvem simples problemas!
Um dia um grupo de marketing e finanças foi visitar uma de nossas Fábricas e no meio da estrada, a van da empresa pifou. Como isso foi antes do advento do milagre do celular, o jeito era confiar no especialista, o Cleto, motorista da van.
E aí todos descobriram que o Cleto falava inglês, tinha informática e energia e criatividade e estava fazendo pós-graduação. Só que não sabia nem abrir o capô. Duas horas depois, quando o pessoal ainda estava tentando destrinchar o manual do proprietário, passou um sujeito de bicicleta. Para horror de todos ele falava "nóis vai" e coisas do gênero. Mas, em 2 minutos, para espanto geral, botou a van para funcionar. Deram-lhe uns trocados, e ele foi embora feliz da vida.
Aquele ciclista anônimo era o protótipo do funcionário para quem as empresas modernas torcem o nariz - O que é capaz de resolver, mas não de impressionar.
Achei bom o texto dele e deixo aqui as perguntas: até quando as empresas vão querer a "imagem" maquiada? Será que um dia elas vão realmente se preocupar com a "imagem verdeira" dos seus candidatos?
-----------
Murilo "Cabelo" Vitorino