Número de visitas en cada entrada

Para añadir al lado de la informacion del post, el numero de visitas que tiene ( tal y como se hace en este blog ) hay que modificar el fichero content.php

<?php echo ‘ visto’; ?> <?php echo_views(get_the_ID()); ?> <?php echo ‘veces’; ?>

Justo antes de que acabe el bloque <div class=”entry-meta”>

Rellenar valores a todas las cajas de texto rapidamente jquery

Estamos trabajando para rellenar y guardar un formulario y queremos ver si todos los valores persiten en bbdd y se recuperan correctamente.

Para ellos abrimos la consola del navegador:

Y ejecutamos el siguiente código:

var i=1;$('input[type=text]').each(function(){ $(this).val(i);i++;})

Así no tenemos que ir campo por campo rellenandolo.
Para marcar el segundo elemento de todos los select:

$('select').each(function(){ 
   this.selectedIndex=1;
    
})

Y para marcar el ultimo de los radio

$('input[type=radio]').each(function(){ 
  $(this).attr('checked', true );
    
})

Cambiar de equipo

Lista de programas que considero imprescindibles para poder trabajar, son lo primero que instalo en un equipo:

Ditto
Greenshoot
TreeSize
Beyond Compare
Notepad++
Visual Studio Code
Paint.net
Irfanview
Dropbox
Filezilla
PeaZip
TortoiseSVN

Usar eventos en javascript

De cara a optimizar el código tengo un fichero con varias funciones js, que las utilizo en varias paginas, pero quiero poder variar algún comportamiento para la misma acción en distintas paginas, por lo que para evitar tener que pasar algún parámetro o duplicar funciones voy a utilizar eventos.

Así en la función del fichero js lanzo el evento:

function guardarx(){
//guardo con ajax...
.ajax(....
// Creo el evento
var event = new CustomEvent("evento-guardar-x", { "Parametro": "Valor" });
//Lanzo el evento
document.dispatchEvent(event);
}

Y luego en cada una de las paginas que utilizan el js puedo añadir un listener si deseo añadir funcionalidad especial.

document.addEventListener("evento-guardar-x", function(e) {
console.log(e);
});

Podeis ver una demo aqui

tunel ssh como proxy

Realmente es un recopilatorio de distintas paginas para poder configurar una  raspberry como servidor ssh ( en casa ) para utilizarlo como proxy en las conexiones desde lugares públicos y evitar problemas de filtrado de paginas:

Create a SOCKS proxy on a Linux server with SSH to bypass content filters

En Windows se puede utilizar putty 

para cambiar el puerto de ssh de la raspberry por uno que no esté filtrado (443 que se utiliza para conexiones seguras )

https://www.raspberrypi.org/forums/viewtopic.php?t=57697

En ese caso hay que añadir un paraáetro mas si se utiliza ssh por linea de comandos

ssh -p XXX urldelservidor

 

Para poder conectar por nombre en lugar de por ip ( por si cambia, que es lo normal cada cierto tiempo)

https://www.noip.com/support/knowledgebase/install-ip-duc-onto-raspberry-pi/

Como plugin para chrome yo uso SwitchyOmega

 

 

Cambiar tamaño imagenes en mac con script

Ultimamente tengo que subir muchas imágenes por trabajo y se generan con una resolución demasiado grande para lo que necesito.
Hasta ahora utilizaba el propio vista previa de mac para cambiar el tamaño pero me parecía lento, y he creado un script que me automatiza el trabajo.
Cambia la resolución a 1024 px, bien de alto o de ancho, manteniendo la proporción, borra la original y le añade un sufijo a la foto para que la ignore si se vuelve a lanzar el script.

#!/bin/bash  
MAX=1024
testseq="resize"
EXT=jpg
for i in *; do
    
    if [ "${i}" != "${i%.${EXT}}" ]; then
        if [[ $i =~ $testseq ]]; then
            continue
        else
            salida=${i//" "/"_"}
            h=$(sips -g pixelHeight "$i" | tail -n1 | cut -d" " -f4)
            w=$(sips -g pixelWidth "$i" | tail -n1 | cut -d" " -f4)
            h=$(($h+0))
            w=$(($w+0))
            if [ $h -gt $MAX ] || [ $w -gt $MAX ]; then
                 echo "Redimensionamos la imagen $i"
                 sips -Z $MAX  "$i" --out "$salida".$testseq.$EXT
                 rm "$i"
           
            fi
        fi
    fi
    
done

Con el consiguiente ahorro de tamaño.


Y después del proceso:

El código lo he puesto solo para jpg pero yo lo aplico a los png también.

El proceso va mostrando por pantalla el progreso.

 

Convertir video mov a mp4 por linea de comandos

Ultimamente realizo muchas capturas de pantalla en video en el mac, utilizo el quicktime y la única pega es que deja el fichero en formato mov.

Yo lo necesito en mp4, y estaba utilizando el programa HandBreak, pero he visto que tienen un cliente para terminal

Por lo que he creado un bash que busca todos los archivos mov del directorio, los convierte a mp4 y borra el original.

Es una manera mas rápida de tener todos los videos convertidos ( con el ahorro de tamaño) sin tener que abrir la aplicación, elegir el archivo, las características y el directorio de destino.

El cliente está tanto para Windows como para Mac, la idea es la misma.

Al archivo de salida le cambio los espacios por guiones bajos, pues por defecto el quicktime pone de nombre “Sin título.mov”

Ademas establezco el directorio para poder invocarlo, cambiando el .sh por .command, lanzándolo desde Finder.

 

 

Cargar una imagen si falla la principal

Si en nuestra pagina cargamos una imagen que no está en nuestro servidor nos arriesgamos a que esa imagen deje de estar disponible y nos encontremos que no carga y nuestra web quede fea.

Para evitar eso podemos indicar una imagen de “reserva” que se cargará si no lo hace la principal.

Para ello definimos una función javascript:

<script>
    function imgError(image,url) {
    image.onerror = "";
    image.src = url;
    return true;
}
</script>
<img src="https://www.imagenquepuedefallar.com/imagen/image.png" onerror="imgError(this,'image/generic.png')"/>

Ver consola javascript de Android en el ordenador

Para poder ver la consola del móvil en el ordenador es necesario activar la depuración USB, para ello hay que activar el menú de desarrollador en el móvil.
Una vez que lo tengamos, hay cientos de tutoriales, lo importante son los pasos en el ordenador.
Lo primero es conectar el teléfono al ordenador con cable USB.
En el móvil hay que activar la opción de transferencia de archivos, (hay marcas que por defecto al conectarlo solo cargan).


Luego es posible que también pregunte si confía en el ordenador, la respuesta es obvia.
Y ahora vamos al lío.
Abrimos chrome en el ordenador y con el botón derecho pulsamos en inspeccionar.

Una vez que se abre la consola nos vamos al menu de opciones -> Mas opciones -> dispositivos remotos

Aquí nos debería aparecer el dispositivo conectado.

Podemos usar alguna de las pestañas ya abiertas o abrir una nueva con la dirección que queremos


una vez abierta, pulsamos en inspeccionar y se nos abre una ventana que nos muestra la pagina que estamos viendo en el navegador y donde podemos acceder a la consola de javascript.

Lenguajes de programación

Llevo muchos años programando y a lo largo de este tiempo he pasado por muchos lenguajes de programación. Empecé a trabajar con Visual basic, allá por el año 2000, con su versión 6, aunque al poco pase a la versión de .net, si no recuerdo mal en 2002, por necesidades del proyecto en el que estaba, además me toco empezar con c# también en el año 2002, con ellos realicé mis trabajos fin de carrera en la universidad. Bueno, para ser exactos en la universidad el primer lenguaje que recuerdo fue c++ con sus punteros, y con unos entornos muy simples, que hacían que salieran errores con mucha frecuencia; porque pascal hacia ya muchos años que no se utilizaba, pero nos lo enseñaron igual.

Por mi cuenta aprendí PHP y durante muchos años mi trabajo me ha llevado por ese camino, con este lenguaje he visto distintos frameworks, pero no me he atado con ninguno, en paralelo aprendi Java, que también he utilizado en mis trabajos.
Por iniciativa propia me apunté a un curso para hacer aplicaciones de IOS, y conocí objective-c, con el que llegué a publicar una decena de aplicaciones para móvil y tablet, algunas propias y otras para clientes, a día de hoy todavía alguna está disponible en el market, si bien no tiene muchas descargas, se utiliza prácticamente a diario.

Como le cogí el gusto a las aplicaciones móviles, me metí también en hacerlas para Android, aunque aquí se repite el lenguaje, pues Java fue la opción elegida.
Con el tiempo se ha ido dejando de utilizar objective-c y ha tocado reciclarse, otro curso para poder aprender Swift, versión 3, aunque ya van por la 4, y reconozco que este lenguaje incluye demasiados cambios entre versiones….
He hecho también un curso para ver Python, que no he llegado a utilizar profesionalmente en ningún proyecto y pensando no soy capaz de recordar ninguno mas… porque Javascript no lo incluyo como lenguaje de programación…

Me ha dado por pensar si no será hora de ver algún lenguaje nuevo, pues en este oficio, hay que estar en continuo reciclaje, y los mercados son cambiantes.
Una búsqueda rápida en google nos muestra los lenguajes de programación de 2010


https://desarrolloweb.com/de_interes/ranking-lenguajes-programacion-noviembre-2010-4397.html

Y los que se usan en 2018

Lenguajes Programación más populares 2018 (Ranking Tiobe)

 

Y parece que no ha cambiado mucho en estos años, Java sigue siendo el ganador indiscutible y C, tanto c como c++ siguen en el podio.

ya por curiosidad he buscado el año 2000 donde Java no era la primera opción

El lenguaje de los grandes programadores

Veo también que PHP ha bajado bastante, aunque sigue siendo la tecnología mas utilizada en Internet

Aproximadamente el 78% de todos los sitios web utilizan alguna versión de PHP, pero la mayoría usa versiones viejas.

Hay un lenguaje que se me pasa por la cabeza y del que nunca he visto nada y es Ruby, para utilizar con el entorno de Ruby on Rails

Volviendo a google hago una búsqueda de que lenguaje aprender en 2019 y me quedo con la entrada de 5 lenguajes y veo que no voy mal, conozco 4 de 5 y en menciones honorificas tienen a Ruby, por lo que no parece mala idea conocerlo.