martes, 30 de marzo de 2010

MongoDB Paso a Paso para Principiantes

Introducción

MongoDB es una base de datos opensource que está teniendo mucha aceptación por las prestaciones que ofrece en entorno Web 2.0, aunque puede ser utilizada en cualquier tipo de situaciones. MongoDB acerca el sistema de almacenamiento y gestión de datos tipo clave/valor, puliendo la diferencia con respecto a los sistemas de bases de datos relacionales. Este sistema permite una tremenda rapidez y escalabilidad, frente a la funcionalidad de los sistemas de bases de datos tradicionales.

Las principales características de MongoDB son las siguientes:
- Software abierto
- Escalable
- Alto rendimiento
- Alta disponibilidad (puede trabajar en modo maestro-esclavo)
- Orientado a documentos (no es relacional)
- Simplicidad basada en esquemas de tipo JSON
- Consultas dinámicas
- Completo soporte de índices, incluyendo índices secundarios, objetos internos, arrays (cadenas) embebidos, geospacial
- Rápido, actualizaciones in situ.
- Perfilado de consultas
- Almacenamiento eficiente de datos binarios en objetos largos, tales como vídeos o fotografías
- Replicación y soporte a prueba de fallos
- Auto fragmentación para escalabilidad a nivel de nube.
- Agregación compleja mediante MapReduce
- Acceso y gestión mediante drivers en multitud de lenguajes de programación: C, C++, C#, .NET, Java, JavaScript, PHP, Phyton, Ruby, Perl, etc.
- Soporte, formación y consultoría.

En este artículo (que espero sea el primero de muchos), se realiza una pequeña introducción a MongoDB.

Orientación a documentos
La información en MongoDB no se almacena en tablas (con sus correspondiente filas y columnas), si no en colecciones (estructuradas o no) cuyos datos forman parejas de clave y valor. Estos datos se almacenan con un estilo JSON, en formato binario llamado BSON. Un ejemplo de este estilo se puede apreciar en el siguiente documento:

{ nombre: ‘Rafael’,
apellidos: ‘Hernamperez Martin’,
fechaingreso: Date(’03-22-2010’),
seleccion: [‘Aprenda MongoDB’,’Flex 4 en una semana’,’AJAX para Dummies’],
comentarios: [{autor: ‘adan3000’, comentario: ‘Buena eleccion’},
{autor: ‘majopero’, comentario: ‘Te has pasado’, puntuacion:5}
]
}


Una colección sería similar a una tabla, y un documento sería similar a una fila. Habría que distinguir claramente, pues la colección puede tener documentos con estructura similar pero no igual (algunos documentos podrían tener más o menos claves). Asimismo, una única clave podría tener una colección de valores (array o cadena, como en el caso de la clave “seleccion"), o bien podría ser también una sub-colección con sus respectivos documentos (como en el caso de la clave “comentarios”).

La sintaxis en formato JSON es muy fácil de entender, eliminando los problemas de errores que pueden ocurrir en el formato XML (ambos son muy sinérgicos), además de reducir el tamaño de la información a transportar.

Este formato es utilizado no sólo para entenderlos, sino también para gestionarlos y realizar consultas en sus campos internos. Por ejemplo:

db.compras.find({'nombre':'Rafael'})

Nota: si falla, probar con comillas dobles

Esta consulta localizaría todos los documentos dentro de la colección “compras” cuya clave “nombre” tenga el valor “Rafael”.

Otro ejemplo:

db.compras.find({'comentarios.autor':'adan3000'})

Esta consulta localizaría todos los documentos dentro de la colección “compras” cuyo comentario haya sido realizado por el “autor” llamado “adan3000”.


Instalación
Para nuestros propósitos utilizaremos Windows como plataforma de operaciones. También puede instalarse en sistemas operativos OS X, Linux y Solaris (ver instrucciones en http://www.mongodb.org/display/DOCS/Quickstart)

En primer lugar hay que crear la siguiente ruta de directorio: “c:\data\db”. Esta ruta es la ruta por defecto para los archivos de bases de datos.

A continuación descargar el archivo zip (ocupa apenas 13MB) de la siguiente URL:
http://www.mongodb.org/display/DOCS/Downloads
y descomprimirlo en la ruta que deseemos (por ejemplo en C:\ donde creará un subdirectorio llamado “mongodb-winxx-xxxx”).


Arrancar un servidor MongoDB
MongoDB se ejecuta principalmente en su consola. Para ello se accede al modo consola DOS de Windows (pulsar AltGr+R, escribir “cmd” (sin las comillas) y Aceptar).

Acceder al directorio “bin” de donde se descomprimió el fichero zip (ejemplo):

cd c:\mongodb-win32-i386-1.2.4\bin

Ahora, para lanza MongoDB por defecto, ejecutar el ejecutable:

mongod

Con esto, MongoDB accederá a las bases de datos almacenadas en el directorio
c:\data\db y usando el puerto 27017. Si se desea cambiar el directorio de ficheros de bases de datos o el puerto, usar los siguientes parámetros:

mongod --dbpath [rutadirectorio] --port [puerto]

Si acaso saltase el cortafuegos, desbloquear el acceso para poder usarlo.

Para parar la base de datos, pulsar Ctrl+C. Con ello, MongoDB esperará hasta que todas las operaciones se hayan completado, guardando las últimas transacciones y cerrando los ficheros.

Existen otros parámetros que pueden ser usados por el motor de MongoDB:
-h (--help): Muestra información sobre los parámetros permitidos
--logpath rutafichero: Especifica fichero de log
--logappend: añade al log, en lugar de sobreescribirlo
--cpu: log periódico de la CPU y de los tiempos de entrada/salida
--fork: ejecución como demonio
--auth: Activa la seguridad
--noauth: Desactiva la seguridad (por defecto)
--nohttpinterface: Desactiva la interfaz http (localhost:27018)
--master: Designa este servidor como maestro (entorno de alta disponibilidad)
--slave: Designa este servidor como esclavo (entorno de alta disponibilidad)
--autoresync: Resincronización automática del servidor esclavo.
--source servidor:puerto: Para un servidor esclavo especifica dónde está el servidor maestro para la replicación

Una forma sencilla de arrancar el servidor MongoDB sin repetir los parámetros, es añadiendo éstos a un fichero de configuración. El formato del fichero sería el siguiente:

#comentario
parametro1 = valor1
parametro2 = valor 2


Para lanzar el servidor usando este fichero, ejecutar:

mongod –config ficheroconfiguración
mongod –f ficheroconfiguración


Consola de MongoDB
Una vez arrancado el servidor, podemos utilizar la consola de MongoDB para interactuar con las bases de datos. Para ello, acceder al modo consola DOS de Windows (pulsar AltGr+R, escribir “cmd” (sin las comillas) y Aceptar).

Acceder al directorio “bin” de donde se descomprimió el fichero zip (ejemplo):

cd c:\mongodb-win32-i386-1.2.4\bin

Ahora, lanzar la consola de MongoDB:

mongo

(nótese que no tiene la "d" final).

En esta nueva consola, nos permitirá escribir los comandos necesarios para interactuar con el servidor (mongod), de tal forma que podamos gestionar documentos y estructuras o acceder a la información (entre muchas acciones). Cada comando ha de estar acompañado por un “Enter” para su ejecución.

Por defecto se conecta a una base de datos llamada “test” (por defecto).

Para mostrar la base de datos en uso:
db

Para autentificar un usuario (sólo cuando se ejecuta el servidor en modo seguridad):
db.auth(usuario,contraseña)

Para salir de la consola MongoDB, escribir el comando
exit

Para conseguir ayuda sobre los comandos disponibles, escribir el comando
help

Para mostrar las bases de datos disponibles:
show dbs

Para mostrar las colecciones de la base de datos actual:
show collections

Para mostrar los usuarios de la base de datos actual:
show users

Para utilizar una base de datos:
use nombrebasedatos

Para mostrar ayuda sobre los métodos de base de datos:
db.help()

Para mostrar ayuda sobre los métodos para la colección foo:
db.foo.help()

Para mostrar los objetos en una colección foo:
db.foo.find()

Referencias
Fuente: http://mongospanish.blogspot.com
Sitio oficial de MongoDB: http://www.mongodb.org

lunes, 1 de marzo de 2010

Disponible la 4ª versión del libro "GNU/Fácil"

Se encuentra disponible la cuarta versión del libro 'GNU/Fácil', el cual es una guía completa para introducir a los usuarios nuevos al sistema GNU/Linux y en particular a la distribución más usada Ubuntu Linux.

Este libro esta editado por Antonio Perpiñan Díaz, que por sus aportes a la comunidad del Software Libre y por sus reconocidos libros (ya casi una docena), es muy reconocido en toda América Latina y este autor se siente orgulloso de la puesta en circulación digital de la cuarta versión de este libro que viene desarrollándose desde que UBUNTU estaba en la versión 5.10.

El libro "GNU/Fácil" es una guía completa que debe servir de mucha ayuda para los usuarios nuevos al entorno gráfico de GNOME. Este libro se encuentra escrito con la intensión de educar y bajo condiciones pedagógicas para estudiantes de Preparatoria y/o Universidad.

Sin importar si el usuario introduciéndose al sistema operativo GNU, el libro debe poder asistir para que la introducción sea conducida sin trastornos. El instructor que conduce la cátedra no tiene que ser un profesional informático, solo debe ser diestro con una computadora a nivel de usuario avanzado y el manual lo ayudará a completar el programa presentado en el. Este libro, desde sus inicios que solo se concentraba en el escritorio GNOME, y luego pasó a cubrir el sistema completo GNU, incluyendo la parte de mantenimiento Fundamental, Administrativa y de Redes, claro está a los niveles mas introductorio tomando en cuenta la audiencia a la cual el libro está dirigido. El libro de Antonio Perpiñan, persona dedicada a no solo a educar en asuntos informáticos, sino a la cultura general de los sistemas Unix y la cultura ética de los Hackers, el libro puede servir de introducción para los usuarios a los principios, teorías y practicas necesarias para empoderar a los potenciales nuevos usuarios y futuros administradores de sistemas.

La descargar de este nuevo libro se encuentra disponible desde los servidores FTPs de sourceforge.net. El libro presenta toda una introducción al sistema operativo GNU desde la instalación y nunca se separa del usuario, hasta llevarlo a niveles de usuario avanzado o un "Power User". El contenido del curso es utilizado para la Certificación Propuesta por la Fundación Código Libre Dominicano "GNU Certified Professional" o "Profesional Certificado de Sistemas GNU".

Este libro se encuentra bajo la licencia GNU FDL 2009 (GDFL 2009), la cual la usan todos los libros publicados por la Fundación Código Libre Dominicano (FCLD).

CARACTERISTICAS:

FORMATO: PDF
AUTOR: Antonio Perpiñan Díaz
IDIOMA: Español
TAMAÑO: 31 MB
ISBN: NO ISBN
PAGINAS: 181 Páginas
PAIS: Santo Domingo, República Dominicana
EDITORIAL: Fundación Código Libre Dominicano

La descarga de este libro se localiza desde este enlace.

http://www.codigolibre.org/images/stories/fcld/fcld-nuevo.png

FUENTE: El Rincón de Tux

El núcleo Linux valorado en más de mil millones de euros

Desarrollar el núcleo Linux en Europa y desde cero costaría algo más de 1000 millones de euros si se realizara por una sola organización. Esta es la estimación realizada por profesores de la Universidad de Oviedo, según la cual el valor incorporado anualmente a este producto fue de cerca de 100 millones de euros en 2005 a 2007 ascendiendo a algo más de 200 millones de euros en 2008. Este valor es equivalente a un 4% y 12% de las cifras reconocidas en las cuentas anuales del mismo año de Microsoft y Google, respectivamente, como gastos en I+D para el desarrollo de nuevos productos.


El cálculo aplica un modelo de costes COCOMO81-Intermedio en base a las estimaciones de parámetros ya realizadas en 2004 por David Wheeler para un estudio similar. Se ha empleado como coste medio anual de un desarrollador la cifra de 31.040 , calculada en base a los datos del sector facilitados por EUROSTAT para los países miembros en 2006 y ponderados en función de la población nacional. Con distintas variaciones, estimaciones con base en un modelo similar fueron realizadas ya con anterioridad por diversos autores para las distribuciones Red Hat, Debian y Fedora.



La importancia de la estimación no reside tanto en sí misma sino en la indicación del esfuerzo económico que existe tras un modelo de licencia libre con éxito probado en el mercado tecnológico. Este esfuerzo merecería un mayor reconocimiento institucional mediante un marco regulatorio que permitiera la generación de activos intangibles por la contribución a proyectos exitosos o un tratamiento fiscal de estas aportaciones similar a las desgravaciones existentes para el mecenazgo y patrocinio de actividades de interés público.

Fuente: http://softlibre.barrapunto.com

MI PRÓXIMO COLECTIVO


La idea es tan simple como brillante. Poner GPSs en los bondis y levantar esa info en internet.

De esta forma, sabés dónde está el cole que te tenés que tomar y cuando va a tardar en llegar a tu parada. Además aporta datos como la velocidad, la ruta y el tiempo estimado de llegada a la próxima parada.


Por ahora es una prueba piloto con solo unos 5 colectivos interurbanos, pero funciona a la perfección (lo testeamos y todo!)

Ahora estaría genial tener una web mobile friendly para poder acceder a la misma desde la propia parada con un celular.

Web | Mi Próximo Colectivo

jueves, 7 de enero de 2010

POR FIN VACACION, VUELVO EN FEBRERO!



Después de una abrumadora jornada academica anual, donde el estrés se ha convertido en el jefe más tirano, lo que más ansiamos es llegar a casa y dejarnos llevar por un sueño profundo, arrojarnos en piscinas con aguas ultra frescas por el calor de nuestros clima. Sin embargo, puede ocurrir que estemos tan cansados que nos sea muy difícil conciliar el sueño o un descando placentero.
El descanso es la fuente vital por excelencia a causa de varias razones. Primero, porque hace que se reparen los tejidos, las encimas se reacumulen y se restaure la energía. En segundo lugar, fortalece el sistema inmunológico, contribuyendo a la protección contra las enfermedades. También ayuda a la curación de las heridas, infecciones, estrés y traumas emocionales. Y, sobre todo, puede prolongar una vida sana y activa.
Lo mejor para dormir mejor es mantener un programa regular de sueño. Este debe ser complementado con ejercicio diario por espacio de ½ a 1 hora, conjuntamente con caminatas, bebiendo agua y respirando lenta y profundamente. Así mismo, es recomendable cenar al menos 4 horas antes de acostarse y tomar baños relajantes. A descansar se ha dicho.
FELICES VACACIONES, A QUIEN PUEDA!

Fuente: Diehl, Hans y Ludington, Aileen. Vida dinámica

jueves, 17 de diciembre de 2009

Gufw 0.20.7 Final – ufw de una manera gráfica y sencilla
























Gufw es una manera fácil, intuitiva de manejar el cortafuegos de Linux. Soporta tareas como permitir o bloquear aplicaciones preconfiguradas, servicios, programas p2p, o puertos individuales. Gufw funciona gracias a ufw, corre en Ubuntu, y en cualquier otro sistema donde Python, GTK, y Ufw estén disponibles.

Puedes instalarla en gracias a este paquete deb:

Fuente: http://www.ubuntips.com.ar