30 de agosto de 2010

As pessoas não gostam de mudanças ou o Orkut só piora?

O Orkut é a maior rede social do país, ela é muito mais popular aqui no Brasil que qualquer outro site do gênero. Por isso podemos encontrar os tipos mais variados de usuários. Jovem, velho, rico, pobre, experiente e iniciante.

A rede social do Google sofreu uma atualização grande nos últimos dias e as reações... bem, vou comentar um pouco sobre isso.

Uma das novidades do Orkut é a possibilidade da criação de círculos sociais. Você pode separar seus diferentes contatos em grupos, por exemplo, amigos, trabalho e família. Assim é possível enviar conteúdo apenas para grupos específicos e também filtrar as atualizações de acordo com eles. Isso é ótimo e tem tudo a ver com privacidade. Talvez você não queira compartilhar as fotos da festa da noite passada com seu chefe.

.
Eu não entendo como ainda reclamam da privacidade se na verdade ela foi aumentada. Agora é possível enviar recados privados também, não precisa usar o artifício de enviar um depoimento.

O Orkut sempre foi muito criticado, mas eu digo com toda certeza que essas últimas atualizações melhoraram muito a rede social. Entretanto muita gente não compartilha essa ideia comigo. Eu já ouvi muitas reclamações. Comunidades protestando contra os novos recursos começaram a pipocar novamente. Por que?

Conversando com alguns amigos eu cheguei a conclusão que as pessoas simplesmente não gostam de mudanças. Isso exige aprender coisas novas e pode exigir também deixar de lado algo que você já sabia. Ah, queria dar os parabéns pela criação do tour dos novos recursos do Orkut, muito bem feito, pena que quase todo mundo ignora e clica em "next" até ele acabar.

Sair da zona de conforto incomoda, claro, todos sentem isso, mas é bom sair de vez em quando, os ganhos podem ser maiores do que se você continuar apenas confortável. O que realmente deveria incomodar de verdade é saber que as mudanças, pelo menos no início, são sempre consideradas ruins pela maioria das pessoas.

27 de agosto de 2010

Minimal Vim - Acessando arquivos

Abrir arquivos para editar é uma operação fundamental em qualquer editor de texto. A maneira mais básica para abrir um arquivo no Vim é digitar no modo de comando:

:e caminho/para/o/arquivo

Existem vários plugins e outros comandos do próprio Vim que permitem o acesso aos diretórios e arquivos do seu computador. Mas lembre-se, o objetivo é simplificar o uso, quanto menos opções, melhor. Por isso vou apresentar o plugin Command-T.

O Command-T é um plugin que permite uma maneira extremamente rápida e simples para abrir arquivos no Vim. Ao executar o plugin você pode filtrar os arquivos em tempo real digitando seu nome ou parte dele e depois pressionar Enter para abrí-lo.

O plugin está disponível no site https://wincent.com/products/command-t/. Para instalar o Command-T siga os passos:

  • Abra o arquivo baixado no site do Command-T no Vim
  • No modo de comando digite :so %
  • Abra o terminal e entre no diretório onde o Command-T foi instalado: cd .vim/ruby/command-t
  • Digite: ruby extconf.rb
  • Por fim: make

Para facilitar o uso do Command-T vamos definir um atalho para ele no .vimrc. Acrescente a seguinte linha no arquivo de configuração do Vim:

nnoremap <C-t> :<C-u>CommandT<CR>

Para usar o Command-T, primeiro entre no diretório do seu projeto dentro do Vim. Use o comando:

:cd diretorio/do/projeto

Você poderia usar o Command-T sem alterar o diretório, ou seja, na raiz, mas indexar todos os arquivos a partir da raiz pode ser muito lento, entrando em um diretório específico esse problema dificilmente existirá.

Para acessar os arquivos simplesmente pressione Ctrl+T. Uma lista de arquivos vai aparecer e ela é filtrada de acordo com o que você digita.

Além de filtrar pelo nome do arquivo o plugin também filtra pelos diretórios. Por exemplo, se existem dois arquivos chamados "post" um dentro do diretório "blog_pessoal" e outro dentro de "blog_corporativo" é possível encontrar o arquivo post do primeiro diretório digitando "pesspos", "pess" casará com o nome do diretório blog_pessoal e o "pos" com o nome do arquivo post.

Para mais informações sobre o Command-T visite o site: https://wincent.com/products/command-t/.

O Command-T é útil sempre que precisamos acessar os arquivos dentro de um projeto, se por acaso for necessário acessar um outro arquivo em uma pasta bem distinta eu recomendo usar o comando padrão do Vim para editar um arquivo:

:e /caminho/do/arquivo

Espero que tenham gostado da primeira dica da série de posts Minimal Vim.

25 de agosto de 2010

Experimento com css3

Confesso que minha habilidade com css não é grande, mas não conhecer algo e precisar aprender a usar é tão comum que muitas vezes é natural.

Eu fiquei impressionado com algumas demostrações do css3 e html5. Ao ver os slides do html5rocks do Google minha cabeça foi bombardeada com novas ideias por causa das novas possibilidades que eu estava conhecendo. As demos da Apple e tantas outras encontradas na web são muito boas também.

Eu não poderia deixar de testar um pouco as novas tecnologias. A brincadeira com o css3 resultou nisso yexperiments.appspot.com (funciona melhor no Chrome e Safari). É uma galeria de fotos muito simples que usa novas propriedades do css3 como o transform e o transition. Efeitos que só eram possíveis com javascript agora podem ser feitos de forma muito mais simples com o css3.

24 de agosto de 2010

23 de agosto de 2010

Minimal Vim: minhas configurações

Antes de começar a falar mais profundamente sobre como eu estou usando o Vim é bom deixar claro para todos que eu uso no meu computador o Ubuntu mais recente, o 10.04, com o GNOME. A versão do Vim utilizada é a 7.2, mas eu não estou usando o Vim puro direto no terminal, eu estou usando o GVim. 

Diferente do que muitos possam pensar, eu não uso o GVim para ter acesso aos seus menus, eu até removi todos eles. O principal motivo para usar o GVim é ter um programa específico que rode apenas o editor. Eu acho melhor ter um ícone na barra de tarefas apenas para ele. O GVim também tem melhor suporte a cores e a alguns efeitos.

Para remover o menu e a barra de ferramentas adicione as seguintes linhas ao .vimrc, o arquivo de configuração do Vim:

set guioptions-=m
set guioptions-=T

Usuários do Windows e do OS X, se tiverem alguma observação sobre algo que funcione diferente nesses sistemas operacionais, eu agradeço muito uma contribuição nos próximos posts através dos comentários para alertar os leitores.

20 de agosto de 2010

Minimal Vim

Eu gosto do Vim. Já tive problemas com ele, mas sei que ele possui ótimas ferramentas que o tornam um poderoso editor, a grande dificuldade é aprender a usá-las. O Vim é diferente, seus atalhos são estranhos, sua interface é basicamente só texto e você precisa digitar i para começar a escrever.

O Vim não cabe na sua cabeça. Ele fornece muitas possibilidades para que o usa. O editor é totalmente configurável e existem diversas maneiras de estendê-lo através de plugins. São tantas coisas novas e são tantas opções que um novo usuário fica facilmente perdido.

Por que muita gente ainda usa o Vim se ele é tão mais difícil que os outros editores? Eu acredito que depois de um bom tempo usando o editor, o que era estranho vai se tornando natural. Outro motivo importante é a customização, ao longo do tempo os usuários vão ajustando o Vim de acordo com suas necessidades e ele passa a funcionar melhor que qualquer outro editor poderia funcionar. 

Dominar o Vim leva tempo, ele é muito complicado para ser absorvido rapidamente. Isso é verdade em muitos casos, mas eu resolvi tentar uma abordagem diferente na hora de usá-lo. Eu estou tentando limitar o uso das funcionalidades, focando no que é mais importante, para que eu consiga aprendê-las. Se eu leio como fazer 100 coisas diferentes no Vim e depois vou tentar fazer, com certeza eu vou esquecer grande parte do que eu li antes mesmo de usar. Além disso, estou customizando o Vim e aprendendo alguns truques para tornar o seu uso muito mais simples.

Eu compartilharei tudo aqui no blog. Mostrarei plugins interessantes e como usá-los de forma eficaz, configurações que vão ajudar a fazer o seu trabalho de forma mais rápida e alguns truques aprendidos. Espero ajudar a todos que assim como eu gosta da interface minimalista do Vim, sabe do poder do editor, mas sempre se sentiu repelido por toda sua complexidade.

Veja os posts da série:

18 de agosto de 2010

Less talk, more make


Ilustração de Jen Collins

16 de agosto de 2010

Menos e-mail, mais tempo.

A duas semanas atrás eu resolvi fazer uma experiência. Eu era daqueles que ficava com o Gmail aberto quase sempre. Mesmo odiando alertas que me atrapalhavam muito eu continuava sempre deixando uma aba do Gmail no navegador, a qualquer momento eu clicava e via minha inbox. Minha experiência consistiu em checar o e-mail apenas algumas vezes ao dia e depois fechar a aba do navegador.

Eu já ouvi muitas pessoas recomendado não checar os e-mails como a primeira atividade do dia. Eu decidi seguir essa sugestão. Eu sempre resolvia alguma coisa antes de verificar minha inbox. O bom de tudo isso era que eu não me preocupava com e-mails que poderiam ter chegado antes de resolver algo importante. Eu simplesmente fazia algo que tinha que ser feito, sem ficar pensando em outra coisa.

Durante o dia eu passei a checar o e-mail aproximadamente de 2 em 2 horas. 9:00, 11:00, 14:00, 16:00, e mais uma ou duas vezes a noite. Esses horários não eram exatamente fixos.

O motivo principal para ficar com o e-mail sempre aberto era não perder nada urgente, toda informação chegava e eu acompanhava em tempo real. Entretanto, durante essas duas semanas, checando o e-mail de 2 em 2 horas eu não perdi nada, não existiam e-mails urgentes que precisassem de uma resposta tão rápida. Pensando bem, dificilmente existirão. Eu ainda acredito que se esse intervalo fosse maior eu também não perderia muita coisa. Isso trouxe um certo alívio, eu não preciso me preocupar muito com os e-mails.

Checar menos minha inbox me trouxe bem mais tempo e o mais importante foco no que eu estou fazendo. A aba do Gmail tinha algo que atraía meu mouse, principalmente se tivesse um número indicando e-mails não lidos.

A primeira semana da experiência foi meio incômoda. Eu frequentemente tinha vontade de olhar os e-mails, mas eu sempre me policiava e acaba evitando abrir. Já na segunda semana foi ficando mais fácil e eu várias vezes esquecia que estava chegando o horário de ver minhas mensagens.

Com certeza eu vou continuar com essa sistema de checagem de e-mails e pretendo aumentar o intervalo de tempo entre um login e outro no Gmail. Quem tá precisando se concentrar essa é uma dica boa: feche o seu e-mail.

11 de agosto de 2010

Ir_black, tema para o Vim

O ir_black é um tema com background escuro e cores agradáveis para o Vim que eu passei a usar a pouco tempo. Eu o encontrei perdido num blog, ele não está listado no site oficial do editor.

Python:


















HTML:



C:










Latex:










Faça o download do tema ir_black.

9 de agosto de 2010

Carregando conteúdo dinamicamente enquanto move a barra de rolagem

Sites como o facebook e orkut usam um efeito muito interessante de carregamento de conteúdo de acordo com a posição da barra de rolagem. O site carrega apenas uma parte dos dados e quando o usuário vai descendo a barra de rolagem o site se encarrega de pegar mais dados no servidor para exibir.

O efeito é simples de fazer e muito útil, pois o servidor não precisará carregar todos os dados de uma só vez. Para fazer isso utilizaremos o JQuery.

Vamos utilizar o código HTML abaixo, os estilos foram colocados direto no código apenas para fins didáticos, não façam isso.


<html>
  <head>
    <title>yLog Scroll Tutorial</title>
  </head>
  <body>
    <div id="content" style="width:120; height:100px; overflow-y:scroll;">
      <ul style="position: relative;">
        <li>item 1</li>
        <li>item 2</li>
        <li>item 3</li>
        <li>item 4</li>
        <li>item 5</li>
        <li>item 6</li>
        <li>item 7</li>
        <li>item 8</li>
        <li>item 9</li>
        <li>item 10</li>
      </ul>
    </div>
  </body>
</html>

Ao abrir esse HTML no navegador aparecerá uma lista de itens com uma barra de rolagem. O que queremos é que ao rolar a barra até o fim novos itens apareçam. Para carregar conteúdo dessa forma usa-se AJAX, nada muito complicado, mas a maior dúvida é como saber se a barra chegou ao final.

Primeiro importe o JQuery, adicione a linha abaixo entre as tags <head></head>. É uma boa prática importar ele direto do Google.


<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script>

Existe um evento chamado "scroll", nome mais óbvio impossível. Vamos usar ele para fazer algo quando a barra for rolada. Adicione esse código logo abaixo a linha que importa o JQuery.

<script>
  $(document).ready(function() {
    $("#content").scroll(function() { 
      //fazer algo aqui
    });
  });
</script>

Com os métodos scrollTop() e height() é possível saber o quanto foi rolado e a altura da div, mas essa não é a altura total, ela é a altura apenas do que está sendo exibido. Para saber o tamanho total da div é necessário usar a propriedade .scrollHeight. Com esses três valores é possível fazer o cálculo para saber se a rolagem chegou ao fim. O quanto foi rolado somado a altura de exibição da div será igual ao tamanho total da div quando a barra de rolagem chegar ao final. No código isso seria: $(this).scrollTop() + $(this).height() == $(this).get(0).scrollHeight.

Atualizando nosso script:

<script>
  $(document).ready(function() {
    $("#content").scroll(function() { 
      if ($(this).scrollTop() + $(this).height() == $(this).get(0).scrollHeight) {
        // a rolagem chegou ao fim, fazer algo aqui.
      }
    });
  });
</script>

Dentro do if você só precisa usar AJAX para pegar os dados do servidor. Ficaria algo mais ou menos assim:


<script>
  $(document).ready(function() {
    $("#content").scroll(function() { 
      if ($(this).scrollTop() + $(this).height() == $(this).get(0).scrollHeight) {
        $.ajax({
          type: "post",
          url: "/maisitems/",
          success: function(data) {
            //manipula os dados
            $("#content ul").append("<li>" + item + "</li>");
          },
          error: function() {
          }
        });
      }
    });
  });
</script>


O código completo do HTML + Javascript fica assim:


<html>
  <head>
    <title>yLog Scroll Tutorial</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script>  
    <script>
      $(document).ready(function() {
        $("#content").scroll(function() { 
          if ($(this).scrollTop() + $(this).height() == $(this).get(0).scrollHeight) {
            console.log("fim");
            $("#content ul").append("<li>item x</li>");

            $.ajax({
              type: "post",
              url: "/maisitems/",
              success: function(data) {
                  //manipula os dados
                  $("#content ul").append("<li>" + item + "</li>");
              },
              error: function() {
              }
            });
          }
        });
      });
    </script>
  </head>
  <body>
    <div id="content" style="width:120; height:100px; overflow-y:scroll;">
      <ul style="position: relative;">
        <li>item 1</li>
        <li>item 2</li>
        <li>item 3</li>
        <li>item 4</li>
        <li>item 5</li>
        <li>item 6</li>
        <li>item 7</li>
        <li>item 8</li>
        <li>item 9</li>
        <li>item 10</li>
      </ul>
    </div>
  </body>
</html>

Espero que tenham gostado dessa dica. Se necessário gravem esse código final, ele pode ser útil.