Tech4Girls

¿Y por qué a mí me sonó terriblemente machista?

Era una cabina cerrada en una de las enormes salas de InterMediae en el Matadero de Madrid y me pareció un ghetto, una jaula donde meter a las chicas osadas que se atrevieran a interesarse por la tecnología, campo claramente masculino donde los haya, según parece.

Sé que es una forma de intentar disminuir esa brecha de la que habla el cartel, pero me resulta algo disgregante, aunque quizá sea por la casualidad de conocer mujeres claramente interesadas por la tecnología desde hace años sin que por ello pierdan un ápice de su «femineidad». En resumen, que me parece una forma de reforzar estereotipos… aunque quizá sea algo positivo y yo no lo pueda comprender por mi exceso de «masculinidad» o por lo fácil que he tenido el tener una pasión, como en su día fue la tecnología, dada por sentada, por asumida dentro de la más completa «normalidad» heteropatriarcal.

hummm… supongo que es sólo una cuestión de estrategia, no de lucha. Así que no es importante.

Tres relojes en uno

Divertido y desquiciante al mismo tiempo, esto de tener un teléfono móvil que, de cuando en cuando, sin que se sepa el porqué, tiene dentro de sí tres tiempos distintos. Y las diferencias entre ellos no siempre son tan pequeñas como la que muestro en esta imagen.

Tengo un pequeño incidente desde hace tiempo (va de tiempo, la cosa) con mi casi obsoleto último teléfono móvil, un BQ Aquarius o algo así, 4.5 de reducido tamaño (parece que la tendencia es a llevar televisores que funcionen como teléfonos esporádicamente en el bolsillo). Afortunadamente encontré una página que da cuenta de que no soy el único, porque creí que me estaba volviendo loco. Es una incidencia aún no resuelta (desde hace meses) que me da poca confianza en los servicios de postventa de BQ y su soporte técnico que, imagino, está esperando a que se actualice a la siguiente versión y se arregle el problema o bien que se cambie de teléfono, cosa que suele hacer la gente con mucha más frecuencia de la necesaria.

De momento, aguantaré con este teléfono todo lo que pueda, pero uno de los usos principales que le doy es que me sirva de medidor de tiempo de las clases particulares, de los talleres, etc. Y esta avería me está ocasionando un problema bastante serio que, por otro lado, es insignificante comparado con lo que llamaría verdaderos problemas.

Spectre y Meltdown

Aparentemente, hay confirmada una enorme vulnerabilidad (enorme en cuanto a la cantidad de equipos afectados y a la profundidad de control que puede lograr un ataque exitoso) de seguridad en procesadores informáticos.

El ataque es a nivel hardware, prácticamente, lo que hace que dé igual el sistema operativo que lo gestione. Así que tanto Linux, Windows como MacOS, así como incluso Android e iPhones son víctimas potenciales de este tipo de ataques.

Un artículo bastante completo sobre el tipo de vulnerabilidad pero al mismo tiempo lo suficientemente claro para que legos en la materia pueden leerlo es el de CNET, web especializada de bastante prestigio en el ámbito de la seguridad informática.

El 2018 ha comenzado con un serio problema para los usuarios, pues esta vulnerabilidad aparentemente no tiene solución a nivel firmware (El firmware o soporte lógico inalterable es un programa informático que establece la lógica de más bajo nivel que controla los circuitos electrónicos de un dispositivo de cualquier tipo. Está fuertemente integrado con la electrónica del dispositivo, es el software que tiene directa interacción con el hardware, siendo así el encargado de controlarlo para ejecutar correctamente las instrucciones externas) sino que habría que modificar el diseño o funcionamiento intrínseco del hardware, lo que no es viable sino hasta dentro de varios meses (o cambiando a procesadores no afectados, lo que significa, más o menos, comprar un ordenador o dispositivo nuevo).

Por otro lado, teniendo en cuenta que la seguridad se mide por el eslabón más débil de una cadena, habría que cambiar todos los dispositivos de una misma red, por ejemplo, para sentirse mínimamente seguro ante esta posible amenaza, pero es algo casi inviable, pues incluye hasta el mismo router que tendrá, en muchos casos un procesador ARM vulnerable. (El LiveBox de Orange que tengo en casa tiene un MIPS que no consta en la lista de procesadores afectados).

Dicen en la web del artículo de CNET que la buena noticia es que los hackers necesitan instalar un software malicioso en su computadora para aprovechar estos defectos. Eso significa que necesitan seleccionar sus objetivos y piratear cada uno de ellos antes de ejecutar un ataque sofisticado para robar la información sensible de una computadora.

Pero un párrafo anterior han alertado sobre el hecho de que no sólo afecta localmente sino también a todo servidor del planeta, así que… poco que hacer al respecto.

¿Qué más da que mi equipo esté muy protegido si el de mi banco no puede estarlo? Por no decir el de mi servidor de correo, mi servidor web, mi nube, mi … Todo equipo es prácticamente vulnerable.

De momento, los primeros ataques serán poco sofisticados y afectarán a equipos domésticos casi con total certeza, especialmente a aquellos usuarios descuidados en su política de seguridad que ejecutan software en sus equipos sin ningún control (léase, usuarios de Windows) acostumbrados a pinchar botones de «Aceptar» casi sin mirar, descargando software de plataformas de dudosa reputación.

No se puede vivir con miedo, pero esta vulnerabilidad tan sólo pone sobre la mesa la imposibilidad de vivir tranquilo si se quiere estar pendiente de la seguridad. Eso no implica no ser responsable de la utilización que se hace de los dispositivos que, cada día más, tenemos omnipresentes en nuestras vidas.

Vamos a sufrir un ataque (varios ataques), hay que mentalizarse. Hay que relajarse y disfrutar. Estimar los daños. Valorar lo que se tiene. Pensar que casi todo lo que hay que proteger es cuestión de dinero. Y la vida es mucho más.

Mi recomendación particular, una y otra vez, es pasarse a Linux, no porque sean invulnerables sino porque los ataques irán principalmente destinados (al menos al principio) a Windows/Android/MacOS que son los sistemas operativos más extendidos. Posteriormente, los ataques serán desde los servidores y la defensa ante estos tipos de ataque es mucho más difícil de llevar a cabo. No usar servidores es desconectarse de Internet y es una de esas cosas que, en los tiempos que corren, resulta inconcebible y, en la mayoría de los casos, contraproducente incluso a riesgo de altas pérdidas.

URLarga: Feliz 2018

Este año, trabajando con las URLs, he decidido realizar 27 felicitaciones navideñas con este motivo, derivando a quien le dé por buscar si esas urls tienen algún sentido otro que el azaroso, al menos a esta entrada del diario que dedicaré a semejantes especímenes.

Programé un pedacito de código C (con VI, por supuesto, y «from scratch», como a mí me gusta) que ha generado 27 URLs únicas. Las he acomodado con GIMP/Linux sobre papel fotográfico que me regalaron con la impresora y al que no sabía qué uso dar.

Me gusta la unicidad del (pseudo)azar programable, que dota de cierto engañoso aura a cada una de las pequeñas piezas que, por momentos, pensé en personalizar, pero intervenía en el azaroso gestar de las mismas… Ya es suficiente con que las URLs comiencen con mi SLD (Second Level Domain), en lugar de un dominio generado al azar.


/*****************************************
urlarga.c

Programa crear URLs que no tengan ningún sentido
más que el azaroso.

Añado la dirección del servidor para que si alguien
quiere ir, al menos aparezca una mínima explicación
de en qué consiste el proyecto.

Derivo a una URL que contiene una búsqueda en mi blog
incluyendo la palabra "urlarga" que remitirá
a una entrada específica creada para tal fin.

*****************************************/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <wchar.h>
#include <locale.h>

// Longitud de la URL formada, incluyendo el protocolo y el servidor
#define LONGITUD_MAX 729
// Para realizar 27 URLs arbitrarias
#define NUM_URLS 27

int main()
{
  setlocale(LC_CTYPE, ""); // Necesario para que funcionen las ñ
  
  int  i, j, letra, l_alfa, l_prot, l_serv, l_base;
  // Un alfabeto incluyendo algunos signos de puntuación
  wchar_t alfabeto[] = L"0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz!!$%&/()=?¿¡,;:-_+ç";
  wchar_t URL[LONGITUD_MAX];
  wchar_t protocolo[] = L"http://";
  wchar_t servidor[] = L"giusseppe.net/blog/?s=feliz&2018&urlarga&";

  l_alfa = wcslen(alfabeto);
  l_prot = wcslen(protocolo);
  l_serv = wcslen(servidor);
  l_base = l_prot + l_serv;

  srand (time(NULL));

  for (j = 0; j < NUM_URLS; j++)
  {
    wmemset(URL, L'\0', LONGITUD_MAX);
    wcscpy(URL, protocolo); 
    wcscat(URL, servidor); 
    for (i = l_base; i < (LONGITUD_MAX-1); i++)
    {
      letra = rand() % l_alfa; // Obtenemos una letra (índice) al azar del alfabeto
      // Aleatoriamente, si el anterior no era un punto ni una /, ni estamos al final de la URL, ponemos un punto.
      if ((!(rand()%5)) && (URL[i-1] != L'.') && (URL[i-1]!=L'/') && (i != (LONGITUD_MAX-1))) URL[i]=L'.';
      else URL[i]=alfabeto[letra];
    };
    wprintf(L"|%ls|\n", URL);
  };
} // main()

Transitar

TRANSITAR

El verbo transitar viene del latín transitare, frecuentativo formado a partir del nombre de acción transitus (tránsito) del verbo transire (ir de un lado a otro, atravesar) compuesto por trans- (de un lado a otro) y el verbo ire (ir).

Otras palabras formadas con trans– incluyen transeúnte, transgénico, transgredir, transliteración, traspontín, tranvía. Este prefijo latino viene de la raíz indoeuropea *terə-2 (cruzar, pasar por), que nos dio avatar a través del sánscrito.

De ire tenemos: ambiente, andar, comicios, inicio, pretérito, sedición, etc. El verbo latino ire se asocia con la raíz indoeuropea *ei– (conducir), que estaría presente en el griego εἶμι (eimi = yo camino) y de ahí la palabra ion.

Me da bastante por saco cuando una web se empeña en impedir que se pueda usar el botón derecho para, por ejemplo, seleccionar texto de la misma. Como si pudieran poner verjas al campo. Y es que, si me dejan ver si página, puedo, sin ir más lejos, descargarme la misma e incluso modificar el código HTML que me impide hacerlo, o, más sencillamente, obtener directamente desde el código fuente la información que preciso.

Tan sólo lo ponen un poco más complicado, pero no es evitable. Salvo que lo conviertan todo en una imagen, por ejemplo, lo que acabaría siendo absurdo e insostenible. Alguna vez se tendrá que hablar con seriedad de la manera en la que compartir el conocimiento en algo tan inabarcable e ingobernable, aunque se empeñen, como es Internet.

Lo siento por quienes pretendan vivir como si nadie supiese nada… pero no es así.

Palimpsesto: ente

En otra de las manipulaciones del diccionario, esta vez provocada por la combinación de palabras que podríamos denominar haiku experimental o haiku concreto:

Impotente
potente
silente ente

Me vino a la «mente» el hacer una serie de poemas cuyas todas palabras terminasen en «ente», pero quizá resulta algo pesado. Ya veré si continúo el proyecto, aunque es poco probable.

De momento, me atrajo la idea de juguetear con el diccionario y buscar todas aquellas palabras que contuviesen la palabra ente al final de las mismas, sin contener (al final de las mismas) la palabra mente. Son, lo que podríamos denominar, entes sin mente.

Para ello, valiéndome del diccionario en modo texto sin repeticiones que tengo en formato texto plano, compuse el siguiente programa o pedacito de código que creaba el fichero entenomente.txt del que poder extraer la capa segunda del palimpsesto que presento en esta ocasión.

#
# ente.sh
#!/bin/bash
# Recogemos todas las palabras del diccionario sin repeticiones
# terminadas en "ENTE" que no terminen en "MENTE"
# para descartar todas esas formas adverbiales fáciles
# aunque queda excluida, por error, la palabra mente.
grep "ente$" ../diccionariosinrepes.txt|grep -v "mente$" > entenomente.txt
# Comando para sustituir el final de línea por ", "
# El siguiente sed modifica 'miento' por '<b>miento</b>'
sed ':a;N;$!ba;s/\n/\, /g' entenomente.txt > entenomentelinea.txt
sed 's/ente/<b>ente<\/b>/g' entenomentelinea.txt > entenomentehtml.txt

Generó la siguiente salida, con resaltados para aprovechar ese entenomentehtml.txt:

absente, absorbente, abstergente, abstinente, accidente, acescente, acidorresistente, acrescente, acudiente, adherente, adoleciente, adolescente, adquirente, adquiriente, adsorbente, adstringente, adyacente, aferente, afluente, afluyente, aguardiente, alburente, algente, aliciente, altilocuente, ambiente, ambivalente, antecedente, antepresente, antiadherente, anuente, aparente, apetente, aplaciente, aprendiente, aquiescente, arborescente, ardiente, argente, arguyente, armipotente, ascendente, ascendiente, astringente, atinente, atingente, atrayente, ausente, autocomplaciente, autosuficiente, balbuciente, barbiponiente, barbipungente, barbipuniente, batiente, benevolente, bidente, bienhaciente, bienoliente, bioluminiscente, birrefringente, bivalente, bullente, cadente, calamo currente, caliente, candente, capelardente, carente, caridoliente, casateniente, caulescente, causahabiente, cecuciente, cedente, ciente, circunferente, circunyacente, ciudente, clarividente, coagente, coalescente, cociente, codelincuente, coeficiente, coexistente, cognoscente, coherente, coincidente, combatiente, comburente, comitente, compaciente, compareciente, comparente, competente, complaciente, componente, concedente, concerniente, concluyente, concupiscente, concurrente, condecente, condescendiente, conducente, conficiente, confidente, confitente, confluente, confluyente, connivente, consciente, consecuente, consiguiente, consintiente, consistente, constituyente, constringente, contendiente, continente, contingente, contracorriente, contradurmiente, contrainsurgente, contrapariente, contraproducente, contrayente, contribuyente, contundente, convaleciente, conveniente, convergente, convincente, conviviente, correferente, corregente, correspondiente, corriente, corroyente, corrumpente, cortacorriente, cotangente, covalente, creciente, creyente, crujiente, cuentahabiente, curtiente, dasquicerente, decadente, decente, deciente, decreciente, decumbente, decurrente, deferente, deficiente, dehisciente, delicuescente, delincuente, demulcente, dente, Deo volente, dependente, deponente, derechohabiente, descendente, descendiente, desobediente, despediente, despidiente, desplaciente, detente, detergente, diapente, dicente, diciente, diente, diferente, difidente, difluente, difrangente, diligente, diluente, diluyente, dimitente, dirigente, discente, disidente, disolvente, displicente, divalente, divergente, docente, doliente, dormiente, drogodependiente, durmiente, eferente, efervescente, eficiente, eflorescente, efluente, electroluminiscente, elocuente, emergente, eminente, emoliente, empeciente, emulgente, encontinente, encreyente, enmiente, ente, –ente, entente, entrepuente, envolvente, equipolente, equipotente, equivalente, erubescente, escarbadiente, esciente, escribiente, eseyente, espinescente, esplendente, estridente, estupefaciente, evanescente, evidente, excedente, excelente, excipiente, excluyente, exconvatiente, exigente, existente, expediente, exponente, farmacodependiente, fehaciente, fendiente, ferviente, floreciente, fluente, fluorescente, fluyente, fosforescente, fotoresistente, frangente, frecuente, frente, frigente, fringalente, fuente, fulgente, fundente, furente, furiente, gallipuente, gente, gimiente, graciadiosente, gradiente, grandilocuente, gruñente, habiente, haciente, hendiente, hiriente, hocente, idempotente, -iente, ignipotente, impaciente, impediente, impelente, impenitente, impertinente, imponente, impotente, improcedente, impropiamiente, imprudente, impudente, inapetente, inasistente, incandescente, incidente, inciente, incipiente, incluyente, incoherente, incompetente, inconducente, inconfidente, incongruente, inconsciente, inconsecuente, inconsiguiente, inconsistente, incontinente, inconveniente, indecente, indeficiente, indehiscente, independente, independiente, indiferente, indigente, indolente, indulgente, ineficiente, inexistente, infidente, influente, influyente, infrecuente, ingente, ingrediente, inherente, inmanente, inminente, inmunodeficiente, innocente, inobediente, inocente, insipiente, insistente, insolente, insolvente, instridente, insubsistente, insuficiente, insulinodependiente, insurgente, inteligente, intercadente, intercurrente, interdependiente, intermitente, interviniente, interyacente, intransigente, intrascendente, intumescente, invidente, iridiscente, irreverente, jurisprudente, jusente, lactescente, latente, laurente, lente, levente, luciente, lugarteniente, luminiscente, magnificente, maldiciente, maledicente, malevolente, maloliente, malqueriente, malviviente, manteniente, mantiniente, marcescente, medioambiente, miente, minicomponente, moliciente, monovalente, mordente, mordiente, moviente, munificente, naciente, negligente, nepente, nesciente, nocente, nutriente, obediente, obsecuente, obsolescente, obstruyente, occidente, ocurrente, oferente, oliente, omnipotente, omnipresente, omnisapiente, omnisciente, opalescente, oponente, oriente, oyente, paciente, paradocente, parapente, parturiente, patente, pendiente, pentavalente, percipiente, percuciente, percutiente, perficiente, permanente, persistente, perteneciente, pertinente, pestilente, placiente, plurivalente, poderhabiente, polivalente, ponente, poniente, potente, precedente, predisponente, preeminente, preexistente, preferente, prefulgente, premoriente, prepotente, presciente, presente, prevaleciente, prevalente, previdente, procedente, procurrente, proficiente, prominente, promitente, propelente, proponente, providente, prudente, pubescente, pudiente, puente, pungente, putrescente, quiescente, radiofuente, radioluminiscente, radioyente, rayente, reciente, recipiente, reconstituyente, recurrente, redolente, redoliente, referente, refringente, refulgente, reincidente, relente, reluciente, remanente, reminiscente, remitente, renitente, renuente, repelente, repente, repitente, repitiente, requirente, residente, resiliente, resistente, resolvente, resolviente, resplandeciente, resplendente, restringente, reticente, retrayente, reverente, rigente, rompiente, rubefaciente, rubescente, rusiente, saliente, sapiente, sargente, sedente, sedicente, sediente, semideponente, semiinconsciente, semitransparente, semoviente, sempervirente, senescente, serpiente, siguiente, silente, simiente, sismorresistente, sobrediente, sobreviviente, solvente, sonriente, sorprendente, subafluente, subconsciente, subcontinente, subiente, subintendente, subsecuente, subseyente, subsiguiente, subsistente, subteniente, subyacente, suficiente, sugerente, supereminente, superviviente, suplente, suprayacente, talente, tangente, tarjetahabiente, televidente, tendiente, termorresistente, terrateniente, tetravalente, tomacorriente, torrente, totipotente, transferente, transigente, transmitente, transparente, trasluciente, trente, tridente, triente, trivalente, tumescente, tundente, turgente, unidocente, urente, urgente, -valente, valiente, vanilocuente, vertiente, vicegerente, Vicente, vidente, vigente, viniente, viripotente, viviente, yacente, yaciente, yente

Respuestas o preguntas

Mi smartphone me pregunta si quiero respuestas antes de preguntar. Demasiado smart, pero me conoce poco: me apasionan las preguntas y no demasiado las respuestas.

Por supuesto, lo que ha hecho para ofrecerme ese «servicio» ha sido formular una pregunta ¿Quieres respuestas antes de que preguntes?, lo que no deja de resultar parcialmente paradójico e incluso contradictorio: ¿Por qué no ha respondido por mí y me ha dicho, así, directamente: ¡Quieres respuestas antes de preguntar!?

¿En qué momento nos sugerirá vivir por nosotros?

Ayer hice mi primer PING a IPv6

Parece mentira pero a estas alturas, después de décadas viviendo el desplegar del mundo IP aún me siento un inútil integral de cuando en cuando, un newbe de lo peorcito.

Ayer parece ser que actualizó mi router al protocolo IPv6 y el programa que tenía para acceder remotamente ya no me sirve y me tocará volver a programarlo. Curiosamente o por desgracia, ha sido justo cuando estuve a punto de programar un script que sincronizara carpetas del PC de casa, tras el nuevo router-IPv6 con el PC de mi estudio con un estupendo IPv4 (aunque también asigna direcciones IPv6).

Para hacer una mierdecilla de prueba, he hecho PING a mi propia interfaz y resulta que hay que especificarla. Bufff… cada día es más complejo. Buscando acá y allá encontré cómo hacerlo, pero la verdad es que menos mal que adquirí un plan Mega para solucionar mi ubicuidad, porque si lo hubiese hecho de otra forma, ahora no funcionaría.

wlx98ded0071b50 Link encap:Ethernet direcciónHW 98:de:d0:07:1b:50
Direc. inet:192.168.1.36 Difus.:192.168.1.255 Másc:255.255.255.0
Dirección inet6: fe80::c52d:5b6e:2f9d:c2d7/64 Alcance:Enlace
ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST MTU:1500 Métrica:1
Paquetes RX:5271 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:7171 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:1000
Bytes RX:623168 (623.1 KB) TX bytes:873532 (873.5 KB)

giusseppe@estudioclave53 ~ $ ping6 fe80::c52d:5b6e:2f9d:c2d7%wlx98ded0071b50
PING fe80::c52d:5b6e:2f9d:c2d7%wlx98ded0071b50(fe80::c52d:5b6e:2f9d:c2d7) 56 data bytes
64 bytes from fe80::c52d:5b6e:2f9d:c2d7: icmp_seq=1 ttl=64 time=0.025 ms
64 bytes from fe80::c52d:5b6e:2f9d:c2d7: icmp_seq=2 ttl=64 time=0.029 ms
64 bytes from fe80::c52d:5b6e:2f9d:c2d7: icmp_seq=3 ttl=64 time=0.050 ms
64 bytes from fe80::c52d:5b6e:2f9d:c2d7: icmp_seq=4 ttl=64 time=0.043 ms
^C
--- fe80::c52d:5b6e:2f9d:c2d7%wlx98ded0071b50 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 0.025/0.036/0.050/0.012 ms

Esto no es una broma