viernes, junio 28, 2013

Notas rápidas de la instalación de Apache Cassandra en MacOS X

Cassandra es una base de datos NoSQL diseñada para trabajar de manera distribuida y manejar grandes cantidades de datos. Su diseño tolerante a fallos y la escalabilidad son dos de sus puntos fuertes.

Los requisitos necesarios para poder instalar este programa en MacOS X son los siguientes:

  • Una cuenta de usuario sobre la cual se va a ejecutar. En este caso,se va a suponer que existe una cuenta de usuario estándar, sin privilegios especiales llamada cassadmin
  • Tener instalada el Java Runtime Enviroment en MacOS X. Normalmente,se ha usado el que suministra Apple1 (al menos en Mac OS X Lion que es donde se han hecho las pruebas). Se puede comprobar que versión se tiene del JRE con la siguiente orden:
    swordcoast:~ terron$ java -version
    java version "1.6.0_51"
    Java(TM) SE Runtime Environment (build 1.6.0_51-b11-456-11M4508)
    Java HotSpot(TM) 64-Bit Server VM (build 20.51-b01-456, mixed mode)
    
  • Tener la posibilidad de bloquear en RAM la suficiente cantidad de memoria sin que su contenido sea paginado por el sistema. Los sistemas operativos actuales utilizan un espacio de direcciones virtuales, paginando a disco páginas cuando necesitan liberar RAM para otros procesos. Se le puede indicar al sistema que ciertas regiones de memoria no puedan paginarse y estén siempre en RAM. Sin embargo, para evitar abusos, esta cantidad suele estar limitada. Puede comprobarse su valor en la shell bash con la orden ulimit:
    swordcoast:~ terron$ ulimit -l
    unlimited
    
    En MacOS X esta cantidad no está limitada, sin embargo, en otros sistemas si. Por ejemplo, en Debian está limitado a 64 Kbytes. En este caso sería necesario añadir un fichero que modificara el comportamiento del usuario que utiliza Cassandra para ejecutarse para que pueda bloquear toda la memoria que quiera.
  • Tener instalado Java Native Access, una serie de clases Java, que permiten el acceso sencillo a librerías dinámicas del sistema sin necesidad de usar JNI. Estas clases Java pueden bajarse empaquetadas en un fichero jar desde jna, el repositorio
  • . En este caso se ha usado la versión 3.5.2, compuesta por los ficheros jna-3.5.2jar (sha1 f1bf9fe267e17c1a8f7d1aa2c985e7fe81a06da6 ) y platform-3.5.2.jar (sha1 beac07d13858ef3697ceeab43897d70aeb5113c9 )
  • La versión binaria de Cassandra, bajada de la página del proyecto. En este caso se ha usado el fichero apache-cassandra-1.2.6-bin.tar.gz (sha1 25b9c63eb33c3ce483390e6edab4a5d1bb95eb4c ). En este caso existe una firma GPG que se puede verificar (keyid 2B5C1B00)

Una vez que se ha descargado todo el software, se va al directorio raíz del usuario que va a ejecutar Cassandra (se va a suponer que es /Users/cassadmin) s para crear la estructura de directorios que utiliza se va a usar y descomprimir el software:

cd /Users/cassadmin
mkdir -p logs/cassandra
mkdir -p lib/cassandra/{data,commitlog,saved_caches}
tar zxvf apache-cassandra-1.2.6-bin.tar.gz
ln -s apache-cassandra-1.2.6 cassandra
cp jna-3.5.2.jar platform-3.5.2.jar cassandra/lib/

  • El directorio donde se va a guardar los ficheros de logs que genere la base de datos será /Users/cassadmin/logs/cassandra
  • El directorio donde se va a almacenar los datos y que utilizará para trabajar la base de datos será /Users/cassadmin/lib/cassandra. La sintaxis empleada funciona con la shell bash.
  • El enlace simbólico se crea para hacer más sencillo el uso de varias versiones del producto.
  • Se copian los ficheros de clases del JNA al directorio lib de cassandra para que el sistema pueda encontrarlos.

Configurar la base de datos para que utilice la estructura de directorios que se ha creado. Se edita el fichero /Users/cassadmin/cassandra/conf/cassandra.yaml y se cambian los siguientes parámetros para usar la estructura de directorios creada

data_file_directories:
- /Users/cassadmin/lib/cassandra/data
commitlog_directory: /var/lib/cassandra/commitlog
data_file_directories:
- /Users/cassadmin/lib/cassandra/data
# commit log
commitlog_directory: /Users/cassadmin/lib/cassandra/commitlog
saved_caches_directory: /Users/cassadmin/lib/cassandra/saved_caches

Configurar el log4j para que almacene los registros en el directorios que interesa. Para ello se editar el fichero /Users/cassadmin/tmp/cassandra/conf/log4j-server.properties para modificar la propiedad que apunta al fichero de registro del sistema:

log4j.appender.R.File=/Users/cassadmin/log/cassandra/system.log

Por último se arranca el programa con la orden:

cassandra/bin/cassandra -f
Este último comando supone que estamos en el directorio $HOME del usuario cassadmin. El parámetro -f hace que el programa permanezca en primer plano para poder ver los errores que genere al escribir los mismos a la consola.

Notas

  1. Se puede bajar la versión que interese utilizar del Java Runtime Enviroment (JRE) desde Java.com. Ajustando las variables PATH y JAVA_HOME se puede seleccionar la versión del JRE a usar de las instaladas.

Technorati Tags: ,,

jueves, junio 27, 2013

De móviles en frigoríficos y otras hierbas

Esta tarde me ha llamado la atención las noticias en la prensa donde se relata como, Edward Snowden - perseguido por EEUU por filtrar a la prensa que los estados espían las comunicaciones -, tuvo una reunión secreta donde insistió que sus asesores introdujeran los móviles en un frigorífico. La idea es crear una Jaula de Faraday, la cual impide la recepción y emisión de ondas electromagnéticas.

Este hecho me resulta curioso, quizás porque la manera más sencilla de crear dicha jaula es la de envolver el móvil en papel de aluminio. Cualquiera puede hacer este experimento en su casa para ver el efecto. Pero lo que me sorprende de todo esto es que si fueron con los móviles encendidos hasta la reunión con Snowden no habrán tenido ningún problema en localizarle por triangulación. Me explico:

Aunque tengo los recuerdos borrosos y no tengo el Transmisión por Radio de Hernando Rábanos a mano, el GSM utiliza células con diferentes frecuencias asociadas en racimos. El tamaño de las células depende del tráfico que tienen que soportar, siendo más pequeñas en ciudades donde tienen que dar servicios a muchos terminales móviles. Creo recordar que el diámetro de dichas células podía rondar los quinientos metros. Un móvil en una ciudad puede recibir información de varias estaciones base a la vez, y éstas captar la señal que radia el móvil - decir que el tamaño mayor de una célula de GSM recuerdo que estaba entorno a los 30 km -. Las estaciones base tienen el hardware suficiente para poder saber qué teléfono móvil está radiando - recordar, todos tiene un IMEI único - , en que dirección y con qué potencia. A nada que envíen esos datos - y he visto centrales de tránsito de telefónica hacerlo de manera instantánea - tendrán localizado al sujeto en cuestión con una precisión de decenas de metros (más en localización GSM)


Technorati Tags:

viernes, junio 21, 2013

Video del Boeing 787 Dreamliner en el Salón aéreo de Farnborough 2012

Esta mañana encontré el siguiente vídeo de la exhibición de Boeing 787 de Qatar Airways durante el Salón Aeronáutico de Farnborough 2012. Especialmente bonito el touch and go entorno al minuto 1:50 de la grabación


Technorati Tags:

miércoles, junio 19, 2013

Apache Accumulo a.k.a NSA Bigtable

Estos últimos días la National Security Agency (NSA) ha estado en boca de todo el mundo tras la publicación por The Guardian de varias noticias sobre lo que debería de ser obvio para todo el mundo desde hace mucho tiempo: los Estados espían, y lo que hacen con la información es desconocido para todos - oficialmente luchar contra los malos -. Los Estados siempre se han preocupado mucho de poder pinchar las comunicaciones, y en general los ciudadanos suelen mirar para otro lado pensando que no tienen nada que esconder. Además, en este programa, PRIM, parecer ser que están involucradas todas las grandes tecnológicas y empresas de telecomunicaciones de Estados Unidos.

Sin embargo este aluvión de noticias ha tenido un efecto positivo: Por diferentes agregadores de noticias han empezado a surgir referencias a software en el que ha estado trabajando la NSA, y que podría estar siendo utilizado dentro de estos programas de espionaje. Dicho software, que la NSA donó a la fundación Apache hace dos años, es Apache Accumulo. Los responsables del proyecto lo describen de la siguiente manera:

The Apache Accumulo™ sorted, distributed key/value store is a robust, scalable, high performance data storage and retrieval system. Apache Accumulo is based on Google's BigTable design and is built on top of Apache Hadoop, Zookeeper, and Thrift. Apache Accumulo features a few novel improvements on the BigTable design in the form of cell-based access control and a server-side programming mechanism that can modify key/value pairs at various points in the data management process

Es una mejora de las ideas implementadas por Google en BigTable, un sistema de almacenamiento y recuperación de información basado en clave valor ordenados, con el añadido de seguridad a nivel de celda y la posibilidad de ejecutar procesos en el servidor a través de mecanismos de personalización implementados en el mismo. La particularidad es que las consultas al sistema devuelven siempre los datos ordenados según las claves, en función del orden lexicográfico de las mismas.

A su vez el software usa varios bloques de para construirse que están bajo el paraguas de la fundación Apache como Hadoop, Thrift o Zookeeper

Referencias


Technorati Tags:

jueves, junio 13, 2013

El coste de oportunidad de las retenciones en nómina

Estamos en época de retratarse ante Hacienda y me ha dado por hacer un pequeño ejercicio: Supongamos que uno es trabajador por cuenta ajena y la empresa donde trabaja le pedimos que no nos haga ninguna retención1 de lo que nos corresponde a pagar, para hacerlo de golpe el último día en que se puede presentar la declaración de la renta. Y que ese dinero, lo invertimos en algún tipo de cuenta remunerada o un depósito plazo fijo2 el cual nos rentaría un determinado tanto por ciento hasta el momento de pagar.

La siguiente gráfica está elaborada usando salarios desde 18000 € brutos a 60000 € brutos, de una persona soltera , que tiene una licenciatura y en 12 pagas. Si nos vamos a la web Calcula tu Sueldo, introduciendo dichos salarios en saltos de 3000 € podremos ver cuanto hay que pagar de IRPF y de Seguridad Social, siempre que no se tengan otras deducciones.

Ahora, supongamos que el dinero que nos tuviese que retener la empresa lo metemos en algún producto, aunque este no de demasiado rendimiento. Por ejemplo un depósito bancario que nos ofrezca un 1.5% TAE. A las ganancias que se vayan obteniendo, hay que quitarles el 25% de impuestos sobre el capital. Al menos, no se está financiando gratis al Estado y estamos aprovechando la oportunidad para obtener algo de rendimiento a nuestro dinero. Algo similar ocurre cuando una empresa te paga en 14 periodos: se está financiando al 0% con el dinero de las pagas extras. Por eso, por ejemplo, yo prefiero que sean 12 pagas.

Relacionado con lo anterior, la gente que se alegra porque hacienda le devuelve, lo que ha hecho durante ese año es financiar gratis al Estado: éste te ha retenido un dinero que en tu poder podías haber aprovechado para hacer alguna inversión. Puede que pare sueldos brutos bajos no merezca la pena, pero para gente que le rentenga mucha cantidad, da para sacarse unos euros a lo largo del año.

Notas

  1. Desconozco si por ley las empresas están obligadas a hacer una retención mínima.
  2. Eso si, recuerden que una cuenta o un plazo fijo es un préstamo que se le hace al banco, que aunque los depositantes están los últimos en el grado de prelación, podría darse el caso de que perdieran dinero. Que se lo pregunten a los chipriotas.

Technorati Tags:

lunes, junio 03, 2013

Canción triste de la obra pública

Esta mañana, paso por la calle Quintana en Madrid. Veo que están volviendo a levantar la misma acera que hace apenas quince días levantaron y pusieron nueva. Días de vino y rosas de la burbuja inmobiliaria, inauguran el tramo de la A-49 entre San Juan del Puerto y Ayamonte, finales del 2002, para en el verano del 2003 levantar todo el tramo para reasfaltarlo de nuevo. Presupuesto de las nuevas terminales de Barajas (T4 y T4s) , 4185 millones de euros, coste final 6185 millones, casi 2000 millones de euros por encima de lo presupuestado.

Ya lo decía aquella ministra que el dinero público no es de nadie, en especial el que se van en comisiones de contratación de obras. Y lo peor es que todavía hay muchos que piensan que es la manera de salir de la crisis (con planes como el famoso Plan E, de tan estupendos resultados)


Technorati Tags: