El verano se acaba, y estos días en el Port de la Selva me he llevado la bici de montaña. He puesto todos los tracks grabados en un solo mapa, utilizando el package de OpenLayers y partiendo del ejemplo de la documentación. De esta manera puedo poner en perspectiva los caminos que he recorrido, y sobretodo ya puedo pensar en nuevos caminos y zonas para explorar el año próximo.
Archivo de la categoría: Joanillo Productions
Iglesias románicas de Catalunya
Finalmente he acabado el proyecto de las iglesias románicas. Han sido unos meses de documentación y de trabajo constante, poco a poco, sin estresarme, enmedio del confinamiento.
Resumiendo, el trabajo que se ha hecho es:
- generar una base de datos mysql de todas las iglesias
- replicar toda esta información en OSM: había gdadesran cantidad de iglesias que no existen; se ha convertido muchos nodos a vías; se ha aprovechado para editar casas y granjas del entorno de las iglesias; se ha actualizado muchos tags, como por ejemplo wikidata, wikipedia, ruins, etc. Se ha respetado al máximo la información editada por otros usuarios.
- hacer una página web, con diferentes ejemplos de mapas, entre ellos la cartografía del ICGC
Las ediciones que se han hecho en OSM son manuales, i se ha utilizado scripts python para asociar y actualizar la información de la bd con la información de OSM. Ha sido un trabajo laborioso de documentación, y muchas veces la información se ha tenido que contrastar con otras fuentes, como los mapas del ICGC.
No considero que el trabajo esté acabado, hay varias cosas que quiero discutir con la comunidad de OSM, pero esto tendrá que ser después del verano. Por ejemplo, aunque las iglesias en cuestión son románicas, la etiqueta building:architecture=romanesque no siempre será la más correcta. Por ejemplo, la iglesia de la Torre de Faia (Capella de Santa Magdalena), en Gisclareny, y que conozco, es una construcció más moderna que aprovechó las piedras de la antigua iglesia románica. Merece el tag building:architecture=romanesque? I es que la realidad siempre supera en complejidad a la teoría…
Referencias:
- Iglesias románicas de Catalunya
- video
- Base de datos mysql: descarga
Utilizar los mapas del Institut Cartogràfic i Geològic de Catalunya (ICGC)
Últimamente estoy consultando bastante el mapa topográfico del ICGC, pues la topoimia es muy correcta, y lo utilizo para actualizar la información de OpenStreetMap (aunque los puristas dicen que esto no se puede hacer, que no se pueden consultar otras fuentes que no sea la realidad del conocimiento real). Esto me sirve mucho para el proyecto en el que estoy metido, las iglesias románicas de Catalunya (y de paso, muchas masías aisladas repartidas por el territorio).
Hasta ahora los mapas del ICGC sólo los consultaba, pero no me había planteado utilzar estos mapas topográficos (y las ortofotos) en mis mapas. Pensaba que las licencias no permitirían su uso. Pues estaba equivocado: el ICGC da la información de cómo utilizar los mapas topográficos (y las ortofotos) tanto para las librerías Openlayers como Leaflet, y proporciona el código básico para pintar los mapas. La única cosa es que el ejemplo de Openlayers que proponen es con OL3 y los enlaces a las librerías no funcionan, mejor utilizar OL4. Lo tengo explicado en la wiki.
Así pues, ya tengo otra posibilidad para pintar mis mapas.
- Info en la wiki
- Condiciones de uso de la geoinformación ICGC
- Institut Cartogràfic i Geològic de Catalunya (ICGC)
La hora catalana con Festival (TTS, text to speech)
Estoy trabajando en un Magic Mirror, y le quiero dotar de funciones de reconocimiento de voz (STT, con Pocketsphynx) y síntesis de voz (TTS, con Festival). Quiero que sea un proyecto un poco de cachondeo, y quiero escoger bien los módulos a instalar, y también programar alguno.
Una cosa divertida que había pensado es un módulo que te diga la hora catalana:
-Magic Mirror (le pondré un nombre divertido), quina hora és? (en catalán) -Són dos quarts i cinc de vuit.
He estado trabajanco con Festival (que se instala sin problemas en una Raspberry Pi) e integrarlo todo con Node/Javascript, que es la tecnología que utiliza MagicMirror.
En el video hau una muestra de lo que se quiere conseguir:
Referencias:
Actividad en la wiki y en blog durante la COVID-19
Durante este tiempo de confinamiento se ha trabajado mucho en casa con el teletrabajo, cosas del instituto y cosas mías. Haciendo una consulta mysql a la wiki y al wordpress se puede saber fácilmente en qué he estado trabajando durante estos días.
En la wiki, wiki.joanillo.org:
mysql> select distinct page_title 'COVID-19 editons' from page, revision where page_id=rev_page and rev_timestamp >= '20200313%' and page_namespace=0; +--------------------------------------------------------------------+ | COVID-19 editons | +--------------------------------------------------------------------+ | Llibres_electrònics_i_l'editor_Sublime_Text2._Convertir_pdf_a_txt | | Esglésies_romàniques_de_Catalunya | | Aplicació_web_amb_motor_Python | | Pàgina_principal | | Mapes_medievals,_mapes_ficticis,_mapes_de_fantasia | | Fusionar_GeoJSON | | Opendata-barcelona | | Openlayers:_ol_package._Exemple_Casa_de_Papel | | DAW-M06-WEC | | React:_A_JavaScript_library_for_building_user_interfaces | | JQuery:_Tablesorter | | React_Native | | Github_pràctic:_control_de_versions | | Desplegar_un_projecte_web_amb_Express_i_Heroku | | Aplicació_Reactjs_a_través_del_servidor_web_Express | | Openlayers_amb_ReactJS | | ReactJS._Curs_EdX._Introduction_to_ReactJS._Microsoft:_DEV281x | | Curriculum_Vitae_Joan_Quintana_Compte | | Introducció_als_frameworks_de_Javascript | | React_CRUD_tutorial | | Exemples_Openlayers_(ol_package) | +--------------------------------------------------------------------+ 21 rows in set (0.00 sec)
En el blog, a www.joanillo.org:
select post_title from wp_posts where post_modified >= '2020-03-13%' and post_type='post' and post_parent=0 Geovisualització de la COVID-19 Esglésies romàniques Vegueries/regions de Catalunya. Densitat de població La Casa de Papel: aplicació web John H. Conway. Joc de la Vida Introducció a ReactJS: DEV281x
De momento es esto, porque desgraciadamente el confinamiento continúa.
La Casa de Papel: aplicación web
Este es un ejemplo que he hecho mano a mano con Pere, ahora que estamos confinados por la COVID-19 y vamos por la mitad de la 3a temporada de La Casa de Papel.
Para mi también ha servido para hacer una aplicación OpenLayers con código Node, que es la tendencia actual. Todo está explicado en la wiki y en los enlaces a los que se hace referencia.
La renderización que se ha hecho del mapa en blanco y negro es el estilo toner de Stamen. A mí particularmente me gusta mucho, y creo que hemos conseguido una buena integración con el diseño propio de la serie, que juega con los colores negro y rojo.
Enlaces:
Cataluña megalítica
Ya tengo acabada la visualización de todos los dólmenes de Catalunya y Catalunya Nord. Se ha hecho este trabajo con varios propósitos. Por una parte, unificar y actualizar toda la información disponible en OpenStreetMap, donde sólo estaban listados la mitad de los dólmenes. También me interesaba la programación de OpenLayers para visualizar el mapa, y la renderización del mapa con diferentes estilos a parte del clásico de OSM.
Para visualizar el mapa creo que lo más chulo es el estilo Terrain. Ahora bien, si quiero hacer zoom y que aparezca información en detalle de la zona, el mejor mapa continúa siendo el de OSM. La aplicación también puede visualizar el mapa con los estilos Toner y Watercolor.
He tenido más trabajo del que tenía previsto y tiempo del que quería gastar. O sea que he hecho un subdominio para que al menos la información esté siempre disponible:
Block (or book) stacking problem

Esta mañana he resuelto el problema de apilar libros (o bloques). Se trata de estudiar bajo qué condiciones puedo apilar bloques (de longitud L) de manera que los vaya desplazando un respecto al anterior, de manera que no caigan. Cuál es la condición límite para que no caigan? Con bloques de longitud L puedo conseguir un desplazamiento de longitud L?
Este problema recuerdo haberme peleado con él (y creo que en su día no lo llegué a solucionar) el verano de 1989 en Bagà, pues el problema estaba enunciado en el Schaum de Mecánica Teórica (Murray R, Spiegel). He buscado el libro (lo he encontrado en pdf en la red, seguro que lo tengo en una estantería), y en la foto se ve el enunciado del libro en la pág 249. NOTA: La figura que enseña el libro está mal y genera confusión: es al revés, el bloque de arriba es el que sobresale la mitad, y los bloques de abajo son los que están más juntos (la figura del llibre tiene un apilamiento claramente inestable, los bloques segur que caen porque el centro de gravedad está fuera del bloque de más abajo).
En aquella época no existía Internet, o sea que uno se peleaba con el problema solo, sin poder pedir ayuda. Ahora lo he resuelto (solito, hay que decirlo, ver el pdf en los enlaces de abajo), y después de resolverlo he buscado información complementaria que he encontrado de lo más interesante (videos de Youtube incluidos), ver los enlaces.
La solución. Todo el sistema de los blocs 1…N-1 que están sobre el bloque N no caen si su centro de masas cae justo en el extremo del bloque N. Se puede resolver de forma iterativa: el bloque 1 se aguanta sobre el bloque 2 si lo ponemos en la mitad, L/2. El sistema bloques 1+2 se aguanta sobre el bloque 3 si el centro de masas de los bloques 1+2 está justo en el extremo del bloque 3. Vamos poniendo bloques, y vamos calculando los centros de masas, y vamos viendo cuál es la condición de equilibrio. Y al final (ver la solución) se encuentra que el centro de masas es una serie armónica:
Xi+1cm = L/2 * (1 + 1/2 + 1/3 + … + 1/i)
Y ahora un poco de matemáticas: la serie armónica es divergente (aunque diverge muy lentamente). Lo que significa que se puede conseguir un desplazamiento teórico tan grande como se quiera (vere el video del enlace, donde se consigue un desplazamiento bastante grande).
Ahora sólo me falta hacer la experiencia con Maria y Pere, a ver si lo podemos hacer este mes. Si lo conseguimos, colgaremos también el video.
Enlaces:
OpenStreetMaps en rutesgps.joanillo.org
He actualizado la web de rutesgps.joanillo.org. Lo tenia con la API de Google Maps y hacia tiempo que no funcionaba debido a que la API KEY había caducado.
En la asignatura de Javascript, en el instituto, el curso pasado ya no utilizamos Google Maps, y sólo la API de OpenStreetMaps (OSM). Quizás los mapas no son tan chulos, pero son plenamente funcionales, y con el tiempo irá mejorando gracias a la colaboracion de la comunidad.
Además, he empezado a editar y colaborar en los mapas de OSM, hay mucho trabajo para la comunidad. Estos días estoy con temas de mapas porque me he comprado un GPS de ciclismo, el Bryton Rider 450, que me está dando muy buenos resultados. El sábado pasado fuimos a hacer una ruta por el macizo del Garraf, desde Garraf hasta Begues, y volver.
Conclusión: adios Google Maps, adelante OSM!
Encontrar la constante de gravitación g
Después de diversos ajustes, ya estoy en condiciones de realizar el experimento del péndulo para encontrar la constante de la gravedad.
He probado diferentes tipos de sensores, y finalmente me quedo con unos sensores de efecto Hall que detectan el paso del imán (el peso del péndulo es un imán). Todavía me faltan hacer unas cuantas mejoras. De hecho, la fórmula que hacemos servir (movimiento armónico) sólo será válida cuando sin(x) = x, y esto implica que la estructura del mueble tiene que ser más grande y el hilo más largo, para poder limitar el ángulo alfa, manteniendo el periodo del ciclo.