Gráficas simples con GNUPlot

screenshot3.pngHoy he necesitado crear una pequeña gráfica que mostrara simultáneamente dos funciones simples:

f(x) = 2*x + x**2
g(x) = 52 + 2*x

Me he acordado de que en Linux disponemos de una aplicación con este objetivo (que a pesar del nombre, tal y como bien nos corrige Etxekalte, NO es una aplicación GNU, y ni siquiera tiene una licencia GPL) y tras echarle un vistazo a los ejemplos de la documentación he podido crear mi pequeño script:

$ gnuplot
set xtics 1
set yrange [0:100]
plot [0:10] 2*x + x**2, 52 + 2*X

El resultado lo podéis ver en la figura adjunta. ¿Alguien me puede decir cómo se haría eso mismo en el sistema de Redmond? (Tal y como apunta Marlowe, GNUPlot también está disponible para Windows)

Fedora Core 8: IMPRESIONANTE

1.pngMañana día 8, a las 3 GMT, verá la luz Fedora Core 8. Aparte de las versiones (spins) GNOME y KDE, esta vez también publicarán otras 3 spins: Games, Developers y Electronic Labs. Entre las novedades a nivel de paquetes, se incluyen:
* PulseAudio (nuevo servidor de sonido)
* un nuevo look&feel
* CodecBuddy (codeina) una pequeña aplicación que salta al intentar ver u oír archivos multimedia con codecs propietarios (explica por qué Fedora no los soporta de serie y ofrece ayuda para conseguir esos codecs si insistimos en usarlos)
* system-config-firewall (nueva herramienta gráfica para la configuración del firewall)
* mejoras en el gestor de impresoras (al enchufar una nueva impresora se autoconfigurará automáticamente)
* mejoras en los interfaces gráficos de gestión de Bluetooth
* Soporte Java: IcedTea (la compilación de OpenJDK para dejarla niquelada en Fedora)
* inclusión del NetworkManager 0.7 (que entre otras mejoras incluye la gestión de los passwords de redes wireless WPA Enterprise – como es el caso de Eduroam – a través del keyring)
* mejoras en el soporte de portátiles (suspender/hibernar, mejor soporte de teclas multimedia, mejor aprovechamiento de la batería)
* Compiz instalado por defecto (se activa desde Preferences > Desktop Effects)
* Compiz Fusion (la integración de Compiz y Beryl está disponible en los repositorios a través de YUM)
* mejoras en el gestor de paquetes (a través de Pirut se pueden crear muy fácilmente y de forma gráfica las definiciones de nuevos repositorios)
* el proyecto «online-desktop» es directamente instalable a través del paquete online-desktop de los repositorios de Fedora (sólo por esto, este fin de semana mismo actualizaré mi FC6 a Fedora Core 8)
* mejoras en la seguridad (a través de SELinux y PolicyKit)
* gestión segura a través de SSL y certificados digitales de máquinas virtuales con Xen, KVM & QEMU
* nuevo sistema de ayuda a la traducción online – Transifex-
* un nuevo sistema de loggin – Rsyslog –
* una versión personalizada de Eclipse (Fedora Eclipse) que viene con numerosos y útiles plugins preinstalados (JDT, CDT, Autotools, Mylyn, PHPEclipse, Specfile Editor, PyDev, ChangeLog y soporte de CVS, Subversion e incluso de Git !).

Para más información y detalles, recomiendo la página wiki de novedades de la versión 8 de Fedora. Lo dicho, IMPRESIONANTE.

Beta de Zend Studio para Eclipse

zend_studio_box_gif.gif Zend acaba de lanzar una versión beta del entorno de desarrollo Zend Studio para Eclipse bajo el nombre en clave «Neon». Basado en Zend Studio y el proyecto Eclipse PHP Developers Tools (PDT), Zend Studio for Eclipse se convierte así en el IDE para PHP más potente del mercado, ofreciendo así al desarrollador profesional de PHP la potencia de Zend Studio y el soporte multilenguaje de Eclipse y su enorme conjunto de extensiones (plugins).

En concreto, Zend Studio para Eclipse aporta:
* Las ventajas de Eclipse/PDT:
o Una comunidad de millones de usuarios y miles de desarrolladores
o Cientos de plugins
o Soporte multi-lenguaje en una única herramienta (Eclipse)
o Coloreado de sintaxis PHP, autocompletado de código e inspección de métodos y atributos
o Soporte básico de depuración de scripts PHP

* Valor añadido de Zend Studio:
o Soporte de depuración más avanzada (permitiendo debugging local como remoto)
o Soporte a la refactorización de código
o Análisis de rendimiento y Code Coverage
o Soporte de baterías de test PHPUnit
o Integración mejorada con Zend Framework
o Posibilidad de edición HTML WYSIWYG
o Integración con Zend Platform
o Herramientas de migración para los usuarios de Zend Studio
o Integración BIRT
o Instalación simplificada

Ya es posible descargar gratuitamente una copia de la beta

Reto de programación: apretones de manos

Hace poco he participado en una prueba más de TopCoder.com, un excelente sitio para mantener engrasados los conocimientos de estructuras de datos, algoritmos, análisis y diseño de sistemas y programación general. Una de las pruebas me dejó varado y no pude completar a tiempo el ejercicio. Posteriormente he leído bastante al respecto y profundizado en la serie de los números de Catalan, en la que se basa la solución al problema. Sin más, os dejo con el enunciado, a ver si conseguís solucionarlo 😉

Consideremos una reunión de n personas alrededor de una mesa circular. Antes de comenzar la reunión, se dan la mano unos a otros. Cada persona estrecha la mano de otra persona en un momento dado (y sólo de una). Los apretones de manos se dan todos a la vez (es decir, en un momento dado, cada persona está estrechando la mano de otra) Decimos que un apretón de manos es perfecto si no hay brazos que se crucen entre sí en el momento del apretón. Dado un entero n, devolver el número de apretones de manos perfectos posibles que existen para n personas sentadas a la mesa.

Ejemplo:

si n = 4 personas, los posibles apretones de mano son:

HandsShaking_4_correct/tmp/HandsShaking_4_correct_2.GIF/tmp/HandsShaking_4_wrong.GIF

Las primeras dos figuras muestran apretones de manos perfectos. La 3ª no es un apretón de manos perfecto. La solución para n=4 por tanto es 2. Para n=8 sería 14.

Visual Editor para Eclipse Europa

El editor de interfaces gráficas opensource instalable como plugin oficial de Eclipse es Visual Editor. Para mis clases de Ingeniería del Software y Programación II he utilizado este editor para la creación de GUIs, con éxito. El problema actual es que es incompatible con la versión Europa de Eclipse (la más moderna y estable). Hasta hace bien poco. Ya podemos instalar un parche para Visual Editor, no oficial, que lo hace compatible con Europa, tanto para Linux, MacOSX como para Windows.