Mostrando entradas con la etiqueta mono. Mostrar todas las entradas
Mostrando entradas con la etiqueta mono. Mostrar todas las entradas

martes, 14 de octubre de 2008

Como compartir carpetas con VMWare

Esta nueva batalla comienza cuando la semana pasada el menda se entera de que acaban de publicar Mono 2.0. El proyecto Mono no es más que una implementación opensource de .NET Framework que tiene como objetivo desarrollar y poder ejecutar aplicaciones .NET en sistemas Unix, Linux, Mac y Windows. Para aquell@s que venimos del mundo .NET, Mono es sin duda uno de los proyectos opensource más interesantes, proyecto que con la release de la esperada versión 2.0, definitivamente proclama a gritos su madurez como plataforma a la vez que reclama su correspondiente sitio en el mercado. Por ello, a día de hoy creo que ha llegado el momento de ponerse el mono de trabajo (sí, juego de palabras tremendamente malo...) y empezar a trastear con este cross-platform framework.

Para aquell@s lectores que tras este párrafo esperan un post chachi-piruli analizando pros y contras de Mono, siento decepcionarles diciéndoles que hoy no toca Mono; hoy toca lección de virtualización, una clase magistral (ejem...) que deriva de mis ganas de querer empezar a utilizar Mono.

La opción que la mayoría de developers del entorno Windows escoge a la hora de testear Mono es utilizar la correspondiente imagen VMWare descargable desde la propia página del proyecto. Es una forma rápida y cómoda de disponer en un abrir y cerrar de ojos de todo el entorno de desarrollo y ejecución de Mono, perfectamente gobernado bajo el S.O. openSuse 11.0. Además, lo bueno de este método es que si la liamos o "rompemos" algo, cosa habitual en mí, no pasa nada, es una simple imagen virtual de un sistema operativo, con lo que no se "rompe" ni se altera configuración alguna de la máquina física. También está la opción de descargar y utilizar un LiveCD, pero considero la opción de la virtualización mucho más interesante y completa.

Significar que para correr esta imagen de openSuse 11.0 es necesario utilizar como mínimo VMWare Player 2.5, descargable de forma gratuita, previo registro, desde aquí.

Instalamos y lanzamos VMWare Player, seleccionamos el archivo .vmx que guarda la configuración de la máquina virtual a cargar (archivo mono.vmx en este caso) y en cuestión de segundos estamos inmersos en el mundo virtual de openSuse y Mono:

Perfecto, estoy hecho todo un linuxero, pero me surge la necesidad imperiosa de acceder desde esta máquina virtual a mis archivos güindoseros, es decir, a mis discos duros físicos, no virtuales. He ahí la razón del post de hoy: ¿Cómo acceder desde una máquina virtual basada en Linux a los discos y carpetas de la máquina física con Windows? Parece chupado ya que en seguida veo que VMWare Player dispone de una opción para acceder a los recursos compartidos o "shared folders"...

...y habilitarlos, ya que la compartición de recursos viene inhabilitada por defecto.

Me extraña (y mucho) que el botón de "Properties" siga inhabilitado, pero bueno, pulsamos "OK" y nos quedamos más a gusto que un arbusto. Leo en la red que en las máquinas virtuales Linux, los recursos o carpetas compartidas se sitúan, se "montan" bajo la ruta /mnt/hgfs. Abro todo convencido el "explorador de archivos de openSuse", accedo a la mencionada ruta pero compruebo que allí no hay rastro de nada:


¿Será que hay que reiniciar la virtual machine después de habilitar los shared folders? ¿Reiniciar en Linux? Me extraña, pero probaremos la solución güindosera por antonomasia de reiniciar la máquina. El invento tampoco funciona, con lo que toca googlear (espero que no admitan la palabra en la RAE) a little bit, hasta que me encuentro con alguien a quien ya le ha pasado lo mismo antes que a mí. ¡Uf, qué alivio, ya no soy el único "rarito"! ¡Manos a la obra!

Apago la máquina virtual, edito el fichero de arranque (mono.vmx) de la misma, cojo prestadas las líneas mágicas del post anterior y las pego al final del fichero .vmx, personalizando de paso el nombre de la unidad (Z) y compartiendo la unidad "C:\" de la máquina física:

Guardamos los cambios, y rearrancamos la máquina virtual, arranque durante el cual se muestra al usuario un mensaje informativo diciendo que la máquina virtual contiene recursos compartidos (buena señal), aunque por defecto, por temas de seguridad, están inhabilitados:

Una vez la máquina virtual nos deja en el mundo Linux, acudimos raudos y veloces de nuevo a la opción "Shared folders" para habilitar la compartición de carpetas, ya que como nos indicaba el mensaje anterior, por defecto vuelve a estar inhabilitada. Se selecciona "Always enabled" y vemos claramente el recurso de nombre "Z" que se mapea con nuestro disco duro físico "C".

Como últimamente ando bastante escéptico (¿por qué sera?), pulso "OK" con cierto miedo y acudo de nuevo a "/mnt/hgfs", donde para mi alegría compruebo que efectivamente ahora aparece un recurso denominado "Z" bajo el cual veo la lista de directorios que cuelga bajo mi disco duro físico "C". Nunca pensé que contemplar "Archivos de programa" desde una máquina virtual Linux me iba a producir tanta satisfacción ;-).

¡Quién me lo iba a decir a mí! Sin comerlo ni beberlo, el querer empezar a trastear con Mono me ha llevado a hackear VMWare Player para poder acceder desde una máquina virtual Linux a archivos de la máquina física con Windows. De aquí en adelante, terreno despejado para Mono...¡agárrense!

Y vosotr@s, ¿utilizáis la tan de moda virtualización? ¿Os habíais enfrentado antes a este problema de compartición de recursos entre dos sistemas operativos diferentes, corrijo, entre máquinas virtuales y máquinas físicas?

SaludoX.


lunes, 22 de septiembre de 2008

CsharpRepl, shell interactivo de C#

Tras la dura resaca de mi primer cumpleaños (¡que joven que soy!), hoy lunes "de empanada monumental" toca hablar sobre las andanzas de l@s imparables chic@s de Mono, que como siempre, están que no paran. Una vez más me entero de una excelente utilidad/herramienta gracias a mi habitual lectura del blog más tirano de la blogosfera opensource .NET. Esta vez, el project leader Miguel de Icaza nos daba a conocer la utilidad CsharpRepl, que viene a ser una especie de shell interactivo de C#. En otras palabras, una parte del compilador de C# de Mono que nos permite evaluar expresiones y ejecutar sentencias contra el runtime de Mono a través de la línea de comandos.

Puede que esta utilidad no sorprenda a los habituales de ciertos lenguajes de scripting; ni tampoco a los "comodones" como yo que utilizamos Visual Studio como herramienta de desarrollo, ya que este entorno integra la siempre útil ventana de "Inmediatos", que viene a ser más o menos lo mismo que CsharpRepl. ¡Qué de alegrías nos ha dado esta dichosa ventanita y cuántas veces ha evitado que tengamos que recompilar nuestra aplicación! Aunque parezca increible, todavía hoy en día hay muchos programadores que desconocen las maravillas que encierra esta ventanita mágica que traga con (casi) todo. Es un "must-try" pero mucha gente no la conoce porque inexplicablemente viene oculta por defecto dentro de Visual Studio, ¡hay que activarla a mano! Manda huevos...

Bueno, volvamos al tema que nos ocupa, que no es otro que CSharpRepl, el shell que te evitará hacer debug 178 veces. Disponible ya en los nightly builds de Subversion a partir del día 1 de Septiembre, el comando csharp que habilita este shell vendrá ya integrado en la versión 2.2 de Mono. Aunque el equipo está abierto (como siempre) a todo tipo de sugerencias de funcionalidad a incorporar a la utilidad, de momento el shell publicado permite cargar assemblies, importar namespaces, evaluar expresiones más o menos complejas, utilizar LINQ a machete e incluso escribir pequeños programitas de varias líneas gracias a la edición multi-línea:

Admito que empezar a realizar pruebas con Mono sigue siendo una de mis asignaturas pendientes para la nueva temporada 2008/2009, pero seguro que con este tipo de utilidades y herramientas con las que nos deleita muy a menudo el equipo de Mono, mi pas(it)o al lado oscuro será algo más indoloro. Ya que estamos, para no olvidarme de mis promesas y objetivos de cara a la temporada 2008/2009, voy a empezar a utilizar CSharpRepl desde ya mismo:

csharp> var goals = new string[]{"write quick and better posts", "write posts frequently", "increase readers", "a more professional look & feel blog", "earn some money"};
csharp> goals.Add("test Mono");

Mono Team, thanks again for your time and effort.

SaludoX.


viernes, 16 de mayo de 2008

Hotnews del Proyecto Mono

Esta semana ha sido una de las más importantes en mucho tiempo para toda la gente involucrada e interesada en el proyecto Mono. El equipo liderado por Miguel de Icaza no ceja en su empeño por lograr una implementación open source de la plataforma Microsoft .NET, con la firma idea de poder correr aplicaciones .NET bajo cualquier sistema operativo, ya sea Windows, Linux, Unix, Solaris o Mac OS X.

Decía que había sido una semana muy importante. ¿Que por qué? Porque esta semana el equipo de Mono ha hecho públicas dos noticias muy importantes que dejan bien claro el titánico esfuerzo y el arduo trabajo que está llevando a cabo esta comunidad patrocinada por Novell.

La API de Winforms 2.0 está completa

"We are API complete" anunciaba este pasado martes, de modo realmente discreto, Jonathan Pobst en su blog. Mono alcanza de esta manera, tras cuatro años de intenso trabajo, el gran hito de que su API pública de Windows Forms sea igual (exactly the same) que la API original de .NET Windows Forms, incluso con el mismo número de métodos soportados. ¿Que cuántos son? Preparaos...¡12776 métodos! No, no es el número del Gordo de Navidad; es el número de métodos que nos permiten desarrollar esas pedazo de aplicaciones de escritorio que tanto nos gustan. Sí, lo sé, estoy viendo tu cara, yo tambien he flipado...

Lógicamente, como en toda plataforma de software recién liberada, nos avisan de que puede haber bugs. De hecho, piden públicamente la contribución de la gente para testear dichas librerías y reportar cualquier fallo o comportamiento anómalo que pudiera detectarse. Este anuncio no hace sino confirmar que Windows Forms 2.0 era una de las últimas piezas clave aún por terminar para el gran puzzle que constituirá la release de la versión 2.0 de Mono. Actualmente en versión Mono 1.9.1 (denominada Mono 2.0 Beta), se prevé que en cuanto corrijan una serie de bugs que inevitablemente irán saliendo, en los próximos meses tendremos en la calle la versión 2.0 de este cross-platform framework.

Liberado el código de Moonlight

¡Quien dijo temer a un Martes y 13! La gente de Mono no desde luego, porque el mismo martes, a la par que daban el anterior notición, publicaban por primera vez el código fuente de Moonlight. Como much@s sabréis, Moonlight es la implementación open source de Silverlight, la tecnología cross-browser propietaria de Microsoft que pretende dar una vuelta de tuerca al concepto de rich web user experience. Se trata en otras palabras de que el usuario alucine cuando navega por la red, flipe con las animaciones e interactúe con el contenido multimedia que le ofrecen las webs. Se trata en definitiva de mejorar notablemente la experiencia de navegación de millones de internautas.

Tal y como anuncia Miguel, esta publicación no es ni mucho menos Moonlight 1.0, ni puede llegar a calificarse de versión beta; es simplemente la primera publicación de código fuente de Moonlight, que se puede mapear más o menos con Silverlight 1.0. La idea de esta publicación va orientada expresamente a que desarrolladores y otras personas interesadas analicen, testeen y aporten nuevas ideas. A buen seguro, la comunidad, tal y como ha hecho hasta ahora, responderá.

Futuro de Mono

Aunque llevaban mucho tiempo trabajando en la sombra sin hacer demasiado ruido, estos dos anuncios son un claro ejemplo de que el proyecto Mono sigue vivo, muy vivo diría yo. En mi opinión, esto no ha hecho más que empezar, ya que a buen seguro la próxima publicación de Mono 2.0 significará un salto cualitativo definitivo en las aspiraciones de esta plataforma, que a su vez supondrá un balón de oxígeno y el espaldarazo definitivo que necesita este proyecto y este equipo de cracks que tanto se lo están currando. Desde aquí, mis felicitaciones y millones de aplausos para todo el equipo de Mono.

Yo, aunque he hecho alguna pruebilla en plan chorra con esta plataforma, he de admitir que no me he metido a fondo con ella. Es lo de siempre: "Tengo que...pero no tengo tiempo pa...". Por tanto, añado a mi larga y extensa todo-list de este año 2008, con el check de medium-high priority activado, la tarea de probar a fondo la plataforma Mono cuando publiquen la versión 2.0. En serio, I promise...

SaludoX.

No olvides suscribirte al feed RSS para enterarte de todas las actualizaciones del Txoko de Lonifasiko .


martes, 16 de octubre de 2007

MONO Summit 2007 Madrid

Del 26 al 30 de Noviembre va a tener lugar en Madrid el MONO Summit 2007. Es un encuentro dirigido a todo el mundo que esté de alguna forma interesado en el proyecto MONO y en todo lo que ello conlleva.

Durante estos días, entre otras cosas, se pretende definir el roadmap de la plataforma, comentar el estado actual de los distintos componentes del proyecto (MoonLight, Olive), charlar sobre casos de éxito, etc. Todo, sin olvidar que lo más importante es:
  • hacer piña
  • seguir haciendo ruido
  • darse a conocer entre la gente que todavía no conoce esta implementación opensource del .NET Framework.
Parece que la asistencia al evento es gratuita. Más información sobre el evento y cómo registrarse, aquí.

¡Ánimo!

SaludoX.