jueves, 24 de mayo de 2012

Comandos básicos Mongod consultas

Intro
Para esta entrada veremos los comandos básicos a usar, si utlizamos mongod, el tutorial de instalación lo tiene publicado en un buen post un compañero de clase (Saul Gausin).
Dando una breve introducción mongod es un un administrador de base de datos para sistemas paralelizados.

En este post mongod lo utlizaremos con python.

Empezamos importando la libreria

>>from pymongod import Connection #importamos la librería necesaria
>>connection =Connection() #Creamos la conexión para correrla como instancia de mongod

>>connection = Connection('localhost', 27017)  #Donde nos conectaremos a nuestro localhost e indicamos a que puerto buscamos conectarnos

>>db = connection.test_database #Creamos la instancia donde le agregaremos el nombre de la base de datos
>>db = connection['test_database']

Collection, un collection en mongod lo podemos nosotros relacionar como el conjunto de tablas en una base de datos

>>collection = db.test_collection #instanciamos la base de datos para establecer la collecion
>>collection = db['test-collection'] #Damos el nombre del grupo de collection En la cual nos regresara un 

Documento.
Una de las ventajas o de las estructuras que maneja mongod, es el uso de un Documento, un Documento es el resultado obtenido con parámetros, pero esta esta formada como un JSON (En entradas anteriores se han hablado el uso de este).

JSON
No hace falta mencionar que existen diferentes estructuras, pero una de las ventajas de este es al momento de respuesta o consulta a determinada base de datos y esta es mucho mas rápido, ya que leyendo me encontré con un documento en la cual una consulta de 100 parámetros a recibir, tarda 0.0178 seg. en cambio un XML tardara 0.0371 seg., la diferencia como vemos es mucha.

Creando un Documento
Para crear un documento en mongod se utiliza el parametro insert()

>>posts =db.posts #instanciamos posts donde indicaremos que este sera un post
>>posts.insert(post) #a este le agregamos un Documento con el nombre de post
ObjectId('...')  #nos crea un id

Como podemos ver en si la estructura se parece a la sintaxis o estructura que manejamos en SQL y JSON, la unica diferencia es que cambian algunas palabras reservadas.

La importancia de esta, como menciono en el post de Saul, sirve para la administración de Base de Datos cuando las tenemos en distintas ubicaciones.

Cuando queremos hacer una consulta de un id especifico y un parámetros, nos encontramos con el método >>posts.find_one({"id": "Parametros a leer"})
Nos regresara elDocumento donde se encuentra estos parámetros

Para hacer una inserción en un Documento determinado, lo encontramos en el método insert()
>>db.posts.insert({"id" "parametro a agregar"})

Para eliminar un parámetros, mandamos llamar el método delete()
>>db.posts.delete({"id" "parametro a eliminar"})

Bibliografía:

Aportación semanal Distribuidos

Mi aportación semanal para esta semanan es la Documentación de LAMMPS, donde la pueden descargar de la siguiente URL:
http://abimage.comli.com/paralelo/pdf/Documentacion%20LAMMPS.pdf

Mis nominaciones para esta semana son: Juan Carlos y Rafael

Sensor de Flujo de Agua

Intro.
En esta entrada, hablaremos sobre el sensor de flujo de agua, este tipo de sensor nos ayudará a determinar la cantidad de agua que esta pasando en determinada tubería.

Material:
  • Arduino Uno
  • Cable USB
  • G1/2 Water Flow sensor //Imagen

  • Jumpers
  • Una resistencia de 10K

Mover servomotor con Sensor de Aproximidad

Intro.
Para esta entrada, busque hacer la implementación del sensor de aproximidad en la puerta, en la cual buscaría que al momento de pasar el usuario esta se abriera y al momento de salir del rango del sensor se cerrara (la idea es trollearlo un rato y que no pueda pasar).

Material:
El material a utilizar ya lo hemos utilizado en entradas anteriores así que no hay algo diferente.
  • Arduino Uno
  • Cable USB
  • Servomotor Futaba S3010
  • Sensor de Proximidad SHARP GP2Y0A21YK 

Arduino Serial PHP

Intro.
En ocasiones no podremos disponer de un ethernet shield de arduino en la cual ocuparemos hacer la comunicación con un servidor o que el usuario de manera externa conosca los parametros producidos.

Material:
  • Arduino Uno
  • Sensor de Proximidad SHARP GP2Y0A21YK
Desarrollo:

Arduino Ethernet Client

Intro.
En entradas anteriores se ha hablado sobre el arduino ethernet, pero este poniendolo en forma de servidor, en esta ocasión, interactuaremos con el arduino ethernet en forma de cliente.

¿Diferencia?
La diferencia si ponemos nuestro arduino en forma de cliente o servidor, en Servidor, como se vió en entradas anteriores, nos derá la oportunidad de hacerlo un servidor web y un cliente, lo que hará, será leer paramatros o pedir de determinada url.

UIDevice currentDevice

Intro.
Todos los dispositivos iOS cuentan con un id único que este servirá para identificarnos.

Utilidad:
Estos métodos los podemos emplear al momento que queremos saber cuantas personas decargaron nuestra aplicación, si la aplicación tiene llamadas a un servidor, saber cuantas tenemos al día, saber cuantas llamadas hace cierto dispositivo, saber que tipo de dispositivo es el que visita nuestros servidores, en lugar de utilizar apis de 3ros al momento de hacer logins, podemos emplear este.

Hacer POST y PHP iOS

Intro.
Hacer post desde nuestro dispositivo móvil es una de las partes mas importantes al momento de interactuar con otros medios, ya que esto nos sirve para mandar parámetros y ya dependiendo de estos y a su destino es la funcionalidad que tendrá.


Rollo:
Este método empleado debo de mencionar que lo utilizo en mi proyecto final de abrir y cerrar una puerta desde nuestro dspositivo móvil.

Código:
El codigo ejemplo que uso es el mandar parámetros a un archivo php y este imprimira cualquier valor obtenido

Hacer múltiples Vistas iOS

Intro.
En varias ocaciones, nos encontraremos en la situación en la que buscamos hacer multiples vistas, o que tenemos que crear varias imagenes en la pantalla. Así que uno como principiante lo que haría es crear vista por vista o imagen por imagen, hasta terminar con nuestro objetivo.

Solución:
Como comentado mas arriba, me he encontrado con la sitacion que debo de crear multiples vistas y que en estas mismas deben de contener una imagen o un label. La solucion es la combinación de un plist y estas agregarlas a una vista, donde en el plist lo tendremos persoxnalizado con los valores que buscamos poner o crear. Como por ejemplo: el tamaño, el nombre, direcciones de la imagen, entre otras.

Gestores iOS

Intro
Para esta entrada veremos sobre el uso de gestores, un gestor se podria decir que es cuando a cierto objeto fisico(visible en la aplicación) le queremos dar una acción, una acción nos referimos como cuando la tocamos.

Ventajas:
En el uso de gestores, tiene una buena importancia, ya que sin estos, una aplicacion no funcionaria en su totalidad.

Medotos:
iOS es muy flexible en el uso de estos, asi que incorpora métodos preestablecidos, donde nosotros podemos hacer uso de ellos donde tenemos un UIEvent que encontramos los UITouch´s

miércoles, 23 de mayo de 2012

Plist iOS

Intr
Para esta entrada hablare sobre el uso y la importancia de un plist. Un plist en iOS es como un archivo .txt, donde nos puede servir para almacenar o leer datos, la diferencia de esta es que es manejada en un tipo de formato estructurado como xml o json.


Ventajas:
Una de sus fuertes ventajas es que la informacion estructurada en ella, le podemos dar un formato, ya sea que esta sea entera, flotante, String, un diccionario, entre otras.
Estos tipos de formatos son muy usadas en Xcode al momento de crear juegos, ya que podemos guardar la lista de objetos que iremos a crear o a utlizar, un ejemplo muy sencillo es el objeto de un guerrero, donde este guerrero, tiene una imagen, un icono, un sonido, armas, vida total, tamano, acciones, si es que le metemos un degradado, otra imagen donde lo podemos caracterizar con un movimiento, podemos guardar puntajes, entre otras.

viernes, 18 de mayo de 2012

Cluster iOS project

Navegando en internet me encontre con proyectos muy interesantes realizados por japoneses, éstos proyectos estan relacionados con cluster & iOS(este post es algo relacionado con el anterior), En estos proyetos, podemos ver que los dispositivos se comunican y dependiendo de la opción es la acción a realizar.

Estos tipos de proyectos son muy interesantes y vale la pena desarrollar.

Videos

Cluster android project

En una entrada anterior, había posteado algo relacionado con cluster en arduino. En esta ocasión me encontre con una librería que han estado desarrollando para hacer un cluster con dispositivos android, en la cual la comunicación es hecha en una red punto a punto (peer-to.peer).

Peer-to-peer
Este tipo de comunicación lo que se busca es comunicar los dispositivos sin que exista  un cliente o un servidor.

Video 

Low Orbit Ion Cannon

Siguiendo el tema de los bots, me interesó buscar una herramienta, troyanos, bots y demas usados para este fin, interesandome también por lo que actualmente vivos de los ataques DDoS que hace anonymous, a servidores y me encontre con una herramienta que últimamente han estado fomentando LulzSec, 4chan, Anonymous, entre otras, con el objetivo de bloquear servidores de varias organizaciones en contra de ellos, copyright, etc.


jueves, 17 de mayo de 2012

Algoritmo detector de bots

Un bots es un conjunto de robots informáticos que se ejecutan de manera autónoma y automatica. Donde el nodo padre(en ocasiones este puede ser controlado por otro, que controla tambien a otros nodos y así sucesivamente), o artífice puede controlar todos los ordenadores o servidores infectados de forma remota, normalmente haciendolo por medio de IRC. La mayoría de estos programas, su finalidad es hacer ataques DDoS a servidores (Denegación a acceso), en el que consiste en hacer múltiples llamadas a un servidor saturando su ancho de banda.

Actualmente, encontrar este tipo de programas maliciosos es un poco complicado si no se tiene con un buen antivirus, ya que muchas veces el sistema lo puede tomar como un programa de descargas o algo que tenga que ver con actualizaciones y que nosotros no tengamos idea que en ocasiones nuestro ordenador es usados para otros fines.

Proyecto PIC: Contador del 0 al 9

Intro
Como proyecto tuve varios problemas para la programación del PIC, ya que el programa que empleaba no compilaba bien, por la falta de una librería y aparte por dejarlo a última hora, la idea principal fue hacer mover un servomotor con el PIC de forma aleatoria, pero el servomotor utilizado tenía una falla ya que no regresaba señal de voltaje al verificarlo en un multimetro. Así que lo realice junto con un compañero Esteban.
Material
El material, utlizado en la mayoría del caso ya se ha empleado en otros proyectos
  • Siete resistencias de 10K
  • Diversos jumpers
  • 1 PIC 16f628a
  • 1 Display de Catodo Común

Desarrollo

Aportación semanal

En esta semana mi aportación semanal es sobre el algoritmo de Nagle, su importancia no tanto por el modelo de comunicación ya que investigando no ayudaría mucho al cluster, sino como filtro. Dejo el link de la wiki.

Mis nominaciones para ésta semana son para Juan Carlos, Rafael y Saul.

Crear vistas en iOS

Intro
Para esta entrada veremos como declarar diferentes tipos de vistas o contenido en iOS codificandolo nosotros mismos, sin el uso de storyboard. 
¿La diferencia? En lo personal me gusta no usar storyboard, una de las opciones esque nosotros manejamos el objeto creado, accesando a mas parametros de ese objeto e inclusive modificando sus tamaños.

Ventajas
Como mensioné, es mas bien el gusto de cada uno, pero en varios casos te facilita, ya que si vas a crear multiples vistas, labels y demas con diferentes tamaños que tienes como medidas es mucho mejor hacerlo por líneas de código y en lo personal, mas sencillo de enteder, que tener varias ventanas apuntando a todas.

BigData in the Medicine

Intro
I'm develop apps for iOS and Android systems. And my boss say that the money or the real apps be in the area of medicine, because need a multiple apps for each test, user, etc.
And y read a notice that big companies uses the BigData, generate by the area of medicine for the treatment of Multiple Sclerosis.

Actually the Multiple Sclerosis is very difficult to diagnose and very painful, because the user must do a biopsy and need a big computers to process this results, check the history of the user, need to wait 600-1000 testings, process others results, etc.

Some companies for example IBM, analyzes this results or testing and says that combining the multiples couples, exists millions of test to do, but using the BigData and processing in differents labs we can do  one thousand of test in sequence, reducing the time of waiting for the user.

Sensor de Flujo de Agua

Intro
Para esta entrada, lo que veremos será una parte de como obtener los parámetros de un sensor de flujo de agua. Para este caso el sensor, fue un poco difícil de conseguir, ya que buscando no estaban disponibles o eran para usos muy industriales, elevando su precio, así que lo mande pedir de seeedstudio.

El tipo de sensor que tiene es de hall-effect que en pocas palabras, este funciona como un abanico, donde circulan cargas perpendicularmente a las cargas y al campo magnético aplicado

Material
El material como se ha trabajado en la mayoría es el mismo:
  • Cable USB
  • Arduino Uno
  • Una resistencia de 10K
  • Jumpers o diferentes cables
  • G1/2 Water Flow sensor (link)

miércoles, 16 de mayo de 2012

JSON en iOS


Intro
Para esta entrada, veremos un poco sobre la comunicación de datos entre un dispositivo móvil y un servidor, en éste caso veremos en un dispositivo en iOS.


Forma de Comunicación JSON
En esta parte veremos la comunicación con JSON, pero antes, hay que ver la estructura de un JSON.
Para no aburrirlos en la teoria, les pondre la estructura del ejemplo que utilice.
Ustedes lo pueden ver el la siguiente URL


jueves, 10 de mayo de 2012

Sistemas Caóticos: Triangulo de Sierpinski


Intro
Un sistema caótico es un sistema donde va evolucionando con el tiempo, donde sus valores iniciales son muy sensibles a las variaciones que puedan existir.


Aplicaciones:
Una de las aplicaciónes donde podemos incluir esto es principalmente en la ciencia y tecnología ya aplicamos este modelo a sistemas donde son completamente dinámicos, algunos ejemplos a mencionar sobre la aplicación es la simulación de un relieve, simulación de temperatura en determinada población, el comportamiento de las olas/aire, el comportamiento de agentes (como la simulación del tráfico en una población).

Entrada Semanal

Para esta entrada, hice un post relacionada con las entradas anteriores que eran sobre el big data, aqui dejo el link de la wiki.

Mis nominaciones para esta semana son para Rafael y David Sosa.

BigData... Break?

Intro
The last entry about the big data, got me thinking... How many information we generate per day, per month, per year?, the information can be saturate the servers?, we will be die?, the lolcats where will stay? and others.


Data
Reserching I found that in the year 2003 the humanity generate 5 exabytes of data, in 2011 we generate the same quantity each 2 days and in the 2013 the same quantity be produce each 10 minutes... 10 MINUTES..!!!!
Image that in the 2013 we have a population of 7,000,000,000, each person will be generate per day 102.85 gb. of information and in the year generate 37540.25 gb., WTF?! the servers will be break or better yet will be commit suicide.

miércoles, 9 de mayo de 2012

BigData

Researching I found an entry of the BigData as I was looking things related to the processing of big data, actually many companies generate this and use them for different purposes, a clear example would be  facebook that selling our information to others.
In the entry, talks about that google want to plays in this area, helping to the companies to process the information for their diferents objetives (publicity, know that the users want, etc).

Tarea Intro: Lenguaje ensamblador

Intro
El lenguaje ensamblador es un tipo de bajo nivel, ya que es la forma mas directa en la que nos podemos comunicar con el computador y cada una depende de su arquitectura.
En varias ocasiones nos preguntamos como un lenguaje lo entiende la computadora, la respuesta esta en los compiladores, ya que estos funcionan como intermediarios, viendo en otra forma, como un traductor, dependiendo de su instrucción este lo traducira a lenguaje ensamblador, para ser procesado en el procesador.

¿Algunas ventajas o porque saber/tener una idea de eso?
Una de las mayores ventajas viendolo en el ambito laboral, es que es muy bien pagada, ya que la mayoria de los programadores les resulta un dolor de cabeza, por lo que podemos decir que no cualquiera es un buen programador en esta área. Otra de las ventajas es como ya mencionado, la forma mas natural de comunicación entre nosotros y el computador, por lo que hacer un programa en ensamblador, será en los mayores casos, mucho mas eficáz, no requerirá tanto procesamiento por ser directo al momento de jugar con los registros o indicar el tamaño que ocupara estos.

martes, 8 de mayo de 2012

Comunicación Arduino Ethernet y Dispositivo Android

Intro.
Anterior mente me había estado quebrando la cabeza en hacer la comunicación de mi arduino ethernet shield con android y por un tiempo lo deje pendiende, pero hace hace poco decidí retomarlo y lograr hacer la comunicación teniendo exito (me la pelo).

Error
Antes de poner el código y meterle mas rollo, mi problema estaba cuando mandaba los datos, ya que mi código en android cumplía con su función de mandar y mi código de arduino cumplía su función de recibir, ya que al momento de la interacción, el foquito del arduino que indica que recibió un paquete, parpadeaba, entonces ¿Cuál es el problema o error? El error estaba en que mi código de android lo que hacía era postear la variable (algo asi para mandar parametros en un formulario) y mi código de arduino interpretaría los valores recibidos por la url y no por un ¡POST..!!

jueves, 3 de mayo de 2012

Aportación semanal distribuidos

Para esta semana dejo aquí mi aportación, donde hable el poder usar un sintetizador de audio, ya que un compañero me pregunto si no conocía uno que fuera en linea o no fuera muy específico con el hardware.
Mis nominaciones para esta semana son Cecilia y Juan Carlos.