viernes, 10 de febrero de 2012

Video: Bjarne Stroustrup presenta el estilo de C++11 en Going Native 2012

Como comenté hace unas semanas, en los primeros días de febrero se llevó a cabo la conferencia Going Native 2012, dedicada a los desarrolladores C++, y enfocada en el flamante estándar 11 del lenguaje, que está llegando a todos los nuevos compiladores de cada plataforma, desde Unix a Windows.

En la conferencia participaron Stroustrup (el creador de C++) y los principales impulsores del lenguaje en Google, Facebook, HP y Microsoft (anfitrión del evento, que se realizó en uno de sus auditorios).

Este post es principalmente para informar que ya están disponibles en video todas las sesiones, y dejarles a mano la apertura, que arranca con la dedicatoria del evento al recientemente fallecido Dennis Ritchie, creador del lenguaje C y co-creador del sistema operativo Unix, muy emotiva para cualquier geek de corazón.

Queda debajo entonces el video (~90 minutos), y recuerden que en la página principal del evento están los enlaces a todas las demás sesiones.

jueves, 9 de febrero de 2012

¿MacBook con teclado en inglés?

Argento Layout

Los lenguajes de programación, no importa de qué origen, están pensados para escribir con un teclado en inglés. Es cierto que se puede escribir código con cualquiera, pero siempre es más complicado al alejarse del clásico "US Layout". Por eso siempre busco computadoras con teclas en inglés, como en el caso de mi MacBook.

Pero claro, también tengo que escribir frecuentemente en español, como en este blog. Mac OS X tiene una serie de secuencias de teclas por omisión para ingresar vocales con tilde, diéresis, etc, pero la mayoría de nosotros estamos acostumbrados a teclear la tilde primero y después la vocal, etc. Como no encontré un esquema de teclado con las combinaciones que me gustaban, construí uno, y para ahorrarle tiempo a quien venga detrás, lo comparto con ustedes.

Argento Layout es un esquema de teclado (Keyboard Layout) para Mac OS X, pensado para computadoras con teclado en inglés (US) de fábrica, que facilita escribir en español.

Las combinaciones de tecla habilitadas son las vocales acentuadas (minúsculas y mayúsculas) que se logran pulsando la tilde (debe estar entre las teclas ";" y "return"), y adicionalmente pulsando la tilde y luego la "n" (mayúscula o minúscula) se obtiene la "ñ".

Como también escribo frecuentemente en inglés, mantuve un detalle importante: si se escribe algo diferente de vocal o "n" luego de la tilde, el caracter resultante es una comilla simple, no una tilde, lo que evita que un texto en inglés quede como:

I'm a coder (correcto)

...en lugar de:

I′m a coder (incorrecto - en inglés el caracter correcto para las contracciones es un comilla recta, no unan tilde)

Los interesados solamente deben copiar el archivo "Argento.keylayout" descargado dentro de la carpeta "~/Library/Keyboard Layouts" (~ indica su carpeta de usuario) si quieren tener el esquema disponible solamente para su perfil. Si quieren que esté disponible para todos, copien el archivo en "/Library/Keyboard Layouts" desde el directorio raíz.

Para poder usarlo hay que hacer "Logout" y "Login" nuevamente. Si quieren poder cambiar el modo de teclado, pueden modificarlo en las Preferencias de Teclado, y pueden dejar el icono disponible en la barra de menú para poder alternarlos fácilmente (como se ven en la imagen más arriba).

Espero que a alguno de ustedes le resulte útil.

 

miércoles, 8 de febrero de 2012

Aprendiendo Vim en un rato (+ video)

Vim

(post dedicado a los programadores anticuados como yo, y a los que me miran raro cuando me ven usar una Mac desde la línea de comandos)

Vim es uno de los editores más minimalistas, sólo superado por su antecesor Vi.

Una descripción rápida en español, provista por el sitio oficial dice:

¿Qué es Vim?

(Una explicación en seis kilobytes - versión completa en español en el sitio oficial)

Vim ("VI IMproved") es un "clon de VI", es decir, un programa similar al editor de textos "VI".

Vim no solo trabaja en modo de texto en cualquier terminal, sino que también tiene un interfaz gráfica para el usuario, es decir, menús y soporte para el ratón.

Disponibilidad: Vim está disponible para muchas plataformas y tiene muchas características añadidas en comparación con VI (véase http://www.vim.org/viusers.php). Vim es compatible con casi todos los comandos de VI - excepto con los errores(bugs) en VI. ;-)

Sistemas Operativos: Vim está disponible para muchos sistemas: AmigaOS, Atari MiNT, BeOS,DOS, MacOS, NextStep, OS/2, OSF, RiscOS, SGI, UNIX, VMS, Win16 + Win32(Windows95/98/00/NT) - y especialmente FreeBSD y Linux.

Copyright: El copyright está en las manos del autor principal y mantenedor, Bram Moolenaar.  Vim es un "programa-de-caridad" ("charity-ware"), es decir que se sugiere que hagas una donación a los huérfanos en Uganda(véase ":help Uganda ").

Fuentes: Vim es OpenSource y todos son bienvenidos para ayudar a mejorarlo!

En la mayoría de las distribuciones de Unix/Linux, incluyendo Mac OS X, Vim ya está instalado y disponible. En Windows hay que descargarlo, al igual que si uno quiere estar seguro de tener la última versión en cualquier otra plataforma.

La forma más sencilla de empezar a usar Vim es escribiendo desde la línea de comandos:

vimtutor

Este comando en realidad carga Vim con un tutorial (en inglés) ya abierto. En realidad es una copia temporal del archivo del tutoríal, de manera de poder editar y practicar sin perder nada. El tutorial lleva unos 20~30 minutos, y para quienes lo encaren, espero que no se asusten cuando comienza explicando cómo moverse por el archivo utilizando las teclas HJKL. A no desesperar: las flechas también funcionan, pero sobre todo para quienes son buenos tipeando (no es mi caso), poder moverse sin tener que quitar las manos de la parte principal del teclado termina siendo sumamente útil.

Para quienes quieran aprender un poco más y darle una chance a Vim, que seguirá estando cuando las interfaces estilo Minority Report pasen de moda, tienen más información en Vim University. Dejo debajo un video (en inglés; menos de 6 minutos en total) donde se explica cómo crear macros.

Como Vim está centrado en el teclado, presten atención a la esquina inferior derecha del video, donde se van mostrando las teclas que el autor pulsa (ya que la mayoría son comandos que no se ven en el editor). Espero que les de una idea de la relación simplicidad/flexibilidad de este editor.

martes, 31 de enero de 2012

Video: HTML 5 para los no iniciados y curiosos, por Cristian Prieto (y más de Alt.NET Hispano)

Alt.NET Hispano

Los amigos de Alt.NET Hispano, coordinados por el infatigable Jorge Gamba, han publicado el video de otra reunión VAN (Virtual Alt.NET).

La sesión que menciono en en título, e incluyo debajo, es una de las últimas, pero aprovecho para hacer una actualización sobre la actividad del grupo, que sigue manteniendo un espectro de intereses bastante amplio, con centro en .NET y su ecosistema, pero llegando a montones de otros entornos, como Ruby, JavaScript o HTML5, como en este caso.

Como mencioné en un viejo post, Alt.Net Hispano realiza sesiones en vivo (utilizando Live Meeting) de entre 60 y 120 minutos con frecuencia semanal, a veces más de una por semana, que quedan disponibles en video posteriormente, sobre multitud de temas, siempre en español.

Com complemento a aquel viejo post, dejo una lista de las sesiones publicadas desde diciembre de 2010 hasta ahora (en total el grupo lleva publicadas ¡81 sesiones!).

Fecha Tipo Título Presentador
Duración
81 2012/01/28 VAN Introducción a fubuMVC Francisco Ruiz 1:56
80 2011/12/17 VAN HTML 5 para los no iniciados y curiosos Cristian Prieto 2:04
79 2011/10/08 VAN vNext, ASP.NET 4.5, Webmatrix 2 y MVC4... (Parte 2) Cristian Prieto 1:52
78 2011/09/24 VAN vNext, ASP.NET 4.5, Webmatrix 2 y MVC4... (Parte 1) Cristian Prieto 1:48
77 2011/08/06 VAN Node.js Hernán García 1:52
76 2011/07/23 VAN Conceptos de HTTP y Fiddler web debugger Leonardo Micheloni 2:13
75 2011/06/18 VAN Identity Providers, oAuth y Autenticaciones on-line Carlos Peix 
Nelo Pauselli 
2:16
74 2011/06/11 VAN Generación de código, con Essential Pedro Molina 2:35
73 2011/05/28 VAN Pex, Moles y Code Contract Esteban Gringerg 2:11
72 2011/05/27 VAN REST Services y WCF's Web Api Pablo Cibraro 
Gustavo Machado
José Romaniello
1:50
71 2011/05/21 VAN Reescribiendo ensamblados con Mono.Cecil José Romaniello 2:17
70 2011/05/13 ALT.NET Café Web Frameworks 1:34
69 2011/03/05 VAN Conform - Parte 2 Fabio Maulo 2:14
68 2011/02/26 VAN Audit (parallel model) con NHibernate 3 Fabio Maulo 2:04
67 2011/02/19 VAN CQRS Andrea Magnorsky 2:09
66 2011/02/12 VAN Estrategias para el manejo de sesión de NHibernate Parte II Nelo Pauselli
José Romaniello
2:09
65 2011/02/04 ALT.NET Café La Inmortalidad de la Medusa - Arquitectura 1:25
64 2011/01/29 VAN Programando con Windows Azure Angel "Java" López 2:10
63 2010/12/04 VAN Estrategias para el manejo de sesión de NHibernate Nelo Pauselli 2:16
62 2010/11/27 VAN ASP.NET MVC 3 & NuGet Cristian Prieto 1:59
61 2010/11/26 VAN Code Smells & Refactoring Martín Salías 2:02
60 2010/11/20 VAN Ruby on Rails Mario Chávez 1:54
59
2010/11/17
VAN
Entity Framework
Jorge Fioranelli
2:31
58 2010/11/16 VAN Cloud Computing Martín Salías 2:27

Hay muchísimo material para disfrutar, y les dejo el video de Cristian para abrir el apetito.

Unable to display content. Adobe Flash is required.

lunes, 30 de enero de 2012

Llegaron los monos a Heroku (+ video)

Mono en Heroku

Heroku es un servicio PaaS (Plataforma como Servicio), que permite publicar en la nube aplicaciones Ruby (el lenguaje soportado originalmente), Node.js, Scala, Java y Python.

La plataforma es fabulosa porque tiene un modelo de escala muy interesante, y es muy sencillo montar aplicaciones de manera gratuita por bastante tiempo, hasta que el volumen de tráfico y consumo de recursos requiere que se pase a un plan pago (lo que en muchos casos debería suceder cuando la aplicación ya está generando dinero).

Por otro lado, Heroku es una de la plataformas en su tipo con mayor simpleza para el despliegue y mantenimiento de las aplicaciones. Fuertemente basada en los flujos de trabajo de GIT, el sistema distribuido de control de versiones (creado por Linus Torvalds), para las plataformas soportadas directamente, desplegar una aplicación es tan simple como ejecutar desde la línea de comandos, parados sobre nuestro repositorio de GIT local:

git push heroku master

Y listo. Heroku se encarga de resolver todas las dependencias de acuerdo a las convenciones de cada plataforma (bundle en Ruby, NPM en Node, etc), lo que usualmente es muy rapido, y hace que nuestra aplicación esté disponible en segundos.

Bueno, esto ya debe ser conocido por la mayoría de los lectores de este blog. La novedad es que Ben Hall, un colega desarrollador que trabaja regularmente en ASP.NET y Rails, encontró la manera de desplegar en Heroku una aplicación basada en Mono (la implementación abierta y gratuita de .NET).

La aplicación de prueba está escrita en C# y basada en el framework Nancy (basado en Sinatra, un framework web minimalista para Ruby; Nancy es el nombre de la hija de Frank Sinatra). Como Ben explica en este post, este mecanismo no está soportado en lo más mínimo por Heroku, pero abre el camino para que eventualmente sea soportado (nótese que todos los lenguajes soportados además de Ruby fueron agregados en los últimos seis meses, aproximadamente).

Aunque el proceso es bastante experimental (requiere desplegar unas cuantas piezas de infraestructura sobre el stack Cedar de Heroku, que es el más nuevo de los sabores, y provee proceso sobre Ubuntu 10.04, y sobre el que corren todos los nuevos lenguajes.

La prueba final de que esto puede pasar de ser un experimento a algo más es que Chris Kemp, del equipo de Soluciones Técnicas de Salesforce.com (la compañía dueña de Heroku) grabó este video (en inglés) en el que muestra cómo poner en práctica la receta de Ben. Disfrutenlo, y esperemos que dentro de un tiempo podamos tener soporte más directo para Mono en Heroku.