Las computadoras empiezan a razonar como seres humanos

Estándar

En un reciente artículo de la revista científica Science Magazine, aparece un artículo con el mismo título de este post y nos describe como un nuevo tipo de red neuronal es capaz de exhibir un «razonamiento», similar al de los seres humanos. Específicamente el tipo de razonamiento que estas redes neuronales trata de replicar es conocido como razonamiento relacional y es el que usamos para contestar preguntas tales como ¿Cuál es la mejor combinación cena-vino para la cena?, ¿Cuántas escuelas hay cerca de la nueva casa que deseamos comprar?.

Ahora, los investigadores de DeepMind de Google han desarrollado un algoritmo sencillo para manejar tal tipo de razonamiento y han derrotado a los seres humanos en una prueba de comprensión de imágenes compleja.

Los seres humanos son generalmente bastante buenos en el razonamiento relacional, una especie de pensamiento que utiliza la lógica para conectar y comparar lugares, secuencias y otras entidades. Pero los dos tipos principales de IA (Inteligencia Artificial) la estadística y la simbólica, han sido lentos para desarrollar capacidades similares. La IA estadística o como sule llamarse más comúnmente Machine Learning, es muy buena en el reconocimiento de patrones, pero no en el uso de la lógica. Y la IA simbólica puede razonar acerca de las relaciones usando reglas predeterminadas, pero no puede aprender sobre la marcha.

Un nuevo estudio propone una forma de resolver la brecha: una red neuronal artificial para el razonamiento relacional. De forma similar a la forma en que las neuronas están conectadas en el cerebro, las redes neuronales combinan pequeños programas que, de forma colaborativa, encuentran patrones en los datos. Pueden tener arquitecturas especializadas para procesar imágenes, analizar el lenguaje o incluso aprender juegos, recordemos que el algoritmo DeepMind de Google ya ha derrotado al campeon mundial del juego Go. En este caso, la nueva «red de relación» está cableada para comparar cada par de objetos en un escenario individualmente. Los investigadores han declarado: «Estamos forzando explícitamente a la red a descubrir las relaciones que existen entre los objetos».

Él equipo de investigadores sometieron a la red de relaciones a diversos retos. El primero era responder preguntas sobre las relaciones entre objetos en una sola imagen, como cubos, bolas y cilindros. Por ejemplo, se le preguntó: «Hay un objeto delante de la cosa azul; ¿Tiene la misma forma que el pequeño celeste que está a la derecha de la bola de metal gris?» Para esta tarea, la red de relación se combinó con otros dos tipos de redes neuronales: una para reconocer objetos en imagenes y otra para interpretar la pregunta. A través de muchas imágenes y preguntas, otros algoritmos de Machine Learning sólo acertaban del 42% al 77% de las veces. Los humanos obtuvieron un respetable 92%. Sin embargo el nuevo combo de la red de la relación era correcto en el 96% de las veces, una resultado que superaba al de los humanos, los investigadores divulgan en un papel publicado la semana pasada en el servidor preprint arXiv.

El equipo de DeepMind también probó su red neural en una tarea basada en el lenguaje natural, en la que recibió una series de declaraciones como «Sandra tomó el balón» y «Sandra fue a la oficina». Luego se le preguntó: «¿Dónde estaba el balón» a lo que respondió: «En la oficina». Se desempeñó tan bien como otros algoritmos de IA en competencia en la mayoría de los tipos de preguntas, pero realmente brilló en las llamadas preguntas de inferencia: «Lily es un cisne. Lily es blanca. Greg es un cisne. ¿De qué color es Greg?», a lo que respondió: «Blanco». Sobre estas cuestiones, la red de relaciones acertó en el 98% de las veces, mientras que sus competidores sólo acertaron un 45% de las veces. Finalmente, el algoritmo analizó animaciones en las que 10 bolas rebotaron, algunas conectadas por resortes invisibles o varillas. Usando sólo los patrones de movimiento, fue capaz de identificar más el 90% de las conexiones. A continuación, utilizó el mismo entrenamiento para identificar las formas humanas representadas por nada más que los puntos en movimiento.

De seguir esta progresión en el campo de IA, pronto hasta los trabajos que considerábamos seguros para los humanos y que no podrían ser automatizados, pronto podrían serlo. Estas habilidades de razonamiento relacional, son la base para «aprender» por uno mismo. Con lo que lo que se conoce como «singularidad», está muy cerca.

Primer hackaton internacional de Aeropuertos

Estándar

Se ha anunciado un hackathon internacional para aplicaciones para mejorar la experiencia de viaje de los pasajeros del aeropuerto, el nombre del hackaton es Re-Coding Aviation y está utilizando datos de siete aeropuertos internacionales en toda Europa.

Los siete aeropuertos que apoyan el hackathon son Schiphol, Estocolmo, Frankfurt, Gatwick, Ginebra, Munich y Copenhague. Cada aeropuerto que respalde el hackathon de 48 horas compartirá un API, datos de vuelo y tiempo de espera con los desarrolladores para ayudarlos con el desafío.

Junto con la información de vuelo, los desarrolladores tendrán acceso a las API de los partners, específicamente SITA y UBER. La API de SITA iTravel puede ser utilizada por los desarrolladores para acceder a información sobre reservas, check-in, lealtad, seguimiento de equipaje e información de vuelos y aerolíneas. El API de UBER puede utilizarse para pasar una dirección de destino a la aplicación Uber, mostrar tiempos de recogida, proporcionar estimaciones de tarifas y acceder al historial de viajes.

El Hackathon, tendra lugar en Berlín del 16 al 18 de junio, es similar a otras hackatones anteriores, pero esta incluye más aeropuertos internacionales que los retos anteriores.

Los desarrolladores se dividirán en equipos y presentarán sus ideas a un jurado, que otorgará premios a los ganadores de cada tema. Los organizadores sugieren que los desarrolladores deberían considerar soluciones tecnológicas innovadoras. En su página web dicen:

El objetivo de hackear el viaje de los pasajeros es ofrecer un viaje eficiente, sin preocupaciones, informado, activo y feliz a los pasajeros usando nuevas y crecientes soluciones tecnológicas como AR(Realidad Aumentada)/VR(Realidad Virtual), wearables, chatbots y más!

El concurso está organizado en cuatro posibles desafíos para elegir:

  • Desafío 1: La vida antes del aeropuerto.
  • Desafío 2: La vida en el aeropuerto.
  • Desafío 3: Traslado al aeropuerto.
  • Desafío 4. Llegar al destino.

Uno de los aeropuertos participantes, Gatwick, instaló recientemente 2000 faros de navegación a través de sus terminales, proporcionando un sistema de navegación interior que permite la navegación de realidad aumentada para pasajeros.

En términos prácticos, esto significa que una vez dentro del aeropuerto usted no tiene que usar mapas de Google o Apple en su teléfono, ya que pueden llegar a ser poco fiable en el interior. En lugar de ello, puede seguir una flecha azul en un mapa del interior proporcionado por el propio sistema de Gatwick. La herramienta de guía de realidad aumentada muestra las direcciones en la vista de la cámara de su teléfono, lo que facilita la búsqueda de áreas de registro, puertas de salida y entrega/recepción de equipaje. La idea es que con el tiempo esto será apoyado a través del aeropuerto, la línea aérea y las aplicaciones móviles de terceros, como en este caso los desarrollados en el hackathon, por ejemplo.

La CIA habria creado un toolkit para hackear cientos de routers

Estándar

Después de un paréntesis de dos semanas, WikiLeaks hizo públicos nuevos archivos como parte de la serie Vault 7 que supuestamente contiene herramientas de hacking creadas por la CIA y que WikiLeaks afirma haber recibido de hackers y personas de dentro de la CIA.

El día de hoy, la filtración incluye la documentación de una herramienta de la CIA llamada CherryBlossom, un toolkit multiusos desarrollado para hackear cientos de modelos de routers domésticos.

La herramienta es, con mucho, uno de los frameworks de malware más sofisticados de la CIA. El propósito de CherryBlossom es permitir a los operadores (los hackers de la CIA) interactuar y controlar los routers SOHO en la red de la víctima.

La parte más compleja de usar CherryBlossom es de lejos el despliegue de la herramienta en los routers de una victima. Esto puede hacerse por un operador de campo o usar remotamente una falla del router que permite a los operadores de la CIA instalar nuevos firmware en el dispositivo de destino.

Internamente, CherryBlossom se compone de diferentes componentes, cada uno con un papel muy preciso:

  • FlyTrap: es el firmware comprometido que se ejecuta en el dispositivo afectado.
  • CherryTree: servidor de comando y control donde los dispositivos FlyTrap informan.
  • CherryWeb:  panel de administración basado en web que se ejecuta en CherryTree.
  • Mission: conjunto de tareas enviadas por el servidor C & C a los dispositivos infectados.

En el diagrama a continuación se puede notar cómo interactuan las partes:

Según el manual de CherryBlossom, los operadores de la CIA pueden enviar «misiones» a dispositivos infectados desde el servidor CherryTree C&C a través del panel CherryWeb.

Los tipos de misión varían enormemente, lo cual habla muy bien de la versatilidad de la herramienta. Por ejemplo, las misiones pueden:

  • Monitorear el tráfico de Internet del objetivo.
  • Inhabilitar el tráfico y ejecutar varias acciones basadas en condiciones predefinidas en base a: URL, nombres de usuario, correo electrónico, direcciones MAC, etc.
  • Redirigir el tráfico de Internet del objetivo a través de otros servidores/proxies, en caso se desee guardar una copia de todo lo que hace el objetivo en Internet.
  • Crear una VPN desde el operador a la red interna del objetivo.
  • Alertar a los operadores cuando el objetivo se activa.
  • Escanear la red local del objetivo.

De acuerdo con los documentos filtrados de la CIA, FlyTraps se puede instalar en routers WiFi y puntos de acceso. Hay un documento separado que enumera más de 200 modelos del routers que CherryBlossom puede atacar exitosamente, la mayor parte dson modelos antiguos. Este documento de 24 páginas no está fechado, pero el resto de los manuales de CherryBlossom datan del periodo 2006 al 2012.

Si quieres saber si tu router es vulnerable a esta herramienta de hackeo, puedes consultar el documento original de WikiLeaks aquí.

Hay que recordar que lo que se ha hecho público es la documentación de CherryBlossom y no el código en sí de la herramienta. Es posible que actualmente la herramienta haya sido expandida para incluir más routers. Por ello aunque tu router no esté en el listado de los afectados, no está demás de actualices tu firmware y cierres todo posible punto de ataque desde el exterior.

Si deseas más información sobre CherryBlossom ArsTechnica ha publicado un extenso artículo con muchos detalles sobre el mismo, aunque está en inglés.

Malware de Raspberry Pi es usado para minar criptomonedas

Estándar

Según el sitio de seguridad ruso Dr.Web, hay un nuevo malware llamado Linux.MulDrop.14 para las computadoras Raspberry Pi en todas sus versiones. Este troyano usa cualquier Raspberry Pi que pueda ser accessible por Internet para minar criptomonedas.

Según el Dr.Web:

El troyano de Linux que es un script de bash contiene un programa de minería de criptomonedas, que se comprime con gzip y se cifra con base64. Una vez iniciado, el script cierra varios procesos e instala las bibliotecas necesarias para su funcionamiento. También instala zmap y sshpass.

Uno tristemente descubre que el Raspberry Pi ha sido hackeado, porque cambia la contraseña del usuario «pi» a «\$6\$U1Nu9qCp\$ FhPuo8s5PsQlH6lwUdTwFcAUPNzmr0pWCdNJj.p6l4Mzi8S867YLmc7BspmEH95POvxPQ3PzP029yT1L3yi6K1«.

Además, el malware busca máquinas dentro de la red local con el puerto ssh (22) abierto e intenta iniciar sesión utilizando las credenciales predeterminadas de Raspberry Pi para distribuirse.

Los sistemas embebidos son un objetivo especialmente atractivo para los piratas informáticos. A veces es por el valor del sistema físico que supervisan o controlan. En otros, es sólo el poder de cálculo que puede ser utilizado para ataques de denegación de servicio a otros host en Internet, para la distribución de spam o como es el caso deLinux.MulDrop.14 ser usado para la minería de criptomonedas. Aunque la capacidad de cómputo de una Raspberry Pi no es uno de sus puntos fuertes, el llegar a controlar a miles o cientos de miles de estas pequeñas computadoras de forma remota podría hacerlos un blaco atractivo para crear redes zombies de minado de criptomonedas.

Si usas Raspberry Pi para un proyecto y este es accessible por Internet, recuerda siempre cambiar las credenciales por defecto que son username: «pi» y password:  «raspberry», ya que ese es el truco que aplica este troyano. De ser posible deshabilita el acceso remoto ssh, pero si eso no es posible por razones administrativas, pues cambia el puerto por defecto y pon reglas en el iptables que permitan el acceso sólo desde determinadas IPs y nigue el acceso a todos los demás intentos de conexión.

Entendiendo las tarjetas microSD: su rendimiento y clases

Estándar

Cuando las personas planea utilizar una placa de desarrollo como un Raspberry Pi para su proyecto, se centran principalmente en las especificaciones de la placa de desarrollo en sí, así como el soporte de software. Pero seleccionar los accesorios adecuados puede ser igual de crucial para un buen rendimiento y estabilidad. Por ejemplo, la selección de una fuente de alimentación adecuada es importante, ya que la placa puede colgarse o reiniciarse si no se alimenta con el voltaje y potencia adecuados. Igual de importante es también la selección de un cable micro USB, seleccionando uno con una resistencia mínima que se puede lograr a través de cables más cortos o un valor bajo AWG (mayor diámetro del conductor, contraintuitivamente los el calibre de un conductor esta inversamente relacionado con su diámetro). Otro elemento importante que puede afectar la estabilidad y el rendimiento de los sistemas son las tarjetas microSD, ya que se utiliza para albergar el sistema operativo en las placas de desarrollo.

Hasta hace pocos años atras, las tarjetas microSD eran el principal medio utilizado para almacenar datos como fotos, videos y música. En esos casos de uso, contienen archivos grandes que se benefician de altas velocidades de lectura y escritura secuenciales. Es por eso que la asociación SD creó diferentes clases para especificar una velocidad de escritura mínima con cada «clase de velocidad», «clase de velocidad UHS» y más recientemente «clase de velocidad de vídeo». Aquí un diagrama que ilustra dichas especificaciones:

Esta clasificación es útil, ya que no se necesitarán las mismas velocidades de escritura para copiar archivos de música o grabar archivos de vídeos en una cámara de 4K y las tarjetas con una clase inferior normalmente son más baratas. Tenga en cuenta que la mayoría (si es que no todos) las tarjetas de desarrollo de bajo costo son compatibles con UHS-II o interfaz UHS-III, por lo que pueden funcionar, pero no será capaz de alcanzar el máximo rendimiento de la tarjeta. Los controladores de tarjetas MicroSD también se conectan a menudo a través de SDIO, lo que limita el rendimiento secuencial a unos 23 MB/s.

Sin embargo, esas clases son sólo marginalmente útiles para las tarjetas microSD utilizadas en las tarjetas de desarrollo, ya que los sistemas operativos generan muchas pequeñas operaciones de lectura y escritura, por ejemplo, para bases de datos y cachés web, en lugar de manejar archivos grandes leidos y escritos secuencialmente. Es por eso que los dispositivos de almacenamiento también pueden incluir un parámetro llamado IOPS (Entradas/Salidas por segundo) que son más útiles para este tipo de casos de uso. La tabla a continuación sobre Samsung eMMC y UFS flash chip muestra algunos de esos números:

El único problema es que hasta hace poco, no había manera de que se pudiera saber los números de IOPS de lectura y escritura mínimos para tarjetas SD, ya que simplemente no estaban disponibles por los fabricantes, por lo que las personas recomendaban tarjetas microSD clase 10 que pueden o no ser las más adecuados para su uso en tarjetas de desarrollo. Sin embargo, desde la introducción del almacenamiento externo adoptado en Android, donde las tarjetas micro SD se podrían utilizar para aplicaciones en lugar de sólo datos, los valores de IOPS se hicieron más importante y la asociación SD ha introducido «clases de rendimiento» y las nuevas clases son A1 y A2 para tarjetas SD especificando Valores IOPS de lectura y escritura mínimos junto con una velocidad de escritura secuencial sostenida mínima de 10 MB/s.

Aquí un diagrama con las especificaciones de las nuevas «Clases de Rendimiento»:

En teoría esto suena genial y podríamos suponer que el problema resuelto entonces. Pero no es así, ya que los fabricantes sólo han empezado a usar logos de rendimiento de aplicaciones en sus tarjetas microSD de mayor capacidad con capacidades de 256 GB o mayores. Que por lo general suelen costar varias veces el precio de una placa de desarrollo típica. Por lo tanto, necesitamos confiar en la comunidad para probar los valores de IOPS de lectura y escritura.

Hay varios programas que pueden probar el rendimiento de las tarjetas microSD. Por ejemplo en Linux podemos usar hdparm y dd. Pero hdparm sólo prueba la velocidad secuencial por un tiempo muy corto y dd sólo prueba la velocidad secuencial, además muchas personas no incluyen el tiempo que tardó en agotar el caché a la tarjeta real, lo que conduce a resultados potencialmente engañosos y en su mayoría irrelevante para el uso en tarjetas de desarrollo.

Así que en su lugar, existen herramientas específicas para probar tanto las velocidades secuenciales como el rendimiento de Entrada/Salida al azar. Bonnie++ es uno de ellos, pero recientemente iozone se ha convertido en la referencia para las pruebas de Entrada/Salida de disco.

Muchos tutoriales recomiendan flash firmware con Win32DiskImager en Windows, o dd en Linux. Sin embargo, aunque no he experimentado el problema, me han dicho que este último no siempre detecta errores al parpadear, y ahora se recomienda una nueva herramienta: Etcher. Funciona en Windows, Linux o Mac OS usando una GUI o la línea de comandos, y verificará la tarjeta SD después de parpadear asegurándose de que nada ha fallado durante el proceso.

Así que si deseamos confirmar que tanto rinde una tarjeta microSD en nuestro Raspberry Pi, no hay como realizar pruebas para verificar que obtenemos aquello por lo que pagamos. Espero que esta información sea últil y cualquier duda la pueden dejar en los comentarios.

El uso y abuso de las redes sociales

Estándar

El día de ayer (13 de junio) la compañía de seguridad japonesa, ha hecho público un informe con datos alarmantes como que destruir la credibilidad de un periodista puede costar tan poco como $50,000 y crear noticias falsas por un año para influir en unas elecciones puede costar $400,000.

El informe de 77 páginas está disponible para su descarga y muestra datos que sorprenden sobre lo fácil que es para alguien con dinero comprar un perfil falso con hasta 300,000 seguidores. El informe explora varios sitios web donde los clientes pueden comprar servicios que van desde «desacreditar a los periodistas» hasta «promover protestas callejeras».

En el blog de corporativo de Trend Micro hay una muy clara explicación de cómo funciona el ciclo de las noticias falsas y estas se realimentan entre si de una forma tóxica:

Las noticias falsas pueden parecer nuevas, pero la plataforma utilizada es la única novedad. La propaganda ha existido por siglos y el Internet es solamente el último medio de comunicación en ser abusado para esparcir mentiras y desinformación.

Asi como triángulo de fuego que representa los tres elementos que un fuego necesita  para arder: oxígeno, calor y un combustible. Del mismo modo, las noticias falsas requieren tres elementos diferentes para tener éxito. Éstos representan colectivamente el triángulo de falsificación de las noticias: sin ninguno de estos factores se puede alcanzar al público objetivo.

El primer requisito: las herramientas y servicios para manipular y difundir el mensaje a través de redes sociales relevantes, muchas de las cuales se venden en varias comunidades en línea de todo el mundo. Una amplia variedad de herramientas y servicios están disponibles, […]

Por supuesto, para que estas herramientas sean utilidad, las redes sociales tienen que existir como una plataforma para difundir propaganda. Con la gente pasa más tiempo en estos sitios para obtener las últimas noticias e información, su importancia en la difusión de noticias falsas no se puede subestimar. Sin embargo, hay una diferencia entre simplemente publicar propaganda y convertirla en algo que el público objetivo consume. […]

[…]

Finalmente, la campaña de propaganda siempre viene con la pregunta: ¿por qué? Las motivaciones detrás de la falsa noticia: a veces es simplemente un deseo de ganar dinero a través de la publicidad. En otros casos, los objetivos pueden variar de lo criminal a lo político. Independientemente del motivo, el éxito de cualquier campaña de propaganda se basará en última instancia, en lo mucho que afecta al mundo real.

Aunque el informe no detalla los lugares dónde se pueden comprar estos servicios criminales por obvisa razones, no hay razón para pensar que los datos que se muestran son falsos o exagerados. Por el contrario, me parece increíblemente barato el costo de crear una «celebridad». Aquí les dejo un gráfico extraido del informe dónde explica la dinámica de como crear un perfil de redes sociales con 300,000 seguidores:

Lo sorprendente es que sólo costaría $2,6000 conseguir falsificar un pefil de dichas características. Será por ello que políticos corruptos en todo el mundo pueden mostrar abultadas cifras de seguidores en Twitter or Facebook, a pesar de ser tremendamente impopulares y si se quiere hasta odiados.

 

Huawei anuncia el Honor 9 en China

Estándar

El sucesor del Honor 8, un smartphone bien recibido internacionalmente, ha llegado. La filial de Huawei dio a conocer el Honor 9 en China el día de ayer y el smartphone oficialmente saldrá a la venta en China este viernes 16 de junio por unos 320 dólares.

Lo más probable es que se lance oficialmente de manera internacionalmente por un precio más alto a los $320 que cuesta en el mercado chino en un futuro próximo.

El Honor 9 cuenta con muy buenas especificaciones técnicas: una pantalla full-HD de 5.15″, 1920 x 1080 píxeles, un procesador Kirin 960, y hasta 6 GB de RAM y 128 GB de almacenamiento interno. Tiene un sistema de doble cámara que utiliza sensores de imagen de 20MP y 12MP para proporcionar zoom óptico de 2X o efectos estilo bokeh, similar a los ofrecidos por el iPhone 7.

Otras características incluyen una batería de 3.200 mAh, un chasis de metal y respaldo de cristal, una toma de auriculares de 3.5mm, soporte para redes WiFi 802.11ac, 4G LTE y NFC.

Honor 9 ofrecerá un modelo con 4GB de RAM y 64GB de almacenamiento interno, así como otros dos modelos de 6GB/64GB y 6GB/128GB.

Huawei y Honor son prácticamente las únicas compañías que usan procesadores Kirin en sus smartphones, lo que tiene sentido ya que son ellos quienes los desarrollan internamente. Sin embargo, los benchmarks sugieren que los últimos procesadores de gama alta Kirin son competitivos con los últimos chips de alta gama de sus competidores como Qualcomm o Samsung.

En general, el Honor 9 es el tipo de smartphone que te hace preguntarte por qué alguien iba a gastar $700 o más en un smartphone de gama alta. Sin embargo el honor 9 no es un dispositivo sin compromisos. Tiene una resolución de pantalla más baja que algunos dispositivos de gama alta, dónde es común la resolución 2K. Y aunque viene con Android 7.1, el software cuenta con la muy criticada interfaz de usuario de EMUI de Huawei.

Más detalles sobre el equipo pueden ser encontrados en los portales PhoneArena y GizmodoChina.

Lenovo anuncia el nuevo Moto E4 & Moto E4 Plus

Estándar

Lenovo ha revelado los detalles oficiales de sus nuevos teléfonos Moto de nivel básico, estos son el Moto E4 y el E4 Plus. Como se rumoreaba, el E4 Plus viene con una batería de 5,000 mAh y una pantalla HD de 5.5 pulgadas. La compañía afirma que el tamaño de con esta batería el celular puede operar casi dos días sin ser recargado. El E4 Plus también está equipado con una cámara trasera de 13 megapíxeles, una cámara delantera de 5 megapíxeles para selfie, y un procesador de cuatro núcleos Spandragon 425.

El Moto E4  es más pequeño debido a que reduce el tamaño de la pantalla a las 5 pulgadas (un poco pequeño para mi gusto) y cuenta con una batería de 2,800 mAh. La cámara trasera del Moto E4 es de menor capacidad, con una resolución de 8 megapíxeles. La cámara frontal ofrede la misma resolución 5 megapíxeles. El E4 viene en colores negro u oro, mientras que el E4 Plus se ofrece en un color adicional: navy. Ambos teléfonos vienen en un acabado de metal, y usaran Android Nougat como sistema operativo.

El E4 y el E4 Plus están disponibles por $129 y $179 respectivamente. Lenovo dice que se venderán en «varios países», aunque no especificó en cuales. El E4 también se espera que sea vendido como un teléfono exclusivo del programa Amazon Prime, sin embargo Amazon ofrecerá los precios y los detalles posteriormente.

Estos celulares ofrecen una buena relación precio/prestaciones, durante un tiempo use el Moto E de segunda generación y definitivamente para el precio era un celular aceptable, aunque los lags en algunas aplicaciones, especialmente en juegos era notorio. En cuánto Amazon publique los detalles del Moto E en su programa Amazon Prime, compraré uno para ver que tanto han mejorado.

[URIS id=223]

Los desarrolladores front-end pueden ser cosa del pasado gracias a la IA

Estándar

Todos sentimos una mezcla de fascinación y tristeza al revisar las listas de trabajos que están a punto de desaparecer gracias a los avances de la IA (Inteligencia Artificial) o los sistemas robotizados, entre ellos jugadores de Go, conductores de camión, trabajadores de almacén, taxistas, trabajadores de entrega de paquetes y al parecer recientemente desarrolladores front-end. Sí los desarrolladores front-end están ahora en la lista de trabajos que no veremos en los próximos años.

Resulta que Tony Beltramelli de UIzard Technologies acaba de publicar un artículo y un video de su projecto pix2code. La idea básica de este proyecto es bastante simple aunque pueda parecer en un principio sorprendente. Tomar una red neuronal y mostrarle la imagen de una interfaz de usuario y entrenarla para que pueda producir el código fuente que crea dicha interfaz de usuario. Usted puede entrenar la red para una diversa gama de sistemas diferentes – iOS, HTML y así sucesivamente. El truco para ser multilingüe es usar un DSL (Domain Specific Language) para cada plataforma en particular, que describe la interfaz de usuario y luego se compila en el lenguage de la plataforma de destino. Por lo tanto, la red neural sólo debe ser entrenada para una representación del lenguaje DSL que se adapta a cada plataforma.

Aunque el código fuente aún no está publicado, hay un proyecto en Github del autor dónde indica que lo publicará, lo mismo que los datasets que ha usado para las conferencias NIPS de este año, a realizarce entre el 4 y 9 de diciembre.

Por lo pronto como una muestra, ha subido un video a YouTube en dónde se puede ver cómo dándole una imagen al programa pix2code e indicándole a que plataforma debe de generar el front-end, produce todos los archivos de código fuente necesarios, aquí el video:

 

Para más información sobre esta tecnología además del website del autor, también se pueden visitar los artículos de Wired UK & The Next Web, que contienen información adicional.

Google le dice adios a Native Client y apuesta por WebAssembly

Estándar

Google acaba de anunciar que Chrome ya no admite código nativo en forma de PNaCl. En su lugar seguirá el ejemplo de los otros fabricantes de navegadores y se basará en WebAssembly para obtener un código rápido. En pocas palabras, WebAssembly ganó.

Una aplicación web nativa es cualquier cosa que se compila con el código máquina nativo del sistema en el que se está ejecutando: no hay máquinas virtuales o código de bytes y no hay intérpretes. Por supuesto, esta definición es muy vaga porque la línea entre un intérprete y un compilador just-in-time es muy fina. Sea cual sea la definición, una aplicación nativa es la que se ejecuta rápidamente – lo más rápido posible – de ser posible directamente en el hardware. Los navegadores ejecutan JavaScript que ha mejorado en velocidad a lo largo de los años, pero sigue siendo mucho más lento que el código nativo. Para permitir que Chrome ejecute aplicaciones nativas, en el 2011 Google anunció NaCl (Native Client). La idea era que el código compilado se pudiera ejecutar en un sandbox proporcionado por Chrome. Se permitió a dichos programas «nativos» ejecutar en el navegador a toda velocidad y Google lo probó lanzando algunos juegos.

A los programadores que les gustó realmente y había inicialmente un mucho entusiasmo en esta plataforma. Entonces el gran problema se hizo evidente. NaCl era una característica exclusiva de Chrome y parecía improbable que otro navegador adoptara dicha tecnología. Una versión mejorada del NaCl fue lanzada en 2013, PNaCl. Esta versión usaba un código intermedio portátil que permitía que las aplicaciones nativas funcionaran en un navegador que trabajaba en un hardware muy diverso.

Incluso los programadores que pensaban que PNaCl era bueno, o al menos una buena oportunidad de obtener sus programas C/C ++ en la web, no podían evitar llegar a la conclusión de que sus proyectos iban a ser etiquetados como: «Sólo funciona en Chrome».

Otros fabricantes de navegadores, Mozilla en particular, expresaron la opinión de que el código nativo en el navegador era un gran error y un caso de pensamiento pasado de moda. El futuro era HTML5 y tecnologías similares. Como resultado el apoyo para PNaCl de los programadores comenzó a desaparecer. Luego apareció asm.js y subsecuentemente WebAssembly – ambos diseñados para hacer que JavaScript fuera más rápido. En este punto, incluso Google debe haber comenzado a pensar que PNaCl no era tan buena idea.

El año pasado el equipo de PNaCl se dispersó, pero el proyecto continuó como uno de fuente abierta. Ahora tenemos la palabra definitiva de que el PNaCl está muerto en lo que se refiere a Google:

Eliminaremos el soporte para PNaCl en el primer trimestre de 2018 en todas partes, excepto en Chrome Apps y Extensiones. Creemos que el ecosistema alrededor de WebAssembly hace que se ajuste mejor para las aplicaciones web de alto rendimiento nuevas y existentes y que el uso de PNaCl es suficientemente bajo como para justificar la decomisión del mismo.

¿Fue WebAssembly quien mató a PNaCl?

El problema es realmente confuso, ya que PNaCl todavía va a ser compatible con ChromeOS. Esto se debe a que proporciona la única forma de ejecutar código nativo en Chromebooks. Esta no es una buena situación para Google y es probable que también este soporte quede obsoleto en un futuro no muy lejano. Después de todo, quién va a pasar el tiempo trabajando en una aplicación PNaCl para ChromeOS, considerando que la tecnología ya no es parte de Chrome.

Google ha preparado algunas ayudas para la migración a WebAssembly, pero esencialmente todo lo que se debe hacer es recompilar el código C/C++ a WebAssembly después de cambiar todas llamada PPAPI a las API web estándar. Obviamente habrán tecnologías que WebAssembly no va a soportar un tiempo, si es que alguna vez llega a soportarlas.

El anuncio anima de esta forma a los programadores a pasar sus aplicaciones a WebAssembly:

Con el lanzamiento de WebAssembly, la plataforma web ha ganado una base para una nueva generación de aplicaciones web rápidas e inmersivas que se ejecutan en cualquier navegador. ¡Estamos emocionados de ver lo que los desarrolladores crean a continuación!

Muchos desarrolladores comentan que migrar a cualquier tecnología basada en JavaScript no es para ellos. Algunos dan razones racionales, como que WebAssembly es demasiado lento, pero sobre todo hay una profunda aversión de al lenguaje de programación JavaScript y por lo tanto cualquier cosa basada en el. El problema más grande que tiene WebAssembly es que sigue siendo inmaduro y tomará tiempo para que se desarrolle hasta el punto en que es iguale a PNaCl, pero por ahora Google está a bordo, deberíamos ver esto como un progreso hacia un lenguaje cross-browser viable que está más cerca a velocidades de ejecución nativas.