jueves, 9 de mayo de 2013

Code Block

This week we are assigned to make a way to check if a string or text or text string is transmitted correctly.

The idea is to use HAMMING BLOCK CODES.

The hamming code allows us to find errors in a text received by a string of 4 bits (7x4). This indicates that it will be a string of four bits that represent something as numbers or letters and is accompanied with 3 digits its parity bits.



Hamming algorithm (7X4) can correct any single bit error, but when there are errors in more than one bit, the transmitted word is confused with another with a single bit error being corrected, but incorrectly, ie that the word is not correct other than the original, and the final message is wrong without knowing it. 

The key to the Hamming Code is the use of extra parity bits to allow the identification of a single error. Create the code word as follows:
  1. Mark all bit positions that are powers of two as parity bits. (positions 1, 2, 4, 8, 16, 32, 64, etc.)
  2. All other bit positions are for the data to be encoded. (positions 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, etc.)
  3. Each parity bit calculates the parity for some of the bits in the code word. The position of the parity bit determines the sequence of bits that it alternately checks and skips.
    Position 1: check 1 bit, skip 1 bit, check 1 bit, skip 1 bit, etc. (1,3,5,7,9,11,13,15,...)
    Position 2: check 2 bits, skip 2 bits, check 2 bits, skip 2 bits, etc. (2,3,6,7,10,11,14,15,...)
    Position 4: check 4 bits, skip 4 bits, check 4 bits, skip 4 bits, etc. (4,5,6,7,12,13,14,15,20,21,22,23,...)
    Position 8: check 8 bits, skip 8 bits, check 8 bits, skip 8 bits, etc. (8-15,24-31,40-47,...)
    Position 16: check 16 bits, skip 16 bits, check 16 bits, skip 16 bits, etc. (16-31,48-63,80-95,...)
    Position 32: check 32 bits, skip 32 bits, check 32 bits, skip 32 bits, etc. (32-63,96-127,160-191,...)
    etc.
  4. Set a parity bit to 1 if the total number of ones in the positions it checks is odd. Set a parity bit to 0 if the total number of ones in the positions it checks is even.


Bibliografía
http://users.cs.fiu.edu/~downeyt/cop3402/hamming.html


 

martes, 7 de mayo de 2013

Lab#10. Resumen Cuestiones de privacidad en el cómputo ubicuo

Para esta semana la tarea asignada consiste en elaborar un resumen de un articulo preseleccionado relacionado con privacidad en computo ubicuo y el mio consiste en lo siguiente: 

C. Bryce- M.A.C. Dekker · S. Etalle · D. Le Metayer - F. Le Mouel  M. Minier · J. Moret-Bailly · S. Ubeda
                                                                              (2007)

Ubiquitous Privacy Protection
Position Paper

Referencia al articulo

1. Introducción:
La privacidad es un concepto complejo y de múltiples facetas, tanto del bienestar social y los puntos de vista legal y ha sido interpretado de diversas maneras dependiendo de épocas, culturas y las percepciones individuales. La privacidad también depende en gran medida de la tecnología, como lo demuestra la motivación formulada por Warren y Brandeis en su artículo seminal  en 1890 - es decir, el uso creciente de la fotografía y, más de un siglo después, por el aumento de las preocupaciones acerca de la privacidad planteadas por las perspectivas de la computación ubicua. 

En cada caso, la tecnología juega el papel del villano o la fuente recurrente de nuevas amenazas a la privacidad. La posición que hemos presentado aquí es que la tecnología no necesariamente debe estar siempre en el lado equivocado, y que las características técnicas de la computación ubicua también pueden ser aprovechadas para extender la protección de la privacidad.

Obviamente, la privacidad no se puede garantizar por medios puramente técnicos, especialmente en el contexto de la computación ubicua: se requiere una combinación de ingredientes jurídicos, sociales y tecnológicos, pero la tecnología puede y debe ser diseñado desde el principio con los requisitos de privacidad en mente.  La tecnología puede y debe apoyar a las normas legales y sociales tanto como sea posible, mientras que la contabilidad por la variedad de situaciones y complejidades del mundo en "inteligencia ambiental".

Se centra en tres requisitos técnicos: (2) la especificación formal de la política de privacidad, (3) gestión de la confianza y (4) la auditabilidad.

2. Necesidad de un modelo formal de la política de privacidad
2.1 motivación jurídica y social
La mayoría de instrumentos legales para la protección de la privacidad se refieren explícitamente al consentimiento inequívoco del titular de los datos como una de las condiciones para la obtención de datos personales. Sin embargo, el consentimiento del titular de los datos puede considerarse inequívoca si la información en que se basa dicho consentimiento también es ambiguo. 

No obstante, el control efectivo de sus datos personales por parte del usuario y el valor jurídico de su consentimiento debe basarse en la existencia de una política de privacidad precisa que se ha definido previamente, comprendido y aceptado sin ambigüedad. Otra razón importante para evitar ambigüedades en el estado de las políticas de privacidad es la responsabilidad del tratamiento de los datos (la persona jurídica que determina los fines y medios del tratamiento de datos personales) por daños y perjuicios sufridos por el titular de los datos, como resultado de un tratamiento ilícito de datos personales.

2.2 Cuestiones tecnológicas

En este articulo nos muestras como ya se ha ilustrado durante décadas en el área de lenguajes de programación, la semántica formal por lo menos dos ventajas principales: 
  1.  Que permitirá asignar un significado definido para cada declaración en un idioma, 
  2.  Que allanar el camino para el diseño de una variedad de herramientas bien fundadas (como analizadores del programa, transformadores de programas, etc.).
Estos beneficios serían muy bienvenidos en el contexto de las lenguas de política de privacidad, así como: ejemplos de funciones útiles incluyen la comprobación de la conformidad (por ejemplo, comprobar si la política de privacidad de un destinatario potencial de datos se ajusta a las necesidades de privacidad de los datos del propietario), la comprobación de la consistencia (detectar inconsistencias o configuraciones sospechosas en las políticas de privacidad). 

En efecto, la definición de las políticas de privacidad de una manera precisa e inequívoca no es una tarea fácil, sobre todo en el mundo de la inteligencia ambiental en diferentes contextos, actores, tipos de datos y los dispositivos tienen que ser considerados.

2.3 Soluciones tecnológicas

Para hacer frente a las cuestiones planteadas en el apartado anterior, se ha diseñado un sistema formal que se basa en las nociones de confianza y auditabilidad.  El sistema de prueba para la gestión de la confianza define las reglas para el establecimiento de fórmulas de credenciales tales como "A afirma que D es miembro de A amigos" donde "A" denota un director y "amigos" a seguir. 

La semántica de las políticas de privacidad pueden ser establecidos en función del estado del sistema de gestión de la confianza. Las políticas de privacidad son adheribles en el sentido de que cada uno de los datos viene con su política y esta política rige su uso, así como su distribución. 

3 Requisitos para la gestión de la confianza
3.1 motivación legal y social 
Los seres humanos utilizan la confianza diaria para promover la interacción y aceptar el riesgo en situaciones en las que tienen información parcial. En realidad, las nociones de privacidad y confianza tienen diferentes conexiones:
  • En el "nivel operativo", la confianza es un parámetro social para la gestión del riesgo, sino que ayuda en la toma de decisiones, por ejemplo, para decidir si o no los datos personales deben ser comunicados. Hasta hace poco, la confianza se estableció a través de las interacciones directas, cara a cara. Hoy en día, en la sociedad conectada global, se necesitan métodos alternativos para establecer la confianza.
  • En el "nivel filosófico", se ha argumentado que uno de los primeros valores encapsulados por la privacidad era contribuir al bienestar y la confianza de la gente, sobre todo en el contexto de sus relaciones sociales.
Por lo tanto, la confianza ayuda a mantener la privacidad, que a su vez refuerza la confianza. Sin embargo, el establecimiento de la confianza también puede afectar a la privacidad ya que una cantidad mínima de información se debe proporcionar para iniciar confianza (proceso de iniciar captura). 

3.2 Cuestiones tecnológicas
En cuanto al problema de proteger la privacidad desde el punto de vista de gestión de la confianza aparece como una solución razonable en un marco distribuido como la computación ubicua, donde no hay control de una autoridad central puede ser asumido. 

Gestión de confianza puede ser una manera de ayudar a las personas tomar decisiones sobre si debe o no dar su consentimiento al tratamiento de sus datos privados. Dos nociones de confianza suelen distinguir: confianza implícita y fiabilidad. 

Gestión de la confianza basada en el artículo cae en el área de control de acceso. La adaptación a los sistemas de colaboración descentralizada de soluciones para sistemas centralizados es muy difícil, especialmente cuando se considera entornos de inteligencia ambiental. 

Además, cualquier marco de gestión de la confianza de la inteligencia ambiental requiere un mínimo intercambio de datos personales. 

3.3 Soluciones tecnológicas
Nuestro marco de gestión de la confianza se basa en la idea de la historia de la comunicación: después de una interacción exitosa, cada nodo construye una prueba de interacción firmado por ambas partes. Cada nodo mantiene en su historia este certificado común para probar criptográficamente que la interacción ha tenido lugar (e, implícitamente, a satisfacción de ambas partes). 

Estos certificados se utilizan para construir la confianza con otros dispositivos basados ​​en su número de interacciones con partes comunes (las partes que han tenido interacciones exitosas con los dos nodos). 

El nivel de calidad de la información se puede adaptar mediante el uso de seudónimos. Cada nodo se le asigna una identidad única y un conjunto de seudónimos derivados que se pueden utilizar para construir certificados sin revelar la identidad del nodo. Además, los nodos pueden denunciar los malos comportamientos a la autoridad, que es capaz de establecer la identidad del nodo incriminada, lista negra con todos sus seudónimos y reenviar esta información a todos los demás nodos.

4 Requisitos para la auditabilidad
4.1 Motivación jurídica y social
Mecanismos clásicos para la protección de los datos confidenciales son preventivas, en el sentido de que las acciones no autorizadas se les impide que se produzcan. Sin embargo, tanto por razones técnicas y legales, que deben complementarse con medidas a posteriori con la auditoria  especialmente en el contexto de la computación ubicua. Primer lugar, basándose exclusivamente en los medios de prevención, no sería realista para ciertas aplicaciones debido a que el sistema sería necesariamente:
  • De cualquier inconveniente, ya que no toleraría ninguna excepción y que por lo tanto privaría al usuario de muchas interacciones potenciales o exigiría reiteradamente su consentimiento antes de autorizarlos.
  • O ineficaz, ya sea porque el usuario, cansado con consultas reiterado consentimiento, daría sistemáticamente su consentimiento porque, a fin de aliviar este problema, el sistema tendría que poner en práctica una política de privacidad mucho más débil.
 Lo esencial de la cuestión es que un mecanismo de control preventivo estricto y preciso requiere un procedimiento de decisión completo para establecer si una determinada acción está permitida o no, y un procedimiento de decisión tan completa que no puede aplicarse de manera efectiva, ya que depende de conceptos vagos como el "fin "de una acción. 

4.2 Cuestiones tecnológicas
La auditoria puede ser un sustituto válido para el control de acceso preventivo, ya que puede poner en práctica una forma de control de acceso a posteriori: un sistema en el que no se impide infracciones de política, pero se ha identificado y detectado sistemáticamente.

El uso sistemático de auditoria para lograr el control del cumplimiento puede parecer futurista, pero creemos que tiene que suceder. Para darse cuenta de esto, una serie de cuestiones técnicas tienen que ser abordados. 

  • En primer lugar, la integridad: la auditoria no puede ser nunca un proceso totalmente automatizado ya que la decisión de si un acto constituye una violación a menudo se basa en factores (como el contexto social) que no pueden ser evaluados por un sistema automático. Por lo tanto, los sistemas de auditoria tendrán que aislar a los casos dudosos que pueden requerir la intervención humana. 
  • En segundo lugar, la eficacia: en la presencia de los casos dudosos, el problema de falsos positivos puede ser un factor limitante en la eficacia de la auditoria automática. Un tercer reto es cerrar la brecha entre las políticas y los acontecimientos. 
4.3 Soluciones tecnológicas
Con el fin de abordar algunas de las cuestiones planteadas en el apartado anterior, hemos definido una lógica de responsabilidad, los fundamentos formales de un control de cumplimiento, y un marco lógico para la evaluación de los sistemas de registro. Estos sistemas de dirección, en particular, las cuestiones formales que subyacen a la estructura y el significado de la auditoria como una manera de hacer cumplir el control del cumplimiento.

Como se establece en el apartado anterior, un requisito clave para la auditoria es que los datos registrados se almacenan de forma segura. Estamos investigando este problema utilizando la noción de hardware de confianza. 

Esto también es importante para la detección de virus, ya que pueden surgir violaciones de privacidad de software infectado por virus tan fácilmente como a través de las acciones de los usuarios maliciosos.

Fundamentalmente, la auditoria de privacidad implica el registro de las acciones de las entidades en relación con el intercambio de información. A veces la información puede ser identificada a través del dispositivo de almacenamiento que contiene. En este caso, la tecnología RFID puede ser explotado para rastrear el movimiento del dispositivo de almacenamiento. 
-------------------------------------------------------------------------------------------------------------------------------
Conclusiones :  

En áreas de la concisión, se ha centrado en tres tecnologías que creemos que son de gran importancia para conciliar la intimidad y la computación ubicua. En cada caso, hemos sugerido cómo la tecnología puede ser utilizado para extender protección de la privacidad al tiempo que permite la flexibilidad requerida por el contexto inteligencia ambiental.
Obviamente, esto no es para minimizar el valor de muchas otras técnicas (tales como el anonimato, la criptografía, autenticación o técnicas basadas en proximidad) que debe ser parte de cualquier entorno ubicuo amigable privacidad.


Opinión 
Como opinión podemos definir que hay  algunos requisitos de privacidad importantes  en escenarios de inteligencia ambiental.  Esto podría ser mediante la confianza que entra en juego cuando un dispositivo del usuario interactua con otros dispositivos como la unidad de gestión de la confianza de dispositivos que evalúa los riesgos según el contexto actual, y otorga derechos de acceso a los otros dispositivos y la auditabilidad es útil después de una interacción, esta sirve como un medio para comprobar que acciones del pasado realizadas por el dispositivo fueron consistentes en privacidad. También tomar en cuenta que la privacidad debería ser un poco mas flexible. 

jueves, 2 de mayo de 2013

Lab#8. Detección de Poligonos


Para esta semana se nos pidio realizar un programa que pudiera detectar poligonos para esto se llevo a cabo el siguiente proceso:
  • Utilice la imagen original 
 
  • pase a escala de grises para despues binarizarla 

  • Aplicamos lo que es convolución que genera la imagen con los bordes encontrados y los gradientes. 
 

 

Implementación:
Aquí estan algunas funciones representativas y lo que pude implementar de codigo de convolución hasta ahorita. 
  • Esta es la función encargada de calcular las pendientes de cada pixel, recibe el listado de puntos correspondiente a la forma detectada, y los gradientes de X y Y.
  • Para cada punto de la lista, obtiene el valor en los gradientes, y calcula la pendiente en el punto.
  • Lo que alcance a tener  es en base a las pendientes encontradas pinta lo que son las rectas dentro de los poligonos detectados por convolución. 

martes, 30 de abril de 2013

Lab#9.Retroalimentación de presentaciones

Para esta semana se nos pidió realizar una retroalimentación sobre las presentaciones que nos expusieron nuestros compañeros sobre pruebas de usabilidad de cada uno de los proyectos, esto con el fin de dar sugerencias y opiniones sobre esto.

Despertador Inteligente(Cecy, Roberto y Ramón)

  • Sus pruebas de usabilidad fueron buenas ya que lo hicieron con algunos usuarios de manera funcional.
  • Como sugerencia podrían mencionar como están acomodados  los sensores y si en realidad no afecta en el descanso del usuario, además de los factores de  presión que ejerce el usuario hacia el sensor si esto no afecta mas que nada a los resultados o a la variación de activación del despertador. 

------------------------------------------------------------------------------------------------------------
Computadora Inteligente(Pedro, Ave,Oved y Jonathan)

  • Para este proyecto como sugerencia sería bueno que el usuario estuviese un poco mas informado de lo que hace en si el sistema para que al estar  interactuando sepa que acciones seguir. 
  • Podrían hacer pruebas con mas usuarios tanto de edad avanzada o adulta para saber que reacción tienen ante lo inicial. 
------------------------------------------------------------------------------------------------------------

Oficina Personalizada(Lupe, Osvaldo,Triana y Esteban)

  • Algo que podrían tomar en cuenta el tiempo que en que el usuario ocupa para tener acceso
  • Podrían incluir un diseño de la interfaz que estarán manejando ya que esto no fue mencionado y así el usuario podría darse una idea mas clara como se interactua mas con el sistema. 
  • Además de podrían hacer pruebas que tanto tiempo tarda el sistema en responder y si la luminosidad es la adecuada para cuando el usuario lo esta usando.
------------------------------------------------------------------------------------------------------------
Localizador (Isaias,Omar y Saul )

  • Se podría hacer un énfasis mas que nada en que consiste la aplicación para facilitar el entendimiento con el usuario que no esta muy familiarizado con esta tecnología.
  • Como observación falto incluir si con el diseño del prototipo de la aplicación con el que se hicieron las pruebas fue intuitivo o se tenia que ir explicando paso por paso al usuario que interactuo con ella. 
  • Como sugerencia tomando en cuenta a usuarios que no estuviesen muy familiarizados con la tecnología registrar que diferentes situaciones presentan al momento de interactuar con el localizador.
------------------------------------------------------------------------------------------------------------

Casa Inteligente(Rene, Ivan, Raúl)

  • Como observación pude notar que falto un poco mas probar la aplicación en medida de velocidad que presenta. 
  • Falto presentar si en base a esa explicación que se le dio a los usuarios del funcionamiento de la interfaz y lo que experimentaban con solo el diseño fue realmente intuitivo.  
--------------------------------------------------------------------------------------------------------

CarFxP(Abraham, Sosa, Rafa, Juan Carlos)


  • Me pareció una presentación muy completa, haciendo incapie en lo de seguridad podrían buscar como garantizar que el auto esta seguro, 
  • Y como sugerencia muestran algunas contras en su presentación podrían también buscar esa alternativa para iniciar el sistema o abrir y no quedarse fuera del auto. 

----------------------------------------------------------------------------------------------------------

Garage(Emannuel, Max, Victor y Carmen)

  • Su presentación esta completa para lo que plantearon, pudiesen haber hecho retroalimentación de usuarios enfocado a con que escenarios se sintieron mas cómodos o sería el mejor.
---------------------------------------------------------------------------------------------------------

Alarma Inteligente(Roberto, Alex, Sergio, Cristhian)

  • En mi opinión falto hacer algunas pruebas de velocidad en cuanto a la respuesta cuando la alarma se activa y cuanto tarda en dar esa notificación al usuario. 
  • Como sugerencia podrían agregar lo que son configuraciones personalizadas acorde al ambiente o momentos que se presenten. 
  • Y para mostrar los resultados e interpretar mejor los datos de sus encuestas podrían hacer una pequeña tabla de respuestas. 

jueves, 25 de abril de 2013

Lab#7. Detección de agujeros

Para esta semana en el laboratorio se nos dio a la tareas de localizar agujeros en imagenes, esto es utilizando los valores otenidos de los histogramas laterales(horizontal y vertical). Esto seria mas que nada un procesamiento para la detección de agujeros para realizar lo correspondiente a la clase.

Liga al proyecto

Recordando un poco lo que se hizo para obtener los histogramas

1. Pasamos la imagen a escala de grises ya que con un umbral diferente se pueden tener diferentes contrastes en la imagen.

2. Se ralizo lo que es una sumatoria de filas y columnas para crear los dos histograma.

3- Teniendo ya lo anterior se comienza a buscar lo que son los valores minimos para cada vector (horizontal y vertical). Sacamos un promedio de estos para poder filtrar más los datos obtenidos:


La imagen a utilizar es la siguiente 

Escala de grises



4. Despues obtuve los cruces de lineas horizontales y verticales.






Gráficamos los Histogramas: 


Código Relevante Grafica:
Tome como base el código realizado por la doctora y se implemento dentro del codigo ya presentado anteriormente para mostrar los histogramas de pixeles.





Referencia:
http://elisa.dyndns-web.com/~elisa/teaching/comp/vision/agujeros.pdf

Tarea #4. Método adatpativo

For this week we ask you to make a coding algorithm based adaptive Huffman coding.

Try to modify my above code to make it adaptive only manage to finish a bit to read me the frequency of characters within a compressed textro something that was not yet finished.


Remembering some algorithm process:



1. We look for the frequency of unique characters in the text above.
2. Each of the characters is created as a tree and add them to a list, each tree has its associated symbol and frequency number.

3. The ordered from lowest to highest according to the frequencies.
4. From the above it will select the first two trees from the list and will form a new tree with them, before the tree will delete the two trees in the list. The root of the new tree will be the sum of the frequencies of the roots of the two trees to be joined and the trees will now child nodes of this. 
5. We add to the list the new tree created by ordering from low to high 
6. Already having obtained the tree end we have to begin to explore it in order to get the binary code of each of the characters, as we know is a binary tree that has the following tags that link one node to another.

Codigo




The idea to make a little adaptive was possible to continue updating the tree and updates during ordering property is maintained, for example, nodes (internal and leaves) were ordered according to increasing their weights.

When it is necessary to exchange the farthest node with a certain weight is exchange with the node whose weight is increased.

Be tree could be seen differently when exchanging nodes and perform better compression level and still have the same efficiency.


But the program didn't work :(



martes, 23 de abril de 2013

Tarea #6. Detección de agujeros

Para esta semana en la clase se encargo detectar agujeros en imágenes a partir de histogramas laterales de intensidades de pixeles.

Parte para sacar los histogramas

Lo que se pidio es:
  • Detectar todos los agujeros de una imagen.
  • Los agujeros se marcan con bordes morado oscuro y relleno de morado claro.
  • Tonos ligeramente diferentes para cada agujero.
  • Se debe marcar el centro de cada agujero con un punto amarillo.
  • En el centro de cada agujero se agrega una etiqueta con el ID del agujero.
Código
Esto se agrego para colorear el contorno y rellenar el agujero de un color morado y agregar la etiqueta con su ID a lo detectado mediante bfs y por el area econtrada anteriormente por el histograma donde se marcaron las intersecciones.

Dentro de esta area se aplica el bfs, pintando los bordes del circulo con color morado oscuro y rellenarlos de un morado claro, además de marcar lo centros e identificarlos con su ID.


Imagen original
Intersección de lineas en la imagen