Un ilustrador problema de compatibilidad de licencias libres

This whole thing is such a nuisance. It seems one can’t even give something away these days! Así de infeliz se mostraba G. Grothendieck hace unos días. Y es que habíamos enviado una primera versión del paquete rJython que subir a CRAN y nos encontramos con problemas de licencias. Eso de las licencias de software es un tema enojoso. Importante, pero enojoso. Además, da la impresión, que totalmente exótico a la ética y costumbres de este país desde el que escribo: algún día, como divertimento, contaré alguna historieta. Y cuando haya vencido la fecha de prescripción, la más divertida, la más ilustradora del fenómeno, la sin par: la del código con copyright de EverisWaterhouseCoopers. ...

5 de agosto de 2010 · Carlos J. Gil Bellosta

Un curioso bug de R

A vueltas con los bugs, el otro día leí sobre uno bastante curioso de R. En resumen: > a <- c(1,2, sqrt( 2) ^ 2 ) > table(a) a 1 2 1 2 > unique(a) [1] 1 2 2 ¿El motivo? La función unique compara el valor numérico de los valores del vector de manera que le afectan los errores de redondeo. Sin embargo, la función table compara los valores de acuerdo con su representación como cadena de caracteres. > 2 - sqrt(2) ^ 2 [1] -4.4409e-16 > as.character(c(2, sqrt(2)^2)) [1] "2" "2" Los entusiastas de R pueden comprobar todo lo anterior examinando (¡que es una buena costumbre!) el código de ambas funciones.

24 de julio de 2010 · Carlos J. Gil Bellosta

Qué hacer (y no hacer) con los bichitos que uno encuentra

No sé si es porque gano agudeza visual, porque me vuelvo cascarrabias o, simplemente, porque tengo mala suerte. Pero cada vez me tropiezo con más bichitos de esos que en inglés se llaman bugs. Y me refiero a esos que son consustanciales a todo proyecto de software. Antes, antaño, simplemente los toleraba y, creo, vivía más feliz. Formaban parte del paisaje, como los mosquitos nocturnos en la jungla tailandesa. De un tiempo acá, sin embargo, tengo una relación más compleja con ellos. ...

19 de julio de 2010 · Carlos J. Gil Bellosta

Más de diez motivos para usar PROC SQL en SAS

Hace no mucho escribí una entrada en este blog sobre, bromas aparte, cómo no escribir código SAS. Habría respondido in situ a uno de los comentarios que hicieron mis lectores pero, abusando de mi condición de dueño del blog, lo voy a hacer desde más encumbrado púlpito: una entrada ad hoc. Conste que escribo para discrepar. Pero conste también que lo hago desde la más genuina cordialidad y con la esperanza de generar un debate que a todos nos enriquezca. ...

18 de julio de 2010 · Carlos J. Gil Bellosta

rJython: un nuevo paquete para llamar a Python desde R

Ya está disponible el paquete rJython que permite llamar a Python desde R. Aunque todavía no se ha subido a CRAN, puede instalarse así: install.packages("rJython", repos="http://R-Forge.R-project.org") Una vez instalado puede probarse el paquete ejecutando, por ejemplo, rJython <- rJython() a <- 1:4 jython.assign(rJython, "a", a) jython.exec(rJython, "b = len( a )") jython.get(rJython, "b") rJython$exec("import math") jython.get(rJython, "math.pi") jython.call(rJython, "len", 1:3) b <- 5:8 rJython$exec("def concat(a,b): return a+b") jython.call(rJython, "concat", a, b) Arquitectura: Jython y rJava El paquete no está basado en el habitual Cpython sino en Jython, un intérprete de Python desarrollado en Java. El motivo es doble: ...

13 de julio de 2010 · Carlos J. Gil Bellosta

Use SAS para predecir como un pulpo

Para el otoño volverá a tener lugar el congreso de usuarios de SAS en España. El anuncio que me acaba de llegar —con su referencia al ubicuo pulpo Paul— no puede ser más desafortunado. Por si desaparece el enlace, reproduzco con una captura de pantalla aquí lo más sustancioso del mismo: Addenda: Comí el jueves con la más infiel de mis lectoras (creo que ni lectora es) y convinimos en que el mensaje de SAS resulta, cuando menos, insultante para cuantos nos dedicamos al sufrido oficio de la estadística y actividades concomitantes. Entre ambos consensuamos un mensaje alternativo que venía a ser el siguiente: ...

13 de julio de 2010 · Carlos J. Gil Bellosta

Contándoles las papelinas a los "expertos"

Hace un tiempo leí un resumen de un libro sobre la fiabilidad de las predicciones de determinados expertos: a toro pasado se las comparaba con los sucesos reales para ver en qué medida habían resultado acertadas. Las conclusiones pueden encontrarlas mis lectores en cualquiera de los dos enlaces anteriores. En España, ahora, contamos con una página que compara las previsiones realizadas por diversos institutos económicos con los valores reales de las magnitudes que con tanto dispendio de recursos y fanfarria de medios publican de vez en cuando. Está sobrada de efectismo y algo falta de legibilidad, pero no puede ser más oportuna. ...

12 de julio de 2010 · Carlos J. Gil Bellosta

Exagerados

Gracias a la entrañable huelga del Metro de Madrid (digo entrañable porque espero que sea la última y la recordemos con añoranza cuando los conductores de carbono hayan sido sustituidos por otros de silicio más diligentes) he terminado de leer este libro. Podría decir muchas cosas sobre él, pero me centraré en un párrafo que aparece en la página 333 de la edición española de Paidós (de la reedición de marzo de 2010, por referencia). Se trata de una cita del libro Silicon Shock de un tal Goeff Simons, escrito en 1985 (atención a la fecha!) que dice así: ...

4 de julio de 2010 · Carlos J. Gil Bellosta

¿Programa Vd. en SAS? ¡Aprenda a ser indispensable!

Si Vd. programa en SAS (para el caso, en otro lenguaje), si su empresa programa en SAS, estará sumamente interesado en leer lo que aquí le cuento. En realidad, si no tiene demasiado tiempo para leer, puede ir directamente a este artículo. Pero permítale en todo caso que le traduzca del inglés un extracto de resumen: Desafortunadamente, el código fácilmente mantenible necesita menos programadores y menos programadores implica inseguridad laboral. En estos tiempos de crisis, los programadores tienen que aprender a volverse indispensables. […] ...

3 de julio de 2010 · Carlos J. Gil Bellosta

Gráficos en R con símbolos arbitrarios: código, comentarios y fin

Prometí el otro día revelar los secretos (pensaba que no lo eran tanto) del gráfico que mostré en esta entrada. Los impacientes tienen aquí todo lo que necesitan. Tienen que ejecutar primero el guión svg2ps.sh que invoca inkscape para transformar los ficheros svg (incluidos en la descarga) de las banderas (obtenidos de la Wikipedia) en ficheros postscript. El programa src.R genera entonces el gráfico utilizando dos paquetes de R: grImport y lattice. El primero permite convertir postscript en xml y posteriormente en objetos de la clase picture. ...

28 de junio de 2010 · Carlos J. Gil Bellosta