danirod

Actualizaciones - page 2

Enlaces de la semana 2

De actualidad

La campaña antichina de México: En mayo de 1911, la masacre de Torreón inició en México una campaña xenófoba y racista contra los inmigrantes chinos que habitaban en el norte del país. Sólo en los primeros días, un total 303 ciudadanos chinos y 5 ciudadanos japoneses perdieron la vida en los saqueos, a lo que se le sumarían más de 20 años de persecución casi clandestina que difícilmente ha sido reparada por el gobierno de México. Este artículo de opinión de Jorge Matías refresca la memoria sobre uno de los incidentes más controvertidos del siglo XX en la historia mexicana.

Es como El Show de Truman, pero más real: Sonia tiene 14 años y no tiene ganas de usar redes sociales. Al cumplir los 13, obtuvo permiso en su casa para abrirse una cuenta de Facebook. Al hacerlo, descubrió mirando el perfil de su madre que toda su vida estaba documentada online ya que su madre había estado subiendo fotos de ella y compartiendo instantes relevantes de su vida. Al igual que ella, mi presentimiento es que de aquí a unos años aparezcan más historias similares, donde hijos que acaban de alcanzar la adolescencia descubren que sus padres les han estado usando como materia prima para obtener likes y otro tipo de gratificación instantánea en redes sociales.

El sistema de actualizaciones de ASUS fue hackeado: a principios de esta semana se supo que entre junio y septiembre de 2018, 1 millón de ordenadores de la marca ASUS estuvieron en peligro debido a un troyano oculto en la herramienta ASUS Live Update. Este tipo de ataques exponen a un gran número de usuarios a la amenaza, pero suelen ser ataques muy especializados donde se busca un objetivo concreto al que infectar de entre todo el pool de ordenadores infectables.

Ludopatía en plena campaña electoral: en Xataka Magnet han analizado cómo los principales partidos políticos de los que vamos a escuchar en esta campaña electoral afrontan la regulación de la ludopatía.

Artículos y blogs de IT

Rust no es el nuevo C, es el nuevo C++: Drew expone sus razones por las que Rust es el nuevo C++, no el nuevo C, siendo Go el nuevo C. Siempre he considerado esto así, y siempre me he mostrado en desacuerdo con amigos y en debates online que consideraban a Rust como un sucesor de C, y me alegra ver que no soy el único que rema contracorriente en este mundo.

Sobre lo que supone ser un maintainer open source: una reflexión sobre cómo te cambia la vida convertirte en el maintainer de un proyecto de software libre bastante utilizado. En resumidas cuentas, te puede abrir puertas la mar de interesantes, pero también te expone demasiado a los usuarios finales, los cuales no dudarán en hacerte llegar sus opiniones (tanto positivas como negativas).

Técnicas para esconder contenido en páginas web: ¿Sabías que HTML5 tiene un atributo llamado hidden que permite esconder contenido en todas partes? Con él puedes marcar componentes como menús o popups como ocultos cuando no son visibles, para que no quepa la posibilidad de confundir a un dispositivo que no procese CSS y no haya detectado tu display: none. Esta y otras técnicas para ocultar contenido del DOM se cuentan en este artículo de Paul de Cloudfour.

Cositas varias

Preguntas para hacer a tu entrevistador en una entrevista de trabajo: en las entrevistas de trabajo se suele dejar un tiempo para que el candidato al que se está entrevistando pueda plantear posibles preguntas. Si no estás acostumbrado a este momento, es fácil que te quedes en blanco y pierdas una ocasión crucial para obtener información que te puede dar la vida a la hora de determinar si aceptar un cambio de empleo o no. Este repositorio contiene una lista de preguntas que puedes hacer en ese momento. (Y que está pensado para el sector de la computación, el cual es diferente a otros sectores, por lo que puede que de puertas para fuera algunas de estas preguntas carezcan de sentido.)

Como ElasticSearch, pero en Rust: Sonic es un motor de búsqueda hecho en Rust similar a ElasticSearch pero que, sorpresa, consume bastante menos memoria.

Del archivo

Esta semana he decidido atajar el problema de los elementos acumulados en mi lista de leer más tarde de Pocket, seleccionando los casi 600 links en la cola de lectura y mandándolos al archivo de golpe. Por lo tanto, he resuelto mi problema con el exceso de información.

Aun así, aproveché para hacer un poco de arqueología sobre cosas que pasaron por esa cola hace un par de años para releer algunos artículos interesantes.

Leyes famosas del desarrollo de software (2017): la próxima vez que quieras soltar un apellido en una conversación, debate o flame para sonar más interesante, ten esta lista de leyes sobre el desarrollo de software en tu cabeza.

Cualificaciones en un ecosistema tecnológico volátil (2017): con las tecnologías tan volátiles que tenemos hoy en día, de esas que emergen pero que a los dos años ya no son relevantes, es interesante reflexionar como lo hacía Troy en este artículo sobre el rol que juegan los sistemas educativos más tradicionales, como los universitarios, frente a las certificaciones rápidas, en términos de invertir dinero, pero también tiempo. Decir que el artículo está escrito con la mentalidad estadounidense de "la universidad es cara y me va a generar deuda", algo que por suerte en otros países no es así.

6 cosas que odio del diseño de tu currículum (2017): se cuenta por sí solo.

Más atajos de teclas para Bash

He seguido investigando un poco a partir de lo que ví esta mañana y al mirar la documentación oficial de Bash he descubierto que en realidad Bash está plagado de atajos de teclas interesantes, los cuales están en la guía de bash, y también en la de GNU readline, ya que parece que es una funcionalidad que está extraída en una librería.

Me he hecho un post-it para tenerlo pegado cerca de la pantalla y que se me vayan pegando los atajos a base de usarlos con una relativa frecuencia.

BASH
----
Mover cursor a la izquierda
Ctrl-B:    1 caracter
Alt-B:     1 palabra
Ctrl-A:    Inicio de línea

Mover cursor a la derecha
Ctrl-F:    1 caracter
Alt-F:     1 palabra
Ctrl-E:    Fin de línea

Borrar
Ctrl-U:    Hasta principio línea
Ctrl-W:    Hasta principio palabra
Ctrl-D:    Letra bajo cursor
Alt-D:     Hasta final palabra
Ctrl-K:    Hasta final línea

Estos atajos de teclas no funcionan en Vim, o al menos no todos. Ctrl-U y Ctrl-W están ahí, pero los demás no funcionan. Algunos de estos atajos parecen funcionar en Emacs, y también en Texinfo, que es el sistema electrónico de documentación de GNU para ver el mismo manual que tienen en la web en la terminal, pero no todos funcionan. No obstante, me gusta este comportamiento consistente de los programas de GNU. Tienen atajos de teclas complicados de aprender, pero una vez que lo aprendes en un programa, lo puedes usar en todos.

Como dato, en Bash realmente no borras texto, lo envías a un buffer auxiliar que hace de cortapapeles, y lo puedes volver a pegar con Ctrl-Y, aunque no he probado esta función todavía.

Ctrl-W y Ctrl-U

Intento recordar constantemente que si me equivoco al escribir una palabra en Vim, en vez de reventar la tecla Retroceso varias veces hasta llegar al inicio de la palabra, puedo simplemente pulsar Ctrl-W, que borra la palabra actualmente bajo el cursor. Lo mismo se puede decir de Ctrl-U, que directamente borra toda la línea en la que se halle el cursor.

Una cosa que desconocía hasta hoy es que estos atajos realmente funcionan fuera de Vim. En Bash, si me equivoco mientras tecleo un comando, resulta que puedo también pulsar Ctrl-W para borrar lo que tenga bajo el cursor, y también puedo pulsar Ctrl-U para borrar toda la línea.

Estrictamente hablando, en Bash el funcionamiento de estos atajos es ligeramente más complejo. Al igual que ocurre con Vim, realmente no se borra el contenido, sino que es copiado a un buffer temporal de portapapeles, de modo que lo que se elimine, luego puede volver a ser pegado mediante el uso de Ctrl-Y.

He movido el link al Diario que hay en el pie de página del sitio web a la segunda posición, junto a la del feed global. Después de todo, últimamente casi todo lo que escribo está en esta sección, porque me resulta más práctico y flexible. En cuanto a la sección Blog, no está muerta, es que la quiero reservar para contenido que sea más largo, como artículos o tutoriales, pero no tengo nada terminado.

Enlaces de la semana 1

De actualidad

#Web30: la Web cumple 30 años: hace un par de semanas se cumplieron 30 años de la propuesta inicial de Tim Berners-Lee en la que se definían los conceptos básicos sobre los cuales años después se levantaría la World Wide Web, y aunque últimamente hay bastantes amenazas serias, deberíamos celebrar más la llegada a nuestras vidas de este invento que ha cambiado vidas, revolucionado sociedades y popularizado el acceso a la información en cualquier parte de una manera similar a como invenciones tipo imprenta o máquina de vapor lo hicieron en otras generaciones anteriores.

Skype Web prueba que volvemos a la época de los monopolios en los navegadores: y sin embargo, como digo, existen algunas amenazas a la WWW en la actualidad. La actualización de Skype web que presentó Microsoft a finales de febrero sólo es compatible con Microsoft Edge y Google Chrome. Ni siquiera otros clónicos de Google Chrome, como Opera (que también usa Blink) pueden ejecutar Skype Web. Desafortunadamente, los jóvenes de hoy en día que llaman paranoicos a quienes alertamos sobre los peligros de permitir que Google Chrome monopolice la experiencia web, no recuerdan que esto ya pasó a lo largo de la década pasada cuando las páginas web se diseñaban en exclusiva para Internet Explorer. Poner en manos de una empresa de publicidad gigante que casualmente tiene un buscador web el futuro de la web nos esta llevando a caminos de los que puede que algún día nos arrepintamos.

Pérdida de datos en MySpace: lo comentaba el otro día, pero MySpace ha perdido años de música en una migración de servidores que ha salido mal. Probablemente con esta acción hayamos facilitado a los historiadores de dentro de dos siglos la labor que indudablemente tendrán que hacer de desechar el 95% de la cultura que generamos en este siglo y que probablemente sea tan efímera que a nadie le importe dentro de 200 años, pero también es verdad que, una vez más, es un ejercicio de reflexión sobre los problemas de confiar que el contenido que creamos esté a salvo en máquinas a las que no tenemos acceso.

Artículos y blogs

Sobre la importancia de la accesibilidad en webs y aplicaciones: La carencia de interés por fabricar sitios web accesibles es un problema que cada vez va a ir a más. Últimamente Chris ha escrito varios artículos sobre la importancia de desarrollar una web accesible que funcione para todo tipo de personas, y me quedo sin duda con este artículo donde se persuade al lector a no dejar la accesibilidad web a modo de segundo plato, y a diseñar sitios web que sean accesibles desde el primer minuto. (Véase también, Estamos destruyendo la web).

Habla, y luego programa: El post Talk, then code de Dave es un mensaje para quien tenga interés en contribuir a repositorios open source o free software: no pasa nada por utilizar la lista de correo o el issue tracker antes de mandar parches o pull requests. Los pull requests no solicitados que entran en conflicto con el roadmap de un proyecto pueden perjudicar tanto a la persona que ha invertido tiempo en realizarlos para ver que su trabajo es anulado, como a la persona que tiene que rechazar ese parche y que puede sentirse como un censor.

Usar Internet Explorer 8 en 2019: Se cumplen 10 años del lanzamiento de Internet Explorer 8, pero sigue siendo usado en porcentajes despreciables pero superiores a cero en determinadas partes del mundo. Este artículo de Smashing Magazine enseña cómo es la experiencia de navegar por una internet de 2019 con un navegador de 2009. El resumen: sale mal.

Cositas varias

Decentraleyes: A través de un post de The Tools We Need, he conocido una extensión interesante para Firefox y otros navegadores web llamada Decentraleyes, que intercepta las peticiones a CDNs públicos, como Google Web Fonts, MaxCDN o similares, para impedir que este tipo de redes nos rastreen. Discrepo un poco, pero no viene mal.

Muestrario de algoritmos de estructuras de datos en JavaScript: el repositorio javascript-algorithms es una interesante guía de referencia llena de pseudocódigos y explicaciones de algoritmos de estructuras de datos, con implementaciones hechas en JavaScript.

Cursos de inteligencia artificial: el repositorio deep-learning-guide está lleno de enlaces a vídeos de YouTube y cursos online de MOOCs con los que puedes alimentar tu curiosidad sobre inteligencia artificial, aprendizaje automatizado, autómatas y redes neuronales, entre otras cosas.

Del archivo

Una web llena de ansiedad (2018): en este artículo de dos partes, se narra una realidad conocida para mucha gente en internet. La manera en la que ciertos sitios web presentan información o intentan apelar a las emociones de visitantes (por ejemplo, en una tienda online llena de cuentas atrás), puede generar ansiedad en personas sensibles. La primera parte se centra en describir los patrones que hace que una página web genere ansiedad. La segunda parte cita pautas a seguir para evitar que una página web genere pánico a quien acceda a ella.

Por qué deberías borrar la app de Instagram (2018): Hace algo más de un año Kerry contaba las razones por las que eliminó de su smartphone Instagram. Sólo puedo suscribir sus palabras, después de haber eliminado yo también mi cuenta el año pasado al no encontrarle utilidad a dicha red social en los últimos tiempos, y al ser incapaz de distinguir momentos "instagramables" de momentos "costumbristas" a la hora de publicar contenido.

Programación al estilo Taco Bell (2010): igual que cada menú en una cadena de comida rápida se compone de una configuración distinta de unos pocos ingredientes, muchas de las tareas que se hacen en computación pueden ser expresadas con una combinación distinta de unos pocos comandos UNIX. Curioso artículo escrito hace unos cuantos años que conviene revisitar hoy en día con todas las herramientas de nueva generación de las que disponemos hoy en día.

Sin comentarios

danirod.es no tiene comentarios ni un sistema de respuestas en este momento. Ni siquiera sé si quiero terminar de desarrollar el endpoint para recibir webmentions. Si es grave o importante, siempre se puede mandar un e-mail, pero en general, diría que está bien que no se pueda responder.

Es curioso como las redes sociales nacieron con el propósito de conectarnos, y como al principio nos hacía ilusión recibir comentarios, o respuestas, o menciones. Pero sin embargo, el debate y la discusión online se ha acalorado y polarizado tanto en los últimos años en internet, que no pocas personas miramos ya la pestaña de Notificaciones con pesadez. Hay quien habla de persecuciones o de "odio al que piensa diferente", pero yo no lo llevaría tan al extremo, pues ese tipo de comentarios suele proceder de personas que confunden "atacan mi libertad de expresión" con "quieren hacerme responsable de las consecuencias por las tonterías que expreso".

Una conversación. Alguien pregunta, '¿Vienes a la cama?'. Responde, 'No puedo, es importante, alguien está equivocado en internet
Sí, estoy enlazando a esta condenada viñeta de xkcd yo también.

Diffs más útiles en git

El comportamiento por defecto de git diff es mostrar un diff línea a línea. Es decir, si se ha modificado mínimo un caracter en una línea, la salida del git diff contendrá completa la línea que se ha cambiado. Esto está bien, pero si sólo se han cambiado un par de caracteres, puede ser más útil otro tipo de diff.

Con el flag --word-diff es posible señalizarle a la salida de git diff para que señale en el diff únicamente las palabras que han sido modificadas, manteniendo el resto de la línea intacta.

Si lo queremos llevar más al límite, con el flag --color-words=. podemos señalizarle a git diff que nos señale en el diff únicamente los caracteres que han sido modificados.

(Gracias a Gabriel Knight por compartir hace unos días este último flag en el Discord).

Acabo de descubrir que en vim puedes tener múltiples cursorcolumns simplemente separando varios números por comas, como en set colorcolumn=72,80. Supongo que nunca sabes por dónde te va a sorprender Vim. 😁

Últimamente estoy haciendo limpieza en mi Pocket, y en marcadores viejos que me prometí que revisaría. Probablemente esta semana, en vez de compartir un marcador a cada cosa que lea en el linklog, los agrupe y publique una mega-entrada a finales de semana con todos los enlaces, nuevos o viejos, que me he encontrado esta semana en internet.

Bundle de libros de desarrollo web →

Desarrolladores, desarrolladoras, gente en general que busque introducirse en el mundo del desarrollo web. Hay un nuevo bundle de libros en la web de Humble Bundle, y la temática es programación web. Hay libros sobre CSS, JavaScript, también frameworks como React, Vue o Angular… En total, 17 libros sobre desarrollo web de O'Reilly, que por separado costarían $580 USD, pero que puedes adquirir online a un precio mucho más asequible y contribuyendo a una buena causa social. Vale la pena echarle un vistazo.