Añadir un PDF a un sitio web usando una etiqueta de HTML5

Existen varias formas de insertar un PDF dentro de un sitio web, una de ellas es usar alguna de estas etiquetas:

  • embed
  • object
  • iframe

Antaño solo teníamos la opción de usar la etiqueta iframe, dado que embed y object se añadieron para la especificación HTML5. En todo caso el procedimiento con las tres es el mismo: ponemos la URL del fichero PDF como valor del atributo src y definimos el tamaño mediante los atributos width y height:

<!--Ejemplos varios-->
<iframe src="http://rutaamipdf/fichero.pdf" width="95%" height="100%"></iframe>

<embed src="http://rutaamipdf/fichero.pdf" width="95%" height="100%"></embed>

<object src="http://rutaamipdf/fichero.pdf" width="95%" height="100%"></object>

¿Problemas? Pues sí, que con este método dependemos de que el navegador que está usando el usuario tenga incorporado algún visualizador de PDF. En algunos casos tiene que ser mediante un plugin externo, como en Chrome, en otros ya viene incluído por defecto en el propio navegador.

Anuncios

Comprobar de forma fácil si un número es par en una hoja de cálculo de Google Drive

En su día habíamos visto varias soluciones para comprobar con PHP si un número es par o impar. Esto también podemos necesitarlo cuando trabajamos con una hoja de cálculo de Google Drive, por suerte ya hay una función específica para ello:

La funció ES.PAR() recibe un número como parámetro y nos devuelve un valor booleno: verdadero si es par y falso si no lo es. Así de simple. Su funcionamiento sería como en el siguiente ejemplo:

=ES.PAR(22)

Importar datos de una hoja de cálculo de Google Drive a otra con IMPORTRANGE()

En los últimos tiempos casi todos los artículos técnicos están siendo de ofimática y, más en concreto, de Google Drive. Y esta nueva entrega sigue por ahí: ¿podemos importar datos de una hoja de cálculo a otra en Google Drive? Pues sí, podemos.

La función IMPORTRANGE() se encarga de ello, recibiendo dos parámetros (dos cadenas de texto, por tanto se les envían siempre entre comillas dobles): el primer parámetro será la URL de la hoja de cálculo donde está el origen de los datos, el segundo será una cadena donde especificamos la hoja y el rango de celdas a recoger. La sintaxis es tal que así:

=IMPORTRANGE("UrlDeLaHojaDeCálculo";"NombreDeLaHoja!CeldaInicio:CeldaFin")

Os voy a dejar un ejemplo más o menos real. Tengo una hoja de cálculo donde voy guardando los discos que añadiré a la próxima revisión de los 1100 discos esenciales (cuando crezca hasta 1250, dentro de unos meses). Ahora voy a importar de esa tabla las dos primeras columnas de las 20 primeras filas. Lo haría así:

=IMPORTRANGE("https://docs.google.com/spreadsheets/d/1QqGx-f4jC3ZHi1jkSa9eY9_vY-OiClXJ1nKTDwleVpfh3I/";"Hoja 1!A1:B20")

Otro dato importante: por seguridad la primera vez que importemos los datos se nos solicitará conceder permisos explícitamente sobre la hoja de origen. Una vez concedidos, la hoja de cálculo de destino podrá extraer datos de cualquier parte de la hoja de origen hasta que el permiso se revoque también de forma explícita.

Musiqueando 4 (20190508)

Hay un puñado de productores que son genios capaces de maximizar la capacidad de trabajo de los músicos y hacerles sacar lo mejor de sí mismos a la hora de grabar sus obras, pero también hay muchos productores que pecan de exceso de conformismo o de solo saber calcar fórmulas que les han traído el éxito a otros. El otro día veía una discusión online sobre el Rocka Rolla, el disco debut de Judas Priest que no está, precisamente, entre lo más destacado de su producción. Una curiosidad respecto a esta grabación es que los temas Tyrant, Epitaph y The Ripper ya estaban compuestos, finalizados y eran interpretados por el grupo en sus directos, mientras que Victim of Changes (en aquel momento titulada provisionalmente Whisky Woman) y Dream Deceiver estaban inacabados pero el proceso de ser finalizados para la grabación. El productor, Rodger Bain, rechazó esas canciones por no ser bastante comerciales. Un año y medio después esos temas conforman el grueso de Sad Wings of Destiny, el disco que daría el impulso definitivo al grupo y que se convertiría en uno de los pilares de la historia del heavy metal. ¿Fue cosa de la discográfica o del productor? Los precedentes de Bain eran excelentes: los tres  primeros discos de Black Sabbath y los dos primeros de Budgie, es evidente que no era un inútil pero con Judas Priest se estrelló, le falló la visión y el oído rechazando canciones que se mantendrían cuatro décadas en el repertorio de la banda.

The Pilgrim es el proyecto en solitario del líder de Black Rainbows y cabeza del sello Heavy Psych Sounds, Gabriele Fiori. Su última entrega, Walking into the Forest, es un trabajo alejado del stoner metal de su banda madre, un proyecto acústico de sonido desnudo y espíritu folk. Nada de casposos MTV Unplugged de los 90 por si lo estabas pensando, lo de Fiori es real, genuino, elaborado, similiar al álbum acústico de Brant Bjork del que ya hablamos en su día, picando del Neil Young desenchufado, del lado más folk de Jethro Tull, de Crosby Stills and Nash o de la etapa setentera de Terry Reid. Moviéndose entre lo onírico, lo bucólico, lo crudo y lo desértico nos deja piezas muy variadas como el rock desenchufado de Brainstorm, el bucolismo pastoril de When I call your Name o la pura morriña en Dragonfly. Kyuss y Fu Manchu dándose la mano con Donovan y Bob Dylan.

Hablando de Dylan, le fui a ver en la última gira en su paso por Compostela. Como bien sabéis soy un gran fan suyo, le tengo una enorme admiración como leyenda de la música del siglo XX y es uno de los músicos más presentes en mi lista de 1100 discos indispensables… pero voy a confesar que salí decepcionado. Es cierto que ya sabía que la comunicación con el público del legendario cantautor es nula, que su voz está muy cambiada por la edad y que con 77 años no le íbamos a pedir un show enérgico, yo todo eso lo llevaba ya asumido. Lo que sí me esperaba es que viniese acompañado de unos músicos sobresalientes, pero el grupo de apoyo me resultó bastante justito y apático. Y los arreglos de las canciones para que encajen en el sonido más blues-rocanrol de la gira tampoco me gustaron, clásicos ya universales como Like a Rolling Stone, Highway 61 o Blowing in the Wind acaban sonando irreconocibles, dando la impresión de que todo suena más como a Roy Orbison que al viejo Dylan. El sonido del pabellón, como de costumbre en Sar, tampoco ayudó a mejorar la experiencia. Por un lado decepcionado, por otro al menos puedo decir que le pude ver en concierto, ya que en su anterior visita a la ciudad me había tocado currar. Y uno tampoco ve todos los días a un premio Nobel tocando el piano y cantando.

Hace un par de días vi una foto en Facebook, en la cuenta de los Lucifer: Johanna Sadonis y Elin Larsson juntas en un estudio. No aclaraban mucho más ¿Qué se viene? ¿Nuevo disco de Lucifer con una colaboración de Elin? ¿Nuevo disco de Blues Pills con una colaboración de Johanna? ¿Nada de eso y simplemente se sacaron una foto juntas? Pues a saber, pero al menos nos da para dejar fluir la imaginación ¿No molaría escucharlas cantar un par de temas juntas?. Lo que parece seguro es que este año Blues Pills grabarán nuevo material, a ver cómo suena el grupo tras la marcha de Dorrian Sorriaux.

Todavía no hay disco nuevo de Sacri Monti, saldrá en julio y tendremos gira europea para poder volver a verlos en directo. Pero para amenizar la espera Tee Pee Records adelanta un tema en youtube con mucho aroma setentero, una canción que me suena entre Cream y Deep Purple como primer mordisco del que será su segundo trabajo. Prometen una buena dosis de sus hard rock protometálico fusionado con psicodelia.

No soy yo muy de hip-hop pero me he enganchado a un grupo de este género: Shabazz Palaces ¿por qué? Porque es como si alguien hubiera mezclado un poco de Run DMC y otro poco de Outkast con el espíritu psicodélico de All Them Witches o Causa Sui. Ciencia ficción, retrofuturismo y fantasía evasiva abrazándose a un susurrado hip hop sobre bases electrónicas con efectos cósmicos y espaciales. En los últimos años han agregado además percusión africana y ritmos afrobeat a sus composiciones ¿Una aproximación musical al Afrofuturismo? Ahí lo dejo. Tienen cuatro discos de los que me he devorado dos especialmente: Lese Majesty y Born on a Gangster Star, además de varios pequeños directos en la icónica estación de radio KEXP que te puedes encontrar en su canal de Youtube.

Y para despedirnos otro adelanto, el del próximo disco de Peter Frampton: All Blues. El mítico ex-guitarrista de los Humble Pie y autor del clásico superventas Frampton Comes Alive! y del pegajoso Baby I love your Way (y protagonista de una mítica escena en Los Simpson, como no) anunció en febrero que dejaría de girar después de este verano, ya que le han diagnosticado una grave enfermedad llamada miositis por cuerpo de inclusión que a medio plazo le acabará afectando a los dedos, impidiéndole tocar. Esto nos hace temer que este pueda ser también el último trabajo que pueda grabar el guitarrista, que nos dejará un repaso por 10 de sus clásicos del blues favoritos versionados por su banda y con varios guitarristas invitados: Larry Carlton, Steve Morse o Kim Wilson. Desde aquí esperamos que la medicina pueda ayudarle con su condición.

Importar datos desde una web a una hoja de cálculo de Google Drive

Seguimos con el tema de la ofimática y con las hojas de cálculo de Google Drive, que parece ser un material que os interesa. Hoy vamos a ver una función muy útil aunque un poco liosa: Con IMPORTHTML() podemos importar a la hoja tablas o listados de una web.

La función recibe tres parámetros: el primero, como es lógico, es la URL de la página desde la que queremos importar los datos, irá entre comillas dobles por ser una cadena de texto. El segundo, el formato que queremos importar (puede ser “table” para tablas o “list” para listas”. Finalmente el tercero es un índice para indicar qué tabla quieres traer si hay varias dentro de la web, algo que puede ser lioso ya que a veces vamos “a ciegas” y puede que necesitemos varios ensayos de prueba y error hasta traer el dato que queremos. Por tanto la sintaxis sería tal que así:

=IMPORTHTML (dirección url; tipo de listado; índice numérico)

Vamos con un caso práctico, seguro que recuerdas que en su día vimos como exportar datos desde la web Basketball-Reference a formato Excel. Ahora vamos a hacer lo mismo pero usando directamente esta fórmula en una hoja de Google Drive:

=IMPORTHTML("https://www.basketball-reference.com/players/s/smithjr01.html";"table";1)

La línea de arriba importaría la primera tabla de la ficha de JR Smith, es decir, sus promedios en temporada regular. El resultado sería tal que así:

Ejecutar apps de Android en Linux con Anbox

Aunque el núcleo de Android es Linux sus aplicaciones no son compatibles de forma nativa con una distribución de GNU/Linux. Para correr aplicaciones Android en un sistema Linux necesitamos un emulador al estilo de Wine (que nos permite correr aplicaciones de Windows).

Existen hoy por hoy varios proyectos de emuladores que nos permiten hacer esto en nuestros sistemas Linux pero ha sido Anbox el que me ha parecido más interesante ¿por qué? Porque Anbox se sirve del propio kernel de nuestra distribución para trabajar, sobre el que extiende una capa de compatibilidad. ¿Qué implica esto? Que al no tener que emular el kernel consume menos recursos que sus competidores. Nuestro hardware queda menos cargado con el.

Podemos instalarlo mediante paquetes snap o desde la tienda de apps o los repositorios de nuestra distro. Una vez instalado basta con instalar en nuestro equipo el .apk de la aplicación que queremos correr. Para facilitar esta instalación lo mejor es que instalemos también AndroidDebugBridge (ADB), una herramienta para desarrolladores Android:

# Instalar ADB en Ubuntu y familia
$ sudo apt install android-tools-adb

# Instalar ADB en Fedora
$ sudo dnf install android-tools

La función SPARKLINE() en la hoja de cálculo de Google Drive: insertar gráficas en una celda

Si bien la hoja de cálculo de Google Drive, al igual que Excel o que LibreOffice Calc, nos aporta una serie de cómodas herramientas para la creación de gráficos también disponemos de una función que nos permite crear un gráfico dentro de una celda. Dicha fución se llama SPARKLINE().

Ejemplo con los cuatro tipos de gráficos disponibles.

Esta función recibe como primer parámetro el rango de celdas del que queremos recoger los valores. Opcionalmente puede recibir un array de valores como parámetros opcionales. Estas opciones serían pares de valores, irían encerradas entre llaves, separadas del rango por un punto y coma. La separación entre pares se marcaría con un punto y coma, y dentro de cada par con el carácter de la barra \. Debajo te dejo un ejemplo porque explicado así es un lío:

=SPARKLINE(C1:C25,{"charttype"\"bar";"max"\50;"empty"\"zero"})

El parámetro “charttype” indicaría el tipo de gráfico y puede tener los siguientes valores:

  • line: es el valor por defecto, el que tomasi no se especifica ninguno, genera un gráfico de líneas.
  • bar: genera un gráfico de barras apiladas.
  • column: genera un gráfico de columnas
  • winloss: es un gráfico de barras pero que solo representa si el valor es positivo o negativo.

En la imagen de arriba podéis ver cómo se visualizarían los cuatro. Para cada tipo de gráficos tienes después una serie de opciones, que puedes consultar en la documentación oficial de Google.