obtener elementos únicos en python

“Minus” entre dos listas en #Python

…o cómo seleccionar los elementos (únicos) que no están en otra lista cuando programamos en Python.

El otro día, implementando un comando para mi “colección”, me encontré que necesitaba dejar en una lista de valores numéricos los que no se repetían en otra y, aunque sencillo, tuve que hacer alguna que otra prueba hasta encontrar la solución (me negaba a hacer un recorrido o loop) por lo que la dejo aquí para la próxima vez que lo necesite 😅

Seguir leyendo

seleccionar valores de una lista en google sheets

Cláusula “WHERE IN” en Google Sheets

Preparando las hojas de cálculo de este curso donde anotar las calificaciones de mi alumnado, me surgió la necesidad de poder buscar [ con la función query(…) que permite utilizar Google Sheets como si fuese una base de datos 😉] las filas que contenían algún valor de determinada lista de valores (lo que “viene siendo” la cláusula IN de SQL) y como los chicos de Google (de momento) no han incluido “de serie” dicha posibilidad, al final me las he apañado para encontrar una solución, lo suficientemente sencilla como para que resulte útil…

Seguir leyendo

borrar contenido fichero desde la terminal

Eliminar líneas de un fichero en #Bash

El otro día, conectándome a una de las máquinas virtuales a través de ssh, me encontré que (naturalmente) había cambiado su “huella” (o “fingerprint”) y no me dejaba establecer la conexión.

Por pura pereza (cada día hay más líneas en ~/.ssh/known_hosts 😅), en lugar de abrir el fichero y buscar la línea que estaba “ofendiendo” al algoritmo de curva elíptica ECDSA opté por la forma rápida (una vez que sabes cómo) de eliminar desde la terminal una línea concreta del contenido de un fichero 😉

Seguir leyendo

google apps script programming tutorial

Funciones privadas en Google Apps Script

De un tiempo a esta parte vengo desarrollando (cada vez más) tanto macros como add-ons para las distintas aplicaciones de Google (Docs, Sheets, Classroom, …) pues me facilitan enormemente el día a día en la gestión de calificaciones y tareas burocráticas en mi “perfil” como profesor 😅

Realmente las APIs de Google ofrece una gran abanico de posibilidades y, como siento animadversión por el trabajo mecánico y rutinario pues… ahí que ando “invirtiendo” tiempo para poder hacer más cosas cada día con esos segundos que voy arañando al reloj y a mis obligaciones 👍

Seguir leyendo

Subir repositorio local a #GitHub

Aunque existen numerosos artículos explicando cómo hacerlo en Internet, e incluso en la web de GitHub nos indican cómo puede hacerse, a la hora de la verdad, y partiendo de un proyecto en el que hemos estado trabajando durante un tiempo y que finalmente optamos por subir (sí, en ocasiones me pasa: te pones a trabajar en algo, inicias el proyecto con git por inercia, tranquilidad y comodidad y, hasta que no has hecho decenas de commits no decides que está lo suficientemente “maduro” y/o que merece la pena subirlo 😅)

Así que aquí dejo una chuleta más con el procedimiento que a buen seguro será de utilidad tanto a mi alumnado (a los que estos días tengo enredados con gitgithub 😉 ) como a mi “yo del futuro” 💪

Seguir leyendo

formatear xml

Pretty printer #XML desde la terminal

Igual que hace un tiempo publicamos cómo formatear un JSON desde la línea de comandos ha llegado el momento de ver cómo indentar correctamente el contenido de un XML de modo que nos resulte más sencillo la lectura de su contenido.

Y es que subirlo a un pretty printer online no siempre es la opción más adecuada ni segura por lo que aquí os comparto cómo hacerlo directamente en vuestro equipo y usando xclip para que no quede rastro de la información utilizada en el histórico de la terminal 👍

Seguir leyendo

sqlite3 numeric fields

#SQLITE filtrar campos con valores numéricos

En el centro en el que trabajo llevamos varios años usando G Suite para la gestión de nuestras cuentas corporativas (y, a pesar de la polémica y las suspicacias que existen al respecto, estamos francamente contentos con los servicios que nos ofrece 😅)

La cuestión es que las cuentas tanto de profesores como alumnos siguen un patrón (bastante habitual de ver) que consiste en usar las primeras letras de nombres y apellidos incluyendo al final una serie de dígitos.

En una de las herramientas que tengo desarrolladas, necesitaba distinguir este tipo de cuentas de otras como las pertenecientes a planes y programas o a los departamentos en si y la forma más sencilla que tenía era seleccionar sólo aquellos registros sin números (para quedarme con las cuentas que no pertenecen a “individuos” sino a entidades como las de los planes que he mencionado 😉 )

Seguir leyendo

crear servidor rest falso rápidamente

Mock para servicios REST

Estoy enseñando a mi hija cómo utilizar Kodular para crear aplicaciones móviles y necesitaba ofrecerle datos a su app en base a las peticiones que ella me hacía.

Cuando le propuse el reto, lo primero que se me ocurrió (sin pensarlo mucho, obviamente 😅) fue crearle una aplicación web rapidita que devolviese los JSON que ella esperaba pero, cuando llegó el momento de la verdad (y teniendo en cuenta que siempre estoy “entretenido” con mis inventos) dejó de parecerme una buena idea para convertirse en un “problema” que me requeriría (mínimo) un par de horas así que me dispuse a ver cómo crear un servicio mock para devolver JSON a sus peticiones REST desde Android y aquí os dejo una forma sencilla de conseguirlo…

Seguir leyendo

añadir colaboradores de github automáticamente

Atacando #Github desde Google Sheets

Y es que a pesar de la cantidad de herramientas que existen (iDoceo, Additio, …) para llevar  la gestión de calificaciones y tareas realizadas por el alumnado yo sigo prefiriendo una hoja de cálculos (normalmente Google Sheets) donde recopilar la información de las distintas herramientas y fuentes que utilizo a la hora de trabajar en clase (Github, Moodle, Ret{A2}, …)

En esta ocasión, quiero dejar constancia (a modo de “entremés”) del modo de poder interactuar contra la REST API de Github para (en el ejemplo propuesto) añadir automáticamente colaboradores en un repositorio utilizando únicamente un formulario de Google y la autenticación usando Google Apps Script

Seguir leyendo