12 Utilidades absolutamente y esencialmente enfermizantes para programadores
En todas las épocas de los últimos tiempos ha habido una profesión que por un momento se podía entrar sin una capacitación formal. Autodidactas en el siglo 19 sabían leer la ley sin recurrir a una educación formal (véase Abraham Lincoln). A comienzos del siglo 20 fue la aviación. Por un tiempo corto en la década de 1980 y principios de 1990, fue la informática, gracias a la liberación de los Apple IIe, la PC IBM y el Mac.
Si no fuera por el Windows® de oportunidades, pensaría qué hubiera sido de mí. (Oye, viejo, ¿puedes darme un céntimo?) Pero tuve mucha suerte, cuando me puse serio acerca de aprender a programar, todo lo que necesitaba era un libro en el 8088 y un libro sobre C, y estaba todo listo para Rock and Roll.
Por mucho que me encantaba el código, 30 años más tarde, hay algunos aspectos que odio:
- Haciendo una tarea mundana más de una vez
- No recuerdo cómo arregle este problema en el pasado
- Perder el trabajo por discos malogrados o estúpidas revisiones irreversibles
- No ser capaz de encontrar las diferencias sutiles en los archivos de texto.
Por lo tanto, mis 12 utilidades esenciales….
Antes de comenzar
Supongo que tienes (y usas)…
- Visual Studio 2010
- Expresión – como mínimo Expression Blend y, probablemente, Expression Encoder
- Windows 7
- El hardware esencial para ejecutarlo
- Todo el software para desarrollo necesario disponible aquí
Si no, deja de leer esta lista y ve por ellos.
Aunque yo trabajo en Windows y Mac, esta lista está totalmente centrada en Windows.
1. ReSharper o CodeRush
Después de charlar con quien estaba gritando al PDC en la distancia, puedo decir que hay casi un acuerdo universal entre todos los programadores profesionales en todo el mundo (o al menos gritos a la distancia) que tener CodeRush o ReSharper es esencial. .
La polémica es ¿Cual es cuál es mejor? Este es el tipo de pregunta que puedes lanzar en una presentación técnica y luego sentarse y disfrutar de horas de diversión ensordecedora. (Otras preguntas incluyen C# vs VB.)
Ambos ReSharper y CodeRush son complementos de Visual Studio que enormemente mejoran tu productividad y calidad de tu código. Lo hacen de maneras grandes y pequeñas, pero las tres que me parecen fundamentales son:
- Hacer muy fácil refactorizar el código
- Reducir radicalmente la cantidad de escritura que tienes que hacer.
- Búsqueda de errores y código superfluo.
Es decir, se escribe menos y terminas con un mejor código. Agradable. Ninguno es gratis, pero tener por lo menos uno es esencial.
2. Fiddler y FireBug
Fiddler registra todos el trafico HTTP y HTTPS entre tu computadora e Internet. Puedea inspeccionar los datos registrados como si se tratara de un depurador, y lo más importante que tiene un sistema de scripting y es extensible con C# (o cualquier otro lenguaje .NET). Incluso mejor, Fiddler es gratuito y funciona en IE, Firefox, y casi todos los otros navegadores.
Firebug es la herramienta más popular de desarrollo web, única, y por buenas razones. Con ella, puedes inspeccionar en tiempo real y modificar HTML en una página web, hacer uso del sorprendentemente potente Javascript debuger y obtener mediciones detalladas y el perfil de actividad de la red. No salgas de casa sin él.
3. Tortoise SVN
Si estás en una PC y estas programando, entonces debes, debes! utilizar el control de versiones. Microsoft hace un gran sistema de control de versiones, y si compras la versión correcta de Visual Studio lo obtienes de forma gratuita. Yo uso SVN, porque yo lo hice y hago un montón de trabajo para plataformas cruzadas y de código abierto, y svn es la lingua franca del control de código fuente (a pesar de mantener un ojo en Regalo!).
Si estás en un PC y deseas SVN como tu control de versiones, entonces, el árbol de decisión tiene un solo nodo: Tortoise SVN – es gratis, GPL y funciona como una extensión del shell por lo que no es intuitivo. Crea un directorio, Check out a la última versión y ponte a trabajar. Cada vez que quiero hacer más empiezo con Update y termino con Commit.
Los principales beneficios de control de versiones son:
- Los archivos se respaldan
- Los cambios son una copia de seguridad para que pueda decidir ir a una iteración anterior después de que estropeaste el código.
- Anteriores Releases están disponibles para pruebas según sea necesario
- Si más de un programador está trabajando en diferentes partes del código, el control de versiones permite poner las piezas juntas de una manera sana.
Debo mencionar que yo no uso SVN sólo para el código fuente, sin también para mis documentos y para mis presentaciones. Tener controlado la versión de diapositivas de PowerPoint es una cosa terrible.
Si desea mucho la misma funcionalidad, pero integrado en Visual Studio, echale un vistazo a Visual SVN. 50 dólares es razonable, pero no es gratis.
Recientemente he encontrado un cliente SVN brillante, increíblemente potente y fácil de usar de plataforma cruzada: Syncro SVN 6. Sólo he empezado a usarlo, pero hasta el momento es el mejor cliente SVN que he visto, especialmente para Mac, donde los buenos clientes SVN son escasos. Me gusta especialmente la concesión de licencias, que es por usuario, y así se te invita a ponerlo en tu máquina Windows, Mac y Linux, siempre y cuando se utilice sólo uno a la vez. Agradable. El cliente parece estar a la venta con el 40% de descuento, por lo que lo estoy comprando, mientras escribo esto.
4. TimeSnapper
Cada gran científico mantiene un libro de laboratorio, en el que anote todo lo que hace. Esto es fundamental, por lo que cuando algo cambia se puede determinar lo que sucedió. Durante años he pensado que sería genial tener un libro de registro para que pudiera volver atrás y averiguar qué diablos había sucedió para estuviera de esta manera el código aquí
Estoy feliz de decir que este problema se reduce en gran medida impulsado por el desarrollo dirigido por pruebas. Pero no se elimina por completo.
Con los años he tratado una serie de enfoques, y al igual que todas las dietas en la lista best-seller, que funciona a la perfección hasta que dejas de hacerla, lo cual siempre sucede. Trate con:
- Creación de un registro de mi trabajo en un equipo HP pre-net-top
- Creación de un registro que se ejecutan en un segundo equipo
- Uso de software de dictado para capturar un comentario corriente
- Grabación en video de mi trabajo
Cada intento terminó en la ignominia.
Luego vino TimeSnapper. Este pequeño programa se sitúa en el fondo y toma una fotografía de lo que estás haciendo, tan seguido como lo desees, a cualquier resolución que necesites. Todo es configurable, pero yo puse el mío a grabar sólo la aplicación activa, el ahorro de cada imagen como jpg, con 100% de resolución (75% de resolución proporciona una imagen en 3/4 del tamaño original), y el 75% de calidad (puedo ver la diferencia). Di instrucciones a TimeSnapper para tomar una imagen cada 5 segundos y para salvarlas a 10 días vale la pena.
La primera vez que intente este programa, muchas revisiones hacia atrás, en un equipo lento, encontré que se estaba disminuyendo el rendimiento al Visual Studio. En la actualidad, se ejecuta en una máquina moderna (Windows 7 corriendo en Parallels 5 en un Mac 4 Quad con 8 Gigas de memoria y un par de rápidas unidades terabyte) veo la degradación de la velocidad a cero, pero active su nueva característica «usar muy baja prioridad» para asegurarme.
Las imágenes varían en tamaño dependiendo del tamaño de la ventana, pero dedicando todo el monitor de cine al Visual Studio, probablemente promedie las instantáneas más grandes en su mayoría. Dicho esto, cada 5 segundos = 720 por hora. Un poco menos como yo lo digo no para guardar una imagen nueva si no ha cambiado nada, y si estoy fuera de la máquina virtual que se encuentra inactiva. Dicho esto, las imágenes del rango más de 100K, por lo que mi peor de los casos es de 7200 imágenes en un momento del día, 10 días = 72.000 imágenes a 100 KB cada una = 7,200,000,000 bytes o 7.2GB, que es una miseria.
Entre las cosas que puedes hacer con TimeSnapper es decir que lo que cuenta como trabajo productivo, y se informe sobre cualquier período de tiempo que desees. Puedes crear informes de tiempo, y todo tipo de cosas divertidas, pero la característica matadora es que puede reproducir cualquier parte de tu día como una película, y más de una vez puedes ver como haces algo asombrosamente estúpido.
5. Instant VB….
Instant VB es de Tangible Software. Que apunte a una aplicación de C#, espere un nanosegundo o dos, y hey! ¡Listo! tienes una aplicación VB. Sí, es una sola moneda, pero es un infierno de un truco! También venden una variedad de otros convertidores (VB a C#, C++ a Java, y muchos otros)
Cuando termina, Instant VB proporciona el directorio de tu programa original, el programa convertido o para lanzar el programa de conversión. Agradable.
Me gustan porque hacen un gran producto increíblemente que sigue mejorando, porque son gente extraordinariamente buena y porque listaron mí no solicitado testimonio en primer lugar.
6. ExamDiff Pro
De lejos la mejor comparación y combinación de programas que he visto nunca. Puede comparar carpetas (recursivamente o no) o versiones de los archivos, pero lo que hace ExamDiff Pro a pie es que se puede utilizar nada más al sacarlo de la caja – la interfaz de usuario es muy intuitiva, o se puede ajustar decenas (¿cientos?) de configuraciones para satisfacer tus necesidades particulares (¿quieres tener en cuenta dos archivos diferentes, si hay cambios en la cantidad de espacio en blanco en las líneas?)
PrestoSoft ofrece la versión gratuita ExamDiff y la versión mejorada hasta ExamDiff Pro. El precio marcado en su sitio para la versión Pro es «$34 o menos.» Su sitio web es excelente, ofreciendo una amplia información, capturas de pantalla y tutoriales – todo desde «Cómo comparar los archivos» a través de «Cómo hacer caso omiso de los números de línea en archivos de texto.»
He colocado esta imagen donde puse los archivos uno encima del otro en vez de lado a lado para hacer la imagen legible (aunque mejor si hace clic en ella para verla a tamaño completo). Cada diferencia es identificada, el resumen le muestra lo que tienes que hacer para hacer los archivos iguales, y puede utilizar las flechas para migrar el cambio de un archivo a otro, o editar directamente en los archivos sobre la marcha. Se hace mucho más, así como, su manejo de carpeta recursiva y diferencias entre los archivos es brillante, lo que le permite encontrar y corregir todos los cambios en dos soluciones completas de software.
Yo habitualmente sustituyo la comparación de archivos y la combinación de mi control de código fuente con esto, ya que ofrece una más clara, más rápida y más fácil de usar interfaz de usuario.
7. AutoHotkey
No me gusta escribir lo mismo una y otra vez y me olvido de TSRs (¿la edad suficiente para saber lo que eran?). AutoHotkey resuelve este problema y muchos otros. Puede crear sustituciones simples o secuencias de comandos complejos ligados a las teclas calientes. Se puede utilizar para reasignar su teclado, ejecutar scripts, crear menús y formularios. Yo sólo lo uso para dos cosas simples:
-
La sustitución de macros. Si escribo @jl se expande al instante a jliberty@microsoft.com (agrego el signo sólo para tener una señal constante para mí, a AutoHotkey no le importa la sustitución. Esta es la línea en el script causa la sustitución instantánea:
:*:@Jl::jliberty@microsoft.com
Los dos puntos iniciales comienzan la línea. El asterisco * dice «sustituir de inmediato, no esperar a un espacio.» Los dos puntos segundo y tercero contiene la macro y los dos puntos finales comienzan el texto de sustitución.
-
Rápida corrección de errores. Hay algunas palabras que nunca debe escribir mal. He aquí un extracto de mi archivo de corrección AutoHotkey:
::Sliverlight::Silverlight ::Silvelright::Silverlight ::silverlight::Silverlight ::iPhone::Windows Phone 7 ::Stacy::Stacey</li>
Por lo tanto, sé que al escribir Sliverlight tan pronto como golpeó el espacio sería corregido por Silverlight.
Como se ha señalado, hay mucho más que puedes hacer, y afortunadamente se trata de un muy bien elaborado archivo de ayuda. Aún mejor, AutoHotkey es gratuito, de código abierto y disponible en versiones de alemán, francés, italiano, ruso, japonés, griego, portugués, coreano y chino.
Wikipedia tiene un artículo excelente que cubre AutoHotkey en profundidad.
8. ClipX
Mi característica favorita en Emacs fue yank-pop. Si ha copiado la línea 1 hasta el tablero de clip, y luego la línea 20, y luego la línea 5, llegando a pegar volvería la línea 5, pero luego pulsa yank-pop línea si 5 se sustituye por la línea 20. Es decir, se desenrolla la pila del portapapeles.
ClipX provee la funcionalidad y un buen poco más para Windows – para todas las aplicaciones. Su icono se encuentra en la bandeja de espera para que haga clic.
Cuando lo haga, hasta aparece un menú muy largo de sus n entradas más recientes del portapapeles donde n es un número del 0 al 1024 (la imagen muestra un ejemplo recortado)
También puede almacenar las entradas permanentes en el portapapeles para una recuperación rápida, como pueden ver en la parte inferior (he disfrazado de los dos primeros ya que son las contraseñas).
No es el más lujoso de los administradores de portapapeles, pero funciona de forma fiable y, como dicen en su sitio «es dulce, es libre, usarlo.»
9. Snip It Pro
Con base en las reacciones que obtengo cuando presento código en las conferencias, el mundo de programación está buscando un gran administrador de fragmentos de codigo. Snip It Pro es el mejor que he visto. Esto hace que la creación y gestión de fragmentos (y grupos de fragmentos) una cosa fácil, sin sacarte del camino cuando no lo necesitas, y si bien su funcionalidad básica es obvia e intuitiva, tiene algunas características adicionales que son dulces como la tarta. Uno que yo personalmente solicite y utilizo todo el tiempo es la cola. Haz clic derecho sobre una carpeta y elegir fragmentos de la cola y luego cada pegar pegara el siguiente fragmento de la carpeta. Bang, bang, bang! El archivo de ayuda (excelente) ofrece las siguientes teclas de acceso rápido para trabajar con fragmentos de la cola
CTRL + SHIFT + V - Pega el fragmento actual de la cola y pasa al siguiente. CTRL + SHIFT +1 - Mover la cola al fragmento anterior sin pegar nada. CTRL + SHIFT +2 - Mueve la cola al siguiente fragmento sin pegar nada. CTRL + SHIFT + C – Asegura que el fragmento actual de la cola se encuentra en el portapapeles. (Muy útil si se copia o corta otro pedazo de texto después de avanzar la cola).
10. Evernote
Yo soy un oso de pequeño cerebro. Y no hay nada más molesto cuando estoy en problemas, tratando de resolver un problema de programación, que yo sé que lo he resuelto antes, pero no tengo la menor idea de cuándo o dónde. Odio resolver el mismo problema dos veces. Lo que necesito es un lugar confiable para poner mis notas.
También tengo un montón de información de streaming que sé que querré algún día pero no ahora. Necesito un lugar para poner eso.
Cuando veo algo interesante en una revista (o en una cartelera, etc) nunca escribo una nota, le saco una foto – ¿Para qué están los teléfonos? No quiero transcribir esa información, pero tengo que ser capaz de encontrarla posteriormente.
Yo trabajo en más de una máquina, en más de un lugar.
Ingresa, finalmente, Evernote. Evernote tiene muchas más cosas maravillosas que decir por sí mismo (incluso que la versión básica es gratuita), pero son dos las características matadoras para mí:
- Funciona en teléfonos, Windows, Mac, y la web.
- No es necesario organizar la información sobre la marcha – su motor de búsqueda es tan poderoso que se puede encontrar lo que necesite casi al instante. Si, existen múltiples notebooks (yo sólo uso uno) y hay etiquetas (yo los uso, pero sin una buena razón), para que puedas organizar la información a medida que se añade, pero un organizador asesino no te fuerza. Lo sé, absolutamente todo lo que pongo, lo puedo encontrar rápidamente con sólo buscar.
Eso sería suficiente, pero Evernote tiene otras dos características casi increíbles.
- Cuando se agrega una imagen, lee la imagen e indexa todas las palabras en la imagen. Y son muy, muy buenos en eso. Así que puedo encontrar esa foto que tomé de ese artículo sobre la gran utilidad que yo quiero.
- No sólo puedes buscar tanto dentro de las notas y a través de las notas mediante alguna palabra(s) que aparecen en la nota, pero se puede buscar por: cuando se creó o cuando fue modificada, o la forma en que fue añadido (Envié por correo electrónico dicha nota) o independientemente de que contenga imágenes o archivos adjuntos, etc, etc. Una de mis características favoritas aparece en la versión del teléfono, que me permite la búsqueda por cada nota que agregué «cerca de aquí», donde llegas a definir el significado de «cerca». Así que cuando estoy en Redmond, instantáneamente se encuentran 4 años de notas que agregué, por ejemplo, a 10 millas de la empresa.
Por supuesto, todas mis versiones sincronizan entre sí constantemente, por lo que todas mis más o menos 1,500 notas están siempre al día.
La versión gratuita está perfectamente bien, pero he actualizado a favor de darles dinero. Nadie debe producir un producto tan bueno y no ser compensada.
11. Mozy
Cuando todo está dicho y hecho soy un gran creyente en el cinturón y tirantes. Y lo más valioso, los pantalones, los cinturones y tirantes más puedo añadir. Por lo tanto, mantengo mi código fuente, presentaciones y documentos importantes en el sitio de control de versiones de cierre, hago periódicamente copias de seguridad del sitio, y tengo copias de respaldo Mozy de todos mis datos en sus equipos fuera de la oficina, constantemente.
El acuerdo de Mozy es de datos ilimitado, y lo he configurado para ver todos los directorios que no tienen dentro información propiedad de Microsoft, y que procese tan pronto como el equipo esta inferior al 25% ocupado. Puedo agregar una copia de seguridad programada a las 2:30 am todos los días (con la esperanza de que no va a trabajar entonces!). Por último, ya que todo es al menudeo, instruyo a Mozy para estrangular su uso del ancho de banda de Internet para 512KB/Sec entre las 7am y la 1am.
Hacemos lo que podemos.
12. Mikago
Una de las cosas que realmente me encanta de mi trabajo es que yo trabajo desde casa. Estoy en Massachusetts, mi jefe está en Oregon y su jefe está en Redmond. Mis compañeros de trabajo están en San Diego, Washington DC…. se entiende la idea. Para realizar este trabajo se utiliza Microsoft Communicator y Live Meeting (el cara a cara es fundamental para evitar la confusión), pero de vez en cuando es muy útil poder compartir completamente un espacio de trabajo, de forma interactiva y con gran respuesta.
Hay una serie de buenos productos para hacer esto (algunos incluso se obtiene de forma gratuita con tu sistema operativo), pero Mikago destaca por ofrecer un extraordinario control, facilidad increíble para crear un escritorio ad hoc compartido y es gratis.
Para este artículo, invité a dos amigos que no tenían Mikogo para compartir mi pantalla, enviándoles una invitación por correo electrónico a través de Mikogo a un evento de una hora más tarde. El tiempo total para cada uno de ellos al hacer clic en el enlace para compartir mi pantalla era menos de 3 minutos, pero que será más rápido la próxima vez, ya que guardaron el pequeño programa necesario, Mikogo.
Una característica realmente ingeniosa es que cuando tengo el control de la pantalla, ellos pueden hacer clic y aparecerá una flecha en mi pantalla (con su nombre adjunto) para que puedan preguntar «¿Qué hace este botón?» Brillante!.
Entradas relacionadas