Julio 31, 2008

VMWare 2.0 BETA 2 – An Empire Strikes Back

Novedades

Cuando salió la Beta 1 del VMWare 2.0, me sorprendió muchísimo; en parte porque solucionaba u ofrecía alternativas coherentes (no pun intended) a ciertas carencias del Parallels. Sin embargo, aunque prometí utilizarla en lugar de este último durante un tiempo (no suelo hacer reviews sin haber utilizado el producto un tiempo), tuve que dejar de hacerlo a los pocos días. VMWare 2.0 Beta 1 era casi inservible en términos de usabilidad, estabilidad y velocidad. Todo anda bastante mal en la Beta 1 (y es de esperarse), y muy lento.

Pero ayer salió la Beta 2. Y si bien parece que algunas cosas aún están un poco sin pulir, han aparecido bastantes cosas interesantísimas, que solucionan muchos problemas y ofrecen alternativas tentadoras a lo que ofrece Parallels. No es mi intención hacer una revisión completa, en parte porque ya lo he hecho, pero si enfocarme en aquellos aspectos nuevos que veo en VMWare 2.0 y la impresión que me han causado. Con esto en mente, la BETA 1 instalada y la BETA 2 en un DMG, me embarqué…

… la instalación: idéntica. En un momento -dado que ahora se puede navegar el HDD de la virtual machine sin arrancarla- te pide si quieres instalar MacFUSE, dado que lo necesita para navegar por un disco “virtual”. Le dije que si.

… una vez que está instalado, aparece un lindo cartelito de registración (que antes no estaba creo) al cual la di “después” (como siempre). Y luego nos presenta una bonita pantalla de bienvenida:

Welcome Screen VMWare 2.0 Beta 2

Aunque esa ventana es una novedad, la librería de virtual machines no, y sigue siendo muy similar a la anterior, aunque ahora está más refinada:

VMWare 2.0 Beta 2 Library

La pantalla de preferencias de una máquina virtual en particular, es idéntica a la anterior salvo por la presencia del “AutoProtect”, cuyo icono es excesivamente similar al Time Machine, y de hecho se promociona como el Time Machine de las VMs.
El AutoProtect supuestamente es capaz de tomar snapshots del sistema cada cierto tiempo (aunque agradezco a los ingenieros de VMWare que al menos dejan personalizar el intervalo, no como Time Machine que requiere un “hack” (TimeMachineEditor siendo uno de ellos), para poder cambiar eso. La pantalla es bastante simple y hasta diría que se ve bastante mal y desorganizada, con los espacios mal puestos, pero supongo que fue algo que se deslizó en la Beta sin demasiado cuidado:

VMWare 2.0 Beta 2 AutoProtect

Un aspecto que presenta novedades, son las carpetas compartidas. Parallels en su momento se presentó con una integración muy transparente -y no por ello bienvenida- de las carpetas personales del usuario (Música, Vídeos, Documentos, etcétera) entre el sistema operativo de la VM y el OS X, haciendo que sean “las mismas carpetas”. Esto no agradó mucho y la gente puso el grito en el cielo porque Windows no era lo suficientemente seguro y nadie quería que sus ficheros de OS X sean toqueteados y manoseados por un Windows. Yo lo desactivé en parte porque era un coñazo y no me interesaba para nada. Recuerden que mi único motivo (y el de muchos de ustedes) es ejecutar Visual Studio y poder programar en .NET mientras podemos aprovechar la magia de OS X para todo lo demás. En fin, que ahora VMWare se presenta con una alternativa similar. Se puede desactivar perfectamente (en Parallels no siempre funcionaba bien, lo cual generaba más ira entre los usuarios que no podían), y de hecho así lo he dejado.
Pero no todo acaba aquí en el mundo de novedades. Como se puede observar en la captura de pantalla, aparte de las “carpetas compartidas”, de estas “mirrored folders” (carpetas espejadas), ahora llegaron también las Shared Applications (aplicaciones compartidas). Esto ya existe en Parallels y también despierta cierta controversia, pero más que nada porque Parallels hizo lo contrario, es decir que yo haga doble clic en mi .DOC y me lo abra el Microsoft Word de mi Virtual Machine (que, para mal de males, si estaba cerrada se podía abrir (por defecto) causando un mar de sensaciones negativas mientras esperabamos con el MacOS Beachball a que acabe de cargar el Parallels…). Aquí está más controlado:
VMWare 2.0 Beta 2 Sharing Preferences
A priori parece lo mismo, sin embargo, el pequeño botón de URL Handling, nos permite hacer lo contrario, es decir que todo se abra en Mac OS X, inclusive lo que yo abra dentro de la virtual machine.

Vmware 2.0 Beta 2 url Handling

Por defecto aparece vacío (lo cual resulta un tanto extraño) pero se pueden agregar esas seis categorías, y seleccionar la aplicación que las va a abrir. Toma las que haya configuradas como predeterminadas en OS X, de modo que sólo tuve que agregar, agregar, agregar, agregar… aunque es posible cambiar esto y por ejemplo, utilizar Internet Explorer 7 dentro de Windows como navegador por defecto… (non comment).

Todo esto se puede desactivar y dejar la VM aislada del mundo; eso generará amor en aquellos que prefieren tener al Windows encerrado en una caja de la cual no pueda escapar. Lo sé.

Esta funcionalidad ya existía en VMWare pero con mucha menos personalización y para ser justos hay que decir que en Parallels también se puede personalizar y hacer que se abra todo en Mac OS X, pero al principio generó confusión y a mi me ha pasado que se me abra el “word” de la VM. Supongo que es un claro ejemplo de no poner buenos valores por defecto.

Una linda adición que al fin ha llegado, son los iconos pequeños con vida. Así los llamo yo, pero es que antes eran estáticos y no servían para nada. Me refiero a los que muestran la actividad de la VM. Si, ahora se colorean con un degradé cuando hay actividad, gracias.

Vmware 2.0 Beta 2 Activity Icons

Eso es prácticamente todo lo “nuevo” que se ve jugando por los menúes y la interfaz de usuario, pero hay One More Thing™. Las dificultades de hacer el mapping de teclado entre sistemas operativos diferentes es equivalente a la complejidad de una cirugía de corazón. Ningún sistema operativo responde igual a otro ni utiliza los mismos shortcuts. En mi humilde opinión, VMWare no respondía correctamente a este problema, porque si bien tímidamente hacía mapping del cmd-c/v/x para copiar, pegar y cortar respectivamente (de modo que no tengamos que hacer cmd-c en Mac OS X, cambiar a la VMWare y apretar control-c en Windows (o Linux)), el resto de las teclas no respondían correctamente, así bien, nos encontrábamos (especialmente los usuarios de Visual Studio) con muchísimas teclas que no servían para nada. Un claro ejemplo que a mi me afectaba constantemente era el de guardar un fichero. En Windows, tradicionalmente fue siempre control-S, de “Save” (guardar). Estando en cualquier programa que tenga documentos “guardables”, apretar control-s era garantía de que se iba a hacer un “Save”. En VMWare, y acostumbrados a apretar CMD para todo, si no recordabas cambiar a la tecla control, apretabas cmd-s (que, adivinen, también es guardar en Mac OS X) y acababas haciendo cualquier otra cosa, menos guardando tu documento; que era lo que en realidad querías hacer. Como este, puedo citar muchísimos ejemplos de combinaciones de teclas que resultaban “annoying”.
Los muchachos de Parallels hicieron algo mejor. Invertir la tecla. CMD ahora es control (para Windows claro está) y control es “algo así como la tecla de windows” (literalmente). O sea, se inventaron un mapeo de teclas “mas o menos razonable”, que le permita al usuario de Mac/Win compartir la mayoría de las combinaciones de teclas. Esto es mucho mejor y lo digo por experiencia, pero también tiene sus problemas. Algunas teclas no funcionan, algunas no están bien, algunas requieren de una mano de araña para poder ser tocadas (por las combinaciones), etcétera. Sin embargo, a pesar de estas complicaciones, en el día a día, es infinítamente más cómodo el método de Parallels. Hasta hoy.
VMWare inteligentemente cogió lo mejor de ambos mundos. Mappings, si, pero personalizables. Veamos la imagen directamente:

Vmware 2.0 Beta 2 Keyboard and Mouse

Esto parece una nimiedad, pero no lo es en absoluto; todo lo contrario. Entre los muchos problemas que se presentan entre Virtual Machine vs. OS X respecto de las teclas, estaba el del botón de “enter” del teclado numérico. Pues bien, yo lo cambié y le hice que haga “Return” y funciona de maravillas. Me había quejado bastante de ese detalle porque uso ese “enter” muy a menudo y en la virtual machine no hacía nada (era, como pueden ver, el ALT derecho). En fin, que se pueden agregar más combinaciones de teclas en uno y otro. O sea, si en OS X yo presione “tal tecla”, que en la Virtual Machine se presione tal otra (o tales, porque pueden ser combinaciones). Esto permitiría a los más fetichistas, poner una tecla en OS X que haga Control Alt Delete en Windows. :)

Este método, no se si será el mejor, pero sin duda es mejor que lo que había en ambas aplicaciones (VMWare y Parallels) porque permite personalizarlo al máximo. Entre las otras pestañas, se pueden también cambiar los botones del ratón (¡bien ahi!) y los shortcuts del Fusion en particular (pasar a pantalla completa, a Unity, suspender, etcétera). Bastante más completo que lo que había y muy bienvenido.

Una interesante peculiaridad que quiero destacar y que los observadores más detallistas ya habréis visto, es la existencia de Profiles. Si, se pueden guardar perfiles con combinaciones de teclas. Muy útil si alguien quiere usar un juego o lo que sea con teclas “raras” y luego usar Visual Studio y tener otras. Interesante sería encontrar una forma de cambiar rápidamente entre ellas y no tener que andar navegando por menúes de configuración. Pero bueno, que es Beta…

Uso, abuso y errores.

Como toda Beta que se precie de tal, no estará libre de problemas. VMWare Beta 2 no es una excepción a esta regla ni mucho menos. Ni bien arrancó por primera vez, le presenté un escenario difícil. Mi VM estaba suspendida en Beta1. Cuando la suspendí, lo hice con Unity encendido y con dos pantallas activas. Ahora estaba con una pantalla en modo espejo (mirror), en Beta 2 y la segunda pantalla era otra diferente. Una maravilla.
Se colgó, así de feo (hasta que hice Force Quit x 2, luego explico):

Vmware 2.0 Beta 2 cpu Usage

Resulta que el VMWare hace algo muy inteligente (respecto del Parallels), y es separar todo en dos procesos. Uno es la VM en si y otro proceso es la ventana en la cual vemos la VM. Si ese proceso de la “ventana” se cuelga o es cerrado violentamente (como hice yo), la VM sigue funcionando en background. Esto es bueno y malo. Bueno porque si lográsemos abrir el proceso de “ventana” nuevamente, el Windows estaría allí, como si nada. Malo porque no siempre se puede “abrir” el proceso de ventana fácilmente. Y muy malo porque ese proceso de VM que hay en background no es visible desde el Dock ni ningún otro sitio, excepto el Activity Monitor. De modo que un usuario inexperto puede quedar atrapado en una VM que está andando (y por ende devorando recursos) y ninguna ventana que lo indique. El concepto es bueno, pero es peligroso. No se si ha cambiado entre Fusion 1.1 y “ahora”, pero antes era así. Y yo tuve que matar dos veces un VMWare, primero maté la “ventana” y luego, al darme cuenta que mi CPU seguía al 200% y subiendo de temperatura, utilizando el utilísimo iStats Menu, que siempre tengo (y que podéis observar en la captura anterior), me di cuenta del proceso que estaba alterando todo. Lo maté y boom.

En el segundo intento, decidir activar el Dual Display en lugar de Mirror, para que al menos “cargue todo”. Lo conseguí. Aunque el Unity arrancó completamente enloquecido y sin funcionar bien, pasé a “ventana” y se arregló. Una peculiaridad (y asquerosidad) es esta ventana:

Vmware 2.0 Beta 2 Unity Window

No se para que sirve (bueno ahi lo dice) o cual es el verdadero objetivo ni que hace aquí; es un verdadero misterio. Supongo que será algo de la Beta 2 porque es horrible. En el título (que no se ve bien) dice “Temporary Unity Window” o ventana temporal de Unity. Esperemos que le dure poco su tiempo.

No instaló ningunas VMWare Tools nuevas (o no me di cuenta), eso si, mi Windows estaba desactualizado porque hacía mucho que no lo usaba, de modo que se descargaron algunos Windows Updates feos y molestos que me pidieron reiniciar. Una vez en orden, hice update del Subversion de nuestro repositorio, y cuando vinieron todos los cambios, abrí Visual Studio. Todo funcionó como era de esperarse. Allí me decidí a probar el Unity nuevamente. Lo activé y luego de algunos ajustes, comprobé que ahora funciona mucho mejor que en la Beta 1. Es el único que puede integrar verdaderamente el Windows con el OS X en múltiples monitores. VMWare 1.1 hace cualquier cosa y Parallels ni les cuento, es un hack grande como una casa. El primero no puede usar múltiple monitor en modo Unity, boom. Asunto sellado. Y el segundo si maximizas una aplicación mientras estás en modo Coherence, se maximiza a la totalidad de las pantallas. Muy gracioso e inservible. O le podrías decir a Coherence, utiliza sólo una pantalla (y estás en el punto de partida). VMWare 2.0 Beta 1 traía la novedad de que el modo Unity ahora funcionaba bien. Y era verdad. Finalmente se podía ejecutar Visual Studio en una pantalla, debugear en otra, mover paletas, etcétera. Exposé funcionaba, todo era color de rosas. Excepto que la Beta 1 andaba muy mal. Muy lenta. Con muchos problemas.
Pero ahora está la Beta 2. Y me dispongo a lo largo de estos días, a cumplir aquella promesa famosa de trabajar un tiempo con la Beta y ver si es productiva en el día a día (a pesar que VMWare recomiende no usarla para “Producción”). La única forma de ver como se comporta es usándola. Ya vimos lo que hay de nuevo, lo bueno, lo malo y lo feo que se ve sobre la superficie de este nuevo VMWare, pero ahora me toca hurgar más abajo y ver si es realmente usable.

Un último detalle interesante es la gran cantidad de compatibilidad que ofrece con otros sistemas operativos, un ejemplo son las versiones de Linux:

Vmware 2.0 Beta 2 Operating Systems Supported

Impresionante. Destacan también todas las versiones de Windows desde 3.1 en adelante, FreeBSD, DOS y en modo “experimental”, Mac OS X Leopard Server. Interesante.

En fin, que me voy a programar que se hace tarde. Ya os comentaré que me deja el VMWare 2.0 Beta 2.
Si sois valientes, descargar: VMWare 2.0 Beta 2

Julio 15, 2008

Stupid OS X Tip ‘o The Day

Hoy de casualidad, he descubierto que si tienes desactivado el feedback de la interfaz cuando cambias el volumen (y yo lo tengo desactivado porque te quema los oídos), hay una forma de oírlo sin tener que cambiar las preferencias.

Preferencias de Audio

En lugar de tener que cambiar eso cada vez que se nos ocurra que el pitido es interesante, simplemente basta con hacer shift-F10, F11 o F12, según deseemos hacer mute, bajar o subir el volúmen.

Estupidísimo, pero alguien puede encontrarlo útil.

Julio 2, 2008

Spamsieve vs. el mundo

Hacía mucho que no publicaba mis estadísticas de Spamsieve. Hoy las abrí luego de mucho tiempo y me di cuenta que el 51% de los mensajes que recibo son de correo basura.
La verdad que es bastante incómodo. Eso si, desde el 21 de Febrero de 2005 hasta hoy, sólo he tenido que corregirlo poco más de quinientas veces. Pero en ese tiempo, he recibido unos 62.740 mensajes. Es decir que el 0.8% de las veces que recibo un mensaje, puede ser que tenga que corregir al filtro anti correo basura. Dicho de este modo no se si suena a mucho o a poco; en la práctica, es un valor cercano a nunca. Según el Spamsieve, recibo 25 mensajes de correo basura al día.

SpamSieve Statistics 2008

Total, que la realidad es que nunca se equivoca y cuando lo hace, la mayoría de las veces son por formas “nuevas” que tienen algunos spammers de enviar basura, pero una vez que se lo enseñamos, Spamsieve ya no vuelve a cometer el mismo error. Y si se me ha ido algún buen correo por error, la respuesta es si. Alguna vez (False Positives) se han escapado algunos. Especialmente emails de aerolíneas y reservas que Spamsieve no conoce y que con tanta imagen e hypervínculo le resultan sospechosos. Claro que una vez que le enseñas, ya no se equivoca.

Sigo recomendando SpamSieve a todo el mundo, a pesar que en Mac OS X Leopard el nuevo Junk Filter del Mail sea “bueno”.

Junio 27, 2008

¡WordPress.com no usa Markdown! Bad Boys!

Estoy descubriendo el poder de TextMate. Sin embargo he descubierto que WordPress.com no soporta Markdown. Una pena. :( Supongo que habrá que usar HTML.

Mayo 14, 2008

Smart Folders: ¿Cómo buscar en más de una ubicación?

Me di cuenta de algo muy curioso, las llamadas Smart Folders de Mac OS X 10.5.2, no son tan Smart. En parte porque tienen diferentes formas de trabajar que pueden no resultar enteramente obvias a priori; se puede decir que literalmente reaccionan de forma completamente diferente según se las invoque de un sitio u otro. 

Para no hacer esta entrada muy extensa, voy a ir al grano. Supongamos por un instante que quiero buscar todas las películas (ficheros de vídeo) que tengo en mi ordenador. Tendría -en una primera aproximación- las siguientes opciones:

1- Voy a la lupa de Spotlight y busco “kind:movie”. Boom. Todas las movies. Pero ¿cómo le digo que sólo quiero una ubicación? Sólo puedo escoger “This Mac”, “Martin” o “Shared”. Chst… nada. (no poner un espacio entre kind:movie, dado que la búsqueda no funcionará.)

2- Ante mi fallido intento, decido ir al finder y poner New Smartfolder. Se abre una ventana de este tipo: 

Una Smart Folder vac�a y nueva

Entonces sigo con mi idea original y aprieto el (+) arriba a la derecha y digo: 

Kind is Movies (que literalmente significa: el Tipo es Películas)

Boom, automáticamente, aparecen los resultados (en mi caso 545). Fantástico lo he logrado. Hasta que me doy cuenta que me está encontrando demasiados y yo sólo quiero los de mi Escritorio, no toda mi librería de video que tengo en /Movies. Comienzo a buscar y no encuentro como cambiar la ubicación, dado que sólo me deja buscar en tres sitios: “This Mac” (o sea todo el ordenador), “martin” (mi carpeta personal) o Shared (que es la carpeta compartidos), otra vez lo mismo. Ya sea de un modo u otro, siempre acabo teniendo las mismas ubicaciones.

What?

Exacto, no puedo poner una ubicación arbitraria. Aborto mi Smart Folder y pienso en una tercera solución. Y se me ocurre. Recuerdo que cuando buscas desde el Finder (en la casilla de buscar) la segunda ubicación (en el ejemplo anterior es: “martin”) cambia para reflejar la carpeta en la que estoy buscando, de modo que si voy al escritorio e inicio una búsqueda, podría poner sólo el escritorio. Veamos.

3- Buscar desde el Finder, estando en la ubicación deseada: Abro el finder y hago clic sobre el “Desktop” (escritorio). Pero ahora no tengo las casillas de las Smart Folders, porque esas sólo aparecen cuando busco. What The Fuck! Ok. Haya paz. 

3 Plus- Ok, con el criterio anterior, se me ocurre que si yo inicio una búsqueda en el Finder, aparecerán las barras que tanto estoy buscando… efectivamente. Inclusive ahora puedo combinar la ubicación con el “Kind is Movie” que tanto estaba buscando. (Con el propósito de que aparezca algo, he cambiado Movie por Image en las Screenshots, pero es que no tengo Movies en mi escritorio). También podría haber escrito “kind:movies” en la casilla de búsqueda y no tendría el problema que viene a continuación.

Sólo que hay un problema, no aparece nada, porque busqué por Blabla, como se puede apreciar en esta captura: 

Buscando

Y es que si no ponía “Bla bla” (o similar), no me aparecían los controles, estos controles: 

…que si aparecen cuando uno pone “New → Smart Folder”.

En fin, que para poder buscar, ahora tengo que deshacerme del “BlaBla” que he puesto inicialmente, y puedo hacerlo, simplemente borro lo escrito (sin tocar las opciones que puse antes) y ¡boom! de pronto aparecen las imágenes que tengo sobre el escritorio. Hay que tener cuidado de no apretar la pequeña “x” que hay al lado del texto de búsqueda, dado que ello borra toda la búsqueda y todos los parámetros que haya introducido, y debería comenzar nuevamente. 

Ahora puedo apretar el botón de Save, darle un nombre a mi búsqueda y seré feliz, ¿correcto?

¡No!

Resulta que también querría películas que tengo almacenadas en otras dos carpetas; pero no quiero tener dos Smart Folders, quiero que lo haga la misma. Esto nos lleva al siguiente problema:

No existe forma de especificar más de una ubicación de búsqueda desde la interfaz de Leopard

Whoa! ¿Y entonces? Y aquí es donde entra el juego el Hackintosh. Aquí es donde los usuarios inexpertos mueren y los demás, escriben entradas como estas. Resulta que there’s a way.

Primero que nada, asumo que habéis guardado la Smart Folder anterior: 

Saving Smart Folder

Recordar que yo cambié Movies por Images para tener algo que mostrar. Bien, es importante ese nombre porque ahora lo vamos a usar. Necesitamos un editor de textos. Yo uso TextWrangler, que es gratuito, binario universal, etcétera y es muy bueno. Pero se puede usar cualquier editor de textos, siempre y cuando guarde el fichero en formato texto. No querría ver una Smart Folder en Pages.

¿Y cómo agrego más ubicaciones a mi Smart Folder?

Respuesta corta: editando el fichero con un editor de textos, agregando las ubicaciones allí en el XML y reiniciando el Finder.

Respuesta larga: Abrir el Finder y navegar hasta <usuario>/Library/Saved Searches

Aquí están las mías: 

Busquedas almacenadas

Allí está la diabólica. ¿Qué hago con ella? Pues bien, como no te dejará abrirla con “nada”, lo mejor es arrastrarla al icono del TextWrangler (o tu editor favorito) que tengas en el Dock. Y eso hago. Arrastro “My Freaking Images” al icono del TextWrangler. El resultado es que se abre un fichero XML. Si Sras. y Sres., las Smart Folders son ficheros XML. No voy a analizar cada fragmento del XML en si, pero si van hasta el final, encontrarán algo así:

<key>FXScopeArrayOfPaths</key>
<array>
           <string>/Users/martin/Desktop</string>
</array>

Que como pueden ver es un Array of Paths… y si es un Array (Matriz para los Castellanos), sugiere la capacidad de tener más elementos. ¿Verdad? Si. De hecho, modificando cuidadosamente esa Matriz, podemos agregar “n” ubicaciones. Y así lo hice, el mío quedó así:

<key>FXScopeArrayOfPaths</key>
<array>
         <string>/Users/martin/Desktop</string>
         <string>/Users/martin/Pictures/MacStuff</string>
         <string>/Users/martin/Pictures/Me</string>
</array>

Al guardar el fichero teóricamente ya estaría listo y buscaría en todos los sitios, ¿verdad? No. Es necesario reiniciar el Finder para que este cambio se vea reflejado. Pues eso es fácil, apretamos la típica combinación de ⌘ ⌥ esc (cmd-alt-esc), seleccionan el finder y Relaunch.

Unos segundos después, cuando el Finder regrese de su viaje, si abren la Smart Folder (si no la agregaron a la barra lateral, podrán encontrarla en la ubicación Users/martin/Library/Saved Searches), verán los resultados correctos:

Resultados de mi Smart Folder

En fin, un proceso curioso que descubrí gracias a Google y experimentando un poco. (Honestamente lo encontré de casualidad porque decidí probar si funcionaba y como no lo hacía casi me doy por vencido, hasta que se me colgó el Finder y -por ende- se reinició solo y la Smart Folder comenzó a funcionar, pero esto no debería decirlo, de modo que olvidarlo ya.)

 

Mayo 13, 2008

¿Cómo decirle a Safari que no abra más Ventanas?

Querido Safari, 

¡Qué tiempos aquellos de la interfaz Metal Brush! Hoy con tu nuevo look estás mucho mejor. Sin embargo, ¿podrías dejar de abrir nuevas ventanas y en su lugar poner todo en nuevos Tabs? Muchas Gracias.

Gracias a este muchacho, he podido encontrar la solución; bueno, la encontró él y yo aquí la copio; ok, que tampoco la encontró él, sino que fue este otro, pero ese habla alemán. Resulta que me gusta usar Tabs para navegar, y me jode mucho que se me abran más ventanas, ya bastantes tengo abiertas. Con ejecutar el siguiente fragmento en una terminal, el Safari abrirá siempre todo en una nueva Tab. Maravilloso:

Activar: 

defaults write com.apple.Safari TargetedClicksCreateTabs -bool true 

Y si no os gusta… pues desactivar:

defaults write com.apple.Safari TargetedClicksCreateTabs -bool false 

Y voilá. 

(nota: se debe ejecutar desde la Terminal)

Mayo 7, 2008

VMWare 2.0 Beta Update and Parallels 3.x, XP Service Pack 3 and more…

En mis entradas número uno y dos sobre VMWare Fusion y Paralells for Mac, comparaba en escenarios reales el rendimiento y la respuesta durante días y días de trabajo habitual dependiendo de Windows “virtualizado”.

Las condiciones eran simples, utilizar Visual Studio 2005, las herramientas de Microsoft SQL 2005 (Cliente) y Subversion (TortoiseSVN), durante todos los días, programando en C#.NET una aplicación de Windows Forms subjetivamente “grande”.

Pues bien, la historia, por si no tenéis ganas de leer los dos artículos anteriores es mas o menos así:

Comencé con Parallels cuando era nuevo. Estaba sorprendidísimo de poder utilizar un Windows XP y que funcione tan bien; sobre todo porque venía de experiencias con el VirtualPC de Microsoft. Cuando salió el VMWare Fusion, el Paralells andaba tan bien que no sentí que fuese necesario cambiar. La gente tenía (y tiene) opiniones mixtas sobre VMWare Fusion. Gente que reportaba que le funcionaba “mucho más rápido” y otros que opinaban exactamente lo contrario; como me considero un usuario que realmente empuja los límites de la virtual machine, decidí que era un buen momento para compararlos en mi día a día. Y eso hice.

No me encontré con grandes sorpresas, pero si con algunos detalles del VMWare que no me gustaron mucho (y otros que -por el contrario- me parecían muy buenos). La conclusión final fue que ambos son similares y se pueden utilizar indistintamente. En mi situación particular, noté que -a pesar de ser más “pesado”- el Paralells respondía con mayor fluidez dentro de la virtual machine, sumado a que el mapping de teclas del VMWare hacían más incómodo el cambio de Windows / Mac y encima, el “enter” del teclado numérico de mi Apple Keboard no hace las veces de Enter en VMWare (una tecla que uso bastante).

Debido a esos detalles y dado que no aportaba ninguna mejoría considerable, es que trabajé unos 30 días continuos con el VMWare y cuando acabó la versión de pruebas, volví al Paralells. Luego se actualizó el Mac OS X, se actualizaron el Paralells y el VMWare con updates y las cosas cambiaron. De modo que volví al VMWare y todo seguía en orden; treinta días después estaba otra vez en el Paralells (nuevamente actualizado).

Amén de los ligeros cambios, mejoras aquí y allí, al final, nada cambió significativamente para mi. El Visual Studio sigue funcionando bien -con sus detalles- y todo funciona como es debido. Pero los últimos meses, estuve en Paralells, dejando al VMWare abandonado. Un gentil lector (y otros tantos RSS Feeds) me avisaron de la nueva Beta del VMWare 2.0, que supuestamente “corrige” muchos de los problemas que yo mencionaba. De modo que armado de valor (y aprovechándolo como excusa para probar nuestra aplicación con Service Pack 3 de Windows XP) me lancé a instalarlo…

Mi objetivo no es comparar si mejora tal o cual cosa, sino jugar con escenarios reales, con lo que yo usaría. No me importa si la mejora es debido al Service Pack 3 de XP o al nuevo VMWare o a que, simplemente que yo usaré *eso* y es mejor (o peor) que *aquello*.

Así pues, descargar el VMWare 2.0 Beta es un juego de niños y de 300MB. Se descarga, se instala (reemplaza al anterior) y arranca. Mi virtual machine estaba suspendida en la versión 1.1, sin embargo esto no fue un problema. Arrancó y me indicó que las VMWare tools estaban desactualizadas y requerían un update.

Lo primero que me sorprendió al ver el nuevo VMWare es la nueva pantalla de “Librería de Máquinas Virtuales”.

La pantalla principal de VMWare 2.0 Beta

Es subjetivamente mejor que la anterior que era muy sosa. Otra pantalla que también ha sufrido un rediseño considerable, es la de las propiedades de la máquina virtual.

Como pueden ver, está todo más ordenado y accesible; de momento esto es sin dudas mucho mejor que en Paralells. Sin embargo uno no accede a estas opciones tan a menudo como para que ello signifique el día y la noche.

Las VMWare tools se actualizaron sin problemas…

Actualización de las VMWare Tools

Aunque en Paralells este proceso es un poco más interesante, porque él mismo se encarga de arrancarlo automáticamente. Si bien esto puede parecer una tontería, muchos de los problemas de las VMs suele deberse a versiones incorrectas o mal instaladas de las herramientas. Paralells de algún modo, nos fuerza a instalarlas, lo cual es bueno desde mi humilde punto de vista.

To Service Pack 3 or To Not Service Pack 3

Cuando arranqué la VM que tenía en mi “antiguo” VMWare Fusion, me indicó que el Windows tenía nuevas actualizaciones, entre las cuales figuraba Service Pack 3. Me pareció un excelente momento para probarlo. De modo que lo puse a instalar. Tardó todo el proceso una hora mas o menos (entre que lo descargó, lo instaló, reinició, etc.) Luego vinieron los momentos del síndrome de “es todo más rápido”. La realidad es que según Microsoft (no tengo aquí el vínculo) hay ciertas mejoras de performance en el Service Pack 3. Cuales son o dónde están, es algo que desconozco. Lo interesante es que con el SP3 instalado, todo siguió funcionando sin problemas. El Visual Studio 2005 arrancó, mi solución cargó, compiló y se ejecutó de maravillas. Da la impresión de ir ligeramente más rápido que el anterior, especialmente en el tema del vídeo, pero es una percepción que no puedo asegurar. Nuestra aplicación dibuja mucho en GDI y GDI+ (inherentemente lentos) y se nota el redraw. En VMWare era bastante más lento que en Paralells, y ahora parecen ir igual.

No puedo saber si es gracias al VMWare o al Paralells, pero eso no me interesa (sospecho que es el VMWare), dado que como dije al principio, mi intención no es ponerlos palmo a palmo para decir este es mejor que el otro, sino poder encontrar la herramienta que nos permita programar más rápida y cómodamente.

Como ya hice una revisión de ambos productos en su momento, no voy a hacerla nuevamente, en su lugar voy a listar las cosas buenas y malas (según mi opinión y experiencia) y luego aceptaré comentarios.

Tanto el modo Coherence de Paralells como el Unity de VMWare tenían ventajas y desventajas. Pero creo que VMWare ha dado en el clavo logrando solucionar el inconveniente más grande de ambos: Pantallas Múltiples. El primer día que tuve más de una pantalla fui muy feliz. Realmente la capacidad de tener la aplicación en una y el Visual studio en otra es importantísima. Nos permite interactuar con la aplicación, al tiempo que vemos como pasan las líneas de código, los Watchs, etcétera. Si hay breakpoints podemos ir haciendo debug en simultáneo, mientras vemos como se actualiza la aplicación. Es brillante y sin dudas, como el mismísimo Jeff Atwood recomienda, un programador debe tener por lo menos dos pantallas.

Cuando me pasé a las Virtual Machines en Mac OS X y dejé de lado mi PC con Windows, perdí esa capacidad de algún modo. Porque ahora había una tercera pantalla en juego. Por un lado necesitaba mis “dos pantallas” para Windows, pero también necesitaba poner las aplicaciones de Mac OS X en otro sitio. Resultado: Ni Paralells ni VMWare podían trabajar bien en sus respectivos modos “Coherence” o “Unity”. Hasta hoy.

El VMWare 2.0 realmente reconoce las pantallas como es debido. Ya no más diálogos en el centro de ambas. Ahora puedo tener mi Aplicación en un sitio y el Visual Studio en el otro. Todo gracias a VMWare 2.0. Anda ligeramente “mas lento” visualmente, es decir, se nota que es Beta y que lo están ajustando pero, realmente funciona como es debido. En lugar de usar Full Screen común y corriente, lo puse en modo Unity y boom. Moví la barra de tareas de Windows (que se puede ocultar desde un menú de VMWare) hacia la derecha en el segundo monitor, en modo vertical (como siempre la he usado) y el Visual Studio también, lo maximicé y quedó sólo en esa pantalla. Bien. Ejecuté mi proyecto y para mi alegría, respondió como en Windows. La aplicación (que se maximiza) fue a parar a la pantalla 1 (la de OSX) por lo que tuve que ocultar el Dock (alt-cmd-d). Brillante. Mi funcionalidad había vuelto. Me falta probarla más para determinar qué problemas puede tener, ya sea porque es Beta o porque hay algo que está mal implementado desde mi punto de vista. De momento anda maravillosamente. Quizás el único problema es que cuando apagas el Windows, se pasa a modo Full Screen con una resolución que abarca todos los monitores y si hay algún diálogo de guardar o algo, no lo verás bien. Esto posiblemente sea un Bug que esperemos corrijan a futuro en la versión final.

Una de las cosas que se pierden con Unity (o Pantalla Completa) son los iconos que indican la actividad de la VM. En VMWare lamentablemente no cambian de color o estado según la actividad (como recalqué en mi entrada original). Esto sigue siendo así, sin embargo, han agregado una curiosa funcionalidad.

Barra de Estado de VMWare 2.0 Beta

Se pueden montar dispositivos presentes tocando sobre los iconos “grises”. O sea, si tienes un Disco Duro externo conectado al USB y no está montado en Windows, pero si en OSX, puedes montarlo allí también, o administrar las carpetas compartidas desde estos pequeños iconos. Lamentablemente, los azules (CD, HDD y Red) no cambian de color cuando hay actividad, como lo hacen en Paralells. Esto es importante para saber qué hace la VM en todo momento. Desgraciadamente en modo Unity y Pantalla Completa, perdemos estos cómodos iconos, aunque no se me ocurre una forma de solucionarlo.

Pues bien, el modo Unity funciona como ningún otro, gran punto para VMWare. ¿Pero qué pasa con las teclas?

En la versión 1.0 de VMWare (y de Paralells) el mapping de teclas entre Windows y OSX era diferente. Todos sabemos que en Macintosh, copiar, pegar, cortar, deshacer, etcétera, se hacen desde la tecla “cmd”, en lugar del “control” de Windows. Copiar y pegar algo entre Windows y OS X era una tarea compleja porque había que recordar cambiar de control a cmd todo el tiempo. El resultado era simple: fallabas 20 veces por día.

Con el paso del tiempo y las actualizaciones, esto fue reparado permitiendo que el mismo CMD-C/V/X/etc. de Mac OS X, respondiera del mismo modo en Windows. De modo que ahora se puede copiar dentro de windows con cmd-C y pasar a Mac OS X y pegar con cmd-v.

Tanto Paralells como VMWare lo han implementado de forma diferente. Y Aquí creo que el punto sigue siendo para Paralells. El tema es más complejo de lo que parece porque ni Windows ni OS X son iguales. Sin embargo VMWare sólo ha mapeado 3 ó 4 teclas, mientras que Paralells optó por intercambiar las teclas.

¿Qué pasa con el método VMWare? Que cmd-c hace copy, pero control-c también. Eso no sería un problema, si no fuese porque en Windows la mayoría de los programas guardan sus datos con control-S (de Save, guardar). En Paralells esto funciona perfectamente porque es cmd-S (recordar que ellos invirtieron la tecla, el cmd-responde como control en Windows), sin embargo en VMWare no. VMWare sólo ha mapeado copy, paste, cut. De modo que acostumbrado a usar cmd-s en Mac y en Windows/Paralells, tengo que recordar usar control-XXX para todas las demás funciones cuando estoy en VMWare. Esto es muy incómodo y lleva a errores todo el tiempo. La memoria muscular de usar control y tener que cambiar a cmd es automática con el paso del tiempo, porque al usar Mac OS X, indefectiblemente te acostumbras a usar cmd. Amén que OS X tiene un excelente soporte de shortcuts (atajos) y muchas funciones se hacen con el teclado. Lo que no es fácil de entrenar, es la memoria músculo para que recuerde sólo unas funciones con cmd- y otras con control-. Eso es malo. Muy molesto. Y repito, me lleva a cometer errores todo el tiempo. El sistema operativo es Mac OS X, es quien manda. Casi se puede decir que es lo mismo que Control en Windows. Sin temor a equivocarme aseguro que el 90% de las funciones que en Windows se hacen con alguna combinación de Control, en Mac OS se hacen con cmd. (Guardar, Imprimir, Copiar, Pegar, Cortar, Buscar, etcétera). ¿por qué no invertirlas como hizo Paralells?

En fin, este detalle es muy molesto en el día a día y lamento que los chicos de VMWare no hayan ofrecido la posibilidad que ofrece Paralells. No se si es lo mejor o peor, pero para Visual Studio, es mucho más cómodo acostumbrarse a usar todo el tiempo cmd (como si de una Mac se tratase) a que tener que estar recordando cambiar de ctrl a cmd todo el tiempo. Este inconveniente ya lo mencioné en su momento y lamentablemente sigue igual. :(

¿Imprimir?

La impresión en ambos productos desde la máquina virtual funcionaba bien. Agregabas la impresora normalmente en Windows y listo. VMWare ha dado un paso más. Asume que si tienes tu impresora configurada en OS X, pues deberías poder imprimir en Windows perfectamente. De modo que han activado una opción para ello:

Configuración de las Impresoras Compartidas entre OSX/Windows

Como podéis ver, es bastante simple. Yo tengo tres impresoras, dos HP y una Brother (por defecto). De modo que me lancé a probarlo. El primer problema que me encontré fue que el Printer Spooler service estaba apagado (yo lo había apagado) de modo que tuve que ir a Servicios y encenderlo; tan pronto como hice eso, me apareció una _#VMWareVirtualPrinter (feo nombre). No pude saber a que impresora corresponde, de modo que tuve que probarlo…

Diálogo de Impresión con VMWare Fusion 2.0

No me anduvo inicialmente, porque tengo que autenticarme en Mac OS X antes de que me dejen imprimir los compañeros de Windows (las impresoras están conectadas a un Windows y me conecto vía samba).

La realidad es que tampoco me anduvo después de eso, así como tampoco me respetó las propiedades de papel (A4 en lugar de Letter); en fin, supongo que esto funcionará bien en un futuro cercano, inclusive será completamente automático; sin embargo mi experiencia es: no me anda. Tampoco me ha permitido elegir otra impresora, dado que sólo me aparece una. He desactivado todo (dado que no imprimo desde Windows) pero tenerlo en cuenta. En cualquier caso, siempre se pueden instalar los drivers nativos de Windows y saltarse esta automatización.

Un interesante shortcut que nos ofrece VMWare 2.0 es el cmd-L para lanzar aplicaciones en la máquina virtual, como incluye “live search”, es una forma muy QuickSilver/Spotlight de lanzar aplicaciones de Windows.

Lanzador de aplicaciones de VMWare 2.0

La búsqueda es muy rápida y resulta útil, algo que jamás hubiese pensado. En fin, es cómodo y poco más.

El Dock de OS X

En modo Unity, el VMWare no nos deja elegir si queremos que las aplicaciones de Windows aparezcan en el Dock o no; aparecen siempre. Esto es bueno y malo. Malo porque me gustaría quitarlas, pero bueno porque al final, se integra con el cmd-TAB de OS X. De modo que puedo pasar del Visual Studio al Mail.app con cmd-tab, algo que antes requería (inclusive en Paralells), que cambie a la VM usando cmd-TAB y luego use control-TAB (en Windows) para cambiar de aplicaciones. El modo Unity permite que eso esté integrado y ahora que respeta los múltiples monitores, no hay motivo para no usarlo. Con el lanzador de aplicaciones y los iconos en el Dock, quizás hasta sea posible eliminar la barra de Windows, dado que contiene un Reloj (que ya tengo en la barra de OS X) y el System Tray, que sería lo único que no tendría (ni uso). De modo que me arriesgué y desactivé la barra de Windows

Menú View de VMWare 2.0 Beta.

El resultado fue que la barra desapareció unos 2 ó 3 segundos después y gané todos esos pixels. ;) Si me acostumbro al cmd-L, ya no la necesitaré de vuelta. Paralells también tiene esta funcionalidad, pero el problema es que el modo Coherence no respeta las múltiples pantallas, y eso es un punto negativo que hace que haya que usarlo en Pantalla Completa o en Pantalla. Y claro, perdemos el amor de los múltiples displays.

Bugs, Dudas, Comentarios, Annoying things, etcéteras…

Hay algunas cosas raras, me imagino que siendo una versión Beta 1, pues está claro que existirán. Veamos algunas de ellas.

Suspender la máquina virtual anda más rápido que antes (gracias), sin embargo hace cosas raras en modo Unity. Pasa a un pseudo pantalla completa y mueve las ventanas.

Al restaurarlas, las ventanas no vienen a la posición que estaban. La barra de tareas, que está oculta via VMWare, realmente está allí, sólo que con algún truquillo no se ve. Pero las notificaciones del System Tray aparecen…

Notificaciones Fantasmas

…o eso parece. El resultado es que las ventanas viajan de un monitor a otro y cambian de tamaño y que durante algún momento el maximizar no es “suficiente” hasta que VMWare no guarde la barra de tareas en el Bag of Holding en el que la guarda.

La red no funciona ni bien arranca el VMWare porque fuerza un refresco de la dirección IP (en el caso de usar DHCP como yo).

¿Qué es eso? Bueno yo lo sé, pero un usuario puede sentir temor, amén que si tenías alguna aplicación que usaba la red, estará desconectada hasta que el “renovar” de la red acabe. Y eso puede demorar unos segundos. En mi opinión debería mantener la red como estaba. No lo sé. En todo caso la ventana de “DOS” es fea.

Los iconos de Windows no son “bonitos” en alta resolución como en OS X (512×512), de modo que se ven “feos” cuando haces cmd-TAB. Esto no es un problema del VMWare pero bueno, lo menciono como un detalle. En el Dock se ven “ok” siempre y cuando no uses un dock del tamaño de un refrigerador.

Conclusión Final (y temporal)

Paralells fue actualizado pero era más bien un “service pack” para reparar problemas con Leopard. Leopard fue actualizado a 10.5.2 (pronto 10.5.3) y todo funcionó un poco mejor. VMWare había sido actualizado también (ver. 1.1) y corregía más fallos y problemas con Leopard, pero no fue sino hasta ahora, que creo que las cosas se han desnivelado para el lado de VMWare. Si bien siguen sin arreglar el Keyboard Mapping como creo que sería mejor, al fin y al cabo la versión 2.0 promete mucho. Naturalmente la gente de Paralells no se quedará sentada mirando y aparecerá con algo similar. Sólo resta saber si será mejor o peor. Eso es lo bueno de la competencia entre ambos. El tiempo nos dará las respuestas de Paralells y VMWare. Lo que si es seguro es que desde el día uno en que apareció Paralells, las cosas siempre han ido mejorando notablemente. Recordar que yo trabajo en un “humilde” Macbook Pro con “sólo” 2GB de memoria.

Durante los próximos días trabajaré en VMWare 2.0 Beta exclusivamente y a medida que obtenga más información, actualizaré esta entrada o agregaré una nueva para comentarles que hay de nuevo. Stay in touch.

Abril 28, 2008

La división entre lo correcto y lo útil

Intentaba ilusamente descargarme un wallpaper que estaba usando y me gustaba. No podía porque el Firefox Beta 5 (Ubuntu 8.04 LTS) me decía constantemente que no era posible resolver esa dirección. Raro raro raro. Me fui al Mac y desde allí si funcionaba. ¿eh? Volví a Linux, me entretuve configurando otra cosa y cuando me acordé lo que estaba haciendo (descargar un wallpaper desde Devianart), me puse a buscar el por qué de este comportamiento. 

Google -> firefox 3 beta bug dash url

Resultado. No es un bug en firefox. Supuestamente (bueno, supuestamente no, es así), los guiones en una dirección URL no están permitidos:

RFC 1035 (Domain names – implementation and specification), which says:

“The labels must follow the rules for ARPANET host names. They must
start with a letter, end with a letter or digit, and have as interior
characters only letters, digits, and hyphen.
There are also some
restrictions on the length. Labels must be 63 characters or less.”

(emphasis mine) (source: tools.ietf.org/html/rfc1034)

Traducción al criollo: Deben comenzar y empezar con una letra o número y sólo pueden contener, letras, números o guiones ( – ).

Esto me lleva de vuelta a mi wallpaper. La dirección en donde estaba mi wallpaper es

http://-kol.deviantart.com/

Nótese el símbolo menos delante: –. Esto quiere decir que no podría acceder a esa dirección porque está mal. Sin embargo, Safari, Camino, Internet Explorer 7, Opera, y Firefox, todos pueden acceder a esa dirección… bajo Windows u OS X. Pero en Linux ninguno puede (ni epiphany pudo), naturalmente que no hay Safari o Camino o Internet Explorer para Linux, pero bueno, variedades no faltan. 

Me encontré entonces con que “no es un bug“, sino que “está bien que no se vean esas páginas porque están mal y no cumplen con bla bla bla bla…”

Ahora yo pregunto, ¿es necesario volver sobre este tema? ¡Claro que es verdad que están mal! Pero yo soy un usuario final de Linux, y quiero mi wallpaper. I couldn’t care less about RFCs. No se lo que son y no me importan. (Bueno, si lo sé, pero la abuela de turno no)

¿Cómo hacen Safari y otros para resolver esa dirección? No lo sé, pero al final, para conseguir mi wallpaper, tuve que descargarlo en la Mac. Copiarlo al Linux y listo. Pero lo que me sorprende de todo esto no es eso, que yo pude hacer, sino este Thread en los foros de Ubuntu. No se que ocurrirá, pero lo que es seguro, es que el comportamiento es pésimo.

Total, que si tienen Linux (no se si esto sólo ocurre en Ubuntu), no wallpaper para Uds. hoy. Al final, todo esto es una queja infundada sobre un detalle que me molesta y que puede causar que miles de usuarios sin capacidad de comprender lo que ocurre (y peor aun, sin capacidad de tener acceso a otro sistema operativo), se queden sin acceder a una dirección. 

Que el RFC es una basura o no se puede discutir, pero Linux debe generar la menor cantidad de errores “estúpidos” si quiere avanzar hacia algún sitio que no sea una habitación fría con muchos CPUs, poca luz y muchos leds. 

Son detalles como estos los que joden. Igual lo uso para Ruby on Rails y anda bien :)

 

Marzo 26, 2008

Mac OS X: Quiero mis 4GB de Swapfiles de vuelta

Todos sabemos que Mac OS X consume memoria. Lo hacía Jaguar, lo hizo Panther, Tiger mejoró pero también y Leopard sin dudas también. (¿Menem Lo hizo?).Pero con dos gigabytes de RAM debería poder trabajar bien. Es sabido que el Activity Monitor reporta mal la memoria virtual utilizada (terriblemente mal, al punto que cree que estamos usando como 30GB), pero de todos modos en mi ordenador, compruebo lo siguiente: Free Image Hosting at www.ImageShack.usEs como mucho ¿no? 4.2GB…

Marzo 22, 2008

Mi opinión sobre Safari para Windows metido en Apple Update

Creo que la gente se está quejando demasiado; no es tan importante ni es un problema. Salva Castro se excede terriblemente en su blog.

Pero es que Salva lo deja muy en claro en sus propias palabras: “Esto me parece un acto bastante triste por parte de Apple y una forma de instalar Safari en usuarios que no en realidad no quieran tenerlo instalado y que activen la actualización por defecto sin fijarse en lo que descargan.” (énfasis mío)

Pues ahí lo tienes. ¿Qué culpa tiene Apple que los usuarios no se fijen lo que se descargan? ¿No será mucho decir que “roza el malaware”?

El CEO de Mozilla dice eso porque le conviene, no seas iluso… ¿Qué mejor que aprovecharse de un hecho de este tipo cometido por la competencia?

Por favor, que es el Safari, y encima lo más probable es que al final, les esté haciendo un favor, porque el IE7 tiene bastantes problemas, aunque este no sea el tema de discusión.

Me parece muy bien que Apple ponga el Safari allí, dado que muchos usuarios de Windows que sólo tienen iTunes+Quicktime de otro modo jamás se enterarían de la existencia de Safari.

¿Llamarlo Malaware? Creo que el descaro es de otros…No podemos discutir que si Microsoft lo hace u otros, porque tampoco es cuestión de compararlos, lo que si insisto es que para mi, está muy bien que esté ese update allí.

Hoy, casualmente, coincido con John Grubber.

Bah, no se para qué pierdo el tiempo.-

P.D.: creo que la palabra “inmiscuye” no existe como tal, al menos según la RAE.