#breBytes C++

Aprovechando la canícula, seguimos con nuestra versión light del repaso a la revista Byte de hace cuarenta años. Y suerte que nos hemos pasado al modelo light, porque el número de agosto del 86 no venía especialmente fuerte. Pero no puedo saltarme la sección de crítica de libros, porque ahí tenemos uno de los clásicos de la informática, la presentación de C++ por parte del creador del lenguaje, Bjarne Stroustrup. (Si no he buscado mal, la cuarta y última (de momento) edición se publicó en 2011.)

Book Reviews

THE C++ PROGRAMMING LANGUAGE

Reviewed by G. Michael Vose

One of the tenets of evolutionary theory states that changes in the environment cause subtle mutations in an organism that transform it into a new organism. The changing nature of the hardware environment of computers causes an analogous evolution of programming languages. Bjarne Stroustrup's The C++ Programming language describes one recent language mutation.

Following the example of its parent, Brian W. Kernighan and Dennis M. Ritchie's The C Programming language (also known as K&R or the "white" book), this book defines the superset of C called C++. Both books provide multiple chapter tutorials for their respective languages as well as the languages' official reference manuals. Both contain examples and exercises for readers to solve.

Stroustrup's book assumes a familiarity with C (referring the beginning reader to K&R) but is nearly 100 pages longer than the white book. C++ adds considerably to the complexity of an already obtuse lexicon. Furthermore, C++ provides the tools to allow an objectoriented approach to programming in C.

Evaluating a book like Stroustrup's is difficult because microcomputer implementations of C++ are just becoming available (see the What's New section). I have no concrete experience with the language and no facility for using the tutorial sections of the book. Therefore, the judgments I can make are limited to two areas: Does the book adequately describe the concepts of C++, and do the C++ extensions seem useful? The historical significance of both the book and the language will have to wait for the judgment of some future reviewer.

People familiar with C instantly recognize the significance of the name C++. C's increment operator is symbolized using two plus signs (++). The suggestion is that C++ increments the power of the language, and this is certainly true. But for many C programmers, adding new constructs takes a back seat to fixing some of the awkward aspects of the original language. The authors provide some of these fixes.

Programmers enjoy using C because of the freedom of expression it provides due to a rich set of operators and great flexibility in declaring and manipulating data types. C++ increases this freedom substantially by offering additional data types and constructs that permit programmers to more easily build complex data structures (a process known as data abstraction). The emphasis in C++ is on types and structure.

Y me tenéis que reconocer que es divertido leer la crítica de un libro en la que el revisor te dice cosas como que C++ suma considerablemente a la complejidad de un léxico ya obtuso (no seré yo el que le lleve la contraria, pero pegarle así a C…), para a continuación explicarte que evaluar el libro es complicado en ausencia de implementaciones de C++ (vamos, sin haber probado el lenguaje), y después explicar qué es eso de los objetos en programación (la orientación a objetos, como paradigma, data de finales de los cincuenta (del siglo pasado), pero no se había prodigado mucho hasta la llegada de C++ y sus diferentes «primos» (por mucho que Smalltalk ya llevase unos cuantos años corriendo por el mundo)). No está mal, por cierto, permitirse darse el lujo de darle una collejita a nada más y nada menos que Stroustrup (en aquel momento no era la leyenda que es hoy, claro) por permitirse el lujo de usar palabras como «clase» antes de definirlas. Ni dudar (razonablemente, dada la juventud y novedad de la cosa) del éxito de un lenguaje que, cuarenta años más tarde, se disputa la segunda posición del ranking de lenguajes de TIOBE con «papá C».

Se publica la crítica, por cierto, dentro de un número dedicado a la programación orientada a objetos (ya os decía que el tema comenzaba a popularizarse en aquella época) en el que escribe, entre otros, el creador de Objective C, el lenguaje de desarrollo para Apple hasta nada más y nada menos que 2014.

Si queréis seguir hojeando el número, en la misma sección de libros se critica también el Mind Over Machine del filósofo Hubert Dreyfus y su hermano Stuart, algo menos famoso pero aún así profesor emérito en Berkeley, que se dice pronto. El libro argumenta (siempre según la crítica) que nunca tendremos una verdadera inteligencia artificial porque los ordenadores carecen de intuición. La historia no se repite, pero rima, dicen. El crítico también se fija en un capítulo dedicado a los temores sobre la implantación de la IA en la educación. 1986.

Y también se puede recomendar, creo, pero para valientes, el discurso del recientemente fallecido Tony Hoare (ya premio Turing por aquel entonces), Mathematics of programming. Por aquello de incidir en que lo que se publicaba en los ochenta en revistas generalistas de informática tenía en muchas ocasiones un nivel estratosférico, entre otras cosas.

En fin. Algún otro día, más, pero como muy pronto, en septiembre.

t.co era malo, share.google es aún peor

Hace casi quince años escribía yo que los acortadores de URLs son malos, pero que t.co (el que usaba de manera subrepticia Twitter en aquel momento) era el peor… y hace quince años tenía razón, pero en algún momento dejé de tenerla, porque apareció el dichoso share.google.

En su momento repasaba las ventajas de los acortadores de URLs, al estilo de bit.ly (permiten escribir URLs breves y/o memorables y monitorizar los clics en el enlace (el riesgo que implica la segunda cláusula ya era grande entonces, y hoy aún lo es más))… y los males que añadía el de Twitter: se insertaba sin permiso y el monitorizado solo lo ejercía Twitter, con lo que perdía cualquier efecto positivo.

Pues bien. ¿No os habéis fijado en la cantidad de enlaces que os llegan que comienzan con un share.google/loquesea? Si compartís un enlace después de hacer una búsqueda en Google, al menos desde Android, el flujo es algo así como

Pantalla de navegador en un dispositivo móvil. Está en una URL en.apf.gv.at. Aparece un cuadro de diálogo Sharing text, que muestra una URL que comienza por share.google

¿Habéis visto la URL de arriba? en.apf.gv.at. ¿Habéis visto la URL de abajo? share.google. Como servidor es maniático, cuando ve la dichosa URL, comparte a Firefox para limpiar la URL. ¿Problema adicional? Que Google registra la URL en su aplicación de Android, con lo cual tenemos un obstáculo más que saltar al llegar a Firefox:

Open this link in the Google app? Would you like to leave Firefox to view this content?

A no ser que leas con atención y canceles, la opción por defecto nos devolverá a Google y tendremos que volver a comenzar (o darlo por imposible y rendirnos, si no hemos leído con atención).

Igualico igualico que con t.co… con la diferencia de que,

  • por un lado, si Twitter era popular hace quince años, ahora esto está presente en todos los móviles Android (si alguien sabe cómo desactivarlo (sin cambiar el buscador por defecto, que si bien es una opción muy interesante, no es lo que quiere la mayoría de usuarios, diría), que avise). Y además de ser mucho más ubicuo, lo tiene Google, que ya sabe más de ti que Twitter, y ahora sigue acumulando. Si la persona con quien compartes también tiene su cuenta de Google, hay bastantes números de que Google acabe completando aún más sobre tu grafo social, sin ningún tipo de autorización y, en la mayoría de casos, sin que nadie se entere.
  • Y, de regalo, t.co redirigía y punto: si compartías a Firefox, el enlace quedaba limpio sin más. Y ahora hay que hacer el pino puente para acabar de limpiar la URL.

A uno le gustaría pensar que estos comportamientos, sin manera obvia de desactivarlos (de hecho, a mí me gustaría que estas cosas fueran opt in, y no opt out, que es lo que es ahora, como mínimo en la práctica), llamasen la atención de las autoridades antimonopolio de la UE. Pero parece que, al menos de momento, no.

¿Tienes O2? Tienes diez teras de disco en la red

Diez teras. Sí. No es una errata. Cuando me lo dijeron, yo también lo pensé. Y mi suscripción de O2 no es la más cara.

Captura de pantalla. EL título es Mi perfil. Está seleccionada la pestaña Mi plan de O2 Cloud. Muestra que el almacenamiento disponible es de diez teras

Ahora mismo…

  • Con Google One, el plan de 100 gigas que confieso avergonzado que pago sale por 20€ al año, y dan 200 por 30 (los planes más grandes incluyen Gemini Pro, o sea que no son comparables, pero por completismo, el de 400 sale a 50 y el de 2 teras se va a 100).
  • Dropbox cobra 120€ al año por 2 teras.
  • Proton, por los mismos 120€ anuales, se queda en 500 gigas, pero con sus garantías de privacidad.
  • Probablemente el mejor pack ahora mismo, si vas a usar diferentes cuentas, es el de Microsoft 365Familia, que por 130 te da seis cuentas OneDrive con un tera por cuenta y además incluye Office para todos.

Vamos, que si eres usuario de O2, los diez teras incluidos son como para tenerlos en cuenta.

¿Que cómo se instala? Os vais a la tienda de aplicaciones del móvil y buscáis «O2 Cloud». Unos cuantos SMS de confirmación más tarde tendréis la aplicación del móvil instalada.

Advertencia: como mínimo en Android, los permisos para acceder a fotos y vídeos son imprescindibles, aunque no hace falta activar la sincronización. No nos olvidemos de que O2 es Telefónica, y alguna ñapa tenía que haber…

Desde la web de la aplicación, entonces, os podréis descargar la aplicación de escritorio, al más puro estilo Dropbox. Por algún motivo (recordemos: O2 es de Telefónica…) no permite tener la carpeta a sincronizar en un disco de red, pero qué se le va a hacer. Y tampoco sé deciros qué pasará cuando la carpeta crezca, inevitablemente, más allá de la capacidad de disco que tengáis. Siempre queda la opción de no instalarla, eso sí.

Y eso es todo. De nada…

devLecturas (II)

Cinco enlaces más de cosillas de desarrollo web entendido en sentido amplio (la edición anterior es de principios de junio, no sé yo si esto va a tener mucha continuidad, pero lo seguiremos intentando).

De los vídeos de la commit, celebrada a principios de junio, me han llamado la atención un par de charlas. La primera, una «nueva manera de testear el frontend», «test while developing«.

Y la segunda, la de Ramón Corominas sobre evaluación automática de accesibilidad:

Aprovechando que estoy con uno de accesibilidad, hace apenas unos días Olga Carreras repasaba la WCAG Evaluation Methodology (WCAG-EM) 2.0.

Volviendo a principios de junio, Manuel Matuzovic hablaba de encabezados «concientes de su contexto». La idea, si los navegadores acaban dándole soporte, es que finalmente podamos escribir bloques de código dándoles título con un <h1>, y que sea luego el navegador el que lo convierta en el h-loquesea conveniente usando un «offset» y le aplique el CSS adecuado, cosa especialmente interesante si se trabaja con componentes. De momento solo se está implementando en Firefox. Dedos cruzados para que lo adopten el resto de navegadores 🤞.

Y para cerrar (el enlace es más antiguo, pero yo la encuentro ahora), tenemos esta Retro UI library que no creo que use nunca, pero que me parece absolutamente maravillosa.

Clicks Keyboard. I wanted to believe…

…y aún sigo queriendo creer, y no está perdida toda la esperanza. Pero.

Recordará el lector habitual, atento y con [mucha] memoria, que los teclados son tema de preocupación de esta casa, y en particular los teclados físicos de los móviles (les escribimos un réquiem en 2013, ilustrado con foto del añorado Nokia N97, y en 2009 nos enamoramos del (¿la?) Palm Prē).

O sea que cuando Clicks anunció el Kickstarter de su Power Keyboard, para allá que nos fuimos, no sé si con mucho convencimiento en el producto, pero sí con todas las ganas de votar (en dinero) por el resurgimiento del teclado físico para el móvil. Y el tecladín, con los retrasos habituales de los kickstarters, llegó a casa hace ya unas cuantas semanas, pero entre unas cosas y otras, no habíamos encontrado un momento para reseñarlo por aquí.

Foto de un teclado Clicks. Se trata de un teclado similar al de las antiguas Blackberry. Mide 119.7 × 76.6 × 15.2 milímetros y pesa 180 gramos

Lo primero que debe decirse es que la ingeniería y la calidad de materiales del teclado son excelentes: en Clicks no han escatimado esfuerzos: el dispositivo es contundente hasta el nivel arma de asalto, las teclas en sí parecen preparadas para escribir la próxima Odisea, la conexión al ordenador, tanto físicamente, vía MagSafe, como lógicamente, a través de Bluetooth con soporte para hasta diez dispositivos, funciona a la perfección, y el software que alimenta el teclado no da ningún problema.

Ahora bien.

El teclado, junto con un móvil Samsung S24 Ultra. El dispositivo se ve muy grande comparado con las manos que lo sujetan

Conecte usted los 180 gramos del teclado1 a los doscientos gramos del móvil medio (233 pesa el S24 Ultra de la foto), y la cosa se va a un peso que no es de recibo. Si encima el móvil no es nativamente MagSafe (diría que en el mundo Android solo la última generación de Pixels lo es), pues además hay que sumar una funda que no hace nada bueno ni por el peso ni por el volumen del invento.

Vaya, que en la práctica, si el móvil no es un iPhone Air, con sus 165 gramos, no le veo yo la utilidad práctica2 al teclado más allá de la demostración de ingeniería.

Ahora bien: sigo queriendo creer. Clicks anunció junto al teclado su Communicator, una suerte de Blackberry que, para los que fueron adictos al añorado cacharro canadiense, pueden resultar una tentación irresistible…

  1. El peso se explica en parte porque se incluye una batería de 2300 mAh capaz de alimentar inalámbricamente el móvil, además de mantener en funcionamiento la electrónica del teclado. Pero también es necesario un cierto peso para poder soportar el móvil correctamente sin que la distribución de peso se haga extremadamente incómoda. ↩︎
  2. No es del todo cierto: esa capacidad de conectar el teclado a múltiples dispositivos puede hacer que sea útil para los múltiples dispositivos «smart» que uno pueda tener en casa, comenzando por la tele… ↩︎