Mi experiencia en el FOSDEM 2014 – No deberías perdértelo

FOSDEMposterEste año he asistido al FOSDEM 2014  por primera vez y tengo que decir que ha sido una experiencia genial, las charlas han sido de primer nivel a los que he asistido y estaba muy interesado, pero también tengo que decir que tenía otras charlas de las que nada tiene que ver con las cosas que normalmente hago, pero recomiendo a todos aquellos que estén pensando en ir, que se apunten y se organicen bien a lo que quieren asistir, hay mucha gente y los más seguro es que te quedes sin entrar, como les ha ocurrido a muchos.

Sobre el tema del alojamiento, recomiendo estar lo más próximo al campus ULB, ya que me pasó a mi, que estaba un poco lejos, tenía que coger transporte público pero se tardaba en llegar, tenía que combinar metro y tranvía o autobús. Eso si como estaba en centro de Bélgica, es un ventaja si vas de turismo, pero en mi caso, poco he hecho. Lo que hacía era madrugar un poco para dar un paseo matinal y disfrutar de las calles vacías del centro y hacer tiempo para llegar a las charlas.
Seguir leyendo

Anuncios

Algunas claves a la hora de diseñar nuestros datos: Schema Design con MySQL vs Schema Design con MongoDB

Think Different WordleEn estos últimos tiempos, se está viendo que hay un emergente mundo y un crecimiento de soluciones de base de datos y yo, como desarrollador, me estoy haciendo muchas preguntas, tales como: ¿Debo usar SQL o NoSQL? ¿cuándo debo usar una u otra? ¿Cuál es la diferencia? ¿Cuál debo utilizar para mi proyecto? ¿Puedo o debería utilizar los dos? son preguntan cuando te cuestionas cosas como: déjalo así “es que esto se ha hecho siempre de esta forma”. Pienso que tenemos la obligación, como desarrolladores, el saber las diferentes posibilidades disponibles para obtener los mejores resultados de nuestros proyectos y esto quedará reflejado en nuestros clientes.

En la mayoría de los proyectos estamos utilizando las bases de datos relacionales como algo implícito en nuestros proyectos, no quiero decir que esté mal, pero tampoco creo que esté bien, si se ha puesto implícitamente una base de datos relacional. Además, el cambio de paradigma y pensamiento a la hora de utilizar soluciones NoSQL como MongoDB, nos trae retos muy interesantes.

Uno de los retos a los que me enfrentado cuando he comenzado a utilizar una base de datos NoSQL, es el diseño del esquema, a pesar que una NoSQL como MongoDB es Schemaless, pero esto no quiere decir que no necesites pensar en un esquema. Pues bien, si mientras que en el mundo relacional, la normalización es desde dónde siempre se arranca la manera de diseñar la funcionalidad de nuestro proyecto, ahora nos tenemos que plantear el ¿cómo debemos diseñar nuestras colecciones y documentos, al crear una nueva aplicación de MongoDB?
Seguir leyendo

Algunos métodos CRUD que son necesarios conocer con MongoDB

MongoDB Stickers and Mug Siguiendo con el post anterior de MongoDB sobre Mis primeros pasos con MongoDB utilizando NodeJS, en esta ocasión vamos a ver algunos aspectos que nos vendrán bien para conocer bien por dónde debemos ir pasando para conseguir los datos de nuestros documentos. Vemos algunos cosas interesantes con respecto a la consola que nos proporciona mongo de la que vamos a poder interactuar con la shell de javascript. Un ejemplo, si creamos una variable doc en la que mentemos los siguientes datos:

> doc = {“name“:”Carlos”, “age“: 26, “profession“: “Dev”}

>db nos dice en que base de datos son encontramos activa

>show dbs nos dice las bases de datos que tenemos disponibles para interactuar

Recordatorio: para proporcionar los datos, accedemos a la db que es la base de datos que tenemos activa, people es el collection dentro de nuestra base de datos y .find() es el método para acceder a los datos. Por tanto si hacemos db.people.find() obtenemos:

> db.people.find() obtenemos todos los documentos de la base de datos 
{ “_id” : ObjectId(“522323da16a738edcd927cd9”), “name” : “Carlos”, “age” : 26, “profession” : “Dev” }

Si no lo hemos insertado deberíamos haber hecho previamente, para ello utilizamos el método insert():

> db.people.insert(doc) siendo doc la variable de antes doc = {“name”:”Carlos”, “age”: 26, “profession”: “Dev”}

El método .insert() lo hace sobre una collections y el campo: valor de cada uno de ellos: Seguir leyendo

Mis primeros pasos con MongoDB utilizando NodeJS

NYみやげのMongo goods貰った!He comenzado a montar un entorno de desarrollo con la base de datos NoSQL Mongodb y utilizar también NodeJS para ver su funcionamiento, la verdad es que llevaba tiempo detrás de ambos temas y ha llegado el momento de hacerlo y llevarlo a la práctica. La verdad es que el entorno de instalación tanto de MongoDB como de NodeJS, no es nada complicado en Linux, si lo intentas en otros sistemas operativos, encontrarás mucha información de cómo poder instalarlo o en la página oficial de MongoBD también dispones de todos los sistemas operativos que lo puedes instalar.

Vemos los primeros pasos de cómo podemos familiarizarnos con MongoDB y la shell que dispone para entender algunos comandos necesarios. Primero debemos arrancar desde el directorio bin el servidor de mongo : ./mongod en la que nos aparece los datos como:

MongoDB starting : pid=5982 port=27017 dbpath=/data/db/ 64-bit host=desarrollo

Ahora ya estamos en predisposición de poder entrar en la shell y ejecutar comandos con ./mongo . Veamos algunos de esos comandos interesantes de saber:

Con el comando show dbs vemos todas las bases de datos creadas, así sabemos cuales son las que tenemos creadas y ponerlas en uso o activas con el comando use y el nombre de la base de datos, use curses por ejemplo. Pero puedes estar pensando si utilizas bases de datos relacionales, ¿Cómo me creo una base de datos?, en este caso es muy sencillo con el mismo comando use si existe la activa y si no existe la crea y la pone activa. Seguir leyendo

Mi nuevo proyecto Web Dev RubyOnRails – SocialBuy

Ruby on Rails Logo Dado que he tenido reiteradas peticiones de que lo haga público y que a los que se lo he contado les ha gustado diciéndome lo mismo: Hazlo público!!! Cuéntaselo a todo el mundo!!, pues eso, quiero contar mi nuevo proyecto SocialBuy, bueno hay otra persona que es un crack del Dev RoR y del iPhone, complemento ideal, además estamos como motos con la idea de hacerlo realidad. Pero…. ¿Por qué este proyecto y por qué con RubyOnRails? Bueno por dos razones principalmente, la primera quiero seguir avanzando en RubyOnRails, quiero que por mis venas corra la adrenalina y la pasión del desarrollo, ya me entiendes no? y también de alguna forma como digo, ponerme manos a la obra, desarrollar. Sigo leyendo blogs, libros, practicando y esas cosas, pero llega un punto que quiero un poco más lejos y poner en marcha lo aprendido y que mejor forma de hacerlo que con una idea de proyecto. La segunda razón es que como tengo que resolver un problema que tengo todos los meses,  he pensado “pues que mejor, que resolverlo y ponerlo a disposición del que lo necesite como yo”.

Tecnología a utilizar:  tendrá RubyOnRails, MongoDB, Android y iPhone. Disciplinas muy interesantes de poner en práctica todas juntas.

Problema: Mi problema es que mi cesta de la compra debe ser lo más económica posible pero no a costa de baja calidad de los productos de la misma a ser posible y necesito saber que bajo mi misma ubicación geográfica claro está, no me serviría en Toledo si estoy en Madrid por ejemplo, que supermercados con mis productos que están dentro mi cesta cotidiana del mes, puedo comprar mi producto o sugerencias como alternativa que tiene y dónde puedo hacer la compra al menor precio posible. Principalmente es para que me resuelva este problema que tengo, seguro que se puede sacar más partido pero como inicio no está nada mal. Seguir leyendo

Si no tienes una solución, créala!! 10 preguntas claves No-SQL

Database Architechs Master Data ManagementHace tiempo que hablé sobre las bases de datos noSQL Bases de datos: RBBMS vs No-SQL, una R-Evolución en un modo general pero hoy quería hablar sobre Cassandra, una base de datos No-SQL que a partir de un problema de escalabilidad se crea una solución.  Cassandra una base de datos NoSQL cuyas características principales son resistencia, escalabilidad y la gran comunidad de desarrolladores por la que es apoyada.

En Cassandra por ejemplo, es posible especificar al leer o escribir dependiendo del nivel de consistencia que quieres tener en la operación, desde el más bajo, que indica que al leer o escribir basta con completar la operación en uno de los nodos, un estado intermedio donde en la mitad más uno para dar por terminada la operación y hasta realizar operaciones con máxima consistencia, donde todos los nodos deben replicarse al escribir o bien responder en la lectura. Pero no es mi intención por ahora, describir cómo funciona.
Seguir leyendo

Bases de Datos: RDBMS vs No-SQL, una R-Evolución

Schweppes

Es realmente fascinante e interesante los nuevos pensamientos y soluciones para cubrir los actuales paradigmas ante la aparición de las nuevas necesidades que las actuales RDBMS no las satisfacen, a este nuevo concepto se le denomina NoSQL Not Only SQL y fue acuñado en el año 1998 para hacer referencia a una base de datos relacional de código abierto que no usaba el lenguaje de consultas SQL (Structured Query Language).

Seguir leyendo