Anonymous divulga lista de sites brasileiros derrubados em protesto
Por meio do seu perfil oficial no Twitter, o grupo hacker ativista Anonymous divulgou uma lista de páginas brasileiras que eles conseguiram derrubar nos ataques realizados em protesto à prisão de Kim “DotCom”, o fundador do site Megaupload de hospedagem de arquivos, detido na última semana sob acusação de crime contra a propriedade intelectual e lavagem de dinheiro.
A lista, que pode ser vista aqui, inclui diversos sites de contabilidade e troca cambial, além de algumas clínicas estéticas e sites governamentais de algumas cidades interioranas – a maioria São Paulo. Também estão na lista dois sites da Editora Globo – um sobre a Revista ÉPOCA e outro sobre um serviço de newsletters.
Na noite em que Kim “DotCom” foi preso, o Anonymous organizou um ataque global massificado, que tirou do ar diversos sites ligados ao combate à pirataria, como a página do FBI e do Departamento de Justiça dos Estados Unidos, a associação comercial de estúdios de cinema (MPAA), a página do Escritório de Direitos Autorais (US Copyright Office) e o site da Warner Group.
Com informações de Olhar Digital
Acordem, SEOs, o novo Google chegou
Devo admitir que ultimamente o Google é a causa das minhas dores de cabeça. Não, não é só porque eu decidi que eu não receberia informações úteis sobre meus sites. E nem porque ele está modificando praticamente todas as ferramentas com as quais me acostumei desde os meus primeiros dias de SEO (Google Analytics, Webmaster Tools, Gmail…). E, honestamente, não é porque ele lançou um Panda voraz.
A verdadeira pergunta que está causando minha dor de cabeça é: o que o Google realmente quer com todas essas mudanças? Vou começar citando a definição de SEO que o Google dá em seus guias:
Search engine optimization (otimização de mecanismos de buscas, em português) significa colocar o melhor do seu site à frente, quando se trata de visibilidade em mecanismos de busca, mas seus consumidores finais são seus usuários, não os mecanismos em si.
Técnicas de SEO ainda importam – e muito!
Se você quiser destacar o melhor do seu site e deixá-lo o mais visível possível nos mecanismos de busca, então você tem que ser um mestre em técnicas de SEO. Sabemos que se não prestarmos atenção na arquitetura de navegação do site, se não nos importarmos com a otimização da página, se fizermos besteira com a tag rel=”canonical”, com a paginação e a navegação facetada da nossa web, e se não prestarmos atenção à duplicação interna de conteúdo, entre outras coisas, não iremos muito longe com a busca.
Tudo isso é óbvio? Sim, é. Mas as pessoas no nosso círculo tendem a esquecer um dos principais pilares da nossa disciplina: tornar um site otimizado para ser visível nos mecanismos de busca.
A próxima vez que você ouvir alguém dizendo “conteúdo é rei”, ou “social é o novo link building”, pergunte a ele qual foi a última vez que ele fez login no Google Webmaster Tools. Vá consertar o seu site, deixe-o indexável e resolva todos os problemas que ele possa ter. Somente depois de fazer isso você pode começar a fazer todo o resto.
O usuário é o rei
O SEO técnico ainda importa, mas isso não significa que ele seja sinônimo de SEO. As palavras “usuário” e “útil” têm a mesma raiz: uso. E um usuário acha um site útil quando ele oferece as respostas que ele precisa, e se seu uso é fácil e rápido.
Do ponto de vista que o Google tem do usuários, isso significa que um site para se posicionar:
- Deve ser rápido;
- Deve ter conteúdo útil e relacionado com o que ele se propõe;
- Deve ser apresentado ao Google para que ele possa compreender o máximo possível sobre o que é.
O primeiro ponto explica a ênfase que o Google dá à velocidade do site, porque isso está altamente correlacionado a uma melhor experiência do usuário.
O segundo ponto está relacionado à qualidade do conteúdo de um site, e é, basicamente, do que o Panda trata. Se o reduzirmos a termos mínimos, o Panda é a tentativa do Google de limpar os SERPs de qualquer conteúdo que ele não considera útil para os usuários.
O terceiro explica a adoção do Schema.org e por que o Google (e outros mecanismos de busca) estão definitivamente migrando para a Web Semântica: porque ela ajuda os mecanismos de busca a organizar milhares de conteúdos que eles indexam a cada segundo. E quanto mais eles compreendem um conteúdo, melhor eles conseguem entregá-los aos SERPs.
O declínio do gráfico do link
Sabemos que só com a otimização do site não conseguimos ganhar a guerra dos SERPs, e que precisamos de links para o nosso site para destacá-lo. Mas todos nós sabemos quanto o gráfico de link pode ser jogado.
Apesar de ainda termos muitas razões para reclamar com Google sobre a qualidade dos SERPs – especialmente, devido a sites que obtêm seu posicionamento devido a táticas manipuladas de link building, é difícil de acreditar que o Google não está fazendo nada para neutralizar essa situação. Acredito que o Google decidiu resolver o problema não com remendos, mas com um tipo totalmente novo de gráfico.
Isso não significa que os links não são mais necessários. De jeito nenhum! Uma vez que fatores relacionados aos links ainda representem (e irão representar) uma grande porção de todos os fatores de posicionamento, outros fatores agora estão considerados.
Seja social e se torne uma semente confiável
Em uma era social, a maneira mais rápida de checar se um conteúdo é popular é verificar sua popularidade “relativa” nos ambientes das mídias sociais. Digo “relativa” porque nem todos os conteúdos são iguais e se um meme precisa de muitos tweets, +1 e likes/compartilhamentos para ser considerado mais popular que outro, ele não o é por mais tipos de nichos de conteúdos. Ao combinar os sinais sociais com o gráfico de link tradicional, o Google consegue compreender a popularidade real de uma página.
O problema, como já é dito há quase um ano, é que é muito fácil fazer spam na mídia social. Por esse motivo, o Google introduziu os conceitos de Autor e Editor, e, ainda mais importante, o Google os linkou aos perfis do site e está incentivando o Google+, que não é simplesmente outra mídia social, e sim o que a empresa objetiva ser no futuro: um mecanismo de busca social.
Rel=”author” e Rel=”publisher” são a solução que o Google está adotando para conseguir um melhor controle, dentre outras coisas, da poluição de spam dos SERPs.
Se você for um blogueiro, você será incentivado a marcar seu conteúdo com Author e linká-lo a seu perfil Google+ e, como site, você será incentivado a criar sua página de negócios na rede social do Google e promovê-la com uma insígnia no seu site que tenha o rel=”publisher” no seu código.
Sementes confiáveis não são agora somente sites, mas também podem ser pessoas (por exemplo, Rand ou Danny Sullivan) ou facetas sociais de uma entidade. Então, quão mais perto estou no Gráfico Social dessas pessoas/entidades, mais confiável eu sou aos olhos do Google.

Como podemos ver, o Google não está tentando se apoiar somente no gráfico de links, que é bem fácil de lidar. Mas ele não está simplesmente adicionando sinais sociais ao gráfico do links, porque eles também podem ser caçados. O que o Google está fazendo é criar e refinar um novo gráfico, que vê a cooperação do gráfico de links, do social e do de confiança, e que é mais difícil de ser caçado.
Acordem, SEOs, o novo Google está aqui!
Como conclusão, vou pegar emprestado o que Larry Page escreveu no Google+ (o negrito é meu):
Nossa maior ambição é transformar a experiência geral do Google [...] porque entendemos o que você quer e podemos entregar instantaneamente.
Isso significa criar identidade e compartilhá-la em todos os nossos produtos para que construamos um relacionamento real com nossos usuários. Compartilhar na web será como compartilhar todas suas coisas na vida real. Você terá melhores e mais relevantes resultados de busca e anúncios.
Pense nisso dessa maneira… Último trimestre (de 2011), nós lançamos o Google+ e agora iremos lançar uma parte do Google.
Acho que isso resume tudo, e que vivemos há um ano, agora é explicado claramente pelas palavras de Larry Page.
O que podemos fazer como SEOs? Evoluir, porque o SEO não está morrendo, mas os SEOs podem morrer se eles não assumirem as mudanças que o Google está trazendo.

***
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/wake-up-seos-the-new-google-is-here
Engenheiros do Facebook e do Twitter lançam nova versão da busca social do Google
Engenheiros do Facebook, do Twitter e do MySpace se uniram para criar uma versão melhorada do Google, que inclui, em sua busca social, resultados das redes sociais mais populares da web. No início de janeiro, o Google anunciou uma versão mais social de sua busca, mas ela só disponibiliza resultados do Google+, a rede social da companhia.
“O quão melhor seria a busca social do Google se ele mostrasse todos os resultados da web? Criamos uma ferramenta que usa o algoritmo do Google para determinar qual conteúdo social deveria aparecer nos resultados”, diz a página do serviço-conceito lançado, que pode ser acessado neste endereço: www.focusontheuser.org.
Os interessados em utilizar a nova versão da busca social do Google devem adicionar aos seus “Favoritos” do navegador um pequeno código disponibilizado no site. O código se chama Don´t Be Evil.
Dessa forma, ao fazer uma busca em Google.com, é possível clicar no favorito Don´t Be Evil e ver a versão com dados de mais redes sociais.
Com informações de G1
Desvendando estatísticas do SQL Server – Parte 01
Nesta série de artigos, vamos dar um “mergulho profundo” nas Teorias Probabilísticas (mais conhecidas como estatísticas) do SQL Server.
As estatísticas são utilizadas pelo otimizador de query para estimar a seletividade das expressões e o tamanho dos resultados intermediário e final da query. Boas estatísticas permitem ao otimizador avaliar com precisão o custo de diferentes planos de pesquisa e escolher planos de alta qualidade.
Conceitualmente, estatísticas são objetos que contêm informações sobre a distribuição de valores em uma ou mais colunas de uma tabela ou view indexada (essa distribuição pode ser visualizada através de um histograma). O otimizador utiliza esses objetos para estimar a cardinalidade (o número de linhas) do resultado da query. Por exemplo, o otimizador poderia usar a estimativa de cardinalidade para escolher o operador Index Seek, ao invés de um Index Scan, melhorando a performance da query.
“Um objeto de estatística contém informações de distribuição de valores de uma ou mais colunas de uma tabela ou view indexada”
“O otimizador de consulta utiliza as estatísticas para estimar a seletividade das expressões e a cardinalidade do result set”
Estatísticas coletadas pelo SQL 2008
Além de utilizar os objetos de estatísticas, o SQL Server também precisa e mantém informações no nível de tabela para serem utilizadas pelo otimizador de consulta durante a estimativa de custo da query, as quais são armazenadas na tabela sysindexes (consulte a view de compatibilidade sys.sysindexes).
Informações armazenadas na sysindexes utilizadas pelo otimizador de consulta:
| Coluna | Descrição |
| ROWS | Quantidade de linhas na tabela ou índice, sendo:
· indid 0 para heap · indid 1 para índice clustered · indid >= 2 para índices nonclustered |
| DPAGES | Quantidade de páginas ocupadas pela tabela ou índice |
Existe, ainda, uma outra coluna muito importante na sysindexes, que é utilizada pelo SQL Server para determinar quando um objeto de estatística precisa ser atualizado (se as atualizações automáticas estiverem ligadas). Trata-se da coluna ROWMODCTR (falaremos mais a respeito em tópico posterior).
Script sys.sysindexes:
select i.id ObjectId, t.name TableName, i.indid Index_Stat_Id, i.name Index_Stat_Name, i.rowmodctr, i.rows, i.dpagesfrom sysindexes i join sys.tables t on i.id = t.object_id

Auto stats
O SQL Server possui várias funcionalidades para a manutenção de estatísticas dentro dos bancos de dados, sendo a mais importante a capacidade de criar e atualizar as estatísticas automaticamente. Essa feature, também conhecida como Auto Stats, está habilitada por default e deveria ser mantida assim, vez que é a melhor prática para a maioria dos cenários.
Funcionalidades para manutenção:
| Sys.stats | Lista objetos de estatísticas para as tabelas do banco |
| Sys.Stats_columns | Lista as colunas que compõem as estatísticas |
| SP_helpstats | Lista objetos de estatísticas para uma determinada tabela |
| Sys.sysindexes | View de compatibilidade que lista índices e objetos de estatísticas |
| Sys.indexes | View de catálogo que lista os índices |
| Dbcc show_statistics | Exibe informações descritivas e detalhadas para um determinado objeto de estatística |
| ALTER DATABASE AUTO_CREATE_STATISTICS | Habilita / desabilita a criação automática no banco |
| ALTER DATABASE AUTO_UPDATE_STATISTICS | Habilita / desabilita a atualização automática no banco |
| SP_AUTOSTATS | Habilita / desabilita a atualização automática para uma tabela, índice, objeto de estatística ou view indexada |
| SP_CREATESTATS | Cria manualmente estatísticas para todas as colunas de todas as tabelas do banco |
| SP_UPDATESTATS | Atualiza manualmente todas as estatísticas existentes no banco |
| CREATE STATISTICS | Cria manualmente um objeto de estatística |
| DROP STATISTICS | Dropa um objeto de estatística |
| UPDATE STATISTICS | Atualiza manualmente um objeto de estatística |
Criação de estatísticas
Existem diferentes maneiras de criar estatísticas no SQL Server. Se o Auto Stats está habilitado, então o SQL Server criará automaticamente, quando precisar, estatísticas sobre colunas individuais de tabelas e/ ou views indexadas. Isso ocorre quando uma instrução SELECT, DELETE, UPDATE ou MERGE utiliza alguma coluna como parte de predicado (WHERE ou JOIN) ou em expressões com DISTINCT. Se a coluna utilizada ainda não possui estatística, então o SQL Server criará automaticamente um objeto de estatística para a mesma.
Nota: no cenário de criação automática explicado acima, o componente do SQL Server responsável por criar estatísticas é o query-processor (processador de query).
Vejamos um exemplo:
use tempdbgo -- Cria uma tabela para demonstraçãocreate table dbo.Pessoa( Id int not null, Nome varchar(50) not null, Sexo char(1),)go -- insere alguns registrosinsert into dbo.Pessoa values(1, 'Ana Maria da Silva', 'F'),(2, 'Joana Ferreira', 'F'),(3, 'Cleber da Silva', 'M'); -- faz uma pesquisaselect * from dbo.Pessoa where Sexo = 'F' -- checa se criou estatística para a tabela pessoa exec sp_helpstats 'dbo.Pessoa', 'all'

Note que foi criado automaticamente para a coluna Sexo um objeto de estatística. A query abaixo apresenta maiores detalhes sobre a estatística recém-criada. Note a coluna AUTO_CREATED. Essa coluna é um bit que indica se a estatística foi criada automaticamente pelo processador de query.
-- conferindo a estatística criada automaticamente pelo SQL ServerSELECT t.name AS [Table Name] , s.name AS [Stat Name] , stats_id [Stat Id] , stats_date(s.object_id, stats_id) AS [Last Updated] , s.auto_created, s.user_created, s.has_filterFROM sys.stats sjoin sys.tables t on s.object_id = t.object_idwhere t.name = 'pessoa'

A criação de objetos de estatísticas também pode ser feita através das instruções CREATE STATISTICS (conhecida como criação manual ou explícita) e através de CREATE INDEX (conhecida como criação implícita). Nesses casos, é possível criar um único objeto de estatística que faça referência a várias colunas, respeitando-se o limite máximo de 32 colunas por objeto de estatística. A instrução CREATE INDEX, além de criar um índice, implicitamente cria um objeto de estatística. Se o índice possui um predicado, ou seja, se for um índice filtrado, então a estatística também será filtrada.
Script criação manual de estatística (criação explícita):
-- Criando manualmente um objeto de estatística-- apontando para duas colunas ao mesmo tempoCREATE STATISTICS Pessoa_Nome_SexoON dbo.Pessoa (Nome, Sexo);
-- conferindo a estatística criada manualmente pelo usuárioSELECT t.name AS [Table Name] , s.name AS [Stat Name] , stats_id [Stat Id] , stats_date(s.object_id, stats_id) AS [Last Updated] , s.auto_created, s.user_created, s.has_filterFROM sys.stats sjoin sys.tables t on s.object_id = t.object_idwhere s.name = 'Pessoa_Nome_Sexo';

Note que a coluna AUTO_CREATED indica que a estatística não foi automaticamente criada pelo processador de query. Entretanto, a coluna USER_CREATED indica que a estatística foi criada manualmente pelo usuário. Essa coluna sempre terá valor igual a 1 quando a estatística é criada explicitamente pelo usuário através dos comandos CREATE STATISTICS e SP_CREATESTATS.
Script criando implicitamente uma estatística como consequência da criação de índice:
-- Cria índice para a coluna NomeCREATE NONCLUSTERED INDEX Pessoa_NomeON dbo.Pessoa (Nome ASC);
-- conferindo a estatística criada implicitamente por conta do índiceSELECT t.name AS [Table Name] , s.name AS [Stat Name] , stats_id [Stat Id] , stats_date(s.object_id, stats_id) AS [Last Updated] , s.auto_created, s.user_created, s.has_filterFROM sys.stats sjoin sys.tables t on s.object_id = t.object_idwhere s.name = 'Pessoa_Nome';

Perceba que as colunas AUTO_CREATED e USER_CREATED estão com valor igual a 0, indicando que a estatística não foi criada automaticamente pelo processador de query e nem explicitamente pelo usuário.
Para finalizar, vamos criar uma estatística filtrada. Para tanto, vamos fazer uma criação implícita a partir da criação de um índice filtrado:
-- Cria índice filtrado para a coluna Nome - somente MasculinosCREATE NONCLUSTERED INDEX Pessoa_NomeMON dbo.Pessoa (Nome ASC)WHERE Sexo = 'M';
-- conferindo a estatística filtrada criada implicitamenteSELECT t.name AS [Table Name] , s.name AS [Stat Name] , stats_id [Stat Id] , stats_date(s.object_id, stats_id) AS [Last Updated] , s.auto_created, s.user_created, s.has_filterFROM sys.stats sjoin sys.tables t on s.object_id = t.object_idwhere s.name = 'Pessoa_NomeM';

Perceba que a coluna HAS_FILTER tem valor 1, indicando que é uma estatística filtrada.
Recapitulando:
Dentro do SQL Server existem três maneiras para a criação de estatísticas:
- Automática: quando criada automaticamente pelo query processor;
- Explícita: quando criada explicitamente pelo usuário (CREATE STATISTICS);
- Implícita: quando criada como decorrência da criação de índices.
No próximo artigo desta série, vou discorrer sobre atualização automática e manual de estatísticas. Até!
Por que você deveria mudar do Subversion para Git – Parte 01
Você deve ter ouvido um falatório sobre sistemas de controles de versões distribuídos recentemente. Você não deve considerá-las a coisa mais nova do momento, o novo sabor de tang satisfazendo a sede dos populares. Você, no entanto, tem usado o Subversion por algum tempo. Ele tem te tratado bem, você o conhece bem e se sente confortável com ele – digo, é apenas um controle de versão, certo?
Você pode querer dar uma segunda olhada nisso. Não somente em de sistemas de controles de versões distribuídos, mas também no real papel do controle de versões no seu kit de ferramentas criativas. Neste artigo, de duas partes, irei introduzi-lo ao Git, meu DVCS favorito, e esperançosamente te mostrar por que ele não é somente um melhor sistema de controle de versões que o Subversion, mas também uma maneira revolucionária de pensar sobre como fazer o seu trabalho.
Agora, este artigo não é exatamente um “como fazer” do Git – eu não irei falar sobre comandos específicos ou deixar você pronto para trabalhar. Esta é uma lista de argumentos sobre por que você deveria estar seriamente considerando o Git se você está atualmente usando o SVN. Para aprender Git, existe um livre online grátis chamado Pro Git que eu escrevi e que irá te mostrar o Git passo-a-passo, se este artigo te interessar. Para cada ponto que eu fizer aqui, irei linkar a seção apropriada do livro, se você quiser saber mais sobre um recurso específico do Git.
Então, primeiro, iremos dar uma olhada nas vantagens inerentes dos sistemas distribuídos em relação aos sistemas centralizados. Essas são coisas que sistemas como o Subversion simplesmente não conseguem fazer. Então iremos cobrir as ferramentas de troca de contexto e criação de arquivo que são tecnicamente possíveis de fazer com o Subversion, mas o Git as torna fácil o suficiente, de modo que você pode fato usá-las. Essas ferramentas devem mudar completamente a maneira como você trabalha e a forma como você pensa sobre trabalho.
As vantagens de ser distribuído
Git é um sistema de controle de versão distribuído. Então, o que “distribuído” significa? Bom, significa que em vez de executar `svn checkout (url)` para pegar a última versão do seu repositório, com o Git você roda `git clone (url)`, o que dá a você uma cópia completa de toda o histórico daquele projeto. Isso significa que imediatamente depois do clone, não existe basicamente nenhuma informação sobre aquele projeto que o servidor do qual você clonou tenha que você não tenha. Curiosamente, o Subversion é tão ineficiente nisso que, em geral, é quase tão rápido clonar um repositório inteiro no Git quanto fazer o checkout de uma única versão do mesmo repositório no Subversion.
Agora, isso te dá algumas vantagens imediatas. Uma é que quase toda a operação agora é feita off data no seu disco local, o que significa que é incrivelmente rápido e pode ser feito offline. Isso significa que você pode fazer commits, diffs, logs, branches, merges, file annotation e mais – inteiramente offline, off VPN, e geralmente instantaneamente. A maior parte dos comandos que você executa em Git levam mais tempo para digitar do que para serem executados. Agora pare por um instante e tente se lembrar de quantas vezes você foi buscar uma xícara de café enquanto o Subversion estava rodando algum comando. Ou tome nota de uma lista de ocasiões em que você quis fazer o commit, mas não tinha conexão com a internet ou não conseguia se conectar à sua VPN corporativa.
A outra vantagem implícita desse modelo é que seu fluxo de trabalho não tem um único ponto de falha. Como cada pessoa que trabalha no seu projeto tem o que é essencialmente um backup completo dos dados do projeto, perder seus servidores de colaboração é uma pequena inconveniência, no máximo. Imagine, por um momento, seu servidor SVN tendo uma séria corrupção de drive – quando foi seu último backup e quantas horas vão demorar para que sua equipe possa voltar a trabalhar? No Git, qualquer membro da equipe pode enviar arquivos para qualquer servidor onde exista acesso via SSH para qualquer membro, e toda a equipe pode facilmente estar pronta para trabalhar em uma questão de minutos.
A vantagem final que cobrirei de sistemas distribuídos são os incríveis fluxos de trabalho que agora estão disponíveis para você. O Git não depende de um servidor central, mas tem a habilidade de sincronizar com outros repositórios Git – para pegar e levar as mudanças entre eles. Isso significa que você pode adicionar múltiplos repositórios remotos ao seu projeto, alguns somente de leitura e outros com possibilidade de acesso de escrita também, o que significa que você pode ter quase qualquer tipo de fluxo de trabalho em que você pode pensar.
Você pode continuar usando um fluxo de trabalho centralizado, com um servidor central que todo mundo usa. No entanto, você também pode fazer coisas mais interessantes. Por exemplo, você pode ter um repositório remoto para cada usuário ou sub-time no seu grupo a que eles têm acesso de escrita, em seguida um mantenedor ou time de QA ou integrador pode juntar seu trabalho e colocá-lo em um repositório de “ouro” de onde é feito o deploy.

Você pode construir qualquer tipo de modelo de fluxo de trabalho baseado em peers em que você puder pensar, além de ser capaz de usá-lo como um hub centralizado como no SVN. Seu fluxo de trabalho pode crescer e se adaptar de acordo com seu modelo de negócios.
Você também pode usá-lo de outras maneiras – um exemplo interessante disso é o deploy na Heroku, empresa de hospedagem do Ruby. Para efetuar o deploy nos sistemas deles, você simplesmente envia seu repositório remoto ‘heroku’. Você pode desenvolver e colaborar em outros repositórios remotos, mas quando você de fato quiser fazer o deploy do seu código em servidores que estiverem rodando, você envia para o repositóro Heroku no Git. Imagine tentar fazer isso com o Subversion.
Branches leves: alternância de contexto sem atrito
Antes de eu começar a explicar isso, que é meu recurso favorito no Git, eu preciso que você me faça um favor. Esqueça tudo que você sabe sobre branches. Seu conhecimento do que ‘branch’ significa no Subversion é venenoso, especialmente se você o internalizou antes do 1.5, como eu, antes de o Subversion ter construído algumas capacidades básicas de rastreamento de merges. Esqueça quão doloroso era executar o merge, esqueça quanto tempo demorava para alternar entre branches, esqueça quão impossível era fazer o merge de um branch mais de uma vez – o Git te dá um mundo todo novo no que se trata de branching e merging.
No Git, branches não são uma palavra feia – eles são mais vezes usados e fundidas, em muitos casos os desenvolvedores criam um para cada recurso em que eles estão trabalhando e os unem várias vezes em um dia, e geralmente isso é tranquilo. Isso foi o que me prendeu ao Git em primeiro lugar, e mudou completamente a maneira como eu abordo meu desenvolvimento.
Quando você cria um branch no Git, ele faz de modo local e isso acontece de maneira bem rápida. Aqui está um exemplo da criação de um branch e então a troca para um novo branch para começar a fazer o desenvolvimento.
$ time git branch myideareal 0m0.009suser 0m0.002ssys 0m0.005s $ time git checkout myideaSwitched to branch "myidea"real 0m0.298suser 0m0.004ssys 0m0.017s
Levou cerca de um terço de segundo para ambos os comandos serem executados juntos. Pense por um segundo sobre o equivalente no Subversion – executar um `copy` e então um `switch`.
$ time svn copy -m 'my idea' \ real 0m5.172suser 0m0.033ssys 0m0.016s $ time svn switchreal 0m8.404suser 0m0.153ssys 0m0.835s
Agora a diferença entre 1/3 de segundo e 13 segundos (sem mencionar o tempo que leva para lembrar cada URL longa) pode não parecer grande no início, mas existe uma significativa diferença psicológica ali. Adicione isso à velocidade da sua rede, ao carregamento do servidor, e ao status de conectividade, fatores no Subversion que no Git sempre levam 1/3 de segundo e fazem uma grande diferença. Além disso, o branching é considerado uma operação rápida no Subversion – você verá diferenças ainda mais consideráveis em outras operações comuns como log e diff.
No entanto, esse não é o verdadeiro poder dos branches no Git. O poder real é como você os usa, a velocidade crua e a facilidade dos comandos simplesmente o torna mais provável de ser utilizado. No Git, um caso de uso comum é criar um novo branch local para tudo em que você trabalha. Cada recurso, cada ideia, cada correção de bug – você pode facilmente criar um novo branch facilmente, executar alguns commits nesse branch e então ou executar um merge na sua linha principal de trabalho ou jogá-lo fora. Você não tem que bagunçar a linha principal para salvar suas ideias experimentais, não tem que estar online para fazer isso e, mais importante, pode alternar o contexto quase que instantaneamente.
Agora, uma vez que você tenha trabalho em uns dois branches, e o merginf? Se você for do mundo do Subversion, você pode tremer quando ouvir a palavra ‘merge’. Como o Git grava todo o seu histórico de commit como um gráfico direcionado de commits, geralmente é fácil para ele entender automaticamente qual a melhor base de merge para fazer um merge com vários elementos. A maior parte dos usuários do Subversion está acostumada a ter que descobrir isso manualmente, o que um processo propenso a erros e que leva tempo – o Git o torna trivial. Além disso, você pode executar o merge a partir do mesmo branch várias vezes e não precisa resolver os mesmos conflitos de novo e de novo. Geralmente eu faço dezenas de merges por dia em certos projetos do Git e raramente tenho conflitos triviais de merge no Git – certamente nada que não seja previsível. Levante a mão se você já fez dezenas de merges de branch em um projeto do Subversion pelo menos uma vez por semana e não acabou cada dia bebendo demais.
Como uma anedota de caso de estudo, pegue meu Pro Git book. Eu coloquei a fonte do livro no GitHub, o site de hospedagem para o qual trabalho. Em alguns dias, eu comecei a receber dezenas de pessoas fazendo forks do meu projeto e contribuindo com edições de cópias, correções e até traduções. No Git, cada um desses forks é tratado como um branch que eu poderia pegar e fazer o merge individualmente. Eu gastei alguns minutos uma ou duas vezes por semana para pegar todo o trabalho que tinha sido feito, inspecionar cada branch e fazer o merge das aprovadas na linha principal.

No momento em que estava escrevendo este artigo, eu tinha feito 34 merges em cerca de 2 semanas – eu me sentei de manhã e fiz o merge em todas os branches que pareciam boas. Como exemplo, durante a ultima sessão do merge, eu inspecionei e fiz o merge em 5 branches separados em 13 minutos. Mais uma vez, eu irei deixar isso como um exercício para o leitor contemplar como teria sido no Subversion.
Na segunda parte do artigo, você verá como se tornar um artista de código e mais exemplos das vantagens do Git.
⁂
Texto original em inglês de Scott Chacon, disponível em http://thinkvitamin.com/code/why-you-should-switch-from-subversion-to-git/
Oracle libera NetBeans IDE 7.1
A Oracle anunciou ontem a nova versão do NetBeans Integrated Development Environment (IDE), o NetBeans IDE 7.1.
Ele é um IDE gratuito, de código aberto, disponível para Oracle Solaris, Oracle Linux e outras distribuições em Linux, Mac e Windows, que permite aos desenvolvedores criar rapidamente aplicativos móveis, empresariais, para desktop e web, principalmente para a plataforma Java, bem como em PHP e C/C++.
O NetBeans IDE 7.1é o primeiro IDE que oferece suporte para as mais recentes especificações e padrões na plataforma Java, incluindo suporte total ao desenvolvimento em JavaFX 2.0 e JDK7. A nova versão é compatível com o recém-anunciado Oracle WebLogic Server 12c, oferecendo o suporte ao Java Platform Enterprise Edition (Java EE) 6 para que os desenvolvedores criem aplicativos na plataforma do Oracle WebLogic Server.
Além disso, o NetBeans IDE 7.1 traz aprimoramentos importantes do Swing GUI Builder, suporte para CSS3 e ferramentas para depuração visual das interfaces do usuário (UIs) do JavaFX e Swing.
Para baixá-lo, acesse este link.
Empresas e marcas nas redes sociais: um caminho sem volta
No ano de 2011, as grandes marcas e empresas compreenderam a força das mídias sociais, tanto no relacionamento com o consumidor, quanto para a construção e manutenção de sua imagem corporativa. Canais como Facebook e Twitter – apenas para citar os mais utilizados – alteraram a dinâmica de contato entre cliente e instituição, obrigando as empresas a se adaptarem para manterem um bom relacionamento com os consumidores via canal social.
A reclamação 2.0 gerou alguns casos bastante repercutidos no ano que passou, como o vídeo criado por Oswaldo Borelli para reclamar de um defeito em sua geladeira. Postado logo no início de 2011, o vídeo no YouTube teve mais de 820 mil visualizações e fez a marca figurar entre os Trending Topics do Twitter na época. O que também movimentou os TTs foi a campanha contra a coleção Pelemania, que logo após o lançamento levou mais de sete mil usuários a se reunirem em uma página de boicote à empresa no Facebook.
Depois da repercussão, Oswaldo teve seu problema resolvido, a Pelemania foi retirada das prateleiras e as empresas definitivamente começam a entender o alcance e a dinâmica para essas novas mídias.
O ano terminou com os maiores anunciantes do país investindo também na internet, não apenas nas redes sociais, mas também em sites e novos canais de relacionamento e engajamento do público. No Facebook, as Casas Bahia incentivaram seus fãs a criarem enfeites natalinos com materiais recicláveis e mandarem suas fotos para concorrerem a prêmios. No site institucional, o grupo Colgate-Palmolive criou uma ferramenta interativa para apresentar quais os produtos mais indicados para a limpeza de cada cômodo da casa. O Magazine Luiza também aproveitou o caminho aberto pelas redes sociais para angariar “consultores”, que utilizam sua rede de contatos no Facebook e Orkut para vender produtos através de uma vitrine virtual. E, inovando, o Bradesco se destaca dentre os 30 maiores anunciantes do país ao manter uma página nacional corporativa no Google+.
Mais do que apenas estar lá, as empresas estão buscando nas redes formas de conhecer melhor o seu consumidor. Em 2011, o público abriu seu coração: lamentou a morte de Steve Jobs com mais de oito milhões de menções no Twitter em apenas 36 horas; posicionou-se em relação à construção da Usina de Belo Monte, com quase 500 mil pessoas curtindo a fanpage no Movimento Gota D’Água; esperou ansiosamente a chegada do iPhone 4S, com mais de um milhão de menções no Twitter antes mesmo de o produto chegar às lojas e curtiu muito “rock, bebê” – foram mais de 300 mil seguidores no perfil oficial do Rock in Rio no Twitter, quase 600 mil likes na sua página no Facebook, cerca de 11 mil check-ins pelo Foursquare e nada menos que 3 milhões e quatrocentos mil membros em uma comunidade do Orkut.
Com tanta informação, as corporações se bem embasadas podem antecipar as tendências, prever crises e oferecer aos consumidores exatamente o que eles querem e precisam. Muito além da divulgação institucional, YouTube, Linkedin, Vimeo, Flickr, Instragram, blog e muitas outras ferramentas, também já estão sendo utilizadas pelas marcas que querem inovar, mas – mais do que isso – por quem quer se relacionar, sinceramente, com seu público. São essas empresas que vão ganhar o “curtir” do consumidor em 2012.
Projeto BrowserID da Mozilla ganha avanços
O projeto BrowserID da Mozilla, que tem como objetivo proporcionar uma plataforma mais simples, melhorias nos processos de login e no gerenciamento de identidade, avançou com seu primeiro deploy dentro da organização sem fins lucrativos.
Lançado em julho de 2011, o BrowserID é alternativa da Mozilla para a iniciativa OpenID, que entrou em um fase de pouco movimento.
Ao longo do ano novo, a Mozilla lançou uma “não-localizada” e somente em inglês versão do BrowserID para uma série de locais de desenvolvimento: Mozilla Developer Preview Apps, Firefox Affiliates, Mozillians, Add-on Builder e Mozilla Developer Network. Os sites foram selecionados por serem predominantemente de língua inglesa ou estarem disponíveis apenas em Inglês.
Desenvolvedores interessados em utilizar o BrowserID podem achar detalhes no repositório do GitHub.
Com informações de The H
Temendo destino do Megaupload, sites de compartilhamento mudam
O desligamento do Megaupload pelo FBI assustou bastante os usuários do serviço, mas não foram só eles que ficaram com medo. Pouco depois de dois dias de o site ter saído do ar, outros grandes nomes da área de compartilhamento de arquivos alteraram o funcionamento dos seus sites, provavelmente na esperança de que eles não sofram o mesmo destino do Megaupload. Um deles, o Filesonic, desativou até a opção de compartilhamento.

Desde o final de semana passado, o Filesonic só permite que seus usuários enviem e baixem arquivos das próprias contas. Antes, bastava enviar um arquivo que um link para o download dele seria fornecido. Agora, o aviso acima é exibido cada vez que um link é aberto, exigindo que o usuário faça login na conta responsável por enviar o arquivo.
Além dessa mudança, de acordo com site o TorrentFreak, contas de usuários que contenham arquivos ilegais estão sendo detectadas e excluídas com maior frequência. O site diz ainda que o Filesonic é um dos 10 maiores sites do tipo no mundo, com 1 bilhão de pageviews ao mês.
Outros sites como o Fileserve, FileJungle e FilePost também mudaram, dessa vez cancelando seus programas de afiliados e impedindo que usuários compartilhando arquivos, sejam eles ilegais ou não, lucrem com eles. Já o Uploaded.to foi mais extremo: para tentar evitar problemas com a legislação americana, baniu o acesso de IPs dos EUA ao site.
Ainda existem grandes nomes do setor que não mudaram seus serviços, como o Rapidshare e Mediafire. Mas se a posição do FBI em relação a esses sites continuar, isso deve acontecer muito em breve.
Por Rafael Silva
Já está disponível primeiro release candidate do LibreOffice 3.5.0
A Document Foundation publicou o primeiro release candidate (RC1) da versão 3.5.0 do LibreOffice. Não foi adicionada nenhuma nova funcionalidade, desde as versões beta e a equipe de desenvolvimento focou em endereçar os bugs que foram encontrados em versões anteriores.
A versão 3.5.0 será a grande atualização que já inclui uma série de melhorias no desempenho e novas funcionalidades, como uma interface atualizada para cabeçalhos e rodapés. Outras mudanças incluem a adição de um importante filtro de importação de documentos do Microsoft Visio no Impress/ Draw, melhorias para verificação gramatical e atualizações diversas diálogo. A versão final do LibreOffice 3.5.0 é esperada para fevereiro.
Normalmente, os usuários só podem relatar problemas no LibreOffice pelo Bugzilla. No entanto, nas sessões recentes, pode-se enviar os bugs pelo chat IRC e por e-mail. Durante a primeira sessão de reportar bugs, realizada em dezembro, mais de 150 voluntários relataram mais de 70 bugs.
Para mais informações, acesse esse link. O download pode ser feito para Windows, Mac OS X e Linux no site do projeto. Os usuários que estão testando o produto são encorajados a fornecer um feedback.
Com informações de The H


