Archive for the ‘Rails’ Category

Articles

Good bye Aptana

In Desarrollo Software,Rails,RIA on agosto 17, 2012 por racar Etiquetado:

vim logo

vim logo (Photo credit: Wikipedia)

Eclipse es un IDE fantastico pero Aptana (su derivado) es lento para editar código en el front-end. Existe una forma muy simple para instalar Vim (el editor de texto) como comentan en este post de stackoverflow, utilizando una “distribución” de vim llamada janus https://github.com/carlhuda/janus que instala varios plugins y es la forma más rápida de iniciar con vim. Resumo las instrucciones para instalar vim y janus:

1. Instalar vim:

brew install macvim (homebrew –> gestor de paquetes de osx)

2. Instalar janus invocando el script de instalación.

curl -Lo- https://bit.ly/janus-bootstrap | bash

3. Configurar el editor. El plugin NerdTree permite navegar por el directorio y abrir archivos para editarlos, si quiero ver el “Tree” con la tecla F2 y que solo despliegue los directorios de la ruta actual, copiamos esto en el archivo de configuración de vim (también podríamos cargarlo por defecto y no con F2, cuestión de gustos):

vi ~/.vimrc

map <F2> :NERDTreeToggle <CR>

4. Para ejecutarlo le damos la ruta al directorio del proyecto o vamos hasta ella y ejecutamos:

mvim (equivalente a vim en linux)

Y con esto es suficiente para iniciar, Janus tiene plugins que soportan Git, CoffeeScript, Sass, Haml, entre otros.

La experiencia de Yehuda Kats con vim:

http://yehudakatz.com/2010/07/29/everyone-who-tried-to-convince-me-to-use-vim-was-wrong/

El resultado:

P.D: Seguro que Uncle Bob me regañaría por no usar un IDE… :s

Anuncios

Articles

Java vive y dará la pelea.

In Desarrollo Software,Java,Noticias del Software,Rails,Software Process Improvement on noviembre 4, 2011 por racar

Duke, the Java Mascot, in the waving pose. Duk...

Image via Wikipedia

El mes que pasó, en la Java One, se dio el lanzamiento de la version 7 de java y se anunció la 8, animándome un poco a presentar el early upgrade de la recién salida versión 7, encuentro  dos cosas que me llaman la atención: que los cambios son significativos (de hecho java 8 esta proclamada como una revolución), y que dichos cambios están influenciados por el extraordinario éxito de los lenguajes dinámicos con que disponemos para programar actualmente en la plataforma. Hoy por hoy sobre la plataforma java es posible construir programas escritos en una variada gama de lenguajes funcionales y dinámicos: groovy, jruby, scala, jphyton. ¿En que momento llegaron a competirle a java en su propia VM? ¿Que causó esta disrupción? Bueno, he aquí un análisis resumido de la posible respuesta:

En el principio de los tiempos (en la JVM) solo se compilaba java…. los lenguajes de programación dinámicos, de alto nivel y orientados a objetos ya sea Python o Ruby, no tenían la influencia actual porque eran considerados “peligrosos” por el Status Quo corporativo. Debido a su característica dinámica resulta más difícil detectar bugs  y los errores se detectaban “in run time”; también son débilmente tipados y los todo poderosos IDES no pueden realizar sugerencias de autocompletado precisas y no pueden hilar eficientemente los trazos del stack de ejecución, sobretodo en las closures. Estas propiedades de los lenguajes dinámicos no permiten hacer debuggers eficientes.

Pero algo cambio:

Primera singularidad: Agile manifesto y extreme programming.  A finales de los 90’s, un grupo de revolucionarios llegó con ideas nuevas; hastiados de la burocracia corporativa que impuso la separación entre los managers/arquitectos y los “mortales” (desarrolladores), se fueron lanza en mano contra la metodología en cascada. El manifiesto ágil fue una proclama de mejores formas de construir software y trajo consigo las practicas que revolucionarían la profesión: el extreme programming. XP trajo varias practicas, entre ellas destaco dos: Test-Driven Development y Continuous integration. El primer golpe a la burocracia corporativa en torno al desarrollo de software se había dado.

Segunda singularidad: La filosofía “Getting Real” y el nacimiento de Rails. Casi 5 años después, en el 2005 aparece la máxima expresión de la metodología de desarrollo ágil de software, evitando la metodología predicativa formal esta se enfoca en crear aplicaciones útiles, innovadores (con alto valor creativo) y sencillas a partir de entregas pequeñas y continuas. Rails había nacido y trajo consigo totalmente integradas las practicas de XP y varias practicas mas: estructura robusta de testing, estructura fija de configuración sin XML, filosofía DRY o favorecer el re uso evitando las tareas repetitivas, estructura MVC y toda una serie de herramientas (ActiveRecord p. e.). Con esto, los desarrolladores se enfocan en crear la lógica del negocio y la parte creativa/innovadora de las aplicaciones. Con TDD y C.I. ya no se necesita el debugger y la fase de compilación. El segundo golpe, aun más fuerte.

La filosofía agile, va en contra del status quo corporativo y revoluciona o resiste la tendencia burocrática que favoreció los lenguajes estáticos como Java, también fomenta las practicas como TDD y continuos integration que derriban la teoría de la necesidad de un compilador y un debugger para detectar errores. Además de todo esto, añaden alta productividad al fomentar la automatización de tareas de desarrollo.

Cualquier desarrollador encuentra atractivas las ideas (y frameworks) detrás de los lenguajes dinámicos. Sin embargo Java ha respondido al cambio y después de un letargo, esta adaptándose al futuro en su versión 7 (coin) y sobretodo en la 8 (lambda). Java vive y dará la pelea!!.

Articles

Authentication Proxy Simplificado

In Grails,Rails,Windows on agosto 10, 2011 por racar

Los fremeworls de desarrollo Web modernos, y opensource llámese Rails/Grails, manejan un sistema de paquetes similar al de debian, donde podemos obtener las librerías invocando alguna línea de comando. Cuando trabajamos en ambientes Windows y estamos detrás de un proxy que use autenticación NTLM estos sistemas de gestión de paquetes van a fallar porque manejan autenticación simple. Cuando esto ocurre aparece típicamente un error HTTP407, aveces este error no es tan evidente. Ejemplos:

En ruby obtenemos mensajes disímiles:

mensaje consola- ruby

mensaje consola- ruby

mensaje consola -ruby 2

mensaje consola -ruby 2

En Grails framework el problema se evidencia porque no descarga las dependencias a librerias java o groovy:

output intelli IDEA - Grails

output intelli IDEA - Grails

problem while downloading module descriptor:
http://repo1.maven.org/maven2/org/apache/geronimo/specs/specs/1.4/specs-1.4.pom:
The HTTP response code for http://repo1.maven.org/maven2/org/apache/geronimo/specs/specs/1.4/specs-1.4.pom
did not indicate a success. See log for more detail. (188ms)

Cntlm Authentication Proxy to rescue !!!

Tenemos dos alternativas, renunciar a esta compañía tan Windows dependiente y trabajar en una que utilice el opensource y así ser feliz (no siempre es posible) o utilizar algún opensourse  proxy handler, en este caso: Cntlm.

Las instrucciones son sencillas, acá las resumo:

1 Desempaqueta la utilidad en algún directorio local. Se descarga de aquí.

2 Ir a la ruta e instalar ejecutando el archivo setup.bat.

3 Queda instalado en esta ruta C:\Archivos de programa\Cntlm, así que vas al archivo cntlm.ini y pones la información del proxy externo que quieres emular.

4 Ejecutar el comando cntlm -I -M http://test.com y copias y pegas el hash que genera en el archivo cntlm.ini.

5 Por Administrador de procesos correr el proxy, servicio llamado: “cntlm Authentication proxy”.

6 Configurar el proxy apuntando a localhost: 3128 en el framework en cuestión.