Inventário de Referências Culturais de Xapuri

Você conhece Xapuri-AC ? A cidade de Chico Mendes…

É conhecida por seus moradores como a Princesinha do Acre. Uma cidade marcada por uma história de luta e resistência desde o período da Revolução Acreana à organização política dos trabalhadores da floresta. Resistiu também ao declínio da borracha, foi próspera e teve comércio forte. É realmente um local especial, onde os significados históricos e culturais se fazem explícitos em suas edificações, desde os casarões da cidade às casas dos seringueiros que vivem na floresta. Além disso: os gostos, os cheiros, os sabores, os lugares, a extração do leite da seringueira e tantas outras representações culturais, constituem os marcos e referencias de identidade para a população de Xapuri.

Estava dando uma “geral” em alguns discos de backup e encontrei aqui o Inventário de Referências Culturais de Xapuri, um documento governamental riquíssimo, fruto de intensa pesquisa do Departamento de Patrimônio Histórico da Fundação de Cultura Elias Mansour e alguns parceiros na catalogação das  referências culturais do munícipio, visando auxiliar a valorização e fortalecimento das memórias e identidades de seus moradores.

Opções de download:

 

Instalando GP-Web com nginx + Php-fpm no Centos6 64bits

O sistema GP-Web, é a uma das principais ferramentas no mercado nacional no gerenciamento de projetos, gestão estratégica, tramitação interna de mensagens e documentos eletrônicos protocolados e se propõe a ser uma solução completa e integrada para qualquer organização pública ou privada. Funciona via Web, tendo sido criado na linguagem PHP com banco de dados MySQL. E detalhe, é totalmente gratuito.

O mesmo está instalado em parcela significativa do Governo, tanto no Executivo quanto no Judiciário e com perspectiva de até o final de 2013 ser a solução corporativa standard de gerenciamento de projetos integrado com gestão estratégica de todos os Ministérios do Poder Executivo Federal e do Judiciário Brasileiro.

Conheça mais sobre o projeto:
– http://www.sistemagpweb.com/
Folder publicitário do Sistema

Neste tutorial, vamos aprender a como instalar o sistema utilizando o NGinx, uma alternativa ao Apache, que consome poucos recursos e é extremamente rápido.

==================================
Linux CentOS 6x – 64bits
==================================

Instalar os Repositórios do Remi e Epel

1) EPEL
[shell]
# yum install yum-priorities
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm
[/shell]

2)REMI
[shell]
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
[/shell]

Instalar o webserver nginx

[shell]
# yum install nginx
# chkconfig –level 345 nginx on # deixar o nginx iniciar por padrão
# /etc/init.d/nginx restart
[/shell]

Outros módulos do Php necessários para o Gp-Web
[shell]# yum –enablerepo=remi install php php-mysql php-ldap php-gd[/shell]

Instalar o Mysql-server
[shell]
# yum remove mysql* # removendo arquivos versão presente caso haja
# yum –enablerepo=remi install mysql-server
# mysqladmin -u root password ‘senha’ # setando a senha
[/shell]

Baixar e Descompactar o pacote do GP-Web

Baixe o pacote aqui http://www.softwarepublico.gov.br/dotlrn/clubs/gpweb/file-storage/view/gpweb_v8_0_16.zip
[shell]
# cd /var/www/html
# cp ~/Downloads/gpweb_v8_0_10.zip . # copie o gpweb para lá */html
# unzip gpweb_v8_0_10.zip # descompactar
# chmod -R 777 gpweb # Setando Permissões no diretório gpweb
# chown -R nginx.nginx gpweb/
[/shell]

Configurar o Virtual Host do GP-Web
[shell]
# cd /etc/nginx/conf.d
# vim gp-web.conf

server {
server_name gp-web;
root /var/www/html/gpweb;
access_log /var/log/nginx/gp-web-access.log;
error_log /var/log/nginx/gp-web-error.log;
location / {
root /var/www/html/gpweb;
index index.php index.html index.htm;
}

location ~ \.php$ {
root html;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/gpweb$fastcgi_script_name;
}
}
[/shell]

Instalação do GP-Web via web

Agora, com todos os serviços rodando (php-fpm; nginx e mysql-server) basta acessar o GP-Web via web, digitando no navegador:

http://127.0.0.1
ou http://localhost
ou até mesmo http://gp-web – que é nosso virtual host.

1 – Tela
Mensagem: Ainda não foi criado o arquivo de configuração. Clique aqui para iniciar a instalação e criar um
(redirecionamento em 5 seg.)

2 – Tela
Confira se todos os pré-requisitos estão ativados e instalados –

“A única Observação que pode ocorrer é uma mensagem no final da página inicial do gpweb dizendo que você está utilizando: um servidor web diferente do apache, onde o mesmo é o unico 100% compatível com o GP-Web.

Porém, pode prosseguir com a instalação que não terá problemas.

Se tudo estiver ok, clique em iniciar instalação

3 – Tela
Instalador do GP-Web
Configurações do Banco de Dados

1-Insira a senha do SGBD ‘senha’
2-Desmarque a opção > ‘Carregar dados de exemplo?’
3-Clique em > ‘Instalar Completo’

4 – Tela
Login e Senha
admin 123456

Ao finalizar, caso apareça esse erro “504 Gateway Time-out“, basta apenas atualizar a pagina para http://gp-web

==================================
Soluções de possíveis problemas
==================================
1. ‘Erros com a criação da base de dados ou tabelas corrompidas;
Solução:
mysql_upgrade h localhost -u root -p senha

2. ‘Erros na Tela 2 – Suporte GD (para o gráfico GANTT)’
Solução:
yum –enablerepo=remi install php-gd

3. ‘Erros na Tela 2 – Caminho para salvar a Sessão permite escrita? OK (/var/lib/php/session)’
Solução:
yum –enablerepo=remi install php

4. ‘Erros na Tela 2 – MySQL e LDAP’
Solução:
yum –enablerepo=remi install php-mysql php-ldap

5. “Erros ao abrir http://localhost – Forbidden 403 – sem permissão
Solução:
Edite o arquivo /etc/httpd/conf.d/httpd.conf
Localize o:
DirectoryIndex – inclua index.php, remova o index.html

6. “Erros de codificação” ao acessar http://localhost as letras ficam todas irregulares.
Solução:
Edite o arquivo /etc/httpd/conf/httpd.conf
Localize o:
AddDefaultCharset – e modifique para ISO-8859-1

7. “Erros na tela de instalação completa” Erros com a criação do banco.
Solução:
Troque o 127.0.0.1 por localhost
======================================================================
Contribuição de
Rafael Cristaldo
PTI – Prognus Software Livre
http://br.linkedin.com/pub/rafael-cristaldo/21/918/938

Script de Backup (dump) Postgresql – Com bancos a escolher

Depois que publiquei o artigo Script de Backup (dump) Postgresql – Múltiplos bancos em arquivos separados, onde por meio de um script shell, é gerados dumps de todos os bancos existentes no servidor, cada banco um arquivo separado e compactado, me perguntaram se era possível, com a mesma idéia fazer um script que ao invés de realizar o dump de todas as bases, fosse possível definir quais bancos seriam backupiados.

Pois bem, é bem simples de fazer isso, vejamos:

[shell]
#!/bin/bash
#
# Um simples script de backup
# Autor: Jonas Ferreira

# db_array – lista dos bancos que se deseja fazer o dump
db_array=”banco1 banco2 banco3 banco4″

# logfile – arquivo que grava o log de cada execucao do script
logfile=”/tmp/pgsql-backup.log”

#Diretorio de destino do arquivos
DIR=/tmp/backup

for db in $db_array
do
/usr/bin/pg_dump $db > “$DIR/$db.sql” 1>> $logfile 2>> $logfile
tar zcvf “$DIR/$db.tgz” “$DIR/$db.sql”
rm -rf “$DIR/$db.sql”
done
[/shell]

Simples assim!

Resolvendo problemas da placa eth0 ao clonar máquinas virtuais CentOS no VMware ESX

Após a clonagem de uma máquina virtual pelo VMWare a placa de rede do eth0 do Linux CentOS é renomeada como eth1, e não pega IP. isto é devido ao duplicamento de endereço MAC. Para corrigir este problema deve se efetuar a seguinte os seguintes comandos:

[shell]
# cd /etc/udev/rules.d
# cp 70-persistent-net.rules /root/
# rm 70-persistent-net.rules
# reboot
[/shell]

Este arquivo é gerado automaticamente pelo /lib/udev/write_net_rules program, e pode ser removido sem problemas. Para verificar se o problema foi corrigido, execute:

[shell]# /sbin/ifconfig | grep “^eth”[/shell]

Terá como resposta, algo assim:

[shell]eth1 Link encap:Ethernet HWaddr 00:0C:29:F3:E4:1E[/shell]

Você precisa trocar o endereço MAC da placa atual em /etc/sysconfig/networking-scripts/ifcfg-eth0, colocando o MAC exibido na acima, na linha HWADDR:

[shell]
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
[/shell]

Salve tudo e reinicie os serviços de rede

[shell]
# service network restart
# reboot
[/shell]

Para verificar se realmente funcionou, execute os seguintes comandos:

[shell]
# /sbin/ifconfig -a
# route -n
[/shell]

Verá que agora a referência é a eth0.

Referências:

Script de Backup (dump) Postgresql – Múltiplos bancos em arquivos separados

Seguindo a idéia do artigo anterior, onde foi construido um script para backup Mysql com dump para cada banco, facilitando assim uma futura restauração, iremos agora construir um script para backup do PostgreSQL.

O script é bem simples, veja:

[shell]
#!/bin/sh
#Diretorio de destino do arquivos
DIR=/tmp/backup

#Listagem de todos os bancos de dados de seu SGBD
[ !$DIR ] && mkdir -p $DIR || :
LIST=$(su – postgres -c “psql -lt” |awk ‘{ print $1}’ |grep -vE ‘^-|:|^List|^Name|template[0|1]’)

#Laço com Dump, para cada banco listado acima, é gerado um dump, com a saída já compactada em .gz
for d in $LIST
do
su – postgres -c “/usr/bin/pg_dump –inserts $d | gzip -c > $DIR/$d.sql.gz”
done
[/shell]

Certo, com isso podemos melhorar a idéia, e produzir um script que além de gerar os dumps compactados, já faça a transferência dos mesmos para nosso storage (LDAP).

Disponibilizo para download um script com isso em prática.

Script de Backup – PGSQL – Com depósito no Storage – AD – LDAP

Observação:

O script irá tentar montar a pasta do servidor Windows, caso ocorra o erro:

error: mount: //192.168.20.10/mnt/ntserver/ is not a valid block device

É só instalar o smbfs (Debian e derivados)
# apt-get install smbfs

Script de Backup (dump) Mysql – Múltiplos bancos em arquivos separados

Com certeza você já deve conhecer diversas maneiras de realizar backup de sua base Mysql. Mas o objetivo deste howto é apenas uma variação de um script clássico de backup.

Vamos ao problema:

A maioria das pessoas utilizam este comando para backup:

mysqldump -u root -pPASSWORD –all-databases | gzip > /mnt/database`data ‘ %m-%d-%Y’`.sql.gz

Isso vai gerar um backup de todos os bancos de dados de seu SGBD e compactar com o nome de data 03/22/2012.sql.gz. O problema esta ai, pois ele irá gerar todas as querys em um único arquivo, ou seja, se você quiser restaurar um único banco de dados, terá que procurar o trecho no dump que corresponde ao banco desejado.

A solução apresentada abaixo é uma alternativa, onde a partir de um laço, lê todos os elementos do SGBD, e gera um dump já compactado de cada banco, separadamente.

[shell]
#!/bin/bash
# backup mysql com –all-databases, mas separados cada banco em um único arquivo

DIR=”/var/arquivos_backup/mysql”
USER=”root”
PASSWORD=”senha”
OUTPUTDIR=”/var/lib/databases”
MYSQLDUMP=”/usr/bin/mysqldump”
MYSQL=”/usr/bin/mysql”

# elimando arquivos de backup antigos
rm -rf $DIR/*

# lendo a lista de banco de dados
databases=`$MYSQL –user=$USER –password=$PASSWORD \
-e “SHOW DATABASES;” | tr -d “| ” | grep -Ev ‘(Database|information_schema)’`

# realizando o dump e compactando cada arquivo gerado
for db in $databases; do
echo $db
$MYSQLDUMP –force –opt –user=$USER –password=$PASSWORD \
–databases $db | gzip > “$OUTPUTDIR/$db.gz”
done
[/shell]

Com essa idéia, pode-se editar um pouco mais este script, como por exemplo compactar a pasta com todos os arquivos gerados, e já transferir para seu storage com Active Directory, por exemplo.

Aqui disponibilizo para download um script exatamente com essa idéia em prática.

Script de Backup – Mysql – Com depósito no Storage – AD

Depois é só colocar no CronTab.

Referência: snowfrog.net

Remover árvore de diretórios em uma compactação TAR

Se você trabalha com servidores Linux, provavelmente trabalha com processos de backups personalizados para todos os seus dados importantes. Sem dúvida as cópias de segurança acabam sendo armazenadas na forma de um arquivo.tar. Tudo funciona muito bem, as cópias são feitas, comprimidas e enviadas para um storage externo. Há apenas uma questão, sempre que você abrir um desses backups, ele irá incluir toda a árvore de diretórios acima da pasta onde os arquivos foram gerados.

Esse “problema” sempre me deixou chateado quando da criação de dumps de banco de dados. Por exemplo,vamos considerar que meu script de backup gere os arquivos de dumps e salve no diretório: /var/lib/mysql/meu_banco. Eu gostaria de fazer um backup TAR do diretório meu_banco, e chama-lo de meu_banco.tar.gz.

Acontece que quando vou descompactar o arquivo meu_banco.tar.gz, eu vou ter um monte de subpastas inúteis, eu vou ter que fazer drill-down, através da raíz onde eu descompactar, até /var/lib/mysql/meu_banco. Tudo que eu realmente quero é o diretório meu_banco, os demais (/var/lib/mysql) não me interessa.

Veja como é simples se livras desses diretórios. Antes de executar o comando TAR, primeiro você deve usar o comando CD para se mover até o diretório pai que contém o diretório que você deseja, não dentro da pasta que você irá compactar, no exemplo acima, você deve estar dentro de /var/lib/mysql e não dentro de /var/lib/mysql/meu_banco.

Eis a seqüência de comando para exemplo anterior:

[shell]cd /var/lib/mysql
tar -czf /pasta/onde/voce/ira/armazenar/meu_banco.tar.gz meu_banco[/shell]

Com isso, ao descompactar o meu_banco.tar.gz terá apenas um único subdiretório, chamado meu_banco.

Agora, provavelmente você vai executar esses comandos em um script maior de backup, neste caso o comando CD direto não irá funcionar, ainda mais se o script estiver no /etc/init.d/script_bkp.

Felizmente, há uma solução fácil: você pode acrescentar vários comandos shell em conjunto, utilizando && . Com && , cada comando será executado e concluído antes do próximo começar, simulando a digitação de comandos em uma linha.

[shell]cd /var/lib/mysql && tar -czf /pasta/onde/voce/ira/armazenar/meu_banco.tar.gz meu_banco[/shell]

Pronto. 🙂

Unix ToolBox – Tutoriais estilo “receita de bolo” para o cotidiano do profissional de TI que trabalha com Linux

Unix Toolbox é uma coletânea de comandos e tarefas úteis no dia-a-dia do profissional de TI que trabalha com Linux. Um guia prático, com explicações detalhadas, porém é claro que você tem que saber o que esta fazendo.

Os tutoriais estão divididos nas seguintes categorias:

  • Sistema – Processos – Sistema de Arquivos – Rede – SSH SCP – VPN com SSH – RSYNC – SUDO – Criptografar arquivos – Criptografar partições – Certificados SSL – CVS – SVN – Comandos úteis – Instalar software – Converter de mídia – Impressão – Bancos de dados – Quota em disco – Conchas – Scripting – Programação – Ajuda on-line

O mais legal é que você pode ter acesso ao conteúdo de diversas formas, veja:

Aqui você tem a muitos outros howtos:
http://www.tekleisure.com/2012/01/25-most-useful-linux-unix-solaris.html

Adicionando um novo usuário no MySQL

Sei que este é um assunto muito simples, ainda mais se você já tiver o PhpMyAdmin instalado, mas como nem sempre podemos instalar essa ferramenta, o legal é lembrar como adicionar os usuários direto no terminal. Na verdade sempre preciso disso e nunca lembro a sintaxe.

Este procedimento funciona com MySQL 4.x e 5.x

1. Considerando que você já tenha o Mysql instalado e rodando 100%.

[php]mysql –user=root mysql[/php]

Se sua conta root solicitar senha, você pode acrescentar o parâmetro -p ou –password

[php]
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 81
Server version: 5.1.61 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>
[/php]

2. Criando usuário com acesso full
Depois de conectar, é só executar os comandos para criar o usuário e senha, bem como a definição de privilégios.

[php]
mysql> CREATE USER ‘bkpiador’@’localhost’ IDENTIFIED BY ‘a3$b2#c1!’;
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘bkpiador’@’localhost’ WITH GRANT OPTION;
[/php]

Vejamos o que estamos fazendo:

Na linha 1 é criado o usuário (com acesso permitido somente de localhost) e a senha de acesso.
Na linha 2 define-se as políticas de acesso do usuário, nesse exemplo, o usuário tem permissão para acessar tudo e somente apartir de localhost.

[php]
mysql> CREATE USER ‘bkpiador’@’%’ IDENTIFIED BY ‘a3$b2#c1!’;
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘bkpiador’@’%’ WITH GRANT OPTION;
[/php]

Novamente, na linha 1 é criado o usuário, (agora para acesso de qualquer host) e a senha.
E na linha 2 o usuário tem permissão para acessar tudo apartir de qualquer host.

Como NÃO liderar profissionais de TI.

 

Liderar equipes não é uma tarefa fácil e infelizmente, algumas empresas, ou gestores, ainda não se deram conta que as pessoas possuem caracteristicas e interesses diferentes, e que por isso, precisam ser lideradas e motivadas também de formas diferentes. A situação é um pouco pior quando os liderados são da área de tecnologia.

Paul Glen, em seu livro Leading Geeks: How to Manage and Lead the People Who Deliver Technology

afirma que os profissionais de TI são “muito inteligentes, geralmente introvertidos, extremamente valiosos, pensam de modo independente, são dificeis de encontrar, dificeis de manter e são essenciais para o futuro da empresa”. Lendo isto da para se ter uma noção da importância de manter estes profissionais motivados (ou não desmotivá-los).

Alexander Kjerulf,  escreveu um texto a uns anos atrás sobre como realizar uma má gestão do pessoal de TI. Vejamos:

Quando os analistas da NCR Australia – Computer Equipment Supplies , entraram de greve, foi uma movimentação que poderia paralisar ATMs, caixas de supermercado e máquinas de check-in nos aeroportos. Este fato mostra que TI se tornou tão central em praticamente todas as corporações, que qualquer paralisação poderá custar muito tempo e dinheiro, o que significa também que manter os geeks (profissionais de TI) felizes no trabalho é obrigatório nas empresas modernas. Geeks felizes são geeks eficientes.

A principal razão da infelicidade do pessoal de TI no trabalho é a má relação com a gerência, às vezes porque geeks e gerentes têm personalidades, origens profissionais e ambições muito diferentes.

Algumas pessoas chegam à conclusão que geeks odeiam gerentes e são impossíveis de liderar. A expressão “administrar geeks é como pastorear gatos” (N.T: do inglês “managing geeks is like herding cats”) é usada às vezes, mas está errada. O fato é que o pessoal de TI detesta gerenciamento ruim e tem menos tolerância com relação a isso que outros empregados.

Confira os 10 maiores erros dos gerentes de equipes de TI:

1- Ignorar o treinamento

Uma vez tive um chefe que disse que “treinamento é jogar dinheiro fora, estude por si mesmo”. Esta empresa quebrou 2 anos depois. Treinamento é importante, especialmente em TI, e gerentes devem reconhecer e alocar os fundos para isto. Às vezes vem o argumento de que “se eu treiná-los um competidor irá contratá-los”. Talvez seja verdade, mas por outro lado, a outra alternativa é possuir apenas empregados despreparados, incapazes de trabalhar em qualquer outro lugar.

2- Não dar o reconhecimento

Já que gerentes não entendem bem o trabalho feito pelos geeks, é difícil para eles reconhecer e recompensar um trabalho bem feito, o que compromete a motivação. A solução é trabalhar juntos para definir objetivos que ambos os lados concordem. Quando esses objetivos forem alcançados, os geeks estão fazendo um excelente trabalho.

3- Planejar muita hora extra

“Vamos puxar o máximo de trabalho de nossos geeks, afinal eles não têm vida”, parece ser a abordagem de alguns gerentes. É um grande erro e geeks que trabalham demais ficam improdutivos ou simplesmente vão embora. Em um caso famoso, um jovem trabalhador em TI teve um ataque causado por stress, foi hospitalizado, retornou ao trabalho logo depois e logo teve outro ataque. Este post examina mais a fundo o mito de que longas horas de trabalho é bom para os negócios.

4- Usar “gerentês”

Geeks odeiam “gerentês” e vêem como superficial e desonesto. Gerentes não devem aprender a falar “nerdês”, mas devem deixar de lado os buzzwords de negócios. Um gerente pode dizer “Devemos agir de forma proativa com o objetivo de otimizar nosso time-to-market” ou simplesmente usar português e ficar com “Precisamos estar em dia com esse projeto”.

5- Tentar ser mais esperto que os geeks

Quando gerentes não sabem nada sobre uma questão técnica, eles simplesmente devem admitir isso. Os geeks irão respeitá-los por isso, mas não por enrolar. E eles vão descobrir – geeks são espertos.

6- Agir de forma inconsistente

Geeks têm um profundo senso de justiça, provavelmente isto está relacionado com o fato que, em TI, estrutura e consistência são elementos críticos. A documentação não pode dizer uma coisa enquanto o código diz outra, e, da mesma maneira, gerentes não podem dizer uma coisa e fazer outra.

7- Ignorar os geeks

Uma vez que gerentes e geeks são tipos de pessoas diferentes, os gerentes podem acabar deixando os geeks sozinhos. Isto torna a liderança sobre eles um ato difícil, e geeks precisam de boas lideranças, como todos os outros grupos.

8- Tomar decisões sem consultá-los

Geeks normalmente dominam o lado técnico do negócio melhor que o gerente, então tomar uma decisão técnica sem consultá-los é o maior erro que um líder pode cometer.

9- Não lhes dar as ferramentas necessárias

Um computador rápido pode custar mais que um mais antigo e talvez não siga o padrão da empresa, mas geeks usam computadores de maneira diferente. Um computador lento diminui a produtividade e é uma chatice diária, tal como um software antigo. Dê-lhes as ferramentas que precisam.

10- Esquecer que geeks são trabalhadores criativos

Programação é um processo criativo, não industrial. Geeks devem constantemente trazer soluções para novos problemas e raramente resolver o mesmo problema duas vezes; entao é necessário liberdade e flexibilidade. Códigos rígidos de vestimenta e muitas normas matam toda a inovação. Eles precisam também de estarem em um ambiente criativo para evitar a “morte pelo cubículo”.

Cometer um ou mais desses 10 erros (e eu já vi gerentes cometendo os 10 erros) tem sérias conseqüências, incluindo:Baixa motivação

  • Alta rotatividade de empregados
  • Aumento de faltas (justificadas)
  • Baixa produtividade
  • Baixa qualidade do trabalho
  • Serviço prestado de forma indesejável

Geeks felizes são geeks produtivos, e o fator mais importante é boa administração, adaptada para a situação.

Apenas para esclarecer:

Não estou dizendo que todos os geeks são os mesmos. Geeks são extremamente diferentes entre si e este post comete uma perigosa generalização.

Não estou dizendo que todos os trabalhadores em TI são geeks. Uns são, outros não. Eu definitivamente fui um.

Tradução livre do artigo original: http://positivesharing.com/2006/03/how-not-to-lead-geeks/