Arquivo do Autor: andreba

Software Engineering is Dead

http://www.codinghorror.com/blog/archives/001288.html

Software development is and always will be somewhat experimental. The actual software construction isn’t necessarily experimental, but its conception is.

I can publicly acknowledge what I’ve slowly, gradually realized over the last 5 to 10 years of my career as a software developer: what we do is craftsmanship, not engineering.

control is ultimately illusory on software development projects.

Jeremias the Bêbado Hero

Estava eu navegando na internerd numa boa, quando me deparo com um banner de propaganda de um jogo MMORPG via web (é, tem mais de mil desses). A propaganda dizia que “o sistema de magias é diferente de todos os outros”, “o mais estratégico já visto”, e coisas desse nível. Depois de BOCEJAR, resolvi dar uma olhadinha na lata da coisa. É um tal de Nodiatis. Abri a página, fui indo, e parece que o bichinho é em Java, em 2D mesmo, com gráficos à la jogos de adventure. Não parece ruim, na verdade, embora não tenha olhado muito.
Pra não ter que criar conta, personagem, e essas coisas, mas ainda assim saber qual é a do jogo, achei o wiki do jogo, e fui direto olhar a lista de classes (que melhor forma de sacar rapidamente qual é a de um RPG senão vendo a lista de classes). O bicho tem bem umas 20 classes, dá uma olhada na lista no link abaixo, e presta atenção na antepenúltima:
http://nodiatis.wikia.com/wiki/Classes
“Alcoholic”.
Pois é, meus queridos, agora ALCOOLATRA é classe de RPG. E o bônus de classe? “+33% (up to 99%) resistance to fear”. Claro, né, bêbado não tem medo de nada.
Tu visualiza um bêbado tentando acertar um inimigo com um arco e flecha? É capaz de furar o próprio olho. Vai é segurar a linha e largar o arco.
Vai dar dano crítico em todos os hits – nele mesmo, é claro.
E pode olhar na lista de Skills que não tem nenhuma skill do tipo Bebida Quente, Bebida Gelada, Fermentada ou Destilada; só as skills típicas de um RPG mesmo. O bêbado deve ter, imagino, uma certa dificuldade em aumentar a habilidade dele em machados e espadas. Podiam pelo menos ter colocado uns talentos tipo Drunken Brawl, Cocktail Mixer ou até um Bafo Incendiário (tipo um Yoga Flame) pra dar uma colher de chá (ou cachaça) pra classe.
Bêbado agora é classe de RPG. Massa.

Extraindo o último elemento de uma linha com o awk

awk, o mastigador de linhas de texto

awk, o mastigador de linhas de texto

Hoje surgiu a necessidade de manipular, via script (shell), um arquivo texto e pegar o último elemento de uma linha, que é um código. Como a linha de exemplo abaixo:

DISSE0074I Operation successfully submitted. Distribution ID is 1234567890.123456.

No caso eu preciso pegar o código numérico no fim da linha. Geralmente eu usaria apenas o comando cut, como: cut -d’ ‘ -f8, mas e se a mensagem variar de tamanho (quantidade de palavras)? Como saber o índice do último elemento?
Entra em ação o awk. Usando awk ‘{print $8}’ dá pra imprimir o elemento número 8; e há a variável NF que informa a quantidade de campos. Então dá pra extrair o último campo assim:

cat arquivo.txt | awk ‘{print $NF}’

Perfeito para o que eu queria.

Teste de Nerdeza

Computer Nerd Inside

Computer Nerd Inside

Hoje no Fantástico passou uma matéria sobre nerds, exemplificando os tipos mais básicos (como nerds de tecnologia, de quadrinhos, de filmes, e de animê e cosplay). Foi interessante; não muito profunda mas deu um bom panorama geral do tema. Fizeram até uma retrospectiva sobre o que era considerado ser nerd nos anos 80 e o que é hoje. E no fim deram uma chamada para quem quiser fazer o teste pra saber se você é nerd no site do G1.
Eu, claro, fui lá curioso pra ver o tal teste… mas tinha umas perguntas como por exemplo esta aqui:
Quando chamam para uma caminhada ou para bater aquela pelada no fim de semana:

  • Fico na dúvida, mas acabo cedendo.
  • Dou uma desculpa esfarrapada e fico na internet.
  • Vou sem hesitar. Não há nada melhor do que isso!

Hmmm… a que mais se adequa ao meu caso é a segunda, mas… “desculpa esfarrapada”? Como assim? Eu dizia que não gostava de futebol mesmo e ficava o sábado inteiro no computador (isso já nos tempos do MSX). “Desculpa esfarrapada”? Pra quê?
E depois de olhar para as demais perguntas… honestamente? Parece teste escrito por quem não é nerd. E só conhece o estereótipo do que é ser nerd. O teste é bem palha.
Teste hardcore de nerd, mesmo, é esse aqui, já meio antigo: The Official MIT Nerd Test. O defeito dele é que é muito voltado para nerds de matemática, física e computação (justamente por ser antigo, da época em que o rótulo de nerd só pegava nesses tipos).
Até eu mesmo consegui pensar em algumas perguntas, mais interessantes que as do teste do Fantástico, e que identificam melhor o indivíduo. Taí algumas perguntas, englobando os assuntos principais mostrados na reportagem (pelo menos os que eu conheço melhor). Não é pra ser um teste completo nem nada, são só algumas sugestões. Se tu errar a maioria dessas perguntas aí (e não vale procurar na internet, tem que ser de cabeça), tu não é nerd… pelo menos não um nerd de computação, filmes ou quadrinhos considerados nerd em geral.

  • Qual o nome da nave do Han Solo?
  • Nome da raça do Chewbacca?
  • Qual o nome do tipo de energia que os Transformers usam?
  • Sabe dizer quem são todos estes personagens: Scotty, Sulu, Uhura?
  • Nome da cidade de onde veio Boromir? (dica: Gondor é o nome do reino e não da cidade)
  • Quantos setores do espaço são patrulhados pelos Lanternas Verdes?
  • Como Vandal Savage ficou imortal?
  • Nome do país do Doutor Destino?
  • Quem é Mxyzptlk?
  • Sabe qual é o filme com Kiefer Sutherland e Jennifer Connely que, dizem, serviu de inspiração para a obra-prima dos Irmãos Wachowski? Já o viu?
  • Qual a principal diferença entre o Kingpin do filme do Demolidor e o dos quadrinhos? (não, não estou falando do filme com Sylvester Stallone)
  • Nome do modelo de exterminador do Arnold Schwarznegger, nos filmes d’O Exterminador do Futuro?
  • Frase dita para para o robô Gort no filme O Dia Em Que A Terra Parou?
  • Qual o filme que faz paródia com essa frase e como ela foi alterada?
  • Em que outro filme de nerd essa frase aparece ao fundo, impressa numa faixa em um cubículo de escritório?
  • Já usou um modchip?
  • Usa regularmente algum emulador de um console ou computador antigo?
  • Sabe programar em alguma destas linguagens: C, Lisp, Assembly?
  • Sabe o que é uma distribuição Linux, e como isso é diferente do “Linux” em si?
  • Sabe diferenciar o conceito de memória virtual do arquivo de paginação (swap file)?
  • Nome da nave usada pela equipe do Morpheus no filme Matrix?
  • Sabe de que personagem histórico esse nome foi tirado?
  • Nome do modelo de robô que foi testado antes do Robocop, e que falhou nos testes?
  • Filme em que o Matthew Broderick interpreta um hacker?
  • Quem tinha “12345” como a combinação da fechadura da mala? (dica: é de um filme)
  • Nome do demônio com quem o Spawn fez um pacto?
  • De que obra literária esse nome foi inspirado?
  • Sabe o que é Nethack?
  • Já consegiu vencer Nethack alguma vez?
  • Reconhece o nome Reed Richards?
  • Barry Allen?
  • Lucas Bishop?
  • Helena Bertinelli?
  • Lo Pan? E “Pork Chop Express”?

…só pra citar alguns.
Ah, aqui vai o “disclaimer”: não estou querendo estabelecer que ser nerd é isto ou aquilo, ou dizer que sou mais que ninguém… isso que escrevi aí em cima é só pra diversão.
Update: mais testes de nerd aqui: http://www.nerdtests.com

Carcaju, o Ex-Homem

Snikt.

Snikt.

Uns anos atrás um colega meu assistiu uma cópia pirata semi-legítima do filme X-Men e teve que aguentar uma daquelas legendas porcamente traduzidas. A certa altura do filme, o Ciclope vem e declara ao Wolverine: “I’m an X-man”. Na legenda tava lá: “eu sou um ex-homem”.
Tu, Ciclope, um ex-homem? Eu não desconfiava…
Eu não sei se esses erros são culpa de traduções feitas automaticamente por programas ou o quê, mas eu lembrei dessa história aí por causa de uma coisa parecida que aconteceu esses dias. Estava eu assistindo a cópia pirata alternativa do filme do Wolverine, e o tempo todo, na legenda, o Gambit era chamado de “Gâmbia”. Que raios é gâmbia??
De acordo com a Wikipédia, Gâmbia é um país africano. Nada a ver com o Gambit… vai ver o tal programa tradutor automático se confundiu e achou que a palavra do dicionário em português mais parecida era essa.
O que eu sei é que ficou irritante ter que ler na legenda, o tempo todo, “Gâmbia” isso, “Gâmbia” aquilo. Se é pra ficar traduzindo nome de personagem, porque não traduzem logo o do Wolverine também? Porque wolverine nada mais é que o nome de um animal selvagem, pequeno e musculoso. Notem no artigo da Wikipédia em inglês aí os nomes alternativos do mesmo animal. Porque em português, esse animal é chamado de… carcaju (ou glutão).
Agora imagina só você ir ao cinema ver o filme do Wolverine, e que ao invés do título original “X-Men Origins: Wolverine” estivesse lá no letreiro:

EX-HOMEM ORIGENS: CARCAJU

Análise de Tráfico

Entrei hoje na página do Projeto Tor (http://www.torproject.org/) e dei de cara com este texto:
Análise de "tráfico" de rede...
O Projeto Tor serve para redirecionar os pacotes TCP enviados pelo seu computador, de forma que eles passem por dentro de uma rede espalhada pelo mundo todo antes de atingir seu destino. Um dos vários objetivos disso é proteger você contra a análise de tráfego na rede. Não tem nada a ver com traficantes agindo na internet… :p 😉

Como trocar o Windows pelo Ubuntu

Geralmente eu não gosto de ficar criando posts no meu blog só pra colocar links para matérias em outros sites, mas esta não dava pra deixar de lado. O fato do portal G1 publicar alguma coisa favorável ao Linux já é, em si só, uma notícia, que dirá uma matéria explicando ao público que o Linux não é um bicho de sete cabeças.
Especial Linux: saiba como trocar o Windows pelo Ubuntu em seu PC
Nem li a matéria ainda, mas parece ser o suficiente para um iniciante dar seus primeiros passos com o Ubuntu. Lembrando que é possível rodar o Ubuntu direto do CD, sem instalá-lo no seu computador, ou seja, se você quer apenas ver este tal de Linux para conhecê-lo, não precisa apagar nada da sua máquina. Com o mesmo CD é possível tanto testar o Ubuntu sem instalar, quanto instalá-lo, se assim quiser.

Linux is not Windows.

Linux is not Windows.

It's all DNS's fault

English version below.
Retirado de http://www.debian-administration.org/users/lykwydchykyn/weblog/18:

I remember reading somewhere recently (and my experiences in the past pay testament to it):
If you see a baffling problem, it’s surprising how often its down to DNS or host name resolving.

Tradução livre do texto acima:

Eu me lembro de ter lido em algum lugar recentemente (e minhas experiências passadas confirmam isso): se você encontrar um problema que você não faça idéia de qual seja a causa, é surpreendente o quão comum que a causa seja DNS ou resolução de nomes.

Basicamente, o camarada atualizou o Debian e então um programa passou a ficar incrivelmente lento ao conectar com o MySQL. No final o problema era com o DNS.
Eu me lembro alguns anos atrás, quando minha máquina com Debian de uma hora para outra começou a levar vários minutos pra dar boot, quando antes ela iniciava em cerca de um minuto apenas. No fim o problema era o exim (configurado como servidor local), que tentava resolver o nome da máquina durante sua inicialização, e por causa de algum motivo estranho de que não me lembro agora, o arquivo /etc/hosts perdeu a entrada da própria máquina.
Então eis a lição… ao encontrar problemas estranhos sobre lentidão súbita e inexplicável, confira se a resolução de nomes está funcionando (DNS, arquivo hosts, WINS ou o que quer que seja)
(e eu acabei de me lembrar que esse tipo de problema já me deu muita dor de cabeça com o Tivoli Framework em várias ocasiões…)


Taken from http://www.debian-administration.org/users/lykwydchykyn/weblog/18:

I remember reading somewhere recently (and my experiences in the past pay testament to it):
If you see a baffling problem, it’s surprising how often its down to DNS or host name resolving.

Basically, this guy updated Debian and then some app started behaving very slow when connecting with MySQL. Turns out it was a name resolution problem (DNS).
I remember some years back ago, when my Debian machine suddenly started taking several minutes or so to boot up, when previously it just booted in a minute or so. Turned out the problem was with exim (configured as local server only), which tried to resolve the machine name during start up, and because of some weird reason that I can’t remember now, the /etc/hosts file lost the entry for the own machine.
So here’s the lesson… if facing weird problems concerning suddenly, unexplainable slowness, check if the name resolution is working (DNS, hosts file, WINS, or whatever)
(and I just remembered that these issues give me a lot of headache with Tivoli Framework in several occasions…)