Restauración de ficheros .bak sin Windows

Tengo un fichero .bak. Un fichero .bak (el mío, al menos) es una copia de seguridad de SQL Server y no hay forma humana de acceder a sus contenidos sin otro SQL Server (que yo sepa). No me preguntéis de dónde lo he sacado. La cuestión es que contiene datos que tengo que leer. Requisito imprescindible para tener un SQL Server es disponer de una máquina con Windows. Pero yo no tengo ninguna. Cuando tuve, instalé la versión de evaluación gratuita de SQL Server (¿Express?) y me ahorré parte de la pena que describo a continuación. Lo hago por referencia mía, por referencia de otros y por si alguien conoce algún atajo. ...

10 de abril de 2015 · Carlos J. Gil Bellosta

TelegRam[.]me!

Telegram es un sistema de mensajería por internet similar a WhatsApp, aunque con algunas diferencias notables: No es de Facebook Una vez tienes una cuenta, puedes usarla desde distintos dispositivos (Linux incluido) Tiene menos usuarios Es programable De lo último es ilustración esta “conversación” que tuve con la cuenta @TeleR: Los detalles, aquí. Y el crédito, para Rubén Tobalina.

7 de abril de 2015 · Carlos J. Gil Bellosta

Y todo ocurre en un abrir y cerrar de ojos

Abres una aplicación en tu móvil que diseñó un programador búlgaro. Ipso facto aparece un insidioso banner de, p.e., Jazztel. ¿Cuáles son los mecanismos que ponen en contacto al búlgaro con Jazztel? ¿De qué manera recibe aquel una compensación de esta? Tradicionalmente, el desarrollador habría hablado con, p.e., Google. Le habría dicho: yo voy a generar “espacios” donde tú vas a poder colgar propaganda a cambio de una cantidad (fija o variable). El intermediario, por otra parte, capta anunciantes (Jazztel en nuestro ejemplo), almacena un inventario de ellos y decide cuál de ellos mostrar. Hay teoría aplicable en estos contextos, como la que describe Real-Time Bidding Algorithms for Performance-Based Display Ad Allocation. ...

27 de marzo de 2015 · Carlos J. Gil Bellosta

evtree: árboles globales

Tengo por delante otro proyecto que tiene mucho de análisis exploratorio de datos. Sospecho que más de un árbol construiré. Los árboles son como la Wikipedia: prácticamente nunca el último pero casi siempre el primer recurso. Esta vez, además, por entretenerme un poco, probaré el paquete [evtree](http://cran.r-project.org/web/packages/evtree/index.html). Aunque no porque espere sorprendentes mejoras con respecto a los tradicionales, ctree y rpart. ¿Qué tiene aquel que los diferencie de los otros dos? Que la optimización es global. Tanto ctree como rpart utilizan algoritmos recursivos: al definir un nuevo corte del espacio, el algoritmo solo tiene en cuenta la región definida por los cortes anteriores. La optimización es local. evtree utiliza un algoritmo global de la familia de los evolucionarios (¡qué tufillo a lentorro!). Los detalles están aquí. ...

12 de enero de 2015 · Carlos J. Gil Bellosta

Paralelización en R con snow

Suelo trabajar un servidor con ocho CPUs. Cuando quiero paralelizar código en R, suelo utilizar [parallel::mclapply](https://stat.ethz.ch/R-manual/R-devel/library/parallel/html/mclapply.html) (como aquí). Pero no tengo una máquina. Tengo varias. Y antes, de hecho, muchas. ¿Cómo paralelizar en distintas máquinas? Se puede usar Spark (y SparkR), por ejemplo. Pero una ruta que no había ensayado jamás es la de la vieja escuela, i.e., MPI, snow y demás. Pero si tienes varios servidores corriendo un sistema operativo decente, instalas R y snow (y todo lo que necesites) en todos ellos y configuras los servidores para poder acceder a través de ssh sin contraseña desde uno central, y, entonces, ejecutas ...

3 de diciembre de 2014 · Carlos J. Gil Bellosta

Spark gana la competición Gray Sort de 2014

Esta de hoy es una entrada muy friqui que se sirve de la casi excusa de que los creadores de Apache Spark han ganado la competición Gray Sort de 2014 para recomendar a sus lectores a estar alerta a las novedades que llegan. Todavía colea el siglo XX y todavía pagan dinero por cosas que algún día consideraremos tan entrañables como el ZX Spectrum de 48kB tales como: Colorear casillas en Excel. Escribir pasos data en SAS. Tener reuniones de dos horas. Guardar todos los archivos en el disco duro de un portátil. Y otras cosas que igual un día me suelto y cuento. Pero el futuro está a la vuelta de la esquina y los pájaros tempraneros de hoy en día, que ya saben R (porque son, como digo, pájaros tempraneros), aprenden Spark y Scala.

20 de noviembre de 2014 · Carlos J. Gil Bellosta

Componentes conexas (de grafos) en Spark

Uno de mis últimos pet projects tiene que ver con el análisis de las componentes conexas de unos grafos muy grandes. Como aquí pero con datos de un tamaño muchos órdenes de magnitud mayores. Usando Spark, claro. Y ya que lo cito, aprovecho la ocasión para regalar un consejo a mis lectores más jóvenes: no esperéis a los cuarenta para aprender Scala y Spark. Voy a limitarme a copiar el código para referencia mía y de otros. Creo que se autoexplica: ...

15 de septiembre de 2014 · Carlos J. Gil Bellosta

Mascotas y rebaños

Muchos cuidamos de nuestro ordenador casi como una mascota: le ponemos un nombre (a menudo escribo desde tiramisu), le hacemos algo de mantenimiento, etc. Hay quienes, incluso, decoran sus máquinas con pegatinas. Pero llega un momento en que hay que comenzar a tratar a las máquinas no tanto como mascotas sino como rebaños. Desde una pantalla aneja a esta en la que escribo estoy manejando un clúster de más de 200 GB y 50 núcleos distribuido en varias máquinas que ni sé dónde están. Además, solo espero que crezca. Ya no cuido de una mascota; cuido de un rebaño. ...

15 de agosto de 2014 · Carlos J. Gil Bellosta

En serio con Spark: instalación

Me he puesto en modo estoy serio con Spark. Lo instalé en mi ya manida máquina virtual (voy a subir una nueva versión de ella pronto), pero hoy la voy a instalar en mi portátil. Y con la idea de, en los próximos días, montar un clúster en condiciones. Los pasos son los siguientes: Ir a la página de descargas y seleccionar una versión ya precompilada. Hay varias porque Spark se enlaza con librerías relacionadas con Hadoop (aunque uno puede utilizar Spark perfectamente sin él) y hay varias versiones mutuamente incompatibles de Hadoop. Como no tengo ninguna instalada en el portátil, cualquiera me vale. Descomprimir, mover el directorio a /opt y, opcionalmente, cambiar propietarios y grupos (a root). Crear un enlace blando para vagos: sudo ln -s /opt/spark-1.0.1-bin-hadoop1/ /opt/spark Arrancarlo (usando la interfaz para Python): /opt/spark/bin/pyspark En la consola, ahora, se puede ejecutar: ...

18 de julio de 2014 · Carlos J. Gil Bellosta

Dos descomposiciones positivas de tablas de contingencia

Voy a seguir poco a poco con este tema mío tan recurrente de las factorizaciones (aproximadas) positivas de matrices (también positivas). No escribo más porque, como casi todo lo que llamamos trabajo es, simplemente ruido, las cosas que llevan a otras nunca pasan por el asunto en cuestión. Pero hay dos descomposiciones positivas de matrices positivas bien conocidas de todos. La primera es esta: $X=IX$, donde $X$ es una matriz de dimensión nxm e $I$ es la cosa más parecida a la matriz identidad de dicha dimensión. No aporta gran cosa. En particular, no compresión y no comprensión de la estructura de la matriz. ...

16 de julio de 2014 · Carlos J. Gil Bellosta