sábado, octubre 30, 2010

Correr un programa .NET Framework bajo Linux

Por cuestiones del destino terminé sabiendo programar usando el .NET Framework de Microsoft y Visual C# Express Edition. Me ha gustado mucho usarlo ya que las librerías que contiene y el soporte que hay en línea (foros, Google, MSDN, etc.) es muy vasto. Mientras leía el libro Pro C# 2010 and the .NET 4 Platform, me enteré de que se puede correr una aplicación del .NET Framework bajo Linux usando el ambiente Mono.

Pro C# 2010 and the .NET 4 Platform, Fifth Edition


Una vez que se ha compilado la aplicación bajo un sistema operativo Windows, se obtiene un archivo .exe o un .dll, el cual corre correctamente bajo el mismo SO si el .NET Framework está instalado. Si se intenta correr ese programa bajo Linux se obtiene un mensaje de error:


[/home/link/Desktop/SL File2Array.exe]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
zipinfo: cannot find zipfile directory in one of /home/link/Desktop/SL File2Array.exe or
/home/link/Desktop/SL File2Array.exe.zip, and cannot find /home/link/Desktop/SL File2Array.exe.ZIP, period.

Para que corra hay que instalar Mono, o instalar una distribución de Linux que traiga integrado Mono. Esta distribución se puede descargar gratuitamente desde la página oficial de Mono. En mi caso descargué el Live CD que pesa como 660MB.

http://www.go-mono.com/mono-downloads/download.html

Nota: los usuarios de Ubuntu pueden instalar Mono desde una terminal tecleando lo siguiente...
sudo apt-get install mono-complete

Una vez que has arrancado tu PC con el Live CD, basta que instales el SO a tu disco duro. Da doble click en el icono Live Installer, el password a usar es mono. Sigue los pasos en pantalla y al reiniciar tu PC tendrás Linux instalado.



NOTA: Si no sabes cómo instalar un SO podrías perder todos los datos de tu disco duro. Claro, si eres un programador .NET, seguro que esta advertencia está de sobra.

Una vez que hayas reiniciado tu PC bastará con que copies cualquier .exe o .dll que hayas compilado con el .NET Framework. Dale click derecho y elige la opción Abrir con Mono (o abrir con otra aplicación...). No hace falta recompilar tu código fuente, el compilador Just-In-Time de Mono se encarga de ello.


Si tu aplicación cumple con los requerimientos mínimos de Mono, funcionará automáticamente.

Compilé SL Q15 Tool con Visual C# 2010 Express Edition, usa el .NET Framework 4.0. Corre nativamente bajo Windows XP, Vista y 7. El mismo archivo .exe que corre en Windows, corre bajo linux con un bug, si coloco un número con 4 letras hexa, no se hace bien la conversión. Esto no sucede bajo Windows.



Compilé SL File2Array usando VC# 2008, con el .NET Framework 3.5 SP1. Corre en Windows y en Linux sin mayor problema.

Otro ejemplo, un cálculo que hice con integración por trapecios y su grafica. Fotos de la versión corriendo en Linux y en Win7.


  

Así que si eres un experto con el .NET Framework y de repente te dicen que tu software debe correr en Linux... no pienses en Java, mejor haz la prueba con Mono y te evitas hacer la migración. Espero que este mini tutorial te haya servido para probar tus ensamblados .NET bajo Linux.

jueves, octubre 28, 2010

Lleva tu nombre completo a Marte

La gente de la NASA, del laboratorio espacial de Marte, está recopilando nombres de personas de todo el mundo para colocarlos electrónicamente en un microchip que será llevado a Marte.


Basta con que llenes un formulario con tu nombre, país y código postal y tu nombre será llevado muy lejos a Marte.

http://marsparticipate.jpl.nasa.gov/msl/participate/sendyourname/

El mío ya está en la lista jeje

¿Un teléfono celular en 1923?

George Clarke, un productor de cine encontró algo inusual en el filme "The Circus" de Charles Chaplin. Encontró una escena en donde se ve a una mujer que aparentemente está hablando por celular. Lo inusual es que esta película se filmó en 1923, una época en la que los celulares no existían.


En la escena se ve primero cómo un hombre camina detrás de la cebra y después pasa la mujer de sombrero con la mano izquierda sosteniendo algo sobre su oreja. En el video se ven las tomas, con acercamientos y cámara lenta. El principio del video explica la teoría que tiene George al respecto y cómo está extrañado por lo que ha visto. Si quieres ver directamente el momento donde pasa la señora, adelanta a 2:35.



Se observa como la señora está sosteniendo algo contra su oreja, es más claro cuando ella voltea a la cámara. También se ve que ella va hablando sóla. Las teorías dicen que la mujer es una viajera en el tiempo (está de moda por lo de Back to the Future) y que por eso lleva el celular, pero eso suena poco cuerdo. :D Otra teoría dice que ella está ajustando un aparato para la sordera y que mediante su voz ajusta el volumen de correción. En ese tiempo ya existían esos aparatos (de acuerdo a Time)

http://www.stumbleupon.com/su/1V0CAC/newsfeed.time.com/2010/10/28/time-traveler-caught-on-film-were-skeptical/

Yo creo que se va rascando la oreja XD Les dejo el video ya que me pareció curioso, si tienen otras teorías más fuera de lo normal, envíen sus comentarios.

domingo, octubre 10, 2010

Servidor MySQL gratuito y con acceso remoto

Para efectos de ensayo y error necesitaba contar con un servidor MySQL para instalar una base de datos pequeña. Necesitaba que el servidor no fuera un localhost ya que las pruebas demandaban que la conexión se hiciera por internet.


Existen muchos servicios gratuitos de hospedaje que incluyen cPanel, Apache, PHP y MySQL pero el 99.9% de ellos no ofrecen acceso a MySQL de forma remota. Esto es, cuando uno quiere conectarse a la BD desde una computadora en casa, el hosting lo prohibe. MySQL sólo es accesable en esos hostings desde código instalado en el mismo servidor mediante localhost, código como phpMyAdmin.

NOTA: Varios servidores de los que se enlistan aquí ya son obsoletos. Procede con cautela. Este blog originalmente fue publicado hace 7 años.

Buscando un poco más encontré la página http://www.freesql.org en donde ofrecen hospedaje MySQL con ciertas limitaciones pero con acceso remoto desde cualquier IP.

Basta con entrar a la página, dar de alta un usuario, una BD, una contraseña y listo.

Para empezar a poblar las tablas o hacer consultas se puede usar la consola de MySQL (mysql.exe) o como yo lo hago, mediante MySQL Query Browser (ya descontinuado aunque muy útil).


Con el Query Browser es muy sencillo crear BD y tablas, poblarlas y correr scripts. Permite ver las BD que uno tiene y hacer consultas dando doble click.

He detectado que hay limitaciones en los comandos que uno envía a este hosting, comando como LOCK o UNLOCK no son permitidos.

En cuanto a limitaciones de uso, el dueño del servidor MySQL comenta en su página que no se permite hospedar foros, ni enviar consultas excesivas al servicio. Para efectos de prueba y aprendizaje, creo que esto no será problema.

http://www.freesql.org/freesql/limits

Lo que sí puede ser problema es que el servicio es lento. La primera conexión que se hace al servidor tarda mucho en llevarse a cabo y esto puede aburrir un poco.

Investigando un poquito más veo que en http://mysql.com se encuentra disponible la descarga de MySQL Workbench, que incluye los programas que reemplazaron al Query Browser y al Administrator.


No me acomoda el nuevo arreglo visual del Workbench, creo que seguiré usando el Query Browser. :p

Ahora estoy haciendo una lista de frases célebres que quiero agregar al blog y a mi sitio web mediante PHP y MySQL. Cada que una página se muestre se presentará una frase aleatoria.

Hasta aquí los consejos novatos de hoy. Gracias por leerme.