December 17, 2008

Regalos de navidad

Estaba pensando en qué regalarme de navidad... Aunque es tiempo de regalar, pues uno también tiene que pensar en consentirse a uno mismo!

Y es que hay tantos juguetitos, que no sirven para mucho pero cómo son deseables... Por ejemplo:

Pensando en mi lado fotógrafo...


Un lente fish eye.

Un disparador a control remoto.

Un lente 50mm F2.6.

Una batería de repuesto.

Un tripié más portátil.

Pensando en mi lado baterista...


Una campana.

Unos platillos crash serie HHX de Sabian.

O bien, una flamante batería Yamaha blanca.

Pensando en mi lado geek...


4GB ram para la mac.

Una licencia del MarsEdit.

Un cable Mini DisplayPort - VGA.

Pensando en mi lado gamer...


Gears of War 2.

Star Wars Force Unleashed

NFS Undercover

Portal

Pensando en mi lado comprador compulsivo...


Un iPhone.

Un Sony C905.

Una cámara fotográfica Powershot.

Una cámara de video portátil.


Ah... ya me acordé que ya me voy a casar... Además están re caras todas esas cosas :P :(

December 09, 2008

Configuración de F's

Una de las cosas que más me pegaron cuando migré a programar en la mac, fue el hecho de que en la máquina virtual no podía presionar mis teclas F9...F12 sin que algo se activara que no fuera el debugger (Spaces, Exposé, Dashboard).

Al final terminé utilizando esas teclas junto con Command (cmd+F9...F12). Sin embargo al cambiarme a otra computadora es necesario hacer el switch mental. Como soy muy flojo, hoy estuve haciendo algunos experimentos.

Después de jugar con las preferencias de Parallels (Enable Mac OSX System Shortcuts), y con las de las preferencias del sistema (Usar todas las teclas de función como teclas de función estándar), decidí que era mejor deshabilitar el F9, F10, y F11 para el Exposé y Dashboard.

Las esquinas de mi monitor de cualquier modo funcionan para esas cosas: en la esquina superior izquierda tengo el protector de pantalla, funciona para bloquear rápido. En la esquina inferior izquierda está la pantalla en reposo, para dejarla descansar en las noches que se queda encendida digamos. En la superior derecha tengo el Spaces, y en la inferior derecha tengo el Exposé. Además, en el trackpad con 4 dedos hacia arriba puedes ver el escritorio, y con cuatro dedos hacia abajo, el Exposé.


Entonces no tiene mucho caso usar además esas teclas. Al final quedó así:

Parallels con activa la opción Enable Mac OSX System Shortcuts. Así no pierdo la funcionalidad de esquinas cuando estoy en parallels, ni los controles de volumen de las F's)

Parallels teclado


Preferencias del sistema-Teclado con la opción activada Usar las teclas de función como teclas de función estándar. Al mismo tiempo en Funciones rápidas de teclado desactivé F9, F10, F11 y F12.

Preferencias teclado


Shortcuts


Y entonces en Parallels ya puedo utilizar todas las F's normalmente y sin combinación de teclas. Happy ending!

Introducción a CAG

El Composite Application Guidance para WPF es una nueva forma de hacer composite views en WPF. Muy parecido al CAB, pero con las ventajas de binding de WPF, el CAG nos ofrece una librería y ejemplos para entender la estructura de su arquitectura.

Se le llama Guidance porque no propone una arquitectura fija, es solo una propuesta que tal vez no se adecúe a las necesidades de todos. Sin embargo cuando uno va entendiendo las tripas del asunto, resulta sencillo ir armando pantallas con este modelo.

En principio se debe entender que lo que se tiene es un patrón MVVM (Model-View-ViewModel). El Model es el encargado del trabajo con la BD, pero esos datos se transforman en un ViewModel que está directamente relacionado con la forma de presentar los datos con el View. Esto se logra con el binding en WPF. Así, el ViewModel tendrá los formatos necesarios para mostrarse en pantalla sin más trabajo para el View.

MVVM


El Model se divide en Services, los cuales se encargan del trabajo con la BD.

Digamos que para cada módulo creado, se necesitaría algo así

Module


Y se necesitaría quién iniciara la aplicación, digamos que el contenedor de los módulos. Este contenedor será un proyecto de WPF, que iniciará con un Bootstrapper, encargado de inicializar los módulos, el contenedor de dependencias, y en sí la ventana que contendrá a las demás.

Esa se puede ver así

Shell


Como pueden ver, es tan fácil que se puede hacer hasta en VB hahahha. Esto es solo una introducción. En cuanto le entienda a lo demás lo posteo.

Cheers!