miércoles, 29 de mayo de 2013

Last Homework: Image Compression

Para esta última tarea se nos encargó realizar compressión de imagenes. Una de las recomendaciones fue utilizar waveletes, ya que en clase de visión ya habían usado esto. Como no llevo la clase, mi compañero Avendaño me ayudó a entender el uso de estas.

Aquí está el codigo:


y el resultado:



Y las diferencias en los tamaños:

Basic JPEG: http://www.whydomath.org/node/wavlets/basicjpg.html

lunes, 27 de mayo de 2013

Extra Points: Bioinformatics

Functional immunomics: Microarray analysis of IgG autoantibody repertoires predicts the future response of mice to induced diabetes 

Francisco J. Quintana, Peter H. Hagedorn, Gad Elizur, Yifat Merbl, Eytan Domany, Irun R. Cohen

Can be found in: www.pnas.org/content/101/suppl.2/14615.full

One's repertoire of antibodies encodes the history of one's past immunological experience. Can the present autoantibody repertoire be consulted to predict  susceptibility to a future disease?  In this article, an antigen microarray chip is developed and bioinformatic analysis is used to study a model of type 1 diabetes developing in nonobese diabetic male mice in which the disease was accelerated and synchronized injecting cyclophosphamide at 4 weeks of age. Sera was obtained, the mice were treated to induce cyclophosphamide-accelerated diabetes (CAD), here 9 mice became severely diabetic, whereas 10 mice permanently resisted diabetes.

Male mice of the nonobese diabetic (NOD) group develop type 1 diabetes at a low incidence and late age. However, the start of diabetes can be significantly accelerated and synchronized by exposing NOD mice to cyclophosphamide. So, the CAD model of type 1 diabetes gives an opportunity to test whether the global autoantibody repertoire might reflect susceptibility to CAD in still healthy mice, before the cyclophosphamide insult is administered.

Recently, microarray antigen chips have been used to detect high-titer autoantibodies to known antigens in autoimmune diseases. However, rather than focusing only on known antigens, here some  individual immune systems are profiled by their global patterns of autoantibodies free of bias for high-titer reactivities to particular antigens.

Mice. Male NOD (non-obese diabetic) mice were raised an maintained under pathogen-free conditions. The mice were 4 weeks old at the start of the experiments. Nineteen mice were studied individually.

CAD. Diabetes was accelerated and synchronized by two injections of cyclophosphamide at 4 weeks of age, and again, 1 week later. In the colony, this treatment of NOD males leads of an incidence of diabetes of approximately 50%. The mice developing diabetes go on to die unless they are treated with insulin; those males that do not develop diabetes within 1 month after two injections of cyclophosphamide do not become diabetic later in life.

The next image is a schematic repersentation of the protocol.

The experimental protocol is as follows:
- Numbers refer to age of the mice (in weeks)
- Black vertical lines are serum sample collection (weeks 4 and 9)
- Grey vertical lines are Cyclophosphamide injection (weeks 4 and 5)
- Grey box (at week 6) shows when mice developed diabetes.
- Grey box (between week 11 and 13) shows time of death of untreated diabetic mice.

Blood glucose was measured weekly. A mouse was considered diabetic when its blood glucose concentration was >13 mM on two consecutive examinations. Of the 19 mice treated, 9 developed diabetes, and 10 remained healthy throughout a 2-month period.

Serum samples were collected 1 day before the first injection of cyclophosphamide and 1 month after the second injection.

The 266 antigens spotted on the microarray chips include proteins, synthetic peptides, nucleotides, and phospholipid.

Image and Data Processing. 
The pixels that comprised each spot in the TIFF files and the local background were identified by using histogram segmentation. The intensity of each spot and its local background were calculated as the mean of the corresponding pixel intensities. None of the spots containing antigens showed saturation. Technically faulty spots were identified by visual inspection and were removed from the data set. For each spot, the local background intensity was subtracted from the spot intensity. Spots with negative intensities were removed from the data set. A log-base-2 transformation of the intensities resulted in reasonably constant variability at all intensity levels. The log intensity of each antigen was calculated as the mean of the log intensities of the replicates on each slide. The coefficient of variability between replicates on each array was ≈30%.


Selection of Informative Antigens for Pre-CAD Mice
There have been reported previously that coupled two-way clustering (CTWC) could be used to successfully separate human subjects already diabetic from healthy persons. How ever different approach was taken. Based on the sera taken before cyclophosphamide treatment, there have been listed the 27 antigens that separated best between the sera of the 10 mice that later resisted the induction of CAD, and of the 9 mice that later developed CAD.

Figure A

Above figure Left is the two-way SPC of these antigens. The filled rectangles at the top of the box are the mice susceptible to CAD induction; empty rectangles are mice resistant to CAD induction. The 27 antigens are clustered at the rows and are identified by number. It can be seen that all 9 mice that were found later to be susceptible to CAD could be separated from 8 of the 10 mice that were later found to resist CAD.

Figure B

Figure C

Selection of Informative Antigens for Post-CAD Mice. 
Then, 27 antigens were used effective in pre-CAD clustering to analyze the patterns of IgG antibodies developing in the diabetic and healthy mice post-CAD. These 27 antigens failed to discriminate between the two groups of mice. A third set of 27 antigens was generated by performing the Wilcoxon rank-sum test on the ratios by which each antigen changed post-CAD/pre-CAD. The ratios provide information on reactivity changes toward the antigen.

Figures B and C show that previously mentioned antigens could indeed separate between the healthy and diabetic mice post-CAD. Thus, the IgG repertoires of the pre- and post-CAD groups of healthy and sick mice could be clustered, but the informative patterns of reactivity required modified sets of antigens to develop discriminating patterns.

It can be seen that some of the antigens from the set of pre-CAD antigens were also present in the post-CAD set, or in the set of antigens determined from the pre-CAD/post-CAD ratios. For example, three of the pre-CAD antigen reactivities were also prominent post-CAD. The shared and distinct antigens are shown as a Venn diagram (figure above) for the overlap between the three lists of antigens mentioned previously.


The antigen microarray chip described in this paper required much preliminary work to obtain consistent results. Patterns of IgM antibodies were analyzed before and after CAD. 

The article show that the patterns of IgG antibodies expressed pre-CAD in male NOD mice can mark susceptibility or resistance to CAD induced later. There were also found patterns of IgG antibodies characteristic of healthy or diabetic mice post-CAD, but these patterns required sets of antigens that differed from the informative pre-CAD set. Thus, IgG reactivities to some antigens may mark future susceptibility to CAD, but not CAD itself, once the disease emerges, and conversely, some IgG reactivities may mark the disease but not the susceptibility. Hence, prediction of future disease and diagnosis of present disease can depend on different data sets of information, at least in the CAD model. 
Another notable finding was that health, both pre- and post-CAD, was associated with relatively high IgG autoreactivity to self-antigens, to which the susceptible mice were low IgG responders. Thus, some types of active autoimmunity may actually protect against autoimmune disease. 
However, environmental factors can also prevent the development of type 1 diabetes. Stimulation of the NOD mouse immune system by infection, by vaccination with microbial antigens, or by treatment with ligands that activate innate immune receptors, can prevent diabetes. Type 1 diabetes appears in very young people, so critical aspects of autoimmune organization must occur fairly early in one's lifetime. The results of this bioinformatic study would suggest that, some organized patterns of IgG autoantibodies are shared by groups of individuals, at least among NOD mice.
The bioinformatic analysis described here relates to two separate, but linked issues: predictive medicine by means of functional immunomics and the biological meaning of the autoimmune repertoire.

The present study investigated patterns of antibodies, but not their function in the disease process. Nevertheless, the list of informative antigens may be connected to other observations regarding the pathophysiology of type 1 diabetes.

The mammalian immune system, in addition to its well studied role in defending the body against foreign invaders, is now understood to be heavily involved in maintaining the integrity of the body from within; immune system cells and molecules, which comprise the inflammatory response, are key factors in wound healing, neuroprotection, connective tissue formation, angiogenesis, tissue morphology and regeneration, and waste disposal. To dispense reparative inflammation at the right sites and occasions, the immune system has to assess the state of the body on the fly. In this respect, the immune system acts as it were the body's onboard bioinformatic computer. If so, predictive medicine would do well to mine this immune information, as this article suggests it might.

Functional immunomics: Microarray analysis of IgG autoantibody repertoires predicts the future response of mice to induced diabetes;

Francisco J. Quintana, Peter H. Hagedorn, Gad Elizur, Yifat Merbl, Eytan Domany, Irun R. Cohen;

"This paper results from the Arthur M. Sackler Colloquium of the National Academy of Sciences, “Therapeutic Vaccines: Realities of Today and Hopes for Tomorrow,” held April 1–3, 2004, at the National Academy of Sciences in Washington, DC."

Link to the article: http://www.pnas.org/content/101/suppl.2/14615.full
[Consultado el 27 de Mayo de 2013]

Extra points: Card Game

1. Microarray (Found in this bioinformatics article)

An antigen microarray chip was developed and used bioinformatic analysis to study a model of type 1 diabetes...

2. Block
If the words wi appearing in an encoding scheme are all of the same length, the code is said to be a fixed-length or block code, and the common length of the wi is said to be the length of the code. Otherwise, the code is said to be a variable-length code.

3. Relative
We have a memoryless channel with input alphabet A = {a1,...,an}, output alphabet B = {b1,...,bk}, and transition probabilities qij. For i ∈ {1,...,n}, let pi denote the relative frequency of transmission, or input frequency, of the input character ai.

4. Audio
Imagine a signal, that is, a function h of time t. It it’s helpful, you can think of h as an audio signal, i.e., a voltage level, fluctuating with time

5. Stream
Nevertheless, we shall hold to the simplifying assumption that pi, the proportion of ai’s in the input text, is also the probability that the next letter is ai, at any point in the input stream.

6. Knowledge
There is a body of knowledge related to the Implicit Function Theorem in the calculus of functions of several variables that provides an answer of sorts.

7. Missing
The smoothing procedure sometimes makes good guesses about the missing data, but it cannot recover the original information.

8. Recover
To see why we do this, observe that if the decoder is supplied the source word length N and a number in A, then the decoder can recover the sequence i1,...,iN, and thus the source word si1···siN.

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

10. Transformation
The transformation x → 2x −1/2 doubles the directed distance from x to 1/2; call it the “doubling expansion around 1/2” if you like.

Using approximate probabilities can permit replacement of multiplications by simple shift operations.

12. Uniform
It has been generally assumed that the relative source frequencies are equal, and the dazzling algebraic methods used to produce great coding and decoding under these assumptions automatically produce a sort of uniformity that makes p0 and p1 equal or trivially close to 1/2.

13. Optimal
Furthermore, if p1,..., pn are optimal input frequencies satisfying these equations, for some value of C, then C is the channel capacity.

14. Simultaneously
Thoughtful quantizing can help suppress both non-meaningful and weak mathematical frequencies simultaneously.

15.  Fixed
If our attention is fixed to only the part of the graphs over the integers 0, 1, . . . , 7, then we might be led to believe that x is as smooth, if not smoother, than y.

16. Rate
The code words would have to be quite long, so that the rate of processing of source text would be quite slow...

17. Arbitrary
If, for some reason, we require the M in the WNC algorithm to be small, we
may allow rough and arbitrary approximation of the relative source frequencies.

18. Mapping
Given E and F , we can think of the mapping (i, j ) → I (E i , F j ) as a random variable on the system E ∧ F .

19. Hamming weight
The Hamming weight of a word w ∈ {0, 1} is wt(w) = number of ones appearing in w.

20. Noisy
Shannon’s Noisy Channel theorem applies to a more general sort of source, one which emits source letters, but not necessarily randomly and independently

21. Ambiguous
The code determined by φ is said to be unambiguous if and only if φ is one-to-one (injective). Otherwise, the code is ambiguous.

22. Code
The code determined by φ is uniquely decodable if and only if it is unam-biguous and there exists a VDR for it.

23. Bitwise
In addition, a number of the steps in the scheme can be managed as simple bitwise operations.

24. Finite
Therefore, we will allow ourselves the convenience of sometimes attributing the SPP to finite sets of binary words.

viernes, 24 de mayo de 2013

Clase de Redes de Telecomunicaciones, Última tarea

Para la última tarea de la clase de Redes de Telecomunicaciones se nos encargó hacer un resumen sobre un artículo de Redes Sensoras. El artículo que escogí es algo breve pero bien completo.

Towards Vehicular Sensor Networks in Android Smartphones for Road Surface

Girts Strazdins, Artis Mednis, Georgijs Kanonirs, Reinholds Zviedris, Leo Selavo.

Aunque existen mapas de baches, la recolección de información es manual y basada en reportes individuales. El enfoque manual tiende a ser irregular, y por ello de confianza limitada. Soluciones automatizadas han sido demostradas pero requieren hardware especializado.

Recientemente, ha emergido un enfoque prometedor, llamado "Detección Participativa", usando smartphones - una clase de hardware de "Detección Participativa" virtualmente ubicua y poderosa.

Aunque ya existen sistemas de monitoreo de una superficie participativa , esta es la primera evaluación en plataformas Android, con acelerómetros integrados, sin requerir módulos sensores externos.

Android es una de las plataformas de smartphone más populares, más abiertas y flexibles proveyendo a los desarrolladores de software fácil accesso a hardware de teléfono y API´s ricas en software. La visión de los autores son smartphones Android como una plataforma de detección participativa poderosa y ampliamente usada en un futuro cercano. En este artículo se examinan los smartphones Android en el contexto del monitoreo de la calidad de superficie de carretera.

Se evalúan un conjunto de algoritmos de detección de baches en teléfonos Android con aplicación sensora mientras se conducía un auto en un ambiente urbano. El resultado dió una primera vista en las diferencias de hardware entre varios modelos de smartphone y sugerencias para próximas investigaciones, para la optimización de los algoritmos, para opciones de sensores y para procesamiento de señal.

El enfoque requiere un smartphone Android con GPS, acelerómetro de 3 ejes y un canal de comunicación (Celular o Wifi). El sistema consiste de dos aplicaciones: una para el dispositivo Android y otra para el servidor de datos (siguiente figura).

La aplicación del dispositivo Android tiene una arquitectura impulsada por eventos. Los más importantes son los eventos sensores de disponibilidad de datos, de disponibilidad de conexión a Internet y de Interfaz de usuario. La lista de los sensores usados incluye GPS para detectar la ubicación actual y el acelerómetro para detecta baches. Después de que los datos del sensor son recibidos, estos son procesados y almacenados en la base de datos la cual es periódicamente sincronizada con el servidor principal de la base de datos de manera que ambos tengan información actualizada. La visión es un sistema de detección de baches como un servicio background en el futuro, usado por otras aplicaciones, así que no se pone fuerte énfasis en la interfaz de usuario por el momento.

La aplicación del servidor en la PC es una aplicación web Java con una base de datos SQL basada en el framework Spring. Consiste de un servlet, controlador de datos de sensor y una interfaz de usuario. Se utiliza la API de Google Maps para la visualización de baches.

La evaluación de la solución propuesta fue llevada a cabo en dos experimentos del mundo real en la carretera. Cada vez con un vehículo diferente. Aunque se llevaron a cabo más tests, se descubrió que en ciertas condiciones de clima de invierno la superficie de la carretera podía cambiar en un periodo corto de tiempo, y también que es difícil establecer una realidad del terreno y repetidas corridas del experimento en la misma pista con condiciones consistentemente iguales.

Se llevaron a cabo experimentos en una pista de prueba idéntica a una usada durante previas actividades pero esta vez cada experimento consistió de sólo tres vueltas. Esto debió ser suficiente para obtener una impresión de prueba de concepto sobre los eventos observados y los datos grabados. El equipo para la adquisición de los datos consistió de tres teléfonos celulares Android con la aplicación de recolección de data descrita arriba.

La primera meta fue comparar los datos, los cuales fueron grabados usando equipo diferente, durante el mismo periodo de tiempo. Tal como uno podría esperar, se encontró que las diferentes unidades de hardware con el mismo software tienen diferente tasa de adquisición de datos del acelerómetro y precisión GPS y estabilidad de señal. Este aspecto debe ser considerado en contexto de la posición de granularidad detectada del evento.

Después de la adquisición del primer conjunto de datos se comenzó con algoritmos de detección de eventos empíricos. Se evaluaron los siguientes algoritmos:

- STDEV(Z) - los eventos son detectados por umbralización de la desviación estandar de la aceleración de el eje Z.

- Z-DIFF - se umbralizan diferencias de dos muestras consecutivas del eje Z. Altamente sensible al ruido.

- Z-THRESH - umbralizar el valor absoluto de la aceleración en el eje Z. El enfoque más simple.

- G-ZERO - detecta eventos teniendo el valor del eje Z cercano a cero g. Además de baches y golpes también detecta curvas/vueltas, lo cual tiene que ser filtrado por métodos adicionales.

Cuando se comparan los eventos detectados por medio de métodos utilizados en un trabajo previo (donde se llevó a cabo la umbralización de señal de audio por amplitud) y los eventos detectados por la aplicación sensora en smartphones Android (mostrado en la figura de abajo), ambas parecen compartir tendencias en común. Sin embargo, se requiere un estudio más profundo e información de pruebas adicional para adquirir una precisión de algoritmo y estabilidad de evaluaciones válidos.

En este artículo se describieron los resultados preliminares de dos pruebas con tres smartphones Android corriendo una aplicación de detección de baches, basada en el procesamiento de información de acelerómetro. A pesar de las diferencias de hardware en términos de precisión de GPS y el muestro de ruido y tasa de muestreo del acelerómetro, se postula que la detección de baches es posible. Sin embargo, para asegurar la hipotesis, es necesaria investigación más a fondo, se debe investigar la combinación de múltiples algoritmos y se debe recolectar un conjunto de datos mas grande y más representativo.

Antes de leer este artículo yo no sabía que ya había en funcionamiento este tipo de aplicaciones. Me fascinó el hecho de que solo fuera necesario un celular con acelerómetro y GPS para llevar a cabo esto.

Creo que para nuestra ciudad este tipo de aplicaciones serían muy útiles y deberían aumentar en algún momento, especialmente para ser usadas en temporadas de lluvias cuando en unos minutos de lluvia aparecen baches nuevos que el conductor no se esperaba.

Pienso que este tipo de aplicaciones, además de evitar la molestia del conductor de caer en un bache, ayudarían a un mejor flujo del tráfico en calles donde los autos deben ir muy lentos por ir sacándole la vuelta a muchos baches.

Girts Strazdins, Artis Mednis, Georgijs Kanonirs, Reinholds Zviedris, Leo Selavo, "Towards Vehicular Sensor Networks in Android Smartphones for Road Surface"; Institute of Electronics and Computer Science; Faculty of Computing, University of Latvia

[Fecha de acceso: 24 de Mayo de 2013]
Se puede encontrar en: http://strazdins.lv/papers/strazdins2011androidpotholes.pdf

Última tarea

martes, 21 de mayo de 2013

Laboratorio de Redes de Telecomunicaciones: Aplicaciones de las redes Ad Hoc

Article: Position-Aware Ad Hoc Wireless Networks for Inter-Vehicle Communications: the Fleetnet project
Authors: Hannes Hartenstein, Bernd Bochow, André Ebner, Mattias Lott, Markus Radimirsch, Dieter Vollmer

En el artículo se presenta el proyecto "Fleetnet - Internet en el camino" que se enfoca en el desarrollo y demostración de una red ad-hoc inalámbrica consciente de la posición para la comunicación entre vehículos. Al habilitar la comunicación "multi-hop" entre vehículos uno puede lograr: i) mejoras en la seguridad a través  de un rango extendido de consciencia de un vehículo y su conductor, y ii) una nueva opción de comunicación de bajo costo para el pasajer de un vehículo y los componentes de una red.

Los nodos de este proyecto, Fleetnet, serán direccionables no solo vía direccionamiento IP sino también de acuerdo a su posición actual. Tal esquema de direccionamiento basado en posición naturalmente soporta geocasting así como servicios basados en ubicación, y permite ruteo basado en posición.

Las aplicaciones Fleetnet están en las areas de asistencia al conductor, información de carros descentralizada y comunicaciones con el usuario. Los sistemas corporativos de asistencia al conductor explotan el intercambio de datos de sensores entre carros. Información acerca de accidentes puede ser transportada por carros que conduzcan en el sentido contrario y, por lo tanto, ser transmitida a vehículos que pudieran dirigirse hacia el accidente. Una de las aplicaciones más sofisticadas en el área de asistencia al conductor son los convoys de vehículos (el emparejamiento de un grupo de vehículos para manobriar de manera coordinada y automática. Este tipo de aplicaciones requieren consciencia de la posición de los vehículos, direccionamiento de acuerdo a las posiciones actuales, retraso de transmisión corta, y alta confiabilidad de intercambio de datos.

Las aplicaciones Fleetnet no solo lidian con la seguridad del conductor y con el flujo del tráfico sino que también lidian con el aspecto de "comfort" de los pasajeros del vehículo. Por ejemplo, pasajeros situados en los asientos traseros pueden jugar juegos online con pasajeros de otros vehículos que viajan en la misma carretera. Fleetnet, con sus compuertas estáticas en la autopista también provee un medio para marketing a través del camino.

Los patrones específicos de los movimientos de los vehículos y del tráfico dan a las redes entre vehículos su característica distintiva con respecto a otras redes ad hoc. En particular, las altas velocidades y la unidimensionalidad de los escenarios de autopista son diferentes a otros escenarios de comunicaciones ad-hoc.

Los patrones en el tráfico dependen de la densidad del trafico, es decir, el número de vehículos por kilometro. Para pequeñas densidades uno puede asumir que los carros se están moviendo independientes unos de otros. En grandes densidades, las interaccinoes complejas entre los vehículos vecinos hacen que el modelado de tal sistema dinámico sea un reto.

Para escenarios de densidades bajas uno usualmente construye modelos de tráfico básicos al especificar distribuciones de probabilidad para velocidades de vehículos y para tiempos entre dos carros cercanos pasando un punto de referencia (headways). Estos headways son típicamente medidos en segundos y proveen una medida de distancias relacionada a la seguridad. Sin embargo, DaimlerChrysler está actualmente compilando un conjunto de escenarios de movimientos de vehículos usando su aproximación de modelado basada en el conductor. Estos escenarios muestran los movimientos de vehículos de los "autobahns" alemanes, los caminos del país y las calles de la ciudad interna de Berlin. Se tomarán en cuenta diversas variables del tráfico. Esta base de datos es usada como entrada para evaluaciones de protocolo con propósito de simulación.

Se introduce el hardware de radio elegido para Fleetnet

Necesidades del rango de ancho de banda: Mientras las llamadas de emergencia requieren solo unos pocos bytes de señalización, servicios como el acceso a internet pueden requerir altas tasas de bits de más de 100 kbit/s. Así, los sistemas de radio Fleetnet deben soportar un alto rango de necesidades de ancho de banda.

Características de la ruta de radio: La integración de sistemas ad-hoc inalámbricos en los vehículos implica la operación de sistemas de radio dentro de un ambiente de propagación multiruta.

Tiempos de contacto: Debido a las velocidades relativamente altas, el contacto del radio de dos vehículos aproximandose uno al otro o entre la compuerta Fleetnet y un vehículo pasando muy cerca puede ser muy corto.

Problemas regulatorios: para poder encontrar aceptación en el mercado, tal ves el criterio más importante es la disponibilidad de una banda de frecuencia no licenciada.

Restricciones de proyecto: debido a razones de costo, no es posible definir una interfaz de aire específica para Fleetnet. Así fleetnet tiene que estar basado en una interfaz de aire existente.


Adaptividad: la topología de red w.r.t. y la escalabilidad representan los aspectos competitivos y los retos clave para el ruteo Fleetnet debido a las velocidades altas relativas y a un gran número de nodos involucrados. Debido a que los carros del futuro serán equipados con un sistema de posicionamiento a bordo, el ruteo en Fleetnet será basado en los métodos de ruteo basados en posición que muestran ventajas sobre los métdos puramente basados en topología.

Ubicación de Servicio: Algunos métodos que usan cada cono como server de ubicación para algunos nodos y dispersan los servers de ubicación para un nodo logarítmicamente con la distancia del nodo, aparentan ser una propuesta interesante.

Estrategias de recuperación: muchas estrategias han sido propuestas en la literatura. Sin embargo, aun queda demostrar si los costos involucrados con estas estrategias en realidad justifican los beneficios o no.

Mapas digitales y sistemas de navegación: estos pueden soportar decisiones de ruteo. Aunque los mapas digitales no están considerados como sistema mandatorio de un nodo Fleetnet, los protocolos de ruteo deberán incluir tal data en las decisiones de ruteo si están disponible

Position-Aware Ad Hoc Wireless Networks for Inter-Vehicle Communications: the Fleetnet Project
Hannes Hartenstein, Bernd Bochow, André Ebner, Mattias Lott, Markus Radimirsch, Dieter Vollmer

Simulación de red AD-HOC

Para esta semana tuvimos la tarea de simular una red ad-hoc en base a ciertos criterios:

+1 nodos que llegan en intervalos ~ Exp(lambda)
+1 que forman conexiones dentro de un radio de alcance ajustable
+1 que se mueven o de una manera más sofisticada o de dos o más simples
+1 que mandan mensajes por inundación (pueden ser de tamaño fijo)
+1 que cuestan batería según la distancia (y si no son de tamaño fijo, de eso)
+1 provocados por algún fenómeno presente en la zona simulada
+1 usando un valor de TTL
+1 que se adapte durante la simulación según una medida de desempeño
+1 con los nodos muriéndose al acabarse la batería
+1 en una visualización de lo que ocurre

Decidí simular una red de aviones comunicandose entre sí que funciona de la siguiente manera:

- el nodo padre sería la torre de control, y los aviones serían los nodos hijos.
- el intruso sería una tormenta que se acerque a la ruta de alguno de los aviones
- los aviones se pueden comunicar entre si cuando una tormenta se acerca, para que se desvíen en caso de ser necesario.
- Cada avión tiene un radio de comunicación. Para que un avión A pueda enviar un mensaje a un avión B, B tiene que estar dentro del radio de comunicación del avión A.
- De la misma manera, la torre cuenta con un rango de comunicación (mayor al de los aviones). Un mensaje enviado por la torre tiene mayor tiempo de vida.

- los mensajes entre aviones tienen tiempo de vida, donde se termina su vida al haberse enviado 2 veces
- Dependiendo la distancia los mensajes consumirán cierta energía. A mayor distancia, mayor energía se necesita.
- Si  el avión se encuentra dentro de una tormenta se necesitará mayor energía para enviar un mensaje.

La simulación de esta red se muestra de la siguiente manera:

Donde el avión con círculo Verde es el intruso, y el resto, con círculos azules, son los aviones de la red.   La del centro, por si no es obvio, es la torre.

Para calcular si un avión estaba dentro del radio de comunicación de otro avión quise usar el cuadrado circunstricto en las circunferencias.

Lo anterior fue calculado de la siguiente manera:

- Si trazamos el radio de la circunferencia 2 veces hacia dos puntos de la circunfrencia con un ángulo de 90 grados entre ellos, se formará un triangulo (los radios serán los catetos).
- en base a esto, calculamos la hipotenusa de dicho triángulo, lo cual será el largo del lado del cuadrado circunstrito

Aquí el resultado de realizar este calculo:

esto fue donde pude llegar. Mi código es el siguiente:


Retroalimentacion el proyecto de mi equipo

Retroalimentación sobre mi proyecto

Buscabamos lograr un sistema de acceso y gestión de servicios para la oficina mediante tarjetas RFID. El objetivo: eficientar el acceso al usuario y mejorar la manera en que realiza actividades en su rutina diaria (encender/apagar luces, encender/apagar climas,etc.)

Nos enfocamos en la necesidad del cliente. El hecho de que los miembros del equipo estuvimos trabajando en una oficina durante el tiempo del proyecto nos facilitó el recolectar datos sobre qué necesidades tienen los empleados de la oficina. En base a la información recolectada, pudimos saber cláramente a qué debíamos dar prioridad, qué debíamos fortalecer y qué cosas el usuario no quería y podíamos descartar.

Se logró accesar a aplicaciones, se logró activar servicios (en forma de simulación) mediante los tags RFID, y como un complemento, se logró implementar reconocimiento facial al sistema para fortalecer la seguridad en el acceso.

Uno de los puntos que considero fuertes, fue que tuvimos un capitán que nos estuvo motivando y presionando para sacar todo adelante. Esto siempre será necesario porque de otra manera se puede no lograr nada.

Nos faltó una mejor coordinación, pues a pesar de que cada módulo funcionó como se esperaba, no los unimos para tener un sistema completo. Vemos esto como una área de oportunidad en la que podemos trabajar para lograr mejores resultados.

Nos gustaría tener una aplicación web donde se esté monitoreando toda la información recibida de los tags, esto para que los encargados en la oficina tengan un mayor conocimiento sobre las actividades de sus empleados.

Fue una buena experiencia trabajar con mi equipo y tener alguien que tomara el lugar de lider para estar orquestando todo. Cada miembro del equipo cooperó y por ello se logró un buen proyecto final.

Laboratorio Ubicuo: Retroalimentación final

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

Me pareció muy completo el resultado final de este equipo. El equipo alcanzó los objetivos que se propuso. Es muy atractivo el sistema ya en funcionamiento. Cuando hicieron el demo parecía que la computadora se había apagado o que el proyector se había desconectado, pero en realidad era una respuesta muy rápida del sistema que estaba bloqueando la pantalla al no reconocer al usuario. Me encantó el demo.

De los puntos que el equipo mencionó que faltaron, pienso que son cosas muy mínimas y que son solo mejoras extras a lo propuesto inicialmente. Todo lo demás estuvo muy completo.

Blog del equipo: http://inteligentsystems.wordpress.com/

El equipo también logró la mayoría de los objetivos propuestos, eso es muy bueno. Por otra parte, hizo falta una mejor organización. Sobre las ideas que el equipo propuso sobre qué harían mejor en el futuro, me agradó la idea de "baby steps" la cual todos podríamos aplicar.

Hizo falta un demo en vivo, eso nos hubiera impresionado más.

Despertador Inteligente
Blog del equipo: http://3-its.blogspot.mx/

Algo que me gustó mucho, y que el equipo hizo en cada una de las etapas, fue hacer mucha investigación para ver lo que el usuario quiere y lo que no, que le beneficiaría y que le afectaría. Eso es bueno porque resulta en un sistema que el usuario querrá tener: una alarma que no es molesta, pero al mismo tiempo te inquieta a despertarte, y una "cama" sensible a la presencia de la persona sin incomodar con la presencia de componentes o cablerío.

Creo que el trabajo en equipo que se hizo en este proyecto es de admirarse. Y en cuanto al demo, fue muy agradable ver que también se cumplió lo esperado y que se llamará mucho la atención del usuario con algo así.

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

Hubiera preferido que el demo estuviera en español latino :P.

Casa Inteligente
Blog del equipo: http://3puntosteam.blogspot.mx/

Pienso que perdieron un gran punto que fue el no lograr la aplicación móvil. Creo que es lo que más hubiera atraido al usuario al facilitarle el uso del sistema con su teléfono, al cual está acostumbrado. Tal vez será incómodo o tedioso para el usuario (comparandolo contra una aplicación móvil) el tener que aprender el funcionamiento de un nuevo sistema con el que no está familiarizado.

Son buenas las ideas el agregar reconocimiento de voz y reconocimiento facial. Mejoraría mucho a un sistema como este. De haber terminado el proyecto, un demo hubiera estado genial.

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

Fue una muy buena idea que por el hecho de no poder tener físicamente un garage este equipo realizó una aplicación web para realizar su proyecto. También considero muy bueno que lograron hacer una aplicación móvil.

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

Se logró mucho de lo planeado, aunque a la aplicación también le faltó una mejor interfaz. Muy bueno el demo en video, el funcionamiento del sistema completo es muy atractivo y completo.

Tal como mencionaron, la localización por GPS haría mucha falta al sistema.

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

Pienso que el área que más se debe fortalecer aquí es lo gráfico en la aplicación. No se ve muy atractiva que digamos. Esto haría mucho más atractiva la aplicación.

Plan de negocios

Para la tarea de esta semana, tuvimos la tarea de crear un plan de negocio sobre un proyecto de libre elección. Elegí el proyecto de Oficinas Inteligentes que hicimos para la materia de Clase de Cómputo Ubicuo.

Resumen Ejecutivo
El sistema de Oficinas Inteligentes tiene como objetivo permitir al empleado de oficina un acceso más cómodo y más eficiente a su lugar de trabajo. Esto se logra mediante el uso de tags RFID. El usuario contará con un identificador único, ya sea una tarjeta, un llavero, o una pulsera RFID, el cual contendrá información personal del usuario para un mejor servicio y una mejor gestión de las actividades ocurridas dentro de la oficina.

Otra característica de este sistema será que mediante las tags RFID el usuario será capaz de realizar diferentes acciones que eficientarán su rutina laboral diaria. Imaginemos este escenario: En una oficina, el día laboral ha terminado y solo queda un empleado que se quedó unos minutos extras a terminar su trabajo. El está encargado de cerrar todo y apagar todo y verificar que ningún equipo de cómputo se haya quedado encendido. Para el empleado cansado esto puede resultar fastidioso porque ya trabajó horas demás y solo quiere llegar a descansar.

En lugar de pasar a apagar las luces una por una, y verificar cada lugar de trabajo para ver si hay algúna computadora encendida, el empleado porta en su bolsillo un tag RFID previamente configurado y al pasar por la puerta de salida (donde se encuentra un lector RFID) en un segundo se asegura de que las luces y los equipos estén totalmente apagados.

Ese es el potencial del sistema.

El sistema se ve impulsado por la necesidad que se presenta en las oficinas de un sistema que facilite a los empleados de oficina este tipo de acciones mencionadas. No solo esto sino también el acceso, el cual se ve igualmente beneficiado mediante el uso de tags RFID.

A diferencia de lo que actualmente se le llama "oficinas inteligentes", el sistema de Oficinas Inteligentes ofrece verdaderamente un sistema que "piensa por si solo" al no necesitar que el usuario interactúe directamente con la computadora,y que pueda seguir normalmente el flujo de su trabajo. El cliente no se verá perturbado, ni el flujo de su trabajo alterado gracias a esta tecnología.

Definición y Justificación del negocio
El objetivo del sistema Oficinas Inteligentes es el llenar el mercado con verdaderas oficinas inteligentes. En la actualidad, las llamadas oficinas inteligentes no pasan de tener proyectores y pantallas táctiles en sus salas, por lo cual esta es una oportunidad para innovar verdaderamente esta área.

Uno de los mayores fundamentos de este proyecto es que el área de seguridad y privacidad está totalmente cubierta. Seguro por la cabeza del usuario pasará l duda: "Y si me robal mi tag RFID?". La solución que nosotros ofrecemos es el reconocimiento facial al accessar a la oficina. Esto permite que aun en caso de rob de la tag RFID, no habrá accesso a la oficina ni a los servicios si no es el usuario en persona.
*Aplicación Móvil ---------

Tipo de Organización propuesta
Se propone una organización de propiedad colectiva. La razón: este mercado apenas está naciendo. Como mencionamos, ninguna de las llamadas oficinas inteligentes actualmente implementa realmente sistemas inteligentes. Por ello, se tiene la visión de que creceremos rapidamente, y debido a ello, el equipo de trabajo deberá crecer proporcionalmente a la demanda de sistemas de Oficinas Inteligentes.

Mercado e Imagen
Mercado potencial
Los clientes potenciales en nuestro mercado son muchos. Oficinas siempre habrá para todo tipo de empresas. Los clientes siempre buscarán estar maś cómodos y eficientar sus actividades ya que pasan la mayor parte de su día en su oficina. Por esto, los clientes potenciales son todos aquellos con instalaciones obsoletas o cansados de perder el tiempo en cosas que bien se pueden automatizar.

Mercado meta
Nuestro sistema va dirigido a gente que trabaja en oficina y se ha dado cuenta que muchas actividades pueden eficientarse para ahorrar tiempo y dinero. 

Existe una línea de oficinas llamadas SmartOffice, que entre otras, como ya mencionamos, se limitan a salas inteligentes, las cuales reciben el nombre gracias a sus proyectores o a sus pantallas táctiles. Por lo tanto, creemos que estaremos bien parados frente a la competencia para lograr ganar mercado con nuestro sistema.

Nuestro producto tiene las siguientes características:
- Lector RFID + tags RFID para el acceso a la oficina y la activación/desactivación de servicios.
- Cámara para poder lograr la verificación por rostro.

Hemos podido darnos cuenta que estamos frente a una gran área de oportunidad que no podemos dejar pasar ya que en nuestras manos está el potencial de crecer a grandes pasos ganando clientes en tantas oficinas que no conocen el potencial de sistemas como este. 

Publicidad y Promoción


martes, 14 de mayo de 2013

Laboratorio de Redes: Actividad 11

Qué es un satelite?
Un satélite es una nave espacial que se desplaza en una órbita terrestre. Las órbitas son las trayectorias que describen los satélites alrededor del planeta tierra. Hay satélites naturales y satélites artificiales. Ambos tienen una masa menor con respecto a la de la tierra.

Qué hacen los satélites?
Los satélites tienen una gran cantidad de aplicaciones. Aquí mencionaré algunas:

Satélites Científicos
Estos satélites tienen como principal objetivo de estudiar la superficie, atmósfera y entorno de la Tierra, además de otros cuerpos celestes. Estos aparatos permitieron que el cnocimiento del Universo sea mucho más preciso en la actualidad.

Los satélites Echo I no sólo fueron útiles para experimentar técnicas de comunicación pasivas, sino que proporcionaron buena información sobre la densidad de la atmósfera a diversas altitudes. El satélite Explorer I detectó los cinturones de radiación que rodean la Tierra.

Una rama de la ciencia que se ha visto beneficiada por las actividades en el espacio es la Geodesia. Los satélites geodésicos han permitido conocer con exactitud la forma de los continentes, así como el lentísimo per constante movimiento de las placas terrestres. También existen satélites oceánicos que han explorado el fondo marino, revelando gran cantidad de información.

Satélites de comunicaciones
Estos satélites se ubican en la intersección de la tecnología del espacio y de las comunicaciones. Son la aplicación espacial más rentable y más difundida. Las transmisiones en directo vía satélite son parte de la vida diaria. Para la difusión directa de servicios de televisión y radio, telefonía y comunicaciones móviles solo son necesarios sencillos receptores y antenas parabólicas cada día más pequeñas.

Satélites de meteorología
Estos satélites se dedican a la observación de la atmósfera en su conjunto. La comprensión de la física dinámica atmosférica, el comportamiento de las masas nubosas o el movimiento del aire frío o caliente resultan indispensables para realizar predicciones del clima y es gracias a estos satélites que pueden ser conocidas.

El primer satélite meteorológico fue el Tiros-1, lanzado en abril de 1960. A este y otros artefactos se debe el descubrimiento del agujero en la capa de ozono. Existen algunos satélites meteorológicos de órbita geoestacionaria como el SMS, el GOES y el Meteosat que pueden cubrir todo un hemisferio y permiten seguir el comportamiento de fenómenos como la temporada de huracanes, los frentes fríos, etc.

La organización Meteorológica Mundial coordina la recolección, procesamiento y difusión de información y datos meteorológicos provenientes de una constelación de satélites meteorológicos enlazados a 10 mil estaciones terrenas y mil estaciones de observación en altitud.

Satélites de Navegación
Estos satélites fueron diseñados originalmente con fines militares, pero ahora se usan como sistemas de posicionamiento global (GPS, por sus siglas en inglés) para identificar ubicaciones terrestres mediante la triangulación de tres satélites y una unidad receptora manual que puede señalar el lugar donde ésta se encuentra y obtener así con exactitud las coordenadas de su localización geográfica.

Una de las aplicaciones de estos satélites la realiza con éxito la navegación aérea, que está empezando a aprovecharla en los aterrizajes de las aeronaves,
 lo cual supone una guía económica y muy segura para esas actividades.
Otra faceta de los satélites de navegación se encuentra en la búsqueda y el rescate (satélites COSPAS y SARSAT). En estos casos los receptores son vehículos dedicados a otras tareas que además están equipados con receptores especiales. Cuando una embarcación se pierde en alta mar, pueden enviar señales que el satélites recibirá y reenviará al puesto de rescate más próximo, incluyendo sus coordenadas aproximadas.

Satélites de Teledetección
Son satélites que observan el planeta mediante sensores multiespectrales, esto significa que pueden sensar diferentes frecuencias de colores, lo que les permite localizar recursos naturales, vigilar las condiciones de salud de los cultivos, el avance de la contaminación en los mares y muchas cosas más.

El aumento de la resolución está creciendo tanto que las fotografías que obtienen pueden tener una clara aplicación militar. Para un mejor aprovechamiento de sus capacidades, este tipo de satélites se suelen colocar en órbitas bajas y polares. Desde estas alturas los satélites enfocan sus sensores que son capaces de tomar imágenes en varias longitudes de onda o bandas espectrales. El satélite toma constantemente imágenes a su paso, engrosando los archivos que se pondrán a disposición del público y servirán como un acervo de la evolución de la superficie terrestre.

3. Mecanismos para interceptar satélites
Existen diferentes métodos con los que los satélites pueden ser interceptados. Los mencionaré brevemente a continuación.

Acción Preventiva
Este método tomar acciones para prevenir que un mensaje continue hacia su destino. Tipicamente, estas medidas solo son empleadas durante tiempos hostiles y con el intento de eliminar los recursos del enemigo. Un método para cumplir este fin es la acción ofensiva abierta. Para poder prevenir de la mejor manera cualquier intercambio de comunicaciones, una fuerza hostil puede actuar y simplemente destruir ya sea una estación terrestre o un satélite en órbita. Aunque muy pocos ataques a satélites han tomado lugar en el pasado, avances en tecnología mundial en diversos campos se aseguran que este concepto se vuelva una preocupación en el futuro muy cercano.

ReferenciasLos satelites y sus aplicaciones: Sandra Ordoñez

Aplicaciones de los satélites

The increasing threat to satellite communications, Sean Patrick Bain


Para la tarea de esta semana se nos encargó simular un método de geolocalización. Yo elegí hacer el método de trilateración.

Este es un método muy simple. Conociendo la ubicación de tres puntos (simuladamente estos puntos son antenas) podemos calcular la ubicación de un cuarto punto (un móvil por ejemplo).

Basta con calcular las distancias entre cada "antena" y el "móvil" y dibujar circunferencias en cada antena, donde el radio será esa distancia entre antena y movil. (En realidad dicha distancia es la fuerza de señal de las antenas, con las que calcularemos la ubicación del punto que queremos conocer).

La explicación exacta del código en donde yo me basé está en esta página.

El codigo es el siguiente:

TULIP Algorithm Alternative Trilateration Method, 2012, LesCottrell https://confluence.slac.stanford.edu/display/IEPM/TULIP+Algorithm+Alternative+Trilateration+Method

Laboratorio de Cómputo Ubicuo: Actividad 11

La tarea de esta semana consiste en dar retroalimentación a los equipos sobre la presentación de privacidad que se dieron la semana pasada.

Alarma Inteligente
Blog del equipo: http://ubicomputo.blogspot.mx/2013/05/actividad-5-privacidad.html

Me agradó que el equipo está realmente consciente del riesgo que la información del usuario corre al estar usando GPS, además de la manera de solucionarlo: reducir todo a enviar la información del usuario mediante internet al e-mail del usuario.

Por otra parte, yo no estaría de acuerdo en que el usuario tenga que elegir si o no dejar activado el GPS todo el tiempo. Pienso que debe haber una forma en que se detecte al usuario del auto para que el GPS se desactive automáticamente. Esto porque el usuario tal vez quiera mantener apagado el GPS pero muy seguramente en alguna ocasión no se acordará de hacer las configuraciones necesarias y sin saberlo estará dejando vulnerable su información y cualquiera con malas intenciones puede acceder a ella. Por ello pienso que sería útil una manera de que el GPS se encienda cuando detecta un desconocido en el auto.

Computadora Inteligente
Blog del equipo: http://aveoctavo.blogspot.mx/2013/05/presentacion-de-privacidad.html

Está excelente la forma en que este equipo no compromete para nada la información de sus usuarios al guardar los archivos necesarios en la misma computadora del usuario. Y como el mismo proyecto está asegurando que nadie entre en la computadora del usuario sin su consentimiento, su información está doblemente segura. Pienso que lo unico en lo que habría que prestar atención sería en cómo cuidar la información en caso de que la computadora fuera hackeada y las fotos del usuario robadas.

Alarma inteligente
Blog del equipo: http://gtdsoftwa.blogspot.mx/2013/05/presentacion-ubicuo-privacidad.html

Este equipo tuvo una idea muy buena y diferente al implementar un algoritmo de encriptación (AES182) dentro del archivo del dispositivo usado. Por esto, pienso que del lado de la privacidad este equipo si está muy bien preparado.

Galería Inteligente
Blog del equipo: http://ultimo-sem.blogspot.mx/2013/05/entrega-5.html

Pienso que en este caso no hay mucha información en riesgo porque el usuario no proporciona información personal. La información almacenada es solo en relación al comportamiento de los usuarios. Sin embargo, no falta quien busque la manera de usar de forma incorrecta la información almacenada. Así que creo que el equipo debe prestar atención en cómo haran login los administradores del lugar (el equipo mencionó que solo ellos tendrán acceso), porque si el administrador se descuida y el login es fácil y sin seguridad, cualquiera podría entrar y hacer mal uso de los datos.

Despertador Inteligente
Blog del equipo: http://3-its.blogspot.mx/2013/05/avance-5.html

Es genial que también este equipo decidió usar encriptación AES en SQLite. Lo que me gustó mucho fue que para su documento del aviso de privacidad se basaron en las sugerencias oficiales del IFAI. Mi sugerencia sería prestar atención a la seguridad del servidor externo donde van a respaldar la información del usuario, ya que, aunque en el celular la información puede estar parcialemente segura, pienso que corre más riesgo en el servidor.

Casa Inteligente
Blog del equipo: http://3puntosteam.blogspot.mx/2013/05/privacidad.html

Se me hace muy buena la idea de la retroalimentación con el usuario sobre los momentos en que se usa la privacidad. Y así como ellos mismos mencionan, pienso que el esfuerzo mayor se debe centrar cuando el usuario entra a la casa, que es cuando proporciona información más importante como lo es su posición. Si no se logra esto el usuario corre peligro si alguien más logra robar la información de dónde se encuentra y tal vez hasta podrían continuar rastreandolo por tiempo indefinido.

Garage Inteligente
Blog del equipo: http://obicomp.blogspot.mx/2013/05/privacidad.html

En mi opinión, el enfoque de seguridad debe estar en la puerta, tal como el mismo equipo lo menciona. Esto es lo mas importante para evitar la entrada de cualquier persona indeseada. El equipo también menciona la seguridad física, y se me ocurre una puerta magnética (en una oficina donde trabajaba el acceso era con tarjetas RFID, la puerta era magnetica y con ventanas pequeñas, de manera que en una ocasión aunque intentaron entrar a la fuerza, no lo lograron). Tal vez serviría para la seguridad física :).

jueves, 9 de mayo de 2013


Los códigos Reed-Solomon son códigos cíclicos no binarios. Los códigos cíclicos son una subclase de los códigos de bloque estándar de detección y corrección de errores. Este tipo de códigos tiene un amplio rango de aplicaciones en comuniaciones digitales y almacenaje y se usan para corregir errores en muchos sistemas como:
  • Dispositivos de almacenamiento (CD, DVD, Códigos de Barras,etc.)
  • Comunicaciones inamámbricas o móviles
  • Comunicaciones satelitales
  • Televisión Digital
  • Modems de alta velocidad tales como ADSL, xDSL, etc.
La siguiente figura representa un caso típico:

 El funcionamiento es el siguiente:
- El codificador Reed Solomon toma un bloque de información digital y añade bits extras "redundantes".
- Los errores ocurren durante la transmisión o el almacenamiento por varias razones (por ejemplo ruido o interferencia, o rayaduras en un CD).
- El decodificador Reed-Solomon procesa cada bloque y trata de corregir los errores y recuperar la información original.

Propiedades de los Códigos Reed-Solomon
Los códigos Reed-Solomon son bloques de códigos lineales. Un código Reed-Solomon es representado como RS(n,k) con símbolos s-bits.

Lo anterior significa que el codificador toma k símbolos de información de s bits cada uno y añade símbolos de paridad para hacer una palabra clave de símbolo n. Hay n-k símbolos de paridad  de s bits cada uno. Un decodificador Reed-Solomon puede corregir hasta t símbolos que contengan errores en una palabra clave, donde 2t = n-k.

La siguiente es úna palabra clave común de Reed-Solomon:

Un código popular de Reed-Solomon es el RS(255,223) con símbolos de 8-bit. Cada palabra clave contiene 255 bytes de palabra clave, de los cuales 223 bytes son información y 32 bytes son paridad. Para este código:

n=255, k = 223, s=8
2t = 32, t=16

El codificador puede corregir cualesquiera 16 errores en la palabra clave.

La codificación Reed-Solomon es ampliamente usada en sistems almacenamiento en masa para corregir los errores de ráfaga de asociados con efectos de media.

También es un componente clave de los discos compactos. Este fue el primer uso de correción de error fuerte en un producto consumidor producido en masa. El DVD usa un esquema similar al usado por el CD.

El corrector de errores Reed-Solomon también es usado en archivos "parchive" (parity archive volumen set), los cuales comúnmente son son publicados acompañando archivos multimedia de USENET. El servicio de almacenamiento distribuido en línea llamado Wuala también usa el Reed-Solomon al partir los archivos.

 Código de Barras
Casi todos los códigos de barras bidimensionales usan la corrección de errores Reed-Solomon. Cuando el scanner de código de barras no puede reconocer el símbolo, lo tratará como una raspadura.


martes, 7 de mayo de 2013

Redes de Telecomunicaciones: puntos extras

Infographic para puntos extras :)


Infographic sobre la seguridad en las redes móviles:





lunes, 6 de mayo de 2013

Privacidad en el Cómputo Ubicuo

Autoures: Ivan Gudymenko, Katrin Borcea-Pfitzmann
URL al PDF: http://www.iab.org/wp-content/IAB-uploads/2011/03/Gudymenko.pdf

1. Introducción
La llegada del cómputo ubicuo ha traído un conjunto de nuevos retos junto con numerosas ventajas. A pesar de mucha investigación realizada en el área, aún hay muchos problemas en los cuales trabajar. En el artículo tratado, se describen las preocupaciones sobre diseñar sistemas de cómputo ubicuo en una manera segura y sujetada a la privacidad.

2. Enunciado del problema
El  cómputo ubicuo tiene peculiaridades que lo distinguen del cómputo convencional. Además de sus beneficios, se levantan problemas que amenazan la seguridad y privacidad individual, a los cuales se les ha llamado: Accesibilidad Transparente así como problemas de Auto-Gobernabilidad y Pérdida de Control.

Accesibilidad Transparente es un efecto secundario de la propiedad de transparencia del cómputo ubicuo - esconder la información innecesaria de las entidades en orden de facilitar su cooperación. Esto presenta un reto de seguridad serio porque en caso de que se ejecute un procedimiento de acceso de manera transparente, el usuario o no es capaz de ver qué está siendo accesado o por cuáles medios está siendo accesado. Aún más, puede no ser claro cuál entidad lleva a cabo el procedimiento de acceso. Esto lleva a una pérdida dramática de control de seguridad y como consecuencia pone en peligro la privacidad de un individuo.

Para poder discutir problemas relacionados con privacidad es importante saber qué se entiende por privacidad.

Definición 1: La privacidad de una entidad es el resultado de negociar y cumplir cuándo, cómo, a qué grado, y en cuál contexto qué información de esta entidad es divulgada a quién.

El problema de Auto-Gobernabilidad y Perdida de Control es una consecuencia del tan llamado "Background Computing" - la auto administración de un sistema ubicuo apunta a proveer comodidad y facilidad de uso, por ejemplo, no distraer al usuario con detalles técnicos de la administración del sistema y permitirle concentrarse en su propio trabajo. Esto puede resultar a un hackeo no reconocido de el sistema entero. La situación se agrava por el hecho que es difícil proveer protección física a un sistema debido a su naturaleza penetrante (por ejemplo, una distribución espacial grande y redes ubicuas).

3 Discusión y Sugerencias
Para un sistema ubicuo seguro y más consciente de la privacidad, se sugiere lo siguiente:

En vez de implementar transparencia como propiedad integrada, esta debe ser una característica opcional: solo si el usuario lo permite, el procedimiento de acceso correspondiente puede ser ejecutado en una manera transparente.

Se argumenta que los problemas de Auto-Gobernabilidad y Pérdida de Control deben ser cuidadosamente considerados, mientras se introduce la transición de poder de computación al trasfondo de un sistema ubicuo. La propiedad de automatización deseada debe ser implementada en tal manera que la etapa de asegurar la privacidad requerida y los niveles de seguridad es restringida al tiempo de diseño del sistema para lograr asegurar que la privacidad adecuada y las precauciones de seguridad serán inherentemente construidas en la funcionalidad de un sistema ubicuo.

Asegurar la seguridad en un sistema ubicuo debería empezar desde el diseño del sistema y continuar en todos los pasos de su desarrollo. Para hacer la administración de la seguridad y privacidad más flexibles, se pueden proveer puntos especiales de extensión/variación para extensiones/variaciones imprevistas a la hora del diseño del sistema. La siguiente figura describe esta idea:

Para proveer administración efectiva y flexible de la seguridad y privacidad, se sugiere un concepto llamado Seguridad Multilateral. Aquí se requiere que cada parte confíe sólo de una manera mínima en la honestidad de otros, considerándolos así como atacantes potenciales. En un ambiente ubicuo heterogéneo, los conflictos de seguridad y privacidad son la norma y deben ser resueltos a través de procesos de negociación. El concepto implica qué grado de seguridad puede ser alcanzado contra quién con respecto a qué tipo de información o funcionalidad, y qué configuraciones de privacidad se desea forzar contra quién en qué contexto.

Para proveer flexibilidad y automatización, un sistema ubicuo debe soportar tareas seguras y delegación de derechos. Bajo este término se entiende que un usuario acepta explícitamente que un conjunto de sus tareas puede ser resuelto por otra entidad acorde a las preferencias del usuario.

Una manera de mejorar la privacidad y seguridad en el cómputo ubicuo es "haciendo filtrado e interpretación personal mediante los dispositivos móviles, lo cual permite cambiar la dirección principal del flujo de información de ambientes (semi-) fijos a individuos en vez de hacerlo desde individuos a ambientes (semi-) fijos". Este cambio del flujo de la información "permite un salto cuántico en la privacidad al evitar la posibilidad de recolectar enormes cantidades de información personal".

Así, para poder diseñar un sistema ubicuo a una manera segura y consciente de la privacidad, los siguientes pasos deben ser considerados:

1. Tejer los mecanismos de seguridad y privacidad en la funcionalidad del sistema que ya está en tiempo de diseño. Uno de los mayores retos aquí es proveer una especificación consistente de requerimientos de seguridad y privacidad.

2. Implementar transparencia como una característica opcional, por ejemplo, permitir la exposición de todos los detalles técnicos necesarios en cada solicitud de un usuario.

3. Mejorar la privacidad de un individuo al cambiar la dirección principal del flujo de información a "infraestructura -> usuario" y al aplicar filtrado para así poder evitar sobrecarga o molestia al usuario. En este caso, la infraestructura puede también transmitir avisos de seguridad y privacidad.

4. Usar la aproximación de Seguridad Multilateral para proveer administración flexible de seguridad y privacidad en el sistema ubicuo desplegado a través de procesos de negociación.

4. Porqué invertir en Privacidad y Seguridad
El tratar de implementar cualquier sistema ubicuo en una manera segura y consciente de la privacidad incrementa el costo del mismo. Sin embargo, se argumenta que es absolutamente necesario hacerlo por un número de razones:

  • Las preocupaciones de Seguridad y Privacidad son unas de las principales cargas de el camino a aceptar los sistemas ubicuos. Usuarios ordinarios usualmente no son muy conscientes de la privacidad y seguridad y cederían en cambiar. Esto significa que las compañías que despleguen sistemas ubicuos seguros y conscientes de la privacidad son más probables a tener éxito comercial.
  • Cuando la infraestructura ha sido creada, es relativamente fácil desplegar el sistema ya que "inversiones individuales pagan inmediatamente". Así, un sistema con buenos mecanismos de administración de privacidad y seguridad es más probable a ser aceptado por la mayoría y puede ser desplegado relativamente fácil y ser comercialmente exitoso.
Los sistemas de cómputo ubicuo serían un gran avance en lo que respecta a interacción humano-computadora, y pienso que su uso explotaría rápidamente, como pasó con android, ya que para el usuario representaría una innovación y un cambio drásticos y le facilitaría mucho sus actividades cotidianas. Pero para que todo esto pueda darse es necesario resolver los problemas de seguridad y privacidad tal como se planteó en este artículo, de otra manera los sistemas ubicuos resultarían una molestia para los usuarios.


martes, 30 de abril de 2013

Control de Congestion

Para esta entrada se nos encargó simular control de congestion en ns-2.

Para lograr esto, se reciclaron conocimientos de tareas anteriores para crear las topologías y para simular el tráfico. Ahora lo nuevo fue integrar una fórmula para calcular el ancho de banda de la red. En base a este ancho de banda conocido, decidimos si aumentamos o disminuimos la cantidad de paquetes que se envían.

Las fórmulas usadas en el código, y cómo graficar en xgraph se encontró en este enlace.

El código:


El resultado:

La línea verde muestra que la cantidad de paquetes perdidos es poca, esto debido a la poca congestión de la red.

Tutorial de xgraph: http://www.isi.edu/nsnam/ns/tutorial/

Laboratorio de Ubicuo: Actividad 8

Esta entrada es una simple retroalimentación sobre los proyectos de los demás equipos sobre el tema de usabilidad.

El equipo mencionó que implementarían un programa para permitir controlar su sistema por medio de internet. Esta idea es la que me llamó más la atención y por lo mismo pienso que le llamará más la atención a cualquier usuario así que deben poner esfuerzo extra en esta parte para lograr atraer al usuario. Esto se puede lograr por medio de lograr una conexión simple y sin rodeos, además de un diseño atractivo y moderno, algo así como lo que ofrecen las capacidades de HTML5.


El bloqueo/desbloqueo por rostro que propone este equipo es una idea muy atractiva, que puede vender mucho. Pero así mismo deben esforzarse en hacer un producto fácil e intuitivo. Voy a lo mismo: la interfaz de usuario debe ser amigable y atractiva y con una respuesta rápida. Pienso que si logran estas cosas el usuario estará muy cómodo y adquirirá con gusto el sistema.

Equipo: http://aveoctavo.blogspot.mx/2013/04/blog-post.html

La idea que ha propuesto el equipo esta vez es la reproducción de contenido al detectar a una persona. La única recomendación que yo pienso es el controlar la distancia a la que se va a aceptar una persona como interesada en el artículo (como el kinect que tiene cierto rango para leer los movimientos de las personas). Porque si dos obras están una frente a otra, a metros de distancia, y se detecta la persona en ambas obras, sería incómodo que 2 obras estén reproduciendose al mismo tiempo.

Equipo: http://ultimo-sem.blogspot.mx/2013/04/entrega-4.html

Lo que más me ha gustado de este proyecto es que han tomado bastante en cuenta al usuario y se han ido adaptando a las necesidades y requerimientos del mismo en base a sus investigaciones. Lo único que yo podría pensar es que se aseguren de que cuando el usuario apague la alarma no se vuelva a acostar o quedar dormido de ninguna forma ya que normalmente siempre decimos: "5 minutos más" y eso equivale a llegar tarde a nuestra escuela o trabajo.

Equipo: http://3-its.blogspot.mx/2013/04/pruebas-de-usabilidad.html

Pienso que este equipo debe concentrarse en lo ubicuo del sistema, y no tanto en botones y cosas así, para que en realidad el usuario pueda seguir el flujo de sus actividades y no tener que interactuar directamente con el sistema.

Equipo: http://3puntosteam.blogspot.mx/2013/04/pruebas-de-usabilidad.html

lunes, 29 de abril de 2013

Laboratorio de Redes: Actividad 9

Autores: Curt Schurgers, Many B. Srivastava

Los circuitos integrados han madurado al grado que permiten la integración de comunicaciones, sensores y procesamiento de señal en conjunto. Ahora es factible dispersar nodos sensores ultra pequeños en un campo de batalla para recolectar información estratégica. Debido a que los nodos deben ser discretos, solo pueden cargar baterías muy pequeñas. Como resultado, tienen un suministro de energía limitado. Protocolos de ruteo para redes conformadas por estos nodos necesitan ser desarrollados con un enfoque en eficiencia de energía.

En el artículo se proponen dos opciones para incrementar el tiempo de vida de la red de sensores: (1) minimizar el consumo de energía de transmisiones y (2) explotar el aspecto multi-hop de las comunicaciones en red.

Antes de discutir dichas opciones se trata el problema: como incrementar el tiempo de vida de una red de dispositivos de energía limitada.

1. Ruteo Óptimo de Energía
Algoritmos de ruteo ad-hoc tradicionales se enfocan en evitar la congestión o mantener la conectividad cuando se enfrentan con mobilidad. No consideran el suministro limitado de energía de los dispositivos de red. La siguiente figura ilustra cómo el suministro limitado altera el asunto del ruteo.

Carga vs. ruteo orientado a energía
Los nodos A y E mandan 50 paquetes a B. Después, F manda 100 paquetes a B. Desde una perspectiva de balanceo de carga, las rutas preferidas son ADB, ECB y FDB, respectivamente. Sin embargo, cuanto los nodos están limitados en energía de manera que solo pueden enviar 100 paquetes, estas rutas ya no son óptimas.

Este caso de estudio simple resalta la siguiente observación: la calendarización de tráfico óptimo en redes de energía limitada requiere conocimiento futuro. En el ejemplo, un número máximo de paquetes puede alcanzar B solo si justo al inicio sabemos exactamente cuándo los nodos generarán tráfico en el futuro.

2. Ruteo Eficiente de Energía  
Por lo discutido, el ruteo óptimo en redes de energía limitada no es prácticamente factible. Sin embargo, se pueden ablandar los requerimientos hacia un esquema estadísticamente óptimo. Un esquema es eficiente de energía (en comparación con el ópimo de energía) cuando es estadísticamente óptimo y casual (solo toma el pasado y el presente en cuenta). Tomar en cuenta todos los posibles escenarios futuros en las aplicaciones de redes es demasiado intensivo computacionalmente, aun para simulaciones. Así, esto es inoperable como una guía para basar esquemas prácticos.

3. Razonamiento de la Difusión de Tráfico
Para lograr una guía práctica, se comienza por la siguiente observación: las rutas de salto mínimo para un usuario para diferentes streams tienden a tener un número mayor de saltos en común. Los nodos en esas rutas mueren más pronto y así limitan el tiempo de vida de la red. La siguiente figura presenta un histograma típico de consumo de energía en cierto punto en el tiempo. Algunos nodos apenas han sido usados y otros casi han terminado su energía.

Si asumimos que todos los nodos son igualmente importantes ningún nodo debería ser más critico que otro. En cada momento cada nodo debería entonces ser usado la misma cantidad de energía, la cual también debería estar minimizada. La siguiente figura muestra un histograma más deseable, aunque el total de consumo de energía es el mismo.

Los esfuerzos para un histograma de energía compacto se traducen en la guía con la que el tráfico debería ser dispersado a través de la red tan uniformemente como sea posible.

Como un esquema de ruteo subyaciente, se toma una base en el paradigma de difusión dirigida. Cuando un usuario se une a la red de sensores, anuncia el tipo de información en el que está interesado. Se ha optado por una instancia simple de este paradigma, al cual han llamado Ruteo Basado en Gradiente (Gradient-Based Routing (GBR). Mientras es inundado, el mensaje de interés graba el número de saltos del usuario, llamado el peso del nodo. La diferencia entre el peso del nodo y el del usuario es considerado el gradiente de ese enlace. Un paquete es remitido en el enlace con el gradiente mayor. Aunque las técnicas para incrementar el tiempo de vida de una red están construidas sobre GBR, los principios principales son lo suficientemente generales para también ser aplicables a otros protocolos de ruteo ad-hoc.

1.Entidades de Combinación de datos (Data Combining Entities)

Nodos sensores individuales procesan su información antes de transmitirla al usuario. Es ventajoso combinar observaciones de diferentes nodos para incrementar la eficiencia de los recursos. Este proceso reduce no solo la sobrecarga de la cabecera, pero también la información en si misma puede ser compactada ya que contiene en parte la misma información.

Aunque esta combinación puede ser implementada al seleccionar explícitamente una cabecera de cluster, se presenta un esquema que es más robusto a fallas de nodos aleatorios. Primero hay que notar que los nodos sensores que son activados por el mismo evento, son típicamente ubicados en la misma vecindad. La nube resultante de nodos activados también está en una proximidad de comunicación cercana. Simulaciones han mostrado que las DCE´s están ubicadas dentro o muy cerca de esta nube de nodos activados. Este esquema es altamente robusto. Cuando un nodo con una DCE muere, el paquete automáticamente toma una ruta alternativa y pasa a través de otro nodo que puede crear un nuevo DCE.

1. Técnicas de Dispersión

Esquema Estocástico: cada nodo puede seleccionar el siguiente salto en una manera estocástica. Más específicamente, cuando hay dos o más saltos adyacentes con el mismo gradiente bajo, uno aleatorio es elegido. Esto no incrementa la longitud de la ruta seguida, sin embargo contribuye a la dispersión del tráfico de red.

Esquema basado en energía: Cuando un nodo detecta que su reserva de energía ha disminuido por debajo de cierto umbral, este "desanima" a otros de mandar información a el al incrementar su peso. Esto puede cambiar el peso de un vecino. Este a su vez informa a otros nodos y estas actualizaciones son propagadas tan lejos como sea necesario para mantener consistentes todas las gradientes.

Esquema basado en stream: La idea es desviar nuevos streams de los nodos que son actualmente parte de la ruta de otros streams. Un nodo que recibe paquetes informa a sus vecinos excepto a aquel de donde se origina el stream, al que su peso a incrementado. De nuevo, otros nodos deben asegurarse de que las gradientes permanezcan consistentes. Como resultado de este esquema, el stream original no es afectado, debido a que estos nodos no han actualizado el peso de su siguiente salto. Nuevos streams de paquetes, sin embargo, tomarán otras rutas mientras el peso de los nodos en la primer ruta ha incrementado aparentemente.