All posts by josejavierfm

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.

 

Verano

Estamos ya en la recta final del mes de Agosto y para muchos el verano ya ha pasado, o por lo menos la parte de las vacaciones, otros estarán ahora en plenas vacaciones, disfrutando de esos dias de descanso bien en la playa o en la montaña, o incluso viajando, y seguro que muchas personas aprovechan estos dias para retomar una actividad que a lo largo del año parece que cuesta mas, que es la lectura.

Y por ultimo están los que todavía no se han ido, que están contando los dias que faltan para coger las ansiadas vacaciones, para estos también es este articulo.

Porque esa sensación de coger el libro ,sobre todo en papel, sentado en la tumbona de la piscina o la playa y dejarte llevar, pasando las horas metido en ese pequeño mundo que se crea una vez que has empezado a leer, es de los mejores momentos del verano.

Si has llegado hasta este punto puede que ya tengas en mente que leer, una lista de “tareas pendientes” que en este caso son libros pendiente, que puedes haber ido recopilando a lo largo del año, desde las anteriores vacaciones, y que puedes haber ido “consiguiendo”, comprando o pidiendo de regalo por ejemplo en navidad, o puedes recurrir a blogs de lectura donde otras personas te hagan recomendaciones.

Yo soy de esas personas y tengo mi lista de libros para la época estival, algunos ya han “caído” y otros están todavía en la recamara, listos para ser devorados en esos dias de playa y sol.

Os voy a recomendar un libro, que todavía no he leído ( es el primero de la lista de pendientes), que es el primer libro del autor, pero al que tengo el placer de conocer desde hace ya muchos años y estoy seguro de que no va a decepcionar. Os dejo el enlace a su pagina web.

También os indico los que ha he leído este verano:

  • La reina roja, de Juan Gomez Jurado
  • El resurgir de la Atlantida de Thomas Greanias

Ambos me han gustado, y de ambos era el primer libro que leía del autor. Del primero tengo que conseguir los libros anteriores (independientes ) y del segundo los libros posteriores pues forman parte de una saga.

En esta entrada voy a dejar los comentarios abiertos por si queréis sugerir libros que hayáis leído este verano y que queráis recomendar.

Otra de las tareas que tengo pendientes para este verano es intentar mejorar el SEO de la web, y lo primero que tengo que hacer es añadir mas contenido, aunque parece que en eso ya estoy, al fin y al cabo esta entrada cuenta.

Siguiendo con la lista de tareas pendientes, otro de los temas que tengo pendiente es el de Marketing, pues siempre es bueno intentar mejorar.

Y como no la lista de las cosas que siempre se añaden a los planes del verano, dormir mas, descansar, desconectar del trabajo, disfrutar y cargar las pilas para volver a empezar…. añadiendo nuevos libros para el siguiente verano.

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.

Como proteger tu contraseña de wifi

Cada vez utilizamos mas cosas sin cables, lo queremos todo wireless, teléfonos, auriculares…
Y ademas cada vez tenemos/queremos mas cosas conectadas, televisiones, que se conectan a Internet y se convierten en Smarttv (nos permiten ver vídeos en youtube, escuchar música en Spotyfy o ver series y películas de compañías como Netflix, HBO o amazon prime video), neveras ( que se conectan a Internet y pueden ordenar productos a medidas que se van gastando, yo esto todavía lo veo un poco verde, pero en unos años será lo normal… ), termostatos ( que puedes controlar desde el móvil para encender o apagar la calefacción desde la calle, o los hay mas inteligentes, que en función de la ubicación predefinida en los ajustes y de los datos de temperatura y humedad que obtienen de servicios web de meteorología, son capaces de adaptar su programación de manera automática, así para un día de invierno pero que está soleado, sube menos la calefacción que si está nublado), cámaras (que te permiten ver tu casa desde cualquier lugar del mundo, esto también sirve para poder ver a tus mascotas cuando están solas en casa), hace poco vi en una conocida tienda de marca china que abrió tiendas en España una tetera ( o calentador de agua ) que tenia conexión wifi, creo que tendrá pocas opciones (apagar o encender) pero es un claro síntoma de que todo pasa por estar conectado, y para ello el requisito mas importante es tener conexión a Internet, y lo segundo es tener WIFI, porque seamos realistas no nos imaginamos ya esos aparatos con conexión por cable, llenando la casa de tomas RJ-45.
La lista puede seguir si añadimos persianas automáticas ( pero no solo por tener un botón de subir o bajar sino que tienen un modulo que permite recibir señales que desde una consola central, junto con sensores dentro de la casa y datos de fuera, permiten bajar las persianas por ejemplo si se pone a llover….) y todos aquellos que seguro que ya existen pero que todavia no conocemos.
Eso se nota rápidamente cuando abres los ajustes de red de tu ordenador y/o tableta/movil y ves una lista interminable de conexiones wifi

Como se puede ver en la imagen y ocurre en la gran mayoría de los casos, las redes son seguras ( tienen un candado al lado que lo indica ).
¿Pero son realmente seguras? El hecho de ver un candado nos tiene que dar confianza?
Existen aplicaciones para robar wifi por lo que tenemos que encontrar aplicaciones para proteger tu contraseña de wifi, aunque estas como tal no existen, sino que lo que hay que hacer es seguir una serie de pasos para evitar que nuestra red sea vulnerable, voy a ponerlas en el orden que yo creo que es mas importante:
– Cambiar la clave del WIFI, todos los router vienen con una red y clave definidas (suele verse en una pegatina en la parte inferior)
– Cambiar la clave de administrador del router, (también suele tener una por defecto para el modelo y se puede averiguar por Internet)
– Ocultar la red, ( para muchos usuarios si una red no aparece en la lista de redes disponibles, es como si no existiera )
– Filtrar por MAC, (que no se pueda conectar cualquiera a la red, esto tiene el problema de que viene gente a tu casa y si les quieres dar acceso no están fácil como decirles la clave… pero son los inconvenientes que da el aumento de seguridad…. )