domingo, 28 de mayo de 2017

Hardware tokens para manejar la seguridad digital

Igual que existe el DNIe que guarda en su interior un par de certificados digitales para poder firmar y cifrar archivos y autenticar la identidad, también existen dispositivos USB que permiten hacer lo mismo usando protocolos como OpenPGP.

He estado buscando un rato posibles dispositivos para para dichos usos así como utilización de contraseñas seguras y de manera segura.

Con lo que he hurgado en Internet estos han sido los resultados obtenidos:

YubiKey es el token más conocido, se vende también en Amazon. Requiere de software para su uso y está empaquetado al menos en Ubuntu y Debian. Hay varios modelos: USB, con NFC, USB Type-C, tamaño compacto, normal, etc.
Soporta protocolos de contraseña de un sólo uso, almacenamiento de certificados X.509, etc.
Su última generación, YubiKey 4, utiliza software de código cerrado. El diseño del dispositivo nunca ha sido libre o abierto.
Es el más veterano y el que a día de hoy ofrece mayor facilidad de uso junto con NitroKey.

NitroKey ofrece la misma funcionalidad que el YubiKey, con el añadido de tener un diseño abierto del hardware y el software. Dispone de una versión con almacenamiento cifrado. De igual modo que el YubiKey, el software de NitroKey también está disponible en los repositorios de Ubuntu.

USBArmory es un dispositivo de seguridad con múltiples funciones. Elige qué instalar y cómo quieres configurarlo. Monedero de bitcoin, almacenamiento cifrado, gestor de contraseñas, contraseñas de un solo uso, OpenPGP, enrutador de VPN y Tor, etc. Es un ordenador de bolsillo. En el repositorio Github del fabricante (Inverse Path) hay varias guías de las distintas maneras de aprovechar el USB Armory. Es un ordenador del tamaño de un USB: ARM Cortex A8 800 Mhz + TrustZone, 512 MiB DDR3 y ranura MicroSD. Los esquemas de la PCB están disponibles para editar con KiCad.

FST-01 viene a ser un USB Armory pero de menor capacidad. Utiliza un microcontrolador por lo que no es tan genérico como USB Armory: ARM Cortex M3 72MHz, 128 KiB de ROM y 20 KiB de RAM. El SO que corre es Gnuk. Este chisme es equivalente a un YubiKey o NitroKey.

Gnuk es un firmware para dispositivos empotrados como el FST-01. Permite utilizar los microcontroladores disponibles en una memoria USB para usos de cryptotoken. Hay disponibles esquemas de los dispositivos para KiCad.

La OpenPGP card sirve para generar claves privadas en su interior y usarlas con un lector de tarjetas como una tarjeta normal de seguridad, pero con OpenPGP. También permite importar claves privadas a la tarjeta.

De todos estos dispositivos el más interesante sin duda es USB Armory, seguido por Nitrokey por si no quieres liarte la manta a la cabeza. Gnuk/FST-01 es de manitas. Relación utilidad/precio baja.

sábado, 27 de mayo de 2017

Casos aislados sigue actualizándose

Pues eso, que la página sigue aumentando de contenido. Hoy sabemos que un intermediario del PP pidió 600.000 euros por una adjudicación. Está vinculado a la Gürtel. Todavía no está en Casos Aislados. 600K adicionales para Gürtel.

El monto total de la trama, sin contar estos 600K, asciende a 89.587.513.251 €, desde la anterior entrada del blog (83.443.875.539 €) va un aumento de 6.143.637.712 €.

martes, 23 de mayo de 2017

La nueva generación de GPUs de Nvidia, Volta, por fin implementa SIMT

Desde que Nvidia creó CUDA siempre ha hablado de que sus procesadores gráficos son SIMT (Single Instruction Multiple Thread). Pero dicho concepto estaba muy lejos de la realidad, porque hasta Volta lo que implementaban era en realidad SIMD con predicación.

En el caso de CUDA los Warps eran el Thread. Y cada elemento de dicho Thread (Warp) se etiquetaba con un predicado que indicaba si una determinada instrucción iba a ser aplicada a dicho miembro del Thread. Una GPU de Nvidia es básicamente una máquina vectorial (Cray-1) que procesa vectores de 128 bytes (un Warp son 32 elementos de 4 bytes = 128 bytes). Por tanto eso significa que en un condicional un Thread ejecuta todo el código, incluido la rama que no se calcula, malgastando ciclos (ocupación de la GPU en términos de Nvidia). Un código con muchas bifurcaciones era por tanto bastante perjudicial para una GPU. En este link hay una explicación de los distintos tipos de paralelismo a nivel de hilo, aunque para ello emplean el término SIMT para describir el procesador vectorial que son las GPUs de Nvidia (diapositivas SIMD vs. Vectorial o SIMT como lo llama Nvidia).
if (a == b) {
    c = a*b + 10;
} else {
    c = a*b - 35;
}
En el código anterior, si todos los elementos de los vectores fueran iguales (
a[i] = b[i]
) todos los predicados estarían marcados como falso (no ejecutar) para el camino del «else». Algo que en un hilo de verdad tomaría hasta 4 ciclos (1 de comparación, 1 de comprobación, 1 de cálculo, 1 de salto) en las GPUs de Nvidia tomaba hasta 5 ciclos (+1 de cálculo del else). Con bifurcaciones cuyo cuerpo contenga múltiples instrucciones la diferencia es aún más notable.

En el GTC 2017 se presentó Volta que incorpora lo necesario para denominar Thread (hilo) a cada elemento de un Warp: el contador de programa. Ahora cada elemento del Warp tiene su propia dirección de memoria de instrucciones, pudiendo ejecutar código de manera independiente en vez de avanzar todo el Warp de manera síncrona (lockstep) por el código como si fuera una apisonadora llevándose por delante todo lo que haya. En el blog de Nvidia explican las novedades de Volta más detalladamente, incluido lo del contador de programa (program counter) para cada uno de los elementos del vector.

Esto permitirá aumentar la eficiencia en el uso de la GPU ya que hay más granularidad a la hora de poner cosas en ejecución. Antes se planificaba a nivel de vector y ahora el procesador puede planificarse a nivel de elemento del vector como si fueran hilos de un procesador escalar, aunque sin serlo. El compilador se encarga de generar el código con la distribución adecuada de datos para el procesador.

¿Y cuál es pues la diferencia con SIMD? Con las instrucciones SIMD en un procesador superescalar los datos han de estar consecutivos en memoria mientras que con un procesador vectorial no es necesario, aunque si deseas máximo rendimiento deben estarlo para no tener conflictos en los bancos de memoria. En las últimas generaciones de procesadores Intel se implementaron instrucciones de scatter y gather que permiten leer y escribir en direcciones no consecutivas de memoria por lo que esa diferencia también ha desaparecido. Adicionalmente Intel ha implementado también los predicados para las instrucciones con la última versión de AVX: AVX512. Con esa base Intel desarrolló los aceleradores Xeon Phi, compitiendo con las GPUs de Nvidia en el mercado de HPC, big data, cloud computing, etc.

Con el cambio en Volta cada línea SIMD tiene su propio contador de programa así que para emular un funcionamiento similar con un procesador de Intel o AMD habría que tener tantos hilos como hilos en CUDA y utilizar un subconjunto de los mismos para el código SIMD. Un modelo de programación que lo pone fácil es OpenMP y su #pragma simd. Con un número de hilos habitual (1 por núcleo p.ej.) permite indicar regiones o funciones para ejecutar en modo SIMD, asignando los bloques de datos a procesar de forma vectorial a cada hilo según sea necesario. Como en el caso de CUDA, el compilador se encarga de generar el código adecuado, con la distribución adecuada de iteraciones según el patrón de acceso a los datos.

sábado, 20 de mayo de 2017

Stop stop antenas

Stop a los que estopan antenas. Porque estas ideas son fruto de la ignorancia. Las antenas móviles emiten actualmente en el espectro de los 800-2600 Mhz. La televisión lo hace en el espectro de 490-690 Mhz. Y antes lo hacía en el espectro 490-858 Mhz. Varias décadas. Desde los años 60 aquí en España.
Y esas antenas lo hacen a una potencia muy superior a la de cualquier antena móvil por el alcance que deben tener. Por lo que los que viven cerca de las antenas de televisión deberían estar ya achicharrados y con el cerebro deshecho de tanta onda electromagnética.

Quitar antenas lo único que logra es empeorar el servicio y perjudicar a los usuarios del teléfono e Internet móviles. Las antenas que quedan están más alejadas y han de emitir con mayor potencia. Los móviles de los usuarios tienen que emitir también con más potencia para poderse comunicar con las antenas móviles. Por lo que el perjuicio es mayor para los que desean usar el teléfono e Internet móviles.

No hemos de olvidar que hay otras tecnologías como el WiMax, que emplea también comunicaciones inalámbricas en la banda de los 3.5 Ghz. O el LiFi, que emplea bombillas para transmitir información mediante pulsos de luz, sólo que con un ancho de banda aceptable: en vez de oscilar a 60 Hz lo hace a varios Ghz. Los monitores TFT-LCD de ordenador y los monitores CRT (de tubo) también emiten radiación electromagnética. Porque la luz es radiación electromagnética. Pero a dichas frecuencias y energía no es ionizante. La única radiación electromagnética capaz de dañar las células de nuestro cuerpo es la ultravioleta. Este tipo de luz tiene muy alta frecuencia, tiene una elevada cantidad de energía pudiendo romper los enlaces de los átomos de nuestras células, convirtiéndolas en iones (átomos sin electrones) por arrancar los electrones que llevan.

De hecho, según este artículo de Xataka una antena de telefonía móvil emite tanta radiación como una bombilla de 100W a 1 kilómetro.

Calentar comida con microondas no provoca comida cancerígena. El principio por el que funciona un microondas es el mismo que el de la resonancia magnética. Sólo que la frecuencia de emisión y su longitud de onda resultante es la misma que la del tamaño de las moléculas de agua por lo que las mueve por inducción magnética, las moléculas absorben las ondas en vez de hacer rebotar dichas ondas, lo que efectivamente se traduce en un aumento de temperatura. El calor es un resultado de la agitación de las moléculas de un cuerpo cualquiera. Cuanto más agitación más calor, cuanto más reposo más frío.
El mismo efecto se produce en la retina de nuestros ojos. Son células preparadas para ser activadas por las ondas electromagnéticas de la luz. Son sensibles a dicha radiación y por eso la vemos. Eso es también un efecto sobre las células de nuestro cuerpo. Y es por ello que a veces la luz puede provocar que los ojos nos duelan. Un exceso de excitación. Por parte de unas células sensibles a dicha radiación, preparadas para detectar, vibrar, calentarse con dicha radiación.

Todo esto viene a cuento del hecho de que están quitando antenas y me van a joder la cobertura una serie de creencias religiosas. Y encima a cambio de algo que los creyentes consideran perjudicial: más potencia cancerígena para las antenas restantes y los móviles gastando más batería para emitir (y más potencia para provocarme cáncer, claro).
A vivir en medio del monte o en un pueblo sin ninguna antena los ponía yo. Luego andarían deseosos de hacer un contrato para que les pusieran una antena móvil.

A continuación, un vídeo emitido en RTVE acerca de las antenas móviles.



En el vídeo se menciona que la Unión Europea reconoce que las antenas sí que provocan cáncer infantil. Eso es mentira. Probablemente se refieran a éste estudio.
We found an association between increased childhood leukaemia incidence and mortality and proximity to TV towers
Eso significa que han encontrado una correlación entre mortalidad infantil y las antenas de televisión. Casualmente en la muestra estudiada han encontrado una mayor mortalidad infantil. Pero todos sabemos que correlación no implica causalidad. Se olvidaron de la sección «parcialidad del estudio» en el que se describen problemas de efectos de otras variables no tenidas en cuenta. Finalmente, el estudio concluye que:
More detailed studies (e.g., relating cases to power density contours) are required to replicate any association and to look for dose-response relationships before any conclusions can be drawn
Sin un estudio que analice los resultados dependiendo de la dosis aplicada no hay nada que decir. Y bueno, la teoría de la física ahí está. Se harán y harán estudios pero ninguno podrá concluir nada porque nadie está interesado en que se sepa la verdad. Para ello basta con someterse a dosis de radiofrecuencia. Sin embargo parece ser que los turistas se exponen libremente en la playa para unos años más tarde tener cáncer de piel, recibiendo radiación, ésta vez sí, ionizante.
El estudio al que se hace referencia por parte de JL Bardasano habla de la disminución de melatonina en el plasma de los ratones al exponerse a ondas de extrema baja frecuencia. El ser humano también cambia sus niveles de melatonina según el color de la luz al que sea expuesto ya que hace creer al organismo que es de noche o de día. De ahí los famosos filtros de luz azul. Otro elemento cambia los niveles de melatonina es la cafeína, que la suprime.

The pineal gland has been considered a magnetic receptor organ that regulates circadian rhythms by means of the secretion of melatonin, a potent oncostatic agent that prevents the initiation and promotion of cancer. ELF electromagnetic radiation, similar to that generated by power lines, can alter melatonin plasma levels. To study this effect, 4 OF1 mice generations have been reared subjected to a lifelong 15 μT, 50 Hz magnetic field action. This magnetic field was generated inside a Helmholtz coil system.
Así pues, ¿las ondas electromagnéticas realmente afectaban a los niveles de melatonina o era el ruido de las bobinas del «horno microondas» en el que permanecían los ratones bajo el campo electromagnético generado? Recordemos que las máquinas de resonancia magnética emiten un ruido bastante fuerte con el que puede ser difícil dormirse así como también mucha gente es capaz de oír el zumbido característico de las bobinas de las fuentes de alimentación de televisiones y ordenadores (coil whine). Todos sabemos que dormir mal no es bueno para la salud a largo plazo.


El señor Bardasano es acusado de vender un producto fraudulento para protegerse de las ondas de la telefonía móvil. Un «salvaondas». Un móvil al que se le bloquean las ondas no puede funcionar. Quizá quiso ganarse un extra por algo inocuo (tanto en el bueno como en el mal sentido de que no funciona), sin más. Pero ahí está la duda de si es un aprovechado cuenta milongas. Respecto al artículo del salvaondas, cito textualmente:
Cuanta menos cobertura tenga el móvil, más potencia de ondas electromagnéticas necesita para poder lanzar la comunicación y que ésta llegue a las antenas receptoras
Respecto a su estudio con sordos en una jaula de faraday, lo único que indica es una alteración en las lecturas del cerebro al ponerse en marcha el teléfono a máxima potencia (durante una conversación). Sin embargo el teléfono está siempre emitiendo ondas, esté o no en curso una conversación. Los resultados mostrados no parecen ir más allá de lo que se puede conseguir con cosas como ésta. Es decir, es una respuesta normal. El cerebro es una máquina bioeléctrica. Es obvio que puede detectarse influencia de campos eléctricos externos, pero eso no provoca cáncer. Son los mismos campos que se utilizan para estudiar su funcionamiento. Además, no se indica que se haya aislado de alguna forma los sensores de la cabeza de los pacientes con respecto al teléfono móvil, por lo que puede haber algún tipo de acoplamiento de señal como ocurre con los altavoces de un ordenador o la radio FM.

El estudio aparece en la revista Environmentalist, con un índice SJR (SCImago Journal Rank) de 0.187 e índice SNIP de 0.934. No indican una revista de impacto. En el 2013 Scopus dejó de hacerle seguimiento. Uno de los artículos citados, éste (índice SJR de Neuroscience 0.985, también bajo, y el ránking de «Environmental sciences»), dice lo siguiente:

The present data lend further support to the idea that pulsed high-frequency electromagnetic fields can affect normal brain functioning, also if no conclusions can be drawn about the possible health effects.
El cerebro se ve afectado por pulsos electromagnéticos, pero de ahí no se pueden sacar conclusiones sobre cuestiones de salud. Como ya he mencionado antes, el cerebro se estudia precisamente con pulsos electromagnéticos, mismamente con los de una máquina de resonancia. Irrelevante.

domingo, 14 de mayo de 2017

Casos Aislados

Hoy con ustedes, casos aislados. Esta web mantiene un seguimiento de todos los casos de corrupción.
Descripción:
En Casos-Aislados.com encontrarás datos, estadísticas que se actualizan automaticamente. Cada día se cargarán más Casos, por lo tanto, éstas cifras seguirán en aumento...
A este instante, hay 176 Casos Aislados registrados en la base de datos, muchos están en la lista de espera. Se hará lo posible para cargar todos los datos en los próximos días.
Pero recuerda! Tú también puedes Colaborar a través del formulario disponibles en los Casos Aislados sin datos.

La comunidad autónoma con más casos de corrupción es Andalucía.
La salida a bolsa de Bankia supone un 55% del coste de la corrupción.
Caso CAM+Malaya+CCM+Edu (cursos de formación) supone un 26% adicional.
El PP es el partido más corrupto seguido del PSOE. CDC está en tercer puesto a una larga distancia.

El coste total estimado de los casos de corrupción asciende a 83.443.875.539 millones de euros. 83 mil millones de euros.

Se manejan cifras similares a las del artículo del Huffington post de la anterior entrada de este blog. Aunque el Huffington incluía en sus 90.000 millones los costes indirectos. De esta web no tengo claro si incluye los costes indirectos o no: subdesarrollo, pérdida o degradación de servicios públicos, etc.

jueves, 27 de abril de 2017

La corrupción cuesta a los españoles 90.000 millones al año

La corrupción cuesta a los españoles 90.000 millones al año

Gürtel, Bárcenas, Palma Arena, Nóos, Cooperación, Imelsa, Fundación, Malaya, Orquesta, Taula… Más de 175 tramas desde que comenzó la democracia, 126 originadas solo entre PP y PSOE, 1.660 causas en 2013, en datos del Consejo General del Poder Judicial, y hasta 125 casos de corrupción en 2016, según la hemeroteca de El Huffington Post.
La corrupción saquea las arcas del Estado, las reservas que financian los servicios al ciudadano, sus derechos y prestaciones sociales, denuncia Jesús Lizcano, catedrático de Economía Financiera y Contabilidad de la Universidad Autónoma de Madrid y presidente del capítulo español de Transparencia Internacional, la primera entidad mundial de prevención y lucha contra la corrupción, este viernes 9 de diciembre, Día internacional contra la corrupción.
La Comisión Nacional de los Mercados y la Competencia (CNMC) cifra en 90.000 millones de euros al año el coste de estos delitos en España. Más de la mitad, 47.500 millones de euros, el 4,5% del PIB (toda la corrupción por tanto supone cerca del 10% del PIB, cuando la media mundial supone el 5% del PIB. España es el doble de corrupta que la media mundial), corresponde a sobrecostes administrativos por las deficiencias en el control de las contrataciones públicas. Por esto dice Jesús Lizcano que la corrupción es un impuesto implícito al ciudadano, una pérdida, un gravamen imprevisto que no se factura y no se presupuesta. Los otros 40.000 millones son absorbidos, directa o indirectamente, por las muchas formas de corrupción existentes.

En dicho artículo del Huffington Post no se tiene en cuenta el nuevo caso de corrupción de la Operación Lezo. Tampoco habla explícitamente de las cajas de ahorro ni de autopistas, aeropuertos, AVE... contrataciones públicas.

Mientras, Podemos quiere presentar una moción de censura y PSOE y Ciudadanos ya han dicho que pasan del tema.

Bien, para digerirlo fácil, el artículo sólo hace una valoración económica, pero no realiza ningún tipo de análisis humano. Sanidad, educación, transporte, ecología, infraestructuras... todo se va al guano.

Mientras, en el congreso y entrevistas en los medios de comunicación subordinados, todo son sonrisas y aires de victoria. Hasta que los pillan. Si nadie dice nada, ellos siguen trincando, son casos aislados, ranas, etc e incluso echan a aquellos que osen denunciar la corrupción dentro del partido. Mientras desfavorecien el desarrollo del país así como no cumplen con las demandas de sus jefes: los ciudadanos que les permiten estar donde están.

El Partido Popular es una organización criminal y ha de pagar por sus crímenes. Todavía no lo ha hecho.

Lista de políticos imputados. (investigados según el neolenguaje)
Lista de casos de corrupción.

En España hay dinero de sobras, pero lo que sobran son chorizos.

domingo, 23 de abril de 2017

Navegador web Firefox: modo lectura

Una de las funcionalidades que ofrece Firefox es el modo lectura. El modo lectura refresca la pestaña activa en ese momento en otro formato. Cambia el estilo de la página. Si la página puede ser formateada, aparecerá el icono de un libro abierto en la barra de direcciones del navegador. Al pulsar dicho botón se refrescará la página y se mostrará con un formato de letras grandes sin elementos que distraigan la vista, ofreciendo una experiencia de lectura más relajada y que permite centrarse en el contenido del artículo.

En el círculo verde el botón para refrescar la página en modo lectura

Firefox con el artículo en modo lectura

Los controles que permiten cambiar el fondo de la página así como el tamaño de la letra, la longitud de cada línea y el interlineado
Firefox también tiene la opción de leer el texto en voz alta

Este modo de lectura también funciona con Firefox para Android, donde se pueden apreciar mucho mejor sus ventajas debido al limitado espacio en pantalla de los dispositivos móviles.

La página resulta inmanejable sin el modo lectura. ¡Pero tenemos el librito abierto en la barra de direcciones!

Al activar el modo lectura, el texto aparece perfectamente formateado, rellenando la pantalla

Al pulsar el botón inferior derecha mostrado en la pantalla previa, nos aparecen las opciones para cambiar el tamaño de la letra así como el color de fondo

Las imágenes de la noticia aparecen con el tamaño justo para la pantalla del móvil

Gracias a este modo de lectura, Firefox permite leer páginas como si se tratara de un eBook. Resulta muy práctico y eficaz para periódicos y blogs.

domingo, 16 de abril de 2017

Blogs de desarrollo

En este repositorio de Git Hub hay cientos de blogs, tanto de empresas como de individuos, dedicados a comentar dimes y diretes de bibliotecas, consejos y cambios en plataformas. Están orientados principalmente al desarrollo web, cloud y Android. El idioma es el inglés.

Dicho repositorio lo encontré mientras ojeaba aplicaciones en F-Droid. Concretamente, a través del blog de la persona que hace las Simple Mobile Tools. Tiene una entrada con consejos de optimización de aplicaciones para Android (nada del otro mundo) e incluye un enlace a dicho repositorio Git Hub hacia el final de la entrada.

El repositorio con los enlaces a los blogs dispone de un OPML listo para añadir a tu lector de RSS. A día de hoy, añadir ese OPML supone 9600 entradas sin leer, eso suponiendo un límite de 10 entradas actualizadas por RSS.

sábado, 15 de abril de 2017

Gadget Bridge: aplicación libre para pulseras de actividad

Dentro de la categoría de dispositivos vestibles encontramos a las pulseras de actividad. Estos aparatos permiten medir el ritmo cardíaco y la cantidad de pasos que hacemos en un recorrido. Si la pulsera tiene pantalla nos permite ver la hora como si de un reloj se tratara y recibir notificaciones de llamadas o mensajes de la aplicación de mensajería que utilicemos.

Estas pulseras suelen traer asociada una aplicación móvil de los fabricantes de las mismas. Estas aplicaciones mantienen también actualizadas las pulseras. Cuando el fabricante de turno añade nueva funcionalidad a su aplicación suele incluir también en el paquete de actualización el «firmware» correspondiente para la pulsera: la aplicación envía el nuevo «firmware» a la pulsera para que sea compatible con la nueva funcionalidad; nuevos iconos, detección más precisa de la actividad que estemos realizando, etc.

Por suerte las pulseras no son únicamente compatibles con la aplicación del fabricante. Son cacharros que se conectan vía Bluetooth por lo que basta con que la aplicación le envíe los mismos comandos que la del fabricante. Por ejemplo, en el caso de la Xiaomi Mi Band 2, Xiaomi ofrece para su pulsera la aplicación Mi Fit. Sin embargo, existe la aplicación «Mi Band Notify and Fitness» con más opciones de configuración. Pero claro, las versiones actualizadas del firmware de la pulsera se distribuyen con la aplicación Mi Fit.

No hay problema, en la cuenta de GitHub Freeyourgadget encontraremos un repositorio llamado Gadgetbridge que contiene el código fuente de una aplicación Android que nos permite descargar la última versión de Mi Fit, extraer el firmware para la pulsera y actualizar la pulsera. La aplicación Gadgetbridge está disponible en F-Droid.

Gadgetbridge nos permite usar dispositivos Pebble, Mi Band (1A, 1S, 2), Vibratissimo, Liveview y HPlus. En el léeme de Gadgetbridge aparece descrita la funcionalidad soportada para cada dispositivo. Notificaciones y mediciones. Lo que cabría esperar. Además, Gadgetbridge no requiere conexión a ninguna nube.
La aplicación está en desarrollo activo, con cuatro personas trabajando en ella.

Si quieres enviar datos a un proveedor externo (nube) como Google Fit puedes usar RunnerUp. Si optas por una aplicación independiente de proveedores externos, ForRunners es una aplicación sin conectividad alguna y su interfaz es parecida a Google Fit. Emplea OpenStreetMap y permite conectarse al monitor de ritmo cardíaco. No envía datos a ningún proveedor externo. Permite exportar tus recorridos en formato GPX, listo para subir a OpenStreetMap, por ejemplo.

ForRunners. Información de una sesión, incluye mapa de OSM. También te datos de velocidad y tiempo por cada kilómetrico.

miércoles, 5 de abril de 2017

Videojuegos libres

Hay software libre para todo, incluido los videojuegos. ¿Son los videojuegos privativos buenos o malos? La postura del Richard Stallman está en contra de los videojuegos privativos y con DRM. Muchos jugadores de pro también lo están aunque no lo sepan: DLC's en vez de juegos completos, necesidad de estar conectado a Internet para poder jugar en modo historia/de un solo jugador, limitación de instalaciones y un largo etcétera que quitan derechos al usuario. El DRM (Digital Rights Management) no consiste en gestionar los derechos del usuario sino de gestionar los privilegios de la línea editorial que publica el videojuego.
Las videoconsolas son en sí mismas un sistema privativo aún más restrictivo: dichos juegos están atados a una plataforma de corta duración. Cuando se deje de vender y no puedas conseguir ningún dispositivo o los servidores sean apagados, dejarás de poder hacer uso de ella. Si los juegos fueran libres, se podría adaptar el juego a una plataforma cualquiera y eliminar las partes que requieren la conexión a Internet o los servidores de la plataforma para la que inicialmente iban destinadas.
Hoy día, con el hardware móvil tomando cada día más fuerza, puede llegar un momento en el que tus videojuegos para PC dejen de ser jugables si se realiza una transición a hardware basado en tecnología móvil. Y así, tu catálago con décadas de historia será inservible y se perderá como lágrimas en la lluvia, salvo los recuperables mediante emulación.

Existe una wiki (Libre Game Wiki) que recopila juegos libres. Un foro (Free Game Dev) para desarrolladores de videojuegos libres y un grupo de activistas (LibrePlanet Gaming Collective) por los videojuegos libres, con página en Reddit.
Un buen sitio donde publicar juegos libres para llegar al gran público es Good Old Games (GOG), ya que los juegos que hay ahí no tienen DRM, así que sólo falta contenido libre. Por ejemplo, un GOGMix de 6 juegos libres.

Si te gustan los RTS, el 0 .A.D. tiene buena pinta. De dicho juego ya hablé en una entrada anterior, por su campaña de donaciones. El Battle for Wesnoth, aunque sus gráficos 2D quizá no le hagan muy interesante.

En cuanto a juegos de puntería en primera persona, los más conocidos son Xonotic, Warsow o Urban Terror entre otros. La parte artística de Urban Terror no es libre.

martes, 28 de marzo de 2017

Cómo abrir un platano de la manera correcta

En los consejos de la pantalla de inicio de Mozilla Firefox me aparece el siguiente mensaje:

Life hack: la forma más sencilla de abrir un plátano es por el extremo que no tiene tallo. Como hacen los monos.


Busco en YouTube «abrir plátano»:




Estruja por abajo y abre 😮😮😮😮😮😮

sábado, 25 de marzo de 2017

Motocicletas y «moto-bicis» eléctricas [Actualizado 27/03/2017]

La última vez que hablé de vehículos eléctricos puse un vídeo del sistema de intercambio de baterías automatizado de Tesla Motors, un sistema que al final no pudo ser.

Hoy vengo a comentar la aparición de motocicletas eléctricas durante el último año por parte de Bultaco y Volta.
Actualización: Parece ser que la Brinco puede venir con un defecto de fábrica de manera que la rueda trasera oscila, lo cual puede provocar un desgaste prematuro. En este blog un comprador de 6 Brinco informó a su vendedor y éste se lavó las manos así como la propia Bultaco, indicando que eso era un funcionamiento normal.
Bultaco ha lanzado una moto con 4 variedades distintas según el uso principal que se le vaya a dar:
  • Brinco R
  • Brinco RE
  • Brinco C
  • Brinco S
Se diferencian en cosas como el tipo de rueda, sillín o amortiguadores.
La R es una motocicleta sin homologar, por lo que sólo sirve para uso privado, en circuitos privados. La RE, C y S homologan bajo categoría L1e, ciclomotor eléctrico. Incorporan luces de posición, luz de cruce y carretera así como un retrovisor. En Autobuild hacen una prueba de la Brinco S pensada para entornos urbanos. En el vídeo que lo acompaña se puede apreciar el silencio cuando no hay música de fondo en el vídeo. La motocicleta es muy compacta con un peso de 40 Kg aproximadamente. Se asemeja más a una bicicleta de pedaleo asistido que a un ciclomotor al uso. De lo compacta que es el probador la llevó incluso en transporte público (cercanías RENFE) como si tal cosa.
La batería es desmontable así que se puede cargar independientemente de la carrocería de la motocicleta. El motor tiene una potencia máxima de 2 Kw (3,4 CV), con un par de 60 Nm y velocidad punta de 45 Km/h aunque si se asiste pedaleando puede ir más rápido (overdrive). Incluye una batería de 1,3 KWh que le da una autonomía de entre 100 y 50 Km según el modo (Eco, Tour, Sport). Se puede conducir con permiso AM o B.
El precio es quizá un tanto elevado, entre 5150 y 5950 euros, según el modelo. En comparación con una scooter que se vender por unos 2000 euros, hay que ver si se puede rentabilizar con el ahorro en gasolina así como el hecho de poderla llevar en cualquier sitio, incluido el techo de tu coche.

Brinco S
Algunos quizá conozcan la Rapitan. Ésta es una motocicleta más grande (¿equivalente a 250 cc tal vez? y potente, también eléctrica, pero todavía está en fase de prototipo. Volta dispone de un modelo intermedio, por tamaño equivalente a 125cc:
Volta Sport
Está disponible en 4 variaciones:
  • Volta Sport
  • Volta City
  • Volta Forest
  • Volta Supermotard
Cada una de las versiones dispone de un mapa de entrega de potencia distinto.
La Volta tiene una velocidad punta de 120 Km/h, par motor de 67 Nm, potencia máxima de 25 KW (34 CV) y un peso de 135 Kg. Su autonomía es de 70 o 100 Km según escojamos batería de 3 o 4 KWh. Dicha batería no es desmontable, sin embargo la motocicleta dispone de cargador integrado permitiendo tener el vehículo cargado de 0 a 100% en 3 horas. Se puede conducir con permiso A1 o B.
Su precio está entre los 8.800 y los 10.500 euros, según versión.

Ambas motocicletas incluyen sistemas de conectividad tales como GPS, bluetooth y una aplicación móvil que permiten mantener la moto localizada o saber el estado de la batería entre otras cosas. Para ello requieren una línea de datos que la Brinco ya lleva incorporada y activarla es opcional. En el caso de la Brinco el arranque requiere de una pulsera NFC, incluida en la moto. Entre el GPS y esto, los cacos lo tienen difícil para hacerla desaparecer.

La Brinco S parece estar muy bien para ir por ciudad, ya que puedes meterla en transporte público como si de una bicicleta se tratara, al menos ahora que hay vacío legal :P Pienso que no habría que regular en contra de ello. Limitar en todo caso la masa del ciclomotor eléctrico. Claramente una Volta o similar no son aptas para llevarlas en el metro, tren o autobus. Para hacer recorridos interurbanos una Volta sería mejor opción por tener mayor capacidad de batería, permitiendo velocidades mayores.

El centro de gravedad de la Volta está muy bajo por lo que su manejabilidad debe de ser muy buena. El de la Brinco está algo más distribuido, con el motor integrado en la rueda trasera al más puro estilo bicicleta de pedaleo asistido.


El plan de ayudas del gobierno para la compra de vehículos eléctricos sólo es aplicable para aquellas motocicletas con una batería superior a 3 Kwh, así pues la Bultaco Brinco queda fuera de las ayudas. Eso significa que la Volta se puede adquirir por tan sólo 1500-2000 euros más con respecto a la Brinco si añadimos el descuento de 1500 euros por el Plan MOVEA 2017 que aún no se sabe cuando se empezará a aplicar.

La idea del gobierno era obtener 150.000 matriculaciones de vehículos eléctricos en el año 2020, pero al ritmo que van no se logrará. Mientras, las rondas y radiales continuarán atascadas con vehículos de combustión no compartidos transportando una única persona, lo cual supone una eficiencia bastante pobre:


70/1270= 6% de la masa transportada pertenece al conductor. Sabiendo que sólo un 40% de la energía de la gasolina se convierte en energía cinética, obtenemos un resultado bastante mediocre. De ese 40% un 6% se dedica al transporte de la persona. Esto nos deja con un resultado de aprovechamiento del 2,3% de la energía contenida en la gasolina para transportar a la persona. El 97,7% restante se pierde en mover el acero del coche, los sistemas eléctricos (calefacción, aire acondicionado, radio, etcétera) y calor. Eso sin añadir la contaminación atmosférica así como la contaminación acústica. Un despropósito. Si en Pekin se abusara del coche como aquí en occidente se hace, estaríamos todos muertos, ahogados o bien con asma y tos constante.
Con un motor eléctrico se alcanza el 90% de aprovechamiento de la energía proveniente del enchufe. Si a ello le añadimos una mejor relación masa transportada/masa total al usar una motocicleta eléctrica del 35% (70/200), obtenemos un uso del 31% de la energía de la batería para movernos. Con una Brinco S de 39 Kg de peso, la relación masa/masa total es del 64%, por lo que estaríamos hablando de un aprovechamiento del 57% de la energía proveniente del enchufe eléctrico.
Visto así, el Plan Movea resulta desacertado al definir un mínimo de capacidad de la batería. Se promueven vehículos más pesados, menos eficientes. La eficiencia energética debería ser el objetivo de estos planes de subvención, en vez de capacidades de batería y valores absolutos sin importar el coste del vehículo más allá de un techo superior.

Una subvención proporcional a la eficiencia energética es lo que tendría que ser. ¿60% de eficiencia? Tanto por ciento de subvención sobre el valor del vehículo. Algunos dirán, ¿y qué pasa si yo comparto coche con más personas? Pues que 5 personas * 50 Kg (5 motos) son 200 Kg, muy lejos de los 1200 de un coche. Sin embargo la masa transportada media de un vehículo es la que es, no pasa de 2 personas. Sin embargo siempre queda el consuelo de poder usar los carriles para vehículos de alta ocupación sin estar altamente ocupado. O el plus de poder transportar a más personas o llevar más equipaje. Todo eso tiene un coste.

viernes, 24 de marzo de 2017

Más novedades de AMD [Actualizado 25/03/2017]

Desde los dos últimos posts hablando de RX Vega y Ryzen 7 han aparecido filtraciones acerca de lo que va a salir durante el segundo trimestre de este año: RX Vega, Ryzen 5 y Naples.


Pila gráfica en GNU Linux (2014, Wikipedia)

Comencemos por RX Vega. AMD desarrolla drivers libres para Linux junto con el software de espacio de usuario para GNU. En los últimos días se han publicado parches en los que se incluye el código necesario para hacer funcionar las tarjetas gráficas basadas en Vega. Se ha encontrado un total de 7 identificadores lo que potencialmente se pueden convertir en 7 gráficas distintas, tanto para mercado profesional como para el del consumidor.

Una primera ola de 100 parches con más de 40.000 líneas de código añadieron soporte en el driver DRM AMDGPU de Linux para la codificación y decodificación de vídeo con VCE y UVD, respectivamente. Acceso a la aceleración 3D mediante el módulo de espacio de usuario RadeonSI Gallium3D (Mesa 3D: implementación de OpenGL y otras interfaces), parches necesarios para el sistema DC de salida a pantalla lo cual permitiría soportar en un futuro FreeSync y otros añadidos de AMD. Y no menos importante, virtualización de la GPU mediante SR-IOV. A día de hoy Linux permite pasar hardware a máquinas virtuales pero claro, no de manera dinámica (tienes que arrancar el kernel con los parámetros adecuados para que no active el hardware).

Una segunda ola de 140 parches añadieron soporte OpenGL 3.1 y los sistemas VCE y UVD en el driver RadeonSI Gallium3D.

La tercera ola de parches son para el compilador LLVM 5.0, usado para generar el código que se ejecuta dentro de las GPUs a partir de código de shaders gráficos o cualquier API/lenguaje de cómputo en GPUs.

La quinta ola de parches añaden Vega a la biblioteca libdrm encargada de mediar entre el módulo DRM AMDGPU del kernel y el software en espacio de usuario (RadeonSI Gallium3D).

La sexta ola de parches son más añadidos para la virtualización mediante SR-IOV, clock-gating del chip y soporte a múltiples niveles de tablas de páginas de memoria virtual.

Y esto no es todo porque AMD también a publicado como código libre un framework para programar con Vulkan, Anvil. Este framework tiene un gestor de memoria, gestor de objetos, rutinas para cambiar entre cálculo FP16 y FP32, conversión en tiempo de ejecución de shaders GLSL a SPIR-V e integración con sistemas de ventanas XCB (X.Org/X11) y Windows. Al ser libre, si algo no se ajusta a tus necesidades siempre puedes cambiarlo ;-)

Rasterización fuera de orden con Anvil (GPUOpen)


Como podéis ver, el soporte de una GPU no es nada trivial e incluye múltiples componentes.

En cuanto a Ryzen 5, se están pudiendo comprar los procesadores de 4 y 6 núcleos antes de su puesta a la venta oficial el 11 de abril. Son idénticos a los Ryzen 7 pero con menos núcleos (y más baratos). Los precios:



Núcleos Hilos Frecuencia base Frecuencia Boost Caché L3 TDP Precio
Ryzen 5 1600X 6 12 3,6 GHz 4 GHz 16 MB 95 249 dólares
Ryzen 5 1600 6 12 3,2 GHz 3,6 GHz 16 MB 95 219 dólares
Ryzen 5 1500X 4 8 3,5 GHz 3,7 GHz 8 MB 65 189 dólares
Ryzen 5 1400 4 8 3,2 GHz 3,4 GHz 8 MB 65 169 dólares

Como podemos ver, AMD sigue dando el doble de núcleos por el mismo precio. En cuanto a precio, el Ryzen 5 1400 está entre un Core i3 6300 y un Core i5 6400, pero ofreciendo el doble de hilos. Un Core i3 son dos núcleos con 4 hilos y el Core i5 son 4 núcleos con 4 hilos (2C/4T y 4C/4T respectivamente). El Ryzen 5 en el mismo nivel de precio ofrece 4 núcleos y 8 hilos (4C/8T). Y todo esto con una mejora del 60% o más en rendimiento con respecto a los antiguos AMD FX en el mismo rango de precios y un consumo energético mucho menor. Los AMD FX tienen un TDP de 125W mientras que el Ryzen 5 lo tiene de 65W.

Naples. Naples es la gama para servidores de AMD. Como ya anoté en una de las actualizaciones del post sobre Ryzen 7, Naples es un procesador de 32 núcleos y 64 líneas PCI Express que se puede colocar en sistemas de hasta 2 sockets, para un total de hasta 64 núcleos, 128 hilos y 128 líneas PCI Express. Cada uno de estos chips tiene un total de 512MB de caché de nivel 3, lo cual da un total de 16MB de caché L3 por núcleo contra los 2MB de caché L3 de un Ryzen 7. Además, estos procesadores tienen 8 canales de memoria, cuadruplicando el ancho de banda disponible para cualquier dato que no entre en toda esa caché de nivel 3.
«Más de todo», logrando obtener 2-2.5x más rendimiento que el procesador de Intel para dos sockets con más núcleos.

Lo que venía a comentar es que se han filtrado los chipsets para placas de dos sockets y de un socket: el X399 y el X390. Con esto AMD tendría disponible el equivalente a los procesadores de gama alta HEDT de Intel: actualmente los Core i7 6950X y 6900K así como los Xeon E5 v5 26XX.
Un diagrama de una placa base de ASUS y de los dos chipsets a continuación:

Placa base con chipset X390. Nótese el código de colores del esquema
Diagrama con chipset X390, mismo código de colores

Diagrama con chipset X399

La plataforma HEDT de AMD tendría 4 canales de memoria RAM, lo que presumiblemente nos daría procesadores con un máximo de 16 núcleos y el doble de ancho de banda a memoria con respecto a los Ryzen actuales. 48 líneas PCI Express 3.0 (8 más que los HEDT de Intel) divididas en 44 líneas para periféricos conectados directamente al procesador y 4 líneas para el puente sur que se diversifican en conectores SATA, puertos Gigabit Ethernet, etcétera.
La plataforma para servidores de dos sockets se resumiría en más de lo mismo, doblando la cantidad de canales de memoria principal (doblando de manera efectiva el ancho de banda) así como aumentando la cantidad de líneas PCI Express.

Sin duda alguna son plataformas muy interesantes que plantan cara a Intel en todos los frentes. Excelentes niveles de paralelismo, concurrencia y multiproceso, bajo consumo energético y notable rendimiento mono hilo para las aplicaciones sin optimizar que aún lo requieren.

lunes, 13 de marzo de 2017

Videojuegos para PC y Blu-Ray

Una imagen (o dos) valen más que mil palabras:







¿Alguien se acuerda de la distribución de software en discos de 3½? Argghhh. Los que venden ordenadores tampoco ayudan, ya que siguen montando unidades DVD en vez de Blu-Ray. ¡Exige tu unidad Blu-Ray!

Tardarás menos tiempo en instalar tus programas. El Blu-Ray a 16x va a 72MB/s, lo que son 700 Mbps. Un DVD a 16x va a 22MB/s, 200 Mbps. Es decir, tienes que cambiar menos discos y vas más rápido por disco. La velocidad media va en la misma proporción.

Cualquier cosa conecta a través de USB 2.0 no puede pasar de los 300 Mbps, ya sean tarjetas de memoria o pendrives

En Amazon te puedes llevar 500GB en Bluray BDXL por 50 euros. Si son BDXL M-DISC por 91 euros (1000 años de durabilidad, según técnicas de laboratorio para envejecimiento acelerado).

No está de más recordar que Facebook y otras compañías usan blu-ray para su almacenamiento frío.

Añado:
  • España es un país en el cual las conexiones a Internet no tienen límite mensual de GiB. Pero hay otros países que sí tienen límites de tráfico como aquí los tenemos en las líneas móviles.
  • Si estás en movilidad no puedes andarte descargando 50 GiB por cada juego que te quieras instalar.
  • No puedes estar perdiendo el tiempo delante de la pantalla esperando a que te pida cambiar de disco. Con un único disco lo puedes dejar instalando y hacer otras cosas.
  • Los grupos que hacen cracks distribuyen los juegos reempaquetados en Bluray. Un ejemplo son los juegos de CPY Games. Qué pasa, ¿el pirateo da mejor servicio que comprar original? Esto ya ocurre con el cine...
Así pues, yo me pregunto: ¿porqué no hacen ediciones en DVD y en Blu-Ray como ocurre con el cine? Los juegos en Xbox 360 multi disco eran un peñazo para muchos jugadores. Los de PS3 mientras tanto disfrutaban de juegos que entraban en un único disco. Microsoft añadió unidad Blu-ray en Xbox One y ahora todo entra en un único disco.

¿Porqué el PC no tiene ediciones en blu-ray? ¿porqué? :'-(

domingo, 12 de marzo de 2017

Ronda de análisis de la GeForce GTX 1080 Ti

NVIDIA presentó en la GDC la GeForce 1080 Ti, tarjeta gráfica que viene a ocupar el hueco entre la 1080 y la Titan X (Pascal). Hoy 10 de marzo se publican los análisis en varios sitios web.


Esta GeForce es una Titan X con un controlador de memoria menos, por tanto también tiene menos ROPs, un bus a memoria más estrecho y 1 GiB menos de VRAM. El coste de esta tarjeta es de 699 euros lo cual supone un descuento de 500 euros con respecto a la Titan X.
El rendimiento es el que cabría esperar, igualando o superando a la Titan X. Según NVIDIA, hasta la fecha es la «Ti» que mayor incremento de rendimiento ofrece con respecto a la versión normal.
Acompañando al lanzamiento de la 1080 Ti, la 1080 normal recibe una rebaja de 100 euros en el precio y la 1070 de 50 euros.


Con estas rebajas y datos de rendimiento en la mano, sólo queda saber lo que rendirá la gama de AMD basada en la arquitectura Vega con su Nextgen Compute Unit (NCU) y el High Bandwidth Cache Controller (HBCC).

Vega será mostrada y puesta a la venta durante el segundo trimestre de 2017. Esto significa que puede que coincida en las cercanías de la GPU Technology Conference (GTC) de 2017, que se celebra los días del 8 al 11 de mayo, ambos incluidos. En la GTC NVIDIA también aprovecha para presentar nuevas GPUs, así pues quizá anuncie Volta, aunque sería algo pronto. Otra posibilidad es lanzar una nueva Titan con el dado entero. Tanto esta 1080 Ti como la Titan X Pascal no tienen los 3840 «CUDA cores» que ofrece el GP100 empleado en la Tesla P100. Una nueva Titan con el GP100 sería fiel con el planteamiento original de las Titan. Las dos primeras Titan no tenían el cálculo de coma flotante de 64 bits recortado. Eran Quadros+Tesla de bajo coste, bajo driver GeForce, sin ECC activado.

En HardOCP hacen una comparativa de precios de tarjetas NVIDIA a lo largo de los años incluyendo las variaciones por inflación en EEUU.



No ha sido la tarjeta de gama alta más cara de NVIDIA desde luego. La 8800 Ultra se lleva la palma de la mano. Ésta pertenecía a la primera generación de GPUs CUDA, con el chip G80.

sábado, 11 de marzo de 2017

AMD RX Vega

En el GDC AMD mostró varias demos de Vega y el potencial impacto del HBCC. El HBCC se aprovecha del hecho que los videojuegos suelen reservar más memoria de la que realmente usan, así pues con el HBCC se puede cachear los datos que se vayan a usar realmente y el resto dejarlos en la memoria principal del PC, evitando transferencias inútiles a través del bus PCIe y ahorrando memoria en la tarjeta aceleradora de gráficos y cómputo.
En la demo del GDC AMD limitó a 2 GiB de VRAM una Vega con 4 GiB mientras ejecutaban el Deus Ex. Dicho juego está pensado para ejecutarse con 4 GiB a ese nivel de detalle y resolución. Con el HBCC activado el juego se mostraba totalmente suave mientras que sin el HBCC iba a trompicones. El framerate mínimo aumentó en 2x con respecto a Deus Ex corriendo con la mitad de VRAM y el HBCC desactivado.

Así es como estaba conectada antes la memoria

Nueva disposición de la jerarquía de memoria en Vega

Antes todo pasaba por el controlador de memoria, y éste iba a la memoria principal de la tarjeta gráfica. En dicha memoria principal la CPU del host (el ordenador), por orden del driver, colocaba previamente lo que hiciera falta para la ejecución de los cálculos en la GPU.
Con la nueva jerarquía, se puede ver como la caché L2 pasa a ser cliente independiente del controlador de memoria y puede acceder directamente a la RAM del sistema sin pasar por la memoria integrada en la GPU (High Bandwidth Cache, pseudónimo de la memoria HBM2 que incorpora Vega). Con el High Bandwidth Controller se puede esocger servir la L2 desde la HBCache o desde algún otro periférico del sistema host. El controlador preferiblemente buscará primero en la HBCache el dato, si no está servirá la petición desde el exterior y cacheará esa información en la HBCache.

Memoria usada por el juego versus memoria reservada


Esto tiene una serie de ventajas: un menor consumo de memoria y poder dedicar el sobrante a otras cosas como cálculos físicos. O crear escenas más complejas con más objetos y/o texturas de mayor resolución. O aplicar efectos de iluminación con mayor consumo de memoria. El driver ya no tiene que reservar X cantidad de memoria por si acaso y transferirlo todo a la GPU para su ejecución. El HBCController se encarga de manejar la VRAM de la tarjeta como si fuera una caché.

AMD no dio todos los detalles del HBCC, así que aún faltan cosas por saber.
Obviamente también hay que contar con las mejoras de la NCU que son desconocidas más allá de tener cálculo mixto (mezclar coma flotante de 8, 16 y 32 bits) y un incremento en IPC máximo de 2x.
Con el cálculo mixto se permite rebajar la precisión de las operaciones de coma flotante de manera que necesitan menos bits. Así pues, se pueden poner más instrucciones en ejecución aunque con menos precisión cada una. Esto es útil en varios ámbitos. En el caso de los gráficos, se pueden representar mallas de elementos con mucha densidad como cabello, cuyo detalle individual no importa, pero sí que importa que el conjunto dé una sensación más realista.

Demo de la GDC mostrando lo que es posible con Rapid Packet Math

Vega incorpora también Tiled Rendering como ya implementó NVIDIA en Maxwell y Pascal.


Esto permite explotar mejor la jerarquía de memoria al dividir en cuadrantes la imagen a mostrar, ya que se renderiza cuadrante a cuadrante lo que va llegando de las etapas anteriores de «geometría» y «eliminación de píxeles que no se verán en pantalla» (polígonos tapando a otros polígonos). Hay reutilización de datos en la caché. De otro modo se envía todo el fotograma memoria principal y luego se vuelve a buscar en memoria principal para hacer el render del tirón.

Otras cosas presentadas por AMD en el GDC incluyen Liquid Sky, el equivalente a GeForce Now. Esto es posible gracias al soporte de virtualización incluido en Vega, permitiendo compartir la GPU entre varias máquinas virtuales.
También se hizo público un acuerdo entre AMD y Bethesda para optimizar los próximos lanzamientos de esta compañía para Vega y Ryzen.

viernes, 10 de marzo de 2017

El Árbol

systemd-+-ModemManager-+-{gdbus}
        |              `-{gmain}
        |-NetworkManager-+-dhclient
        |                |-dnsmasq
        |                |-{gdbus}
        |                `-{gmain}
        |-Suricata-Main-+-{CS}
        |               |-{CW}
        |               |-{FM#01}
        |               |-{FR#01}
        |               |-{US}
        |               |-{W#01-eth0}
        |               |-{W#02-eth0}
        |               |-{W#03-eth0}
        |               |-{W#04-eth0}
        |               |-{W#05-eth0}
        |               |-{W#06-eth0}
        |               |-{W#07-eth0}
        |               `-{W#08-eth0}
        |-accounts-daemon-+-{gdbus}
        |                 `-{gmain}
        |-acpid
        |-agetty
        |-atd
        |-auditd---{auditd}
        |-bluetoothd
        |-bumblebeed
        |-cgmanager
        |-colord-+-{gdbus}
        |        `-{gmain}
        |-cron
        |-dbus-daemon
        |-fwupd-+-3*[{GUsbEventThread}]
        |       |-{fwupd}
        |       |-{gdbus}
        |       `-{gmain}
        |-gnome-keyring-d-+-{gdbus}
        |                 |-{gmain}
        |                 `-{timer}
        |-irqbalance
        |-lightdm-+-Xorg
        |         |-lightdm-+-upstart-+-hud-service-+-{QDBusConnection}
        |         |         |         |             |-{gdbus}
        |         |         |         |             `-{gmain}
        |         |         |         |-indicator-appli-+-{gdbus}
        |         |         |         |                 `-{gmain}
        |         |         |         |-indicator-bluet-+-{dconf worker}
        |         |         |         |                 |-{gdbus}
        |         |         |         |                 `-{gmain}
        |         |         |         |-indicator-datet-+-{dconf worker}
        |         |         |         |                 |-{gdbus}
        |         |         |         |                 |-{gmain}
        |         |         |         |                 `-3*[{indicator-datet}]
        |         |         |         |-indicator-keybo-+-{dconf worker}
        |         |         |         |                 |-{gdbus}
        |         |         |         |                 `-{gmain}
        |         |         |         |-indicator-messa-+-{dconf worker}
        |         |         |         |                 |-{gdbus}
        |         |         |         |                 `-{gmain}
        |         |         |         |-indicator-power-+-{dconf worker}
        |         |         |         |                 |-{gdbus}
        |         |         |         |                 `-{gmain}
        |         |         |         |-indicator-print-+-{dconf worker}
        |         |         |         |                 |-{gdbus}
        |         |         |         |                 `-{gmain}
        |         |         |         |-indicator-sessi-+-{dconf worker}
        |         |         |         |                 |-{gdbus}
        |         |         |         |                 `-{gmain}
        |         |         |         |-indicator-sound-+-{dconf worker}
        |         |         |         |                 |-{gdbus}
        |         |         |         |                 `-{gmain}
        |         |         |         |-liferea-+-{dconf worker}
        |         |         |         |         |-{gdbus}
        |         |         |         |         |-{gmain}
        |         |         |         |         `-13*[{liferea}]
        |         |         |         |-sh---url-dispatcher-+-{gdbus}
        |         |         |         |                     |-{gmain}
        |         |         |         |                     `-3*[{url-dispatcher}]
        |         |         |         |-2*[sleep]
        |         |         |         |-window-stack-br---{QDBusConnection}
        |         |         |         `-xbrlapi
        |         |         |-{gdbus}
        |         |         `-{gmain}
        |         |-{gdbus}
        |         `-{gmain}
        |-lvmetad
        |-master-+-pickup
        |        `-qmgr
        |-ofonod
        |-pcscd---2*[{pcscd}]
        |-polkitd-+-{gdbus}
        |         `-{gmain}
        |-rsyslogd-+-{in:imklog}
        |          |-{in:imuxsock}
        |          `-{rs:main Q:Reg}
        |-rtkit-daemon---2*[{rtkit-daemon}]
        |-smartd
        |-snapd---8*[{snapd}]
        |-systemd-+-(sd-pam)
        |         |-at-spi-bus-laun-+-dbus-daemon
        |         |                 |-{dconf worker}
        |         |                 |-{gdbus}
        |         |                 `-{gmain}
        |         |-at-spi2-registr-+-{gdbus}
        |         |                 `-{gmain}
        |         |-bamfdaemon-+-{gdbus}
        |         |            `-{gmain}
        |         |-compiz-+-{dconf worker}
        |         |        |-{gdbus}
        |         |        |-{gmain}
        |         |        `-8*[{pool}]
        |         |-2*[dbus-daemon]
        |         |-dbus-launch
        |         |-2*[dconf-service-+-{gdbus}]
        |         |                  `-{gmain}]
        |         |-dropbox-+-{QXcbEventReader}
        |         |         |-{dconf worker}
        |         |         |-52*[{dropbox}]
        |         |         |-{gdbus}
        |         |         `-{gmain}
        |         |-evolution-sourc-+-{dconf worker}
        |         |                 |-{gdbus}
        |         |                 `-{gmain}
        |         |-firefox-+-Web Content-+-{Chrome_ChildThr}
        |         |         |             |-{HTML5 Parser}
        |         |         |             |-{Hang Monitor}
        |         |         |             |-{ImageBridgeChil}
        |         |         |             |-{ImageIO}
        |         |         |             |-{ImgDecoder #1}
        |         |         |             |-{ImgDecoder #2}
        |         |         |             |-{ImgDecoder #3}
        |         |         |             |-{ImgDecoder #4}
        |         |         |             |-{ImgDecoder #5}
        |         |         |             |-{ImgDecoder #6}
        |         |         |             |-{ImgDecoder #7}
        |         |         |             |-12*[{JS Helper}]
        |         |         |             |-{JS Watchdog}
        |         |         |             |-{ProcessHangMoni}
        |         |         |             |-{Socket Thread}
        |         |         |             |-{Timer}
        |         |         |             |-{VideoChild}
        |         |         |             |-{dconf worker}
        |         |         |             |-{gdbus}
        |         |         |             `-{gmain}
        |         |         |-{Cache I/O}
        |         |         |-{Cache2 I/O}
        |         |         |-{Compositor}
        |         |         |-{DNS Res~ver #91}
        |         |         |-3*[{DOM Worker}]
        |         |         |-3*[{DataStorage}]
        |         |         |-{GMPThread}
        |         |         |-{Gecko_IOThread}
        |         |         |-{HTML5 Parser}
        |         |         |-{Hang Monitor}
        |         |         |-{IPDL Background}
        |         |         |-{ImageBridgeChil}
        |         |         |-{ImageIO}
        |         |         |-{ImgDecoder #1}
        |         |         |-{ImgDecoder #2}
        |         |         |-{ImgDecoder #3}
        |         |         |-{ImgDecoder #4}
        |         |         |-{ImgDecoder #5}
        |         |         |-{ImgDecoder #6}
        |         |         |-{ImgDecoder #7}
        |         |         |-12*[{JS Helper}]
        |         |         |-{JS Watchdog}
        |         |         |-{Link Monitor}
        |         |         |-{ProcessHangMoni}
        |         |         |-{Proxy R~olution}
        |         |         |-{Socket Thread}
        |         |         |-{SoftwareVsyncTh}
        |         |         |-{Timer}
        |         |         |-{URL Classifier}
        |         |         |-{dconf worker}
        |         |         |-9*[{firefox}]
        |         |         |-{gdbus}
        |         |         |-{gmain}
        |         |         |-{localStorage DB}
        |         |         |-{mozStorage #10}
        |         |         |-{mozStorage #1}
        |         |         |-{mozStorage #2}
        |         |         |-{mozStorage #3}
        |         |         |-{mozStorage #4}
        |         |         |-{mozStorage #5}
        |         |         |-{mozStorage #6}
        |         |         |-{mozStorage #7}
        |         |         |-{mozStorage #8}
        |         |         |-{mozStorage #9}
        |         |         `-{threaded-ml}
        |         |-gconfd-2
        |         |-gksu-+-sudo---gedit-+-{dconf worker}
        |         |      |              |-{gdbus}
        |         |      |              `-{gmain}
        |         |      |-{dconf worker}
        |         |      |-{gdbus}
        |         |      `-{gmain}
        |         |-gnome-session-b-+-deja-dup-monito-+-{dconf worker}
        |         |                 |                 |-{gdbus}
        |         |                 |                 `-{gmain}
        |         |                 |-evolution-alarm-+-{dconf worker}
        |         |                 |                 |-3*[{evolution-alarm}]
        |         |                 |                 |-{gdbus}
        |         |                 |                 `-{gmain}
        |         |                 |-gnome-software-+-{dconf worker}
        |         |                 |                |-{gdbus}
        |         |                 |                `-{gmain}
        |         |                 |-indicator-cpufr-+-{dconf worker}
        |         |                 |                 |-{gdbus}
        |         |                 |                 `-{gmain}
        |         |                 |-indicator-multi-+-{dconf worker}
        |         |                 |                 |-{gdbus}
        |         |                 |                 `-{gmain}
        |         |                 |-krb5-auth-dialo-+-{dconf worker}
        |         |                 |                 |-{gdbus}
        |         |                 |                 `-{gmain}
        |         |                 |-mail-notificati-+-{dconf worker}
        |         |                 |                 |-{gdbus}
        |         |                 |                 `-{gmain}
        |         |                 |-nautilus-+-{dconf worker}
        |         |                 |          |-{gdbus}
        |         |                 |          |-{gmain}
        |         |                 |          |-{nautilus}
        |         |                 |          `-8*[{pool}]
        |         |                 |-nm-applet-+-{dconf worker}
        |         |                 |           |-{gdbus}
        |         |                 |           `-{gmain}
        |         |                 |-polkit-gnome-au-+-{dconf worker}
        |         |                 |                 |-{gdbus}
        |         |                 |                 `-{gmain}
        |         |                 |-unity-fallback--+-{dconf worker}
        |         |                 |                 |-{gdbus}
        |         |                 |                 `-{gmain}
        |         |                 |-update-notifier-+-{dconf worker}
        |         |                 |                 |-{gdbus}
        |         |                 |                 `-{gmain}
        |         |                 |-{dconf worker}
        |         |                 |-{gdbus}
        |         |                 `-{gmain}
        |         |-gpg-agent
        |         |-gvfs-afc-volume-+-{gdbus}
        |         |                 |-{gmain}
        |         |                 `-{gvfs-afc-volume}
        |         |-gvfs-goa-volume-+-{gdbus}
        |         |                 `-{gmain}
        |         |-gvfs-gphoto2-vo-+-{gdbus}
        |         |                 `-{gmain}
        |         |-gvfs-mtp-volume-+-{gdbus}
        |         |                 `-{gmain}
        |         |-gvfs-udisks2-vo-+-{gdbus}
        |         |                 `-{gmain}
        |         |-gvfsd-+-{gdbus}
        |         |       `-{gmain}
        |         |-gvfsd-burn-+-{gdbus}
        |         |            `-{gmain}
        |         |-gvfsd-dnssd-+-{gdbus}
        |         |             `-{gmain}
        |         |-gvfsd-fuse-+-{gdbus}
        |         |            |-{gmain}
        |         |            |-{gvfs-fuse-sub}
        |         |            `-2*[{gvfsd-fuse}]
        |         |-gvfsd-http-+-{gdbus}
        |         |            `-{gmain}
        |         |-gvfsd-metadata-+-{gdbus}
        |         |                `-{gmain}
        |         |-gvfsd-network-+-{dconf worker}
        |         |               |-{gdbus}
        |         |               `-{gmain}
        |         |-gvfsd-trash-+-{gdbus}
        |         |             `-{gmain}
        |         |-ibus-daemon-+-ibus-dconf-+-{dconf worker}
        |         |             |            |-{gdbus}
        |         |             |            `-{gmain}
        |         |             |-ibus-engine-sim-+-{gdbus}
        |         |             |                 `-{gmain}
        |         |             |-ibus-ui-gtk3-+-{dconf worker}
        |         |             |              |-{gdbus}
        |         |             |              `-{gmain}
        |         |             |-{gdbus}
        |         |             `-{gmain}
        |         |-ibus-x11-+-{gdbus}
        |         |          `-{gmain}
        |         |-kdeinit5---klauncher-+-{QDBusConnection}
        |         |                      `-{QXcbEventReader}
        |         |-notify-osd-+-{dconf worker}
        |         |            |-{gdbus}
        |         |            `-{gmain}
        |         |-pulseaudio-+-{alsa-sink-ALC26}
        |         |            `-{alsa-source-ALC}
        |         |-sh---zeitgeist-daemo-+-{gdbus}
        |         |                      `-{gmain}
        |         |-terminator-+-bash---pstree
        |         |            |-gnome-pty-helpe
        |         |            |-{dconf worker}
        |         |            |-{gdbus}
        |         |            `-{gmain}
        |         |-unity-files-dae-+-{dconf worker}
        |         |                 |-{gdbus}
        |         |                 |-{gmain}
        |         |                 `-8*[{pool}]
        |         |-unity-panel-ser-+-{dconf worker}
        |         |                 |-{gdbus}
        |         |                 `-{gmain}
        |         |-unity-scope-hom-+-{dconf worker}
        |         |                 |-{gdbus}
        |         |                 `-{gmain}
        |         |-unity-scope-loa-+-{dconf worker}
        |         |                 |-{gdbus}
        |         |                 `-{gmain}
        |         |-unity-settings--+-syndaemon
        |         |                 |-{dconf worker}
        |         |                 |-{gdbus}
        |         |                 `-{gmain}
        |         |-zeitgeist-datah-+-{gdbus}
        |         |                 |-{gmain}
        |         |                 `-8*[{pool}]
        |         `-zeitgeist-fts-+-{gdbus}
        |                         `-{gmain}
        |-systemd-journal
        |-systemd-logind
        |-systemd-resolve
        |-systemd-timesyn---{sd-resolve}
        |-systemd-udevd
        |-thermald---{thermald}
        |-udisksd-+-{cleanup}
        |         |-{gdbus}
        |         |-{gmain}
        |         `-{probing-thread}
        |-unity-greeter-s-+-{gdbus}
        |                 `-{gmain}
        |-upowerd-+-{gdbus}
        |         `-{gmain}
        |-urfkilld-+-{gdbus}
        |          `-{gmain}
        |-uuidd
        |-whoopsie-+-{gdbus}
        |          `-{gmain}
        `-wpa_supplicant