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!

quinta-feira, 29 de outubro de 2009

A Diferença entre Nerds, Geeks, Dweebs e Idiotas



Isto é cópia postagem de outro site (vide nota ao final). Achei a uma análise simples e bem interessante. E engraçada.





Acho que observando a imagem acima fica bem claro o que é o que, mas vamos a uma rápida análise!

Nerds: São pessoas sem vida social, inteligentes e que sonham em ganhar muita grana e se casar com uma gostosa que vão se apaixonar pelo seu dinheiro!

Geeks: Um Nerd que se preocupa um pouco mais com a vida social, esses bebem cerveja e eventualmente comem mulher! Possuem vida social normal, ou quase!

Dweeb: Um parente próximo do Nerd, igualmente inteligente e sem vida social, mas sem ambição alguma, ou seja, nunca irão comer uma gostosa, já que não deverão ser ricos!

Idiotas: Aqueles que sonham em ser alguma coisa na vida, mas não são inteligentes e não possuem capacidade para criar/desenvolver/montar algo sozinho! Como não tem vida social, dificilmente arrumarão algum bom emprego por indicação! A única vantagem é que os idiotas costumam comer as gostosas, mas propriamente as gostosas dos Nerds ricos!



.'.

Nota: O site onde isto foi postado não existe mais, o link da postagem original era:
http://hein.com.br/quer-entender-um-pouco-mais-a-diferenca-entre-nerds-geeks-dweeb-e-idiotas

Linux Koala alça vôo: Ubuntu 9.10 liberado.

Foto: arrayexception (M. Lobo)

Com novidades interessantes, como a "Personal Cloud", foi liberado oficialmente hoje o Ubuntu 9.10 (Karmic Koala).

O engraçado foi meu colega "Linux addicted" que ficou desde as primeiras horas da manhã clicando Refresh no browser só para ver o momento da liberação no site.

Estão disponíveis diversos release mirror e (para pensar nos franceses que querem barrar P2P), sugere-se o uso de bittorrent para o download. 

.'.

Adicionar Hardware Não Compensa Software Lento

Relação de Amor e Ódio
Foto: Jay Murdock

Adicionar Hardware Não Compensa Software Lento
29/10/2009

Por causa da redução do preço do hardware ou limitações de desenvolvimento (tempo, experiência, etc), tornou-se prática comum colocar mais máquinas para compensar o fraco desempenho dos sistemas.

Além de maior consumo de energia e dos impactos ambientais, isto não significa tanta melhoria assim nos resultados.

"Você é programador? Quer fazer algo pelo meio ambiente e mesmo, fazer do mundo um lugar melhor? Então comece a otimizar seu código! - Jeff Atwood."


Simplesmente colocar mais equipamento tem sido a solução preferida ao invés de fazer o software rodar mais rápido com o hardware existente. Fazer mais com menos é uma regra importante a ser lembrada, tanto quanto a Lei de Wirth: "Software fica lento mais rápido do que o hardware acelera."

Como resultado, isto anula os ganhos com a Lei de Moore!!! O hardware fica mais rápido a cada 18 meses, mas o software dobra de tamanho, fica maior, mais lento.

Jeff Atwood sugere alguns passos para começar:
  1. Coloque hardware mais rápido e barato para o problema de performance.
  2. Se o aplicativo atingir sua meta de performance, pare por aí mesmo.
  3. Faça benchmarks para determinar aonde estão os problemas de performance do seu software.
  4. Analise e otimize as áreas que você identificou no passo anterior.
  5. Se agora o aplicativo atingir sua meta de performance, pare por aí mesmo.
  6. Volte ao passo 1.

Outra coisa importante a observar é quais aspectos otimizar, como por exemplo, a interação com o usuário. Um tempo de resposta de até um segundo é até aceitável. A partir de um segundo, isto já chama a atenção do usuário e pode começar a irritar. Se passar de dez segundos (máximo!), o usuário vai perder a linha de raciocínio e passar a fazer outras coisas enquanto espera.

Para grandes volumes de dados também existirão os aspectos de tempo de execução e da quantidade de volumes alocados durante o processamento, que certamente afeta outras tarefas que poderão estar sendo feitas.

Otimização de performance envolve mais testes e menos adivinhação. Quando se pensa numa escala de milhões de operações por segundo, qualquer detalhe pode ser importante. Mas também existem detalhes que tomam tempo e não valem a pena otimizar.

Com certeza, a otimização requer conhecimento efetivo e prática dos recursos e técnicas adotadas.

Pessoal com menos experiência vai ter melhores resultados se trabalhar em grupo e utilizarem intensos benchmarks para analisar cada porção do software.

E claro, isto vale para mim e para todos: Sempre estude. Procure aprender de quem sabe mais que você. Graças a internet, hoje alguns dos melhores programadores do planeta mantém sites, blogs, etc com um amplo conjunto de informações e código fonte que merecem ser cuidadosamente estudados.

Dica: soluções de estruturas de lógica, de "como fazer", podem ser feitas com diferentes linguagens, portanto, amplie seu foco de estudos. Como se diz faz décadas, basicamente "quase tudo são IFs e assinalamentos."

As vezes, descobre-se que seria mais desejável reescrever o software. Isto deve ser considerado quando:
  1. O código for efetivamente ruim ou mau feito;
  2. A solução atual puder ser realmente melhorada;
  3. Houver incompatibilidade na maneira que o código faz o processamento, em relação a algum outro recursos, normalmente externo.

E lembrando, muitas vezes o código é reescrito apenas porque o programador não entendeu o que foi feito. Geralmente falta estudar o código. Portanto, antes de qualquer coisa, estude o código e a solução de lógica adotada, conheça a ferramenta ou linguagem que está usando.

Soluções de automatização de performance, como as existentes nos gerenciadores de banco de dados e, em certas linguagens de programação, podem muitas vezes ser uma armadilha. As pessoas acham que o computador vai resolver sózinho o trabalho de melhorar a execução do código, mas esquecem completamente que isto vai ser feito de acordo com algumas regras padronizadas. Logo, com frequencia os resultados podem ser bem fracos em relação ao esperado.




Leia também:




.'.