iMasters 27000343BF | ‎ | 1,258 Views
Nesta semana, recebi por e-mail um vídeo do meu sócio. Ele comentou que tinha descoberto de onde vêm as grandes ideias. Na hora parei para assistir ao vídeo e também para descobrir de onde elas vêm.
Tive a ideia de montar uma agência há mais de cinco anos. Tentei abri-la algumas vezes, mas só há dois anos, quando conheci meus dois sócios, consegui executar isso. Por diversas vezes, mudei o foco da "abertura", mudei estratégias, desenhei fluxos, serviços, processos... rascunhei inúmeras vezes! Deixei de lado esse "sonho" por um tempo e foquei em minha carreira.
Até que um dia, palestrando em um evento de grande importância em SP, após o painel, algumas pessoas me abordaram para tirar dúvidas do assunto que discuti. Até então, nada fora do normal. Quando estava saindo, dois rapazes me chamaram e comentaram que tinham gostado bastante da apresentação. Poderiam ser meus clientes. Me convidaram para bater um papo. Foram quatro reuniões até que, na última, veio a oportunidade: "vamos abrir uma agência especializada em e-commerce?".
Depois de três anos, quando tive a primeira ideia, até então sem sócios, tive uma explosão de ideias. Mas agora faziam sentido, e aqueles milhares de rascunhos começaram a ter serventia. Conversando com eles posteriormente, passaram por processos similares, mas cada um em seu momento e estilo.
Acredito que isso seja a maior prova de que uma boa ideia – como diz Johnson em sua análise – tenha que passar por uma evolução e por uma colisão de ideias menores e conjuntas, para que, assim, evolua, cresça e faça sentido para você. Não apenas nós mesmos, as ideias também precisam passar por um processo de amadurecimento (evolução).
Minha conclusão – comece a trabalhar ou criar suas grandes ideias agora. Quem sabe daqui a dois, três, quatro ou cinco anos, você já não esteja trabalhando e com sucesso nelas?
Como desbancar a atualização do Google Panda: 5 pecados mortais de conteúdo
O SEOmoz foi afetado pelas atualizações do Panda do Google? Depende da maneira como você interpreta as coisas. Desde a primeira atualização em fevereiro de 2011, o tráfego orgânico de busca para o SEOmoz aumentou em 49%.
Para ser justo, as datas em que o Panda entrou não correspondem a períodos em que vimos ganhos em tráfego. Nesse período, nós implementamos conteúdo original, posts de blogs populares, introduzimos novas ferramentas e fizemos grandes melhoras em SEO. De certa maneira, podemos dizer que somos bons em não sermos penalizados pelo Panda.
Olhando para os sites que perderam a maior parte de seu tráfego quando o Panda entrou, estou impressionado com o quão pobremente formatados a maior parte desses sites ainda está, meses depois. Alguns deles fizeram melhorias, mas parece que muitos webmasters decidiram que simplesmente não valia a pena o esforço, desistiram, ou simplesmente não sabiam o que fazer.
Panda – a versão em dois minutos
O Panda começa com avaliadores humanos de qualidade que olham centenas de sites. Computadores, usando aprendizados de máquinas, então são trazidos para imitar os avaliadores humanos. Quando o algoritmo se torna preciso o suficiente em predizer o que os humanos tinham avaliado, então ele é lançado em milhões de sites através da internet.
A questão é: o Panda começa a partir de um ponto de vista humano, não de uma máquina. Podemos olhar para esses sites com olhos humanos e ver o óbvio.
Lembre-se, o Panda é uma penalidade que atinge todo o site, não uma página do site. Portanto, se uma certa porcentagem das suas páginas estiver abaixo do algoritmo de qualidade do Panda, todo o seu site sofrerá. Conserte o número suficiente dessas páginas e você pode se recuperar.
Nota: eu usei screenshots reais tiradas de sites bem conhecidos de serem abatidos pelo Panda. Não quero gritar com ninguém, nem estou encrencando com nenhum site em particular. Pelo contrário, todos temos muito que aprender a partir desses exemplos. Além disso, muitos desses tópicos foram cobertos no excelente post do Dr. Pete, Fat Pandas and Thin Content. Vale a pena dar uma olhada.
1. Área ocupada por template pesado
Você já olhou para um site e se perguntou, "Where's the Beef?" ("Onde está o bife?"). Considere a página abaixo. Quanto conteúdo original existe acima da dobra?
Este footprint template cria um raio pequeno de conteúdo original. Ninguém sabe o limite exato para o que qualifica para conteúdo duplicado do ponto de vista de uma máquina, mas isso claramente viola todos os padrões humanos.
Aqui no SEOmoz, nossa plataforma PRO usa um limite de 95% para julgar o conteúdo duplicado. Isso significa que se 95% de todo o código na sua página corresponderem com outra página, ele é marcado como duplicado. Para checar seus próprios raios, tente esta elegante ferramenta de conteúdo duplicado.
2. Conteúdo vazio
Você vê páginas que simplesmente existem para linkar outras páginas? Eu encontrei esta página com alta autoridade na faq.org em menos de 10 segundos, o que indica que existem muito mais.
Sim, essa é a página inteira, aí mesmo. E que tal esta página do Suite101? Eliminar esse tipo de páginas de conteúdo vazio, ou simplesmente adicionar bom material, ajudará bastante a eliminar as penalidades do Panda.
3. Artigos redundantes e sobrepostos
Cada página do seu site deve endereçar para um tópico específico, em vez de endereçar para uma variação levemente diferente de uma palavra-chave. Quantas variações de "Acai Berry Cleanse" um website precisa?
O exemplo acima é de uma "fazenda de conteúdo" muito conhecida. Essa é uma das muitas razões pelas quais acredito que o Panda vai com tanta força nos sites de artigos - páginas e páginas de artigos que se sobrepõem que visavam a palavras-chaves em vez de de humanos. Combinar esses artigos com alguns recursos altamente úteis poderiam diminuir a confusão.
4. Grande raio de anúncios
Eu entendo a tentação. Não conseguimos escapar dela. O Google até nos pede para encher nossos sites de anúncios. Mas o time do Adwords está separado do time de spam liderado por Matt Cutts. Não espere que ambos te deem o mesmo conselho.
Otimizar para o Adsense não significa otimizar para busca. Fico feliz que o Google mantém seus departamentos separados, mas mensagens mais consistentes da empresa como um todo poderiam reduzir a frustração dos webmasters.
5. Links afiliados e conteúdo automaticamente gerado
Se uma máquina construiu suas páginas com o mínimo de intervenção humana, o Google desvalorizará você. Vemos isso sempre em sites com múltiplos afiliados na internet.
Ressalva: Eu prevejo que um dia as máquinas serão capazes de produzir páginas web indistinguíveis dos conteúdos gerados por humanos. Até lá, evite fazer isso.
Desbancando o Panda – Diminua os pecados
É minha crença pessoal que os 5 pecados acima, sozinhos ou combinados, são responsáveis pela grande maioria de penalidades do Panda. Ainda assim, os webmasters parecem perplexos quando precisam resolver esses problemas.
O Dr. Pete Me mostrou um post do Webmasterworld de Duane Forrester. Apesar de ele estar falando sobre o Bing, ele explica a situação do Panda também.
Se um usuário pesquisa no Bing, nós retornamos o melhor SERP que podemos para a pesquisa. O usuário clica no primeiro resultado (como esperando, normalmente). Eles caem no SEU website e...
1 – estão tão engajados que esquecem o resto da internet por alguns minutos curtem sua glória, conseguindo a informação que eles queriam, e mais.
2 – estão tão consternados que imediatamente clicam no botão voltar, imediatamente saindo do seu radar, nos alertando para o fato de que eles ficaram infelizes com o resultado que mostramos a eles - por qual outro motivo eles iriam voltar tão de repentinamente, sem consumir seu conteúdo? Infelizes.
Este é o futuro da web: quando o equivalente a olhos humanos olha cada página de seu site. Você gostaria que seu pai visitasse seu website? Você gostaria que sua mãe fizesse compras lá?
Rand acertou quando ele nos disse para melhorar nossas métricas de engajamento. Faça aprimoramentos legítimos no site que melhorem de fato a experiência do seu visitante. Você descobrirá que, ao reduzir a taxa de rejeição, aumentará as visualizações de páginas, e tempo no site tem o efeito colateral de deixar seus visitantes, e você, mais felizes.
Este artigo é uma republicação feita com permissão. SEOMoz não tem qualquer afiliação com este site. O original está em http://www.seomoz.org/blog/beat-google-panda
retirado do iMasters
Os bancos de dados NoSQL - uma olhada no HBase
iMasters 27000343BF | ‎ | 4,808 Views
Em dois artigos anteriores, abordei o banco de dados NoSQL e falei sobre que ferramentas usar, além de tratar especificamente de alguns bancos de dados, como MongoDB, Redis e Riak.
Hoje, iremos dar uma olhada no Apache HBase - originalmente criado para uso com o Apache Hadoop, um framework de software com suporte a aplicações distribuídas com uso intensivo de dados sob licença livre.
Nossa missão nesses artigos é simplesmente te ajudar a escolher os melhores bancos de dados NoSQL - dos quais a maior parte é open-source e grátis. Afinal de contas, você quer ter certeza de que seus dados estão sendo armazenados de maneira segura. Já não existem preocupações o suficiente sobre segurança de dados – estejam os dados armazenados no cloud ou atrás do seu firewall interno e privado?
Então, aqui está o que você consegue com o Apache HBase!
O HBase realmente é um clone (ou um parente muito próximo) do Bigtable do Google e, como eu disse, ele foi originalmente criado para ser usado com o Hadoop. Na verdade, o HBase é um subprojeto do projeto Hadoop do Apache.
O HBase oferece as capacidades de banco de dados do Hadoop, o que você significa que você pode usá-lo como uma fonte para trabalhos de MapReduce. Ele é um banco de dados orientado a colunas, e foi construído para fornecer pedidos com baixa latência sob Hadoop HDFS. Diferentemente de bancos de dados colunares que fornecem consistências eventuais, o HBase é bastante consistente.
Um cluster HBase usa vários tipos de servidores. Por exemplo, o HDFS precisa de pelo menos um namenode e vários datanodes. Além disso, o HBase precisa de um cluster ZooKeeper, de um servidor master e vários servidores regionais. Os pedidos devem ser feitos ao(s) master(s).
No nível do HDFS, dados existentes não são compartilhados automaticamente. No entanto, novos dados são compartilhados. No nível do HBase, os dados são divididos em regiões que são divididas automaticamente através de servidores regionais.
Algumas referências rápidas sobre o HBase
Orientação: Colunas
Criação: O HBase foi criado no Powerset em 2007 e então doado para o Apache.
Linguagem de Implementação: Java
Distribuída: Afirmativo. Você pode executar o HBase de forma autônoma, pseudodistribuída (várias instâncias do HBase estão rodando no mesmo host) ou no modo completamente distribuído.
Armazenamento: O HBase fornece capacidades parecidas com as do Bigtable no Hadoop File System.
Schema: HBase suporta dados não estruturados e parcialmente estruturados. Para fazer isso, os dados são organizados em famílias de colunas. Você endereça um registro individual, chamado de "célula" no Hbase, com uma combinação de row key, column family, cell qualifier, e time stamp. Em oposição ao RDBMS (sistemas de gerenciamento de bancos de dados relacionais), em que você deve definir bem sua tabela com antecedência, com o HBase você pode simplesmente nomear uma família de colunas e então permitir que a célula se qualifique para ser determinada a um certo tempo de execução. Isso permite que você seja bastante flexível e suporta uma abordagem ágil de desenvolvimento.
Cliente: Você pode interagir com o HBase via Thrift, um RESTful service gateway, Protobuf (veja "Recursos Adicionais" abaixo), ou um shell do JRuby.
Open source: Afirmativo (Licença Apache)
Uso de Produção: HBase tem sido usado na Adobe desde 2008. Também foi usado no Twitter, Mahalo, StumbleUpon, Ning, Hulu, World Lingo, Indonesia-based Detikcom e no Yahoo!.
Recursos Adicionais: Como o HBase é parte do projeto Hadoop, ele tem uma forte integração com o Hadoop. Existe um conjunto de classes de conveniência que permite que você execute facilmente trabalhos MapReduce usando o HBase para um backiground de armazenamento de dados.
Se você quiser, o HBase irá permitir que você use a API do Protocolo Buffer do Google (Protobuf) como alternativa para o XML. O Protobuf é uma maneira muito eficiente de serialização de dados. Ele tem a vantagem da compactação - os mesmos dados ficam duas ou três vezes menores do que o XML, e de 20 a 100 vezes mais rápidos de analisar do que o XML. Por quê? Devido à maneira como o protocolo transporta os bytes. Portanto, o que isso significa é que trabalhar com o HBase pode ser bastante rápido. O Protobuf é usado amplamente dentro do Google; eles incorporam quase 50 mil tipos diferentes de mensagens dentro do Protobuf através de uma grande variedade de sistemas.
Os bancos de dados vêm com uma interface de usuário no console web para monitorar e gerenciar os servidores regionais e masters.
De forma interessante, mais no início do ano, o Facebook recentemente descartou o uso do Cassandra e adaptou o Hbase, porque seu modelo de Mensagens precisava de uma replicação mais flexível - como o HBase.
Se você é um administrador de sistema, esperamos que essa informação sobre o Apache HBase seja útil. E esperamos que você tenha cuidado - não importa quão ousado seu banco de dados NoSQL seja - ele precisa de monitoramento!
Texto original disponível em http://blog.monitis.com/index.php/2011/05/31/the-nosql-databases-a-look-at-hbase/
Mikayel Vardanyan é sócio, VP de Engenharia e Desenvolvimento de Produto na Monits Inc, e Gerente na Sourcio CJSC.
iMasters 27000343BF | ‎ | 1,502 Views
Hoje gostaria de abordar uma situação problemática que já vi acontecer repetitivamente com profissionais Java, relacionada com o uso de padrões de projeto. Quem já investiu tempo estudando diversos livros e materiais relacionados com catálogos de padrões de projeto tem tendência a esquecer grande parte do conteúdo depois de um certo tempo. Partindo da ideia central de que um padrão acontece em uma arquitetura, posso afirmar que existe uma grande chance de o profissional não visualizar um determinado cenário favorável para a aplicação de um padrão. Por mais visível que esteja que uma situação arquitetural aponte para um padrão, se o profissional não estiver com as características dele injetadas na memória, fatalmente não ira se beneficiar dos objetivos motivadores da existência daquele padrão, enviando, possivelmente, sua arquitetura para o penoso caminho da inflexibilidade.
O profissional precisa se preocupar apenas em memorizar a "intenção central" de um padrão, para que ele possa facilmente identificar o caso de aplicabilidade quando o cenário arquitetural aparecer.
Com o objetivo de ajudar os desenvolvedores, gostaria de publicar o meu resumo de intenções do catalogo de padrões GOF que utilizei para fazer esse mapeamento mental. Segue abaixo:
As motivações dos padrões de criação estão centralizadas em como os objetos são criados. Ou seja, eles são usados para capturar intenções focalizadas na criação de objetos.
Abstract Factory – sua intenção é definir um ponto de criação para uma família de objetos relacionados, ou dependentes, na qual não se tem conhecimento dos tipos concretos de todos esses objetos a serem usados. O Abstract Factory é basicamente uma "extensão em massa" do padrão Factory Method.
Prototype – sua intenção é definir um ponto de criação de objetos que precisam ser instanciados, usando como base a cópia, ou outro objeto de molde, denominado "protótipo". Todos os objetos criados passam a existir contendo valores copiados desse suposto objeto protótipo.
Singleton – sua intenção é definir um ponto de criação de objetos que necessitem ser instanciados apenas uma vez durante todo o ciclo de execução da solução e oferecer um ponto único de acesso para essa referência.
As motivações dos padrões estruturais estão centralizadas na organização e na composição de classes e seus objetos. Ou seja, eles são usados para capturar intenções focalizadas na composição estrutural dos objetos.
Adapter – sua intenção é converter a interface de uma classe para outra interface requerida, definindo um ponto intermediário de ligação com o objetivo de promover comunicação entre duas interfaces incompatíveis.
Decorator – sua intenção é definir um meio alternativo para a herança de adicionar responsabilidades a um objeto de forma flexível e dinâmica em tempo de execução.
Flyweight – sua intenção é definir um ponto de compartilhamento eficiente e que suporte um grande numero de manipulações de objetos de granulação fina reutilizáveis.
Proxy – sua intenção é definir um objeto-substituto para um objeto-real, de forma que o objeto-substituto possa, transparentemente, intermediar as interações para esse objeto-real.
As motivações dos padrões comportamentais estão centralizadas nas responsabilidades e nos relacionamentos dos objetos. Ou seja, eles são usados para capturar intenções focalizadas no que um objeto pode fazer e como ele se relaciona com os outros.
Chain of Responsability – sua intenção é desacoplar o objeto-enviador de um pedido dos supostos objetos-receptores, possibilitando que múltiplos objetos-receptores possam ser enfileirados de forma dinâmica para manipular o pedido transparentemente.
Command – sua intenção é fazer com que uma requisição de um comando possa ser encapsulada como um objeto uniforme, permitindo com que objetos-clientes possam ser parametrizados flexivelmente com diferentes objetos-comandos intercambiais.
Mediator - sua intenção é definir um objeto utilizado para encapsular o relacionamento entre outros dois objetos, fazendo com que determinado relacionamento possa ser implementado de forma indireta, flexível e intercambial.
Memento - sua intenção é definir uma forma de capturar e armazenar o estado de um objeto, de forma que ele possa ser restaurado para o estado original anterior.
Observer - sua intenção é definir uma forma que possibilite um objeto agregador notificar e atualizar automaticamente outros objetos agregados dependentes quando ocorrer uma alteração no estado no objeto agregador.
State - sua intenção é definir uma forma que possibilite um objeto variar intercambialmente seus comportamentos quando mudanças internas no seu estado acontecerem.
Strategy - sua intenção é definir um objeto que possua determinados comportamentos que sofram variações intercambiais, dependendo de outros objetos clientes que os manipulam.
Visitor - sua intenção é definir uma forma que possibilite que diversas operações possam ser dinamicamente aplicadas para um objeto, sem a necessidade alterar sua estrutura de definição.
Se porventura você é um desenvolvedor que não quer perder nenhuma oportunidade de aplicar um padrão GOF, deve obrigatoriamente entender e decorar cada uma dessas motivações. A dica principal é que o candidato primeiro precisa entender a motivação do padrão, para depois memorizar sua intenção. Caso exista algum padrão GOF que você não tenha compreendido, separe um tempo para estudá-lo, para que posteriormente você tenha condições de memorizar sua motivação. Vale lembrar também que a dica serve para ser aplicada para outros catálogos.
artigo publicado originalmente no iMasters por
Fernando Franzini é graduado e pós-graduado em Engenharia de Software e UML, projetista de software e consultor Java, instrutor de cursos JSE, JEE e JME e professor de especialização. Possui as certificações Cambridge PET, SCJA, SCJP, SCWCD, SCBCD, SCMAD, SCJD, W3School XML, DOM, XSLT, HTML, XHTML, CSS, JavaScript Developer.
iMasters 27000343BF | | Tags: mysql linux servidores redes ‎ | 4,980 Views
iMasters 27000343BF | | Tags: acessibilidade design arquitetura_informação usabilidade ‎ | 3,073 Views