Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Andrey

#181

Indudablemente, la inteligencia artificial (AI, por sus siglas en inglés) es actualmente una de las áreas más interesantes en la investigación científica, mostrando avances sólidos en los últimos tiempos; ha sido tal el progreso alcanzado, que han surgido opiniones que aseveran que la AI podría representar una amenaza para la humanidad.

Un equipo de investigadores chinos, quiso abordar el tema de la potencial amenaza que representa la AI y creó un modelo estándar que compara y clasifica el coeficiente intelectual (IQ) de los sistemas de AI con respecto a la inteligencia humana.

Los investigadores encontraron que la AI de Google tenía un coeficiente intelectual de 47.28; el motor de búsqueda chino Baidu, registró una puntuación de 32.92; Bing de Microsoft fue medido en 31.98, mientras que Siri, de Apple, registró apenas 23.94, menos de la mitad del coeficiente intelectual del sistema de AI de Google.

Aunque el sistema de AI de Google es inteligente, su coeficiente es apenas comparable con el de un niño de seis años de edad, cuyo coeficiente intelectual promedio es de 55.5, e incluso mucho menor que el de un joven de 18 años, que en promedio registra un coeficiente intelectual de 97.

Estas puntuaciones de IQ no parecen dar credibilidad a las preocupaciones expresadas por Elon Musk, acerca de la amenaza que representa la AI en la continuidad de la humanidad.

Ciertamente, la metodología de medición utilizada en este estudio (von Neumann arquitecture), es sólo una entre muchas, tal como advirtieron los investigadores. Pero esta misma metodología mostró que la AI de Google tenía un coeficiente intelectual de 26.5 en el año 2014, mientras que Microsoft tenía un 13.5, lo que significa que en los últimos dos años, el nivel de coeficiencia intelectual de estos sistemas, ha aumentado considerablemente.

Este resultado era previsible y no debería generar sorpresas; los sistemas artificialmente inteligentes se construyen para aprender continuamente, y como DeepMind de Google ha demostrado, se están registrando importantes avances en ese sentido.

Google incluso ha entrenado el sistema para tener una imaginación, y dar sentido a su entorno. Este avance se ha logrado gracias a que Google, Microsoft, Apple, así como Amazon, están realizando fuertes inversiones en la investigación y desarrollo de Inteligencia Artificial.

Por lo tanto, se espera tener sistemas de AI y asistentes virtuales más inteligentes en un futuro próximo.

Los teléfonos inteligentes de hoy en día están alimentados por algoritmos de aprendizaje automático, que trabajan para optimizar la usabilidad y el rendimiento, a fin de mejorar la experiencia del usuario, lo cual en buena medida es un ejemplo de cómo los sistemas de AI pueden facilitar las acciones cotidianas.

Si bien podríamos estar utilizando estos asistentes virtuales para realizar tareas bastante simples, pronto encontraremos estos ayudantes aún más útiles. Algunas empresas de AI están incluso trabajando en el desarrollo de asistentes virtuales que puedan percibir las emociones, lo que haría la interacción más natural y agradable.

A medida que la tecnología continúa desarrollándose, es probable que los asistentes virtuales desempeñen papeles más pronunciados en nuestras vidas. Probablemente en un futuro no tan lejano, se pueda tener una relación similar a la de Tony Stark con Jarvis.




Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#182
La profundización iterativa es casi libre debido a la naturaleza exponencial del problema. Esta realmente ayuda cuando se tiene un juego como aislamiento como el factor de ramificación violentamente variable. Cuando se calculó que solo debemos ir nueve niveles de profundidad en un árbol de aislamiento de cinco por cinco y dar una respuesta de dos segundos. Hemos asumido un factor de ramificación ocho. Sin embargo, hacia el final del juego, los jugadores de aislamiento solo tienen un par de movimientos disponibles. Podríamos ser capaces de buscar mucho más profundamente en el final del juego.

El final del juego es precisamente el momento que desea buscar más profundamente, para que pueda ver lo que sucederá.
Por otro lado el comienzo del juego, el factor de ramificación es bastante grande. Nuestro jugador de la computadora podría no responder en dos segundos.

Significa profundización iterativa que nuestro jugador de la computadora siempre tiene preparada una respuesta en caso de que se agote el tiempo y se pueda buscar en la medida de lo posible dentro de sus limitaciones de tiempo. Hemos limitado nuestro tiempo a dos segundos por jugada. Sin embargo en algunos juegos, como el ajedrez de velocidad, limitamos el tiempo total que un jugador puede tomar durante todo el partido. En estas situaciones, nuestro jugador de la computadora va a querer buscar más profundo en algunas partes del juego.

A menudo, podemos crear estrategia para la profundidad que queremos buscar.  Algo así como tener un libro de jugadas iniciales estándar para el principio del juego a continuación buscar más profundo en el medio y utilizar menos tiempo en el final. Basándose en la reducción y factor de ramificación y profundizar permitir todavía que nuestro jugador de la computadora iterar para poner fin al juego o tan profundo como pueda, dado el tiempo restante.

O es posible que desee tener una cantidad conservadora de tiempo que dedicamos por jugada y el uso de profundización iterativa y búsqueda de reposo para determinar los pocos movimientos que queríamos pasar más tiempo buscando.

Todas esas son grandes estrategias, pero todavía podemos tener problemas debido a algo que se llama el efecto horizonte.


Un desafío que queda en hacer que nuestro jugador de la computadora situaciones en las que es obvio para un jugador humano que el juego se decidirá en el siguiente movimiento, pero que el jugador de la computadora no puede buscar lo suficiente lejos a futuro para averiguar el problema.

Esta situación se conoce como el efecto horizonte.

De un vistazo a este tablero de aislamiento.

Es el turno de "O", Que movimiento debe tomar?



Tan pronto como "O" se mueve en diagonal hacia abajo y dejado uno, "X" solo tendrá seis movimientos en comparación con "O" de siete. A continuación "O" va a ganar.

Pero ese es el movimiento 13 y se mueve en el futuro. ¿Cómo darse cuenta de eso?

"X" será boqueado en el lado equivocado de una partición y no será capaz de alcanzarlo, ambos jugadores tendrán que rellenar el resto del tablero de juego de manera eficiente con el fin de tener una oportunidad de ganar.

Esa es una observación que nuestro jugador de la computadora no puede ver. Recuerde cuando empezamos a hablar de tener dos segundos para hacer un movimiento, dijimos que nuestro jugador de la computadora solo debe mirar hacia adelante nueve movimientos. No va a ver el final del juego que viene, pero con la profundidad iterativa podría ser capaz de ir más profundo. El factor de ramificación hacia el final del juego es mucho más pequeño. Sin embargo, imaginemos que tenemos todo listo para alcanzar la penúltima profundidad de nuestro árbol de búsqueda en el tiempo que tenemos. Tenemos que evaluar la bondad de las ramificaciones de este nodo.

Ciertamente no es el movimiento ganador. La función de evaluación volverá tres para el movimiento ganador, pero puedo ver un par de movimientos que sería preferido.
Ir todo el camino hacia la derecha da un cinco.


Y adelantándose en diagonal a la izquierda y abajo dos espacios da un seis, sin embargo, ambos de estos movimientos se traducirán en una pérdida.


Ir a la derecha o del lado equivocado de la partición, hacia la izquierda "O" para crear una partición con aun menos movimientos.

Tal vez deberíamos incluir una verificación en la función de evaluación para ver si una partición está formada por el siguiente movimiento. Y si es así, comenzar a contar la cantidad de movimientos que restan al jugador.

Es una gran idea pero va a costar que nuestra función de evaluación va desde una función muy sencilla de calcular a algo que puede implicar una gran cantidad de conteo. Simplemente contando el número de cuadros contiguos que un jugador puede utilizar se asemeja a la búsqueda niveles más abajo en el árbol de búsqueda.

Sabemos que es mucho tiempo.

El punto es que solo se duplicó la cantidad de tiempo que toma la función de evaluación. Ese tiempo se multiplica exponencialmente debido al factor de ramificación como la búsqueda más profunda.

Las funciones de evaluación no siempre valen la pena, depende el juego. Cambiar las reglas del aislamiento poco puede cambiar drásticamente si se trata de utilizar una función de evaluación simple y buscar más profundo. O utilizar una función de evaluación complicada que capture estas situaciones peligrosas.


#183

HP dejó que Rusia revisara el código fuente del software de defensa que utiliza el Pentágono

Fuentes cercanas relacionadas con el asunto y los récords regulatorios de Rusia muestran que HP permitió a una agencia rusa de defensa revisar el funcionamiento interno del software de defensa que utiliza el Pentágono para proteger sus redes.

Según el reportaje especial de Reuters, se trata del sistema llamado "ArcSight" usado al centro de la ciberseguridad de la mayoría de los cuerpos militares de los Estados Unidos y que sirve para alertar cuando los sistemas computarizados han sufrido un ataque.

Según los récords a los que pudo acceder Reuters, y según una vocera de la empresa, a Rusia se le permitió examinar el código fuente de ArcSight junto a las instrucciones internas del software, como parte del esfuerzo de HP para ganar la certificación necesaria para vender el producto en el sector público ruso.

El software también es usado ampliamente en el sector privado. ArcSight fue adquirida por HP en el 2010 por 1500 millones de dólares, para ese entonces tenía más de 1000 clientes. ArcSight se fusiono con Micro Focus en septiembre de 2017, antes era conocido como HPE Software.

Antiguos agentes de inteligencia estadounidenses, ex-empleados de ArcSight y expertos de seguridad independientes dicen que esta revisión del código por parte de los rusos podría ayudarlos a encontrar puntos débiles en el software, y sería una potencial ayuda para lanzar un ciberataque contra los cuerpos militares en Estados Unidos.

ArcSight es usado por el ejercito, la fuerza aérea, y la marina estadounidense. Además es usado para proteger la red secreta de Internet que usa el Pentágono para intercambiar información clasificada.




Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#184
¿Qué es la profundización iterativa?

Volvamos a nuestro problema de hacer que nuestro equipo responda a un oponente en dos segundos o menos. Antes, se calculó la profundidad máxima que pensamos que podíamos buscar en el tiempo sin peligro.

Con la profundización iterativa, vamos a hacer algo más simple. Vamos a buscar el nivel 1 y obtener una respuesta para lo que creemos que es el mejor movimiento.


Vamos a mantener esa respuesta en caso de que se nos acabe el tiempo.
Pero vamos a empezar el proceso de nuevo e ir al nivel 2 en esta ocasión.


Si terminamos buscando Nivel 2 antes de que acabe el tiempo, vamos a seguir su mejor movimiento y reiniciar la búsqueda pasando al nivel 3.


Vamos a seguir haciendo este proceso hasta que se nos acabe el tiempo y a continuación, volver a nuestra mejor respuesta.

Entonces se necesitaría hacer lo mismo para determinar la inactividad, por que básicamente la quiescencia es un buen efecto secundario. Sorprendentemente, profundización iterativa es no perder mucho tiempo. Debido a la naturaleza exponencial del problema, la cantidad de tiempo está dominado por el último nivel buscado.

Veamos un caso de profundización iterativa en un árbol con factor de ramificación de 2.
A nivel 0, solo un nodo se busca.
En el nivel 1 tocamos este primer nodo de nuevo y luego miramos a los dos nodos secundarios. Hemos tenido que explorar tres nodos de nivel 1, además de un nodo desde el nivel 0. Por lo tanto, nuestro total de nodos de profundización iterativa, es 4.

En el nivel 2, añadimos cuatro nodos a la parte inferior del árbol. Para agregar estos nodos, estamos buscando en el 3 por encima de ella, así como para un total de 7 para este nivel. Adición de nivel 2 en nuestro recuento actualizado es de 11 nodos de profundización iterativa.

En el nivel 3, que tenía 8 nodos más, examinamos 15 nodos para este nivel en total. Nuestro total de profundización iterativa es ahora de 26.


Saber que cada nivel, la suma total de nodos visitados y revisados por profundización iterativa es en realidad bajo dos veces el número de nodos expandido en este nivel.
Una búsqueda en profundidad limitada al nivel 4 examinaría 31 nodos, pero del total de profundización iterativa seria 57.

La profundidad limitada al nivel 5 sería de 63 nodos y la profundización iterativa seria 120.
Mientras investigaba el árbol puede parecer una pérdida en la práctica. Es un pequeño multiplicador en comparación con el aumento exponencial de buscar cada nivel más profundo.

Con un factor de ramificación de 2, la profundización iterativa se expande menos de dos veces el número de nodos a una profundidad, la búsqueda limitada lo hubiera hecho en el mismo nivel.
Cuando el factor de ramificación es mayor que 2, como en la mayoría de los juegos, a continuación, la redundancia causada por profundización iterativa es aún menos.

Ahora vamos a considerar un árbol con un factor de ramificación de tres.
¿Cuantos nodos son visitados a nivel cero, uno, dos, tres y cuatro?
También el número de nodos del árbol visitados por profundización iterativa.





Intente resolverlo antes de continuar...







Recuerde que cuando el factor de 2, tuvimos 2^d+1-1 nodo en el árbol.
Ahora con el factor de proyecto de tres, tenemos 3^d+1-1 sobre dos nodos del árbol.
Vamos a seguir adelante y generalizar esto.


Para un factor de k, las formulas k^d+1-1 sobre k-1 para el numero de nodos en el árbol.


#185

Hoy en día existen una gran cantidad de tipos de malware diferentes. Algunos de los tipos más conocidos son, por ejemplo, los troyanos que buscan robar datos de las víctimas o abrir una puerta trasera que permite al pirata tomar el control del sistema o el ransomware, que secuestra los datos de los usuarios y le obliga a pagar por recuperarlos. Sin embargo, las técnicas utilizadas por los piratas informáticos para sacar beneficio de los usuarios son de lo más curiosas, lo que nos hace ver tipos de malware, como los "Faceliker", que se aprovechan de nuestras redes sociales para obtener su beneficio.

Hoy en día, las redes sociales funcionan también como plataformas publicitarias de manera que, mientras que nosotros las utilizamos, estas nos van conocimiento, van conociendo nuestros gustos e intereses y, a la hora de mostrarnos cierto contenido, lo hacen de contenido que nos interese y del que haya mayor probabilidad de interactuar con él.

Esto ha hecho que el malware del tipo "Faceliker" gane mucha popularidad entre los usuarios. Este tipo de malware no es nuevo, sin embargo, las empresas de seguridad han detectado un aumento considerable en el segundo trimestre de 2017 hasta el punto de que el 9% de todo el nuevo malware es de este tipo.

El funcionamiento del malware "Faceliker" es muy simple. Este tipo de malware suele esconderse en extensiones maliciosas para los principales navegadores de manera que, desde allí, puedan tomar el control del mismo. De esta manera, cuando el usuario navega por páginas web o a través de la red social, la extensión carga código JavaScript para hacer "Me Gusta" en determinados artículos y contenidos. De esta manera, la extensión modifica nuestro algoritmo para promocionar, por ejemplo, determinados medios, noticias falsas y otro tipo de contenido.

Las últimas muestras de malware "Faceliker" detectadas, además, también ocultan otras amenazas, como, por ejemplo, módulos para robar contraseñas de las webs que visitamos o para inyectar publicidad que genere ingresos a los piratas informáticos.

Cómo protegernos del malware "Faceliker"

Una de las formas más sencillas de hacernos sospechar que estamos infectados por este tipo de malware es que la red social nos empiece a recomendar webs, artículos y productos que para nada sean de nuestro interés por culpa de que este malware haya modificado nuestros gustos en la red social.

Como hemos dicho, este tipo de malware se aprovecha de las sesiones iniciadas de Facebook para controlar los "Me Gusta" de realizados desde nuestra cuenta. Por ello, si cerramos sesión en esta red social, el malware no podrá interactuar con estos "Me Gusta" y modificarlos a su antojo. De todas formas, esta es una solución a medias ya que si el malware oculta, como hemos dicho, un módulo para robar contraseñas, este seguirá funcionando.

Como la mayoría de estas amenazas llegan a los usuarios a través de extensiones maliciosas, la mejor forma de protegernos es tener controladas las extensiones que tenemos instaladas e instalar solo extensiones que sean de total confianza, extensiones de desarrolladores conocidos y con un buen número de comentarios y votos positivos, evitando así que los piratas informáticos puedan hacer de las suyas.




Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#186
Vamos a probar en el juego de Aislamiento.
Vamos a seguir utilizando el número de función de evaluación. Que puede tener una calificación máxima de cinco y una calificación mínima de cero.

Si nos encontramos con una ramificación en la que pierde nuestro jugador de la computadora, vamos a darle un valor de -1.
Si nos encontramos con una ramificación en la que gana nuestro jugador, vamos a darle una puntuación de 100.

Con este ejemplo del juego de Aislamiento en el nivel uno, el número de mis movimientos en la función de evaluación recomendaría los dos movimientos centrales y el movimiento arriba a la izquierda (los valores 4).
Cada uno de estos tiene decenas de cuatros.



En el nivel 2, los centros de movimientos son considerados los mejores con calificaciones de 3.



En el nivel 3, el centro de movimientos se considera peores.



Continua con el nivel 4, 5 y 6 respectivamente.




Después del nivel tres, hemos alcanzado un estado de quiescencia. Las ramas recomendadas no están cambiando mucho. Sabemos que estamos en buen camino.

El objetivo de limitar la profundidad de nuestra búsqueda y utilizar una función de evaluación era evitar la explosión exponencial del número de nodos que tenemos que examinar.
Con la búsqueda quiescencia tenemos que buscar el juego de tres por dos niveles y tal vez mucho más si los resultados están cambiando entre los niveles.

No tenemos que utilizar la búsqueda quiescencia todo el tiempo, si jugamos aislamiento mucho y vemos que la función de evaluación nos está dando resultados consistentes, entonces puede ser que no fastidie en absoluto.

Sin embargo, podríamos encontrar que en nuestras pruebas de que ciertas veces en el juego, tenemos que crear búsquedas de opciones en otras ramificaciones para darnos mejores resultados. Muchas veces eso es al principio del juego o al final de este. También se tiene otro truco que se puede utilizar llamado profundización iterativa, y que nos puede ayudar también.


#187

El malware en Android es cada vez más notorio, y Google toma nota. Por ello, creará una inteligencia artificial dedicada de forma exclusiva a acabar con el malware.

Hace un tiempo que llevamos viendo el malware avanzar en Android. Se están creando nuevas amenazas basándose en vulnerabilidades de nuestro sistema, y por ello los parches de seguridad son tan útiles hoy en día. No es para menos, teniendo en cuenta que Android es el sistema operativo más usado del mundo. Debido a estos movimientos Google estaría desarrollando una inteligencia artifical para acabar con el malware en Android.

Una IA creada por Google para combatir el malware

¿En qué consistiría esta inteligencia contra el malware? Dicho software incluiría un algoritmo de aprendizaje de Android. En cristiano vendría a significar que esta inteligencia aprendería de nuestro Android, analizando el comportamiento de nuestras apps instaladas y así entrenarse contra los malware que afecten dichos aspectos de nuestro sistema. Esta inteligencia iría integrado en las dos partes fundamentales de Android: los Google Play Services y la Google Play Store.

El encargado de la seguridad en Android, Adrian Ludwig hizo una mención en la conferencia Structure Security de San Francisco revelando que el objetivo final de esta medida es crear un sistema basado en una IA, capaz de detectar y eliminar automáticamente malware de los dispositivos que se halle en el código de sus aplicaciones. Se empezará a implementar en cuanto el sistema mejore lo suficiente para alcanzar un nivel de captación de malware adecuado.

La IA, cada vez más presente en nuestros móviles


Aunque parezca ciencia ficción, las inteligencias artificiales se están volviendo algo cada vez más común en Android. El ejemplo más próximo lo encontramos en Google Assistant, el próximo asistente virtual de la gran G. También podemos incluir en dicho ejemplo a otros como Alexa o Bixby y en otra índole Facebook M. Y esto es algo más habitual si cabe con el paso del tiempo. Y es muy logico.

Dichas IA suplen muchas de nuestras necesidades tecnológicas sin apenas esfuerzo. Al ser software, no necesitan descansar o esforzarse, por lo que podremos contar con ellas las 24 horas del día, los 365 días del año. Esto supone un ahorro tanto en recursos de los propios proveedores de software como un plus de accesibilidad hacia el usuario final. Dicho de modo rápido: les cuesta menos y es más fácil para nosotros.

Teniendo en cuenta que siempre aparecen nuevas maneras de introducir malware en un sistema tan extendido como Android, opino que quizás tardemos algo más de lo que nos gustaría en ver esta inteligencia artifical creada por Google destinada a erradicar el malware. Por supuesto que los avances tecnológicos facilitarán esta ardua tarea, pero aunque las IAs sean cada vez más habituales, siguen estando lejos de lo que nos imaginábamos en un principio. Por lo que nos tocará esperar y tener algo de cuidado y cabeza con el uso de nuestros dispositivos.




Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#188

Respuesta del ejercicio anterior.

Retroalimentación:

El nivel inferior es fácil de calcular, es solo el número de movimientos disponibles para el jugador "O", a continuación, el segundo nivel es un nivel máximo. Así que tomamos el máximo en cada nivel y lo propagamos a las ramificaciones superiores.

Ahora si tratamos de llenar los valores para todo el árbol Minimax. Utilizando los movimientos del nivel inferior y propagarlos hasta la parte superior del árbol Minimax.

Puesto que es demasiado y poco optimo mostrar todo el árbol aquí, vamos a utilizar una versión simplificada en su lugar.

Aquí están los valores que dan como resultado, no hay mucha variación aquí, pero hay un buen número de opciones.


Se pueden ver tres ramas que tienen un valor de 2, el jugador de la computadora probablemente tomara el movimiento a la izquierda de forma automática, por lo que vamos a tomar esta medida para empezar.

Recuerde que cuando tuvimos nuestro simple tablero de aislamiento de cinco movimientos y se realizaron búsquedas para terminar el juego.

Se encontró que el jugador siempre se ganaría menos que se trasladó a una del centro posicional primero.
La pregunta es ¿Nuestra función de evaluación de mis movimientos predice que ramificación dará lugar a una victoria y cuáles van a llevar a una derrota?
Así es.

¿Qué ocurre si hacemos lo mismo de propagar los movimientos, pero suponemos que solo se puede ir en dos niveles de profundidad en nuestro árbol de búsqueda?

Ahora vamos a suponer que solo podemos buscar al nivel dos de nuestro árbol Minimax.

Estos son los valores que obtenemos después de buscar hasta el nivel dos de nuestro árbol de juego. Podemos ver que los valores son significativamente diferentes de cuando se buscaron los valores hasta el nivel tres.


Anteriormente se hubieran elegido uno de los tres nodos con el valor 2, por que se recibia de ellos el valor más alto en nuestra función de evaluación.

Sin embargo, después de solo buscar al nivel dos, vemos que en realidad son los otros nodos los que reciben un valor más alto en nuestra función de evaluación.

Por lo tanto en este caso, nuestro jugador de la computadora podría elegir uno de los dos movimientos con el valor de "3", y si se toma el movimiento de la izquierda primero, elegiría el primer movimiento con 3 en valor máximo (la segunda ramificación), el cual, es una elección diferente de lo que hubiera hecho después de subir al nivel tres.
Con el límite de profundidad de dos, obtenemos un resultado muy diferente que con el límite de tres.
En el nivel dos, el centro perdedor mueve. Ambos tienen puntuaciones de tres, mientras que los movimientos ganadores tienen puntuaciones más pequeñas.

Esto no significa que nuestra función de evaluación es mala, puede significar que no estamos buscando la profundidad suficiente para obtener buenas respuestas.
Una forma de comprobar es ver que se ramifica el algoritmo Minimax recomienda en cada nivel de búsqueda. Si los resultados varían ampliamente entre ciertos niveles, puede ser debido a una decisión crítica que se está haciendo en esos niveles.


#189

Los linuxeros jamás se rinden: Librem 5 es el smartphone que quiere luchar con Android e iOS

El dominio de Android e iOS en el segmento de la movilidad es absoluto, y no parece haber sitio para un tercer jugador. Ni siquiera Microsoft con Windows Phone (al menos, de momento) logró cuajar en un mercado ya muy maduro y que parece no querer (o no necesitar) otras alternativas.

Y sin embargo los amantes del Open Source parecen aspirar a esa posibilidad. El proyecto Librem 5 tiene como objetivo crear un smartphone basado en Linux y en el que los entornos KDE y GNOME tendrán una participación que podría ser crucial. Los responsables de esta pequeña utopía lo tienen todo en contra, pero... ¿y si tuvieran éxito?

KDE y GNOME como claves de la interfaz

La idea de este smartphone llamado Librem 5 ya lleva tiempo formulándose, pero sigue siendo igual de singular: permitir utilizar en él diversas distribuciones como Debian, Arch Linux o Ubuntu, y hacerlo además con la ayuda de una interfaz gráfica de usuario que dependería o bien de KDE o bien de GNOME.

Los dos entornos de escritorio (de sobremesa) más conocidos y populares en el mundo linuxero han querido mostrar su apoyo a la idea y de hecho llevan tiempo acercándose al móvil. KDE y su Plasma Mobile ha mostrado sus capacidades en dispositivos móviles con anterioridad con una interfaz que trata de adaptar lo conseguido en el escritorio al entorno del smartphone.

Lo mismo quiere GNOME, cuyos responsables también anunciaron que su intención era la de crear emuladores y herramientas para ese hipotético dispositivo que, si tiene éxito, serviría como base para hacer también esa adaptación del entorno GNOME actual a dispositivos móviles.

Privacidad por bandera

Además de ofrecer una plataforma software Open Source, otra de las claves del proyecto es la defensa de la privacidad. Según sus creadores no habrá datos compartidos con terceras partes, y tampoco habrá seguimiento alguno de la actividad de los usuarios.


El cifrado de las comunicaciones se realizará a través de la plataforma abierta Matrix, y en el soporte de todo tipo de redes móviles (incluida la tecnología 4G/LTE) habrá otro elemento diferencial: la CPU no estará mezclada con el módem banda base, lo que también contribuirá a proteger la privacidad de los usuarios.

Más interesante aún pueden ser los interruptores hardware que permitirán desactivar en cualquier momento la cámara, el micrófono, la conectividad WiFi o Bluetooth y también el módem de banda base para evitar cualquier tipo de seguimiento.


La elección del hardware no está del todo detallado aún, pero sí sabemos que el Librem 5 contará con una pantalla de 5 pulgadas y un procesador i.MX6/i.MX8.

Esas especificaciones aún no finales se completan con 3 GB de memoria, 32 GB de capacidad de almacenamiento ampliables, conectividad WiFi 802.11 (no se especifica si n o ac) y Bluetooth 4 y, cómo no, el conector de auriculares.

Un proyecto ambicioso con todo en contra

La idea del Librem 5 es la de ofrecer aplicaciones HTML5, o lo que es lo mismo, aplicaciones web. Es lo mismo que propuso Canonical con Ubuntu Touch, una plataforma que tras años de desarrolló acabó demostrando no poder competir con Android, iOS y otras propuestas. Eso sí, no descartan la futura emulación de aplicaciones Android.


De hecho Canonical acabó tirando la toalla hace pocos meses para apartarse definitivamente de aquel proyecto mágico que hubiera tenido en el Ubuntu Edge su gran representante.

¿Podrá el Librem 5 triunfar allí donde Ubuntu Touch fracasó? Lo cierto es que lo tiene francamente complicado. Otras alternativas destacadas han fracasado igualmente o han acabado teniendo un papel anecdótico en el mercado (Firefox OS, Sailfish, Tizen) tras años de lucha, y parece que solo un milagro sería capaz de llevar esta idea del Librem 5 a buen puerto.


De momento el primer paso de ese milagro está algo más cerca. La campaña de financiación colectiva organizada por Purism ha conseguido 658.000 dólares de los 1,5 millones que se buscan para llevar a cabo la idea. El móvil, eso sí, no será barato: 599 dólares que permitirán disfrutarlo a partir de enero de 2019.




Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#190
Diferencias entre realidad aumentada, realidad virtual y realidad mixta



Diferentes empresas de software y hardware están apostando por soluciones de realidad aumentada, realidad virtual o realidad mixta. Como el que se esté trabajando en tres tipos de realidades puede ser confuso, hoy te vamos a explicar las diferencias entre ellas para evitar que las confundas, ya que tienen bastantes similitudes entre ellas.

A modo de resumen podríamos decir que la realidad virtual genera mundos totalmente inexistentes, la realidad aumentada combina elementos inexistentes con otros que sí están ahí, y la mixta es una mezcla entre ambas. Sin embargo, vamos a entrar más a fondo explicándote con detalle cómo funciona cada una de ellas.

Qué es la realidad virtual


La real virtual o VR se diferencia del resto por ser en la que te sumerges por completo en un mundo virtual. Esto quiere decir que te permite simular una experiencia sensorial completa dentro de un ambiente artificial sin que veas nada de lo que hay en el exterior. Para "meterte dentro" de este mundo virtual sueles necesitar tanto unas gafas especiales como unos auriculares.

Estas gafas tienen que estar especialmente diseñadas para esta realidad, y tener una pantalla que se monte justo delante de tus ojos. Hay dos tipos de gafas, las que tienen su propia pantalla incorporada como las Oculus Rift o las que necesitan que incorpores un smartphone para hacer de pantalla, como por ejemplo las Gear VR de Samsung.


Por lo general, cuando tienes unas gafas en las que la pantalla es el propio móvil, el smartphone también hace las veces de ordenador gestionando todo lo que ves. El resto de modelos suelen conectarse a un ordenador portátil o de sobremesa para que sean ellos quienes se encargue de cargar y mover el entorno virtual.

Las gafas de realidad virtual te cubren los ojos de manera que sólo puedas ver lo que hay en pantalla. Tienen unos sensores que reconocen el movimiento de tu cabeza, de manera que cuando la gires hacia un lado hagas el mismo movimiento dentro del mundo o menú virtual en el que estás. Además de las gafas también, es recomendado tener unos auriculares para conseguir una experiencia más inmersiva.


Con todo, cuando estés utilizando unas gafas de realidad virtual, los auriculares te ayudarán a orientarte sabiendo de qué dirección vienen los sonidos, mientras que moviendo la cabeza puedes moverte también dentro del mundo virtual. Algunos modelos incluyen un mando con el que interactuar apuntando dentro del entorno virtual o activar los objetos o menús.

Qué es la realidad aumentada


La realidad aumentada o AR se diferencia del resto por ser en la se complementa el entorno real con objetos digitales. Vamos, que ves todo lo que tienes a tu alrededor, pero el ordenador de el equipo que lleves frente a los ojos podrá reproducir sobre este entorno objetos, animaciones o datos que realmente no están ahí.

Esto permite, por ejemplo poder ver cómo quedaría un mueble en tu habitación, algo que ya están utilizando algunas empresas. Si te gustan los juegos, también te permite recorrer las calles de tu ciudad capturando con tu móvil unos Pokémon que realmente no están ahí.



Para crear este tipo de realidad medio real y medio digital pueden utilizarse gafas especialmente diseñadas para ello, cascos o las lentes de tu teléfono móvil. En el caso de las gafas piensa en las Google Glass, que tienen un cristal transparente para que veas lo que tienes a tu alrededor, pero pudiendo superponer información sobre cualquier objeto.

Tanto en el caso de las gafas como el de los cascos por lo tanto hará falta que haya una CPU que gestione la realidad virtual que se imprime sobre la real. Esta puede estar incluida en el dispositivo, pero también podría ser suficiente con conectarse a un ordenador externo que se encargue del trabajo. En cualquier caso, el punto en común entre gafas o casco es que tendrán que tener unas lentes lo suficientemente transparentes para ver tu entorno a través de ellas.


Por otro lado también puedes utilizar la realidad aumentada en dispositivos móviles como smartphones. Estos utilizan sus cámaras para mostrarte en pantalla los elementos físicos reales que estás viendo, pero también gestionan con sus procesadores elementos digitales que se reproduzcan de manera que parezca que estén interactuando con el entorno real. Un buen ejemplo de este tipo de aplicaciones es el juego de Pokémon Go, que popularizó hace unos meses la realidad aumentada.

Al estar interactuando las imágenes digitales con un entorno real, en este tipo de tecnología no es tan importante el tener unos auriculares estéreo. Tampoco son estrictamente necesarios los mandos ni métodos de control, aunque esto ya dependerá de cada aplicación y de cómo tengas que utilizarla.

Qué es la realidad mixta


La realidad mixta o MR es una mezcla entre la realidad virtual y la aumentada. Es por lo tanto un entorno que mezcla los mejores aspectos de ambas, unificando la experiencia para que sólo necesites un único casco o gafas para poder utilizar una u otra.

Por un lado la realidad virtual te permite sumergirte en mundos completamente digitales, mientras que la aumentada te deja imprimir objetos digitales en entornos reales. Por lo tanto, lo que hace la realidad mixta es unir ambos conceptos para permitirte interactuar con objetos reales dentro de un mundo virtual, estar totalmente inmerso en un mundo completamente virtual, o reproducir elementos virtuales en tu entorno real.



Para utilizar la realidad aumentada necesitas unos cascos cerrados. Estos tendrán una cámara, de manera que en la pantalla que tengas sobre tus ojos podrás ver o tu entorno real a través de la cámara o un entorno totalmente virtual. Los cascos, como en los anteriores casos, podrán tener una CPU interna o tener que estar conectados a un ordenador externo.

Aunque la realidad mixta ha sido casi la última en llegar, el empuje de empresas como Microsoft están apostándolo todo por ella y llevándola a Windows 10, lo que la democratizaría para que casi cualquiera pueda utilizarla.

FIN...




Esto si lo saque de una pagina...

Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#191

Las vulnerabilidades en los dispositivos que usamos a diario están a la orden del día. No existe el dispositivo que sea inmune a ataques, y ahora muchos de los que utilizan uno de los últimos chips de Broadcom para el WiFi son vulnerables, como es el caso del iPhone 7. Así lo ha desvelado Google Project Zero hace unas horas.

Otra vulnerabilidad en chips WiFi Broadcom permite hackear móviles de manera remota

Esta vulnerabilidad es relativamente fácil de explotar por un hacker de manera remota. Lo único que necesita saber es la dirección MAC del dispositivo a atacar. La vulnerabilidad fue descubierta el pasado mes de junio en el blog de Chromium bajo el título "Broadcom: OOB write when handling 802.11k Neighbor Report Response", y puede ser explotada en chips con firmware BCM4355C0 o anterior.

Gal Beniamini, descubridor de esta vulnerabilidad, ha publicado una prueba de concepto que funciona en iOS 10.2, y que funciona hasta versiones de iOS 10.3.3. A partir de iOS 11 en adelante no debería haber problemas porque Apple ya parcheó el problema. Sobre lo que no se han pronunciado es sobre si las versiones anteriores del sistema van a recibir el parche de seguridad.

Además de los iPhone, hay otros dispositivos que pueden estar en peligro, como móviles Android de alta gama lanzados a finales de 2016, así como incluso routers o televisiones Smart TV. El fallo, conocido como CVE-2017-11120, ha sido parcheado por Google en el parche de seguridad de septiembre para Android, por lo que sería muy recomendable que actualizaseis en cuanto vuestro fabricante haga disponible la actualización para vuestros móviles. Google calificó esta vulnerabilidad de "crítica".

Broadpwn funcionaba de una manera similar, y fue parcheada en julio
Esta vulnerabilidad es muy similar a la que se publicó el pasado mes de julio, llamada Broadpwn, y que afectaba a millones de móviles Android y iPhone. Esta vulnerabilidad permitía también hackear móviles de manera remota, y fue parcheada a mediados de julio por tanto por Apple como por Google.

Para facilitar la detección y parcheo de esta vulnerabilidad, Google publicado hoy esta información adicional para animar a que otros fabricantes parcheen el fallo. La ejecución de código de manera remota sin interacción del usuario es una de las vulnerabilidades más graves que podemos encontrar en un dispositivo, ya que permite a un atacante automatizar un ataque a miles o incluso millones de dispositivos sin moverse de su ordenador.

El problema de haber hecho pública una demostración de cómo funciona esta vulnerabilidad es que esto le da más pistas a otros hackers que pueden crear su propia herramienta de hackeo y explotar los cientos de millones de dispositivos que todavía no han recibido su correspondiente parche de seguridad, mientras que otros tantos no lo llegarán a recibir nunca.




Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#192
Diferencias fundamentales entre móvil y escritorio VR.

Hablemos rápidamente sobre las diferencias de alto nivel entre móvil y VR escritorio.
En primer lugar, los dispositivos móviles con VR se basan en un teléfono.
Utilizan su IMU para el seguimiento.

Debido a esto, móvil VR solamente tiene tres grados de libertad. Solo se puede realizar un seguimiento de la rotación de la cabeza, pero no su posición.

Mobile VR es sin ataduras, esto significa que no hay un hilo de conexión a los auriculares a un ordenador.

Esto es muy agradable ya que no tendrá nunca que enredarse en un cable mediante el uso de lentes.

Por último, móvil VR menos potente que el escritorio VR en términos de rendimiento gráfico.

Es pequeño hardware alimentado por una batería. Y por lo que tiene que optimizar más para hacer un gran VR móvil.

Comparemos esto con VR escritorio. En el escritorio, se obtiene un seguimiento completo 6 GDL.

Debido a que el procesamiento de gráficos está sucediendo en un ordenador de escritorio, los lentes están unidos mediante un cable. Esto significa que un cable largo se extiende desde el auricular al PC.

También debido a una computadora de escritorio se ejecuta el software de realidad virtual, usted tiene una gran cantidad de potencia de cálculo.


Esto significa que las simulaciones de realidad virtual, hablando en términos generales, pueden tener una mayor calidad visual.
Y por último, escritorio VR también a veces tiene controladores de mano, y él Vive Oculus táctil son ejemplos de esto.

Así que esas son las principales diferencias entre la actual generación de móviles y sistemas de VR de escritorio.
Ahora vamos a hablar de los diferentes tipos de plataformas de desarrollo de VR.


-Plataformas de desarrollo de VR

Hay dos formas principales de representación de los ambientes 3D. Se puede escribir código, o puede utilizar un entorno basado en editor gráfico. O puede hacer alguna combinación de los dos enfoques.

Un motor de juego es un marco de software que hace que sea más fácil desarrollar juegos. El objetivo es reducir el tiempo de iteración y los gastos generales tanto como sea posible. Es necesario tiempos de iteración cortos, debido a que gran parte de la realidad virtual requiere la experimentación rápida.

Simplemente no lo sabemos todo acerca de este medio. Es demasiado nuevo.
Motores de juego a menudo proporcionan un rendimiento de 3d, la física, sonido, scripting, gestión de activos en animación y mucho más.

En resumen, hay paquetes de herramientas que hacen más fácil la construcción de juegos y aplicaciones de realidad virtual.
Algunos de los motores de creación de VR son: Unity, Unreal Engine, CryEngine, Lumberyard y muchos más.





Muy bien, así con los motores de juego, también se puede construir VR con aplicaciones utilizando herramientas de desarrollo nativas como C++, OpenGL y DirectX.

Al momento de recoger estas herramientas, usted está construyendo su software de realidad virtual utilizando la materia prima. Materiales del mundo de gráficos por ordenador.

En lugar de utilizar un montón de herramientas y envases previos un motor de juego, desarrollo nativo requiere para integrar todos los componentes que desea utilizar.

El resultado en que se obtiene mucha más flexibilidad y es a menudo con un poco de mayor rendimiento, pero usted tiene el tiempo de desarrollo mayor.

Usted puede optar por construir una aplicación nativa cuando se necesita un altísimo datos de rendimiento de simulación intensiva como Occulus Medio.

O puede ser que construir una aplicación nativa cuando se necesita para construir un marco que los demás pueden utilizar para construir sus propias aplicaciones de realidad virtual pero para VR más desarrolladores, un motor de juego es la elección correcta para su proyecto.

También hay otra opción Desarrollo VR, con los navegadores web.
Creo que la web podría llegar a ser una gran plataforma para VR.
Por desgracia, WebVR no está lo suficiente bueno para su uso en producción.


Es posible que en el futuro este será uno de las plataformas de realidad virtual dominantes.
Pero por ahora, como desarrollador VR, nuestra principal elección es entre el desarrollo nativo, y el uso de un motor de juego.


#193
Cuantos nodos cree que el algoritmo Minimax tendrá que visitar en el árbol de juego.

Si se dio cuenta podemos aproximar el número de nodos de Minimax utilizando la formula b^d.
Donde "b" es el factor de ramificación promedio, y "d" es la profundidad media.

El factor de ramificación promedio parece ser alrededor de 8. Así que ahora obtendremos una estimación de 8 a 25 de los nodos.
Eso es aproximadamente de 10 a 22 de los nodos.
Eso significa que solo tenemos que esperar alrededor de 1,2 millones de años para obtener una respuesta.
Eso significa que tenemos que ser más inteligentes acerca de cómo hacer un jugador de computadora para jugar aislamiento.

El crecimiento exponencial del árbol de juego significa que no podemos hacer fuerza bruta, el problema y la búsqueda del final del juego con facilidad.
En general, los juegos más interesantes no se podrán buscar hasta el final.
O bien el factor de ramificación es demasiado grande, o la profundidad, o ambas.

Cuando el número de nodos, el cual se puede estimar por el factor de ramificación de la potencial profundidad, comienza a ser comparable con el número de segundos restantes en una vida del universo. Sabemos que estamos en problemas.

Esperar un jugador en un juego de ordenador para hacer un movimiento no es divertido
Después de dos segundos de espera un jugador humano es probable que empieza a pensar en otras cosas.


Realmente necesitamos una manera de elegir un movimiento rápido.
Vamos a suponer que una vez más podemos buscar diez a la novena nodos por segundo.


Así que en dos segundos en realidad podemos buscar dos veces diez a la novena nodos.
Así que tenemos que resolver la ecuación de ocho a la X es menos que dos veces diez a la novena.


Podemos hacer esto tomando logaritmo en base ocho en ambos lados.
Logaritmo en base ocho es bastante molesto.
Si, es tiempo para llevar a cabo algunas habilidades matemáticas.
Sabemos que el log de X es igual al log b^x sobre el log de b^a.


Así que podemos usar esa fórmula para resolver nuestro problema.
Vamos a utilizar logaritmo en base diez aquí por conveniencia.
Así que terminamos con X es menor que logaritmo en base diez de dos veces diez a la novena sobre logaritmo en base diez de ocho.


Y terminamos siendo X menos de 10,3

¿Asi que debemos estar bien si solo buscamos diez niveles de profundidad?
Siempre que nuestra estimación de un factor de ramificación de ocho años en promedio es bueno.
Para estar seguros vamos solo con la profundidad de nueve.
Esta idea no solo va tan lejos como pensamos que podemos para cumplir con seguridad nuestro plazo, se llama una búsqueda limitada de profundidad.


Muy bien pero ¿Que hacemos cuando lleguemos a nivel nueve de nuestro árbol de Minimax?
Aquí es cuando las cosas se ponen interesantes.
Queremos evaluar la bondad de un nodo en el nivel nueve sobre la base de lo mucho que esperamos que lleve a una victoria para nuestro jugador de la computadora.

Podemos crear una función de evaluación que toma en cada tablero de juego que genero el nivel nueve de nuestro árbol de juego de Minimax, devolver un número que podemos utilizar para comparar ese nodo para todos los otros nodos a ese nivel.
Sabemos que la única manera de ganar es saber si nuestro jugador de la computadora tiene movimiento a la izquierda al final del juego.

Puede que nuestro jugador de la computadora no debe maximizar el número de movimientos que tiene.
Queremos una función de evaluación que devuelva un número mayor dependiendo de qué tan buena es la jugada para nuestro jugador de la computadora.
Con una función de evaluación simplemente contando el número de movimientos de nuestro jugador de la computadora que tiene disponible en un nodo dado, el jugador seleccionara ramas en el árbol Minimax, que conduce a espacios en los que un jugador tiene más opciones.
Vamos a llamar a la función de evaluación, numero de mis movimientos para mayor comodidad.


Ejercicio

A manera de práctica, colocar junto a cada tabla, el número de movimientos dependiendo la posición de cada uno, ya sea 1 o 2.



#194

Apple apuesta por el OpenSource y publica el código del kernel de iOS y macOS en GitHub

Desde 2014, cuando Apple lanzó su nuevo lenguaje de programación, Swift, como código abierto, la compañía ha estado mostrando un gran interés por ganar protagonismo dentro del software libre, aunque la mayoría de sus productos y proyectos siguen siendo privativos, de código cerrado. Sin embargo, parece que la mentalidad de esta compañía está cambiando y que, poco a poco, va haciendo nuevas contribuciones al mundo del código abierto, siendo sus dos últimas aportaciones el código fuente del Kernel de iOS y de macOS, sus dos principales sistemas operativos.

Tanto el Kernel de iOS como el Kernel de macOS están basados en XNU, XNU is not UNIX, que, aunque es un proyecto de código abierto, cuenta con una licencia Apple Public Source License 2.0, una licencia bastante restrictiva en todos los aspectos. Aunque este sea un sistema operativo de código abierto, Apple se guarda mucho código para su propio uso, especialmente cuando hablamos de iOS que, aunque a grandes rasgos el kernel sea el mismo que el de macOS, no sabemos nada de la optimización para procesadores ARM que se incluye al sistema operativo, hasta ahora.

Cada vez que Apple lanza una nueva versión de sus sistemas operativos, más tarde suele publicar los códigos fuentes directamente en su propia web para que los desarrolladores puedan acceder a él, revisarlo y entender cómo funciona el sistema operativo.

Aprovechando los recientes lanzamiento de macOS 10.13 y iOS 11, Apple ha publicado el Kernel de estos nuevos sistemas operativos, aunque con algunas peculiaridades que, para nada, se esperaba que llegara. La primera de estas peculiaridades es que esta vez, además del Kernel optimizado para macOS, Apple ha liberado igualmente el kernel de iOS, la versión de Darwin XNU optimizada para procesadores ARM.

Además de esto, Apple también ha publicado el código fuente de su sistema operativo en GitHub, desde podemos acceder al código fuente y, además, ver una completa guía sobre cómo compilarlo y utilizarlo.


¿Qué busca Apple con sus nuevos movimientos en torno al OpenSource?

No se sabe muy bien qué quiere conseguir Apple con este inesperado movimiento, aunque los primeros rumores ya empiezan a circular por la red. Mientras que lo más probable es que la compañía quiera potencial el desarrollo de aplicaciones para iOS y, además, recibir un feedback por parte de la comunidad OpenSource para hacerse una idea de cómo podrían ir mejorando el sistema operativo.

También están empezando a aparecer rumores sobre un posible lanzamiento de macOS para procesadores ARM, siendo esta la razón por la que la compañía ha publicado el código de iOS y la optimización de Darwin para ARM.

Lo que sí está claro es que, a diferencia de lo que muchos afirman, aunque ahora iOS tenga un código abierto, no veremos un Samsung Galaxy S8 con iOS, tanto porque el código fuente no lo va a permitir, Apple se ha reservado ciertas partes del código y, además, la licencia de Darwin no lo va a permitir. Tampoco veremos un Hackintosh más sencillo para macOS 10.13 tras este movimiento. Lo que sí está claro es que este movimiento, a medio plazo, servirá para mejorar los productos de Apple.




Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#195

La respuesta del ejercicio anterior




Número máximo de nodos visitados

Hasta ahora hemos trabajado con un tablero de aislamiento con solo cinco movimientos posibles.
Se busca poner fin al juego, esto causo enormes árboles que son difíciles de mostrar en la pantalla.
¿Qué tan malo va a ser con un tablero de juego normal?
Bueno vamos a regresar el tablero cinco por cinco.


¿Cuantos nodos diferentes de ramificaciones podemos esperar?
En el primer movimiento, "O" puede poner su pieza en cualquiera de los 25 lugares.
En el siguiente movimiento "X" puede poner su pieza en cualquiera de los 24 lugares.
Después hay 23 lugares vacíos, seguido por 22 lugares y así sucesivamente.
Ahora todos esto puntos son siempre posibles movimientos, por lo que sabemos que tiene que haber menos nodos que 25 x 24 x 23 y así sucesivamente. Por lo menos 25 nodos factoriales.
10^25
Si se utiliza un procesador multi-nucleo que trabaje a gigahercios moderado que pueda hacer las operaciones de 9° por segundo, se tardara 10^16 para buscar en todo el juego.


De acuerdo, cada hora es de 3600 segundos y cada día es de 24 horas y cada año tiene 365 días. Eso significa que más de 300 millones de años.
Exactamente 317, 097, 920 años
No creo que tengamos tiempo para esperar mucho.
Me acaba de dar una estimación rápida del límite superior del número de nodos, en realidad no es tan malo.

Vamos a ver si podemos hacer una mejor estimación.
No hay mucho que podamos hacer los primeros movimientos.
Realmente hay 25 x 24 potenciales primeros movimientos.
Pero después de eso, cada pieza se mueve con una reina y hay menos movimientos.
¿Cuál es el número máximo de movimientos posibles en el tercer movimiento de juego?

La posición central es el primer movimiento que permite ir a una de las 16 posiciones diferentes en su siguiente turno. Claro esto asumiendo que los movimientos del oponente no obstruyan.


Suponiendo que el oponente no está en el camino, la posición central tiene un máximo potencial ya que se mueve con 16 posibilidades.

El factor de ramificación

Mientras que la posición central tiene 16 espacios en los que se puede mover, la mayoría de las otras posiciones tienen 12 o menos.
A medida que el juego se desarrolla, tendremos cada vez menos espacios para que nuestro jugador pueda moverse.
Eso significa que podemos hacer una mejor estimación de la cantidad de nodos que tenemos.
Sabemos que no podemos tener más de 25 movimientos en un juego.
Esa es la profundidad máxima que nuestro árbol va a tener.
Y sabemos cuántos movimientos se pueden hacer en un principio,
Lo que deja 23 se mueve a la izquierda.

Sabemos que cada movimiento después de los dos primeros va a tener por lo general 12 o un menor número de movimientos disponibles. Vamos a llamar a esto el factor de ramificación.
En el peor de los casos vamos a esperar 25 veces 24 veces 12 a la 23n nodos en nuestro árbol de juego. Esto da más de 10^27.

Tal vez podemos mejorar nuestra estimación más.
Sabemos que al final del el juego hay que ser progresivamente menos movimientos disponibles.
Hay cero movimientos al final, antes de un movimiento que un máximo de dos antes de que tres antes de eso, y así sucesivamente.

Así que para los últimos movimientos, suponiendo un factor de ramificación de 12 es demasiado.
Eso sería alrededor del 10 a los 13 nodos
Pero el máximo que podría ser es 12 factorial, o aproximadamente 5 veces 10 a la octava.
Supongo que podríamos hacer de nuevo nuestra estimación como 25 veces 24 veces 13 12s en una fila, 5 veces 10 a la octava eso es aproximadamente igual a 3 veces 10^23. Eso es mejor que 10^25, o 10^27, pero parece que hubiera sido un grave sobreestimar como con la mayoría de las ramas tendrán mucho menor que el máximo factor de ramificación.



#196

Los radares móviles son los que las apps de radares no pueden detectar –sólo fijos, declarados por la DGT-. Y no, no siempre son marcas 'francesas', aunque los conductores así lo piensen. Pero aquí, en España, al menos están todos ellos controlados por las autoridades de vigilancia del tráfico –la Guardia Civil-. En Francia, sin embargo, están a punto de hacer que cualquier coche particular se convierta en un radar móvil, de tal forma que será mucho más difícil que el resto de conductores puedan detectarlos.

Con este movimiento, Francia contará con 26 coches privados que se encargarán de sustituir a los operados por la Gendarmería Nacional. De momento, en noviembre, se arrancará con esta reducida cantidad. Pero más adelante se irá aumentando la cifra hasta los 400 coches particulares que patrullarán las carreteras como radares móviles. Las asociaciones de automovilistas franceses aseguran que, como es evidente, 'serán todavía más indetectables'. Y la información que hay al respecto nos desvela que ayudará a crear 1.000 puestos de trabajo nuevos, a pesar de que sólo habrá un conductor a bordo de cada vehículo.

Los coches particulares se convierten en radares móviles en Francia, desde noviembre

En cuestión de unas semanas se llevará a cabo esta nueva medida. Se arrancará en Normandía, que es donde se han llevado a cabo las primeras pruebas, desde el pasado mes de febrero. Los automovilistas, y diferentes asociaciones, han criticado la privatización por el 'afán recaudatorio', mientras que el ministro de Interior francés asegura que de esta forma 'la policía se reorientará a misiones de seguridad'. Sea como fuere, el Gobierno francés pretende alcanzar los ocho millones de euros de recaudación anual frente a los dos millones actuales, porque se conseguirán seis veces más horas de vigilancia efectiva en las carreteras.

Se invertirán 53 millones de euros, aproximadamente y según las previsiones del Gobierno, pero se debería alcanzar una rentabilidad del 82% cuando el sistema de vigilancia complete su implementación con esos 400 vehículos particulares patrullando las carreteras francesas. Los nuevos conductores con radar móvil tendrán que cumplir un trazado acordado, y en caso de que se desvíen tendrán que asumir una penalización. Estos conductores, por otro lado, no podrán saber cuántos conductores han sido multados mientras conducen su vehículo equipado con un radar de velocidad.




Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#197
Árbol de Juego de aislamiento con valores de hoja

Link:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Tome un tiempo para analizar el árbol de juego y luego continuar.
Observe el segundo sub árbol del nivel 1 (donde "O" escoge la parte superior, celula media) – conduce a un montón de perdidas (valores -1).


¿Puede pensar en una manera de marcar este subárbol entero cono una mala elección?

En la mayoría de situaciones en este árbol de juego por ordenador nuestro "O" gana, Sin embargo en algunas situaciones, el juego termina con nuestro oponente "X" ganador a nivel cinco.
Si nuestro jugador de la computadora hace una mala elección para su primer movimiento, "X" puede ganar, no importa lo que "O" haga.

Está claro que no queremos que nuestro jugador de la computadora haga mal este primer movimiento. Para evitar esta situación podemos mantener una tabla de mejores primeros movimientos de esta configuración de tablero.

Esta tabla llamara a un libro de aperturas, tablas similares se pueden mantener durante juego finales.
¿Pero cómo podemos descubrir las malas jugadas automáticamente?
¿Mejor aún, Como descubrimos los mejores movimientos para un jugador?
La respuesta es el algoritmo Minimax, unan versión de la que veremos a continuación.

Niveles Min y Max

Con nodo terminal en nuestro árbol de juego, con un 1 nuestro jugador gana y un -1 pierde.
Hemos utilizado los cuadrados para indicar los nodos terminales y poner sus indicaciones en su interior.
Vamos a suponer que nuestro oponente X es muy inteligente y siempre juega para ganar. En otras palabras, vamos a suponer que X siempre minimiza las calificaciones de S.

Mientras que nuestro jugador de la computadora siempre tratara de maximizar sus resultados.
Para mostrar esta idea, vamos a marcar el árbol de juego con un triángulo que apunta para indicar giros cuando nuestro jugador está tratando de maximizar la puntuación.
El triángulo apuntando hacia abajo cuando el componente está tratando de reducir al mínimo el marcador.




Dado que nuestro jugador de la computadora va primero, Empezamos con el nivel de maximización.
En general, ya que estamos buscando únicamente desde la perspectiva de nuestro jugador de la computadora, que solo puede afectar el juego cuando se trata a su vez, la parte superior de un árbol Minimax siempre va a ser un nivel máximo.


Propagando valores arriba del árbol

Con el fin de propagar las ganancias y pérdidas de el árbol de juego, hasta el punto que un jugador de la computadora pueda tomar una decisión, tenemos que empezar en la parte inferior del árbol.
Vamos a empezar con el lado izquierdo del árbol.

En la rama más a la izquierda, "O" gana.
En la siguiente más. "O" nunca utiliza la última casilla del tablero de juego y pierde.
Dado que nuestro oponente "X" juega para ganar y reduce al mínimo la puntuación de "O", nunca va a elegir la rama de la izquierda. En su lugar, va a elegir esta rama que está garantizado para darle al equipo jugador una puntuación de -1.

Sin embargo nuestro jugador de la computadora puede evitar esta situación haciendo una sabia elección de un nivel superior.


Ambas ramas de este árbol conducen a la victoria, por lo tanto, las puntuaciones de 1.
Podemos mantener la propagación de estas puntuaciones en el árbol, alternando en los niveles máximos hasta llegar a la cima.

Este proceso de los valores de cálculo para cada parte inferior del nodo al principio es conocido como el algoritmo Minimax.

Para cada nodo Max, escoge el valor máximo entre sus nodos secundarios.
Si hay por lo menos una ramificación más, el computador puede escogerlo siempre para ganar. De lo contrario, nunca podría ganar a partir de ese momento, suponiendo un oponente perfecto.
Por su puesto, a través de representar el oponente, en cada nodo mediano, escogemos el valor mínimo.

Ejercicio
Puede practicar con la siguiente parte del árbol de juego colocando el +1 o -1 dependiendo el caso de cada movimiento.



#198

Aunque generalmente solemos referirnos como ransomware a todo aquel malware que secuestra, cifra y/o nos hace perder nuestros datos, en realidad, técnicamente, no es así. Además del ransomware tal y como lo conocemos (malware que cifra nuestros datos y nos pide el pago de un rescate por ellos), existe una herramienta que funciona de forma similar, ataca los datos, los cifra (o cifra el MBR) pero no permite la recuperación de los datos, ya sea por la ausencia de clave o por la falta de herramienta para descifrar los datos, lo que conocemos como Wiper. También hay amenazas que mezclan estos dos conceptos en uno solo, como el nuevo y peligroso RedBoot.

RedBoot es una nueva amenaza vista en la red que mezcla estos dos conceptos. Este malware, por un lado, cifra uno a uno todos los datos personales que la víctima tiene guardados en su ordenador, mientras, por otro lado, cifra también el MBR y modifica la tabla de particiones, dejando toda la información del disco duro inservible.

Cuando descargamos y ejecutamos este malware en nuestro ordenador, el archivo principal extrae automáticamente una serie de archivos en una ruta al azar de nuestro sistema, archivos utilizados para llevar a cabo la tarea de cifrado:

assembler.exe – herramienta utilizada para compilar el malware boot.asm para crear el nuevo MBR.
boot.asm – archivo en ensamblador que forma el nuevo MBR modificado.
boot.bin – el archivo que se genera cuando se compila el boot.asm.
overwrite.exe – programa utilizado para escribir el MBR modificado en el disco duro.
main.exe – ransomware que cifra los datos del PC.
protect.exe – Herramienta maliciosa utilizada para finalizar varios procesos (antivirus, por ejemplo) e impedir su ejecución.

Cuando se ejecuta el malware, lo primero que hace es compilar el nuevo y modificado MBR y, a continuación, escribirlo en el disco duro. Tras ello, ejecutará el programa "protect.exe" para bloquear los antivirus y empezará a analizar y cifrar uno a uno todos los datos almacenados en el disco duro, archivos a los que se añadirá la extensión ".locked".

Una vez termina el cifrado, el malware reinicia automáticamente el PC pero, en lugar de cargar directamente Windows, nos mostrará una pantalla roja como la siguiente.


Por un fallo o a propósito, RedBoot, aunque tenemos un ID, no permite recuperar los archivos

Tal como nos cuentan los expertos de seguridad de Bleeping Computer, aunque a grandes rasgos debería permitir la recuperación de los archivos, este ransomware no lo permite.

No se sabe si es por un error o despiste del pirata informático o está hecho a propósito, pero, salvo que al pagar se facilite una herramienta que permita arrancar el ordenador en modo "live" para descifrar el MBR (cosa bastante improbable), este ransomware no tiene forma de introducir una clave de descifrado manualmente, por lo que más que ransomware parece un "wiper" que, aunque paguemos, no nos recuperará los datos.




Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#199

La respuesta del ejercicio anterior.





Vamos a mantener la expansión de los nodos en orden hasta que nos encontremos totalmente en el nivel tres de nuestro árbol.




Como ven algunos nodos tienen dos ramificaciones otros tienen tres, aun así vemos que el crecimiento exponencial de las ramificaciones hace que sean cada vez más difícil de visualizar el árbol por completo en la pantalla a la vez.






En el nivel 4 es el turno de "X". Una vez más se amplía el árbol completo.
Desplazándonos a través del árbol se observa como cada vez es más densa la ramificación de este.




El nivel cinco se hace un poco más interesante.
En la rama de la izquierda, se tiene un movimiento final.


Sin embargo en la siguiente rama x ha bloqueado a "O"
"O" no tiene ningún movimiento y el juego termina.
Para indicar que nuestro jugador de la computadora ha perdido en esta situación lo haremos marcando este nodo con -1.


La expansión de nivel cinco por completo vemos que una rama se ve especialmente mal para el jugador de la computadora.
Ya que tiene muchas situaciones perdedoras.


Lo que es peor, el oponente tiene el control de la jugada en el nivel superior.


Tenemos que encontrar una manera de advertir a nuestro jugador de la computadora de hacer un movimiento que lo conduzca a esta rama.


Para el nivel seis no hay movimientos que dejen cualquier parte del tablero, Todos los juegos han terminado.
Aquellos en los que gana se marcan con un +1
Aquellos en los que se ha perdido se han marcado con un -1.

Ahora que hemos visto todos los futuros posibles del juego.
Vamos a respaldar propagando este conocimiento a nuestro jugador de computadora para que pueda hacer un sabio primer movimiento.


#200

Dnsmasq es un conocido servidor DNS y DHCP utilizado en una gran cantidad de sistemas operativos Linux y dispositivos embebidos diseñado para poder ofrecer estas funcionalidades con el menor consumo de recursos posible y funcionando de la forma más transparente posible, con el menor impacto en el rendimiento de las redes. Aunque en un principio este software es seguro, Google acaba de encontrar una serie de fallos de seguridad que están poniendo en peligro la seguridad y privacidad de todos los usuarios que utilicen este servidor en sus redes.

Hace algunas horas, Google daba a conocer una serie de vulnerabilidades en el servidor DNS y DHCP Dnsmasq, vulnerabilidades que cuentan además con sus propios exploits, que pueden ser utilizadas para llevar a cabo diversos ataques informáticos, desde ejecución de código remoto hasta ataques de denegación de servicio e incluso filtrado de información sensible sobre el servidor.

Estas vulnerabilidades han sido registradas como:

CVE-2017-14491 – Desbordamiento de búfer en el DNS que puede permitir la ejecución de código remota en el servidor afectado.
CVE-2017-14492 – Desbordamiento de búfer en el DHCP que puede permitir la ejecución de código remota en el servidor afectado.
CVE-2017-14493 – Desbordamiento de búfer en el DNS que puede permitir la ejecución de código remota en el servidor afectado.
CVE-2017-14494 – Fallo que permite evadir el ASLR y filtrar información del servidor DHCP.
CVE-2017-14495 – Fallo al liberar recursos en el servidor DNS que puede revelar información del servidor.
CVE-2017-14496 – Fallo en las comprobaciones de las variables en el DNS que puede causar DoS.
CVE-2017-13704 – Fallo de colisión DNS que puede ser utilizado para tumbar Dnsmasq con un DoS.

Google ha sido capaz de demostrar, con exploits, la existencia real de estas vulnerabilidades, aunque, tal como asegura, se tratan de fallos zero-day que, hasta la fecha, los piratas informáticos no conocen ni han estado explotando por la red. De todas formas, ahora que se han dado a conocer empieza una carrera contrarreloj en la que debemos proteger nuestros sistemas antes de que los piratas empiecen a atacar estos fallos de forma masiva por la red.

Cómo protegernos de estas vulnerabilidades en el servidor DNS y DHCP Dnsmasq

Google ya ha enviado un commit dentro del repositorio del proyecto que solucionará estas vulnerabilidades de manera que, cuando lo revisen y acepten los responsables del desarrollo de Dnsmasq puedan solucionar, a través de una sencilla actualización, la vulnerabilidad en este servidor.

Además, como no podemos saber con seguridad cuando va a llegar la actualización de seguridad, también podemos instalarlo nosotros mismos descargando el parche enviado por Google desde el siguiente enlace, asegurando así nuestra instancia de Dnsmasq.

Todos los usuarios de cualquier software que utilice este servidor deben estar pendientes para poder actualizar lo antes posible a la nueva versión. Los usuarios de Android, por un lado, recibirán el parche de seguridad de la mano de Google con los nuevos parches de seguridad de este mes, mientras que otras herramientas, como Kubernetes, ya se han actualizado solucionando este fallo de seguridad.




Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login