Meme originado en Inbitado de José "Hiro" Kusunoki, rebotado hacia mí por Arturo Goga, y bueno, luego de tanta buena lectura en su blog lo mínimo que puedo hacer es responder, asi que aquí va mi top5:
1) Linux/FreeBSD
Empate técnico en sistemas operativos (que también son programas): Linux lo uso en todos mis desktops y hasta en mis dispositivos móviles, FreeBSD va en todos mis servidores (ayer nomás instalé un firewall con el nuevo FreeBSD 7).
2) Python
Python. Amor a primera vista, es posiblemente el lenguaje mas conciso, elegante y balanceado que he usado. Maduro, con infinidad de librerías, frameworks y aplicaciones, es hoy en día lingua franca en el mundo del Open Source. Una de las ventajas del lenguaje es que la mayoría de sus usuarios son programadores profesionales, a diferencia por ejemplo de ser sysadmins (perl) o diseñadores gráficos (ruby), por lo que en promedio el código de las aplicaciones es de mucho mayor calidad. Tengo la suerte de tener un trabajo en el que me pagan por programar en Python, asi que va en mi lista de aplicaciones indispensables.
3) Vim
Para alguien que vive en UNIX, la elección de un editor de texto tiene una connotación religiosa, algo que los usuarios de sistemas inferiores jamás entenderán. vi es parte de POSIX 1003.2 asi que tengo la garantía que lo encontraré en cualquier *NIX. El clon que uso, vim, es el mas popular en este momento y es bastante extensible con plugins. He publicado mi .vimrc y bufman.vim, un plugin de manejo de buffers. Y recientemente (hace un par de años) me he vuelto adicto a project.vim. Un color scheme? el default, pero cuando me siento aventurero uso metacosm.
Al menos una vez al año me paso una semana probando otros editores, incluido emacs, que lamentablemente no puedo usar ya que no tengo 45 dedos. De los editores gráficos me gustó mucho la versión profesional de Komodo IDE, pero al igual que TODOS los editores en modo GUI tiene 2 problemas:
a) A primera vista tienen infinidad de características, pero no llegan a la riqueza de vi o emacs
b) No lo puedo usar en un shell remoto
4) OpenSSH
Este no es un blog (tan) nerd, asi que este sea posiblemente el programa mas "raro" de la lista, pero OpenSSH es un software con el que simplemente no podría trabajar tranquilo: encripta todo el tráfico de red con el que trabajo. Es gracias a OpenSSH que puedo dormir en las noches, y las características de forwarding hacen que hasta el día de hoy me salgan lágrimas de emoción.
5) bash
Mi habitat natural es el shell de UNIX, y el shell de mi elección es bash. Lo uso a diario y sin él mi vida sería totalmente distinta: nunca me acostumbré a csh y mis coqueteos con zsh no llegaron a mayores. En combinación con screen se crea una relación simbiótica imbatible y que uso los 365 días del año.
tags: linux, freebsd, python, vim, openssh, bash, screen
As a developer I have been searching an editor or IDE that could adapt to every need I could have. This search has been frustrating and not productive. Finally I have accepted the fact that there is no tool that will accomplish what I expected so now I work with a combination of utilities and editors.
Normally my developer time is spend in Linux, there I use gVim or vim. Sometimes when I have to work from home or a client I do it on my laptop that runs Windows Vista. There I recently have been using Komodo Edit. In the search for the perfect IDE I have seen ActiveState Komodo IDE tons of times, but it is available freely only as a Demo. Now ActiveState has released Komodo Edit completely for free and it comes with a set of features that covers my needs.
Also Komodo Edit can be extended using xpi files (the same as Mozilla Firefox and Thunderbird). And there is a community site where you can find this extensions. There are few extensions available now, but when the userbase grows I'm sure they will grow in number.
The features I use more or love more are autocomplete, the calltips, the Django syntax highlighting, block ident/unident, block comment/uncomment, and the multi-edit capability. Even though the space in the laptop screen is reduced (13" compared to the 19" + 19" + 17" that I use at my desktop), I can navigate with very little effort through all my code.
There is even a vim emulation mode! I haven't tried it yet, but for heavy vi users it could be a choice if you wish to explore other editors. There is a linux version but for now I still prefer to use only gVim. It is enough.
So the search is over for now, maybe in a couple of months I will go back to the search of the perfect tool, but for now I think I can use this tools and be productive enough.
We are working at a client adapting an already developed project so they can do their work with it. The project was developed using django, first with 0.91, then with 0.95, now we are going to use svn trunk. So one of the things that we are using, and a lot, is just plain search and replace. I am currently developing a lot on my Vaio Laptop, using Windows Vista as OS, and Komodo Edit as editor. It has great Find and Replace capabilities, well really i don't know if that could be complicated.
So, the server is a Centos 4, some problemas with the drivers didn't allow us to use our classic FreeBSD, we are still dealing with the issues of using python 2.3 instead of 2.4 which we are used to. So that and the trunk thing are the main reasons to do a lot of searching and replacing.
A great deal of deveolpment is done at a workstation, there it was easy to follow the GUI and just point and click. In Centos it is another story, I use vi or vim normally, even at my workstation at Aureal I use gvim and I love it. But the thing I never learned was to search and replace using plain vi commands. To make things worse I have, like, 2 or 3 points of experience out of 100 in sed. So I knew that it had to be a similar syntax, the classic:
:s/oldstring/newstring/g
So I tried that, but no, it worked only to replace the oldstring in the current line, that was not what I wanted. So once again google knows it all. It gave me the simple and expected answer in the first returned link. It confirmed that the above string just replaces oldstrings in the current line. But, as vi is a great great editor, you can give the command more parameters, so I learned that you could pass a range of line numbers to apply the search and replace, so I just thought that I could use something like this:
:1,$s/oldstring/newstring/g
On a side note, I just recently learned that the $ means "last line". That really helps a lot! But it turns out that there is a shorter way to write this using:
:%s/oldstring/newstring/g
So the % would be equivalent to "1,$".
And thats it, I just learned that this week. And it is useful! I know, for a developer with 3 years of experience not knowing that would be like a sin, but I just never need it like a did today.






