Al día en tecnología

Truco para GIT

¿Cuantas veces has escrito?:

git add .
git commit -m "_comentario_"
git push origin master

a todo correr o a veces ni hacerlo por miedo a equivocarte.

Lo que propongo que no te vuelvas más loco.

escribiendo:

C.sh comentario a añadir tal como esta con espacios y "sin mas problemas"

1º Entras al bloc de notas y añades lo siguiente:

#!/bin/bash
clear
echo Realiza un comentario y lo sube al master remoto.

git add .
git commit -m "$*"
git push origin master

2º lo guardas con el nombre C.sh en el escritorio por ejemplo

3º Copias este archivo a la carpeta C:\WINDOWS

4º Probarlo

Entra con el Gitbash como siempre a una carpeta que ya tengas iniciada, es decir a un proyecto que tengas de ejemplo. Con ello ejecuta este comando:

C.sh Esto es un commit local que se sube al master remoto

he puesto la C.sh la letra C en mayúsculas para darnos cuenta que estamos ejecutando un script de Linux, se puede añadir una ruta nuestra donde tengamos nuestros archivos .sh .bat .cmd .exe .com si entráis al Panel de control –> sistema->propiedades de sistema –>variable de entorno->segundo bloque modificar path

Os aseguro que esta chorrada os ahorrará mucho tiempo.

Instalar y desinstalar en Ubuntu con terminal

lo primero es entrar con permisos de administrador, ejecutamos el siguiente comando, pedirá la contraseña de administrador que es la contraseña con la que iniciamos el usuario actual.

sudo su

guardamos los paquetes que actualmente tenemos instalados en un archivo de texto ejecutando:

apt list > paquetes.txt

Ahora procedemos a instalar lo que necesitemos:

apt install paquete_a_instalar

Creamos un archivo de paquetes instalados y lo comparamos con el anterior:

apt list > paquetes_new.txt
diff paquetes.txt paquetes_new.txt > nombre_paquete.txt
nano nombre_paquete.txt

Saldrá algo similar a esto:

3711a3712
> cvs-mail/bionic 1.19-2.2 all
5411a5413
> enca/bionic 1.21-1 amd63

Debemos de borrar lo que hay en el renglon encima del caracter > e incluido ese caracter, quedando así:

cvs-mail/bionic 1.19-2.2 all
enca/bionic 1.21-1 amd63

Esos paquetes se instalarón al añadir la aplicación que necesitamos es decir que si quieres borrar la aplicación añadidad tienes que desinstalar los paquetes que se enumeran en ese archivo.

Aunque no instales nada si es bueno cada vez que actualices el sistema operativo realizar este ejercicio como registro de tus actualizaciones del sistema operativo guardando en vez de el nombre del paquete la fecha en la que relizas la actualización, es una buena forma de revertir cambios.

Ahora pasamos al comando de desinstalación de un paquete que no es más que, para si esta en memoria residente, y después aunque tengamos la información de paquetes instalados listamos los paquetes que instaló esa aplicación para asegurarnos y luego los desinstalamos.

dpkg -l | grep aplicacion_instalada
apt purge repositorio1 repositorio2 repositorio 3
apt remove
find /. -iname aplicacion*
whereis aplicacion

En el los dos últimos comandos saldrán los archivos y carpetas que quedaron en el sistema, borrar con el comando rm -Rf ruta_carpeta1 ruta_carpeta2 ruta_carpeta3 … pero hazlo con cuidado sin cargarte carpetas importantes del sistema.

No funciona mysqli ubuntu

Ejecutamos los siguientes comandos:

sudo su
apt-get install php-mysql mysql-client
nano /etc/php/7.3/apache2/php.ini

Añadimos al final (pudes pulsar Ctrl+fin):

extension=mysqli
extension=/usr/lib/php/20180731/mysqli.so

Ejecutamos para reiniciar apache2 y mysql

./etc/init.d/apache2 restart
./etc/init.d/mysql restart

Aun así este sistema para conexión y consultas esta ya dejando estar en desuso, lo último que se utiliza es la clase PDO

más información en : https://www.php.net/manual/es/book.pdo.php

Instalar Apache y MySQL en una máquina virtual Ubuntu server 19.04

Instalar Apache y MySQL en una máquina virtual Ubuntu server 19.04

1º Instalar Oracle VM VirtualBox 6.0.10.  https://www.virtualbox.org/wiki/Downloads

2º Descargarse la iso de  Ubuntu Server 19.04. https://ubuntu.com/download/server

3º Crear una máquina vacía en Virtual Box con el nombre Ubuntu server con los valores que da el asistente,

  • una vez creado el icono para acceder a la máquina, cambiar de entrando a la configuración el apartado de REDàconectado a : adapatador puente àAceptar
  • Iniciar con el archivo iso de Ubuntu descargado. (cuando llegue a la parte del idioma poner Español, y en identificar teclado dar a la primera tecla de las que pide), rellenar el formulario. àmarcar install openSSD server->cuando termine de instalar reboot.

4º Una vez instalada poner el usuario que metiste en el formulario dar al enter y luego la contraseña y dar al enter.

-IMPORTANTE ANOTAR LA IP:

Saldrá algo así IP address for enp0s3: 192.168.1.144

(además tiene que salir con ese prefijo de 192.16… y no el de 10.0….)

Ejecutar este comando para actualizar el sistema:

sudo apt-get update && sudo apt-get upgrade

(pedirá de nuevo la contraseña antes de ejecutarse)

(a lo que pregunte poner la letra S y enter)

Apagamos el sistema con el comando

 sudo poweroff.

5º Encender la máquina al iniciar el ordenador.

  1. entra al Bloc de notas, ejecutándolo como administrador.
  2. Pegar esta línea

“%ProgramFiles%\Oracle\VirtualBox\VBoxManage.exe” startvm “ubuntu server” –type headless

Atención donde pone ubuntu server hay que asegurarse que se ha nombrado así la máquina virtual, si no, no se iniciará. (se inicia sin pantalla para acceder luego nosotros desde una ventana de terminal de ms-dos para poder copiar y pegar comandos, de una manera sencilla)

  • Lo guardamos en C:\Users\_tu_usuario_\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup  , tipo de archivo: Todos los archivos *.* y le ponemos el nombre mv.bat

6º Reiniciar el ordenador.

7º Abrimos un terminal de ms-dos (símbolo de sistema ) ejecutamos:

ssh  usuario_creado@192.168.1.144

escribimos yes y se da al enter

ponemos nuestra contraseña.

La ventaja que tiene esta ventana que podemos copiar y pegar ordenes, en la de la máquina ya no la usaremos y siempre para cualquier cosa utilizaremos este paso 8º.

Instalar Apache2

1º ejecutamos este comando para entrar en modo administrador.

sudo su

se pone la contraseña.

2º Ir ejecutando estas líneas, responder a lo que pregunte con “s” u “y” según corresponda.

apt update && apt upgrade

apt install apache2

ufw allow ‘OpenSSH’

ufw allow ‘Apache’

ufw allow mysql

ufw enable

add-apt-repository ppa:ondrej/php

apt update&& apt upgrade

apt install php7.3

apt install php7.3-fpm

reboot

esperar unos 3 minutos para que se reinicie el sistema.

3º Activar ver errores de php.

Desde un terminal ms-dos

ssh usuario@192.168.1.144

ejecutamos

sudo su

una vez dentro editamos el archivo de configuración de php.

nano -l /etc/php/7.3/apache2/php.ini

en la línea 479 cambiamos el off por el on

Ctrl + S , Ctrl + X

apt-get install php7.3-xdebug

nano -l /etc/php/7.3/apache2/php.ini

se añade al final (Ctrl+fin para llegar más rápido):

; Added for xdebug

zend_extension=”/usr/lib/php5/20180731/xdebug.so”

xdebug.remote_enable=1

xdebug.remote_handler=dbgp xdebug.remote_mode=req

xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000

Ctrl+S , Ctrl+X

systemctl restart apache2

4º probar si funciona generando un arhivo:

nano /var/www/html/i.php

escribimos dentro:

<?= phpinfo()?>

Pulsamos Ctrl+S y Ctrl+X

5º En el navegador de Windows pegamos esta dirección:

192.168.1.144/i.php (recuarda que debes utilizar tu ip y no literalmente la que pone aquí)

Saldrá algo así PHP Version 7.3.7-1

Configurar Mysql.

sudo su

apt update && apt upgrade

apt-get install mysql-server

mysql_secure_installation

repondemos: n , contraseña , contraseña ,  n , n , n , y

mysql -u root -p

CREATE USER ‘luis’@’%’ IDENTIFIED BY ‘hola’;

GRANT ALL PRIVILEGES ON * . * TO ‘luis’@’%’;

            Donde pone luis puedes poner tu nombre y donde pone hola tu contraseña

FLUSH PRIVILEGES;

nano /etc/mysql/mysql.conf.d/mysqld.cnf

      buscar

 bind-address            = 127.0.0.1

poner delante # quedaría así:

#bind-address            = 127.0.0.1

Ctrl+S , Ctrl + X

/etc/init.d/mysql restart

Poner una Ip fija al servidor

1º Etitamos el archivo

sudo nano /etc/netplan/50-cloud-init.yaml

puedes descargar un ejemplo de archivo en https://www.gestionesinformaticas.com/archivosconfiguracion/

poniendo nuestro prefijo de ip, y sabiendo que la ip no esta dentro del rango dhcp del router o servidor ponerlo así:

network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
dhcp6: no
addresses: [192.168.1.50/24]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1,8.8.8.8]

sudo netplan apply

Base de datos de fotos y vídeos personales, Google Fotos.

Base de datos de fotos y vídeos personales

Google Fotos.

Que es.

Una forma fácil de guardar fotos y vídeos personales de una forma, ilimitada, gratuita, accesible a cualquier nivel, fácil de compartir, con opción de proyectos compartidos en conjunto (comentables y botón like), implícito en móviles Android, compatible para sistemas Windows y Apple.

De que se trata.

Es un sistema automático (y manual) de copias de seguridad de fotos y videos que tengamos en cualquier sistema. Esos “archivos” almacenados, en un principio solo se ordena por “fecha de creación” y se le puede añadir una “descripción”, la “ubicación” se almacena automáticamente si el dispositivo con el que se ha realizado la foto o video tiene GPS y este está activo y con permisos de uso para la aplicación, así como el “nombre del dispositivo” con que se realizó. Dando la posibilidad de hacer álbumes en los cuales se le asocian el contenido multimedia correspondientes que se desee, es decir los álbumes no guardan fotos solo las clasifican (con lo que borrar un álbum no borra ningún objeto), pudiendo tener un archivo en varios álbumes.

Esos álbumes tienen un “nombre” se añaden automáticamente la “fecha inicial” y “fecha final” de las propiedades de los elementos asociados introducidos, así como una “foto de portada”.

Tanto los archivos, álbumes solo tienen carácter unipersonal y privado (accesible por medio de la cuenta privada de Google) eso sí se pueden dar permisos de visión a lo que deseemos mediante links privados (Google no los indexa en su buscador) esos elementos compartidos tienen un nombre, el cual se crea automáticamente si no se pone uno y además tienen la posibilidad de que otras personas que quieran añadir fotos de su Google fotos, participen en tu álbum compartido, con la posibilidad de añadir “comentarios”, visibles junto a las “fotos  y vídeo” visibles en ese link de compartidos.

Funcionamiento.

Copiar.

En si activar en un móvil Android es sumamente sencillo, la aplicación ya viene instalada y solo hay que acceder a ella con un usuario y contraseña de Google el cual puede ser el mismo que utilices para otros servicios que estés usando en tu móvil. Una vez lo actives es muy aconsejable y suele venir en la configuración por defecto de Almacenamiento ilimitado y subir las fotos cuando el móvil este conectado a una señal Wifi de Internet.

Con eso se consigue una copia de las fotos y videos de tu dispositivo en tu cuenta Google de Internet (quiero decir con ello que, si pierdes el móvil, no importa ya que las fotos y vídeos no sólo están en tu móvil si no que tienes una copia en Internet que puedes visionar e interactuar en el siguiente móvil que compres)

Esas fotos son privadas como al mismo nivel que tus emails, es decir que si accedes con usuario y contraseña autentificados desde cualquier sitio puedes hacer lo que quieras con ello, sólo hay una diferencia que el email si tiene espacio limitado y las fotos y videos NO, con lo que no te rompas la cabeza a borrar fotos que no sales del todo bien ya que no importa.

Hay que darse cuenta que Google fotos clasifica los archivos por fecha y hora de cuando se hicieron. Ojito de cuando subamos fotos de otros dispositivos por ejemplo de una cámara de fotos

Hay que saber que cuando hagas las fotos tienes que tener la fecha y la hora de la cámara correctamente ya que al quitar las pilas/batería esta se borra y dará a las fotos mal la propiedad de creación la fecha y la hora (hay software de Internet que puede cambiar esa propiedad de archivo ya que desde Windows no lo permite) cuando ese fallo suceda, desde Google fotos, ya una vez grabadas en Internet se puede seleccionar en conjuntos y cambiar la fecha y horas de creación con lo que lo que se quedarán en el orden cronológico adecuado.  

Otra curiosidad es que cuando copiamos y pegamos en Windows (hasta día de hoy 06/06/2019) el archivo copiado cambia la propiedad de fecha de creación por la fecha de copiado, eso se puede evitar usando desde el cmd ROBOCOPY, que sí que copia bien.

Álbumes.

Es aconsejable crear álbumes asociativos de conjuntos. Por ejemplo “vacaciones marruecos 2007“señala de los elementos que tienes los que quieres clasificar por ese álbum y listo. Esto hay que hacerlo con más interés cuando  las fotos no guardaron la propiedad de ubicación, donde se hicieron.

Compartir.

Hasta aquí todo lo que he hablado es para ti, como tus emails.

Imagina que sales de senderismo con unos colegas, un par de días y vamos que encima estáis con un curso de vídeo y fotografía. Estamos hablando de gigas de información a si que la opción de pasar todos a todos por Whatsapp o email, que ni de coña.

Pues naaa, para eso está esta maravilla de Google Fotos,  creamos un enlace con todo lo que queremos compartir y le pasamos por Watsapp al grupo (copiar y pegar sin mas ni mangas) inmediatamente todos pueden acceder al link y que carayo hasta hiciste un montaje de un video “que también tiene esa herramienta G.F.” con el resto de las cosas aaa y ya no solo eso, que los demás también aportan todo su material al mismo enlace viendo todos lo de todos, vamos que en un momento estás viendo 50 GB de contenido multimedia, parece interesante ¿verdad?.

Seguridad.

Decir que ese link no va a salir en ningún buscador y que lo puedes eliminar cuando quieras, eso si no lo hagas muy pronto porque si los demás no se descargaron lo que vieron les dejas a dos velas así que no seas dog “deja en compartidos por los restos ¡hombre!”.

Papel.

Siguiendo con lo de antes podemos imprimir en papel de fotos las fotos que queramos, claro esto ya no es gratis, pero vamos tampoco es caro, seleccionas lo que quieres imprimir y como lo quieres imprimir se añade al carrito y listo te llega a casa en pocos días.

configuración pop3 dañina

Es sabido la importancia de los emails para el funcionamiento de los negocios, y quien no recuerda hacer clic con el botón derecho del ratón y dar a enviar a destinatario de correo, seguidamente se abría el Outlook y ya se ponía la dirección, asunto y texto, Fácil ¿verdad?

No más lejos de la realidad al tener configurado así el correo electrónico lo que ocurre es que abre un agujero, por decir algo, pero no es un agujero lo que se abre, es una llamada con carteles de neón para decir a todos los virus que entren y estén como en su casa. Algo a mejorado la configuración pop3 con certificados de seguridad pero yo no lo usaría.

de esa forma queda una Webmail potente con los 1000 servicios que ofrece la cuenta de Google.

La solución para empresa es redireccionar el correo entrante a una cuenta de Gmail y “pagar” para poder enviar con Gmail con el remitente de su dominio (es gratuito si envías con el remite de la cuenta de Gmail).

Álgebra consultas SQL

OPERACIÓNSÍMBOLOCÓDIGO ALTSQLDESCRIPCIÓN
Proyecciónπ 960SELECT
Selección, Restricciónσ 963WHERE , HAVING
Agrupamiento, TotalesĢ290…… GROUP BY  algo
SELECT funtion(algo u *) …….
SELECT funtion(*)….. GROUP BY  algo
antes G “equivale a  agrupamiento”
 G despúes  “equivale a un total”
antes G depués “equivale agrupamiento con totales”
Renameρ961ASponer un alias a algo
Natural Join⋈ 8904….. FROM (t1 JOIN t2 ON t1.c=t2.c JOIN t3.c ON t2.c<=t3.c)  AS tResul …..INTERSECCIÓN
tResul=t1 ∧ t2 (mediante campos de relación)
el ∧ (obtendrá los registros de la tablas en los campos indicados con tuplas comúnes “iguales” o parecidas o de difrentes tamaños)
LEFT JOIN8905….. FROM t1 LEFT JOIN t2 LEFT JOIN t3 WHERE t1.c=t2.c AND t2.c=t3.ctR(lados comunes + todo lo que contiene t1 no comun)=
t1(lado relacion 1) ⋉ t2(campo relación lado infinito)
RIGHT JOIN8906….. FROM (t1 RIGHT JOIN t2 ON t1.campo=t2.campo) AS tResul …..tR(lados comunes + todo lo que contiene t2 no comun)=
t1(campo relación lado infinito) ⋊ t2(lado relacion 1)
Left outer join10197
Right outer join10198
Full outer join 10199
Antijoin9655no existe comando directo, hay que resolver consultaTabla1 NOT AND Tablet2
JOIN8855FROM t1 INNER JOIN t2Une dos tablas ( normalmente se pone los campos por los que están unidos)
RESTA8861
PRODUCTO CARTESIANOX
intersección8745consulta 1 INTERSECT consulta 2
consulta 1 EXCEPT consulta 2
une tablas, consultas buscando la interseccion entre ambas
UNION8746tabla1 UNION consulta2;une dos tablas con el mismo numero de campos sumadas
División/ , ÷   
Dividir\
MultiplicarX
Resta
Resto%
Suma+
OR8744
AND8743
MAYOR QUE>
MENOR QUE<
DISTINTO A <>
IGUAL A=

con la funte Symbol aparecen los signos algebraicos más usados.