Un programa a escala de Internet usando TAIGA

Visión general

WebView es una visualización de cómo se está utilizando actualmente la web. Está diseñado para monitorear los sitios web que se están navegando actualmente y acumular esta información por categoría en una visualización significativa (e interesante). Al mismo tiempo, es una demostración del potencial del sistema de programación TAIGA .
Para que esta visualización sea interesante y efectiva, necesitamos que la gente la use. Por lo tanto, le recomendamos que descargue, instale y ejecute el software.

La pantalla

Desde el punto de vista de los usuarios, webview es un simple script que presenta una visualización categorizada de lo que las personas están navegando actualmente. A continuación se muestra una muestra de muestra:
La pantalla consta de anillos concéntricos, cada uno de los cuales representa un período de tiempo que va desde un minuto hasta varios días. Cada anillo se divide en regiones que reflejan una sola categoría de páginas web. (Actualmente utilizamos la clasificación de OpenDirectory, pero cualquier categorización funcionaría). Las categorías están ordenadas alfabéticamente, en sentido contrario a las agujas del reloj desde la posición de las 3 en punto (lo que tiene sentido para los matemáticos al menos). Los colores son arbitrarios, pero se eligen para maximizar la diferencia entre categorías posiblemente adyacentes. Dentro de cada área de categoría hay una línea ondulada que codifica información sobre las páginas que se están viendo en esa categoría. La pantalla se actualiza cada minuto más o menos.
La pantalla proporciona al usuario varios tipos de información. El intervalo de arco para cada categoría es proporcional al número de vistas (páginas solicitadas por un navegador) de las páginas de esa categoría durante el intervalo de tiempo. El matiz de la región denota la categoría; La saturación de la coloración refleja el número relativo de vistas. Por lo tanto, si un intervalo tiene relativamente pocas vistas (donde relativo se basa en la cantidad de tiempo que cubre el intervalo frente al historial general), entonces la región será más clara; Si el intervalo tiene muchas vistas, el intervalo será más oscuro. La propia línea ondulada puede codificar el número relativo de direcciones URL distintas durante el intervalo de tiempo en la frecuencia de la línea. Por lo tanto, si todas las páginas vistas para una sola categoría fueran de una sola URL, la línea sería plana; Si cada uno fuera distinto, la línea sería bastante ondulada. El grosor de la línea se utiliza para reflejar el número relativo de usuarios que navegan por las páginas de esa categoría. Si toda la navegación fuera realizada por un solo usuario, la línea sería bastante delgada; si corresponde a muchos usuarios distintos, la línea sería gruesa.
La pantalla también puede codificar información en el brillo (atenuado a negro) de los tramos y en la amplitud de las líneas. El usuario tiene la opción de cambiar las distintas propiedades de visualización a través de los cuadros de diálogo apropiados. Esto incluye cambiar la estadística asociada con cada propiedad gráfica, cambiar los colores asociados con las diferentes categorías, las categorías de mapeo y cambiar los diferentes intervalos.

Recopilación de información

Para poder mostrar información sobre lo que está sucediendo en la web, necesitamos recopilar la información. Por lo tanto, este programa es el software espía. Supervisa su historial de navegación e informa de las páginas que navega a un servidor central donde se clasifican y se registran las categorías. Sin embargo, el programa no registra información personal o de identificación. Los "usuarios" están representados por un ID aleatorio único que solo se utiliza para obtener los recuentos de usuarios. Las ID son arbitrarias y no se pueden rastrear hasta la fuente (que yo sepa). El software espía solo funciona cuando está ejecutando el visor y solo para el usuario que realiza la ejecución. Se proporciona la fuente completa si no cree lo que está sucediendo.
Tenga en cuenta que nuestra herramienta funciona en Windows, Linux y Mac OS / X con safari, Mozilla, IE y Opera en varias combinaciones. Si desea contribuir a los datos del proyecto pero no desea ejecutar el visualizador, le proporcionamos un script que solo ejecuta el monitor de historial.

Clasificación

El sistema nunca guarda URL o ID de usuario. En cambio, a medida que aprende sobre una página, encuentra la categoría adecuada y guarda periódicamente información sobre la cantidad de páginas, usuarios y URL para cada categoría. El sistema no descarga ni accede a una página para encontrar su categoría. En su lugar, intenta encontrar la categoría solo utilizando la URL.
Usando el framework TAIGA, permitimos múltiples implementaciones de clasificadores. Actualmente ofrecemos tres diferentes. Nuestro primer categorizador usó el servicio web de Google, y le pedimos a Google que buscara una página en particular y examinó la clasificación de Open Directory que Google devuelve como parte del resultado. Esto es limitado porque Google no quiere que llamemos al servicio web más de 1000 veces al día y porque no siempre reportan la clasificación, incluso para páginas relativamente comunes. Una alternativa es el MeURLin.proyecto. Tenemos un clasificador que habla con su página web de demostración (aún no tienen un servicio web configurado) y extrae el resultado. Esto es bastante efectivo (con diversos grados de precisión), pero aún es un poco lento para nuestros propósitos. Nuestro tercer clasificador lee la base de datos de directorio abierto al inicio y crea un árbol de clasificación para una URL. Una vez que se construye el árbol (que toma 15 minutos y 2G de memoria), la búsqueda es bastante rápida. Si bien los tres clasificadores están disponibles, y TAIGA es libre de elegir cuál es la mejor en un momento dado, la más probable es que se use uno en este momento.
Si alguien tiene un mejor clasificador o uno que le gustaría probar, me complacería integrarlo rápidamente en el sistema. Taiga permite que la implementación sea una biblioteca, un servicio de tipo cliente-servidor o un servicio web.

Almacenamiento de datos

Estamos utilizando las propiedades del sistema de archivos global de TAIGA para proporcionar el repositorio de información inicial. Los resultados acumulados de la recopilación de información se agregan periódicamente a un archivo de datos actual. Debido a que este archivo puede llegar a ser bastante grande, en realidad mantenemos un conjunto de archivos de datos donde los archivos están vinculados entre sí. Se proporciona un servidor separado para identificar el archivo actual para una hora de inicio determinada, para crear nuevos archivos a medida que los archivos de datos se vuelven demasiado grandes y para vincular los archivos entre sí. Este servicio se iniciará automáticamente (si aún no se está ejecutando) en una máquina en Brown.

Red

En el corazón de este proyecto se encuentra el sistema TAIGA. Cuando ejecute el visualizador, también estará ejecutando el kernel TAIGA en su máquina. Taiga utiliza el paquete JXTA peer-to-peer para proporcionar comunicación entre los distintos núcleos y servicios. En el inicio inicial probablemente verá (al menos por ahora) un cuadro de diálogo de configuración de JXTA. Si las cosas están funcionando, basta con hacer clic en Aceptar. Si está familiarizado con jxta, siéntase libre de modificar las distintas configuraciones. Usando JXTA, webview debería poder ejecutarse dentro de firewalls y en máquinas de arbitray. Si desea obtener un registro del kernel TAIGA mientras se ejecuta en su máquina, establezca la variable de entorno TAIGASHOW (en Windows) o establezca la variable de entorno TAIGALOG en la ruta completa de un archivo de registro apropiado.

Papeles

Aún no se ha escrito nada sobre este proyecto. Valoramos cualquier experiencia que tenga con él y agradecemos cualquier comentario por el momento (y si) escribimos un informe.

Realimentación

Este software es (muy) experimental. Hemos intentado realizar una variedad de instalaciones diferentes, pero solo tenemos una gama limitada de sistemas disponibles. Hay muchas cosas que pueden salir mal tanto en el kernel, en la aplicación, como en la red que une todo. Queremos arreglar las cosas, pero para hacerlo necesitamos saber qué no funciona (y posiblemente qué funciona). Agradecemos todos los comentarios, informes de fallos, sugerencias, comentarios, consultas, etc. Envíe un correo electrónico a spr@cs.brown.edu .

Software

Si se encuentra en ciencias informáticas de Brown, la última versión del software se puede obtener en / home / spr / tryview (Y: \ home \ spr \ tryview en windows).
Si está fuera de la red de Brown CS, puede obtener el software de nuestro servidor ftp en formato (tar.gz) o (zip) .
La instalación es simple: descargue y amplíe el software. Ejecutarlo también es simple: simplemente ejecute el script runview (o runview.bat en windows) para obtener el visualizador (para ejecutar solo el software de monitoreo use los scripts runspy).
Otra vez. Para descargar el software:

Bateando un objeto al objetivo

Source URL: http://robotics.cs.iastate.edu/ResearchBatting2D.shtml

Golpear un objeto en vuelo, como una pelota o un cuadrado, a una ubicación de destino es una maniobra hábil que requiere mucha práctica para que un ser humano aprenda. Para un robot, esta tarea desafía su detección, planificación y control en la medida en que se requiere una coordinación total en tan solo una fracción de segundo. La tarea consiste en lanzar un objeto contra un brazo robótico de dos eslabones con un bate adjunto y planear el movimiento del brazo para golpear el objeto a lo largo de una trayectoria, hacia el objetivo.

La dinámica de impacto modela el cambio en el movimiento del bate y el objeto, que produce un estado posterior al impacto del objeto que se puede evaluar sujeto a la restricción de volar al objetivo. En este trabajo, se considera el impacto bidimensional, en el que las trayectorias del brazo y el objeto del robot se limitan a un plano vertical. Luego se desarrolla una solución al problema del impacto inverso, en el que una trayectoria deseada del objeto después del impacto a través del objetivo conduce a un cambio deseado en su movimiento durante el impacto, y finalmente al movimiento de bateo necesario para producir el cambio. El siguiente video muestra los resultados de varias instancias de bateo.

El sistema de bateo

Para ejecutar con éxito la tarea de bateo, se deben realizar varios componentes adicionales del bateo, como la cinemática del manipulador, la mecánica de vuelo y la estimación del movimiento del objeto. La siguiente figura ilustra cómo estos componentes trabajan juntos en nuestro sistema de bateo:

Se considera la mecánica de proyectil de cada objeto, donde los efectos aerodinámicos de arrastre y Magnus se aproximan de la estimación de estado y se usan para predecir la trayectoria del objeto antes y después del impacto. Además, la cinemática del brazo robótico junto con Impact Dynamics contribuye con restricciones al algoritmo de planificación de movimiento, que continuamente genera una trayectoria conjunta deseada al brazo robótico.

Estimación de movimiento

La visión por computadora es un componente esencial de la tarea de bateo que es necesaria para que el robot perciba la posición y orientación del objeto mediante el procesamiento de imágenes desde una cámara, mientras que la estimación del movimiento es necesaria para rastrear las velocidades del objeto. Un estimador de movimiento híbrido se implementa empleando el ajuste de mínimos cuadrados de la orientación del objeto, y un filtro de Kalman extendido que considera las fuerzas aerodinámicas de arrastre y Magnus. La aerodinámica involucrada permite una predicción precisa de la trayectoria de la posición del objeto antes y después del impacto, lo cual es crucial para que el robot ejecute la tarea con una tasa de éxito respetable. Mientras tanto, el ajuste de mínimos cuadrados de la orientación del objeto proporciona una estimación de la velocidad angular una vez diferenciada. Esto compensa la falta de un modelo de velocidad angular,

Impacto de la fricción en 2D

El impacto entre el bate y el objeto se modela con impulso mientras se considera la ley de fricción de Coulomb. Se utiliza la restitución basada en la energía, de modo que durante el corto período de impacto, la energía cinética se transfiere parcialmente entre el bate y el objeto, y se pierde parcialmente por el calor, la luz, el sonido y otras formas de energía. Además, con la fricción considerada de acuerdo con la ley de Coulomb, el estado de contacto entre los dos objetos cambia dependiendo de sus velocidades y parámetros físicos, lo que da como resultado una combinación de objetos que se deslizan, se pegan y se invierten. La siguiente figura muestra un momento de impacto, así como dos casos diferentes de impacto en términos de sus curvas de impulso. Los objetos inicialmente se están deslizando, donde en el primer caso, se convierten en adherencia, y en el segundo caso, se desplazan hacia el deslizamiento inverso.

Planificación de impacto

La planificación del movimiento del brazo del robot consiste en determinar la posición y la velocidad del murciélago para satisfacer el impacto deseado, trasladarlos a posiciones y velocidades conjuntas a través de la cinemática inversa, y repetir este proceso para mantener el movimiento del robot actualizado y preciso. Además, durante el movimiento del brazo se debe garantizar que el robot no exceda los límites de posición, velocidad y aceleración de sus articulaciones. Estas restricciones combinadas con otras suman un total de dieciséis restricciones en el espacio de estados de brazo que pueden completar la tarea. Muchas de estas restricciones se propagan a lo largo de múltiples ciclos del algoritmo a medida que las trayectorias de la articulación del brazo se juntan para formar una spline de polinomios quárticos.

Para más información, nos remitimos a los siguientes artículos:

Un proceso para el diseño de datos XML

Jugadores claves. Jugadores principales

Estos son los actores clave en el desarrollo de un diseño de datos xml :
  • Expertos en la materia ( SME s) : son personas que son expertos en un tema (dominio), pero no son necesariamente expertos en las tecnologías empleadas para implementar el dominio.
  • Expertos en tecnología ( TE s) : estas son personas que son expertos en tecnologías, pero que no son necesariamente expertos en el tema.
  • Facilitador : esta persona es responsable de que se escriba la especificación de los datos. Él es un te de negocios No se requiere experiencia en el dominio. Esta persona debe ser cómodo llevar una discusión acerca de procesos y datos, debe ser experto en ocultar la complejidad de XML al mismo tiempo exponer la jerárquica, cardinalidad, y los aspectos básicos de tipos de datos de los requisitos de datos que son intuitivas para PYME s.
  • Usuarios, personas orientadas a los negocios : son usuarios de aplicaciones que utilizarán los datos, junto con personas de negocios.
A continuación se muestra una secuencia de pasos (es decir, un proceso) para crear un diseño de datos xml .

Paso 1: Crear una especificación de datos

Una especificación de datos es un documento, escrito en prosa, que describe los datos y las relaciones entre los datos. Todas las implementaciones de datos - XML esquemas , schematron , Relax NG , dtd s, y otros - deben derivar de la especificación de datos. Además, todas las implementaciones de datos deben ser rastreables hasta la especificación de datos. Una especificación de datos es la especificación autorizada de los datos .
Los datos que están documentados por una especificación de datos pueden destinarse para su uso como un formato de intercambio de datos o para su uso en la gestión de datos dentro de una aplicación. Una especificación de datos se centra en los datos, no en procesos o arquitectura. Los detalles de cómo los datos se ajustan a la arquitectura general del flujo de datos del sistema se encuentran en otros documentos. Dicho esto, una especificación de datos es más que una simple lista de datos y definiciones (es decir, un diccionario de datos). Una especificación de datos contiene descripciones de cómo los datos se adaptan al sistema en general, tiene muchos ejemplos de cómo se utilizan los datos y muestra formas de muestra de los datos.
Al crear una especificación de datos, es importante obtener entradas de un conjunto diverso de personas. Diferentes personas tienen diferentes perspectivas sobre los datos. Nunca asuma que cualquier persona tiene el cuadro completo. Obtenga entradas de smes, te s, usuarios de aplicaciones que utilizarán los datos, así como de personas de negocios.
El primer paso para crear una especificación de datos es que el facilitador para reunir a las PYME s, te s, usuarios y personas de negocios con el fin de crear una especificación de datos. Aunque los "procesos" están fuera del alcance de una especificación de datos, a veces es importante ponerse de acuerdo sobre los procesos antes de discutir los datos. Por el contrario, a veces, discutir los datos primero ayuda a las personas a reconocer un problema de alineación del proceso.
El facilitador entrevista a los sme s. El te escucha las discusiones para ponerse al día en el dominio. Él puede ser capaz de proporcionar alertas tempranas de posibles problemas de implementación. Los usuarios y la gente de negocios mantienen la reunión basada en las necesidades prácticas de la aplicación. El facilitador escribe la especificación de datos; idealmente, está escrito en tiempo real, con todos en la reunión mirando en un retroproyector (o, si es una reunión virtual, todos ven el documento escrito en la pantalla de su computadora).
Al desarrollar la especificación de datos, es importante tener cuidado con la terminología holgada y ambigua. La especificación de los datos debe proporcionar una prosa clara e inequívoca que describa los datos.
Evite las discusiones de rendimiento. Eso pertenece a otra actividad, no a esta.
Dependiendo de la cantidad de datos que se especifiquen, puede llevar solo unas horas crear una especificación de datos, o puede tomar varios cientos de horas.
Las pymes, los usuarios, los empresarios, los facilitadores y los facilitadores colaboran para crear una especificación de datos.

Ejemplo: una especificación de datos del libro

Un facilitador entrevista a un experto en libros (es decir, un sme de libro ), a medida que los asistentes , los usuarios y las personas de negocios intervienen. El resultado es una "especificación de datos del libro". Es un documento detallado y completo, que contiene prosa sobre lo que es un libro y los datos que caracterizan a un libro y las relaciones entre los datos. Aquí hay una tabla que resume de manera sucinta los datos y la jerarquía del dominio del libro:
Libro
    Autor ..... Cadena
    Título ...... Cuerda
    Fecha ....... año
    ISBN ....... Secuencia de dígitos, guiones y 'x'
    Editor .. Cadena

Paso 2: crear una o más implementaciones a partir de la especificación de datos

El te vuelve a leer cuidadosamente la especificación de los datos para asegurarse de que tiene una comprensión completa. A partir de él, crea una o más implementaciones, junto con ejemplos de documentos de instancia xml . Por ejemplo, puede crear un xml esquema más un schematron esquema. O bien, puede crear un esquema rdf .
Una implementación puede o no ser una asignación 1: 1 de la especificación de datos. Por ejemplo, una especificación de datos puede describir los datos en un formato tradicional entre padres e hijos, mientras que la implementación puede ser un gráfico rdf . O bien, una implementación puede incorporarse a una actividad más amplia que requiere una generalización de los datos. Por ejemplo, los datos de libros que se especifican en una especificación de datos de libros pueden incorporarse a un formato de intercambio multimedia más grande, tal vez requiriendo que "Libro" se generalice a "Producto".
Si no hay una correspondencia 1: 1 entre una implementación y la especificación de datos, entonces debe haber una manera de mapear entre la implementación y la especificación de datos. Esto es importante para la trazabilidad.
El te debe tener en cuenta los tipos de procesamiento que se espera que las aplicaciones realicen en los datos. Ciertos diseños de datos pueden hacer que el procesamiento sea horriblemente ineficiente, mientras que otros diseños pueden hacer que el procesamiento sea muy eficiente.
TE crea esquemas XML, esquemas de Schematron e instancias XML

Ejemplo: Libro XML Schema y XML instancias

La especificación de los datos del libro se entrega a un te para que cree unaimplementación de datos xml ; específicamente, un esquema xml .
El esquema xml declara un elemento <book> que se compone de elementos <author> , <date> , <isbn> y <publisher> . Los ejemplos de documentos de instancia xml se crean y validan contra el esquema.

Paso 3: Revisar la implementación

El te muestra y describe las instancias de implementación y de ejemplo xml al grupo ( sme s, usuarios, gente de negocios y facilitador). El grupo ahora puede ver cómo la especificación de los datos fue interpretada por el te y evalúa las estructuras resultantes. El te solicita una aclaración sobre los datos y las relaciones de datos que se encontraron poco claras durante el desarrollo de la (s) implementación (es).

Paso 4: Aclare y ajuste la especificación de datos

Sobre la base de las discusiones en el Paso 3, se realizan ajustes a la especificación de los datos.

Paso 5: Iterar

El te hace revisiones a la (s) implementación (es) en base a la especificación de datos actualizada, y crea nuevos ejemplos de documentos de instancia XML . Las nuevas implementaciones y las muestras se devuelven al grupo. Se realizan actualizaciones a la especificación de los datos.
Repita tantas veces como sea necesario.

Expresiones de gratitud

Gracias a las siguientes personas por su aporte a este documento:
  • Len bullard
  • Kurt Cagle
  • Marcus carr
  • Chin Chee-Kai
  • Roger Costello
  • Jonathan doughty
  • Fraser Goffin
  • Jeff Grief
  • Erick Hagstrom
  • Peter Hunsberger
  • Michael Kay
  • Robert Koberg
  • Franco manola
  • Bob Natale
  • Dave Pawson
  • Simon St. Laurent
  • B. Tommie Usdin
  • Jim Wilson

The Rise and Fall of Android Tablets

One of the most exciting stories in the modern tech industry is that of tablets. Back in 2010, when the touchscreen smartphone revolution ...