1 de dezembro de 2010

Mudança de servidor

O yLog está de mudança. Nos próximos dias pretendo começar todo o trabalho de migrar do Blogger para o Wordpress. Já andei pesquisando e já preparei o novo tema (ele deve evoluir com o tempo) para o blog.

Dois motivos foram fundamentais para essa mudança. O primeiro é que eu sempre quis ter um controle maior sobre o site. O Blogger é bom e evoluiu muito com o tempo, mas não tem todo o poder de customização do Wordpress. O segundo motivo é ter espaço para hospedar alguns projetos meus de menor porte com mais facilidade.

Espero que a migração ocorra sem muitas dificuldades, mas fiquem cientes que alguns problemas com formatação de posts e com links deve acontecer. Eu peço que se acharem algo errado entrem em contato comigo via e-mail (contato at yurimalheiros dot com) e twitter. Espero que gostem das mudanças :)

30 de novembro de 2010

Experimentos de autodidatismo de Sugata Mitra

O TED talk do Sugata Mitra "The child-driven education" me chamou bastante atenção. O cientista conta sua experiência na realização de uma série de experimentos com crianças nos quais ele deixava elas aprenderem sozinhas usando um computador conectado à Internet. Os resultados são incríveis.

Isso tudo mostra ainda mais a capacidade da rede mundial de computadores e do conhecimento inserido nela por milhões de usuários. É estúpido limitar o acesso à Internet para os estudantes e achar que ainda hoje se deve aprender apenas sentando numa cadeira, olhando para um professor e fazendo provas.

É preciso ensinar a pescar o conhecimento ou talvez nem isso, a própria Internet ensina tudo, basta tempo e interesse.

Assistam o vídeo abaixo da apresentação do Sugata Mitra.

22 de novembro de 2010

Construindo a Biblioteca de Babel

A Biblioteca de Babel é um conto do escritor argentino Jorge Luis Borges. Nele Borges descreve uma biblioteca que possui livros com todas as combinações possíveis de letras, espaços e sinais do pontuação. Obviamente na biblioteca existe uma imensa quantidade de livros sem sentido, mas ela também possui todos os livros já escritos em qualquer que seja a língua e todos os livros que ainda serão escritos!

Imaginar o tamanho físico dessa biblioteca foge a capacidade da minha imaginação, no máximo posso dizer que seria algo infinitamente grande. O trabalho de procurar um livro revolucionário nesse espaço todo valeria a pena? Quantos homens não morreriam tentando encontrar apenas um livro que fizesse sentido na Biblioteca de Babel?

Se você não pode achar não adianta, ou numa versão atual, se não está no Google não existe. O conteúdo da Biblioteca de Babel é descomunal, assim como o conteúdo da Internet.

Qualquer pessoa pode escrever um blog e publicar seus textos? Quanta besteira não vai surgir. Algumas pessoas reclamavam disso tempos atrás, talvez reclamem até hoje. Mas da mesma forma que a biblioteca de Borges tinha muito lixo e os livros mais brilhantes, a Internet também tem muita coisa que pode ser jogada fora e materiais tão brilhantes que não existiriam se as pessoas não tivessem a capacidade produtiva que a tecnologia atual permite.

Então parem de reclamar do ruído.

Diferente da Biblioteca de Babel o conteúdo da Internet é digital e manipulável. Com isso nós conseguimos extrair ordem a partir do caos. Agradecimentos especiais ao Google e redes sociais.

Imaginem se a Biblioteca de Babel fosse indexada e filtrada. Não teríamos palavras para descrever os resultados disso. Então vamos continuar fornecendo cada vez mais meios de publicação para as pessoas, não é ruim que elas estejam gerando conteúdo na Internet a todo momento, estamos construindo nossa pequena Biblioteca de Babel. Mas também vamos trabalhar para não acabarmos na inutilidade da biblioteca fictícia de Borges, afinal, ninguém quer morrer antes de concluir uma pesquisa na Internet, muito pelo contrário, nós queremos cada vez mais resultados relevantes e relacionados de uma maneira fácil e em pouco tempo.

17 de novembro de 2010

Produtividade para quê?

Existe uma busca constante por uma maior produtividade pelos trabalhadores, temos tantas coisas para fazer e tão pouco tempo para nossas atividades que ser muito produtivo se tornou fundamental. Existem vários métodos espalhados em blogs, livros, etc, que tentam ajudar as pessoas que parecem não ter tempo suficiente para o que querem fazer.

Você já parou para pensar o motivo da busca por mais produtividade? O ponto principal é ter mais tempo, é comum reclamar do tempo, do dia com 24 horas.

Para que ter mais tempo? Para trabalhar ainda mais? Se antes era possível entregar um projeto em uma semana você agora quer entregar três projetos no mesmo espaço de tempo? Isso não funciona muito bem.

O que eu percebo é que é possível sim realizar um trabalho em muito menos tempo se você seguir algumas técnicas, mas dificilmente você conseguirá manter o ritmo altamente produtivo durante o dia todo.

Então o que fazer?

Você ganhará tempo sendo produtivo. Se um trabalho levava três horas para ser feito e você termina em uma, agora você tem duas horas livres. Se sua mente não consegue manter o ritmo altamente produtivo pelas três horas, então aproveite para fazer outra coisa. Sua vida não é só trabalho.

A produtividade não serve para você ter mais tempo para preencher com mais trabalho, ela serve para você ter mais espaços vazios para fazer atividades diferentes. Serve para você passar o feriadão desligado e não se preocupar com o que tem que fazer no dia útil seguinte, pois você sabe que terá tempo. Serve para você ter tempo para se exercitar, para desenvolver um hobby e para se relacionar com pessoas. Serve para você ter mais tempo para você.

12 de novembro de 2010

O navegador antissocial

Essa semana muitos sites de tecnologia nacionais e internacionais anunciaram o lançamento do RockMelt, um navegador social. Nele você se conecta e interage facilmente com seus contatos através das redes social.

Wow! Que massa... err, não.

Isso me levou a brincar no Twitter dizendo que ia desenvolver um navegador anti-social, no qual você apenas podia trabalhar, nada de procrastinar.

Apesar do tom de brincadeira, o que eu disse faz todo sentido. Muitas vezes nós queremos simplesmente trabalhar. Imagine se a todo momento no trabalho você além de fazer suas tarefas também fique conversando com três colegas. Acho que ninguém faz isso ou pelo menos ninguém que queira terminar o que tem que fazer. 

Conversas reais ou virtuais são interrupções que vão te atrapalhar durante o trabalho. Da mesma forma que é bom se concentrar num ambiente real, também é bom se concentrar no computador. Pensando assim o navegador anti-social poderia ser bem mais útil que o RockMelt.

O navegador social me parece apenas um caso de evolução da tecnologia apenas por que ela pode evoluir, não importando a real utilidade. Se é possível integrar redes sociais no browser então vamos fazer, mas será que as pessoas precisam disso?

Isso não é raro, muitos desenvolvedores adoram criar algo apenas por ser possível ao invés de tentar criar algo que seja útil mesmo que ele não saiba a viabilidade.

5 de novembro de 2010

Lei de Parkinson

A primeira vez que eu li algo sobre a Lei de Parkinson foi no best-seller escrito por Tim Ferriss, The 4-Hour Workweek. Essa lei foi enunciada pelo inglês Cyril Northcote Parkinson na revista The Economist em 1955. A Lei de Parkinson diz que "o trabalho se expande para preencher o tempo disponível para ser concluído".

As vezes é difícil acreditar na Lei de Parkinson, principalmente se você pensar que não seria necessário trabalhar 8 horas por dia pra terminar seu trabalho, talvez em 6 horas ou 4 horas você também conseguisse terminar com um resultado satisfatório.

Eu quero passar nesse post uma experiência que eu tive e que no final eu lembrei da Lei de Parkinson, tudo se encaixou perfeitamente no seu conceito.

Mês passado abriram as inscrições para o doutorado no Centro de Informática (CIn) em Recife. Eu tinha praticamente um mês para juntar toda a papelada necessária e escrever um projeto. Era bastante coisa, mas quase 30 dias eram mais que suficientes.

Um passo de cada vez eu fui resolvendo o que precisava, eu gosto de fazer as coisas assim, mas quando faltava pouco mais de uma semana algumas pendências foram aparecendo e nada era resolvido. Algumas dúvidas que eu tinha sobre a inscrição ninguém sabia resolver, meu orientador parou de responder meus emails (depois eu descobri que ele estava viajando e com acesso precário a internet), entre outros problemas menores.

Como eu tinha quase 30 dias para fazer tudo eu expandi meu trabalho durante todo aquele tempo. Mas quando eu vi que faltavam algumas coisas e apenas um dia para encerrar as inscrições, não teve jeito eu fui atrás para resolver as pendências. Não sei se consegui fazer o melhor trabalho possível, o que eu sei é que no último dia tudo se resolveu.

Por que isso aconteceu? Será que como todo brasileiro eu gosto de deixar as coisas para a última hora? Muito pelo contrário, eu tinha mais de 90% do que precisava pronto com uma semana de antecedência, mas como ainda tinha tempo eu deixei o trabalho se alongar. Tenho certeza que se eu tivesse uma semana a menos eu teria concluído a tempo também. É a Lei de Parkinson.

Não se dê prazos tão longos achando que isso será bom, você precisa de limites para fazer algo acontecer.

3 de novembro de 2010

Curva de evolução de um software






















(fonte da imagem)


Quem não conhece um software que passou por isso?

27 de outubro de 2010

Memória global e as eleições

Há algum tempo atrás eu escrevi três posts numa série chamada Memória Global (somos produtores de conteúdo, acessando a memória da grande rede, o que podemos esperar) sobre o mundo de informações que temos hoje na Internet e como as pessoas interagem produzindo e procurando o que querem na rede. Dessa vez eu resolvi retomar o tema voltado às eleições.

Nesse post você não vai ler críticas ou elogios a nenhum candidato, quem me segue no Twitter deve saber quem eu apoio, mas esse não é um assunto para esse blog.

A mídia em geral forma a opinião de muita gente. O que você escuta na televisão e o que você lê numa revista ou na Internet é importante para que você reflita e defina o que acha sobre um determinado assunto.

A mídia não é imparcial, por mais que eles afirmem o contrário. Não importa de qual lado esteja, sempre alguém vai colocar um pouco de si mesmo numa notícia, mesmo sem querer. Na maioria das vezes isso não é ruim, mas a preguiça de pensar pode fazer você simplesmente aceitar uma opinião como verdade absoluta.

Durante as eleições os candidatos tentam convencer os eleitores que eles têm o melhor projeto para o país, estado, cidade, etc. Além dos candidatos a mídia também fala bastante sobre as eleições e dado que não existe ninguém imparcial, a mídia de certa forma também faz campanha.

Em quem acreditar? Se ninguém é imparcial as chances dos discursos serem moldados para favorecer alguém é grande. São muitos fatos e dados, é difícil checar tudo, ninguém faz isso.

É aí que a Internet pode nos ajudar. Não dizem que a memória do eleitor é fraca? É verdade, mas a memória da rede é forte, muito forte.

Eu vou propor uma atividade simples para vocês. O Google tem uma opção para procurar em um determinado intervalo de datas. Experimentem procurar por temas relevantes a eleição em datas anteriores. Assim você pode ver quais eram as notícias publicadas nos governos anteriores. O melhor, notícias publicadas por diferentes veículos, você pode verificar a opinião de diferentes pessoas sobre assuntos dos governos passados.

A memória da Internet não falha, está tudo gravado e você pode procurar.

É dificil esconder as coisas na grande rede. Como disse Eric Schmidt, “If you have something that you don’t want anyone to know, maybe you shouldn’t be doing it in the first place.” Isso serve especialmente para vocês políticos. Seus erros e acertos estão agora gravados na Internet. Com o maior uso da banda larga e com a melhoria na educação vai ficar mais difícil mentir, pois qualquer cidadão vai poder conferir o que vocês dizem checando o passado na memória da grande rede.

22 de outubro de 2010

Enganando o usuário

Esse mês eu tive a (péssima) oportunidade de pegar dois computadores com o Windows praticamente zerado para instalar algumas aplicações importantes. Como "cara da informática" eu as vezes faço uma boa ação ajudando familiares próximos com problemas nos computadores.

Durante o processo de instalação dos programas algo começou a me incomodar bastante.

Qual é a desses instaladores que praticamente te forçam a instalar um monte de crapware junto com eles? É fácil para mim ou para vocês usuários mais experientes desmarcar o checkbox que já vem marcado por padrão e não instalar várias porcarias no computador, mas pense no seu pai, mãe, avô ou tio. Eles vão clicar "next" e instalar aquela toolbar no navegador.

É uma filosofia toda ao contrário. O software é uma ferramenta que deveria te ajudar a fazer alguma coisa, não te atrapalhar com adwares e toolbars.

Isso também acontece com os sites na Internet só que de uma maneira diferente. Vocês já viram sites "ad oriented"? O principal objetivo de um site assim é fazer você clicar numa propaganda duvidosa, o conteúdo é secundário.

Eu estou criticando as propagandas? Sim. Que tipo de usuário vai para um site querendo propagandas?

Isso é enganar o usuário. Você quer apenas instalar um programa para editar uma foto, não duas toolbars. Você quer ler um texto interessante na web, não ficar procurando onde é o link para ir para o resto do texto no meio de várias propagandas maliciosas.

As empresas precisam de dinheiro, eu sei, mas um fabricante desse tipo de software está fazendo o mesmo papel de um comerciante enrolão que vende pseudo-vantagens ou que te empurra goela abaixo produtos que você não precisa.

Vocês também acham que algo está muito errado?

20 de outubro de 2010

Grant Blakeman - Minimalismo



Eu acho que encontro o meu espaço negativo quando estou me exercitando também, é um momento do dia onde eu esqueço muita coisa e me concentro apenas no que eu estou fazendo. E vocês, já encontraram os seus espaços negativos?

15 de outubro de 2010

Apresentação crua

Semana passada eu dei uma palestra que tinha uma caracteristica um pouco diferente das que eu costumo apresentar. Ela não precisava de muitos recursos visuais, era mais como um conselho de irmão mais velho ou simplesmente uma conversa.

Eu rabisquei um pouco para tentar montar os slides de partes importantes dos assuntos que eu iria abordar. Eu tive algumas ideias boas, mas no final eu percebi que aquilo nada acrescentava a palestra. Meus slides iam no máximo mostrar que eu sabia montar slides bonitos e só. 

Então eu resolvi experimentar algo que eu tinha em mente, tentar trazer o foco da apresentação ainda mais para mim mesmo. Eu pensei em não usar slides, mas não fui tão radical. Meu slides consistiam apenas de uma ou duas palavras apenas para deixar claro o que eu estava falando. Foi uma apresentação crua.

O que aconteceu? Deu certo?

Pelo que eu percebi deu sim. A atenção das pessoas foi grande. É fácil notar as reações da platéia durante uma apresentação. Eu também tive a ajuda de alguns colegas que deram feedbacks e que confirmaram o que eu tinha notado.

Essa apresentação só veio confirmar o que eu já acreditava. Uma boa apresentação não depende necessariamente de slides super bem feitos, o mais importante é quem fala lá na frente. É possível fazer toda uma apresentação sem um computador, mas nunca sem boas palavras.

13 de outubro de 2010

Especialmente mediano

Todo mundo quer ser especial. Todo mundo quer deixar sua marca no universo. Alguém já disse bem alto que queria ser apenas mais um no meio da multidão e fazer apenas as mesmas coisas que todos fazem durante a vida? Talvez sim, não sei. Mas as pessoas gostam mesmo de gritar que querem mudar o mundo.

O Fabio Akita fala muito bem sobre média, seus posts e palestras que abordam o assunto são fantásticas, por isso eu assumo que o que você vai ler abaixo é fortemente inspirado pelo que eu aprendi com ele e também com outras pessoas.

Quando você era criança você era mais ou menos criativo que atualmente? Mais? Acho que essa deve ser a resposta mais comum. É conhecido que as crianças não tem medo de experimentar, fazendo um monte de besteira é verdade, mas sem deixar de serem criativas.

Quando a criatividade começa a diminuir? Quando você vai crescendo. Especialmente quando você entra na escola. Uma das grandes matadoras da criatividade e incentivadoras da média.

Crianças com roupas iguais, com professores iguais, estudando os mesmos assuntos que talvez elas precisem no futuro. Muitas vezes sendo apenas treinadas para passarem num vestibular. É uma grande celebração à média!

Muita gente não sabe, mas a palavra medíocre é definida como mediano, ou seja, na média. Pode procurar no dicionário. Estamos todos sendo moldados a mediocridade? É, parece que sim.

Isso nos leva a uma contradição grande. Como ser especial se todas as forças tentam transformar a criança criativa num adulto medíocre?

Dane-se o comum. Quer fugir da média? Seja bom no que você gosta de fazer, ou melhor, seja muito bom para que as pessoas te notem. Para descobrir o que fazer tente chegar na interseção dos três conjuntos abaixo:




Se você quer fazer parte da média a sociedade te recebe muito bem. Bem melhor que se você tentasse fugir do molde. Mas se você quer fazer algo relevante, então pense bem no seu estado atual e se questione sempre para não acabar caindo na inércia de fazer mais do mesmo sempre.

6 de outubro de 2010

Aprendizado ativo

Até hoje para parte da população o consumo de informações se baseia em ler jornais e revistas e assistir televisão. O consumo de conteúdo é feito passivamente. As pessoas aceitam o conteúdo selecionado por outras pessoas e compilados em um espaço limitado, seja ele de folhas de papel ou de horários da grade de programação.

Felizmente isso está mudando muito. Com a Internet saímos de uma posição passiva para uma posição onde procuramos o que queremos ler, ouvir e assistir. Entretanto isso não é realidade para todo mundo, no Brasil apenas 24% dos domicílios estão conectados a Internet (Pesquisa TIC Domicílios 2009).

Já no ensino parece que as coisas não mudaram muito. Até hoje temos aulas onde os alunos consomem informações passivamente. Todos sentados com um professor falando. Isso é estranho.

Na industria do entretenimento temos casos reais de empresas que estão fazendo sucesso oferecendo conteúdo por demanda. O Netflix, por exemplo, oferece filmes que podem ser alugados e assistidos pela Internet. Já o seu concorrente físico, a Blockbuster, pediu concordata.

E o ensino?

Existem iniciativas fantásticas por toda rede. A Khan Academy que possui centenas de aulas gratuitas sobre diversos temas, o Youtube EDU que traz aulas de grandes universidades dos EUA e o TED com palestras incríveis sobre assuntos variados. Tudo isso em vídeo. Além de milhares de pessoas que produzem conteúdo textuais para ensinar.

Pessoas conectadas a Internet podem ter acesso a conteúdos fantásticos em qualquer lugar do mundo a qualquer hora.

Nós nunca fomos tão independentes quanto ao aprendizado. Tudo depende cada vez mais apenas de você, pois a disponibilidade de conteúdo para alguém no Brasil, EUA, Japão, Alemanha, etc. é basicamente a mesma.

Se você quer aprender programação, desenho, jardinagem, como cozinhar ou quais os melhores exercícios para uma certa parte do corpo, é só procurar isso no Google, está tudo na Internet. Eu aprendi a programar em Python apenas usando material encontrado na Internet. O mesmo aconteceu com diversos outros assuntos relacionados a informática e também a desenvolvimento pessoal. Eu não precisei esperar a televisão exibir um programa ou algum professor me ensinar na sala de aula.

Nós estamos vivendo uma mudança de paradigma, onde você pode aprender o que quiser por que gosta ou precisa e não por que os seus professores acham que você precisará no futuro. Não estou descartando a importância dos professores, eles são e sempre serão importantíssimos para sociedade, mas talvez boa parte deles precise rever a forma de conduzir as aulas numa era onde os alunos tem o acesso a informações ilimitadas. Os professores não deveriam se sentir ameaçados pela Internet, eles deveriam aproveitar a tecnologia para trabalhar melhor certos conteúdos.

O maior acesso a banda larga implica rapidamente em um maior acesso a informação. Por mais que ela possa ser subutilizada as vezes, com o tempo as pessoas amadurecem e passam aproveitar o conhecimento disponível na grande rede. Uma população bem informada é muito melhor que uma de ignorantes.

4 de outubro de 2010

Receba atualizações via e-mail

Eu já li em vários lugares que muitos leitores costumam acompanhar blogs pelo e-mail. Eu não sei se isso se aplicará aos leitores desse blog, mas como a grande maioria dos acessos aos textos que eu escrevo são feitos por RSS e acreditando que esses são os leitores mais fiéis e importantes, eu resolvi disponibilizar essa outra maneira de acompanhar as atualizações do blog.

O ícone do e-mail lá no topo ao lado do ícone do RSS agora leva o usuário a tela para cadastro de e-mail para receber atualizações, antes esse ícone tinha um link direto para o meu e-mail. Minhas informações para contato agora podem ser acessadas no menu contato.

Espero que assim as pessoas que não usam RSS possam também acompanhar o blog mais facilmente pelo e-mail.

1 de outubro de 2010

Minimal Vim - Estética

Quem diz que desenvolvedores não se importam com o visual das aplicações está muito enganado. Eu não quero ficar olhando para um editor feio enquanto trabalho e acho que você também não. Ainda bem que o Vim tem um visual minimalista muito bonito.

Atualmente eu estou usando o tema Molokai, mas existem outros que também deixam o editor muito bem esteticamente. Além do Molokai os temas Ir_black e Mustang me agradam bastante. Todos usam um background escuro que cansa menos a vista.

Para carregar um tema sempre que o Vim iniciar adicione a seguinte linha ao .vimrc:

colorscheme molokai

Nesse caso o tema molokai é carregado, para usar outro tema mude o nome molokai para o do tema desejado.

Para ativar o syntax highlight adicione ao .vimrc:

syntax on

O Vim irá colorir todos os arquivos adequadamente usando o tema de cores que você escolheu. O editor suporta uma grande quantidade de tipos de arquivos, dificilmente você ficará sem cores ao abrir algum arquivo de código fonte.

Uma modificação que raramente eu vejo em tutoriais pela Internet para melhorar o visual do Vim é aumentar um pouco o espaçamento entre as linhas. Para isso adicione ao .vimrc:

set linespace=3

Você pode tentar outros valores diferentes de 3 para ver o que mais agrada.

No post minhas configurações eu mostrei como esconder o menu e o toolbar do GVim. Vou repetir aqui o que deve ser adicionado ao .vimrc para diminuir a poluição visual do editor:

set guioptions-=m
set guioptions-=T

A primeira linha esconde o menu e a segunda a toolbar.

Com essas configurações o Vim além de funcional ficará bonito, mais bonito que muito editor considerado user-friendly.

Screenshot do meu vim:


29 de setembro de 2010

27 de setembro de 2010

Information junkie

Information Junkie é alguém que frequentemente está ocupado recebendo informações, e as vezes enviando, como um vício. Normalmente essa expressão é usada para pessoas que passam o dia navegando na Internet.

Usar a Internet para se comunicar e colher informações para mim não é ruim. Na verdade a Internet é um meio incrível de comunicação que deve ser explorado. O problema é quando a navegação começa a não fazer sentido e você passa a navegar apenas por navegar.

E-mail, RSS, Twitter, Orkut, Facebook, você preciso verificar sempre tudo isso? Definitivamente não. O tempo livre obtido por evitar se manter 100% atualizado a toda hora pode ser usado para outras coisas, como o trabalho que você deveria fazer e outras atividades que você goste e se divirta realizando.

Entretanto há uma contradição interessante nessa história de information junkie. Existem muitos casos, me incluo neles, de pessoas que descobrem que estão se tornando viciados em informação justamente por que lêem muito e em algum momento encontram um texto parecido com esse. Eu achava bonito dizer que ficava com o Gmail aberto o dia todo.

Talvez seja uma tendência natural. Você entra em diversas redes sociais, assina vários RSS, acompanha listas de discussão, entre outras coisas, para saber sempre das notícias mais quentes e para acompanhar o que outras pessoas interessantes pensam. Depois você descobre que de nada adianta ler muito e não produzir nada ou não ter tempo livre.

É possível que meu post seja um entre os 1000+ não lidos no seu Google Reader. Se for, comece a pensar bem em reduzir suas fontes de informações, elas já passaram do limite. Quem sabe até você não precise ler esse blog, sério, se o que escrevo não estiver sendo útil para você pode cancelar a inscrição, eu não vou ficar chateado :)

O importante é perceber que algo está errado e depois mudar para se sentir livre deixando de ser escravo das suas fontes de informação.

24 de setembro de 2010

Minimal Vim - Pathogen, organizando os plugins

Os scripts instalados no Vim ficam todos num mesmo diretório, no Linux o ~/.vim ou no Windows o c:/vimfiles. Dentro dele os scripts são separados de acordo com o seu tipo. Existe uma pasta para scripts que definem a sintaxe de uma linguagem, outra pasta para plugins que cuidam de funcionalidades de um determinado tipo de arquivo, etc.

Essa organização parece boa, mas muitos plugins espalham seus arquivos por vários desses diretórios. Em pouco tempo, ao instalar diversos plugins, a maior bagunça é criada.

Também não é muito prático atualizar os seus plugins. Hoje é comum encontrar scripts do Vim no github, não seria muito bom poder baixar o repositório e atualizar seus scripts pelo git?

Pensando nesses problemas foi criado o Pathogen, ele melhora o gerenciamento dos plugins e facilita a atualização e integração com repositórios. 

Faça o download do pathogen aqui: http://www.vim.org/scripts/script.php?script_id=2332

Para instalar coloque o arquivo na pasta autoload dentro de ~/.vim.

Também é necessário editar o .vimrc. Coloque as seguintes linhas no início do arquivo de configurações:

filetype off
call pathogen#runtime_append_all_bundles()

A primeira linha é necessária para fazer o pathogen funcionar corretamente em algumas distribuições. A segunda carrega os scripts usando o pathogen.

Os plugins agora devem ficar cada um na sua pasta, eles não se misturam mais. Crie um diretório bundle dentro de ~/.vim e para cada plugin você deve criar uma pasta dentro de bundle, por exemplo, para o plugin Command-T crie uma pasta commandt dentro de bundle e coloque todos os seus arquivos dentro.

Você agora pode baixar código de repositórios para dentro da pasta bundle, assim é possível atualizar os plugins com apenas um comando de acordo com o controle de versão que estiver sendo usado.

Apagar um plugin também fica mais simples, basta deletar sua pasta dentro de bundle. Você não precisa mais procurar todos os arquivos que estariam espalhados pelas diversas pastas do ~/.vim.

Se você tinha muitos plugins instalados sem o uso do pathogen vale a pena gastar um tempinho para organizá-los, fica muito mais fácil gerenciar tudo com o pathogen.


Veja outros posts da série Minimal Vim:

22 de setembro de 2010

17 de setembro de 2010

Minimal Vim - Localizar e substituir

A busca do Vim é excelente. Ele possui uma das melhores pesquisas incrementais que eu já usei e operar a busca apenas pelo teclado torna tudo ainda mais rápido. Por isso, dessa vez, não vamos usar nenhum plugin externo, apenas comandos nativos.

Antes de começar a ensinar como usar a busca do Vim vamos adicionar algumas configurações importantes ao .vimrc:

set incsearch
set hlsearch

A primeira linha ativa a busca incremental e a segunda ativa o destaque dos resultados da pesquisa, ou seja, todas as ocorrências da busca ficam marcadas com outra cor.

Para iniciar uma busca, no modo normal, pressione / e comece a digitar. Você já pode ver o resultado enquanto digita, afinal essa é uma pesquisa incremental. Para finalizar a busca pressione Enter.

A navegação pelos resultados é feita usando os atalhos n para ir para o próximo resultado e N (shift-n) para ir para o resultado anterior.

Um atalho bastante útil é o *, colocando o cursor sobre uma palavra e pressionando essa tecla no modo normal o Vim procurará ocorrências dessa palavra.

A substituição do Vim é muito poderosa, assim como todo o editor ela é um verdadeiro canivete suiço. Aqui vamos aprender o suficiente para a maioria dos casos, não é muito útil aprender mais meia dúzia de opções que raramente você utilizará, para isso temos ótimas referências espalhadas pela Internet ou até mesmo o help do Vim. Minha intenção nunca foi fazer um guia completo, a série Minimal Vim funciona como um filtro trazendo o mínimo de comandos para a maioria das tarefas, meu objetivo é fazer o Vim caber na sua cabeça.

A substituição no Vim é feita usando o comando s. Vejamos um exemplo com o caso mais usado para substituições:

:%s/original/modificada/gc

Vamos analisar cada parte do comando.

  • % define que a substituição será feita no arquivo todo.
  • s (substitute) é o comando de substituição.
  • /original após a primeira "/" fica o texto original que será substituído.
  • /modificada após a segunda "/" temos o texto que substituirá o original.
  • g (global) define que todas as ocorrências, não apenas a primeira de cada linha, serão substituídas.
  • c (confirm) o Vim perguntará se você deseja substituir cada ocorrência, sem essa opção todas as substituições são feitas automaticamente.


Quando o Vim pede a confirmação de uma substituição várias opções aparecem, são elas: y, n, a, q, l, ^E e ^Y. As mais importantes são:

  • y (yes) confirma a substituição.
  • n (no) pula a ocorrência atual e não substitui.
  • a (all) substitui todas as ocorrências.
  • q (quit) cancela a substituição.


Os comandos são bem intuitivos.

Isso é o essencial de pesquisa e substituição, eu raramente preciso usar algo mais complexo. Se você quiser aprender mais sobre esse assunto eu aconselho o Vimbook, mas use-o apenas como referência ou se você já for um usuário avançado, ler um livro tão grande para começar a usar o editor não é uma boa ideia.


Veja outros posts da série Minimal Vim:


15 de setembro de 2010

Se você não pode explicar de forma simples...


Você não é mais inteligente por usar linguagem rebuscada e linhas de raciocínio complexas. Qual o objetivo de ensinar se poucos entenderão?

13 de setembro de 2010

Respondendo e-mails com 3 frases.

Muitos e-mails na inbox nos deixa estressado. É ainda pior quando, mesmo respondendo vários e-mails todos os dias, o número de mensagens não lidas só aumenta. Zerar a inbox pode ser muito difícil.

O projeto Three Sentences, ou a versão brasileira criada pelo Augusto do Efetividade, Três Frases, traz como solução para agilizar o ato de responder os e-mails a diminuição drástica do tamanho da resposta. Você deve responder todos os e-mails com apenas 3 frases, sem que isso diminua a qualidade da sua resposta.

Talvez isso não resolva todos os seus problemas com sua inbox, mas pelo menos amenizará. Com certeza você vai conseguir responder um número maior de mensagens.

A ideia é boa, definir uma restrição desse tipo nos força a mudar a abordagem que costumamos usar. Se você tem problemas de acumulo de e-mails vale a pena tentar. Eu particularmente não uso nenhuma técnica específica, felizmente eu resolvi meus problemas com e-mails a algum tempo, eu apenas mantenho minhas respostas curtas. Talvez eu responda com três frases, ou quem sabe menos, ou um pouco mais. O importante é não enrolar, é bom para você que escreve e bom para quem recebe a mensagem.

PS: Um haiku, poucas palavras e muito conteúdo.
None is travelling
Here along this way but I,
This autumn evening. 
(Matsuo Basho)

10 de setembro de 2010

Minimal Vim - Alternando entre buffers

O Vim separa diferentes documentos abertos em buffers. A primeira vista quando você abre um novo documento ele parece sobrescrever o arquivo anterior, mas na verdade foi criado um outro buffer e o arquivo que você estava editando anteriormente continua aberto. Não existe nenhuma indicação clara que mais de um arquivo está aberto, isso pode parecer ruim, mas a interface limpa sem abas ou barras laterais acaba sendo algo positivo.

Procurando a melhor solução para alternar entre os buffers eu primeiro testei os comandos nativos do Vim. Existem vários, algumas configurações no .vimrc talvez os tornassem mais práticos, mas o fato de existirem diferentes comandos para listar e abrir os buffers me fez procurar alguns plugins que facilitassem essa tarefa.

O popular plugin BufExplorer foi a melhor solução que eu encontrei. Ele é fácil de usar e não acrescenta nenhuma poluição visual a interface. O Vim continua limpo como ele deve ser.

Faça o download do BufExplorer aqui: http://www.vim.org/scripts/script.php?script_id=42

Para instalar apenas extraia o arquivo no ~/.vim, se você estiver no Linux, ou c:/vimfiles, se você for usuário do Windows.

O comando para acessar o BufExplorer é o :BufExplorer, mas não é prático digitar isso toda vez que for necessário mudar para outro arquivo. Vamos criar um atalho no .vimrc, ctrl+b abrirá o BufExplorer:

nnoremap <c-b> :<c-u>BufExplorer<cr>

O BufExplorer toma toda a tela com a lista dos buffers abertos. Seu uso é muito simples. Para mudar para um arquivo basta colocar o cursor na sua linha e pressionar enter. Grande parte do uso do do BufExplorer se resume a pressionar ctrl+b, usar as setas para cima e para baixo para escolher o buffer e pressionar enter. Para fechar um buffer pressione d e para sair do BufExplorer use a tecla q.

Existe ainda um atalho padrão do Vim que eu uso bastante, o ctrl+6. Ele alterna para o último buffer editado. É uma funcionalidade simples que pode ser usada para alternar rapidamente entre dois arquivos.

Experimente os atalhos aos poucos, mesmo com o meu esforço para reduzir o número de comandos necessários para usar o Vim, apenas a prática vai fazer o uso do editor ser natural. Continuem acompanhando a série Minimal Vim, pratiquem e adaptem o que foi aprendido às suas necessidades.

Veja outros posts da série Minimal Vim:


8 de setembro de 2010

3 de setembro de 2010

Minimal Vim - Copiar, colar e recortar

Eu poderia reduzir as operações de copiar, colar e recortar aos conhecidos ctrl+c, ctrl+v e ctrl+x usados em praticamente todas as aplicações que conhecemos, mas os atalhos diferentes do Vim, nesse caso, ajudam bem mais que as simples operações que estamos acostumados.

Para selecionar um texto no Vim você precisa entrar no modo Visual, pressione v no modo normal, depois basta apenas movimentar o cursor para selecionar o que deseja. Você também pode usar shift+v para selecionar uma linha inteira.

Com o texto selecionado você pode copiar ou recortar a seleção. A tecla y de yank é usada para copiar o texto e a tecla d de deletar para apagar o que estiver selecionado. Não existe exatamente uma opção para recortar, entretanto ao deletar qualquer texto com o atalho d ele fica disponível para ser colado, então ele funciona como a conhecida operação de recortar. Para colar, o atalho é p de paste, o texto é colado imediatamente após o cursor. Esse comportamento é um pouco diferente dos editores comuns, pois no Vim o cursor fica em cima da letra e não antes ou depois de um caracter.

No Vim é possível copiar e recortar uma ou várias linhas inteiras de uma só vez com apenas um comando. Isso é muito útil e não é necessário entrar no modo Visual. Para copiar uma linha inteira vamos usar o atalho yy e para recortar uma linha inteira dd. Para copiar mais de uma linha o atalho é (número de linhas)yy, ou seja, 5yy copia a linha atual mais as quatro abaixo, totalizando cinco linhas. O mesmo pode ser usado para deletar as linhas, 3dd deleta três linhas. Na hora de colar também é possível usar um número antes do atalho, com isso a operação é repetida de acordo com ele, por exemplo, 5p cola o conteúdo cinco vezes.

Copiar, colar e recortar no Vim é ótimo, o único problema é a interação com outras aplicações, esses comandos não se comunicam bem com o mundo externo. Para colar texto vindo de outra aplicação o atalho é shift+insert (no modo de Inserção) e para copiar para fora do Vim temos um atalho bem complicado, o "+y. shift+insert é um bom atalho, mas o de copiar para fora do programa é complicado e pouco prático, por isso vamos criar um novo atalho para essa operação no .vimrc.

Adicione essa linha no arquivo de configuração:

vnoremap <C-Insert> "+y

Agora o atalho ctrl+insert pode ser usado para copiar texto para fora do Vim.

Outro motivo importante para não usar ctrl+c e ctrl+v é que o segundo é um atalho importante do Vim. Eu falarei sobre ele em breve.

1 de setembro de 2010

Internet e educação por Isaac Asimov

O vídeo abaixo é de 1988, a Internet não era nada parecida com o que temos hoje.



"As pessoas não param de fazer coisas que gostam apenas porque elas atingem uma certa idade." (Isaac Asimov)

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.