Skip to content

Instantly share code, notes, and snippets.

@jagedn
jagedn / list.js
Created November 8, 2020 19:44
frases politicamente correctas a decir cuando estas hasta la polla
const list = [
':thumbsup: no te preocupes, ahora mismo me pongo con ello',
'vale, termino una cosa :watch: y me pongo con ello asap',
'uff, bueno, lo miro y te digo algo',
'ahora mismo me pillas un poco ocupado, pero en cuanto pueda te cuento',
'Genial, no te preocupes, ya te cuento luego',
]
@jagedn
jagedn / faunadb.groovy
Created June 7, 2020 16:14
a command line CRUD for FaunaDB using GraphQL in groovy
@Grab('com.github.grooviter:gql-core:0.3.5')
@Grab('io.github.http-builder-ng:http-builder-ng-core:1.0.4')
import groovy.transform.ToString
import static groovyx.net.http.HttpBuilder.configure
import static groovyx.net.http.ContentTypes.JSON
import gql.DSL
import graphql.schema.*
@ToString
@jagedn
jagedn / docker-compose.yml
Created May 19, 2020 16:38
a docker-compose to build antora sites with plantuml diagrams
version: "2.1"
services:
plantuml-container:
image: "plantuml/plantuml-server:jetty"
antora:
image: "jagedn/antora-plantuml"
depends_on:
plantuml-container:
@jagedn
jagedn / CollatzController.kt
Last active April 30, 2020 07:42
kotlin collatz conjeture resolver
package com.puravida
import java.math.BigInteger
import javax.ws.rs.GET
import javax.ws.rs.Path
import javax.ws.rs.PathParam
import javax.ws.rs.Produces
import javax.ws.rs.core.MediaType
@Path("/hello")
@jagedn
jagedn / FileController
Last active April 26, 2020 16:29
how to serve a large file using RxJava2 with Micronaut
@Controller("/test")
class FileController{
@Get(value = "/{file}", produces = MediaType.IMAGE_GIF)
Flowable<byte[]> image(@PathVariable String file) {
Flowable.create({ emitter ->
new File(file).withInputStream{ inputStream ->
int size=1024
byte[]buff = inputStream.readNBytes(size)
@jagedn
jagedn / nasa.groovy
Last active April 4, 2020 08:45
Download Picture of the Day from NASA and add the explanation
import javax.imageio.ImageIO
json = new groovy.json.JsonSlurper().parse("https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY".toURL())
url = json.url
ext = url.split('\\.').last().toLowerCase()
if( ['jpg','png','jpeg'].contains(ext) == false ){
return
}
image = ImageIO.read(url.toURL())
g = image.graphics
g.font = g.font.deriveFont(25f)
@jagedn
jagedn / madrid.groovy
Created March 30, 2020 06:14
Descarga las cámaras de tráfico de Madrid para poder construir un mp4 con ella posteriormente
import groovy.util.slurpersupport.GPathResult
new File("madrid").deleteDir()
new File("madrid").mkdirs()
xml = 'http://informo.munimadrid.es/informo/tmadrid/CCTV.kml'.toURL().getText("ISO-8859-1")
xml = xml.substring(xml.indexOf('<')) // el kml tiene caracteres erróneos al principio, así es Madrid
kml = new XmlSlurper().parseText(xml).declareNamespace("xmlns":"http://earth.google.com/kml/2.2")
kml.Document.Placemark.sort{
it.ExtendedData.Data[1].Value.text()
@jagedn
jagedn / Codigo.gs
Created March 5, 2020 21:29
Utilidad de Google Sheet para sortear entre los alumnos de una clase quién le toca salir a la pizarra a resolver un ejercicio
function onOpen(e) {
var ui = SpreadsheetApp.getUi();
ui.createAddonMenu().addItem('RandomAula', 'raffle').addToUi();
}
var urls = [
"https://media.giphy.com/media/3oriffRGkX9U7Tmphu/giphy.gif",
"https://media.giphy.com/media/3HGDE05UoQ0tmQpTzz/giphy.gif",
"https://media.giphy.com/media/THVQ8w1Yc2Eg8aUU0S/giphy.gif",
"https://media.giphy.com/media/euGKUsOE7FWMxIjmf9/giphy.gif"
@jagedn
jagedn / Codigo.gs
Created March 5, 2020 21:28
Utilidad de Google Sheet para sortear entre los alumnos de una clase quién le toca salir a la pizarra a resolver un ejercicio
function onOpen(e) {
var ui = SpreadsheetApp.getUi();
ui.createAddonMenu().addItem('RandomAula', 'raffle').addToUi();
}
var urls = [
"https://media.giphy.com/media/3oriffRGkX9U7Tmphu/giphy.gif",
"https://media.giphy.com/media/3HGDE05UoQ0tmQpTzz/giphy.gif",
"https://media.giphy.com/media/THVQ8w1Yc2Eg8aUU0S/giphy.gif",
"https://media.giphy.com/media/euGKUsOE7FWMxIjmf9/giphy.gif"
@jagedn
jagedn / code.gs
Created February 1, 2020 11:54
feed telegram channel with google sheet
function telegram(){
var bot = 'XXXXXX:YYYYYYYYYYYYY'
var chatId = 'CHANNEL_ID'
var url = 'https://api.telegram.org/bot'+bot
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var rangeData = sheet.getDataRange();
var lastColumn = rangeData.getLastColumn();