Buscar

ticinformando

Contar correos en Gmail

El otro día tuve que contar el total de correos recibidos pero Gmail me mostraba las conversaciones agrupadas (404 en este ejemplo)

agrupados

 

Para cambiar este comportamiento vamos a Configuración, Vista de conversación (para agrupar o no correos) , marcamos Inhabilitar vista de conversación y guardamos.

conversacion-google

Ahora tenemos el total de correos (3367).

individuales.png

Espero que os sea útil.

Subiendo archivos con Curl

Me he visto en la mecánica tarea de subir cientos de archivos a una web. He buscado como automatizar el proceso y he encontrado Curl.

Todo funcionaba hasta actualizar Php 5 a Php 7 y por si os pasa a vosotros tiene una explicación, la forma de subir archivos ha cambiado.

La solución viene bien indicada en la web de Php sobre Curl CURLFile should be used to upload a file with CURLOPT_POSTFIELDS" pero no es fácil de encontrar a la primera y por eso tenemos este hilo en Stackoverflow

if ((version_compare(PHP_VERSION, '5.5') >= 0)) {
    $aPost['file'] = new CURLFile($localFile);
    curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
} else {
    $aPost['file'] = "@".$localFile;
}

¿Conoces Curl?

¿Cuál es la forma en la que subirías archivos a una web que pide usuario, clave y usa post?

Enjaulando usuarios

Esta chuleta es para aquellos que, como yo, necesiten crear masivamente cuentas para usuarios con acceso limitado exclusivamente a sus directorios en un servidor ftp seguro.

Creamos un grupo específico para este tipo de usuarios:

addgroup usuariosftp

Instalamos el servidor openssh :

apt-get install openssh-server

Luego hay que cambiar su configuración, primero haz una copia del arhcivo de configuración

sudo cp /etc/ssh/sshd_config  /etc/ssh/sshd_config.bk

Con el editor que más te guste cambiamos la configuración

sudo gedit /etc/ssh/sshd_config

Tienes que comentar la línea que pone Subsystem sftp /usr/lib/openssh/sftp-server (un # al empezar la línea y listo)

Añade las líneas siguientes, que hacen que si el usuario pertenece al grupo usuariosftp lo va a enjaular en su directorio home , lo especificamos con %h
En otros manuales (como esta buena guía)  pone que especifiques que el usuario se enjaule en /home/%u, pero no va a ser nuestro caso, nuestros usuarios no van a tener su cuenta en /home/nombre-de-usuario.

Subsystem sftp internal-sftp
Match group usuariosftp #Grupo previamente creado al cual pertenecen los users.
         ChrootDirectory %h #Directorio personal en el cual harán login
         X11Forwarding no #Ejecutar GUI en server
         AllowTcpForwarding no #Redirección de puertos para tunel
         ForceCommand internal-sftp #Forzar el entorno chroot

Y arrancamos el servidor

sudo apt-get install openssh-server

Ahora vamos a crear un directorio, que me interesa que centralice los datos que se guardarán por FTP

sudo mkdir /home/servidorftp

Es importante que este directorio sea del root. Ahora llega la parte de automatizar, para cada nombre de departemento creamos el usuario, lo añadimos al grupo usuariosftp y le quitamos el acceso a la shell.

Creamos un directorio con su nombre dentro de la carpeta central servidoftp, que debe ser del usuario y grupo root. Damos los permisos adecuados.

Dentro del directorio del usuario nuevo le creamos, ahora sí, un directorio archivos-departamento, del que será dueño, del grupo usuariosftp y con los permisos correspondientes.

Luego generamos una clave aleatoria para cada usuario, que guardamos (provisionalmente) en claves_cuentas.txt

Y todo puedes hacerlo de golpe, como root desde la terminal

for l in lengua fisica historia biologia informatica matematicas frances
do
useradd -g usuariosftp -s /bin/false -d /home/servidorftp/$l $l
mkdir /home/servidorftp/$l
chown root.root /home/servidorftp/$l
chmod 755 /home/servidorftp/$l
mkdir /home/servidorftp/$l/archivos-departamento
chown $l:usuariosftp /home/servidorftp/$l/archivos-departamento
clave=`cat /dev/urandom| tr -dc '0-9a-zA-Z'|head -c 8`
echo La clave de $l es $clave >> claves_cuentas.txt
echo $l:$clave | chpasswd
done

Espero que pueda seros útil.

Capturar un trozo de pantalla en Firefox

En el el blog de @andalinux nos ayudan a hacer capturas de pantalla cuando tiene sroll, para Firefox, sin extensiones.

¿Y si solo necesito un trozo? Una solución rápida es, también en Firefox, ponerse sobre el elemento que nos interesa, click con el botón derecho y seleccionar Inspeccionar elemento.

Se abre el Inspector de elementos, tenemos marcado en azul el elemento que nos interesa. Sobre él, pinchamos en botón derecho Capturar pantalla del nodo. Firefox nos descargará la captura que le hemos pedido

inspector-elementos

La descarga sería así:

captura-el-2016-10-05-a-las-12-12-46

¡A disfrutarlo!

Exelearning en la Raspberry Pi

En mi trabajo uso diariamente el exelearning, en concreto el desarrollo que se hace desde exelearning.net  Es un proyecto vivo que nos permite bajarnos los fuentes y compilar nosotros mismos el programa.

Como curiosidad quise probar si sería viable ejecutarlo en la Raspberry Pi, que como es un ordenador de aproximadamente 30 euros tiene mucho potencial para usarlo en las aulas al igual que el el Reino Unido.

Si quieres hacerlo tú mismo empieza ejecutando en un terminal sudo apt-get update

Después debemos  instalar git para bajarnos los fuentes más recientes, ejecutamos sudo apt-get install git
y justo después nos bajamos los fuentescon  git clone https://forja.cenatic.es/anonscm/git/iteexe/iteexe.git

Tardará un rato en descargarse, al acabar  se habrá creado directorio iteexe. Vamos a entrar en él, tecleando
cd iteexe.

Una vez dentro comprobamos si tenemos los paquetes necesarios para compilar, ejecutamos sudo dpkg-checkbuilddeps . Esto te dará una lista de paquetes que falten. Si es el caso se instalan usando sudo apt-get install añadiendo cada paquete que te falte.

Por último compilaremos ejecutando dpkg-buildpackage -us -uc -b.

En el directorio superior te aparecerá el fichero .deb, en mi caso python-intef-exe_2.0beta1_armhf.deb

Por último instalaremos el paquete con sudo apt-get install , en mi caso sudo apt-get install python-intef-exe_2.0beta1_armhf.deb

Ejecutamos el entorno

Especificar tiempo de inicio y fin en Youtube

En el blog del Informático de guardia encontré un artículo-salvavidas para especificar donde quieres empezar y donde quieres que se detenga un vídeo de Youtube.

Youtube cambió la forma de usar el truco, la nueva forma es:

https://www.youtube.com/v/TkXW4iy_mWo?start=4&end=16

star=4 empieza en el segundo 4, elige el que necesites

end=16 lo para en el segundo 16, cámbialo a tu antojo

TkXW4iy_mWo es el identificador del vídeo, tienes que cambiarlo por el que quieras personalizar.

Para encontra el identificador busca el vídeo, en la barra de direcciones verás algo parecido a https://www.youtube.com/watch?v=TkXW4iy_mWo , el identificador viene después de watch?v=  Ojo no copies el =

Espero que sea útil

 

Añadiendo pdfs a Exelearning

¿Necesitas incluir en formato pdf los materiales que creas con Exelarning  y tener el pdf siempre al día? Este truco te puede servir.

En el elp creo un idevice  de Texto libre  e inserto un hipervínculo a un pdf genérico cualquiera, pdf que  llamo imprimible.pdf. Guardo el elp y sigo trabajando con normalidad.

pdf_generico.jpg

Cuando acabo de trabajar exporto el elp a html  usando la utilidad exe_do

/usr/bin/exe_do -x singlepage  nombre_archivo carpeta_temporal

Necesitamos wkhtmltopdf (si no lo tienes instalado sudo aptitude install wkhtmltopdf  o en la página de descargas)

Generamos el nuevo pdf a partir del html

wkhtmltopdf carpeta_temporal/index.html imprimible.pdf

Si usas Exelearning a menudo quizás sepas ya que el formato elp es un archivo comprimido. Debemos hacer cuatro pasos:

  • descomprimir el elp
  • reemplazar el imprimible genérico “viejo” por el nuevo.
  • en el archivo contentv3.xml debemos modificar el md5 del imprimible antiguo por el md5 del nuevo pdf
  • comprimir de nuevo los archivos para crear el elp

Te dejo un script, solo es necesario tener instalado wkhtmltopdf y ejecutarlo pasando el nombre del elp

Como es un experimento el script te copia el copia el elp original renombrado a .old

Espero que te sea útil.

Conectándose a la Raspbery Pi desde el móvil

Si la Raspberry Pi y el móvil Android están el la misma red wifi podemos conectarnos por ssh facilmente.

Uso la app ezNetScan para buscar los dispostivos conectados a la wifi y SSH Client para conectarnos.

Screenshot_2016-03-09-10-22-40_com.vrsspl.eznetscan

Al abrirla nos muestra los datos de la wifi a la que estamos conectada.

Screenshot_2016-03-09-10-22-44_com.vrsspl.eznetscan

Damos a scan y nos muestra los dispositivos. Si  son pocos los dispostivos o sabes la MAC puedes distinguir al momento la Raspberry, en caso contrario puedes escanear primero con la Raspberry apagada, encenderla y volver a escanear 😉

Screenshot_2016-03-09-10-23-01_com.vrsspl.eznetscan

 

En mi caso la IP es 192.168.1.108.  Ahora uso esa dirección y SSH Client para conectarme.

Screenshot_2016-03-09-10-23-10_com.anstudios.ssh

Espero que os sea útil.

 

Mostrar las ip de la Raspberry Pi por LCD

Estoy empezando a usar con la Raspberry Pi 2 los componentes que vienen con un kit de Arduino que me compré hace tiempo, el SparkFun Inventor’s Kit. Le ha tocado empezar a la pantalla LCD de 16×2 celdas que viene con el kit. También  trae un manual para construir 15 proyectos, aquí lo tienes en español.

El último proyecto usa el LCD y adaptarlo para la Raspberry fácil, vamos a configurar la Raspbery Pi para al arrancar muestre por el LCD la ip de la wifi y ethernet.

Materiales:

Raspberry Pi, en este caso la 2 B
Cables para conectar la Raspberry y el LCD
Protoboard para hacer conesiones sin soldar
Potenciómetro para regular el contraste de la pantalla.

Parte 1- Conectando LCD y Raspberry Pi

El esquema de las conexiones del LCD es:

Tierra
+5 V
Ajuste del contraste
Selector de registro Register Select (RS). RS=0: Command, RS=1: Data
Selección de modo de lectura/escritura
Habilitar la lectura/escritura = escribe 1/lee 0
Bit 0 No se usa
Bit 1 No se usa
Bit 2 No se usa
Bit 3 No se usa
Bit 4
Bit 5
Bit 6
Bit 7
+5V Luz trasera del LED
Tierra Luz trasera del LED

La conecto a los pines de la Raspeberry con este esquema:

Tierra
+5V
A potenciómetro
GPIO7
Tierra
GPIO8
No se usa
No se usa
No se usa
No se usa
GPIO25
GPIO24
GPIO23
GPIO18
+5V
Tierra
Si sigues este esquema ten en cuenta que hay que empezar por los pines del LCD de abajo hacia arriba:
lcd_raspberry_pi_2_bb

Si te interesa conocer los pines de la Raspberry de forma cómoda y bien explicada tienes una buena guía en es.pinout.xyz

Si todo va bien se iluminará la trasera del LCD, quizás tengas que ajustar el contrasteusando el potenciómetro.

Parte 2- Código en Python

Ahora vamos a querer que el LCD muestre las ips, para eso necesitamos código en Python, lenguaje que viene de serie con la casi todas las distribuciones que hay para la Raspberry.

Adapto el código de esta web para la Raspberry Pi 2 B. Si quieres aquí tienes el script modificado, descárgalo en /home/pi/ y llámalo lcd.py. Ve a /home/pi y recuerda darle permisos de ejecucución con  chmod +x lcd.py

Pruébalo con sudo ./lcd.py   importante que sea como root sino dará fallo 😉

Si todo va bien verás las ip fija y wlan en el LCD.

Parte 3- Crear un script y ejecutarlo al arrancar

En Adafruit tenemos una guía para crear un script y que se ejecute al arrancar la Raspberry PI que vamos a modificar, cambiando la ruta nuestro código.

El proceso se resume en crear el archivo de script  sudo nano /etc/init.d/lcd copiando el script modificado para que encuentre la ruta a nustro código y darle permisos de ejecución sudo chmod +x /etc/init.d/lcd

Probamos a arrancar el script ejecutando /etc/init.d/lcd start debería salirnos en el terminal el mensaje “Arrancando LCD” y probamos a pararlo con /etc/init.d/lcd stop debería salirnos el mensaje “Parando LCD”

Para que se ejecute el script al arrancar la Raspberry ya solo queda ejecutar sudo update-rc.d lcd defaults

A disfrutar cacharreando.

Blog de WordPress.com.

Subir ↑