Ideas


Block de notas para ideas a desarrollar

En esta página iré anotando (más que nada, para mí mismo) todas aquellas ideas (idas de olla)
que se me ocurren desarrollar.

Algunas podrán ser sólo un par de palabras hasta que tomen forma y otras intentaré describirlas
con mayor detalle para fomentar que todo aquel que las lea pueda darme su feedback si así lo quiere

Por supuesto, muchas quedaran sin hacerse, pero al menos al tenerlas por escrito, de alguna manera
no se perderán en el olvido

Telegram Blog

Un sistema basado en git donde un usuario crea contenido y un bot lo publica en un canal automáticamente

Píldoras

Esta idea no es mía, sino de un buen amigo. Un repositorio distribuido y compartido de notas de estudio (píldoras) con un sistema de presentación y estudio

Kahoot en Telegram

Una versión de Kahoot usando Telegram

Raffle Web

Basado en el groovy script de Raffle con Groogle, crear una aplicación web para eventos donde se haga el sorteo entre los asistentes sin necesidad de instalar nada.

Esto tendría mucho recorrido para comunidades si compartieran asistentes

Fichaje de empleados

Un bot de telegram para el fichaje de empleados

Sería una plantilla de proyecto en lugar de un servicio (me costaría mantenerlo tiempo que no tengo)

Agenda de eventos en Telegram

La versión 1 ya está hecha y sería mejorarla y darle publicidad para ver qué le falta

Micronaut Telegram Api

He creado una versión de Telegram Api para Micronaut pero todavía le falta mucho por hacer para hacerla fácil de usar

Calcetines de la suerte

No es ninguna aplicación, sino crear una línea de calcetines chulos con un certificado de que te traeran buena suerte

Desintoxicacion de Twitter

Un addon para Chrome que cada vez que entras a Twitter, lo detecta y redirige la página a Mastodon

Bot Plazas de parking

Un bot para ofrecer en tiempo real las plazas de parking disponibles en los parkings de Madrid

  • Mastodon

  • Telegram

  • Web

  • Google Home

Bot generador de equipos

Asignar jugadores para un partido. Los usuarios de un canal le dicen al bot que los organize y el bot lee los miembros y crea equipos aleatorios con ellos

Estaciones de Servicio

Ir recogiendo diariamente los cambios de precios de las estaciones de servicio y ofrecer la informacion a los usuarios del bot actual

Timelapse de camaras de trafico

Recoger todos los días una foto de las cámaras de trafico y construir un timelapse con ellas

Crear extensiones para JBake

JBake es un generador de blog mediante ficheros de texto (yo uso principalmente asciidoctor)

La idea es poder crear extensiones en el mismo proyecto del blog sin necesidad de crearlas como proyecto independiente

Por ejemplo una extesion para un calendario:

    .Agenda 2020/10
    [calendar,year=2020, month=10]
    ----
    1 hola
    28 adios
    ----
Table 1. Agenda 2020/10
L M X J V S D

1

hola

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

adios

29

30

31

Pasar a mayusculas un texto

    [yell]
    hello world

HELLO WORLD

SPARQL

an SPARQL converter from query to table.

Write the query into a sparql block as in the example:

.List of Pokemons
[sparql, fields="pokemon,pokemonLabel,pokedexNumber"]
----
SELECT DISTINCT ?pokemon ?pokemonLabel ?pokedexNumber
WHERE
{
    ?pokemon wdt:P31/wdt:P279* wd:Q3966183 .
    ?pokemon p:P1685 ?statement.
    ?statement ps:P1685 ?pokedexNumber;
              pq:P972 wd:Q20005020.
    FILTER (! wikibase:isSomeValue(?pokedexNumber) )
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
}
ORDER BY (?pokedexNumber)
LIMIT 10
----

And the extension will query at Wikidata (https://query.wikidata.org/sparql endpoint) and render the result into a table

Kroki.io

An asciidoctor extension to use https://kroki.io as a replacement for asciidoctor-diagram extension.

You define a kroki block with a second arguments setting the kind of diagram you are writting:

[kroki,c4plantuml]
----
!include C4_Context.puml
title GrabThisTweet
Person(customer, "Tweet", "An user want to save a Tweet.")
System(gateway, "API", "Redirect request to the right service.")
System(user, "UserService", "Validate tokens and users.")
System(grab, "GrabService", "Generate InputStream from a tweet.")
System(storage, "StorageService", "Store and serve InputStreams.")
Rel_L(customer, gateway, "Uses")
Rel(gateway, user, "Generate token")
Rel(gateway, grab, "Grab a Tweet")
Rel_D(gateway, storage, "Retrieve grabs")
Rel_R(grab, storage, "Send grabs")
----

Vega Word Count example

Vega Lite

Work breakdown

The extension

Basically the extension use http-builder-ng to send via POST the content of the block and dump the response to a file

    public Object process(StructuralNode parent, Reader reader, Map<String, Object> attributes) {
        ....

        String name = attributes.get("name") ?: "${new Date().time}"
        String extension = "svg"
        File fImageDir = imageDir(parent)
        File fImage = new File(fImageDir, "${name}.${extension}")
        http.post{
            request.uri = "/"+attributes.get('type')
            request.body = reader.readLines().join('\n')
            toFile(delegate, fImage)
        }
        Map options = [:]
        options.target = imagePath(parent,fImage)
        options.width = attributes.get("width") ?: "800"
        options.height = attributes.get("height") ?: "600"
        createBlock(parent, "image", "", options)
    }

2019 - 2020 | Mixed with Bootstrap | Baked with JBake v2.6.5