El quid pro quo según Twitter: Morrissey en lugar de Trump
// ------------------------------------------------------------------------------------------------------------------------------- // PHOTOSWIPE
var initPhotoSwipeFromDOM = function(gallerySelector) {
// parse slide data (url, title, size ...) from DOM elements // (children of gallerySelector) var parseThumbnailElements = function(el) { var thumbElements = el.childNodes, numNodes = thumbElements.length, items = [], figureEl, linkEl, size, item;
for(var i = 0; i < numNodes; i++) {
figureEl = thumbElements[i]; //
// include only element nodes if(figureEl.nodeType !== 1) { continue; }
linkEl = figureEl.children[0]; // element
size = linkEl.getAttribute('data-size').split('x');
// create slide object item = { src: linkEl.getAttribute('href'), w: parseInt(size[0], 10), h: parseInt(size[1], 10) };
if(figureEl.children.length > 1) {
//
if(linkEl.children.length > 0) {
// thumbnail element, retrieving thumbnail url
item.msrc = linkEl.children[0].getAttribute('src');
}
item.el = figureEl; // save link to element for getThumbBoundsFn items.push(item); }
return items; };
// find nearest parent element var closest = function closest(el, fn) { return el && ( fn(el) ? el : closest(el.parentNode, fn) ); };
// triggers when user clicks on thumbnail var onThumbnailsClick = function(e) { e = e || window.event; e.preventDefault ? e.preventDefault() : e.returnValue = false;
var eTarget = e.target || e.srcElement;
// find root element of slide var clickedListItem = closest(eTarget, function(el) { return (el.tagName && el.tagName.toUpperCase() === 'FIGURE'); });
if(!clickedListItem) { return; }
// find index of clicked item by looping through all child nodes // alternatively, you may define index via data- attribute var clickedGallery = clickedListItem.parentNode, childNodes = clickedListItem.parentNode.childNodes, numChildNodes = childNodes.length, nodeIndex = 0, index;
for (var i = 0; i < numChildNodes; i++) { if(childNodes[i].nodeType !== 1) { continue; } if(childNodes[i] === clickedListItem) { index = nodeIndex; break; } nodeIndex++; } if(index >= 0) { // open PhotoSwipe if valid index found openPhotoSwipe( index, clickedGallery ); } return false; };
// parse picture index and gallery index from URL (#&pid=1&gid=2) var photoswipeParseHash = function() { var hash = window.location.hash.substring(1), params = {};
if(hash.length < 5) { return params; } var vars = hash.split('&'); for (var i = 0; i < vars.length; i++) { if(!vars[i]) { continue; } var pair = vars[i].split('='); if(pair.length < 2) { continue; } params[pair[0]] = pair[1]; } if(params.gid) { params.gid = parseInt(params.gid, 10); } return params; }; var openPhotoSwipe = function(index, galleryElement, disableAnimation, fromURL) { var pswpElement = document.querySelectorAll('.pswp')[0], gallery, options, items; items = parseThumbnailElements(galleryElement); // define options (if needed) options = { // define gallery index (for URL) galleryUID: galleryElement.getAttribute('data-pswp-uid'), getThumbBoundsFn: function(index) { // See Options -> getThumbBoundsFn section of documentation for more info var thumbnail = items[index].el.getElementsByTagName('img')[0], // find thumbnail pageYScroll = window.pageYOffset || document.documentElement.scrollTop, rect = thumbnail.getBoundingClientRect();
return {x:rect.left, y:rect.top + pageYScroll, w:rect.width}; }
};
// PhotoSwipe opened from URL if(fromURL) { if(options.galleryPIDs) { // parse real index when custom PIDs are used // http://photoswipe.com/documentation/faq.html#custom-pid-in-url for(var j = 0; j < items.length; j++) { if(items[j].pid == index) { options.index = j; break; } } } else { // in URL indexes start from 1 options.index = parseInt(index, 10) - 1; } } else { options.index = parseInt(index, 10); } // exit if index not found if( isNaN(options.index) ) { return; } if(disableAnimation) { options.showAnimationDuration = 0; } // Pass data to PhotoSwipe and initialize it gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options); gallery.init(); }; // loop through all gallery elements and bind events var galleryElements = document.querySelectorAll( gallerySelector ); for(var i = 0, l = galleryElements.length; i < l; i++) { galleryElements[i].setAttribute('data-pswp-uid', i+1); galleryElements[i].onclick = onThumbnailsClick; } // Parse URL and open gallery if it contains #&pid=3&gid=1 var hashData = photoswipeParseHash(); if(hashData.pid && hashData.gid) { openPhotoSwipe( hashData.pid , galleryElements[ hashData.gid - 1 ], true, true ); } }; // execute above function initPhotoSwipeFromDOM('.my-gallery'); // ====================================== // FIN SCRIPTS PHOTOSWIPE // ======================================
El pasado miércoles, en el contexto de las audiencias en la que la oposición demócrata recaba pruebas para forzar la destitución del republicano, el embajador de EU ante la Unión Europea, Gordon D. Sondland, soltó una afirmación explosiva: que Trump lo obligó a presionar a Ucrania para conseguir un acuerdo de beneficio mutuo, en el que Kiev recibiría apoyo militar de Washington a cambio de investigar los presuntos negocios irregulares en ese país de Hunter Biden, hijo del precandidato presidencial demócrata Joe Biden.
Una cosa por otra, un intercambio de favores. Ese es el significado específico que se le ha dado a la frase quid pro quo en el contexto del escándalo. Y el testimonio de Sondland parecía darle a los demócratas la prueba suprema para demostrar que Trump buscó la injerencia de Ucrania en el próximo proceso electoral, el pretexto que necesitaban para iniciarle un impeachment.
En otra época y con otro mandatario, la noticia habría sido el acabose. Pero en la era Trump y de las redes sociales, el asunto terminó en vodevil, o casi.
Y es que durante la audiencia, y a pregunta de republicanos, Sonland dijo no tener una instrucción directa de parte de Trump, mucho menos una grabación o prueba escrita de ello. "No escuché esas palabras", dijo literalmente (en todo caso, en quien recaería la responsabilidad de sugerir esa prioridad presidencial era Rudolph Giuliani, exalcalde de Nueva York y abogado y estratega del magnate).
De hecho, refirió más bien a una llamada telefónica efectuada el 9 de septiembre en la que Sondland le preguntó a Trump: "¿Qué quieres de Ucrania?" y éste le repite "No quiero nada". El diálogo incluso fue reproducido en un cartelón con letras enormes, el cual fue exhibido por republicanos durante la audiencia como prueba de la inocencia de su líder.
Foto: AP / Andrew Harnik
La ambigüedad del testimonio dio pie a que Trump protagonizara una de sus más extrañas declaraciones de prensa. Minutos antes de abordar el Air Force One para viajar rumbo a Austin, Texas, a una nueva fábrica de productos de Apple, frente al micrófono, Trump recreó su propia versión de la llamada del 9 de septiembre. Para ello leyó unas frases que anotó en un bloc de papel con plumón grueso y que fueron fácilmente visibles.
President #DonaldTrump holds notes while speaking to the media before departing the White House for Texas 📷: Mark Wilson #QuidProQuo pic.twitter.com/9Ee3tqKL8Z
— Getty Images News (@GettyImagesNews) November 20, 2019
"No quiero nada, no quiero nada, no quiero un quid pro quo. Dile a Zellinsky (presidente de Ucrania) que haga lo correcto. Esta es la última palabra del presidente de Estados Unidos", dijo casi gritando, en un volumen de voz que supuestamente usó para hacerse oír en una charla corta y abrupta.
Donald Trump seized upon one particular bit of testimony from Gordon Sondland's hearing today. The EU envoy testified that the president told him "I want nothing" from Ukraine, and "I want no quid pro quo."
“That means it’s all over," Trump told reportershttps://t.co/eYuiyBaqZe pic.twitter.com/JuJJNbIAyL
— POLITICO (@politico) November 20, 2019
Su estilo sobreactuado recordó a las parodias que de él hace el actor Alec Baldwin en Saturday Night Live. Pero sirvió más bien involuntariamente para crear el distractor ideal: convertir el testimonio bomba en un meme.
President Trump's bizarre 'I want nothing' rant has been transformed into songs that sound like the Ramones, Morrissey, and more https://t.co/NaV5Ljhh0F pic.twitter.com/r8GKeg1rVw
— Gizmodo (@Gizmodo) November 21, 2019
El portal Gizmodo recopiló las muestras de cómo un presidente que debió estar acorralado y al borde de la dimisión fue más bien visto como el letrista de una nueva canción de Ramones que, según el usuario Alex Kliment sonaría así:
somebody on twitter today: trump's weird hand-scrawled denial today sounds like a ramones song.
me: pic.twitter.com/mynZjx0E0M
— Alex Kliment (@SaoSasha) November 21, 2019
Otro usuario, @BenJamminAsh, adaptó la hoy icónica letra al estilo del cantante británico Morrissey.
.@pattonoswalt made a tweet that showed Trump’s handwritten notes and the caption was simply “Morrissey voice:”.
Needless to say, I got inspired and put WAY to much effort into this. pic.twitter.com/heOiOhl90P
— RuPaul Giamatti (@BenJamminAsh) November 21, 2019
Otra versión, también al estilo del vocalista de los Smiths
https://twitter.com/victoryrhoad/status/1197284841613602819?s=20
Y un tercer ejemplo documenta qué tan emo puede llegar a sonar el hombre más poderoso del mundo.
Emo Trump recites poem on White House lawn pic.twitter.com/rAD3xRjX4L
— “Big Nick” Lutsko (@NickLutsko) November 20, 2019
Desde ayer, Twitter dejó de aceptar publicidad política, con el fin de contribuir al saneamiento del enrarecido clima político previo al proceso electoral estadunidense. Sacrificar ganancias a cambio de una saludable convivencia pública parece un justo quid pro quo. Pero quizá llegue un poco tarde a una plataforma que en la que la gente dejó su ansia de justicia a cambio de la chunga.
Comentarios
// Obtener todos los elementos con clase .col-md-12 var colElements = document.querySelectorAll('.col-md-12');
// Iterar sobre cada elemento colElements.forEach(function(element) { // Verificar si tiene un hijo inmediato con clase .titulo-region var tituloRegion = element.querySelector('.titulo-region');
if (tituloRegion) { // Agregar la clase .is-sticky al elemento padre element.classList.add('is-sticky'); } });
// Obtener el elemento article dentro de .fila-especial-v2 .p50 var articleElement = document.querySelector('.home .fila-especial-v2 .p50 article');
// Obtener el texto del elemento .z-foto .bajada p var bajadaText = articleElement.querySelector('.z-foto .bajada p').textContent;
// Crear un nuevo elemento para mostrar el texto obtenido var textoElement = document.createElement('p'); textoElement.textContent = bajadaText;
// Obtener el elemento .z-txt .titulo dentro del article var tituloElement = articleElement.querySelector('.z-txt .titulo');
// Insertar el nuevo elemento al final del article articleElement.appendChild(textoElement);
Cortesía de Proceso.
Dejanos un comentario: