Música para desarrollar

Los desarrolladores de software vivimos conectados toda la vida a dos cosas, internet y a nuestros audífonos, por lo general le damos la vuelta a nuestras bibliotecas musicales unas 100 veces en un periodo de un año, así que facilmente nos aburrimos de la misma música.

Además no podemos escuchar cualquier música, ya que si hay demasiadas voces tiendes a distraerte, tu cerebro lo hace inconscientemente, para eso es mejor tener música clásica, ciertos soundtracks o música electronica/tecno.

Hace poco acabo de descubrir a DJ Bolivia y con uno de sus tracks pude trabajar sin parar durante varias horas, sin distracciones y con una productividad bastante buena, así que es mejor si les doy un listado de sus mixes y un pequeño extra para hacer cosas heroicas sacadas de una lista de Reddit.

Music to code by DJ Bolivia:

Y así es como trabajé este año

Y se fue otro año más, pero para no escribir el típico post de propósitos no-cumplidos y que pasarán a la lista de “ahora si voy a hacer ejercicio este año, pero de verdad lo haré!” voy a cambiar un poco y mejor mencionaré que herramientas se convirtieron en indispensables para mi trabajo diario.

Ha sido un año muy interesante, nuevos proyectos nuevas herramientas y sobre todo mucho aprendizaje, ahora sí la lista sin un orden especial:

  • iTerm2 – Remplazo de terminal, dado que ahora mantengo 3 servidores linux esta herramienta es la que más uso día a día, me permite acceso SSH y la posibilidad de usar VIM tanto en el servidor como en mi local, tiene muy buenas paletas de colores y lo que más me encanta la opción de dividir la pantalla en multiples ventanas, así que usualmente verán mi pantalla de esta manera: iTerm2 dividido
  • Sparrow – El mejor cliente de email para Mac que conozco, simplemente lo mejor, la forma de organizar las conversaciones al estilo Gmail, los shortcuts y la excelente interfaz lo hacen mi cliente preferido (yo profesaba el amor por el uso de una interfaz web, pero Sparrow me ganó).
  • Xcode – Estoy haciendo algunas aplicaciones para iOS así que este editor esta abierto una buena parte del día en mi maquina, el storyboard y las mejoras en la version 4.2.1 son una delicia.
  • PHPStorm – Dado que aún hago bastante PHP en Babker, mi editor preferido es este, muchos shortcuts, configuración de plantillas, refactoring e integración con SVN.
  • SublimeText 2 – Otro editor, dado que aún no me puedo acostumbrar al 100% a usar vim, este editor se ha convertido muchas veces en el remplazo de phpStorm, la simplicidad, el agrupamiento de carpetas para el proyecto y el remplazar palabras dado el enfoque, hacen de este un must.
  • Evernote – No se por que pero me resistía a probar este servicio, supongo que era por que no le veía la suficiente utilidad pero eso cambio ahora que lo uso como herramienta de notas y GTD.
  • VMWare Fusion – Maquinas virtuales por todos lados, Linux, Windows y Mac, solo necesito un SSD y el probar en multiples plataformas será pan comido.
  • Nginx – Servidor web y proxy, este año cambié el servidor web de Apache por Nginx y el cambio fue asombroso, la escalabilidad y el alto performance, piece of cake.
  • Flux – Si haz estado en la computadora en la noche/madrugada y luego te lloran los ojos, esta app es para tí, ajusta el color a uno más cálido conforme avanza el día, para que así tus ojos no se cansen.
  • Adium, MonoDevelop, MacFuse, NaviCat, Lion, Balsamiq Mockups y GitHub (la app) son mención especial dado que si los uso pero algunos ya lo hacia desde antes o no lo hago con tanta frecuencia.

Este año hubo nuevos proyectos y cambios, lo más notable es el cambio que poco a poco estoy haciendo a Objective-C, me encanta este lenguaje y las plataformas donde se puede usar, posiblemente me pase a tiempo completo como iOS/Mac developer pero aún no lo sé.

Estas son las herramientas que este año utilice en el día a día, son las que mejor resultado me han dado y las que hacen que realizar las tareas sea algo delicioso, en una semana o tal ves 2 publicaré un nuevo post con algunas sorpresas y proyectos que verán luz este 2012.

¿Y para tí, cuáles fueron esas Apps que te hicieron grande este 2011?

De tecnologías, herramientas y otras cosas

Hace un tiempo ya, mientras estaba tomando un café dentro de un Starbucks y pasaba un sitio de .NET a Mono (vaya cosa no es complicado ja!), un conocido al que tenía bastante sin ver llego y comenzamos a charlar, todo iba perfectamente bien en ponerlos al día en que haciamos en esos momentos hasta que noto un detalle, yo estaba usando una MacBook Pro en lugar de la XPS Dell que tenía anteriormente.

La charla se fue a algo como esto:

El – ¿Y por qué es que dejaste Windows?, aquí (León) nadie paga por desarrollos que no sean en .NET

Yo – Por que no requiero Windows para desarrollar en .NET, lo puedo hacer desde aquí.

El – Mmm… no lo se, yo no pagaría eso.

Además de la charla normal de por que OS X o Windows, lo anterior es lo realmente importante, este amigo es un empresario consolidado en la región, así que su punto de vista me dejo pensando, ¿acasó estamos tan casados con una tecnología?, ¿juzgamos unicamente por la herramienta y no por el resultado?.

En ese momento me dio un poco de miedo, ¿acaso esta es el punto de vista del empresario común?, un par de días despues me di cuenta que no es así, comencé un proyecto usando PHP y otro de nuevo en Mono, a estos nuevos clientes no les importó en absoluto la plataforma o tecnología a utilizar, ellos solo querían resultados y los querían pronto.

No eh vuelto a ver a mi amigo, se que su negocio va bien, pero se que podría ir mejor, la inclusión de tecnologías Open Source, el acercamiento a plataformas móviles como iOS o Android es inevitable en la región, ya estoy en platicas con otro excelente amigo para crear aplicaciones para móviles orientadas al mercado local y mejorar la industria.

¿Usas .NET, PHP, Objective-C, Ruby, Java?, excelente, entonces eres parte del ecosistema de desarrolladores pero nadamás, no existe ni mejor ni peor, solo herramientas y buenos o malos desarrolladores.

Sí, un post sin mucho sentido pero, ¿para eso esta el blog no?

Cambiar el usuario a una working copy de SVN

SVN es un sistema de control de código fuente, es el más popular actualmente aunque Git esta tomando muchos adeptos.

Me pasaron una maquina virtual de Ubuntu con una cuenta de SVN que no era la mía, para cambiarla sencillamente entras a la Terminal y escribes el siguiente código:

svn update --username <usuario>  --password <password>

El Password hasta donde recuerdo no es necesario ya que te volvera a pedir autenticarte, aquí es donde podrás asignar tus nuevas credenciales y los cambios ya aparecerán con tu usuario.

Editor de texto enriquecido jHtmlArea (WYSIWYG) para ASP.NET y jQuery

Los editores de texto enriquecidos o mejor conocidos como editores WYSIWYG (What You See is What You Got – Lo que ves es lo que obtienes) son de bastante utilidad para cierto tipo de desarrollos, como lo es cuando el usuario quiere modificar el mismo los estilos de lo que escribe, agregar listados o agregar hipervinculos, etc, sin que tenga que aprender HTML para realizarlo.

Buscando un buen rato por alguno sencillo, ligero y que se integrara rapidamente a ASP.NET/Mono, me encontre con jHtmlArea, un plugin para jQuery aun en desarrollo pero lo bastante estable como para poder utilizarlo en el proyecto que estoy desarrollando.

Editor WYSIWYG jHtmlArea

Configurarlo y usarlo es realmente sencillo:

  • Descarga el archivo del sitio web del proyecto.
  • Descarga jQuery.
  • Los archivos javascript agregarlos a una carpeta (js por ejemplo) y los CSS lo mismo (puede llamarse css el folder :P ).
  • Agregar las referencias de los archivos en el código:
    <head>
    	<script src="/js/jquery-1.3.2.min.js" type="text/javascript"></script>
    	<script src="/admin/js/jHtmlArea.ColorPickerMenu-0.7.0.min.js" type="text/javascript"></script>
    	<script src="/admin/js/jHtmlArea-0.7.0.min.js" type="text/javascript" ></script>
    
    	<link rel="stylesheet" type="text/css" href="/admin/css/jHtmlArea.css" />
    
    	<script type="text/javascript">
    		$(document).ready(function(){
    			$("textarea").htmlarea();
    		});
    	</script>
    </head>
  • Agregar un elemento <textarea> simple o un textbox multilinea de asp.net.
    <asp:TextBox runat="server" id="txtContenido" TextMode="MultiLine" Width="680" Height="300" ></asp:TextBox>

Con esto automaticamente cada elemento textarea aparecera con las opciones del editor, existen otras configuraciones como agregar o eliminar elementos de la barra de botones tal y como lo indica el autor en su sitio.