miércoles, 17 de abril de 2013

Extra Points

1. Actual

"There is nothing in the definition that tells you how to provide yourself with S and P, given some actual experiment."


2. Alignment
"The code string is shifted by the same amount in order to maintain alignment."

3. Arithmetic
"Binary coder (such as the Q-coder) are an important special case in arithmetic coding."

4. Binomial Distribution
""

5. Channel
"A channel is a communication device with two ends, an input end, or transmitter, and an output end, or receiver."

6. Condition
"This theorme may seem, at first glance, to be saying that all you have to do to find the capacity of a channel and the optimal input frequencies is to solve the capacity equations of the channel, the equations arising from the Lagrange Multiplier Theorem, and the conditionΣ)^n =1  pi = 1, for p1 ,..., p> 0".

7. Content
"Since the average information content per character is H(S), it follows that the source is emitting information at the rate r H (S) information units per unit time, on average."

8. Denote
"Let C denote the channel capacity."

9. Differ
"By the Law of Large Numbers, if N is large, the source words of lenght N in which the proportions of the source letters within the word differ markedly from the fj have very small probability, collectively."

10. Entire
"Furthermore, there is a waste of time involved: you have to wait until the entire source string is scanned and processed before you have to code for it."

11. Exact
"There are two inconveniences to be dealt with when there is a long run of no rescaling. The first is that we have to carry on doing exact computations of the endpoints α and α + ℓ with the smaller and smaller values of ℓ."

12. Fingerprint
""

13. Frequency
"We now return to the general case, with A ={a1,...,an} and ai haveing input frequency pi."

14. Implicit
"The usual theory of binary block codes starts from the implicit assumption that the relative source frequencies are equal."

15. Independent
"The hidden cost suffered here is fixed, independent of the lenght of the source text, and is, therefore, usually essentially negligible."

16. Inexact
""

17. Input

"Input frequency: Is the relative proportion of ocurrence of an input symbol ai. Let's say we have a memoryless channe with input alphabet A = {a1,..., an}, output alphabet B={b1,...,bn}, and transition probabilities qij, for i ∈ {1,...,n}. The input frequency of a character ai is denoted by pi.


18. Joint
"Similarly, the joint and conditional entropies are average values of certain kind of

19. Jump
"The sequence x, as seen by the Fourier transform, makes a considerable jump each time k goes from -9 to -9, -1 to 0, 7 to 8, 15 to 16, etc."

20. Matching
"This can provide very fast matching, but it significantly reduces the size of the dictionary."

21. Prime
"The constant 40543 which appears in the definition is prime, but is there any other reason for its choice?"

22. Recursive
"This feature of the utility is known as revursive or iterative compression, and will enable you to compress your data files to a tiny fraction of the original size."

23. Relative
"When p=0, the capacity is zero, and any relative input frequencies are 'optimal'. "

24. Success
"When speaking of some unspecified Bernoulli trial, we will call one possible outcome Success, or S, and the ohter Failure, or F."

25. Symmetric
"A binary symmetric channel (BSC, for short) is a memoryless channel with A = B = {0,1}; whichever digit, 0 or 1, is being transmitted, the probability p that it will get through correctly is called the reliability of the channel."

26. Typical
"Higher-order models may do better, where the necessary statistics are gathered from a sample of 'typical' text."

27. Sequence
The word v is called the leave of the parsing of W into a sequence of the si.

28. Binary
The most common sort of choice for source alphabet is: S = {0, 1} L , the set
of binary words of some fixed length L.

martes, 16 de abril de 2013

Rastreo de ubicación en exteriores e interiores

Esta semana tuvimos como tarea hacer un resumen sobre un artículo sobre el rastreo de la ubicación en exteriores e interiores. El artículo que yo elegí se encuentra aquí: http://www.sciencedirect.com/science/article/pii/S0926580508000186.



TÍTULO: UBIQUITOUS LOCATION TRACKING FOR CONTEXT-SPECIFIC INFORMATION DELIVERY ON CONSTRUCTION SITES

Los proyectos de construcción están repletos de información y requieren personal con acceso a ella en lo referente a planos, calendarios, etc. Ser conscientes del contexto del usuario puede facilitarnos el proceso de entrega del proyecto de construcción mediante un mecanismo que determine información relevante de un contexto en particular. La sensibilidad al contexto también puede ser usada para mejorar la seguridad, la logística y las practicas de salud y seguridad en los sitios de construcción. La ubicación es un aspecto importante de la sensibilidad al contexto. Una aplicación consciente del contexto puede utilizar el conocimiento de la ubicación de la persona u objeto para proveer información y servicios relevantes. En el artículo se argumenta que un sistema de rastreo de ubicación exitoso y confiable debe ser capaz de rastrear el contexto espacial de un usuario y entregar información contextual continuamente tanto en exteriores como en interiores para apoyar efectivamente proyectos de construcción. Además se presentan investigaciones que describen el uso de Redes de Area Local Inalámbricas (WLAN) para rastreo en interiores, y Sistemas de Posicionamiento Global (GPS) para rastreo del contexto espacial en exteriores. 

Introducción

Naturalmente los proyectos de construcción están repletos de información y esto requiere que el equipo de trabajo tenga acceso a la información del proyecto tal como planos, calendarios, presupuestos, etc. La naturaleza dinámica de los sitios de construcción también necesita el uso de maneras inteligentes de apoyar al personal de construcción. La entrega de información sensible al contexto permite capturar inteligentemente el contexto de usuario, para de esta manera eliminar las distracciones para los trabajadores en movimiento relacionadas con el alto nivel de información. También, la interacción del usuario con el sistema puede ser reducida usando el contexto como un mecanismo de filtrado para entregar solamente información relevante a los usuarios. Esto tiene el potencial de incrementar la usabilidad, al disminuir el nivel de interacción entre dispositivos móviles y el usuario final. 

Las aplicaciones sensibles al contexto utilizan el conocimiento de la ubicación del usuario o el objeto para proveer información y servicios relevantes, entradas de contrl de trabajo, y para medir la productividad del proyecto. Las tecnologías de rastreo de ubicación son clasificadaes en interiores y exteriores. Los beneficios de integrar ambas categorías para desarrollar un sistema de rastreo y de entrega de información del contexto no ha sido adecuadamente investigado en la industria de la construcción.

Trabajos relacionados
Computación sensible al contexto

La computación sensible al contexto es definida de características ambientales tales como la ubicación del usuario, la hora, la identidad, el perfin y la actividad para informar a la computadora de manera que esta puede proveer información al usuario que es relevante al contexto actual. La computación sensible al contexto permite que una aplicación móvil reciba información tal como Quién es el usuario, Qué está haciendo el usuario, Dónde está el usuario y que dispositivo está usando (en caso de usar uno)

El uso de sensibilidad al contexto para usuarios en movimiento ha sido demostrado en aplicaciones como museos, planeación de rutas, librerías y turismo, y también está siendo investigada en otros campos de la investigación de ciencia computacional incluyendo cómputo móvil, realidad aumentada, cómputo ubicuo e interacción humano-computadora.

Rastro en base a la orientación de la cabeza

En toda aplicación de entrega de información sensible al contexto desarrollada hasta ahora, tanto en interiores como en exteriores, el contexto espacial es definido simplemente por la ubicación del usuario. Otro atributo mayor, la orientación de la cabezax en 3D, es ignorado en los cálculos. En la siguiente figura se muestra como la orientación de la cabeza está definida por tres angulos y se muestra la linea de visión del usuario (hacia dónde está viendo el usuario).



Junto con la posición, la orientación 3D puede definir el contexto espacial del usuario con mucha más precisión de la que es posible con la posición solamente. Por ejemplo, rastrear la posición de un ingeniero en un sitio de construcción puede ayudar a determinar en qué piso de un edificio está ubicado el ingeniero. Sin embargo, esta información no es suficiente para concluir en que parte o sección del cuarto, o que componente en particular u objeto en ese cuarto el ingeniero está mirando actualmente.

Mientras que la posición global del usuario está siendo rastreada por un conjunto de dispositivos, la información de la orientación de la cabeza es una pieza esencial de información que también necesita ser rastreada continuamente. Solo sabiendo tanto la posición exacta y la orientación de la cabeza, la aplicación sensible al contexto puede entregar información precisa al usuario

Conclusión
El uso del rastreo de la ubicación de un usuario en sitios de construcción incrementa la seguridad de los trabajadores, puesto que siempre deben estar atentos a documentar toda la información, y esto puede distraerlos y descuidar su seguridad. Mediante un sistema ubicuo que rastree tanto su ubicación como el objeto de interés del usuario, se podrá eliminar la necesidad de que el mismo trabajador documente todo, y el sistema podrá tomar registro de qué hace el usuario, dónde lo hace, cómo lo hace, y con qué lo hace. Así el trabajador puede estár mas al tanto de su propia seguridad.

jueves, 11 de abril de 2013

Huffman's algorithm

For this week's homework, we had to implement huffman's algorithm for the compression of a given string.

HUFFMAN'S ALGORITHM
This is a method for the construction of minimun redundancy codes. It builds a binary tree with a minimum weighted path length from a set of given weigths. This algorithm is applicable to many forms of data transimission.

It consists in the following steps:

1. Scan the text that is going to be compressed, and count the occurrence of  each character.

2. Sort characters based on number of occurrences in the text.

3. Bulid Huffman tree based on the list of sorted characters.

4. Traverse the tree to determine the code words.

5. Scan text again and create a new text with the code words.

For a simple explanation of how this algorithm works, you can watch this video:

 


Next, is the code where I implemented this algorithms (based on a wikipedia example).

As you can see, the code is incomplete. I just reached the point where you get the nodes of the three (next I had to code each letter).

The tree of the wikipedia example is this:

And the result of my code is this, where it shows each node with its children.


References
Huffman's Algorithm
A simple video explanation
http://en.wikipedia.org/wiki/Huffman_coding
http://www.cprogramming.com/tutorial/computersciencetheory/huffman.html

martes, 9 de abril de 2013

Actividad 6: Simulación de ruteo en ns2

Para la tarea de esta semana tenemos que simular el ruteo en una topología de red con el programa ns2. Yo escogí hacer una topología de anillo.

ALGO DE TEORÍA

Topología
Esta topología es una de las más viejas, y tiene las siguientes ventajas:

- Fácil de instalar y reconfigurar
- Para añadir o quitar dispositivos solo hay que mover dos conexiones.
- Es una arquitectura muy compacta y pocas veces tiene conflictos con otros usuarios.
- Provee una organización de igual a igual para todas las computadoras.
- No disminuye el rendimiento cuando hay muchos usuarios.

Sin embargo, esta topología también tiene ciertas desventajas:

- Hay restricciones en cuanto a la longitud del anillo y también en cuanto a la cantidad de dispositivos conectados a la red.
- Todas las señales van en una sola dirección y para llegar a una computadora deben pasar por todas las computadoras del medio.
- Cuando una computadora falla altera toda la red.

Ruteo
En cuanto a los protocolos de ruteo existen dos clases principales: uno es el protocolo de vector de distancias, y el otro es el protocolo de estado de enlace. El último es el que se implementa en este ejemplo.

Este protocolo consiste en los siguientes pasos:
1. Descubre a sus vecinos y sus direcciones
2. Mide el costo a cada uno de sus vecinos.
3. Construye el paquete con la información que ha recolectado.
4. Lo envía a los demás routers.
5. Calcula la ruta mínima a dichos routers.

SIMULACIÓN

El código para la simulación de la topología en anillo es el siguiente:


Y la ejecución es la siguiente:


Referencias
http://gigatecno.blogspot.mx/2012/03/ventajas-y-desventajas-topologia-anillo.html

http://en.wikipedia.org/wiki/Link-state_routing_protocol

Retroalimentación

AUTOMÓVIL SEGURO

Creo que la idea de este equipo está muy abierta. Se quieren enfocar en 3 cosas: (1) Una especie de alarma inteligente, (2) Rastrear el auto en caso de robo, (3) Parking Tracker : rastrear tu auto en un estacionamiento. Siendo realistas podríamos decir que entre tantas materias que cursamos, a veces es difícil darse tiempo para una de estas opciones, tal vez sea mucha carga querer sacar 3 cosas diferentes. Pienso que deberían enfocarse en una sola de estas 3 cosas (aunque las últimas 2 van de la mano y son muy similares).

En cuanto a la alarma inteligente, en la presentación se mencionó que cuando la alarma del auto fuera activada, se recibiera una notificación en casa, y al menos en la presentación de su blog no menciona notificar al móvil estés donde estés, y pienso que esto sería esencial y aún más importanet que notificar a la casa, puesto que muchas personas pasan más tiempo en sus trabajos que en sus casas, y sería mejor enfocarse en notificar al móvil que a la casa.

Blog del equipo: http://ubicomputo.blogspot.mx/

COMPUTADORA INTELIGENTE

Me agrada la idea del bloqueo automático. Es similar a la característica de los celulares más nuevos de la línea galaxy de samsung, donde esta es aplicada para pausar automáticamente los videos. Tal vez haciendo un poco de investigación sobre lo que ya implementó samsung, este equipo pueda ampliar su proyecto a celulares y también enfocarse en seguridad de celulares y no sólo de computadoras.

El pausado inteligente del samsung galaxy es demostrado en este video:


Blog del equipo: http://aveoctavo.blogspot.mx/search/label/TemasSSI

LOCALIZACIÓN DE OBJETOS PERSONALES

La idea de este equipo la considero innovadora y creo que para los usuarios va a ser de mucha atracción. Me imagino que una aplicación así sería extremadamente útil en, por ejemplo, la universidad, en esos casos donde te olvidas de tu laptop o tu cargador o algo en algún salón y pides que lo reporten por el conmutador, pero claro que jamás va a aparecer. No se el equipo tenga contemplado algo a mayor escala como esto, o si solo han pensado en la casa del usuario, pero sería algo genial que o aplicaran a lugares más grandes como universidades o aeropuertos, así encontrarías tus pertenencias tenga quien las tenga.

Blog del equipo: http://gtdsoftwa.blogspot.mx/search/label/ComputoUbicuo

GALERÍA INTELIGENTE

Considero muy escasas las ideas de este proyecto. Pienso que algo muy útil sería que no solo el espectador pudiera ver las obras, si no que las obras "vieran" al espectador para detectar sus reacciones, y saber en qué obras los usuarios se interesan más, y si algunas de las obras deberían ser reemplazadas por la falta de interés.

Blog del equipo: http://ultimo-sem.blogspot.mx/search/label/Computo%20Ubicuo

CAMA INTELIGENTE

Este equipo, gracias a su estudio de campo, consideró toda posibilidad, y llegó a la conclusión de que al usuario no le gustaría una cama con sensores, y que lo más óptimo sería usar el smartphone para su aplicación.

Pienso que el equipo ha hecho un muy buen trabajo, tal vez la única sugerencia que podría dar serían cosas más vagas como que si la persona no se levanta después de un tiempo y cuenta con clima, la temperatura comience a subir mucho hasta que la persona ya no soporte estar acostado, o que un estereo suba mucho su volúmen. Solo son ideas vagas, este proyecto está muy bien analizado :P.

Blog del equipo: http://3-its.blogspot.mx/2013/03/avance-4.html


CASA INTELIGENTE (SEGURIDAD)

Una de las áreas en las que se enfoca este equipo es en sustituir la llave común de la casa por una llave inteligente. Mi única sugerencia para este equipo sería probar usar los celulares más nuevos que ya tienen incluido NFC para autentificar el acceso a la casa. Esto les facilitaría el trabajo en caso de que la llave inteligente sea un celular.

 
Blog del equipo: http://3-its.blogspot.mx/2013/03/avance-4.html

GARAGE INTELIGENTE

El equipo presenta varias sugerencias para lograr el control del garage de una manera moderna. Pienso que el enfoque debería ser la opción del smartphone. Esto porque es lo que los usuarios siempre cargan con ellos, y sería a lo que se adaptarían más facilmente. En el caso de códigos QR o etiquetas NFC, pienso que a muchos usuarios no les agradaría la idea de implementar algo desconocido.

Blog del equipo: http://obicomp.blogspot.mx/

martes, 5 de marzo de 2013

ACTIVIDAD 5: SIMULACION CON NS2

Para esta semana tenemos la tarea de simular una red mediante el network simulator 2 (NS2), usando Network Animator (NAM).

Para instalar los programas en ubuntu es simple , con el comando que acostumbramos usar:




El código de ejemplo no fue hecho por mi, lo encontré aquí : http://webingineer.wordpress.com/2010/08/15/simulation-example-in-ns-2/

////

////

El escenario descrito por el código anterior se puede describir mediante el siguiente diagrama:


Mediante el diagrama ( y el código) podemos ver los siguientes detalles de la simulación:

  • Se crea una conexión TCP sobre FTP en el nodo 0.
  • Se crea una conexión UDP sobre CBR en el nodo 1.
  • Las conexiones nodo 0 - nodo 2 y nodo 1 - nodo 2 tienen una velocidad de 2Mbps con un delay de 10 ms .
  • La conexion nodo 2 - nodo 3 tiene una velicdad de 1.7 Mbps con un delay de 20 ms.
  • El tamaño de cada paquete es de 1KByte.
Aquí esta la simulación en video, donde podemos ver que al transmitir datos entre el nodo 2 y el nodo 3, se desprenden unos cuadrados rojos y azules, estos representan los paquetes perdidos.


ACTIVIDAD 5: DONDE ENCONTRAR EL HARDWARE

La tarea de esta semana consiste en reportar las diferentes tiendas de electrónica en donde podemos conseguir los componentes que estaremos usando en nuestro proyecto, que en nuestro caso es el proyecto de oficina inteligente.

 Como ya he mencionado en entradas pasadas, en el proyecto utilizaremos RFID para que el usuario ingrese a la oficina, entonces necesitamos conseguir el lector RFID, Sensores RFID (tags, pulseras, etc.).

Para la comunicación entre dispositivos necesitamos el Xbee. Y también veremos donde comprar las cosas esenciales como resistencias , leds, y el arduino que se ha vuelto muy útil.

Además necesitaremos un sensor de movimiento para las nuevas propuestas que se añadieron al proyecto después del estudio de campo.

5 HERTZ ELECTRONICA

Esta tienda es una de las que siempre tengo en mente cuando se trata de comprar componentes electronicos, sobre todo los dificiles de conseguir en otro lugar y es mi recomendación cuando alguien me pregunta. Esto porque ya desde hace varios semestres ha sido nuestra fuente principal de recursos, y siempre ha tenido un excelente servicio y precios razonables. Además si algún componente no esta en existencia, puedes encargarlo y no tarda mucho en llegar. 

Aquí puedes comprar: Xbee, Arduino, Lector RFID.

(En nuestro caso ya contamos con varios Arduinos, y el Lector RFID lo pediremos prestados a uno de los maestros de la facultad )


SPARKUN ELECTRONICS
En esta tienda puedes conseguir prácticamente de todo. Muchos de sus componentes son realmente económicos a comparación de los precios encontrados en otras partes. Las compras en linea son de lo mas sencillo y solo necesitas crear una cuenta y una tarjeta de credito.

Aquí puedes comprar: Sensores RFID, sensores de movimiento.



STEREN

Steren es la opción por excelencia para comprar resistencias y demás componentes básicos. Aquí las resistencias salen a menos de un peso si las compras a mayoreo. Ademas

SOFTWARE
El software que usaremos no tiene nada de complicado conseguirlo ya que no estaremos usando nada rebuscado, solamente html 5, python, y processing. Para lo cual, trabajando en ubuntu, solo necesitamos descargar processing de su pagina oficial, y listo.

Si quieres instalar processing desde consola en ubuntu, aqui hay un tutorial simple:

http://blog.jorgeivanmeza.com/2010/05/instalar-processing-en-linux-ubuntu-10-04/



Referencia
http://www.5hz-electronica.com/xbee1mwconantenadechip-1.aspx
https://www.sparkfun.com/products/8630
http://processing.org/download/