Por @Alvy — 21 de Agosto de 2019

La evolución de la cuota de mercado de los diversos navegadores web / Statista

La evolución de la cuota de mercado de los diversos navegadores web / Statista / DatosEstaba recordando los tiempos de Netscape y Explorer y cómo había ido evolucionando ese tipo de software desde 1994 cuando me encontré en Statista con un par de interesantes gráficos sobre cómo ha sido la evolución de la cuota de mercado de los navegadores web a lo largo de los últimos años.

Estos datos suelen diferenciarse en dos versiones: la desktop (sistemas operativos de ordenador, como Windows, macOS o Linux) y la móvil, referida a dispositivos tales como teléfonos inteligentes, tabletas y similares (Android, iOS y demás).

El resultado no sorprenderá a nadie: Google Chrome domina en desktop con más del 70% del mercado actualmente, algo que también sucede en móviles aunque más tibiamente: sólo el 58%. En desktop el segundo es Firefox, mientras que en móviles es Safari, de Apple. El aumento del dominio de Google sólo es comparable con la mengua de Microsoft, aunque en estos casos nunca se sabe muy bien si uno es causa de lo otro o lo otro de lo uno.

Los datos exactos varían un poco según las fuentes; por ejemplo para Statcounter, que recoge estadísticas globales de miles de webs, Chrome supone el 71% seguido de Firefox con un 10% (Exporer todavía tiene un 5% y Edge sólo un 4,6%). En móvil Chrome aparece con un 60% seguido de Safari 20%. Statcounter recoge la existencia de 20 navegadores web diferentes. Los datos también varían un poco de país a país; en España no hay diferencias muy significativas.

Relacionado:

Compartir en Flipboard Compartir en Facebook Tuitear
Por @Alvy — 20 de Agosto de 2019

ChesSkelet: una pequeña maravilla que «juega» al ajedrez en 352 bytes en el Spectrum

Desde el mundillo de los foros del Spectrum llega ChesSkelet, un ajedrez mínimo que compite en tamaño con el mítico ZX-81 Chess, un software de ajedrez cuyo código cabía en 1 KB. En este caso no se trata de jugar bien al ajedrez, sino de saber jugar y hacerlo con el programa más pequeño posible. Recuerdo haber programado algo parecido en los 80, en los 3,5 KB de un viejo VIC-20: ocupaban más los gráficos que el código del juego en sí, que sólo sabía mover al azar (pero respetando las reglas).

ChesSkelet bate todos los récords con tan sólo 352 bytes de código máquina; y con un par de cientos más existen versiones «mejoradas» y con mejor aspecto. Aunque no hay sitio ni para iconos siquiera. En una comparación absurda, la imagen PNG de la captura de pantalla de esta anotación ocupa más de 2 KB (!)

Eso sí: jugar juega de pena, y hasta un niño de 6 años podría ganarle, pero funcionar, funciona y sigue las reglas del juego, que es lo relevante. Como se suele decir, «aquí lo importante del viaje no es llegar, sino el camino»: la historia de cómo se desarrolló el programa, la disección completa del código y el listado original en ensamblador.

Entre las funciones que hubo que sacrificar para conseguir meter todas las reglas del ajedrez en 352 bytes están que no existe el enroque, ni la captura al paso, ni la promoción de peones. Tampoco los peones negros avanzan dos casillas en su salida (sólo una) y el contrincante humano sólo puede jugar con blancas. Las versiones «mejoradas» de ChesSkelet resuelven todos esos problemas, excepto comprobar si el enroque es legal y la captura al paso. Y por supuesto nada de reglas más complicadas como la de las tablas en 50 movimientos, tablas por repetición de tres movimientos, rey ahogado, etcétera. Eso sí, por unos pocos bytes más se puede sombrear el tablero.

En general el ChesSkelet calcula 1,5 movimientos de posibles jugadas futuras, de modo que no llega mucho más allá de evaluar qué respuesta va a dar el contrario y elegir la mejor dentro de sus –muchas– limitaciones. Pero por menos de 1 KB… poco más se puede pedir.

(¡Gracias @MundoAlReves por la pista!)

Relacionado:

Compartir en Flipboard Compartir en Facebook Tuitear
Por @Alvy — 19 de Agosto de 2019

El desesperante retardo al teclear: una demostración experimental de hasta dónde llega tu aguante

Este experimento de retardo de teclado programado por Monica Dinculescu permite entender táctilmente las diferencias entre tiempos de retardo –medidos en milisegundos– que puede haber al teclar. Esto se da tanto en una comunicación a distancia (usando un terminal, chat o similar) como en modo «local» sobre cualquier aplicación, ya sea en el ordenador, la pantalla del teléfono móvil o tableta. Es la llamada latencia al teclear: el tiempo transcurrido entre que realizas la acción (clic) y se ve el resultado (aparecer la letra en la pantalla).

Para hacer la prueba basta elegir un valor (haciendo clic en los botones) o escribirlo y luego teclear cualquier texto; cuanto más mejor para que se pueda apreciar mejor.

Como es lógico, cuanto menos retardo mejor. Las personas no podemos distinguir entre valores muy pequeños, como entre 1 y 5 ms, pero a partir de ahí la cosa se complica: 10 ms parece todavía aceptable, 30 ms podría «ser mejorable», 50 ms empieza a ser molesto y 100 ms (una décima de segundo) es prácticamente impracticable. A partir de ahí, apaga y vámonos.

Una versión en audio con un teclado de piano del mismo experimento muestra lo diferente que es pulsar teclas musicales que teclas con letras. A mi me resulta bastante más aceptable un retardo algo mayor en el teclado musical; imagino que para quienes toquen el piano quizá esos 10 ms sean también el límite.

La latencia, esa gran ignorada

El aguante de cada persona es algo variable, naturalmente. Habrá quien sea de mecanografía lenta y con 100 ms todavía encuentre que la respuesta no es incómoda. Y quienes tienen una velocidad mayor y un «aguante» por debajo de 20 ms A mi por ejemplo por encima de los 10 ms ya me empieza a desesperar la cosa. YMMV.

Estos valores aunque puedan parecer una tontá son fundamentales para mantener una buena experiencia de usuario y no deben subestimarse nunca. Legendariamente se sabe que Woz procuró que en los Macintosh la latencia tanto del tecleado como especialmente del ratón –un nuevo dispositivo para la época– fueran mínimas; en Windows en cambio se tomaron la latencia y el refresco del ratón con más relax hasta Windows 7 por lo menos y… bueno, las diferencias son obvias.

Relacionado:

Compartir en Flipboard Compartir en Facebook Tuitear
Por @Alvy — 19 de Agosto de 2019

El vídeo de Helmes que cuenta es historia hipercomprimida del desarrollo de software y la programación comienza en 1912 con Bertrand Russell y Alfred North Whitehead y sus trabajos sobre la la lógica formal y la teoría de tipos. Luego llegaron las primeras calculadoras electromecánicas de IBM y otros.

Turing sentó las bases de la programación en 1930 y hacia 1940 ya estaba en funcionamiento el Z3 que era –probablemente– el primer ordenador que –probablemente también– podría tener un uso genérico, a diferencia de las calculadoras.

La historia llega a los años 50 y 60 con el desarrollo de lenguajes como el Fortran y el Simula, el SQL en 1974. Cuando en los 80 la gente comenzó a tener ordenadores en casa la cosa explotó y en 1990 llegó el HTML coincidiendo con el nacimiento de la World Wide Web.

En 2001 se empezaron a usar metodologías de desarrollo y gestión del trabajo como Scrum y Kanban, y en el terreno de la programación la década de los 2010 nos ha dejado el aprendizaje automático (Machine Learning) como herramienta más interesante, si no poderosa.

Es difícil contar más cosas en 120 segundos, pero no es difícil encontrar en Internet cientos de artículos más detallados sobre cada uno de los aspectos del desarrollo de software, desde los métodos a los lenguajes y la historia de los primeros ordenadores.

Relacionado:

Compartir en Flipboard Compartir en Facebook Tuitear