First steps with MongoDB (II). Database creation, collections and CRUD operations on documents

Resource info
Language Type
English Tutorial

Creating a database with MongoDB is really simple. First, we need to run mongo by running the command >mongo (placed at C:\mongodb\bin). Then, change the initial database to our database in this manner:

  • >use diet

Where diet is the name of our database (if that database does not exist, mongo will create for us). The message “switched to db diet” is shown.

Once created our database, we are going to create a new collection. A collection is similar to a table in a relational schema. In our database, foods will be the name of a collection (of documents). MongoDB allows us to insert directly documents (similar to records in a relational database schema) in such collection (previously created or not).

To create our collection, we use db.foods.insert({…}) statement. Inserting a document corresponds to a storage of a JSON file with a specific structure. In our case, a new food document could have the following structure:

{
food:
    {
     type: "product",
     name: "orange juice",
     nutritional_values:
                     {
                      calcium: "0",
                      protein: "1",
                      cholesterol: "15",
                      sodium: "150",
                      sugars: "1"
                     }
     serving_size: "2",
     patient_id: "001"
    }
 }

1. Insert documents

To insert the previous document in our collection foods, we use the command:

  • >db.foods.insert({type: "product", name: "orange juice", nutritional_values: {calcium: "0", protein: "1", cholesterol: "15", sodium: "150", sugars: "1"}, serving_size: "2", patient_id: "001"})

This operation returns a WriteResult object with the status of the operation and the number of inserted documents (WriteResult({ "nInserted" : 1 })).

Also, we can define variables which contain one or more documents

  • var myfoods= [{food_one}, {food_two}, {food_three}];

Thus, the command to insert all foods is:

  • >db.foods.insert(myfoods)

2. Find documents

We can verify the insertion of the documents by querying the collection:

  • >db.foods.find()

The command will return the documents of the collection, specifying the internal ID of each one. If we need to search a specific document, we can use statements such as this one (it retrieves from the foods collection all documents where the type field has the value meal):

  • >db.foods.find({type: "meal"})

3. Update documents

To update a specific document, we use the command update() in this manner:

  • >db.foods.update({name: "orange juice"}, {$set: {"nutritional_values.sugars": "2"}})

In this case, we have updated a document with the embedded field sugars, changing its value from “1” to “2”. This is an example of basic operation of update command.

4. Remove documents

To remove all documents from a collection, we have to use this command:

  • >db.foods.remove({})

If you want to remove a subset of document that match a deletion criteria (e.g. remove all documents from foods where the type field equals product) use this command:

  • >db.foods.remove({type:"product"})

If you want to remove a single document, use the previous command in this way:

  • >db.foods.remove({type:"product"}, 1)

For more information about CRUD operations visit the Mongo DB oficial website.

Share Button
Posted in Tutorials | Tagged , | Leave a comment

First steps with MongoDB. Installation and configuration of a mongo server

Resource info
Language Type
English Tutorial

is a #NoSQL, open-source and document database designed for ease of development and scaling. It uses documents instead of records, and it is recommended for systems which generate large amount of data (in Big Data scope).

MongoDB is available for all platforms and operative systems. Intallation is explained here. We are going to focus on the Windows OS installation and configuration with some “extra” features.

Installation steps:

1. Download the .msi installer (according to your Windows version) from here.
2. Choose “Custom Installation” to install mongodb in C:\mongodb folder.

Configuration steps:

1. Open a terminal and create these folders to save several mongo files

  • C:\mongodb\data (>md C:\mongodb\data)
  • C:\mongodb\db (>md C:\mongodb\db)
  • C:\mongodb\log (>md C:\mongodb\log)

2. Create a configuration file (mongo.config) in the root folder with this information:

bind_ip = 127.0.0.1
port = 27017
quiet=true
dbpath=C:\mongodb\data\db
logpath=C:\mongodb\data\log\mongodb.log
logappend=true

(Create “\db” and “\log” folders in “mongodb\data” if was necessary)

3. Start and test mongodb (>C:\mongodb\bin\mongod.exe --config="C:\mongodb\mongo.config")

4. Connect to mongo. Open a new terminal as administrator and execute mongo command (>C:\mongodb\bin\mongo.exe)

Install MongoDB as a windows service:

1. Run command >sc create MongoDB binpath="\ "C:\mongodb\bin\mongod.exe" --service --config=\"C:\mongodb\mongo.config"" DisplayName="Mongo Standard"

If services was successfully created, the following log message appears at the prompt (>[SC] CreateService SUCCESS)

Also, you can start and stop the service from the command line with these commands:

  • >net start MongoDB
  • >net stop MongoDB

To remove MongoDB service, run the command >sc delete MongoDB.

Share Button
Posted in Tutorials | Tagged , | Leave a comment

New end of degree projects assignment

General information
Language Source
English url Esc. Sup. de Informática (UCLM)

Escuela Superior de Informática at UCLM has announced the list of TFGs for the course 2015/2016. Students interested in any of these projects should indicate these days. In End of degree projects page a list of my TFG proposals is shown.

Share Button
Posted in Projects and research works | Comments Off on New end of degree projects assignment

Google announces Brillo, an OS for the Internet of Things

General information
Language Source
English url The Verge

Google is rejoining the Internet of Things platform wars. Today at its Google I/O conference, the company announced Brillo, the “underlying operating system for the internet of things,” with a developer preview coming in Q3 of this year. Brillo is “derived” from Android but “polished” to just the lower levels. It supports Wi-Fi, Bluetooth Low Energy, and other Android things.
Share Button
Posted in World news | Tagged , | Comments Off on Google announces Brillo, an OS for the Internet of Things

Internet of Things. Definition of a concept

Resource info
Language Type
English Tutorial

This presentation provides an explanation about the Internet of Things (IoT) concept. The importance of sensors, connectivity, and people and processes as well as the usefulness of smartphones with mobile devices is presented. Also, there is time for discussions and examples.

Share Button
Posted in Tutorials | Tagged , | Comments Off on Internet of Things. Definition of a concept

Website changes…

… If you notice that something is wrong with this website these days, do not worry about it!
It is being updated… 😛

Be patient!

My soul has learned what it came to learn, and all the other things are just things. We can't have everything we want. Sometimes, we simply have to believe~Garth SteinSource: The Art of Racing in the RainTweet
Share Button
Posted in Home | Comments Off on Website changes…

La salud como desarrollo incipiente en lo social

General information
Language Source
Spanish url El Blog de Enrique Dans

Hace ya bastante tiempoque los desarrollos en monitorización de parámetros relacionados con el ejercicio, la nutrición o la salud entendidos de un modo amplio empezaron a apuntarse como tendencia en segmentos demográficos caracterizados por la afinidad a la tecnología y a lo social.
El fenómeno del quantified self como medición de parámetros de actividad relacionados con el bienestar personal, incluyendo aspectos que van desde el mero autocontrol hasta esquemas de gamificación social para procurar incentivos a la consecución de determinados objetivos no son ya novedad: los primeros activity trackers como Fitbit datan del año 2009, y en torno a ellos han surgido toda una amplísima panoplia de dispositivos de diferentes tipos dentro de la categoría que se ha dado en llamar wearables, en la que actualmente compiten, además de Fitbit, marcas como Nike, Jawbone, Misfit, Bowflex, Withings, y muchas más, y se combinan o confunden en sus funciones con dispositivos como smartwatches o aplicaciones de smartphone. Además, existe todo un amplio ecosistema de medidores de parámetros como peso, porcentaje de grasa, ritmo cardíaco, presión arterial, sueño, etc. de estas y otras marcas, que pretenden complementar una imagen de nuestro estado general o incluso funcionar como auténticos dispositivos de diagnóstico clínico, y que están generando un enorme interés: Scanadu, del que hablamos no hace mucho, ha sido capaz no solo de multiplicar por dieciséis su objetivo inicial de $100.000 en su campaña de crowdfunding en Indiegogo, sino también de levantar diez millones y medio de dólares de inversores privados para continuar con su desarrollo.
¿Hacia dónde va todo esto? El crecimiento de la base de personas que llevan a cabo una sistematización de métricas relacionadas con su salud va en paralelo con el desarrollo progresivo de una cultura basada en la actividad física saludable: nunca hemos visto tanta gente corriendo, caminando o practicando deporte de una manera habitual. Las empresas dedicadas al desarrollo de este tipo de dispositivos están captando cada vez más inversión, dando forma a un ecosistema en evidente rumbo de colisión con el mundo de la salud. Las inversiones en el campo de digital health se han triplicado tan solo a lo largo del último año. Las posibilidades que un entorno de constante generación de datos puede aportar a la medicina son enormes, de cara por un lado a la transición de sistemas de salud enfocados a la solución de problemas hacia la prevención de los mismos, y por el otro hacia la investigación. Estamos aproximándonos progresivamente hacia mecanismos que permitan unamonitorización prácticamente constante, frente a pruebas diagnósticas que simplemente ofrecen una imagen fija de un momento determinado: un rediseño de todo lo relacionado con la salud que va a conllevar fuertes cambios y redimensionamientos en muchas empresas relacionadas con ello.
Share Button
Posted in Thoughts and opinions | Tagged , | Comments Off on La salud como desarrollo incipiente en lo social

Reunión del proyecto europeo Personal IADL Assistant (PIA) en Ciudad Real

General information
Language Source
Spanish url Gabinete comunicación UCLM

La UCLM desarrolla técnicas para la mejora de la autonomía de las personas mayores

Investigadores de la Universidad de Castilla-La Mancha, Noruega, Alemania y Reino Unido se reúnen en el Campus de Ciudad Real para discutir sobre el desarrollo del proyecto europeo PIA, que trata de mejorar la autonomía de las personas mayores en el hogar a través del uso de las nuevas tecnologías.
Cada vez son más las personas mayores que quieren seguir viviendo solas en sus casas y realizar las actividades diarias sin depender de otros. Al objeto de facilitarles esa tarea, la Universidad de Castilla-La Mancha (UCLM) trabaja en un proyecto de investigación europeo que trata de ofrecer soluciones para la mejora de la autonomía de las personas mayores en su hogar a través del uso de las nuevas tecnologías, de forma que les permita asistirles en la realización de las actividades instrumentales de la vida diaria.
El proyecto PIA (Personal IADL Assistant) fue concedido en marzo de 2013, dentro de la convocatoria AmbientAssisted Living (AAL), al consorcio integrado por el grupo de investigación MAmI de la Escuela Superior de Informática de la UCLM; Karde AS, Tellu AS y Asker Municipality (Noruega); Universidad del Ulster, StickyWorld y Accord Group (Reino Unido); y el Instituto de Berlín para la Investigación Social (Alemania). Coordinado por Riitta Helman de Karde AS, implica a 18 investigadores que durante los días 6 y 7 de noviembre se han reunido en Ciudad Real con el objetivo de discutir sobre el desarrollo de este proyecto que tendrá una duración de dos años.
El proyecto, según explica el director del grupo MAmI e investigador principal de PIA por parte de la Universidad regional, José Bravo, ofrecerá a los usuarios finales videos demostrativos, a través de dispositivos móviles (tablet o teléfonos inteligentes), en los que se explicará cómo realizar determinadas tareas del día a día que se desarrollan en el hogar, desde las relacionadas con la limpieza, como poner una lavadora, hasta las del manejo de las finanzas o la medicación.
Los videos serán realizados y protagonizados por los asistentes o familiares de las personas mayores, por considerar que la cercanía a las mismas puede suponer un valor añadido a la hora de aprender la función a realizar. Para ello, el grupo de investigación les ofrecerá las técnicas y las pautas a seguir con el objetivo de que el resultado sea un video “muy sencillo y eficaz”, porque “lo que tratamos con este proyecto es ayudar de forma efectiva a los mayores para que puedan desenvolverse de forma autónoma en su vida diaria”.
La escasa familiarización de los mayores con el uso de las nuevas tecnologías es una de las cuestiones que preocupa a los investigadores, de ahí que el proyecto PIA aplicará una amplia gama de directrices de usabilidad y de accesibilidad. Así, y de forma previa, se realizará un test entre posibles usuarios al objeto de comprobar cómo puede ser su reacción ante el producto, que, insiste el profesor José Bravo “tiene que ser muy, muy sencillo”.
El resultado final del proyecto será trasladado a las empresas participantes en el mismo, que serán las encargadas de elaborar el producto y comercializarlo.
Share Button
Posted in My news | Tagged | Comments Off on Reunión del proyecto europeo Personal IADL Assistant (PIA) en Ciudad Real

Luto por la ciencia

General information
Language Source
Spanish url Jesús Fontecha website

Se confirma que el I+D en España está muriendo y ninguno de nuestros políticos está dispuesto a darle el peso que se merece. Al menos esto se desprende de los nuevos presupuestos con los que se contará para el 2014, y aún dirán que se han incrementado; pero las necesidades de la investigación y la ciencia en nuestro país requieren que se le de mucha más importancia y cuente con mayor inversión para que todo funcione y se desarrolle como es debido. Es una realidad que los países que más invierten en este sentido, los que apoyan la investigación, la innovación y la ciencia, son los que más rápido se desarrollan y generan riqueza.
Aquí, en España, está pasando todo lo contrario. La investigación por vocación está bien, pero, como diría mi madre: “las personas no pueden vivir del aire”. El ejemplo que dan nuestros políticos (sean del partido que sean), una vez más, es más que lamentable. Todos los trabajos por hacer, los que se están haciendo y que no se culminarán y aquellos que se podrían realizar a corto plazo, junto con las personas (investigadores/as) que los hacen posible y que casi nunca lo hacen por motivos meramente económicos, están de luto, y hoy, aniversario de la muerte de D. Santiago Ramón y Cajal, así lo manifiestan.

Luto por la Ciencia

17/10/2013. Jornada de Luto por la Ciencia

Al fin y al cabo, la investigación y la ciencia son los motores de nuestra sociedad.

Comunicado Luto por la Ciencia.
Share Button
Posted in Thoughts and opinions | Tagged , | Leave a comment

Introducción a PhoneGap y primeros pasos

Resource info
Language Type
Spanish Tutorial

La siguiente presentación supone una introducción al framework Phonegap. ¿Qué es?, conceptos previos, primeros pasos para la programación de aplicaciones con Phonegap y despliegue de aplicaciones Phonegap en Android.

Se incluyen ejercicios y ejemplos que puedes ser descargados desde los siguientes enlaces:

url Hola Mundo con PhoneGap

url Ejercicios de manejo de sensores (brújula, acelerómetro y geolocalización)

url Soluciones a los ejercicios anteriores

Share Button
Posted in Resources, Tutorials | Tagged , , | Comments Off on Introducción a PhoneGap y primeros pasos