1.17.2011

Las herramientas que uso

Una de las cosas interesantes del desarrollo es ver como trabajan los demás. Es difícil sentarte al lado de un desarrollador y no aprender ese pequeño truco o herramienta, siempre hay algún detalle que te puede servir o que puedes aportar, así que voy a comentar las que uso a diario y me hacen la vida más fácil.

Fundamentalmente uso Linux y OSX, aunque prácticamente uso las mismas herramientas en ambos. Aparte de las que todos conocemos, grep, ls, cp, mv... mis favoritas son las siguientes:

- vim: lo uso como único editor. No sé si será el mejor, pero usar el mismo editor para todo tipo de fichero es realmente eficiente.

- tmux: es una herramienta que permite tener varias terminales virtuales dentro de una. Es similar a GNU screen. Permite además conmutar rápidamente entre terminales (ctrl-b + NUM o ctrl-b + l), partir la pantalla vertical y horizontalmente (muy útil por si ejecutas un comando y quieres ver la salida de un tail -f).

- ack-grep: es un grep con esteroides, te saca las búsquedas coloreadas, ignora las carpetas .git .svn y demás especiales. Fundamental si eres programador

- git svn: es una parte de git, pero es tan útil para trabajar contra servidores subversion... :)

- gitk y gitg en linux, gitx en osx: son herramientas gráficas para ver las historia de un repo git, la mar de útiles cuando quieres ver los commit, hacer diffs y demás.

- rsync: espectacular herramienta para sincronizar ficheros entre carpetas, sobretodo entre diferentes máquinas.

- curl: para hacer peticiones web, permite hacer test, revisar las cabeceras (con -I, confieso que no puedo evitar echar un ojo a las cabeceras de los servidores web)

- ab (apache benchmark), para ir teniendo idea de las reqs/s, tiempo de respuesta, etc que tiene la applicación web.

- fabric: es una herramienta para automatizar tareas en servidores y permite hacer cosas un poco más complejas que con un simple ssh. Junto con bash y rsync automatizar es un gusto :P.

- firebug y web developer tools de chrome

- ipython: consola python con esteorides

Últimamente estoy probando vagrant (para gestionar máquinas virtuales), cada día trato de hacer músculo con vim, usar más los trucos de bash...

7 comentarios:

Vicente dijo...

Yo desarrollo para .NET sobre Windows, así que... :p

- Microsoft Visual Studio 2010 Ultimate: la versión Ultimate además de un editor trae muchas cosas integradas (profiler, testing, modelado,...).

- Productivity Power Tools: las power tools para VS2010, añaden cosas bastante útiles al IDE.

- Microsoft StyleCop: una herramienta que da warnings/errores sobre el estilo del código al compilar. Para evitar las infinitas discusiones de si espacios o tabs y similares y que todo el mundo programe parecido.

- Submain Ghostdoc: para generar los comentarios para la documentación XML de forma automática.

- TortoiseHg: trabajamos con Kiln, así que este es el cliente que usamos para el control de código fuente.

- FogBuzz for Visual Studio: para ver que marrones tenemos asignados.

- Redgate .NET Reflector: para descompilar código .NET.

- Redgate SmartAssembly: para ofuscar código .NET.

- SQL Management Studio: para administrar las BBDDs de SQL Server y SQL CE.

- Microsoft Virtual PC: para las máquinas virtuales (aunque nos vamos a pasar a VMware).

Y creo que eso es todo, un saludo!

Vicente

Unknown dijo...

Yo desarrollo por completo para Windows, actualmente intentando saltar también a XBox360 (XBLIG).

En casa, mas orientado al tema de juegos:
- Microsoft Visual Studio 2010 Express for Windows Phone, programando en C#
- Microsoft XNA Game Studio 4.0, para el desarrollo multimedia y multiplataforma entre Windows, XBox360 y Windows Phone 7.
- Notepad++, para edición rápida de documentos (XML principalmente).
- Dropbox, para el tema de tener los proyectos y documentos a mano desde cualquier equipo de mi red y entre distintos compañeros de trabajo.

En el trabajo, mas orientado al maravilloso mundo de la banca:
- Microsoft Visual Studio 2008 Profesional, Visual Basic .NET como lenguaje de programación (hasta hace dos años era Visual Basic 6.0)
- Microsoft EXCEL 2003, para trabajar con el formato mas "genérico" que usan en el banco y como motor de cálculos para ciertos desarrollos y tareas.
- Microsoft ACCESS 2003, como sistema de base de datos local/servidor y puente con EXCEL para trabajar ciertos datos u origen de datos (mi reino por un SQL Server!)
- Visual Basic for Applications (VBA), como "scripting" de puente entre los módulos de Microsoft Office y las aplicaciones .NET que desarrollamos (una joya, vamos [/ironic]).
- Notepad++, para manipular formatos como CSV delimitados por comas, archivos de texto por posición y longitud, y esos formatos tan de moda que se usan en bancos.

Sobre las herramientas, en el tema laboral no elijo yo las herramientas (ya me gustaría :P), en el personal, ahora mismo son las que mejor conozco (Visual Basic 6.0 son los padres :P) y en un futuro la idea seria usar Unity3D y Mono como plataforma de desarrollo para Mac OS X y Windows conjuntamente y quizás web, obviamente, todo orientado al desarrollo de juegos o multimedia.

Pues eso, creo que no me dejo nada interesante que mencionar salvo lo placentero que es trabajar con EXCEL y ACCESS :P

Salu2...

JM dijo...

Yo trabajo en Mac, así que ahí va:

- XCode para desarrollar en Objective-C para iphone/ipad

- Eclipse para desarrollo Java (J2EE y Android)

- Comandos típicos de consola: tail, top, grep, find, curl, etc.

- BBEdit como el notepad de Mac

- gitx y svnx como clientes git y svn (junto con kdiff3 para diffs y conflictos)

- Firefox + firebug + Modify headers para temas web.

Nada del otro mundo (:

Saludos!

Bosco dijo...

* Yo soy pythonero que viene del mundo java, así que uso Eclipse para todo (con pydev para desarrollo python, con WST para HTML, CSS y Js..., subclipse para la gestión del SVN)
* Fabric para el deploy
* Ubuntu al 99% (el 1% es para hacer pruebas con el amigo Explorer)
* Firebug en FF y JS.Companion para Explorer (una especie de firebug)
* Y poca cosa más, son un tío sencillo

Bosco dijo...

Ah!!!!! Y assembla como gestor de proyectos (wiki, svn, tickets, burndowns...) http://www.assembla.com/

PpluX dijo...

Que bueno el tmux javi!

En linux a nivel de gestor de ventanas tienes algo similar, muy práctico si tienes X y quieres hacer lo mismo de multiplexar pero con aplicaciones gráficas: i3

http://i3.zekjur.net/

el galgo dijo...

Soy desarrollador php. Trabajo en linux y con git, emacs y bash tengo el mundo a mis pies. Jajajaja. Son herramientas muy potentes, muy sencillas, y sobre todo, muy fáciles de usar. Un poco de customización y tu productividad se hace exponencial!

Saludos para todos.