🎅🏻🎄 Day 4: Scratchcards ⭐⭐

Oggi mi prendo una gustosa (ma sofferta) rivincita sulla disfatta totale di ieri. La prima parte del problema non è stata particolarmente difficile, mentre la seconda mi ha richiesto un paio d’ore circa di tentativi. Credo però di aver imparato diverse cose sul linguaggio che sto usando. Perciò: qual è il problema?

Ci tocca dare una mano a un altro elfo che sembra non aver capito cosa potrebbe aver vinto da una pila di gratta-e-vinci (scratch-cards, in inglese). L’insieme dei (suoi) gratta-e-vinci è, per esempio, così:

Card 1: 41 48 83 86 17 | 83 86  6 31 17  9 48 53
Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19
Card 3:  1 21 53 59 44 | 69 82 63 72 16 21 14  1
Card 4: 41 92 73 84 69 | 59 84 76 51 58  5 54 83
Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36
Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11

In ogni riga, sulla sinistra di | ci sono i numeri vincenti, mentre sulla destra i nostri numeri. Senza sapere le regole, presumiamo che il punteggio sia calcolato a partire dai numeri vincenti.

  1. Il primo numero vincente che possediamo vale 1.
  2. Dal secondo numero in poi in nostro possesso, il punteggio raddoppia.

🎅🏻🎄 Day 3: Gear Ratios

Fine dei giochi. O meglio: eccoci al primo problema che ha arrestato il mio momentum di questo 2023. Mi tocca già lasciare indietro un problema – non lo risolverò certo entro oggi – perché il grid parsing fa parte di quelle categorie dove faccio spesso fatica.

In sintesi, il problema ci chiede di estrarre dei numeri da una griglia bidimensionale. Per esempio:

467..114..
...*......
..35..633.
......#...
617*......
.....+.58.
..592.....
......755.
...$.*....
.664.598..

Quali numeri? Solo quelli le cui cifre non sono adiacenti a un simbolo, cioè un carattere che non sia un numero o un punto. Nota importante: con adiacente s’intendono anche le diagonali, non soltanto lungo gli assi cartesiani. Ogni cifra avrà quindi 8 location da controllare.

🎅🏻🎄 Day 2: Cube Conundrum ⭐⭐

Per rimanere in tema con l’emergenza climatica, il problema con la neve sembra essere una mancanza d’acqua. Così ci racconta un Elfo. Si offre anche di mostrarci dove sta il problema, anche se non sa proprio come risolverlo (immagino toccherà a noi uno dei prossimi giorni).

Mentre ci accompagna, propone un gioco. In un sacchetto ci sono dei cubi di tre colori: rosso, verde, e blu. Ogni round di questo gioco consiste nell’estrarre un numero random di cubi e prendere nota del colore. I cubi vengono poi rimessi nel sacchetto e l’operazione si ripete più volte per ogni round.

Un possibile risultato è

Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green
Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue
Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red
Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red
Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green

L’input suggerisce perciò che avremo a che fare con hash maps (o Association nel Wolfram Language). Ogni colore sarà associato a quante volte quel cubo è comparso in un’estrazione.

🎅🏻🎄 Day 1: Trebuchet?! ⭐⭐

We are all well aware (or should be) of the biggest problem humanity has ever faced: the global climate crisis. And it seems that Advent of Code wants to align as well: the excuse for this year’s adventure is a problem with the global snow production system. Well, what should we do?

The input is a calibration document that has been amended in a very creative way: it should contain only numbers, but some of them are spelled out with letters.

1abc2
pqr3stu8vwx
a1b2c3d4e5f
treb7uchet

The first task is relatively simple: for each row, we must reconstruct the number consisting of the first and last digits found on that row. So, in the example: 12, 38, 15, 77. The last number is repeated because the first and last digits coincide.

It’s the end, again. Why am I happy about it?

Here we go again. It’s November, 30 and we have only thirty-one days to go. This means so many things: that it’s almost a time for look-behinds (more useful than resolutions); that in a couple of weeks I will be able to spend a few days in the mountains I love most; that another year is really gone. But most of all: that the next twenty-five days will be enriched by Advent of Code and its completely useless puzzles, with which I learned countless things and tricks to become a better programmer.

Everything is ready, although I wanted to be more prepared on some topics about which I still know little and which are guaranteed to get me in trouble before I get to Christmas. But how am I going to approach the challenge this year?

Here are some choices I have pondered over the past few days:

  1. Although I know many programming languages, only two I can say I really master: Python and the Wolfram Language (WL). And I think I know Python much more thoroughly by now. What better opportunity to try solving puzzles in WL and delving into a language I always enjoy working with? Backup is always at hand, when it’ll be much easier for me to write a solution in Python.
  2. Graphs and recursive problems will come, I know, and there I will almost certainly get stuck on them. Or Tetris simulations or other geometric games that are hard to conceive of now. It doesn’t matter if I leave some problems behind, there is always time to catch up. And I know I probably won’t catch up, but repeating it to myself is essential to remember that only the journey, and not crossing the finish line, matters. It is essential for all this to remain an enjoyable free-time pastime.
  3. I intend to write a short or very short account of the problem every day. Yes, every day. Last year I wanted to write a long post for each solution. It was a great writing exercise, but sometimes it took me way too long. This year I want to be shorter. For example: I will write about a function or feature of the language I used that was the most interesting aspect of a day’s puzzle.

I am also very proud of the Coders of Advent Telegram group, which started last year and grew during 2023. We were able to meet in person at PyCon Italy in May: it’s been a wonderful experience. The group not only serves to help each other or share ideas and solutions, but also to season the experience with a healthy dose of competition. Without overdoing it, just enough to give you a little more motivation even when you have no idea how to tackle a problem.

For me, next year may become among the most important years of my entire life so far, and I am sure I will write a lot about it. But also during this 2023 I have had some unforgettable experiences – the two worthiest mentions: the Translagorai thru-hike and the Camino de Santiago. What better way to end it with the most fun and constructive advent calendar ever?

Ready, then? Yes! 🎄🎅🏻🧩

Santiago #13: la fine?

Oggi la parola nostalgia ha un particolare significato per me.

Santiago #12: motivazioni e paure di alcuni compagni di viaggio

Siamo ormai alla fine di questo piccolo progetto lungo il Cammino di Santiago: domani in circa quindici chilometri arriveremo a Burgos, l’ultima tappa per uno di noi. Domani avremo sicuramente diverse foto da un’altra delle città più grandi che si incontrano lungo il Cammino, ma non poteva esserci occasione migliore per la prima delle due puntate speciali che abbiamo preparato in questi giorni. È stato un lavoro di un impegno inaspettato, ma siamo certi che ne sarà valsa la pena.

Santiago #11: l’occasione inaspettata

Dopo la giornata di ieri interamente dedicata al gruppo più grande che si sia aggregato tra le persone partite da Saint Jean il 13 settembre, oggi è stata una giornata completamente diversa: abbiamo camminato perlopiù da soli, e molti di noi hanno scelte delle tappe di fine giornata diverse dal solito gruppetto con cui ci si fermava di solito.

Santiago #10: condivisione

La decima tappa di questo mio cammino di Santiago è stata per me un ritorno al passato, ai tempi della condivisione di quasi ogni cosa durante i campeggi con l’oratorio.

Santiago #9: la tappa più lunga

Da Logroño a Najera, altra piccola città della Rioja, il penultimo paese della regione autonoma da cui passa il Cammino.

La tappa di oggi è stata la più lunga finora: abbiamo sfiorato i primi trenta chilometri, fortunatamente quasi tutti in piano (solo 390 metri di dislivello positivo). La monotonia delle pianure coltivate a vite ce l’ha fatta dimenticare la pioggia che abbiamo presa dalla tarda mattinata fino all’ingresso a Najera: è stato il periodo di pioggia più lungo che ci è capitato finora.

E ora la piccola anticipazione: il mio cammino in questo 2023 si concluderà a Burgos, ma Federico proseguirà fino a Santiago e (forse) a Finisterre. Il podcast era un progetto pensato e creato da entrambi, ma lui mi ha promesso che continuerà a aggiornare il blog con qualche foto e due righe ogni giorno. O almeno ci proverà. Come ci siamo detti più volte, è una fatica che verrà ampiamente ripagata.

Santiago #8: La Rioja, il suo vino e le zanzare

Logroño1, capoluogo della più piccola regione autonoma spagnola (La Rioja) è terra di vitigni e del suo prodotto per eccellenza. Alla fine dell’estate, inizia la festa della vendemmia, una caotica ma caratteristica fiera per le vie del centro storico.

Una breve nota sulla tappa di oggi, paesaggisticamente molto bella e neanche troppo faticosa, sebbene i primi dieci chilometri tra campagne e vitigni sono un saliscendi continuo a cui è stato dato il nome di spaccagambe. La vera sfida – che io personalmente considero persa perché ho letteralmente sbroccato più volte – sono state le zanzare. Promemoria al me stesso futuro o a chiunque legga questo blog: premunitevi con un repellente perché in queste sezioni loro vi sorpassano in numero e tocca semplicemente arrendersi.

Domani ritorna anche il podcast, e un paio di cose interessanti di cui parlare le abbiamo già pronte (inclusa una piccola sorpresa 😉).


  1. La Rioja conta circa trecentomila abitanti, di cui metà nella città di Logroño. ↩︎

Santiago #7: il Cammino è solitudine e socialità

Una inaspettata cena di gruppo ci ha fatto riflettere sulle due dimensioni del Cammino: solitudine e socialità.

Santiago #6: come ci nutriamo durante il Cammino?

Sempre in attesa di riuscire a preparare la puntata speciale (lo faremo, promesso), alla seconda notte in tenda parliamo un po’ di alimentazione: cosa mangiamo e come, più qualche consiglio non richiesto.

Santiago #5: quali paure ci portiamo nello zaino?

Torniamo a parlare di una cosa che è saltata fuori già un paio di volte: quali paure ci portiamo nello zaino?

Santiago #4: nel cuore della Navarra

Il quarto giorno si arriva a Pamplona, capoluogo della Navarra e la città più grande che si incontra sul Cammino Francese. Tappa di poco più di 20 km – perlopiù in piano – che si è rilevata più tosta del previsto. Vista la stanchezza, il diario vocale torna domani, promesso.

Two friends

The journey is always ahead

Welcome to the Basque Country

Pamplona’s cathedral

Santiago #3: quando ci sentiamo davvero a casa?

Il Cammino è un luogo senza confini geografici per le persone che lo percorrono. Incontrarne così tante ci ha fatto pensare al posto che tutti noi, non solo i pellegrini, abbiamo e chiamiamo “casa”. Dov’è questo posto?

Santiago #2: quanto mi costerà?

Dopo i 15 chilometri di oggi, l’attraversamento dei Pirenei e del confine con la Spagna ci ha fatti tornare a riflettere sul senso di un’impresa personale come un lungo viaggio a piedi.

Santiago #1: Le motivazioni di un viaggio

Proviamo a capire quali motivazioni ci spingono a intraprendere un lungo viaggio.

Santiago #0: la partenza è già un viaggio

Bordeaux train connections map

In mezzo alla campagna francese, partiti da Bordeaux verso Bayonne – o Baiona in basco e spagnolo – l’ultima fermata intermedia prima del paese pirenaico di Saint-Jean-Pied-de-Port (o SJP d’ora in poi), il vero punto di partenza di questo Cammino Francese.

Dopo la tempesta ancora estiva che ci ha accolti ieri all’atterraggio a Bordeaux, la giornata oggi è pulita e fresca, la notte è stata tiepida e invoglia a passare la prossima in tenda.

Abbiamo già fatta una conta degli zaini incrociati fino a stamattina e ci siamo chiesti quanti ne rincontreremo alla vera partenza. Previsione? Un buon cinquanta percento, e ne avremo visti almeno una trentina. Ciò è un buon segno perché la condivisione con altri esseri umani è per entrambi uno dei motivi che ci ha portato su questo sentiero frequentatissimo.

L’umore è alto – e contrasta un po’ con l’atmosfera lavorativa che avvolge la carrozza di questo TGV – l’energie pure, pronte a servirci in questo inizio che sarà una bella tappa alpina, come piace a noi.

Appuntamento a più tardi per la prima puntata del “diario vocale” di questo Cammino. Parleremo di motivazioni personali e di quanto contano (e costano) 🥾

I’m seriously thinking of camping here next weekend 🏕️ I know this place since ages but I can’t deny a pinch of fear of I don’t know what