CFD, Linux e vim
Quem usa amplamente o CFD, usa cluster. Quem quer grande eficiência no uso do cluster, usa GNU/Linux. E quem usa GNU/Linux, usa o vim.
A questão que fica é que nem sempre quem estuda/usa CFD conhece o suficiente do GNU/Linux para lidar corretamente com as ferramentas de terminal. Tudo bem, todo mundo tem sua curva de aprendizado, e é verdade que o terminal, mesmo não sendo complicado, não é o melhor lugar para começar a aprender.
E o problema fica por conta do fato de que clusters nem sempre possuem interface gráfica. Ou possuí interface gráfica, mas você sempre trabalha via ssh, o que nem sempre fornece uma velocidade de conexão agradável se você for abrir três/quatro programas gráficos para utilização remota junto com outros 20 usuários fazendo a mesma coisa. O outro problema é que na nossa área não são raros os usuários do windows que fazem o acesso a clusters com linux via terminal, o que raramente permite uma fácil conexão gráfica (eu realmente sugiro que instale uma distribuição linux para trabalhar com CFD). Por essas e outras não mencionadas, conhecer o terminal do GNU/Linux é fundamental para quem usa CFD.
Tenho certeza de que todos rapidamente aprenderam a listar os arquivos com o ls, a copiar arquivos com o cp, a mover arquivos com o mv, a mudar de diretório com o cd. Mas e editar um arquivo ? O que você faz ?
Existem três opções aqui. Copiar o arquivo para sua máquina de trabalho, modificar e voltar o arquivo para o lugar (isso nem sempre é possível, porque as vezes queremos editar o arquivo que controla a solução do seu problema que está atualmente rodando no cluster, qualquer erro aqui pode ser faltal). Utilizar um aplicativo gráfico remotamente para editar o arquivo (nem sempre é possível por motivos já mencionados) ou editar o arquivo com um editor de terminal (o que é sempre possível).
Ficaria impressionado se eu dissesse que os melhores editores de texto são os feitos para o terminal ? Pois é, parece contraditório, mas não é. Reza a lenda (bem próxima da verdade) que são os editores utilizados por 10 entre 10 dos maiores programadores do mundo. E entre eles temos o vim.
O vim é um dos mais poderosos editores de texto do mundo. Eu costumo dizer que é um sistema operacional disfarçado de editor de textos. Seus inúmeros recursos mal podem ser listados, de tão numerosos e valiosos que são. Devem ser experimentados, para perceber a mesma coisa que eu percebo quando preciso editar um texto e meu instinto abre o terminal para usar o vim, mas não abre o gedit. E ainda conta com inúmeros plugins fazem quase tudo que uma pessoa precisa para sobreviver diante de um computador.
Quer a melhor parte ? O Sergio Luiz Araújo Silva, o autor do VIVAOTUX, lançou um livro em português sobre o vim. Você pode ajudar a melhorar ele, enviando sugestões e correções, ou até, para o caso de quem já conhece bem o vim, enviando novas dicas. O livro é um projeto colaborativo. Também foi criado um grupo em torno do livro para unir quem deseja colaborar com o mesmo diretamente, você também pode ajudar divulgando o livro e o grupo.
De qualquer forma, eu considero um livro obrigatório para qualquer um que utiliza linux para resolver CFD, especialmente, para os usuários do OpenFOAM. E um livro muito importante para qualquer um que queira aprender um pouco mais sobre o GNU/Linux.
A questão que fica é que nem sempre quem estuda/usa CFD conhece o suficiente do GNU/Linux para lidar corretamente com as ferramentas de terminal. Tudo bem, todo mundo tem sua curva de aprendizado, e é verdade que o terminal, mesmo não sendo complicado, não é o melhor lugar para começar a aprender.
E o problema fica por conta do fato de que clusters nem sempre possuem interface gráfica. Ou possuí interface gráfica, mas você sempre trabalha via ssh, o que nem sempre fornece uma velocidade de conexão agradável se você for abrir três/quatro programas gráficos para utilização remota junto com outros 20 usuários fazendo a mesma coisa. O outro problema é que na nossa área não são raros os usuários do windows que fazem o acesso a clusters com linux via terminal, o que raramente permite uma fácil conexão gráfica (eu realmente sugiro que instale uma distribuição linux para trabalhar com CFD). Por essas e outras não mencionadas, conhecer o terminal do GNU/Linux é fundamental para quem usa CFD.
Tenho certeza de que todos rapidamente aprenderam a listar os arquivos com o ls, a copiar arquivos com o cp, a mover arquivos com o mv, a mudar de diretório com o cd. Mas e editar um arquivo ? O que você faz ?
Existem três opções aqui. Copiar o arquivo para sua máquina de trabalho, modificar e voltar o arquivo para o lugar (isso nem sempre é possível, porque as vezes queremos editar o arquivo que controla a solução do seu problema que está atualmente rodando no cluster, qualquer erro aqui pode ser faltal). Utilizar um aplicativo gráfico remotamente para editar o arquivo (nem sempre é possível por motivos já mencionados) ou editar o arquivo com um editor de terminal (o que é sempre possível).
Ficaria impressionado se eu dissesse que os melhores editores de texto são os feitos para o terminal ? Pois é, parece contraditório, mas não é. Reza a lenda (bem próxima da verdade) que são os editores utilizados por 10 entre 10 dos maiores programadores do mundo. E entre eles temos o vim.
O vim é um dos mais poderosos editores de texto do mundo. Eu costumo dizer que é um sistema operacional disfarçado de editor de textos. Seus inúmeros recursos mal podem ser listados, de tão numerosos e valiosos que são. Devem ser experimentados, para perceber a mesma coisa que eu percebo quando preciso editar um texto e meu instinto abre o terminal para usar o vim, mas não abre o gedit. E ainda conta com inúmeros plugins fazem quase tudo que uma pessoa precisa para sobreviver diante de um computador.
Quer a melhor parte ? O Sergio Luiz Araújo Silva, o autor do VIVAOTUX, lançou um livro em português sobre o vim. Você pode ajudar a melhorar ele, enviando sugestões e correções, ou até, para o caso de quem já conhece bem o vim, enviando novas dicas. O livro é um projeto colaborativo. Também foi criado um grupo em torno do livro para unir quem deseja colaborar com o mesmo diretamente, você também pode ajudar divulgando o livro e o grupo.
De qualquer forma, eu considero um livro obrigatório para qualquer um que utiliza linux para resolver CFD, especialmente, para os usuários do OpenFOAM. E um livro muito importante para qualquer um que queira aprender um pouco mais sobre o GNU/Linux.
boa dica! eu só acrescentaria também o vim tips, um site com idéias e truques praticamente inesgotáveis de como utilizar melhor seu editor favorito; abraço!
ReplyDeleteAchei o Mitre em seu habitat, super computação, adicionei o RSS para acompanhar esta saga :)
ReplyDeleteSérgio,
ReplyDeleteseja bem-vindo !
[ ]'s
Só para manter a tradição "geek holy war":
ReplyDeletePrefiro o Emacs!
O vi possui dois modos de operação: o que fica bipando e o que destrói tudo.
Já o Emacs é quase um sistema operacional completo. Só falta um bom editor de textos. :)
Well,
ReplyDeleteeu deixei subentendido que existia mais de uma opção interessante, a outra é o emacs.
Eu também já gostei do emacs, mas ele apresenta alguns problemas. Um você mencionou, ele é um sistema operacional completo, tão impressionante que o modo de edição é complexo.
O outro é a popularidade em clusters. Não me pergunte o motivo, mas o fato é que você sempre acha o vi, mas nem sempre acha o emacs.
Mas vamos deixar essa guerra de preferências de lado !!!
[ ]'s
Daniel,
ReplyDeletecomo eu disse, é esse o ponto. O gosto e habilidade ficam pouco importantes frente a necessidade.
Eu também considero o emacs muito mais complexo de aprender (trocando em miúdos, é um editor com uma curva de aprendizado muito mais aguda do que o vim). Imagina ter que explicar isso a um aluno de iniciação científica que nunca sequer usou linux para apenas descobrir que também terá de ensinar o vim, porque o emacs não está instalado !
Quanto ao guia novatec, eu tenho vários desses, mas nunca vi um de "vim"; vou dar uma procurada.
1[ ]
vi != vim
ReplyDeletePois é, Daniel, eu ia dizer exatamente o que o anônimo disse, mas não tive tempo ontem...
ReplyDeleteO vi é diferente de vim. Contudo, eu fico muito confuso quando vejo um guia assim.
O motivo é simples, o vi é muito pouco usado no linux. O comando vi é um atalho para outro aplicativo. Na maioria das ditros, para o vim, em outras, para o pico ou o nano (o vi tradicional mesmo nem é encontrado).
Eu também não tenho certeza do quanto um guia de vi se aplica no vim, mas acho que é muito. O inverso é que é pouco. É claro que o título pode ser uma jogada de propaganda e, na verdade, ser um guia de vim (visto que o vi em si é um programa em desuso)
De qualquer forma, é interessante saber que existe um guia rápido com esse tipo de conteúdo.
Um abraço
Só mais uma dica: De tempos em tempos vocês terão novas versões neste link --> http://code.google.com/p/vimbook/downloads/list
ReplyDeleteÉ que o projeto está recebendo modificações diárias. :)