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

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:




.'.

quarta-feira, 28 de outubro de 2009

RIP Geocities

Foto: Viche (Victoria Cormie)

Conforme comunicado a vários meses, o Yahoo encerrou as atividades do Geocities, ativo desde 1994.

Nestes 15 anos o Geocities tornou-se um repositório imenso de informações que dificilmente serão encontradas novamente, pois muitos dos sites tinham pouco tráfego, ou seus autores não puderam mais efetuar atualizações. Eu sou um deles.

Tive vários sites no Geocities, inclusive o mais acessado do mundo a respeito do sintetizador Roland JD800, um clássico profissional, e meu hobby semi-profissional. Outros sites eram de programação e coisas diversas.

Para quem precisar de coisas que estavam no Geocities, a sugestão é que se utilize o web.archive.org para buscar a versão em cache dos sites que deixam de estar disponíveis.

Também existem outros sites que mantém cópias de boa parte do material do Geocities.
Alguns principais são:
 .'.

terça-feira, 27 de outubro de 2009

Defeitos dos profissionais de informática?

Computer Control Room
Imagem:
Ryudenki Tori Kamiya


A coisa que mais escuto, é que todo pessoal de informática fala uma língua que ninguém entende.

Todo mundo entende a língua de médicos, engenheiros, bruxas, economistas, cozinheiros, etc...

Mas as PESSOAS NÃO NOS ENTENDEM!!!

Discutimos numa língua esquisita que ninguém sabe.

Não acho que arrogância seja problema, isto tem em toda profissão.

Humildade? Tente conversar com pessoal da Odontologia ou de Comércio Exterior antes de questionar a imensa e profunda humildade de um profissional de informática!!!

Minha muito humilde opinião, é que temos um problema de IDIOMA. Isto mesmo.

Não nos comunicamos com os malucos dos usuários porque ELES não entendem NOSSO IDIOMA.

E olha que além de Inglês e Espanhol fluentes, tenho noções de alemão, francês e italiano.

Fazem anos alguém disse que depois da linguagem de programação, a linguagem mais usadas pelos programadores é a linguagem obscena.

O resto, meus defeitinhos pessoais, são coisinhas insignificantes, como meu perfeccionismo e detalhamento extremo, ler manual no banheiro, rede LAN em casa, licença QUENTE de Cobol, Clipper, Delphi, Visual Basic, Access, etc, gastar um tempão para que um programa seja completamente a prova de operador.

Convenhamos, fazer o programa aceitar clique do mouse fora do campo sem cancelar ou enlouquecer o processo é básico.

Eu confesso! O grande defeito, não é o profissional! É o USUÁRIO.

Colossus, HAL 9000 e outros, serão lembrados como mártires!



.'.

segunda-feira, 26 de outubro de 2009

Que horrível! Twitter custa Bilhões!! Mas e o resto?

Imagem: Flavio Conde
Uma empresa de consultoria Reino Unido fez uma pesquisa para descobrir que o Twittter custa bilhões porque é usado em média 40 minutos POR SEMANA nas empresas.

Obviamente isto já resultou em matérias alarmantes, por causa do desastre econômico mundial que deve estar atormentando a mente de muita gente por aí.

Puxa vida, mas que coisa TERRÍVEL!!! 40 minutos por semana! Quarenta!!! São 8 minutos por dia, para quem trabalha de segunda a sexta. São 4 minutos de manhã e mais 4 de tarde!!! Imagina o resultado catastrófico se fizerem uma pesquisa sobre quanto tempo se gasta com o intervalo do lanche ou esperando que algum chefe/coordenador finalmente responda algo que é importante ou arrumando serviço mal feito dos outros. Enfarte na certa. (risos)

Está bem, está bem. Antes que o editor me mate, creio que o correto da pesquisa sejam 40 minutos por dia, o que seria um tempo um pouco mais razoável para se conseguir fazer alguma coisa. São 20 minutos por turno, ou se preferir, parte do horário de almoço.

Distribuidos ao longo do dia, intercalados e/ou em paralelo com outras atividades, e sem afetar o que se está fazendo, ainda não é taaaaaanto tempo assim.

Verdadeira apologia do miserável. Desculpem, mas matérias que li a respeito estão bem escritas por profissionais que respeito. Mas quanto a pauta, este é o tipo de pesquisa tendenciosa de quem só chora e esconde os rendimentos que tem. Se não tem o que falar mal para a imprensa, melhor não passar vergonha. Espero não ter que trabalhar num lugar destes. É o tipo de empresa que só explora os funcionários, suga até a última gota de sangue, dificilmente vai ter algum treinamento ou atualização, e ainda reclama porque os "peões" não se viram em fazer isto do próprio bolso para dar de grátis para o "patrão" (no sentido perjorativo da palavra).

A pesquisa poderia ter informado os Trilhões gastos em papel higienico no banheiro. A empresa é local de trabalho, que usem o banheiro de casa!! (risos).

Antes que algum “espertinho” diga que “local de trabalho é para trabalhar”, recomendo que se atualizem pelo menos uns mil anos. Nem vaca trabalha com a cara enfiada no pasto o tempo todo, sem precisar informação. Está provado que cavalos deixados por si só conduzindo carroças, não provocam acidentes. Coloquem um condutor humano e ele vai dar um jeito de bater até noutra carroça. Quem quer controlar tudo e todos, o tempo todo, deveria ficar sózinho.

A era feudal já passou. Foi um imenso período de trevas e pouco desenvolvimento. Citando a Wikipédia:
"Devido ao caráter expropriador do sistema feudal, o servo não se sentia estimulado a aumentar a produção com inovações tecnológicas, uma vez que tudo que produzia de excedente era tomado pelo senhor. "
Informação faz parte do processo produtivo. Atualização é necessária sim. Nas noutras áreas é preciso também sim senhoras e senhores! Abram os olhos. Não adianta sustentar chefias incompetentes e pagar propaganda para tentar disfarçar insatisfação, má qualidade de serviço desmotivação. Todos tem que se atualizar, ter produtividade e qualidade.

Esqueceram que boa parte de seus clientes, fornecedores e concorrentes usam estas tecnologias? Ainda hoje vejo empresas que bloqueiam até MSN, que é amplamente usado nas melhores empresas para comunicação direta com clientes, fornecedores e colegas.

Esqueceram de dizer que estes 40 minutos semanais poderiam ser gastos, por exemplo, fofocando com o chefe. (Maus) Chefes controladores, inseguros, imaturos ou simplesmente incompetentes, sempre vão achar que internet é brinquedo. Bom senso é necessário!

Twitter é tipo de um MSN, mas com esteróides. Redes sociais online são parte da nossa cultura global, pessoal, empresarial, politico, enfim, todas áreas.

Negar isto, usar as regras das senzalas, representa perda de competitividade, atrasos em relação ao mercado e baixa produtividade.

Faz pouco escrevi duas matérias sobre o assunto, aqui no blog, como participação voluntária, etc. Leia mais em: Empresas amadurecendo para as Redes SociaisComo regrar o acesso dos usuários à Internet na Empresa.

Empresa tem que gerar lucro produzindo, com produtividade e qualidade.


Parece que um dos motivos dos indianos estarem se atualizando tão rápido, é que por lá, as vacas são sagradas.

Só para lembrar: É muito fácil ser uma empresa grande (pode até ser herança do "papi"). Difícil é ser uma grande empresa.

Sem Revolução Francesa para o P2P

Foto Emmanuelle Waeckerle


Já foi comentado sobre o problema de invasão de computadores pessoais sob a desculpa de estarem procurando conteúdo pirateado e até mesmo de censura.

Também é importante destacar novamente, que nem tudo que está sendo copiado por conexões P2P é ilegal, pelo contrário.

Enquanto alguns justificam até a colocação de programas espiões para monitorar transmissões e conteúdo dos computadores, volto a perguntar o mesmo que já disse algum tempo atrás: Quem é que vai estar do outro lado olhando isto tudo? Existirá discrição? Existirá um pingo de ética, raciocínio pacifico e discernimento para deixar de lado crenças políticas, moralistas e religiosas ao avaliar o material que terá em mãos?

É bom lembrar, a França que é famosa por sediar tantos expoentes das artes, das ciências, da cultura em geral, é a mesma em que trabalhadores estão sendo tão pressionados que estão se suicidando as dezenas na companhia telefonica. Outros tantos devem estar fazendo o mesmo.

E gozado, até pode-se juntar mais coisas, quem tiver curiosidade que pesquise um pouco, mas trabalhadores se matando por más condições de trabalho, agora vai sendo imposto o controle das comunicações, está acontecendo na França. É a mesma França em que houve a famosa Queda da Bastilha? Liberdade, Igualdade, Fraternidade?

Muitas destas coisas estão acontecendo noutros países. Não estou defendendo más atitudes, mas acredito que é necessário bom senso e responsabilidade, tanto por parte dos usuários, quanto por parte dos governantes.

Aonde iremos depois?


.'.

sexta-feira, 23 de outubro de 2009

A parte mais importante para estratégia de redes sociais

Foto: Jared Pallesen
Durante mais de uma década o principal foco da internet esteve no e-commerce.

Mas redes sociais e networking, não se tratam de comprar e vender, pelo contrário. Trata-se de relacionar-se, estar conectado e estar envolvido. Graças as redes sociais, empresas, organizações não lucrativas e entidades de todo tipo, podem ir em frente e assegurar-se de que o que fazem, é o que as pessoas estão falando e se envolvendo. Pode ser uma pílula difícil de engolir a princípio para quem está acostumado a só pensar em vender pois requer participação e certo interesse social.

Existe muita discussão sobre os mecanismos de participar das redes sociais: blogs, Twitter, Orkut, Facebook, videos no Youtube, etc. Mas existe um aspecto crucial que não tem nada a ver com tecnologia: é o fator humano. Em termos práticos, quem vai fazer isto e quanto tempo vai tomar?

Saindo do conceito de comprar e vender, passa-se a ter pessoas que vão escrever blogs, participar de redes sociais. Alguns poderão fazer isto de forma exclusiva, outros no seu dia a dia, mas atuando para conectar e encontrar envolvimento e interesse de outras pessoas.

Com frequência, o primeiro pensamento é procurar por algum jovem colegial, afinal, todos adolescentes estão nas redes sociais, ok? Mas mesmo que você encontre um jovem talento que seja um mago do Orkut, Twitter, etc, ocorre imediatamente a seguinte pergunta: quão bem ele vai representar sua organização?

Segundo pesquisa da Comscore em 2006 sobre sites de networking, mais de 50% dos visitantes do Myspace e do Facebook estão na faixa acima dos 35 anos. Do total, pelo menos dois terços são adultos acima de 25 anos de idade. Ainda, segundo pesquisas do mesmo site, no Brazil, pelo menos 85% dos internautas acessam redes sociais.

Social networking requer interação com outros indivíduos, blogueiros e organizações. Enfim, não é só com os amigos do colégio, mas com toda a sociedade. Graças a internet, hoje participar de uma rede social, implica diretamente em relacionar-se, literalmente, com pessoas do mundo inteiro. Mesmo que falem o mesmo idioma, as pessoas vivem realidades próprias de cada região, cultura, ambiente econômico e político, etc.

Os melhores candidatos deveriam ter um combinação de diversos fatores:
  • Conhecer e gostar de redes sociais e das mídias que as compôem.
  • Entender de tecnologia (especialmente não-TI). Não precisa ser um “geek” (aficionado por tecnologia em geral), mas deve saber do que está falando.
  • Conhecer sua organização e estar comprometido com sua missão.
  • Escrever com estilo próprio, com habilidade, fluidez e coerência.

Esta pessoa pode ser alguém da equipe ou um voluntário, mas deve ser alguém que já esteja envolvido envolvido com a organização

Mesmos assuntos, pessoas diferentes.
Foto: Clara Nebeling
Lembre, que é necessário pensar para qual audiência você estará focando e qual o interesse que esta poderá ter na organização.

A próxima questão é quanto tempo deve ser alocado para esta tarefa. Ao contrário de trabalhar num website, que normalmente implica em responder consultas e enviar mensagens, fazer social networking é muito mais ativo.

Isto requer envolvimento e participação nos vários debates em assuntos que sejam mais importantes ou ligados a sua organização. Como resultado, isto precisa de muito mais tempo e estar diariamente atento a novidades que surgem a toda hora.

Algumas linhas básicas para iniciar seu planejamento, lembrando que na matéria anterior falei sobre as pessoas estarem ou não realizando esta tarefa com exclusividade.
  • Duas horas por dia (10 horas por semana). Tempo para postar avisos no website da empresa, visitar alguns outros sites e fazer alguns comentários nestes sites.
  • Quatro horas por dia (uma pessoa em meio-periodo). Manter um blog regular, ter voz ativa na internet a respeito dos assuntos chaves da organização.
  • Oito horas por dia (uma pessoa conectada em tempo integral). Agora você vai estar fazendo social networking. Criar e manter tópicos interessantes, gerar oportunidades de interação com pessoas que se interessem pelo que sua organização faz, ser ativista e liderar campanhas em várias áreas, interagir regularmente com outros “blogueiros”, líderes, organizações chave e de mídia.

Pessoas que trabalham em tempo integral, mas que tenham condições de acesso liberados, poderão estar mais participativas e, com foco em assuntos diferentes, ao mesmo tempo que realizam suas tarefas diárias.



Mobile social networking.
Milhões de pessoas se relacionam em todas as áreas, todo tempo.
Foto: Will Lion
As redes sociais podem ser uma grande fonte de recursos para qualquer entidade. Mas isto requer comprometimento estratégico. Se você assumir este compromisso, encontrará novas e excitantes oportunidades para crescer com mais consciência e incrementar significantemente os seus contatos (clientes, fornecedores, admiradores, etc).

Notas
  • Inspirado numa em tradução minha (muito) livre e com vários acréscimos de Michael J. Puican e The social networking bug;
  • Meus comentários são minha opinião e não refletem opiniões e/ou ideais do meu empregador.


Loja num centro comercial de Toronto.
Foto: Kate Raynes-Goldie