Categorías
hoy aprendí ...

… a agregar un botón de compartir

Amiguito SHARE para meter como link y que en dispositivo lance las opciones de compartir.

if(navigator.share !== undefined) {
    document.addEventListener('DOMContentLoaded', e => {
      var shareBtn = document.querySelector('div.share a');
      shareBtn.addEventListener('click', clickEvent => {
        clickEvent.preventDefault();
        navigator.share({title: document.title, text: window.location.href, url: window.location.href})
          .then(() => console.log('Successful share'),
           error => console.log('Error sharing:', error));
      });
    });
}

Esta joyita la encontré en https://paul.kinlan.me/navigator.share. ¡Gracias!

Le hice una modificación para tratar de incorporarlo en el plugin Storefront Product Share combinando algo de PHP y agregando:

		<div class="storefront-product-sharing">
			<ul>
				<li class="twitter"><a href="<?php echo esc_url( $twitter_url ); ?>" target="_blank" rel="noopener noreferrer"><?php _e( 'Share on Twitter', 'storefront-product-sharing' ); ?></a></li>
				<li class="facebook"><a href="<?php echo esc_url( $facebook_url ); ?>" target="_blank" rel="noopener noreferrer"><?php _e( 'Share on Facebook', 'storefront-product-sharing' ); ?></a></li>
				<li class="pinterest"><a href="<?php echo esc_url( $pinterest_url ); ?>" target="_blank" rel="noopener noreferrer"><?php _e( 'Pin this product', 'storefront-product-sharing' ); ?></a></li>
				<li class="email"><a href="<?php echo esc_url( $email_url ); ?>"><?php _e( 'Share via Email', 'storefront-product-sharing' ); ?></a></li>
        <li class="share-redes"><a href="#"><i class="fas fa-share-alt-square"></i> Compartir</a></li>
			</ul>
		</div>
    <script>
      if(navigator.share !== undefined) {
        document.addEventListener('DOMContentLoaded', e => {
          var shareBtn = document.querySelector('.share-redes a');
          shareBtn.addEventListener('click', clickEvent => {
            clickEvent.preventDefault();
            navigator.share({
              title: '<?php echo $product_title; ?>', 
              text: '<?php echo $product_url; ?>', 
              url: '<?php echo $product_url; ?>'
            })
            .then(() => console.log('Successful share'),
            error => console.log('Error sharing:', error));
          });
        });
      } else {
        console.log('Share API no soportado');
        var shareBtn  = document.querySelector('.share-redes');
        shareBtn.textContent = '';
      }
    </script>

Categorías
hoy aprendí ...

… a complicar las cosas en una hoja de cálculo

Necesitaba indicar una celta de manera «dinámica», es decir, formando el nombre dependiendo de la combinación del contenido de otras celdas.

Lo que tenía es una serie de datos encolumnados y totales parciales cada cierta cantidad regular de celdas. Me interesaba tener luego un resumen de esos totales parciales para confeccionar una tabla.

Por ejemplo: en la la página datos tiene la columna A y cada 20 filas hay un total parcial, entonces en la tabla de resumen (que está en otra hoja llamada resumen) la celda en fila 1 tiene que tomar los datos de $datos.A20, la fila 2 tiene que tomar los datos de $datos.A40, y así.

La solución que encontré es utilizar la función ADDRESS que permite indicar el nombre usando datos. Buscando ejemplos prácticos encontré https://forum.openoffice.org/es/forum/viewtopic.php?f=21&t=8091

Encontré esto otro que podría resultar interesante también aunque no lo puse en práctica: https://help.libreoffice.org/6.1/es/text/scalc/guide/value_with_name.html

Otra cosa interesante es: https://blog.open-office.es/calc/lista-desplegable-condicionada-en-openoffice-libreoffice-calc

Me falta completar con la solución que usé

Categorías
hoy aprendí ...

… a redimensionar varias imágenes con un script bash

Y tenía que procesar varias imágenes escaneadas para bajarles el tamaño de las dimensiones y archivo.

Con ImageMagick en Linux esto se logra con un script bash que recorra los archivos en una carpeta. Me topé con esta solución que me pareció bastante sencilla, hay que hacer algunas cosas previas de manera ‘manual’ pero funciona.

El script trabaja y busca las imágenes sobre una carpeta que se indica dentro del script, con lo que hay que personalizarlo. Tener la precaución de que las imágenes sean copias, porque las reemplaza.

#!/usr/bin/env bash
# Purpose: batch image resizer
# Source: https://guides.wp-bullet.com
# Author: Mike

# absolute path to image folder
FOLDER="/var/www/wp-bullet.com/wp-content/uploads"

# max width
WIDTH=540

# max height
HEIGHT=300

#resize png or jpg to either height or width, keeps proportions using imagemagick
#find ${FOLDER} -iname '*.jpg' -o -iname '*.png' -exec convert \{} -verbose -resize $WIDTHx$HEIGHT\> \{} \;

#resize png to either height or width, keeps proportions using imagemagick
#find ${FOLDER} -iname '*.png' -exec convert \{} -verbose -resize $WIDTHx$HEIGHT\> \{} \;

#resize jpg only to either height or width, keeps proportions using imagemagick
find ${FOLDER} -iname '*.jpg' -exec convert \{} -verbose -resize $WIDTHx$HEIGHT\> \{} \;

# alternative
#mogrify -path ${FOLDER} -resize ${WIDTH}x${HEIGHT}% *.png -verbose

Gracias:

https://guides.wp-bullet.com/batch-resize-images-using-linux-command-line-and-imagemagick/

Y chau.

Categorías
hoy aprendí ...

… a ponerle llave al BIOS para que Windows10 no meta mano

No me quedó otra que instalar un Linux Mint al lado de Windows10 que venía preinstalado en una notebook nueva. Tras chocarme varias veces con no poder entrar al BIOS en el arranque con las teclas tradicionales investigo que es esto del SECURE BOOT, y que para poder ingresar al BIOS debo hacerlo desde Windows, indicando que quiero reiniciar para ingresar cambios en el UEFI, mmmmmmm….

Start menu > Recovery > Advanced startup > Restart now

Pantalla celeste (reminisencias de las pantalla azul de la muerte)

Troubleshoot > Advanced options > UEFI Firmware > Restart

Se reinicia el sistema ingresando al BIOS.

Pude instalar Linux Mint, particionando los discos para cada sistemas, datos, etcétera.

Luego de trabajar con Linux varios días en casa, decidimos probar algunos juegos y reiniciamos en la plazita de Windows 10. Instalar Steam, juegos, risas y a dormir. Al día siguiente temprano a trabajar.

Iniciamos la compu y chan! aparece Windows 10 lo más sonriente, como perro moviendo la cola ¿Qué pasó con el Grub en el boot para seleccionar el sistema operativo que quiero usar? Windows 10 había puesto al principio su bootloader.

Indago y encuentro: https://askubuntu.com/questions/838780/windows-10-changes-uefi-boot-order-every-time

La solución: ponerle una password al BIOS para que Windows NO TOQUE lo que no debe sin ni siquiera avisar.

Y chau.

Categorías
hoy aprendí ...

… a optimizar un PDF con GhostScript en linux

Resulta que escannee unas páginas con XSane y me genera imágenes en 300 DPI, contatenando todas las ellas en un PDF.

El PDF quedó de 97Mb, pero quería achicar el tamaño reduciendo los DPI a 150. Encontré esto y me ayudó

http://tuxdiary.com/2015/04/07/compress-pdf-files-linux/

Copio el contenido por si algún día desaparece de la web

Compress PDF files on Linux

pdf

The major benefit of PDF documents is the intended representation remains almost same on any operating system or device. However, scanned PDFs can be of large sizes and you may need to optimize or reduce the size of the file to share it with a friend. This article discusses several ways to do that on Linux with near-original quality.

Native solutions

  • Ghostscript is a great tool for compressing PDFs. In our tests it delivered the best compression ratio. Simply run: $ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out.pdf in.pdf
  • -dPDFSETTINGS can be any of:
    /screen : low-resolution output, lowest output size
    /ebook : medium-resolution output, medium output size
    /printer OR /prepress : high-resolution with maximum output size
  • Run the Shrinkpdf script: $ ./shrinkpdf in.pdf out.pdf The script is almost same as the explicit gs command above. However, it has one advantage – it does an output file size check.
  • qpdf:  A cmdline program that does structural, content-preserving changes to PDF files. The simplest way to invoke it: $ qpdf –linearize input.pdf output.pdf However, this didn’t provide a very optimized output in our tests.
    To install qpdf on Ubuntu, run: $ sudo apt-get install qpdf
  • smpdf is a commercial closed source tool. However, there is an evaluation copy available for download which adds an unlicensed version mark to the modified document. Usage: $ smpdf in.pdf -o out.pdf

Posted on Author John SonmezCategories HACKS/UTILSTags compression tool, useful cli tools