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

jueves, marzo 20, 2008

La virtualización no es el camino, por ahora

Llevo dos días tratando de poner a punto un sistema de virtualización sobre Debian, pero llego el momento de rendirme, debido a que hasta el momento en ninguno de los programas que he usado (o intentado usar), he podido virtualizar ningún sistema operativo de forma exitosa. Empezaré por describir la situación, haber si alguien puede darme luces:

Hasta hace unos días usaba la versión 2.6.17.7 de Linux, sin ningún problema. Había estado usando qemu como mi sistema de virtualización, pero estaba un poco descepcionado respecto al desempeño del mismo, pues el consumo de recursos era bastante grande. De hecho las primeras pruebas (realizadas con Minix, Fedora y Windows XP) no fueron muy alentadoras. Y finalmente dejé de usarlo, pues bajo la versión de kernel mencionada arriba, no fué posible cargar el módulo kqemu y no pude probar las bondades de dicho acelerador, Intente después con VirtualBox, pero la instalación me arrojó varios errores y el módulo vboxdrv tampoco lo pude cargar, con dicha versión del kernel.

Hace unos días, probé el VMWare server, pues lo había visto ejecutándose en la empresa en donde trabajo y me pareció que tenía un buen desempeño, en máquinas muy similares a la mía. Sin embargo, cuando lo instalé, el consumo de recursos fué excesivo, de hecho no pude trabajar en otras aplicaciones mientras estaba instalando Solaris en la máquina virtual. Todo esto me puso de mal humor y a pensar que posiblemente recompilando una versión más reciente del kernel podía utilizar kqemu y VirtualBox. Decidí finalmente compilar la última versión estable (2.6.24.3), lo cual me permitió hacer algunos ajustes y realmente después de la compilación, algunos problemas que tenía se solucionaron. Una vez cargado el nuevo kernel, pude utilizar kqemu, pero el desempeño no fué notable, de hecho no observé ninguna diferencia notable entre usar qemu a secas y kqemu.

Proseguí a instalar VirtualBox, lo cuál fué muy sencillo, pero hasta el momento no he logrado arrancar la máquina virtual, pues obtengo el siguiente error:

==================================================

Assertion failed: [mIPCSem >= 0] at '/home/vbox/vbox-1.5.6/src/VBox/Main/MachineImpl.cpp' (8058) in nsresult SessionMachine::init(Machine*).
Cannot create IPC semaphore, errno=38.
Please contact the product vendor!.


===================================================

Y tras hacer una búsqueda exhaustiva en internet (más de 6 horas seguidas) lo único que encontré fué el reporte del bug, que aún no se ha solucionado. En la FAQ de VirtualBox, comentan que el programa no trabaja con kernels que tengan activado el tickless timer support (CONFIG_NO_HZ en el .config), cosa que activé en mi kernel. Seguí las instrucciones de desactivación y cargue del módulo, pero tampoco, el error emergió de nuevo y la solución cada vez es más confusa. Por el momento, compraré otro disco duro e instalaré nativamente el sistema que necesite, mientras termino de compilar el VirtualBox, haber si de alguna forma lo hago funcionar.

domingo, octubre 07, 2007

Release de sFourier 0.3a

Como lo dije aqui, hace algo de tiempo estaba junto con otros compañeros escribiendo un programa para aprendizaje de Series de Fourier. Las primeras versiones del programa permitian simular la vibración de una cuerda que estaba fija en sus extremos, como se explica aqui [PDF, PS] y para ello utilizamos Python como lenguaje junto con otros módulos, como VPython y wxPython. Así lucía sFourier (aunque para ese entonces el programa no estaba bautizado) hace unos meses:


Después de algunas discusiones y luego de apegarnos a un modelo de desarrollo mucho más estructurado y funcional que el que veniamos utiizando, se decidió cambiar a Java como lenguaje, debido a que la experiencia de los programadores era mucho mejor que la que se tenía en Python y se generó una segunda perspectiva de aplicación:




que permitía además de simular la vibración de la cuerda, calcular series de Fourier de funciones lineales continuas a trozos y comparar la vibración de dos cuerdas. Esta versión sirvió de base afinar muchos aspectos de lógica de la aplicación, así como de interfaz. Sin embargo, debido a un problema con la presentación de algunas gráficas, se buscaron mejores formas de llevar a cabo los métodos de simulación de la cuerda y presentación de espectros de amplitudes y se generó una última versión:


que después de varios ajustes se convirtió en la versión 0.3a (alpha) de sFourier y la primera que se encuentra lista para el usuario. sFourier 0.3a cuenta con las siguientes funcionalidades:

  • Simulación del fenómeno de la cuerda vibrante, permitiendo observar modos normales de vibración individuales y en suma, además de los espectros de amplitud.
  • Módulo de comparación entre cuerdas, que permite simular simultáneamente dos cuerdas vibrantes con parámetros de tensión y densidad diferentes.
  • Aproximación por Series de Fourier de funciones lineales contínuas a trozos, permitiendo observar las gráficas de la aproximación, términos individuales de la Serie de Fourier o sumados y el espectro de amplitudes.
La página oficial del proyecto es:

http://sfourier.sourceforge.net

El proyecto como pueden darse cuenta (versión 0.3a !) aún es muy jóven, pero esperamos poder liberar más versiones con muchas más funcionalidades y mejoras. Lo que esperamos para la próximas versiones es:

  • Corregir todos los bugs conocidos
  • Permitir definir funciones polinómicas y trigonométricas
  • Mejorar el algoritmo de verificación de funciones
  • Añadir una interfaz más cómoda para el ingreso de funciones
  • Presentar los coeficientes de Fourier después de calcular la serie de Fourier correspondiente
  • Añadir otros fenómenos físicos como la membrana vibrante.
  • Mostrar el espectro de fase
y todo aquello que se nos siga ocurriendo. Desde luego que sFourier es software libre !!!.

miércoles, marzo 07, 2007

Módulos para el Kernel Linux

Estoy aprendiendo, como programar módulos para el kernel Linux y aunque existe mucha información en la red acerca de como empreder la tarea, aún no he logrado escribir algo que por lo menos no arroje errores en la compilación. Sin embargo, me acordé que en el blog de una persona a quien admiro mucho por su conocimiento sobre estos temas, alguna vez encontré un artículo sobre cómo programar drivers para dispositivos en Linux; asi es que comencé a leer sobre el asunto y encontré una lectura muy amena, sencilla y clara para aquellos que no aprendimos a programar en C. Pues bien, aquí les dejo el enlace y agradezco a Nelson Castillo por tan excelente documento:

miércoles, enero 17, 2007

GNU/Linux y los tipos de usuarios


Después de un largo receso en este blog, y de un par de días de vacaciones, reiniciamos actividades. La presente entrada está motivada por el blog de Jesse y korc, en donde se elabora una crítica acerca de un artículo publicado aqui en donde se afirma que aún GNU/Linux es un sistema operativo muy complicado para los usuarios de computadores, y que la única opción viable es utilizar Windows(R). En los respectivos blogs, hay opiniones muy valiosas acerca del artículo en referencia, de hecho me parecen muy válidas las siguientes afirmaciones:
  • " .... pero no creen que es una realidad triste y vacía como puede alguien preferir hacer un trabajo mediocre, no exigirse como persona ni como profesional y lo mas importante de todo negarse el privilegio mas grande de todos, un verdadero regalo de Dios ¡Poder Pensar! ... ". (Jesse)
  • "..... acaso cuando vamos a la panadería, pensamos por qué no hacen un sólo tipo de pan, así no tendría que escoger que desayunaré mañana, si pan con queso, pan aliñado, qué tal pan de frutas?, o un roscón?, no qué pereza, que sólo hagan pandebonos y listo, desayunaré pandebonos todos los días .... ". (korc)
Leyendo dichas opiniones y aprovechando mi condición de estar trabajando en una empresa que está realizando su transición a GNU/Linux y a la experiencia que he vivido en más o menos 2 meses, quiero exponer algunos opiniones al respecto, tratando de ser lo más neutral posible.

Para empezar, hay que tener claro que GNU/Linux está inspirado en UNIX, y por lo tanto comparte muchas de sus características, dentro de las cuales se resalta su estabilidad y seguridad, pero para explotar esas "cualidades" se requiere de un conocimiento mínimo de informática. Es claro, que el kernel Linux de 1993 dista totalmente del que usamos hoy, debido a la rapidez con que se ha venido desarrollando. Empezaré por hacer una clasificación del tipo de usuario y su correspondiente distribución GNU/Linux, desde luego, desde luego desde mi punto de vista.

Estudiantes de informática, usuarios avanzados y administradores

Distribuciones como Gentoo, Debian y los mismos *BSD son sistemas que EMHO están reservados para estudiantes de informática, usuarios entendidos en materia informática y el sector de servidores. No tratemos de que un usuario normal y corriente use estas distribuciones, sin contar con el apoyo de alguien con el conocimiento suficiente, pues será un fracaso. A pesar de que muchos linuxeros consagrados aleguen que Debian o Gentoo no requiere de conocimientos técnicos, es casi que morir en el intento. Pero decir, que un estudiante de informática prefiera Windows(R) antes que GNU/Linux o BSD es por tanto preocupante. No digo que el que use Windows(R) sea un tonto, pero perder la oportunidad de experimentación que brindan los sistemas basados en UNIX y el mismo UNIX (si se puede conseguir) es cerrarse la puertas en forma casi total. No encuentro ninguna razón válida para que un estudiante o un administrador de sistemas no use GNU/Linux, aunque sea por un tiempo. Son muchas las empresas que en su sección de servidores de misión crítica usan como sistema operativo GNU/Linux o *BSD, en sus sistemas de correos, proxy, firewall, en fin. En GNU/Linux, se puede programar en la gran mayoría de lenguajes de programación existentes (desde luego que no en los lenguajes creados por Microsoft), instalando los paquetes necesarios (muchos de hecho vienen incluidos (compilador o intérpret) por defecto, hablando de C, python, perl, awk, bash en una instalación básica). Además, en cuanto a operación en redes, GNU/Linux es un sistema operativo muy interesante para probar y experimentar con cosas como firewalls, servidores DHCP y entender el funcionamiento de protocolos como FTP, SMNP y además de que el sistema se adapta muy bien en ambientes de redes. Para más información al respecto pueden visitar:

En donde encontrarán gran documentación sobre instalación de servicios en red en GNU/Linux, BSD y Solaris.


Usuarios finales: La gran mayoria de usuarios

El usuario final, es alguien que necesita que las cosas sean muy simples, que todo este a un par de clicks del ratón y las cosas se solucionen con asistentes que lo orienten a través del proceso. A continuación listo, algunas de las cualidades que el usuario promedio tiene, frente a la máquina:
  1. No se preocupa por leer los mensajes que salen en pantalla cuando un programa presenta alguna advertencia, a menos que le impida seguir desarrollando su labor. El usuario da click en el botón aceptar, sin leer el contenido del mensaje.
  2. Tiene un esquema de trabajo linealizado, o llamémolo mejor: ha establecido un proceso totalmente lineal y cualquier cambio en ese proceso, causa traumatismo, es renuente al cambio, aunque sea mínimo. En particular, alguna vez una persona de la empresa nos llamó (a un amigo y a mi) debido a que tenía un problema con Firefox al entrar en una página. El problema consistía en que estaba solicitando una web que trabaja en modo seguro (o bajo SSL) y por lo tanto Firefox emitia un mensaje de aceptación de certificado (era la primera vez) y por ello el usuario decía que ese navegador no servía, pues no entraba a la página en forma directa. La recomendación que se le hizo, lea los mensajes con más detenimiento. Véase cualidad 1.
  3. Son poco curiosos, o mejor dicho, como escribo en la cualidad 2, no se salen del procedimiento establecido, si no encuentran el icono del color como ellos lo tenían, concluyen que la máquina se ha estropeado. (Me ha pasado con algunos usuarios).
Son muchos los usuarios que tienen estas particularidades, y mi intención no es ofenderlos ni mucho menos, ni tampoco generalizar sobre todos los usuarios. Estas cualidades son las que hacen que para estos usuarios se deban utilizar sistemas altamente sencillos y estables. Por ello algunas distribuciones no son aptas para este tipo de usuarios pues aún requieren de un conocimiento técnico mediano o inclusive avanzado para su administración, y me refiero a que si un usuario (supongamos un estudiante de biología marina) quiere instalarlo en su máquina, le costará bastante trabajo (aunque esto es un factor también cultural, debido a que este tipo de usuarios han sido acostumbrados toda su vida a entornos windows) y terminará por usar otro sistema, que sea mucho más sencillo y más usado por sus amigos y vecinos. Como dije anteriormente, son algunas distribuciones las que no son aptas, no GNU/Linux. Pues en muchos artículos, se hace referencia a GNU/Linux en forma general, cuando son las experiencias del autor con una distro en particular. Es claro, que si se busca la distro adecuada, existen muchas posibilidades de que el usuario se pase a Linux y mucho más si este usuario tiene soporte permanente de alguien con el conocimiento suficiente para ayudarlo. Y aunque suene a publicidad o a frase repetida: Ubuntu es la distribución más recomendable para los usuarios finales. Es sencilla, fácil de instalar, buen reconocimiento de hardware, y además preparada para que sea fácil. En particular, en la empresa que trabajo, mis compañeros probaron Debian (ver post de Paola) y Fedora inicialmente para el proceso de migración y la parte de configuración y puesta a punto del distro no fue tarea fácil (configuración de samba, impresoras, detección de hardware, en fin). Y aunque soy amante de Debian, sé que en ocasiones su configuración puede ser un poco demorada y en nuestro caso se requeria de una distro casi a medida.En cuanto a Fedora, el consumo de recursos es notable frente a Debian y dado que necesitabamos un escritorio bien dotado, el consumo de procesador y memoria aumentaban, además la instalación por defecto incluye sendmail, (conocen el primer usuario final que sepa qué es SMTP o por lo menos lo que es un MTA ?) lo cual demoraba el arranque de la máquina. Cuando se probó Ubuntu, el cambio notable. No ha habido el primer monitor que Ubuntu no detecte correctamente, por lo menos con resolución de 800x600. Además su configuración es sencilla y rápida (lo cual reduce los tiempos) e incluye lo que el usuario normal necesita: navegador web (firefox), suite ofimática (OO.org), Mensajería instantánea (Gaim), Cliente de Correo (Evolution, aunque preferimos thunderbird) , visores PDF, de imágenes, escritorio gnome, fácil creador de discos compactos y aplicaciones para trabajo en red, como clientes FTP y SSH gráficos, muy sencillos de utilizar. En definitiva Ubuntu es una distro adecuada para usuarios y según parece traerá muchas mejoras en sus próximas versiones; el único problema que veo, es que muchos de sus usuarios fomentan el uso de software no libre en la distribución (muchos foros hablan de la instalación por ejemplo de IExplorer, Skype, etc) y eso en mi opinión no es bueno, debido a los grandes problemas que trae el uso de este software (ver aqui), pero eso será discusión de otro post, y muchos usuarios no les importa mucho esto.

El Software para Windows es muy abundante y la dependencia es alta

Sin embargo, aunque algunas distros esten preparadas para que los usuarios las utilicen, existe un problema cuya solución no está muy del lado de la comunidad y me refiero a que en el mercado existe muchísimo software elaborado para windows en forma exclusiva y que en las empresas se usa en forma extendida. De hecho, uno de los grandes problemas que hemos tenido en la empresa, es el que muchos usuarios dependen de este tipo de software y su cambio a GNU/Linux afecta en gran medida su productividad. Y en ello los comprendo, pues no poder trabajar al 100 % y con el jefe encima exigiendo los informes, trabajar con GNU/Linux se vuelve muy complicado. Por ello, el uso extendido de GNU/Linux y Software Libre es muy complicado debido a que mucho del software existente en empresas se ejecuta en Windows(R) y no hay versiones para otros sistemas operativos. Esto limita en gran manera la adopción de Linux, pero culpa del sistema operativo no es. Y aunque existe wine, no podemos pedir milagros a los desarrolladores.


Software especializado

GNU/Linux es un sistema cuyo desarrollo está garantizado y por tal existe la posibilidad de que el software que no exista ahora, puede ser desarrollado para futuro. Sin embargo, aún hay mucho software especializado que no existe en para este sistema operativo y cuyas versiones libres aún son muy poco competitivas, seamos francos. Ejemplos archiconocidos son: AutoCAD(R) y Enterprise Architect(R). En GNU/Linux, no conozco aún algo que pueda igualar la capacidad de estos programas y algunos usuarios están tan acostumbrados a ellos que no pueden migrar a un entorno que no les ofrece el uso de estos programas. En el caso de EA, se puede emular, pero igual, no es software libre. Para muchos usuarios GNU/Linux es una opción, siempre y cuando el software que usen no sea exclusivo para windows o por lo menos exista un equivalente libre que satisfaga la necesidad.

Conclusión

Finalmente, aún cuando para muchos GNU/Linux está aún muy jóven para el escritorio, desde mi punto de vista esta listo para ser usado por usuarios, siempre y cuando se use la distro adeacuada o se cuente con el soporte suficiente. Sin embargo, es indiscutible que ambientes académicos, empresariales a nivel de soluciones para servidores y entornos de red, GNU/Linux y el Software Libre están más que listos para ello, sólo que debe contarse con el personal capacitado para ello, pues los administradores de servidores windows (en su mayoría, no todos) son un desastre para aprender sobre software libre. La diversidad del software libre, que para algunos es un problema, pienso que es una ventaja, debido a que se puede escoger según el nivel de conocimientos que se tengan y se puede adaptar el software tanto como sea posible. Otra cosa importante que debo resaltar, y es que en muchos artículos que leo acerca de Linux vs Windows(R), veo que a GNU/Linux se le quiere imponer que funcione igual que el sistema de la ventana, y es chocante, pues en GNU/Linux las cosas funcionan de otra manera y se hacen de otra manera, no es posible, que aún cuando muchos programas comparten una interfaz tan similar a los programas en Windows(R) se pida que el sistema operativo actúe como tal. Es necesario hacer saber a los usuarios, que en GNU/Linux las cosas son distintas y se hacen, como se dice: a lo Linux y punto. Y para terminar, lo único en lo que estoy de acuerdo con el artículo que referencié al comienzo:

"... para que los usuarios tengan que pensar poco, los desarrolladores tienen que pensar mucho!"

sábado, diciembre 16, 2006

Recomendado del mes ...

En ocasiones, cuando del diseño de un sitio web o de una aplicación web se trata, son muchas las opciones que existen para los menús, las barras de herramientas, los botones, en fin todo lo que se necesita para la construcción de una interfaz agradable para el usuario y además consistente, que la soporten la mayoría de navegadores o por lo menos los más populares. La alta popularidad que viene teniendo el uso de AJAX en contenidos web, además de las grandes ventajas que ofrece, me han impulsado a buscar soluciones que hagan uso de esta tecnología. Entre esas búsquedas encontré este sitio web:

http://www.dhtmlgoodies.com

el cual tiene bastantes ejemplos y scripts para manejar es aspecto gráficos de nuestro sitio o aplicación web, haciendo uso de AJAX. Hay ejemplos muy impresionantes y lo mejor es el código se puede usar en forma libre, siempre y cuando se incluya la nota de copyright. Ahi les dejo para que exploren la página y juzguen por ustedes mismos.