Showing posts with label Twitter. Show all posts
Showing posts with label Twitter. Show all posts

Sunday, 20 March 2022

Tirando del hilo

Esta entrada en realidad fue un hilo de twitter

Inspirado por el grandísimo Jaime Obregón os voy a contar una historia, porque en todos sitios cuecen habas. Como cada año por estas fechas se abre el plazo para inscribir a los niños españoles residentes en el extranjero en las Aulas de Lengua y Cultura Españolas, las famosas ALCE.

Las clases son gratuitas, mitad presenciales y mitad online, aunque muchos españoles ni siquiera saben que existen. Los detalles los puedes leer en el BOE

Cuando eres emigrante te puedes registrar en el Censo Electoral de Residentes Ausentes en el consulado correspondiente (las rimas las carga el diablo) para poder votar acercándote al consulado (si es que te pilla razonablemente cerca).

Y esto qué tiene que ver, dirás. Pues que el consulado tiene una lista de españoles (no todos porque algunos siguen empadronados en España) así que sería muy fácil mandarnos un mensaje en febrero recordándonos que nuestros hijos pueden acceder a las ALCE.

Parece ser que en algunos países sí que se hace y en otros no con excusas como que la ley de protección de datos lo impide. A ver, que no te pido que me des los datos de los españoles registrados, te pido que les mandes tú un mensaje igual que haces con las elecciones.

Pero claro, si nos apuntamos en masa nos harían falta más profesores. Porque por ley, si hay un grupo de más de catorce alumnos el estado tiene que poner un profesor. Y eso cuesta dinerillo.

Vale, que sí, pero ¿y esto qué tiene que ver con el grandísimo Jaime Obregón ? Ya llego, ya.
(en realidad esto es otra excusa para enlazar a alguien y que Jorge Corrales note que leo sus tuits)

Cada niño español en Berlín en edad escolar está escolarizado en un colegio alemán. Ya que el consulado no nos avisa, ¿y si les pido a los colegios que avisen a los alumnos españoles de que ALCE existe? La información es pública. Más o menos. Está aquí.

Hay muchos colegios en Berlín y cada dirección de correo está disponible (una a una que si no sería todo demasiado fácil). Lo que no hay (o yo no he encontrado) es una lista con todos los colegios. Pero bueno, para eso sirven los scripts de usar y tirar 

Vale, ya tengo la lista de colegios y sus direcciones. ¿Mando un mensaje masivo que sea ignorado por todos o un mensaje a cada colegio e instituto que sea ignorado individualmente? Casi mejor uno a uno pero no a mano, que aquí hemos venido a jugar.

Una búsqueda en google con las palabras "python gmail send email" me devuelve un puñado de tutoriales, a cual mejor. ¿Victoria?
Este enlace no tiene nada que ver con este hilo pero es interesante (no es que el hilo no lo sea)

Casi, para empezar un 6% de las direcciones devuelven un error porque o son viejas y ya no se usan pero tampoco te dicen cual es la dirección nueva, o directamente ya no existen, o están tan llenas que ya no aceptan más mensajes. Bueno, mejor que nada. Y claro, ¿cuantas veces recibes un mensaje de un desconocido, extranjero por más señas, que te pide hacer algo y lo haces enseguida? Pero incluso si con los 900 mensajes solamente se acaba apuntando un chico o una chica, pues habrá merecido la pena.
Si quisiera hacer lo mismo a escala nacional la cosa sería incluso más complicada. Por ejemplo, sé de alguien que quiere montar una ALCE en Potsdam, pero ¿cómo te pones en contacto con los españoles allí?

El consulado tendrá sus razones para no usar la información que tiene (repito, no quiera que hagan público el registro del CERA) pero podían tomar nota de sus compañeros en Países Bajos. Este año el plazo acaba el 25 de marzo.


 


Sunday, 19 December 2021

Calendar puzzle (ii)

In the end I went for the brute force approach, ie the not so elegant approach. It took me a while to write and debug the code but eventually I got there and found thousands and thousands of solutions (in fact I assume I found them all). Once I somewhat tidy the code up I will post it in github. Today I spent some time figuring out how to plot the calendar, learning about colour maps, grids, etc. As usual, python has you covered! People who have created and contributed to libraries such as numpy and matplotlib definitely deserve a lot of credit.

Since it makes no sense to publish here a daily puzzle I have created a twitter account for the Calendar, so that I can create a bot which tweets a solution every day (or if I feel even more adventurous and I have time, maybe posting a hint and then a few hours later the solution?). I read this great post from Miguel García and so far so good as I already managed to post something from a script after fumbling my way through Twitter´s Development Portal.

Not quite sure yet where to run the bot. One option would be to set up a raspberry pi, another one would be to explore pythonanywhere which I already used to host the tute app. We´ll see.

PS1: It will be in pythonanywhere, whose free tier allows to run one scheduled task per day (!), which is enough for this. It should run each day at 8am. Let´s see.

PS2: It works! :-) Code in a semi tidy state available in GitHub 

PS3 (October 2024): Bot now also available for Bluesky 





Solutions for today, who would have thought that there are so many ways to solve this puzzle?







Monday, 13 December 2021

Calendar puzzle

This year I am participating again on Advent of Code. So far, so good, let´s see how many stars I manage to get in the end. However this post is not about AoC, but about another puzzle I came across.

It´s a calendar with eight pieces that can hide months and days on table below, so the remaining cells show the date. Apparently you can find a combination for each day of the year (rotating and flipping pieces is allowed). However brute forcing won´t work. I calculated the amount of different positions and it´s a lot of combinations. Looking at the pieces below, there are 96 different ways in which you can place piece A, 98 for B, 82 for C, 154 for D, 151 for E, 80 for F, 196 for G and 154 for H (pieces with simmetries have less possible locations).

So brute forcing this problem would require to loop through each of the 98 positions possible for A, for each one then loop over whatever positions are still possible from the original 82 for B, etc, etc. 

I will give it a try but I wonder if there is a more elegant approach. Hints are welcome.