Introducción a «entornos» en R (aka diccionarios)

R ofrece multitud de estructuras de datos para trabajar, como pueden ser vectores, matrices n-dimensionales o dataframes. Según vamos creando programas más complejos es posible que nos veamos en la necesidad de guardar un conjunto de variables en algún sitio, lo cual resolveríamos con un diccionario en otro lenguaje (un HashMap en Java o un dict en python). En R disponemos de una clase que nos ofrece esa funcionalidad, y es lo que se conoce como “environment” o entorno. Dicho de forma sencilla, un environment en R sería el equivalente a un vector en el cual accedemos a sus elementos a través de una serie de etiquetas que les asignamos, lo cual nos suele dar una pista de lo que contiene si no somos excesivamente crípticos eligiendo las claves.

Nada más arrancar R existe un entorno por defecto que es el entorno global en el que se guardan todas las variables con las que trabajamos. Es por ello que las funciones para listar las variables, borrarlas o comprobar si existen son las mismas que las que vamos a ver para los entornos. Además, cuando creamos un nuevo entorno, este se va a guardar en el entorno global, de forma anidada. Si Por algún casual necesitamos acceder a ese entorno global podemos utilizar environment(), e incluso anidarlo en otro entorno de forma.

A continuación tenéis una breve introducción al manejo de entornos en R.

(más…)

Los mejores directos de la música moderna

La buena música en directo sabe mejor, e incluso la no tan buena puede ganar gracias a la energía que transmiten los artistas durante la ejecución. Sería genial poder asistir a todos los conciertos que nos apeteciera, pero muchas veces nos tenemos que conformar con grabaciones en directo, que en mayor o menor medida son capaces de trasladarnos a pie del escenario y erizarnos la piel.

Hoy en día mucha de la música que nos llega ha pasado por un elaborado proceso de producción que ha pulido los fallos o ha elegido los mejores cortes y pistas para la mezcla final, cual alquimia musical. En el directo no hay tanta opción (o sí, dependiendo del concierto 😉 de «hacer trampa» y eso es algo que también se nota, ya que muchos artistas son capaces de superar las grabaciones de estudio ante su público.

Pero bueno, mejor que vayamos con los que son, a mi gusto, los mejores directos que he podido escuchar: (más…)

Tomb Raider Anniversary, diamante en bruto

Una parte importante de la diversión de un juego está en el reto que supone, y eso es algo que se está olvidando hoy en día. Por suerte, siempre nos quedarán pequeños diamantes en bruto como el remake del primer Tomb Raider, también conocido como Tomb Raider Anniversary Edition (TRAE de ahora en adelante).

TRAE es un tapado en toda regla, y tras esa etiqueta de»remake» se esconde un juego ENORME, rediseñado para adaptarlo al nuevo control introducido en Legend que da una libertad al personaje que para sí quisieran otros títulos con más nombre. Si dejamos de lado la historia, estamos ante un juego con un apartado audiovisual más que notable, lleno de detalles (la ropa se moja!) y que logra una ambientación perfecta a base de una banda sonora excelente (atentos al tema que suena en la mansión) y pequeños efectos de iluminación que dan un toque extra a la amplitud de los escenarios, porque si algo hay que destacar es el magnífico diseño de los niveles. A nivel arquitectónico hay que quitarse el sombrero ante el trabajo de Crystal Dynamics, ya que los escenarios consiguen dar una sensación de grandeza y puzzle convirtiéndose en protagonistas del juego, y que combinados con unas efectivas físicas y unos movimientos semi-asistidos de Lara ofrecen un reto que mantiene el equilibrio perfecto entre dificultad y satisfacción. Me ha recordado a un cruce entre Prince of Persia, por el plataformeo acrobático, e ICO, por esa sensación de grandeza y pizca de soledad.

El juego tiene sus sombras, como unos enemigos finales algo sosos, pero con un punto de estrategia, o unas secciones de tiros que podrían ser mejores aunque aportan un cambio de ritmo entre puzzle y puzzle que viene muy bien.

En resumidas cuentas, TRAE es un juego que debéis jugar si amáis los videojuegos, y eso sin decir nada del modelado y animación del personaje principal 😉

Thank you Steve!

Hoy ha sido un día triste para mí. Steve Jobs era un tipo al que admiro, y entre más conozco de él, más le admiro, pero nos ha dejado. Tenía sus sombras, era humano joder, pero sus luces brillaban más que las de la mayoría. Hizo posibles dispositivos que han roto moldes, no por ser los primeros, si no por llevarlos al punto de perfeccionamiento que borraba la barrera entre la tecnología y el usuario. Creyó en PiXAR y luchó por hacer realidad Toy Story. Tenía la capacidad de rodearse y atraer a gente excepcional y hacerlos brillar.

Por tus luces, Steve, gracias.

Loneliness

I’ve got no money to spend

I’ve got no beautiful words to say

I’ve got no shoulder to cry on

I’ve got no reasons to live, except finding one.

Reeder para iPhone

Vale, lo reconozco: me declaro yonki de las newsfeeds. Llevo metiéndome RSS desde hace muchísimo tiempo y aunque he intentado dejarlo, incluso sustituirlo con otras drogas más blandas como los twits, no he podido desengancharme. Sigue siendo una forma muy útil de permanecer actualizados de forma focalizada y con menor ruido que en otros canales. Al menos para mí.

Desde que salió allá por el 2005 o 2006, GoogleReader ha sido mi «camello» para los feeds y la verdad es que no he encontrado nada que me funcione mejor. Pero hace unos años el mundo se hizo móvil, y poder consumir feeds mientras haces cola es uno de mis pasatiempos favoritos. Pero la interfaz web móvil de reader nunca ha llegado resultarme agradable al 100%, primero en symbian y luego en iphone. Luego llegaron las apps y todas eran bastante chungas o no justificaban su precio (y eso que es bajo) hasta que un día decidí tirar la casa por la ventana y comprar «reeder» para iPad. La cosa es que acabé comprando la versión de iPhone (iOS4) y me ha encantando. Vamos allá con la review… (más…)

Reflexiones de la keynote del WWDC2011

Steve partiendo la pana en la WWDC2011
Steve partiendo la pana en la WWDC2011

Todo comenzó con un delgadísimo Steve Jobs, casi tan delgado como su hilo de voz. Así dió paso al SagardoEguna 2011, conocido en San Francisco como WWDC 2011.

El menú del día estaba dividido en tres platos:

  • un entrante clásico con unos toques para actualizarlo,
  • el plato fuerte en el que se está volcando la casa
  • y un postre ligero, casi como una nube.

Todo ello regado con zumo de manzana… (más…)

Tipos básicos en R

Como programador, cuando me acerco a un lenguaje hay un primer elemento básico antes de conocer la sintaxis: los tipos de datos. R es un lenguaje de tipado dinámico, para entendernos, no es necesario declarar el tipo de una variable sino que esta se ajustará internamente su tipo en función del valor asignado y el contexto, realizando las conversiones, pudiendo perder información en el proceso (si convertimos un doble a entero perdemos su parte decimal).

(más…)

Brownie de chocolate 1.0

Cho-co-laaaaa-teeee!

Al fin lo he conseguido. Tras un par de betas fallidas he logrado el equilibrio que buscaba en el brownie. Las recetas que pululaban por la red no me convencían, pero cogiendo un poco de unas y de otras he llegado a las siguiente (para cuatro comensales «gluttones»). Así además me dejo apuntada la receta y se la envio a la amatxo. Os animo a crear vuestra propias versiones!

Ingredientes

  • 2 huevos (de corral y hermosotes)
  • 100 gr de chocolate de cobertura
  • 75 gr de mantequilla sin sal
  • 50 gr de harina
  • 50 gr de azúcar morena
  • 1 vaina de vainilla
  • 1 cucharadita de levadura («baking soda»)
  • 40 gr de nueces peladas

Preparación

Deshacemos y mezclamos la mantequilla junto al chocolate, pero pasamos de utilizar microondas o ponerlo al fuego en un puchero: la manera correcta es al baño maría.

Mientras se va deshaciendo batimos los huevos y una vez batidos añadimos el azúcar poco a poco mezclando bien.

Añadimos el chocolate fundido a los huevos y nos ayudamos de una espátula para no dejar ni gota en el recipiente. Si queda algo, rebañamos con el el dedo y chupamos. Aquí no se tira nada. Mezclamos bien.

Añadimos poco a poco la harina tamizada. Para tamizar la harina podéis utilizar un aparato específico o, como es mi caso, aprovecháis el colador que tengáis por casa y así no acumuláis chismes (si váis a preparalo a menudo si merece la pena tener instrumental especializado ;)). Con un cuchillo partimos la vainilla en dos y rascamos el interior para extraer las «bolitas». Añadimos el extracto vainilla y la cucharadita de levadura a la mezcla. Seguimos mezclando bien.

Finalmente le añadimos las nueces troceadas al gusto.

Preparamos un recipiente plano para el horno untándolo con mantequilla y espolvoreando un poco de harina. Vertemos la mezcla y repartimos uniformemente y horneamos durante 20-25 minutos a 175º (pueden ser 180º pero mi horno tiene marcada esta escala ;-)). Aquí debéis jugar con vuestro horno, ya que no hay dos iguales.

Sacamos del horno, y si podemos aguantarnos, dejamos enfriar. Desmoldamos con ayuda de la espátula y listo.

Consejos

Antes de comer, si está frío, podéis darle un calentón en el microondas. Os recomiendo acompañarlo de un helado bastante lácteo (leche merengada, vainilla, cuajada).

Podéis congelar lo que os sobre y calentar antes de servir (como si fuera uno de Eceiza).

Configurar proxy en WordPress

Si por azares del destino vuestra conectividad a la web depende de un proxy, todos los servicios de WordPress que necesiten conectividad HTTP no funcionarán a no ser que añadáis estas líneas al archivo de configuración «wp-config.php» (probado en wordpress 3.0) adaptándolas a vuestro entorno:

define('WP_PROXY_HOST', 'damned.proxy.net');
define('WP_PROXY_PORT', '8080');
define('WP_PROXY_USERNAME', 'my_user_name');
define('WP_PROXY_PASSWORD', 'my_password');
define('WP_PROXY_BYPASS_HOSTS', 'localhost, www.example.com');