English readers and other languages: Many posts are in portuguese, you can use the Translate button at left side.

Clique nas imagens dos artigos! Elas levam você para o site do artista que a criou e muitas
vezes tem assuntos relacionados ou outras imagens para expandir seus horizontes!

sexta-feira, 11 de setembro de 2009

Programador também faz POG

The Duck Tape Programmer
Foto: Graeme - New Zealand


A POG, Programação Orientada a Gambiarra, possui diversas formas de implementação.

A escolha da abordagem mais adequada, é geralmente na base do que funcionar primeiro. Por incrível que pareça, na programação POG, o que vale nem sempre é o menor esforço, pois o que está em jogo é o resultado e não a capacidade do programador entender o que está fazendo. Isto inclui também, os misteriosos problemas no kernel ou nas ferramentas de desenvolvimento e softwares de terceiros, para os quais, nem sempre o fabricante fornece suporte adequado.

Vejamos alguns dos tipos de POG mais encontrados:

FORCEPS

De fácil compreensão, esse recurso é largamente utilizado, caso um valor não seja atribuído a sua variável durante a execução de um programa por algum problema desconhecido pelo programador POG. Assim em vez de perder horas e horas debugando um programa, através do altíssimo nível de programação orientada a gambiarra, o programador POG atribuiu um valor na base da porrada e o programa roda livre e sem bugs. É claro que de tempos em tempos esse pequeno ajuste deve ser mantido.

Programação Orientada a Estagiário

Consiste na capacidade do analista de sistemas sobrecarregar o estagiário ou o técnico mais próximo com todas as suas funções, desde interação com clientes até desenvolvimento de casos de uso e bancos de dados, aproveitando ao máximo toda a energia gambiarrizadora que essas categorias possuem. Sabendo que fica mais fácil para o programador entender e realizar a POGização do sistema se ele conversar diretamente com o usuário, o analista sabiamente permite que o programador realize os contatos com o cliente, permitindo assim que o analista realize funções que condizem mais ao seu cargo, como acessar a desciclopédia, ficar o dia inteiro na cantina ou ir puxar o saco do chefe, por exemplo. Além do mais, o contato do programador com o usuário economiza papel e tinta de impressora, pois a parte da documentação impressa é nula, já que o analista não participa do processo e assim não gera as toneladas de folhas com diagramas e especificações. O acoplamento do sistema é muito maior, pois foi desenvolvido por uma única pessoa, facilitando na manutenção, pois existem poucas classes para serem modificadas (no máximo cinco, para programas muito complexos).

Apellation Number Technic

É um método muito utilizado por MVP's (MOST VALUABLE POGrammer), que resolve 90% dos BUGs sem que precise queimar nenhum neurônio. POGramadores experientes sabem que: Deu um BUG no sistema? Digita -1 em algum lugar que funciona!!! Ainda não se sabe o motivo, e nem precisa saber. apenas funciona e pronto.

Static Spree

Um dos patterns mais utilizados da POG. O objetivo desse padrão é que tudo fique visível em qualquer canto, porque private é coisa de gente sem vergonha. Também conhecido por Public Static Spree, pois comumente tudo é feito "public static".

Imagem: Dom Herms
Public Global Access

Pattern que simplifica o desenvolvimento eliminando todos aqueles métodos de acesso inúteis, tornando todos os atributos acessíveis globalmente, diminuindo a quantidade de lixo no código. Apesar da semelhança com o Static Spree, os atributos não precisam ser static.

RCP Pattern

Significa Reuse by Copy-and-Paste (Reúso por Copiar e Colar). O RCP dita que, na pressa, quando não dá pra fazer a coisa por herança, basta copiar e colar, quantas vezes for necessário. Em geral se espera que futuras alterações sejam feitas por outros trouxas, digo programadores, perdão. Os trechos de código são copiados de todo e qualquer lugar possível, geralmente de outro programador (muitas vezes o estagiário) ou código da internet, para criar partes funcionais do programa. Utiliza-se a do "Ctrl+C" e "Ctrl+V" para juntar as partes e adaptá-las para funcionar, por tentativa e erro. Leva um considerável tempo para se adaptar o programa, e um número absurdo de compilações, mas pelo menos pode-se dizer que foi você quem fez o código. Este pattern também é conhecido como "Contra o C e Contra o V".

BCDR Pattern

Black Cat in a Dark Room (Gato Preto em um Quarto Escuro). Consiste em criar métodos que recebem apenas um parâmetro (um Map em Java ou um params em .NET). O argumento que você precisa está lá dentro, mas você não sabe exatamente onde. Esse padrão permite passar quantos argumentos forem necessários a um método, sem poluir o código. Permite criar métodos cujas assinaturas seriam, de outra forma, extremamente longas . Evita a alteração de assinaturas de métodos no momento da manutenção do código, fazendo desnecessário qualquer tipo de refactoring.

Há registro de programadores de Black Cat in a Dark Room. Um exemplo complementar é o parâmetro String[]:

Um exemplo prático é o sistema de gerência de Mensagens do Windows.

User Friendly Exception

Consiste na padronização de todas as mensagens de erro do sistema para uma única mensagem amigável ao usuário. Um sistema 100% compatível com esse padrão, nunca trava nem encerra de forma inesperada, mas apenas não atende ao usuário exibindo uma mensagem do tipo "Caro usuário, tente novamente observando as regras de uso do sistema". Observação: Trata-se da evolução de um padrão amplamente utilizado em sistemas Microsoft com mensagens "Catastrophic Failure" e "Unexpected Error".

Exemplo de implementação em Java:
public static void main(String[] args){
while (true) {
  try {
  ...
       } catch (Throwable ex) { // qualquer erro do sistema cai aqui
      // só pode ser culpa da besta ignorante do usuário
      System.out.println("Caro usuário, tente novamente observando as regras de uso do sistema");
      // após a mensagem, o while(true) garante a robustez do sistema que nunca aborta!
      }
   }
}


Chaotic Experimentation

Padronização de construção de funções para continuar a executar o programa mesmo que dê pau em alguma rotina. Exemplo clássico: On Error Resume Next (Visual Basic).

Controller Confusion

Tática que permite uma menor escrita de classes no sistema. Consiste simplesmente em eliminar o M do padrão MVC, ficando um padrão muito mais legal - o VCC ("View/Controller Confusion", ou "Vai catar coquinho"). Alguns tem sugerido inclusive a eliminação do V - ou seja, ficando apenas o CC (Codigo coco para os usuarios mais intimos) - a lógica, o modelo, os templates, o HTML, tudo e mais um pouco dentro do controller confusion. Como você pode ver, o padrão cêcê faz jus ao nome.

N.M.L. Combat Action POG Pattern

É um Design Pattern POG ousado, moderno, revolucionário e NÃO-EMO. Os arquitetos emos e POGuistas ADORAM, junto com seus miguxus, incrementar suas frameworks utilizando MUITAS camadas, geralmente desnecessárias. A N.M.L. (No More Layers) aborda uma estrutura onde todas as regras de negócio, validação (client e server side) e acesso à dados estão na tela! Para que Facades, Commands, Bussines Delegate e outras viadagens EMO detonando a performance da aplicação? Manutenção? Não é necessário, pois quem domina e faz uso dessa técnica modesta e humilde produz códigos Chuck Norris Style, ou seja: PERFEITOS. Esse paradigma está amplamente difundido por programadores VB e Delphi, e tem migrado com sucesso para a plataforma .NET, porque o que importa é a beleza da tela, e não a tecnologia que está por trás!

UFB -Uso de Força Bruta

Método muito famoso no meio dos programadores POG.

O método se aplica para solucionar problemas sem perder tempo voltando no código para procurar onde deu errado.
...


if (var==20)
   ChamaMetodoSolucao(var);
else

   {
   var=20;
   ChamaMetodoSolucao(var);
   }


Strombolic Bridge (ou, DRIBLE DA VACA)

O Paradigma Strombolic Bridge (Ponte Estrombólica) ou mais conhecido no Brasil pelo Pseudonome de "Drible da Vaca" é uma evolução do já consagrado BRUTE FORCE. Consiste em alimentar uma variável global que será utilizada dentro de algum método, mas certificando-se de que seu valor inicial será retornado ao original após o uso dela pelo método. Por exemplo:
varTemporaria = varOriginal;
varOriginal = "NovoValor";
Executa(varOriginal);
varOriginal = varTemporaria;


Reparem que, tal como o "Drible da Vaca":
- A varOriginal dá um 'totózinho' lateral do seu valor para a variável temporária,
- Recebe o novo valor que será utilizado pelo método,
- (corre) e recebe de volta seu valor la na frente...
Não tem erro.... assim você sempre terá certeza que o valor original será sempre o mesmo !!!

Space Kick Pattern

Consiste em ir chutando pro espaço, até acertar e a coisa dar certo!

Abstract Observer Pattern

Método para dar manutenção em código POG. Você observa um monte de gambiarra, mas abstrai e considera a coisa como funcional.

------------------------------------------------------------------------------------------------------

O texto acima está com algumas pequenas modificações e acréscimos feitos por mim. O original foi encontrado no  Blog Mundo .Net do Constantine

.'.

quinta-feira, 10 de setembro de 2009

Internet lenta? Mande pelo pombo correio!

Parece gozação, mas é sério. Uma empresa da África do Sul, Unlimited IT, fez uma demonstração pública bem estranha, por causa da baixa velocidade e má qualidade da conexão de internet.

Eles gravaram um cartão de 4Gb, prenderam na perna de um pombo correio e mandaram ele para outra cidade. Ao mesmo tempo iniciaram o upload dos mesmos dados para um servidor naquele mesmo destino.

Resultado: O pombo demorou pouco mais de uma hora para chegar. Já o upload, depois de 2 horas recém estava em 4%.

Qualquer semelhança com muitos dos nossos provedores locais de internet não é mera coincidência. O pessoal lá do nordeste poderia fazer esta esperiência com um jegue.

Fonte: Slashdot:Pomba é mais rápida que Net na África do Sul

terça-feira, 8 de setembro de 2009

O Linux vai completar 18 anos!

Dia 05 de Outubro é o aniversário do Linux
Como já estamos próximos, repasso a mensagem que postei no Linux Journal ano passado, para ver se o pessoal se agita mais cedo e fazemos uma festa da maioridade:
http://www.linuxjournal.com/content/linux-turns-17

(On October 6th, 2008:)
Happy "Seventeen" Linux!
May the Great CPU of The Universe full of Light,
RAM and blessings and the programmers your loyal friends.
Greetings to all who have been worked on Linux
and may the force of the power languages be with you.
Holy Python, Java, Ruby, C, and all dialects,
be with us
and next year, at 18, we'll do a great 24 hours party
around the world
connecting all nets.
Evoé!

Phantom Power - Humor


Steampunk Machine
Arte digital: Fabiana Dauksys Diamante - Brasil




Phantom Power

Sabem que a internet é uma coisa curiosa. Aliado ao incremento diário de todo tipo de coisas, também surgem questões das mais diversas e soluções de todo tipo, desde as mais úteis, até as mais ricamente complexas e profundamente existenciais.

No presente caso, tivemos uma pergunta de um colega nosso da lista de debates sobre sintetizadores, a Synth-br, formadas por tecladistas de todo país, que suscitou uma série de resultados, desde os mais técnicos, até os mais práticos possíveis.

Mas por detrás de toda questão, existe "o questionador" e o seu meio ambiente, um meio de vida, envolvimentos sociais e relações existenciais quase infinitas, dada a variedade do ser humano mas, que ao mesmo tempo, acaba tornando-se por vezes, quase previsível, pois todos todos vivemos no mesmo planeta e, todos rios correm para o mar.


Pois bem, nosso colega de apelido "Guariba", perguntou: "Phantom Power, o que é isso"?

Pois bem, partimos do ponto de vista técnico, de uma miríade de cabos e conexões, painéis com símbolos quase hieroglíficos e... "miríade" é uma palavra bonita né?

Alguém olha para aqueles aparelhos que são usados musicalmente, e que de algumas forma nos trazem um resultado artístico ao nosso mundo de percepções, gostos, lembranças e emoções. Então quanta coisa mais existe por trás do símbolo, do uso?

O que seria mesmo a "Phantom Power", aquele negócio que aparece escrito nas mesas de som, e que de alguma forma tem a ver com microfones, palco, cantores e cantoras, mas que todo mundo fica esperando aparecer voando por cima da multidão e....

Olha, a coisa vem vindo já faz algum tempo, então o negócio é contar com algum conhecimento prévio das últimas décadas para entrosamento mais adequado aos conceitos relevantes ao estabelecimento destes tipos de procedimentos.

Lateralus Divinity
Artista: Aaron M. Pyne - USA
Lá pelos anos 60, o mundo transitava em certas esferas zodiacais, que fizeram com que o pessoal do planeta andasse mais ligado em outros níveis, outros tipos de esferas, mais popularmente as bolinhas, o que mexeu com as bolas de todo mundo e o negócio foi que surgiram movimentos de todo tipo, por toda, parte tamanha foi a confusão com tanta bola rolando.

Uma delas, que posteriormente iremos re-encontrar neste conceito que por hora buscamos perceber mais profundamente, foi o "Black power", que foi um lance de um pessoal que era mais do que chegado num negão, e que logo mais, como tantas outras coisas, tornou-se moda em determinados círculos em que a bola foi picando e a pelota acabou atingindo vários destaques e renomados participantes do sistema hora instalado que ficou com esta bola quente na mão.

Com o tempo, tornou-se mais conhecido como sendo um tipo de penteado, recentemente revisto numa propaganda de carro minúsculo, que disfarça usando um cabelão arrepiado no estilo "black power" onde estão escondidos diversos elementos da vida pessoal do personagem, o que de outra forma não teria sido possível transportar no dito veículo, apesar da tentativa de alegar o contrário, de forma reversa, sempre jogando a bola para outro lado.

Durante os anos 70 e 80 estes conceitos foram dispersos e assimilados em novas tendências, manias e crenças mundiais, através de frutos e sementes e outras frutinhas que lançaram suas bolinhas por toda parte disseminando aqueles conceitos esquisitos, até o surgimento das tecnologias que hoje mais conhecemos, como o forno de microondas, que originalmente servia para fazer "chapinha" em cabelo black power, e não para secar cachorro, e o MS-Windows, que originalmente foi projetado para controlar a agenda do pessoal que se perdia no uso de tantas bolinhas e acaba por se emboletar tanto que precisaram anexar vários componentes ao Agenda-Windows, incluíndo importantes requisitos de segurança, como o botão "anti-emboletado", que evita que a pessoa desligue ou faça qualquer bobagem inadvertidamente por estar com a bola torta, e assegurando que o usuário esteja no gozo de suas completas faculdades mentais, com isto, impedindo uso incorreto. Com o tempo, a bola ficou fora de jogo e como resultado temos um amplo e sofisticado contador de bolinhas que não tem bola nenhuma.

Mas chegando aos nossos dias, a Phantom Power, o que já devem ter percebido, está relacionada justamente com a extensão geográfica dos movimentos mundiais...

Movimentos mundiais... ah sim, na verdade, sabemos que os movimentos mundiais ocorrem nos Estados Unidos e depois são replicados para o restante do mundo através de desenhos animados de Hanna Barbera e seriados japoneses falsificados feitos em Miami.

Esta culturalização acaba por rolar sobre suas próprias bolas, encontrando reflexos por toda parte, o que é seguramente marcado pela regionalização das tendências por bolas locais. E como isto acontece tão próximo de nós, podemos perceber facilmente a bola picando de uma lado para outro.
Todos que tenham alguma idade suficiente para assistir Tommy no original, ou até mesmo os Beatles, conheceram um dos grandes heróis latinos mexicanos, o Phantom, um dos melhores praticantes de luta livre, que juntamente com El Santo Mascarado, tornaram-se ídolos das multidões, que tentava dar tratos a bola para situar-se em meio aos acontecimentos mundias do país de cima ("aquele" país de cima do México) e, da mesma forma que através da conscientização negra nos Estados Unidos surgiu o Black Power, foi através dos nossos irmãos que surgiu a Phantom Power, que congrega milhões de fãs de artes marciais mexicanas e do autêntico cinema latino, tantas vezes premiado.

Daí para a música, é um pequeno compasso. Todos ainda lembram da singela música tema dos filmes de El Santo e Phantom, que lutavam contra monstros e perigosos mafiosos nos mais perigosos locais, sem nunca temer pelas próprias vidas e dispostos, a qualquer momento, a lançarem-se como bólidos rumo ao desconhecido!

Bem então deve ser isto. Phantom Power é a energia da força que deu tratos a bola e que graças a ela, hoje artistas podem levar sua arte as multidões com a bola cheia. A prova é, que sem ela, os técnicos das mesas de som ficam instantaneamente malucos e querem cancelar o show, o que seria uma catástrofe. Imaginem os grandes espetáculos sendo irremediavelmente suspensos, os shows, eventos, apresentações, concursos de misses seriam sumariamente cancelados o que a falta de silicone nunca impediu, mas com toda certeza, a Phantom Power, desde muito tempo, e pelos tempos futuros, assegura que bola vai rolar legal e dar tratos a bola de todos que tenham algo para apresentar ao grande e imenso público desta pequena bola que chamamos carinhosamente de Terra.


.'.

P+
Gilberto Strapazon (Sw. Prabuddha)
08/08/2004
Escritor, compositor, tecladista, analista de sistemas desde os anos 70 e tem as bolas no lugar.
.'.

Leia também: 

.'.
Consultas e atividades com Gilberto Strapazon

Consultas e Trabalhos em Magia - Portuguese text


Readings and Magic Works - English text


.'.




sexta-feira, 4 de setembro de 2009

No SEO site ou no meu?

O Gustavo Loureiro (SEO) escreveu uma matéria onde comenta sobre uma grande empresa que desejava melhorar a visibilidade de seu site, mas descobriu-se que não queriam modificar a maior parte das coisas do seu site porque "não seria possível nem adequado..."
Liberté, Egalité, Fraternité
http://imasters.uol.com.br/artigo/14095/seo/liberte_egalite_fraternite/

Minha resposta é dizer: "SEO Incompentente!" (risos)
A culpa obviamente é dos SEOs, pois obviamente seu trabalho deve ser mexer nos buscadores, ora bolas! Gente mimada não deve ser contrariada, afinal, eles obviamente tem razão.
Obviamente todo mundo sabe que o Google e outros, tem APIs, interfaces e comandos de controle.
Então obviamente deve ser fácil fazer um "programinha" que telepaticamente mude a maneira como funcionam os servidores deles para colocar todos sites desejados nas melhores posições.
Obviamente deve ser óbvio que esta mania de que SEOs e todo esse pessoal de TI tem de querer mudar as coisas, é obviamente desnecessária e obviamente inadequada.
Só porque eles querem mudar e ter uma imagem diferente, isto de forma alguma significa que eles tenham que mudar algo!
É óbvio!
Ao invés disto, deve ter uma maneira de reprogramar o mundo para que o mundo mude. E de preferência, bem baratinho ou free.
Que atire a primeira pedra quem nunca pegou um cliente assim.

Ainda sobre a DM9 e o WWF

O problema pela infeliz divulgação de uma peça de mau gosto, segue, e o Sérgio Valente, presidente da DM9 declarou que a mesma foi feita por pessoal "junior":

Fonte: http://portalexame.abril.com.br/blogs/4p/listar1.shtml

Com certeza muitos vão achar que isto é tirar o corpo fora. Acho que não. Todo dia vejo responsabilidades serem transferidas para novatos, sujeito portanto, a que algo assim ocorra.


Meu comentário lá na matéria: 

 
Acho bem plausível sim, que o Sérgio Valente, presidente da DM9, esteja sendo claro sobre um problema que é crescente em diversas áreas: a transferência excessiva de deveres, responsabilidades e também de oportunidades, para o que se generalizou chamar de "jovens talentos".

Sou da área de TI, temos o mesmo problema. E observo isto nas mais diversas atividades.

A toda hora surge mais uma matéria numa destas revistas de carreira, até nos tele-jornais da TV, reclamando que existem "milhares de vagas" porque faltam "jovens talentos".

O que procuram, são jovens extremamente brilhantes, que tenham a bagagem de conhecimento de um profissional veterano com no mínimo 10 a 15 anos, e claro, sem as preocupações que um adulto tem, como sustentar família, seus estudos, vida pessoal.

Tenho comentado sobre este problema e repito: o estoque de super-gêniozinhos, que fazem o trabalho do Einstein, e de quebra, ainda podem estar sendo sustentados pela família e não vão reclamar do salário baixo, é realmente limitado. Apenas uma pessoa entre centenas é um talento. E só um talento entre centenas, é um grande talento.

A DM9 revelou apenas o que acontece nas mais diversas empresas. É só olhar como são as equipes de muitas empresas e procurar aonde estão os profissionais com mais experiência.

Vocês confiariam a saúde de sua família inteiramente a uma clínica que só tenha estagiários, de muito talento é claro (rsss)???

Talento, capacidade criativa, inovação, engenhosidade, não são coisas só de novatos. Pelo contrário. a nova geração tem se mostrado mais comportada, mais tradicional, mais apegada a valores puramente materiais.

O pouco que sobra para renovação de idéias e atitudes, fica mais por conta de um pouco de hormônios, ou pela sorte em conseguir encontrar algo para copiar na internet. Criatividade mesmo, falta bastante. De nada adianta fazer um curso qualquer, numa faculdadezinha qualquer, e saber a decoreba de muitas siglas e nomes de ferramentas. Pode-se decorar o nome e composição química de todas as tintas, mas nada disto vai fazer da pessoa um pintor no mínimo, razoável.

E falta experiência de vida e consciência social de que não somos seres isolados. O direito de um começa quando este reconhece que os demais também tem direitos.

Picasso comentou certa vez, alegremente, que quando era criança, já pintava como um grande mestre. Mas foi só quando envelheceu que finalmente conseguiu aprender a pintar como um menino.

.'.