<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://harisont.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://harisont.github.io/" rel="alternate" type="text/html" /><updated>2026-08-13T11:34:14+00:00</updated><id>https://harisont.github.io/feed.xml</id><title type="html">Arianna Masciolini</title><subtitle>Arianna Masciolini/harisont&apos;s permanently-under-construction personal website and chaotically multilingual blog
</subtitle><author><name>Arianna Masciolini</name><email>harisont@fripost.org</email></author><entry><title type="html">Ten Tips for Tenacious Train Travelers</title><link href="https://harisont.github.io/2026/08/09/ttttt.html" rel="alternate" type="text/html" title="Ten Tips for Tenacious Train Travelers" /><published>2026-08-09T00:00:00+00:00</published><updated>2026-08-09T00:00:00+00:00</updated><id>https://harisont.github.io/2026/08/09/ttttt</id><content type="html" xml:base="https://harisont.github.io/2026/08/09/ttttt.html"><![CDATA[<p>After moving to Sweden in 2018, I started traveling longer distances on a regular basis to visit friends and family both in my hometown, Perugia, and in Agrigento, where most of my relatives live.
At the same time, I became more aware of the environmental impact of airplane travel.
After a couple years of back-and-forth flights, a <a href="https://stay-grounded.org/lets-stay-grounded/travel-differently/"><em>Stay grounded</em></a> campaign allowed me to test out long-distance train travel, something I’d always felt drawn to, at a price compatible with my student finances.
Many train rides followed that first three-day trip, most of which along the same approximate route from Sweden through Denmark, Germany, Austria (or Switzerland) to Italy, or vice versa.
Here’s a selection:</p>

<p><img src="https://harisont.github.io/assets/img/ttttt.jpg" alt="Maps of five different Interrail trips, all somewhere between southern Sweden and Italy" /></p>

<p>I’m not always able to travel by train, let alone the whole way, but I try to consider that option whenever I’m not too short on time.
Not only is train travel more environmentally friendly than flying, it can also be more pleasant. 
Slower travel prompts reflection on the distance that, for better of worse, I’ve put between myself and some of my closest people, it works as a much needed buffer between a tough semester and a series of family gatherings and it gives me an excuse to visit new places along the way.</p>

<p>That said, train travel is terrible too.
During my last trip back to Sweden, a series of cancellations, delays leading to missed connections and innumerable smaller inconveniences made the whole trip so frustrating that, if it wasn’t for a couple interesting conversations in Hamburg and a nice long walk Copenaghen, I’m not sure I’d be willing to ever do it again.
Unfortunately, this is not an uncommon experience.
As I explained <a href="https://mstdn.social/@harisont/117016139549596536">in this thread</a>, I feel less and less encouraged to choose rails over air: prices are crazy, bookings complicated, infrastructure unreliable.</p>

<p>If you’re new to cross-border train travel and still want to give it a try, here are a few tips to make your trip a little less exhausting and hopefully have some fun on the way.
If you’re already a seasoned train traveler and want some advice about my usual route, you can jump directly to my <a href="#bonus-tips-for-fellow-scanditalians">bonus tips for fellow Scanditalians</a>.</p>

<h2 id="1-travel-light">1. Travel light</h2>
<p>When it comes to long-distance travel, my first and most obvious piece of advice is to try to pack as little as possible.
For me, the best option is a single hiking backpack.
In general, luggage you can comfortably walk around with allows you to make the most of waits between trains, even when they’re not long enough to make the luggage deposit worth it.</p>

<h2 id="2-dont-forget-the-essentials">2. Don’t forget the essentials</h2>
<p>Packing light is all good and well as long as you don’t underpack.
What’s essential is highly subjective: many would say power banks and sleep masks are a must, but I usually carry neither.</p>

<p>Things I find useful while on a train include water, a renewable source of literature (aka an e-reading device), <em>both</em> headphones <em>and</em> earplugs (the baseline noise of some trains can be exhausting even in a quiet compartment and I have beef with ANC) and, in the likely event that the toilet lacks soap, hand sanitizer.</p>

<p>Once I get off the train, I need a smaller bag (ideally a foldable backpack, but a tote bag can also do the job) to put things I don’t want to leave at the station or wherever I spend the night, a raincoat or umbrella, basic cutlery for supermarket food and some hostel basics (padlock, flip-flops, towel).</p>

<h2 id="3-carefully-choose-your-clothes">3. Carefully choose your clothes</h2>
<p>Besides these items, most of what I pack generally consists of clothing.
During long-distance trips, it is important to me to feel comfortable in my body. 
In practice, that means layers (regardless of the season) and wide-leg/stretchy trousers, sometimes even skirts.</p>

<p>Another thing I always try to have (and often fail, because I was born female) is pockets. 
Losing my documents during an international trip is something I haven’t experienced yet and I’d like to keep it that way, so I prefer to have them on me.</p>

<h2 id="4-prepare-to-be-offline">4. Prepare to be offline</h2>
<p>Despite more and more trains offering WLANs (sometimes remarkably good), internet access during travel should not be taken for granted.
Even if you rely on your own mobile data, mountainous countries like Austria and Italy will give you a hard time.
Plus, while EU roaming is a great thing, I’ve experienced way too many days-long connection failures due to mystery misconfigurations to fully trust my mobile.</p>

<p>As a consequence, when traveling across several countries, I prefer to assume I will be offline most of the time.
For me, this implies some “digital packing”.
In descending order of importance, I try to have offline access to:</p>

<ol>
  <li>tickets, seats reservations etc.</li>
  <li>maps of the places I’m planning to stop at. For this purpose, I rely on CoMaps, a free and open source OpenStreetMap-based app</li>
  <li>music and podcasts</li>
  <li>e-books (alternatively, I pack a long physical book).</li>
</ol>

<h2 id="5-consider-a-rail-pass">5. Consider a rail pass</h2>
<p>You might think passes like the Interrail ones are expensive, and you’d be very right.
Long-distance travel <em>without</em> a rail pass, however, tends to be a <em>lot</em> more expensive.
Even in cases where booking trains individually seems cheaper, I strongly recommend considering a rail pass, especially for cross-border journeys.
In the event of a significant delay, which you should expect, it’s usually easy (at least in some countries) to get a reimbursement for that specific train/operator, but nobody will pay you back for any missed connections if the trip involves multiple operators.
Traveling with a pass gives you the peace of mind that, if you miss a train, you can always get the next one without additional costs (modulo <a href="#6-minimize-seat-reservations">seat reservations</a>).</p>

<h2 id="6-minimize-seat-reservations">6. Minimize seat reservations</h2>
<p>Unfortunately, traveling with a rail pass is not as flexible as it looks.
A <em>lot</em> of European operators force seat reservations, which come with additional fees. 
In my personal experience, these are between 3 and 15€ depending on how you book (yes, different sites have wildly different prices) and where you go. 
While this might not sound like a lot, reservation costs quickly add up.
For that reason, my advice is to avoid reservations as much as possible, even if that means taking a regional train instead of a high-speed train.
If this is not possible, it’s up to you to decide whether to prebook your train, risking having to pay the fee twice in case of a missed connection, or wait until the very last minute, risking not to find a seat.
I usually opt for the latter, and in more than one occasion I managed to convince the train conductor to let me in anyway.</p>

<p>There are two important exceptions to this rule: night trains and the first leg of you trip. 
If you want to sleep (horizontally) on a night train, you should definitely book well in advance. 
If you have the chance to start a long trip with a high-speed train and the route is popular, a reservation might be worth considering too.</p>

<h2 id="7-keep-track-of-places-to-revisit">7. Keep track of places to (re)visit</h2>
<p>On top of <em>expecting</em> setbacks, you should try to <em>embrace</em> them.
Missed your connection in Hamburg? 
Well, there’s a museum to visit right next to the train station!
Stranded in Bologna? 
Good to know there’s a good hostel to spend the night!</p>

<p>In some cases, you’ll have to improvise, but it’s good to keep a set of potential stops in mind when planning for a long journey.
When you travel the same route over and over like me, it can also be a good idea to take note of places to revisit (or to avoid).
In my maps app, I have pinned a few strategically located places I want to visit (both towns I haven’t been to and specific attractions I missed on previous trips). 
Recently, I’ve also started using it to note down the best and worst overnight stays.</p>

<h2 id="8-be-aware-that-not-all-schedules-are-created-equal">8. Be aware that not all schedules are created equal</h2>
<p>You would think that the schedule on your phone is the same as the departures board at the train station, in which case you’d be right <em>most of the time</em>.
Actually, only some of the time depending on what schedule you’re looking at on your phone.</p>

<p>Based on my personal experience, a good rule of thumb is that the Interrail app is less reliable than the local railway website/app, which is in turn less reliable than the station’s departure board (which is still less reliable than the spoken announcements, but whether the announcements are comprehensible depends on language skills, hearing and acoustics).</p>

<p>In particular, remember that the Interrail schedule is <em>not</em> updated in real time, or at least that the schedule you see when you are offline is not necessarily the same schedule you saw when you were online last time. 
It might very well be older.</p>

<h2 id="9-talk-to-people">9. Talk to people</h2>
<p>My second to last piece of advice is to try not to be afraid of talking to people, and I mean it in two different ways:</p>

<ul>
  <li>definitely talk to the ticket inspector if you’re breaking a rule for lack of a better option (e.g. if you’ve boarded the train without a mandatory seat reservation because the site was down, the train was fully booked or you really didn’t make it in time). If you speak for yourself, chances are you won’t be fined. Similarly, ask for help if you get stuck at a train station. The fact that (an unreliable version of) the schedule is in your pocket doesn’t make info points any less useful. People working there may have crucial bits of last-minute information, plus they’re sometimes quite empathetic</li>
  <li>if you’re having a frustrating ride, try to exchange a couple words with your neighbor. If you end up staying at a hostel, see if you can take it as a chance to socialize. Sometimes these random exchanges are what makes travel interesting, or at least bearable.</li>
</ul>

<h2 id="10-join-the-erpu">10. Join the ERPU!</h2>
<p>During my last and most cursed trip, I learned about the <a href="https://erpu.eu/">European Rail Passengers Union</a>, an organization that advocates for cross-border rail passengers rights.
At the moment, the focus is on the EU’s rights and ticketing proposal which they <a href="https://erpu.eu/en/the-eus-rights-and-ticketing-proposal-explained">explain in detail and propose amendments to</a>. 
While even the best EU policy won’t eliminate all of the struggles of train travel mentioned in this blog post, this initiative certainly goes in the right direction and I think it is worth supporting.</p>

<h2 id="bonus-tips-for-fellow-scanditalians">Bonus tips for fellow Scanditalians</h2>
<p>If you’re planning to cross Europe north-to-south like I routinely do, here’s some extra advice for you:</p>

<ul>
  <li><strong>the Danes really like passport checks</strong>. Remember that free borders Eutopia? Between Sweden and Denmark, as well as between Denmark and Germany, it is indeed still a utopia. If you have any potential visa issues, this is definitely something to consider</li>
  <li><strong>the central station’s luggage deposit in Copenaghen has a fixed daily price</strong>. Last time I was there, it was 70 Danish crowns for a smaller cabinet, 95 for a larger one</li>
  <li><strong>there is absolutely no need to book seats on DB trains</strong>. Despite <a href="https://www.youtube.com/watch?v=BLkj7Xxc3Ko">what Germans say about their own railways</a>, Germany is one of the best countries to interrail through. That’s because DB acknowledges that it’s basically impossible for all seats to be occupied for the entire duration of the trip and lets you board any train without a seat reservation. If seats are bookable at all, you’ll find an LCD on top of each showing you whether it is reserved and, if so, from which station to which station it will be occupied. Worst case, you’ll have to move around a bit</li>
  <li><strong>some trains between Austria and Italy require an additional fee</strong>, but you can pay it right on the train. I’d also say that if you’re not asked about it, you don’t need to remind anyone, even if that contradicts part of point 9. Traveling by train is already expensive enough</li>
  <li><strong>night trains to Sicily have some quirks</strong>. The Termini-Termini (Roma Termini to Termini Imerese) Intercity Notte is a complicated train. It divides up and, in Villa S. Giovanni, it boards a ferry to Messina. To avoid any surprises when you wake up, I strongly recommend triple checking that you’re sitting in the correct compartment for your destination. As for reliability, it always seems to be catastrophically delayed halfway through the trip, but usually manages to catch up in the end. In any case, I wouldn’t waste too much time staring at the train status on the Trenitalia app: once it reaches Sicily, the train invariably changes name and figuring out the new one is a nontrivial task to say the least</li>
  <li><strong>if you’re travelling to Sicily by day, it is much faster to get off the train in Villa S. Giovanni and board the ferry to Messina on foot</strong>. As far as I remember, this ferry is not included in Interrail passes, but it isn’t very expensive</li>
  <li><strong>refilling your water bottle is done differently in different countries</strong>. In Sweden, it is perfectly acceptable to enter a cafe and ask for some tap water. In Italy, this is less customary (you can still ask, but keep in mind that drinking water is not as easy to come by in the first place, especially in the south), but water fountains are much more common. OpenStreetMap can help you find them.</li>
</ul>]]></content><author><name>Arianna Masciolini</name><email>harisont@fripost.org</email></author><summary type="html"><![CDATA[After moving to Sweden in 2018, I started traveling longer distances on a regular basis to visit friends and family both in my hometown, Perugia, and in Agrigento, where most of my relatives live. At the same time, I became more aware of the environmental impact of airplane travel. After a couple years of back-and-forth flights, a Stay grounded campaign allowed me to test out long-distance train travel, something I’d always felt drawn to, at a price compatible with my student finances. Many train rides followed that first three-day trip, most of which along the same approximate route from Sweden through Denmark, Germany, Austria (or Switzerland) to Italy, or vice versa. Here’s a selection:]]></summary></entry><entry><title type="html">Jag har lyssnat på de senaste nyheterna om svenskt medborgarskap så att du slipper göra det</title><link href="https://harisont.github.io/2026/04/02/avborgarskap.html" rel="alternate" type="text/html" title="Jag har lyssnat på de senaste nyheterna om svenskt medborgarskap så att du slipper göra det" /><published>2026-04-02T00:00:00+00:00</published><updated>2026-04-02T00:00:00+00:00</updated><id>https://harisont.github.io/2026/04/02/avborgarskap</id><content type="html" xml:base="https://harisont.github.io/2026/04/02/avborgarskap.html"><![CDATA[<p>Den 31 mars har Sveriges Radio ett avsnitt av programmet <em>Det politiska spelet</em> som handlar om de nya kraven för den som vill bli svensk medborgare.
Avsnittet finns bara på appen<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>/<a href="https://www.sverigesradio.se/avsnitt/625-det-ska-bli-svarare-att-bli-svensk">hemsidan</a> Sveriges Radio (varför!? <a href="https://vanliga-fragor-svar.sverigesradio.se/guide/varfor-slapper-ni-vissa-avsnitt-och-titlar-bara-i-appen">Läs själv och se om det mejkar sense</a>), vilket irriterar mig, men eftersom jag påverkas direkt bestämde jag mig för att lyssna ändå.
Här är de senaste nyheterna.
Säg gärna till om det finns några språkfel, annars bevisar det här inlägget viss samhällskunskap men kanske inga tillräckligt bra språkförmågor.</p>

<h2 id="skärpta-krav">Skärpta krav</h2>

<p>De nya regler innebär att:</p>

<ol>
  <li>det ska ta <strong>längre tid (8 istället för 5 år)</strong> innan den som vill bli medborgare får ansöka (det finns vissa undantag, men de förtydligas inte i programmet, förutom det som nämns i punkt 3)</li>
  <li>det ska införas <strong>språk- och samhällskunskapskrav</strong></li>
  <li>det kommer <strong>mer specifika regler för den som har begått brott</strong> (har man gjort det så måste man vistas i Sverige längre. Hur mycket längre beror på vad det är för brott)</li>
</ol>

<p>Dessa regler börjar gälla den <strong>6 juni 2026</strong> (Nationaldagen), <strong>utan</strong> att det ska finnas en <strong>övergångsperiod</strong> för de ansökande som redan väntar på ett beslut (just nu är den genomsnittliga väntetiden 4.5 år. De flesta sökande just nu är Syrier som kom till Sverige 2015).</p>

<p>Enligt SR beror de skärpta kraven på att regeringen uppfattar det nuvarande läget som “väldigt kravlöst” och tycker att medborgarskapet ska vara en “belöning efter att man har ansträngt sig”.
Samtidigt rapporterar SR att ingen forskning tyder på att integrationen har blivit bättre i de länder som redan infört skärpta krav, såsom Danmark.</p>

<h2 id="möjlighet-att-återkalla-svenskt-medborgarskap">Möjlighet att återkalla svenskt medborgarskap</h2>
<p>Dessutom vill regeringen att det ska vara möjligt att återkalla det svenska medborgarskapet,<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> förutsatt att medborgaren har <strong>dubbelt medborgarskap</strong> och:</p>

<ul>
  <li>har <strong>ljugit eller mutat någon</strong> hos Migrationsverket i samband med sin medborgarskapsansökan</li>
  <li>har begått något <strong>allvarligt brott</strong>, såsom terrorism, sabotage eller mord inom ramen för gängkriminalitet.</li>
</ul>

<p>Det här mer återkallande tar längre tid för att det innebär ändringar i grundlagen.
Om jag förstår det rätt kommer riksdagen att fatta ett första beslut om cirka en månad. 
Den andra och slutliga omröstningen i riksdagen ska bara ske efter valet (September 2026).</p>

<h2 id="vad-säger-oppositionen">Vad säger oppositionen?</h2>
<ul>
  <li><strong>M och V</strong> är <strong>emot</strong> båda förslagen</li>
  <li><strong>C och S</strong> är mer eller mindre <strong>för</strong>, men S ville att det skulle finnas en övergångsperiod.</li>
</ul>

<hr />

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>Proprietär app som kräver Google Play Services. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>Egentligen är det i nuläget inte helt omöjligt att förlora sitt svenskt medborgarskap, men inte pga brott. Återkallandet kan bara gälla dubbla medborgare som är födda och alltid levt utomlands och inte kan bevisa att de har något band med Sverige. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Arianna Masciolini</name><email>harisont@fripost.org</email></author><summary type="html"><![CDATA[Den 31 mars har Sveriges Radio ett avsnitt av programmet Det politiska spelet som handlar om de nya kraven för den som vill bli svensk medborgare. Avsnittet finns bara på appen1/hemsidan Sveriges Radio (varför!? Läs själv och se om det mejkar sense), vilket irriterar mig, men eftersom jag påverkas direkt bestämde jag mig för att lyssna ändå. Här är de senaste nyheterna. Säg gärna till om det finns några språkfel, annars bevisar det här inlägget viss samhällskunskap men kanske inga tillräckligt bra språkförmågor. Proprietär app som kräver Google Play Services. &#8617;]]></summary></entry><entry><title type="html">Sulla Svezia, dalla Svezia: reimpatri involontari</title><link href="https://harisont.github.io/2026/02/13/glaciale.html" rel="alternate" type="text/html" title="Sulla Svezia, dalla Svezia: reimpatri involontari" /><published>2026-02-13T00:00:00+00:00</published><updated>2026-02-13T00:00:00+00:00</updated><id>https://harisont.github.io/2026/02/13/glaciale</id><content type="html" xml:base="https://harisont.github.io/2026/02/13/glaciale.html"><![CDATA[<p>Da qualche mese a questa parte ho ripreso a svegliarmi al suono della radio (radio svedese, s’intende).
Stamattina, il primo canale ha fatto giungere alle mie orecchie quello che potrebbe sembrare un incubo del dormiveglia: l’Agenzia Immigrazione (Migrationsverket) ha ordinato la deportazione di un bimbo di origine Iraniana i cui genitori sono in possesso di un regolare permesso di soggiorno in Svezia.</p>

<p>Come spesso accade specialmente per quel che riguarda le questioni migratorie, Radio Sweden på lätt svenska, vero servizio pubblico e baluardo dell’integrazione in questo paese, ha riportato la notizia in modo chiaro e sintetico (<a href="https://www.sverigesradio.se/artikel/bebisen-emanuel-ska-utvisas-fran-sverige-till-iran">qui</a> audio e trascrizione della trasmissione). 
Riassumo ulteriormente aggiungendo qualche commento personale.</p>

<p>Emanuel è un bambino di otto mesi nato in Svezia da genitori iraniani, che vivono qui grazie ad un permesso di lavoro.
Sua madre, Masoumeh, è una di quelle infermiere che lo stato svedese dovrebbe tenersi strette, data la carenza di personale nel settore (<a href="https://www.bohuslaningen.se/asikt/insandare/c-arbetslosheten-riskerar-att-oka-nar-regeringen-utvisar-arbetskraft.2d61cd09-54de-4a17-bf0e-f9b8f6726ceb">articolo di ieri</a>).
Difatti, l’ordine di deportazione è relativo solamente al figlio.</p>

<p>Come si arriva ad una decisione del genere?
Applicando le nuove regole in materia di spårbyte.
La parola <em>spårbyte</em> (“cambio di binario”) viene usata per riferirsi ad una possibilità che, fino a poco tempo fa, veniva offerta ai richiedenti asilo in caso di respingimento della loro domanda: quella di richiedere, al posto dello status di rifugiati, un semplice permesso di lavoro.
Proprio quello che ha ottenuto Masoumeh nel 2022.
Di recente è però entrata in vigore una legge che non solo elimina questa opzione per quel che riguarda le nuove richieste di asilo, ma impedisce anche di concedere il permesso di soggiorno ai familiari di chi ha già completato questo processo, indipendentemente da età e luogo di nascita.</p>

<p>In questi casi, stando ad altri regolamenti, il Migrationsverket è tenuto a tenere in conto anche le conseguenze di un’eventuale deportazione sulla vita del bambino.
Interpellato sulla questione, un portavoce dell’Agenzia risponde non senza un certo trasporto (io mi sarei aspettata un tono un più freddo, se non addirittura <em>glaciale</em>) che sì (“Ja!”), in questa vicenda, i regolamenti sullo spårbyte hanno un peso maggiore rispetto al benessere di Emanuel.
Concedendogli il beneficio del dubbio, ci si chiede se sia ansioso di mettere in luce i paradossi del sistema.</p>

<p>La famiglia, peraltro cristiana e giustamente preoccupata dall’idea di un reimpatrio, ha ovviamente fatto ricorso.
Nel frattempo, fortuna<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> vuole che la situazione d’instabilità in Iran renda temporaneamente inapplicabile la decisione del Migrationsverket.</p>

<h3 id="nota-sulla-traduzione-della-parola-migrationsverket">Nota sulla traduzione della parola “Migrationsverket”</h3>
<p>Ho detto a un mio collega “Avrei bisogno<br />
del tuo bel bilinguismo bilanciato”<br />
Lui con la testa di sì ha fatto segno<br />
ed io, cambiando lingua, ho domandato:</p>

<p>“Hur skulle du benämna på italienska<br />
en myndighet som anser att det är rimligt<br />
att utvisa småbarn ensamma helt plötsligt<br />
bara för deras rötter är iranska?”</p>

<p>Han såg förvånad ut och sade<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> “<em>-verket</em><br />
lo chiamerei <em>agenzia</em>, <em>ufficio</em>, anche <em>ente</em><br />
och <em>Migration</em>, be’, non ci vuole niente”.<br />
Jag svarade “Javisst, ja, tack så mycket,</p>

<p>men om jag säger <em>Ente Immigrazione</em><br />
saknas det inte någon preposizione?”<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup><br />
<em>Per</em>? <em>Dell’</em>? Purtroppo in questa situazione<br />
<em>contro</em> ci pare la migliore opzione.</p>

<hr />

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>…nei vari <a href="https://www.dizionario-latino.com/dizionario-latino-italiano.php?lemma=FORTUNA100">sensi latini del termine</a>. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p><strong>traduzione dallo svedese</strong>: “Come chiameresti, in italiano, un ente che all’improvviso ritiene opportuno deportare bambini piccoli, da soli, solo perché di origini iraniane?” È apparso sorpreso e ha detto… <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:3" role="doc-endnote">
      <p><strong>traduzione dallo svedese</strong>: Ho risposto, certo, sì, grazie tante, ma se dico <em>Ente Immigrazione</em> non manca una qualche preposizione? <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Arianna Masciolini</name><email>harisont@fripost.org</email></author><summary type="html"><![CDATA[Da qualche mese a questa parte ho ripreso a svegliarmi al suono della radio (radio svedese, s’intende). Stamattina, il primo canale ha fatto giungere alle mie orecchie quello che potrebbe sembrare un incubo del dormiveglia: l’Agenzia Immigrazione (Migrationsverket) ha ordinato la deportazione di un bimbo di origine Iraniana i cui genitori sono in possesso di un regolare permesso di soggiorno in Svezia.]]></summary></entry><entry><title type="html">2025 stdin</title><link href="https://harisont.github.io/2025/12/31/stdin.html" rel="alternate" type="text/html" title="2025 stdin" /><published>2025-12-31T00:00:00+00:00</published><updated>2025-12-31T00:00:00+00:00</updated><id>https://harisont.github.io/2025/12/31/stdin</id><content type="html" xml:base="https://harisont.github.io/2025/12/31/stdin.html"><![CDATA[<p>As the year ends, I put toghether the usual collection of books, movies and podcasts that accompanied me throughout the last 12 months, this time without much comment.
Items in bold are not necessarily “favorites”, but rather works that, for one reason or another, gave me more food for thought than others.</p>

<h2 id="books">Books</h2>
<p>I read all sorts of stuff this year.
Interestingly, all three books that prompted the most reflection were (arguably) classics, and two of them I had already read in high school.
Other than these, the comics were all quite good and most of the nonfiction was definitely worth reading.
The literature? 
A bit more hit-or-miss.</p>

<ol>
  <li>Neil Packer, <em>La parabola del panificio indipendente</em>, Carmelozampa 2024</li>
  <li>Niklas Zechner, <em>Betraktelser om ord och deras ursprung</em>, 2024 draft</li>
  <li><em>Crónicas latinoamericanas</em> (antología editada por Michaela Schwermann), Reclam 2020</li>
  <li><em>Racconti italiani del XX secolo</em> (antologia a cura di Judith Krieg), Reclam 2022</li>
  <li>Junji Ito, <em>Junji Ito’s cat diary: Yon &amp; Mu</em>, Kodansha 2021</li>
  <li>Dennis Yi Tenen, <em>Teoria letteraria per robot</em>, Bollati Boringhieri 2024</li>
  <li>Daniel Pennac, <em>Signor Malaussène</em>, Feltrinelli 1995/2007</li>
  <li>Jón Stefánsson, <em>Crepitio di stelle</em>, Iperborea 2023</li>
  <li>Stig Dagerman, <em>Dagsedlar. Publicerade i Dagstidningen Arbetaren 1944-1954</em>, Litteraturbanken 2025</li>
  <li>Mario Lodi e i suoi ragazzi, <em>Cipí</em>, Einaudi Ragazzi 1992 [reread]</li>
  <li><strong>Chinua Achebe, <em>Things fall apart</em>, Penguin Classics 1958/2001</strong></li>
  <li>Wisława Szymborska, <em>Come vivere in modo più confortevole</em>, Adelphi 2016</li>
  <li>Renata Pucci di Benischi, <em>La lingua di pezza</em>, Sellerio 2006</li>
  <li>Dario Bressanini, <em>Fa bene o fa male? Manuale di autodifesa alimentare</em>, Mondadori 2023</li>
  <li>Daniel Pennac, <em>La passione secondo Therese</em>, Feltrinelli 1999/2001</li>
  <li>Daniel Pennac, <em>Ultime notizie dalla famiglia</em>, Feltrinelli 1997</li>
  <li>Andrea Berardini, <em>A Stoccolma - da August Strindberg a Stieg Larsson</em>, Giulio Perrone editore 2020</li>
  <li>Lucy Knisley, <em>Kid gloves - nine months of careful chaos</em>, First Second 2019</li>
  <li>Lucy Knisley, <em>Relish - my life in the kitchen</em>, First Second 2013</li>
  <li>Zoe Thorogood, <em>It’s lonely at the centre of the Earth</em>, Image Comics Inc. 2023</li>
  <li>Anneli Furmark &amp; Monika Steinholm, <em>Närmare kommer vi inte</em>, Wilbom Books 2018</li>
  <li>Tove Jansson, <em>Resa med lätt bagage</em>, Förlaget 1987/2025</li>
  <li>Darryl Cunningham, <em>Putin’s Russia - the rise of a dictator</em>, Myriad editions 2021</li>
  <li>Giuliano and Larissa Bonfante, <em>The Etruscan language - an introduction</em>, Manchester University Press 1983</li>
  <li>David Grossman, <em>Caduto fuori dal tempo</em>, Mondadori 2012</li>
  <li>Rek Bell, <em>Wiktopher</em>, Hundred Rabbits 2023</li>
  <li><strong>Antonio Gramsci, <em>Lettere dal carcere (1926-1937)</em>, Liber Liber 2017 [reread]</strong></li>
  <li>Zhu Xiao-Mei, <em>Il pianoforte segreto</em>, Bollati Boringhieri 2018</li>
  <li>Liz Prince, <em>Tomboy</em>, Zest books 2014</li>
  <li>Clara Törnvall, <em>Vanliga människor - autistens guide till galaxen</em>, Natur &amp; Kultur 2023</li>
  <li>Emily M. Bender &amp; Alex Hanna, <em>The AI con - How to fight big tech’s hype and create the future we want</em>, The Bodley Head 2025</li>
  <li>Clara Törnvall, <em>Autisterna - om kvinnor på spektrat</em>, Natur &amp; Kultur 2021</li>
  <li><strong>Alessandro Manzoni, <em>I promessi sposi</em> (versione “quarantana” 1840-42) letto da Paolo Poli, Emons Audiolibri 2015 [reread (sort of)]</strong></li>
  <li>Åke Hodell, <em>Resan till Rom med Gunnar Ekelöf</em> (Rönnells Amtikvariat 2020)</li>
</ol>

<h2 id="movies">Movies</h2>
<p>Somehow I managed not to watch a single bad movie this year, and more than half are really good.</p>

<ol>
  <li><a href="https://harisont.github.io/lists/serious_animation.html#the-most-precious-of-cargoes-2024"><em>The most precious of cargoes</em> (2024)</a></li>
  <li><em>Flickorna</em> (1968)</li>
  <li><em>Sima’s song</em> (2024)</li>
  <li><em>Kyiv Soloists</em> (2025)</li>
  <li><em>All we imagine as light</em> (2024)</li>
  <li><strong><em>Trains</em> (2024)</strong></li>
  <li><a href="https://harisont.github.io/lists/serious_animation.html#memoir-of-a-snail-2024"><em>Memoir of a snail</em> (2024)</a></li>
  <li><strong><em>Pigen med nålen</em> (2024)</strong></li>
  <li><em>Torsk på Tallinn</em> (1999)</li>
  <li><em>Culpa cero</em> (2024)</li>
  <li><em>Non essere cattivo</em> (2015)</li>
  <li><em>Young hearts</em> (2025)</li>
  <li><em>A complete unknown</em> (2024)</li>
  <li><strong><em>Johnny Stecchino</em> (1991) [rewatch]</strong></li>
  <li><em>La vita è bella</em> (1997) [rewatch]</li>
  <li><strong><em>Det var bara en olycka</em> (2025)</strong></li>
</ol>

<h2 id="podcasts">Podcasts</h2>
<p>I continue to listen to most of the <a href="https://harisont.github.io/2024/12/31/laconici.html#podcasts">podcasts from last year</a>, minus the ones that have been exclusive to a specific platform, plus a couple new ones.
Some honorable mentions, old and new:</p>

<ul>
  <li><em>Il mondo</em> (Internazionale)</li>
  <li><strong><em>P3 Dystopia</em> (Sveriges Radio)</strong></li>
  <li><em>Radio ambulante</em> (Radio Ambulante Studios, NPR)</li>
  <li><em>Språket</em> (Sveriges Radio)</li>
  <li><em>Saussure e grida</em> (Irene Lami)</li>
  <li><strong><em>Sold a story</em> (APM Reports)</strong></li>
</ul>]]></content><author><name>Arianna Masciolini</name><email>harisont@fripost.org</email></author><summary type="html"><![CDATA[As the year ends, I put toghether the usual collection of books, movies and podcasts that accompanied me throughout the last 12 months, this time without much comment. Items in bold are not necessarily “favorites”, but rather works that, for one reason or another, gave me more food for thought than others.]]></summary></entry><entry><title type="html">Closing the circle: bikepacking the Danish side of Kattegatt</title><link href="https://harisont.github.io/2025/12/27/ctc.html" rel="alternate" type="text/html" title="Closing the circle: bikepacking the Danish side of Kattegatt" /><published>2025-12-27T00:00:00+00:00</published><updated>2025-12-27T00:00:00+00:00</updated><id>https://harisont.github.io/2025/12/27/ctc</id><content type="html" xml:base="https://harisont.github.io/2025/12/27/ctc.html"><![CDATA[<p>Last year, my friend C. and I went on a long-awaited long-distance bikepacking trip, cycling the entire Kattegattleden from Göteborg to Helsingborg.
This year, we decided to close the circle and bike the Danish side of Kattegatt.</p>

<table>
  <thead>
    <tr>
      <th>18-27 July 2024</th>
      <th>9-17 July 2025</th>
      <th>2024 + 2025</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/2024.jpg" alt="2024 track" /></td>
      <td><img src="https://harisont.github.io/assets/img/ctc/2025.jpg" alt="2025 track" /></td>
      <td><img src="https://harisont.github.io/assets/img/ctc/2024-2025.jpg" alt="2024 and 2025 tracks" /></td>
    </tr>
  </tbody>
</table>

<p>Last year, I wrote a proper <a href="https://harisont.github.io/cykelturism/kattegattleden.html">blog post (in Swedish)</a> with an interactive map about the experience.
This year, partly inspired by the logbooks I read at 100r.co (e.g. <a href="https://100r.co/site/victoria_to_sitka_logbook.html">this one</a>), partly pushed by time constraints, I decided to keep things a little bit simpler and transcribe the notes I wrote in my pocket notebook while on the road, publishing them almost unedited (code switching included) along with some photos I took during the trip, also minimally postprocessed.
English translations of the code-switched segments (there’s a lot of Italian and Swedish in the mix) are available <a href="#translations">at the bottom of this page</a>.</p>

<h2 id="giorno-1-göteborg---somewhere-20-km-south-of-frederikshavn"><em>Giorno</em><sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> 1: Göteborg - somewhere 20 km south of Frederikshavn</h2>

<table>
  <thead>
    <tr>
      <th>Boarding the ferry to Frederikshavn</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/1-ferry.JPG" alt="Our two bikes queueing behind two motorcycles at the Frederikshavn ferry terminal in Göteborg" /></td>
    </tr>
  </tbody>
</table>

<p>Lunch &amp; MTG on the ferry to Frederikshavn.</p>

<p>Short ride to an epic free campsite, Professorens plantage, with three wooden shelters (one with a view!), fireplaces and tables.
The beach, which is 400 m away, is grey and covered of beautiful shells of different kinds; some look like the best ones in Lido Rossello - never seen in Scandinavia before!
The sand is thin, like, <em>la spiaggia di velluto</em><sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> di Senigallia.
The only drawback of this place is the lack of running water, otherwise idyllic.</p>

<table>
  <thead>
    <tr>
      <th>Professorens plantage</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/1-campsite.JPG" alt="Some trees in the early evening light" /></td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th>The beach</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/1-beach.JPG" alt="Shells on some gray-ish sand" /></td>
    </tr>
  </tbody>
</table>

<h2 id="giorno-2-idyllic-campsite---egense"><em>Giorno</em><sup id="fnref:1:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> 2: idyllic campsite - Egense</h2>
<p>A deer peeped out from a field!
This was while we were biking until the next town, Aså (funny name because it’s the reverse of “Åsa”, which was one of our first stops on the Swedish side of Kattegatt).
We had lunch with supermarket food there and played MTG in the harbor, which had a nice clean toilet with room to change clothes, as well as tables in the shadow.
Here a Venezuelan (or was he Colombian?) guy also explained us that, in Denmark, a sign with a daisy means a bike road.
We then walked to the nearby beach and took a swim, or should I say a stroll? in the warm water between a sand bank and another.</p>

<table>
  <thead>
    <tr>
      <th>A house in (as far as I remember) Hals</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/2-kattegatt.JPG" alt="Part of the facade of a white house with a triangular roof. The word &quot;KATTEGATT&quot; is written on top of it." /></td>
    </tr>
  </tbody>
</table>

<p>We then proceeded to a nice small town called Hals, where we had decent pizza and subsequently took the ferry. 
Immediately after there is a paid but incredibly cheap camping. 
Funnily enough, though, children have to pay to use the playground (but not the pool!) for an hour. 
Mah.</p>

<h2 id="giorno-3-egense---hadsund"><em>Giorno</em><sup id="fnref:1:2" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> 3: Egense - Hadsund</h2>
<p>Woke up in the cold (maybe it had rained a little) and ate inside, charging my powerbank - good to be at a paid camping.</p>

<p>Long lunch stop next to the supermarket in Bælum, a very boring place with not even a table.
For the whole time we were there, the road was calling me.
But, already for the second time, the supermarket came with a <em>pantställe med vattenkran, vilket är ganska bra för att diska</em><sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>.</p>

<table>
  <thead>
    <tr>
      <th>The awesomest bike lane of Denmark</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/3-awesomest.JPG" alt="A straight bike lane surrounded by three" /></td>
    </tr>
  </tbody>
</table>

<p>And after Bælum, the most awesomest bike lane of Denmark begins.
A bike-only straight road in the middle of nowhere, only trees and fields (of course, we learned it is built on top of an old railway).
After a few kms of this, we saw a sign for the Danish equivalent of <em>öppen gård</em><sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup> called Solpletten and decided to take a look.
It’s a beautiful place to relax, built by volunteers from all over the works, full of art installations and playful things, such as a drum set made of kitchen pots and other recycled materials. 
We stayed for a bit and played MTG while snacking.</p>

<table>
  <thead>
    <tr>
      <th>Snapshots from Solpletten</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/3-drums.JPG" alt="A drum set made of old kitchen pots and other recycled materials" /></td>
    </tr>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/3-blackboard.JPG" alt="Messages left by travellers on a big blackboard" /></td>
    </tr>
  </tbody>
</table>

<p>We then continued to Hadsund, where we set up the tent in another even cheaper <em>obemannad</em><sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup> (!) camping/hostel with only one shower but surprisingly clean toilets.
Then we went into town for dinner.
C. had a disgusting calzone with spaghetti.
I had a delicious pita with chicken.</p>

<h2 id="day-4-hadsund---fjellerup">Day 4: Hadsund - Fjellerup</h2>
<p>Longest stretch so far, partly because of the grey, colder weather that doesn’t invite long breaks outside. 
The ferry between Udbyhøj and Udbyhøj Syd is twice as expensive as the one between Hals and Egense, but at least we got candy when coming aboard.
We chose a camping spot right outside of Fjellerup because:</p>

<ol>
  <li>we read it was free but had toilets and running water</li>
  <li>we saw pictures of big wooden instruments (various percussions) in the area</li>
  <li>the village has a bakery, which we thought could be good for breakfast</li>
  <li>we were expecting rain and we thought put the tent, without the waterproof layer, inside one of the wooden shelters and use it as a mosquito net.</li>
</ol>

<p>All of the above were true and some instruments even sounded good, excepts it didn’t rain in the end.
It was a very sweaty hot-cold night, but we still managed to sleep much longer than usual.</p>

<table>
  <thead>
    <tr>
      <th>Some of the musical instruments available in the area</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/4-instruments.JPG" alt="A group of wooden musical instruments in a green area" /></td>
    </tr>
  </tbody>
</table>

<p>We camped next to a Kurdish family of four (with two small children) and a Danish motorcyclist who was gone before we even woke up.</p>

<h2 id="day-5-fjellerup---fornæs">Day 5: Fjellerup - Fornæs</h2>
<p>10 km from Fjellerup is Bønnerup Strand.
We happened to arrive there during their <em>havnefest</em>: live music, food, beer, inflatables for children and a small market.
Some kids dressed as pirates came out running from a boat with a pirate flag, presumably from another village.
We had to stay.
We had delicious fish and shared a beer while listening to the rock band that was playing. 
The lady who sat in front of us was very into the music.</p>

<table>
  <thead>
    <tr>
      <th>A boat sailing in the vicinity of Fornæs</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/5-boat.JPG" alt="A white sailboat under a cloudy sky" /></td>
    </tr>
  </tbody>
</table>

<p>The day’s ride was cut short by the lack of affordable campings with showers, which were needed at that point, in the area we were aiming for.
We decided that our best options was to stop before Grenå, at a camping called Fornæs Strand Camping.
It was still a bit too expensive, but it has excellent services (although there could be more toilets and dustbins) and is right by the sea.
We took an evening swim followed by a hot shower.
There was even a hairdryer.</p>

<p>Then we were attacked by <del>damn helicopters</del> flying beetles while we were having dinner outsides.
They all woke up at once at <em>skymning</em><sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">6</a></sup>.
We fled to some slightly more sheltered tables with <em>belysning</em><sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">7</a></sup>, far from the bushes were they seem to live, and played MTG.
When we came back to the tent, they were gone, <em>tack och lov</em><sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">8</a></sup>.</p>

<table>
  <thead>
    <tr>
      <th>The quiet before the helicopter attack</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/5-pre-helicopter.JPG" alt="Silhouettes of trees and bushes against the horizon, at dusk" /></td>
    </tr>
  </tbody>
</table>

<h2 id="day-6-fornæs---femmøller">Day 6: Fornæs - Femmøller</h2>

<table>
  <thead>
    <tr>
      <th>Early morning guest</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/6-bird.JPG" alt="Silhouette of a little bird standing on the top of our tent seen from inside the tent" /></td>
    </tr>
  </tbody>
</table>

<p>Pleasant temperature throughout the night for the first time, but hot in the morning.
We woke up early.
C. is sleeping outside the tent while I am writing this.
I might go and start unmounting the tent while she wakes up.</p>

<p>We left quite late (after 12:00) and biked to , the largest town so far.
At this time of the year, it seems pretty touristic, but also genuinely pretty.
We took a short walk in the town centre, then tried to go to a beach to take a swim but left - it was too crowded and not as nice as the town itself.</p>

<p>We continued for a short bit until we found a large <em>obemannad butik</em><sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">9</a></sup>.
So far, we had only seen <em>kartofler och brænsle</em><sup id="fnref:10" role="doc-noteref"><a href="#fn:10" class="footnote" rel="footnote">10</a></sup> in places of this kind, but this one had lots of fruit and vegetables.
We got some strawberries.
They were juicy, almost as good as the Swedish ones.
Around there, we also briefly stopped to take a look at a privately owned manor house.</p>

<p>Then we went quite a long, relatively hilly stretch.
The closer we got to Ebeltoft, the more beautiful the countryside looked.
Ebeltoft itself seems like the most charming little town ever, but we couldn’t stay very long because it was getting late and the camping there was as expensive as the area was pretty.
We just went to the centre and ate dinner at a Sino-Japanese place.
I had yummy seafood, which has become the basis of our diet during this trip, even when we assemble our own meals with supermarket stuff (in those cases, it’s smoked fish).</p>

<table>
  <thead>
    <tr>
      <th>Sunset during the bike ride from Ebeltoft to Femmøller</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/6-sunset.JPG" alt="Sunset on the sea" /></td>
    </tr>
  </tbody>
</table>

<p>We were tired at this point, but we continued to the <em>shelterplats</em><sup id="fnref:11" role="doc-noteref"><a href="#fn:11" class="footnote" rel="footnote">11</a></sup> in Femmøller.
It was a beautiful ride.
I commented that I’m having more fun than last year, because I’m more relaxed now that it isn’t my first time cycling such a long distance.
We mounted the tent inside of a shelter when we arrived as there was no space around it and no other camping spot nearby, but I didn’t really like the place we had ended up in.</p>

<h2 id="day-7-femmøller---århus---havnebyen-in-odden">Day 7: Femmøller - Århus - Havnebyen in Odden</h2>
<p>This day was tough.</p>

<p>Even though the spot we slept at is quite popular for hiking (it is the starting point of a foot path to some “mountain”), I kind of hate it. 
I slept badly and woke up way too early.
The trash bin - forgotten for however long - was right behind our shelter, the toilet was disgusting and, in general, the nature around us was just not very clean.
At least there was running water, I guess.
I read my book in the sun while waiting for C. to wake up, then we ate breakfast and got going.</p>

<p>On the way to Århus, we only really stopped once, at a random beach, for some time by the sea and an ice cream. 
That place felt somehow mediterranean: the type of sand, the temperature of the water, its color…
There were two little brothers <em>con le facce serie serie, da adulti. Quasi un po’ comici. Con il più grande abbiamo giocato a schizzarci.</em><sup id="fnref:12" role="doc-noteref"><a href="#fn:12" class="footnote" rel="footnote">12</a></sup></p>

<p>We tried to follow the signs for National Bike Route 5 ‘cause all batteries were about to die, even though we had already noticed that the signage (as well as the bike infrastructure at large) is not quite at the same level as on the Swedish side.
Even with both of us paying attention, we went the wrong way and had to check the map a couple times, eventually ending up at a nasty crossing.
So overall, the ride to Århus will not be one of my good memories from this trip.</p>

<table>
  <thead>
    <tr>
      <th>Arriving in Århus</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/7-arrival.JPG" alt="Some rails in the foreground, some buildings of Århus in the background" /></td>
    </tr>
  </tbody>
</table>

<p>But the Route 5 bike lane entering Århus is quite spectacular, even more so in the thin fog that was surrounding the harbor.
The city seems <em>najs</em><sup id="fnref:13" role="doc-noteref"><a href="#fn:13" class="footnote" rel="footnote">13</a></sup> and has a jazz festival that takes place more or less in parallel with Umbria Jazz [my hometown’s very own Jazz festival].
I would have wanted to explore more and maybe stay an extra day, but we had a ferry to catch in a couple hours and batteries were running out, so we went to a cafe and played MTG while waiting for them to recharge enough to get to the boarding point and show the tickets.
For once, I won twice in a row.
I kinda like the two “travel decks” we brought, balanced and not too important to us (writing this on the train back after intense rain, I’m even more glad that we opted for them).
After the games, a quick stop at Lidl and off to the harbor, which is quite far from the city itself.</p>

<table>
  <thead>
    <tr>
      <th>Exploring Århus</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/7-aarhus.JPG" alt="A colorful building against a gray sky" /></td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th>A quick peek inside a church in Århus</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/7-church.JPG" alt="Detail of a fresco inside a church" /></td>
    </tr>
  </tbody>
</table>

<p>The whole time, the sky looked menacing, but it still didn’t rain when we arrived to Själland, <em>o come si scrive</em><sup id="fnref:14" role="doc-noteref"><a href="#fn:14" class="footnote" rel="footnote">14</a></sup>.
<em>Ci siamo dirette subito a uno shelterplats, che con mia grande sorpresa dava direttamente sulla marina, ma tutti e tre i rifugi erano occupati.</em>
<em>Ho chiesto a una coppia di ragazzi danesi se fosse ok piantare una tenda lì vicino e ci hanno detto di sì, invitandoci a sederci con loro una volta che la pioggia - ormai visibile a una certa distanza - fosse arrivata.</em>
<em>Abbiamo montato la tenda in fretta e furia, cercato di proteggere tutte le nostre borse dall’acqua e accettato l’invito.</em>
<em>Ci hanno raccontato</em><sup id="fnref:15" role="doc-noteref"><a href="#fn:15" class="footnote" rel="footnote">15</a></sup> that they were exploring the region on a dingy!
They were very friendly, but it was hard for me to keep the conversation going.
After a while, since the rain wasn’t coming, we moved to a picnic table and tried to eat.
Needless to say, we were interrupted by a torrential downpour.
We withdrew in their shelter a second time.
When the intensity of the rain - temporarily - diminished, we ran back to the tent and went to bed.
Despite the intense rain and a minor leak from the ventilation, that we initially forgot to close properly, we got some good sleep.</p>

<table>
  <thead>
    <tr>
      <th>Rain coming</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/7-rain-coming.JPG" alt="A small marina against a stormy sky" /></td>
    </tr>
  </tbody>
</table>

<h2 id="day-8-havnebyen---liseleje">Day 8: Havnebyen - Liseleje</h2>

<table>
  <thead>
    <tr>
      <th>Outside of a church near Havnebyen</th>
      <th>Inside of a church near Havnebyen</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/8-church-out.JPG" alt="Entrance of a bright red church" /></td>
      <td><img src="https://harisont.github.io/assets/img/ctc/8-church-in.JPG" alt="Inside of a church. Someone is playing a small organ" /></td>
    </tr>
  </tbody>
</table>

<p>We left The Harbor Village right after breakfast and started zigzagging through Odden, back and forth from a coast to another, approximately following National Bike Route 2.
The route is, again, relatively hilly for Danish standards and <em>le condizioni del manto stradale non sono sempre delle migliori.</em>
<em>Inoltre, i segnali sono - come anche altrove - talora fuorvianti.</em>
<em>Tuttavia, il panorama è piacevole e</em><sup id="fnref:16" role="doc-noteref"><a href="#fn:16" class="footnote" rel="footnote">16</a></sup> downhills are very rewarding.
<em>La mia tappa preferita è stata la prima.</em>
<em>Siamo state attratte dal colore rosso della chiesa di Odden, a poca distanza dal villaggio che avevamo appena lasciato, e abbiamo deciso di fermarci un attimo.</em><sup id="fnref:17" role="doc-noteref"><a href="#fn:17" class="footnote" rel="footnote">17</a></sup>
<em>Det var en perfekt stund.</em>
<em>Kyrkan är ganska vacker även på insidan och någon satt helt ensam och övade orgelmusik.</em><sup id="fnref:18" role="doc-noteref"><a href="#fn:18" class="footnote" rel="footnote">18</a></sup></p>

<table>
  <thead>
    <tr>
      <th>Two houses in a village between Havnebyen and Nykøbing S.</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/8-house.JPG" alt="Two traditional Danish houses. The yellow one on the left has a grass rooftop; the light blue one on the right has a very triangular roof and flowers in front of it" /></td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th>The part of the trip where you start feeling a bit tired…</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/8-skeleton.JPG" alt="A skeleton with a hat riding a bike in front of a house." /></td>
    </tr>
  </tbody>
</table>

<p><em>La seconda tappa (pranzo) l’abbiamo fatta a Nykøbing S. (una delle tante “Nykøbing” della Danimarca e, in generale, del nord Europa)</em>.
<em>La cittadina è piccola ma graziosa e con un minimo di vita culturale</em>,<sup id="fnref:19" role="doc-noteref"><a href="#fn:19" class="footnote" rel="footnote">19</a></sup> (<em>kulturhus med bibliotek t.ex.</em><sup id="fnref:20" role="doc-noteref"><a href="#fn:20" class="footnote" rel="footnote">20</a></sup>)
<em>ma ne abbiamo percorso la via principale sotto un cielo ancora minaccioso</em>.<sup id="fnref:21" role="doc-noteref"><a href="#fn:21" class="footnote" rel="footnote">21</a></sup></p>

<p><em>Arrivate a Rørvig abbiamo preso il battello per Hundested, dove abbiamo conosciuto un’altra ciclista probabilmente nostra coetanea diretta a Capo Nord in solitaria.</em><sup id="fnref:22" role="doc-noteref"><a href="#fn:22" class="footnote" rel="footnote">22</a></sup></p>

<p><em>L’ultima notte l’abbiamo passata al campeggio di Liseleje, compatto, carino e ben pensato.</em><sup id="fnref:23" role="doc-noteref"><a href="#fn:23" class="footnote" rel="footnote">23</a></sup></p>

<h2 id="giorno-9-liseleje---helsingør---helsingborg---göteborg"><em>Giorno</em><sup id="fnref:1:3" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> 9: Liseleje - Helsingør - Helsingborg - Göteborg</h2>
<p><em>Giornata lunghissima, sembrano almeno 3 giorni in uno!</em><sup id="fnref:24" role="doc-noteref"><a href="#fn:24" class="footnote" rel="footnote">24</a></sup>
We woke up earlier than usual (7:30) and decided to take the shortest path to Helsingør in order to have enough time to explore both the Danish town and its twin on the Swedish side.
Well, the shortest path isn’t the best path: much of it is a relatively fast road without any hint of a bike lane, which C. hated.
Aside from two very quick snack stops - one in Helsinge, one in the forest just out of the busy road - we did not really take any breaks.
Again, we were prepared for rain - it had rained heavily even the night before, but I was fast asleep and didn’t even notice - but the weather kept improving until it became perhaps the warmest day of the entire trip.</p>

<table>
  <thead>
    <tr>
      <th>Helsingør</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/9-side-street.JPG" alt="Narrow street of Helsingør" /></td>
    </tr>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/9-house.JPG" alt="Red traditional house in Helsingør" /></td>
    </tr>
  </tbody>
</table>

<p>Helsingør is really pretty.
It has a proper (Renaissance) castle, but I found its side streets to be the most charming.
On the other hand, it is <strong>very</strong> touristic and internationally so.
I heard at least 5 different foreign languages, the most prominent being of course Swedish.</p>

<table>
  <thead>
    <tr>
      <th>Leaving Denmark</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="https://harisont.github.io/assets/img/ctc/9-leaving.JPG" alt="The trail of the ferry to Sweden; Helsingør is visible in the background" /></td>
    </tr>
  </tbody>
</table>

<p>Helsingborg, which we reached by taking the totally <em>överdriven</em><sup id="fnref:25" role="doc-noteref"><a href="#fn:25" class="footnote" rel="footnote">25</a></sup> Øresundslinjen ferry (such a huge vessel for such a short distance!), has its points of interests too (such as Kärnan, a medieval tower), but feels like a much more normal/real place where I could actually live.
Its <em>rådhus</em><sup id="fnref:26" role="doc-noteref"><a href="#fn:26" class="footnote" rel="footnote">26</a></sup> looks like an even fancier version of the castle of Kviberg [it’s actually a group of barracks in the area where I live, but it really looks like a castle, see central photo <a href="https://harisont.github.io/postcards-from-gothenburg">here</a>] and many other buildings seem a bit copy-pasted from Göteborg, but the <em>kultur</em>-and-everything-else-_hus_<sup id="fnref:20:1" role="doc-noteref"><a href="#fn:20" class="footnote" rel="footnote">20</a></sup> (where I got ideas for future bike trips across Skåne) stands out.</p>

<p>We came back home with the good old Øresundståg.
The exchanges between two other passengers we were sharing the bike compartment with made the trip back anything but boring.
We arrived at 23:30 in a record-warm Göteborg night (some 23 degrees!) and I came home to an even warmer apartment, since I forgot to close the curtains upon leaving.
After a phone call to my parents and updating these notes, it is already 2:30.
Time to get some rest.</p>

<hr />

<h2 id="translations">Translations</h2>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p><em>giorno</em> (it): day <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:1:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a> <a href="#fnref:1:2" class="reversefootnote" role="doc-backlink">&#8617;<sup>3</sup></a> <a href="#fnref:1:3" class="reversefootnote" role="doc-backlink">&#8617;<sup>4</sup></a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p><em>la spiaggia di velluto</em> (it): the velvet beach <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:3" role="doc-endnote">
      <p><em>pantställe med vattenkran, vilket är ganska bra för att diska</em> (sv): <em>pantställe</em> with water tap, which is quite good for doing the dishes. A <em>pantställe</em> is a kind of recycling place where you return cans and plastic bottles and get your deposit back as a <em>pantkvitto</em>, a receipt you can use to pay for part of your groceries. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:4" role="doc-endnote">
      <p><em>öppen gård</em> (sv): open farm (a kind of farm that you can visit and that hosts a series of activities) <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:5" role="doc-endnote">
      <p><em>obemannad</em> (sv): unmanned <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:6" role="doc-endnote">
      <p><em>skymning</em> (sv): dusk <a href="#fnref:6" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:7" role="doc-endnote">
      <p><em>belysning</em> (sv): lighting <a href="#fnref:7" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:8" role="doc-endnote">
      <p><em>tack och lov</em> (sv): thank heavens <a href="#fnref:8" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:9" role="doc-endnote">
      <p><em>obemannad butik</em> (sv): unmanned shop <a href="#fnref:9" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:10" role="doc-endnote">
      <p><em>kartofler og brænsle</em> (da): potatoes and firewood <a href="#fnref:10" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:11" role="doc-endnote">
      <p><em>shelterplats</em> (da/sv): a camping spot with wooden wind shelters [the word, provided that is Danish, but my spelling is incorrect due to the influence of Swedish. The correct spelling is <em>shelterplads</em> <a href="#fnref:11" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:12" role="doc-endnote">
      <p><em>con le facce serie serie, da adulti. Quasi un po’ comici. Con il più grande abbiamo giocato a schizzarci</em> (it): with super serious facial expressions, like adults. Almost a bit comical. The older one and I played splashing each other <a href="#fnref:12" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:13" role="doc-endnote">
      <p><em>najs</em> (sv): nice <a href="#fnref:13" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:14" role="doc-endnote">
      <p><em>o come si scrive</em> (en): however you spell that [the correct Danish spelling is “Sjælland”] <a href="#fnref:14" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:15" role="doc-endnote">
      <p><em>Ci siamo dirette subito a uno shelterplats, che con mia grande sorpresa dava direttamente sulla marina, ma tutti e tre i rifugi erano occupati. Ho chiesto a una coppia di ragazzi danesi se fosse ok piantare una tenda lì vicino e ci hanno detto di sì, invitandoci a sederci con loro una volta che la pioggia - ormai visibile a una certa distanza - fosse arrivata. Abbiamo montato la tenda in fretta e furia, cercato di proteggere tutte le nostre borse dall’acqua e accettato l’invito. Ci hanno raccontato</em> (it): we went directly to a <em>shelterplats</em><sup id="fnref:11:1" role="doc-noteref"><a href="#fn:11" class="footnote" rel="footnote">11</a></sup>, which, to my surprise, overlooked the marina, but all three shelters were occupied. I asked a young Danish couple if it was ok to place our tent right there and they said yes. They also invited us to sit with them once the rain - now visible in the distance - would reach us. We rushed to set up the tent, tried to protect all of our bags from the water and accepted the invite. They told us <a href="#fnref:15" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:16" role="doc-endnote">
      <p><em>le condizioni del manto stradale non sono sempre delle migliori. Inoltre, i segnali sono - come anche altrove - talora fuorvianti. Tuttavia, il panorama è piacevole e</em> (it): the condition of the road surface is not always the best. In addition, the signs are sometimes misleading, as they are elsewhere. However, the scenery is pleasant and <a href="#fnref:16" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:17" role="doc-endnote">
      <p><em>La mia tappa preferita è stata la prima. Siamo state attratte dal colore rosso della chiesa di Odden, a poca distanza dal villaggio che avevamo appena lasciato, e abbiamo deciso di fermarci un attimo.</em> (it): My favorite stop was the first one we did. The red color of the church in Odden, close to the village we had just left, attracted our attention and we decided to stop there for a moment. <a href="#fnref:17" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:18" role="doc-endnote">
      <p><em>Det var en perfekt stund. Kyrkan är ganska vacker även på insidan och någon satt helt ensam och övade orgelmusik.</em> (sv): It was a perfect moment. The church is rather beautiful even inside and someone sat there alone and practiced music at the organ. <a href="#fnref:18" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:19" role="doc-endnote">
      <p><em>La seconda tappa (pranzo) l’abbiamo fatta a Nykøbing S. (una delle tante “Nykøbing” della Danimarca e, in generale, del nord Europa). La cittadina è piccola ma graziosa e con un minimo di vita culturale</em> (it): Our second stop was in Nykøbing S. (one of the many “Nykøbing” in Denmark and, in general, Northern Europe). The town is small but cute and has some amount of cultural life <a href="#fnref:19" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:20" role="doc-endnote">
      <p><em>kulturhus med bibliotek t.ex.</em> (sv): e.g. cultural centre with library <a href="#fnref:20" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:20:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:21" role="doc-endnote">
      <p><em>ma ne abbiamo percorso la via principale sotto un cielo ancora minaccioso</em> (it): but the sky was still stormy while we walked through the main street <a href="#fnref:21" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:22" role="doc-endnote">
      <p><em>Arrivate a Rørvig abbiamo preso il battello per Hundested, dove abbiamo conosciuto un’altra ciclista probabilmente nostra coetanea diretta a Capo Nord in solitaria.</em> (it): Once we arrived to Rørvig, we took the boat to Hundested, where we met another bikepacker who was likely our age, solo cycling to Cape North. <a href="#fnref:22" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:23" role="doc-endnote">
      <p><em>L’ultima notte l’abbiamo passata al campeggio di Liseleje, compatto, carino e ben pensato.</em> (it): We spent the last night at the camping in Liseleje, which is compact, nice and well designed. <a href="#fnref:23" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:24" role="doc-endnote">
      <p><em>Giornata lunghissima, sembrano almeno 3 giorni in uno!</em> (it): Such a long day, feels like at least 3 days in one! <a href="#fnref:24" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:25" role="doc-endnote">
      <p><em>överdriven</em> (sv): exaggerated <a href="#fnref:25" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:26" role="doc-endnote">
      <p><em>rådhus</em> (sv): city hall <a href="#fnref:26" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Arianna Masciolini</name><email>harisont@fripost.org</email></author><summary type="html"><![CDATA[Last year, my friend C. and I went on a long-awaited long-distance bikepacking trip, cycling the entire Kattegattleden from Göteborg to Helsingborg. This year, we decided to close the circle and bike the Danish side of Kattegatt.]]></summary></entry><entry><title type="html">Your own personal journal: DIY digital magazines with Percollate</title><link href="https://harisont.github.io/2025/11/30/hmm.html" rel="alternate" type="text/html" title="Your own personal journal: DIY digital magazines with Percollate" /><published>2025-11-30T00:00:00+00:00</published><updated>2025-11-30T00:00:00+00:00</updated><id>https://harisont.github.io/2025/11/30/hmm</id><content type="html" xml:base="https://harisont.github.io/2025/11/30/hmm.html"><![CDATA[<h6 id="in-italiano"><strong><a href="https://harisont.github.io/translations/hmm-it.html">in italiano</a></strong></h6>

<figure style="padding: 4%">
    <img src="/img/../assets/img/hmm/hmm9_pb.png" alt="A blog post from autonomin.fritext.org on my beloved giant e-reader" style="width:100%; padding:2%;" />
      
    <figcaption>A blog post from autonomin.fritext.org on my beloved giant e-reader</figcaption>
</figure>

<p>I’ve written about <a href="https://harisont.github.io/2022/03/05/rss-en.html">the beautiful simplicity of RSS</a>, as well as about <a href="https://harisont.github.io/2025/02/27/webruary.html">the giant pile of web content it led me to accumulate</a>.
Earlier this year, I finally quit that hoarding habit and came up with a new way to read the web that seems to work for me: DIYing a personal digital magazine.
I compile each issue strictly <em>after</em> I’m done reading the previous one, and I’m already on number 9.
Here’s how I make my magazines, and how you can easily make one for yourself.</p>

<p>First, you will need a way to find content for you magazine. 
RSS, through which I subscribe to all sorts of blogs and slow news websites, is still my top source for this, but lots of interesting stuff also comes to me via friends, family and colleagues on various messaging platforms and now also <a href="https://mstdn.social/@harisont">Mastodon</a>.</p>

<p>That means I also need somewhere to temporarily store links from the various sources. 
I currently use <a href="https://apps.nextcloud.com/apps/bookmarks">Nextcloud bookmarks</a> for easy synchronization between devices, but this could really be as simple as a text file.</p>

<p>Whenever it’s time for a new issue, I open my feed reader (<a href="https://apps.gnome.org/NewsFlash/">Newsflash</a>) + bookmarks and assemble everything into a single file.
Over the years, I’ve tried various solutions for turning a bunch of webpages into an ebook. 
I eventually settled on <a href="https://danburzo.ro/projects/percollate/">Percollate</a>, an open source command-line tool that allows me to build very presentable EPUBs with minimal effort.
I strongly recommend this option, but if you’re not comfortable using the terminal, you can skip to <a href="#creating-a-magazine-in-your-web-browser">Creating a magazine in your web browser</a>.</p>

<h2 id="creating-a-magazine-from-the-command-line-recommended">Creating a magazine from the command line (recommended)</h2>

<h3 id="installing-percollate">Installing Percollate</h3>
<p>If your operating system is Arch or any of its derivatives, you’re in luck: as most things, <a href="https://aur.archlinux.org/packages/nodejs-percollate">Percollate is available through AUR</a>. 
I installed it with</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>yay -S nodejs-percollate
</code></pre></div></div>

<p>NixOS and Alpine Linux also seem to have their own packages.</p>

<p>If you are running something else, you’ll have to <a href="https://nodejs.org/en/download">install Node.js</a> (14.17.0 or later) first and then run</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>npm install -g percollate
</code></pre></div></div>

<h3 id="basic-usage">Basic usage</h3>
<p>You can do lots of fancy stuff with Percollate (see <a href="https://github.com/danburzo/percollate?tab=readme-ov-file#usage">README</a>), but the way I use is always the same and it’s really simple:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>percollate FORMAT -o OUTPUT-PATH -a AUTHOR -t TITLE BUNCH-OF-URLS
</code></pre></div></div>

<p>For example, to create my last issue I ran</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>percollate epub -o hmm9.epub -a "Editor: harisont" -t "hmm #9" https://mn.eumans.eu/nl/link\?c\=4b459\&amp;d\=2rk\&amp;h\=2piae6c01pj71f0i5rhf11ib13\&amp;hpl\=CCG6883941KNE83E41O20SP0EDN20Q3GDG\&amp;i\=67i\&amp;iw\=8\&amp;n\=2hl\&amp;p\=H301718942\&amp;s\=wv\&amp;sn\=2hl https://blog.uaar.it/2025/11/23/la-divulgazione-scientifica-nellepoca-dei-social-network/ https://theconversation.com/criar-a-los-hijos-en-una-lengua-no-materna-lo-que-dice-la-ciencia-268113 https://autonomin.fritext.org/ett-friare-och-roligare-satt-att-lyssna-pa-musik/ ...
</code></pre></div></div>

<p>(of course, the interjection “hmm” also stands for “harisont’s multilingual magazine”).</p>

<p>The output is a clean, nicely formatted EPUB file with a simple cover, author and title metadata, a table of contents, images and links to the original sources. 
Here, you can see how it looks in <a href="https://johnfactotum.github.io/foliate/">Foliate</a> (excellent ebook reader for Linux, by the way):</p>

<p><img src="https://harisont.github.io/assets/img/hmm/hmm9_foliate.png" alt="Issue #9 of hmm in Foliate." /></p>

<h3 id="other-formats">Other formats</h3>
<p>Of the formats Percollate is able to produce, EPUB is by far the best for reading on e-ink devices. 
PDF is great for printing.
But what if you have the misfortune of owning a Kindle and the common sense not to replace it as long as it’s still working?
Fear not, as free software comes again to the rescue!
<a href="https://calibre-ebook.com/download">Install Calibre</a>, forget its outdated GUI, go back to the terminal and run</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ebook-convert INPUT-PATH.epub OUTPUT-PATH.mobi
</code></pre></div></div>

<p>The same trick works for several other more obscure ebook formats. 
The full list is available <a href="https://manual.calibre-ebook.com/generated/en/ebook-convert.html">here</a>.</p>

<h2 id="creating-a-magazine-in-your-web-browser">Creating a magazine in your web browser</h2>
<p>If using the command line sounds intimidating or if you want to create your magazine from a mobile device where you don’t have access to one, good news: Percollate is also the basis for <a href="https://novelservice.github.io/">Novel Service</a>, a website that allows you to do more or less the same thing: copy-paste your links in the text box and wait for the service to do the magic.</p>

<h3 id="output-formats">Output formats</h3>
<p>Novel Service only produces EPUB and PDF files.
The former format works great on <em>most</em> e-readers, the latter is great for printing.
If you are the unlucky owner of a Kindle device where EPUB is not supported and PDF is annoying due to screen size, I suggest creating an EPUB and using an online EPUB-to-MOBI conversion service to turn it into something your e-reader can handle.
If you type “epub to mobi converter” in your search engine, you’ll find plenty.
Beware of <a href="https://www.gnu.org/philosophy/who-does-that-server-really-serve.html">SaaSS</a>, though.</p>

<h3 id="limitations">Limitations</h3>
<p>Unfortunately, Novel Service does not expose all of Percollate’s functionality.
Most annoyingly, you won’t be able to specify the title and author of your magazine, meaning that all ebooks created that way say Untitled right on the cover:</p>

<p><img src="https://harisont.github.io/assets/img/hmm/untitled.png" alt="Properties of a magazine created with Novel Service. The cover only shows the word &quot;Untitled&quot; and a timestamp." /></p>

<p>Luckily, the timestamp under the title will still allow you to distinguish an issue from the other.</p>

<p>Another minor drawback is speed (using this website is quite a bit slower than creating ebooks on a mid-range laptop).</p>

<p>I don’t think it’d be too hard to create a more complete web service based on Percollate, and maybe I should give that a go at some point, since <a href="https://harisont.github.io/lists/web-dev.html">I’m learning some modern web development stuff anyway</a> (let me know if that’s something you would like!).
But for the time being, I think Novel Service is a functional alternative to Percollate itself for non-technical folks.</p>

<p>Happy reading!</p>]]></content><author><name>Arianna Masciolini</name><email>harisont@fripost.org</email></author><summary type="html"><![CDATA[in italiano]]></summary></entry><entry><title type="html">Sulla Svezia, dalla Svezia: reimpatri volontari</title><link href="https://harisont.github.io/2025/10/28/frivillig-atervandring.html" rel="alternate" type="text/html" title="Sulla Svezia, dalla Svezia: reimpatri volontari" /><published>2025-10-28T00:00:00+00:00</published><updated>2025-10-28T00:00:00+00:00</updated><id>https://harisont.github.io/2025/10/28/frivillig-atervandring</id><content type="html" xml:base="https://harisont.github.io/2025/10/28/frivillig-atervandring.html"><![CDATA[<p>La notizia di oggi è che Malmö - la terza città della Svezia per numero di abitanti dopo Stoccolma e Göteborg - si è unita ad una ventina di altri comuni svedesi nel rifiutare la richiesta da parte del governo di “avviare un dialogo su come rafforzare il lavoro in materia di rimpatrio volontario”.</p>

<h2 id="le-dichiarazioni-del-sindaco-di-malmö">Le dichiarazioni del sindaco di Malmö</h2>
<p>Il sindaco di Malmö Sedat Arif (<a href="https://harisont.github.io/ssds/2022/05/24/sv-nato.html#principali-partiti-svedesi-e-loro-attuali-posizioni">S</a>) ha dichiarato di aver percepito la lettera del governo come una provocazione e di non voler contribuire a far sentire indesiderate le moltissime persone che si sono trasferite a Malmö fuggendo da guerre ed altre situazioni critiche.
D’altra parte, ha aggiunto Arif, il comune non ha certo risorse da investire per facilitare le persone a <em>lasciare</em> la città.</p>

<h2 id="il-contesto">Il contesto</h2>
<p>In Svezia, alcuni gruppi immigrati con permesso di soggiorno, tra cui i rifugiati, che volessero far ritorno al paese d’origine (rimpatrio volontario, in svedese <em>frivillig återvandring</em>) possono rivolgersi all’ufficio immigrazione (<em>Migrationsverket</em>) e fare domanda per un sussidio economico (<em>återvändningsbidrag</em>).</p>

<p>La scorsa estate, il governo svedese ha nominato una coordinatrice nazionale, Teresa Zetterblad, il cui compito è, secondo le parole dello stesso Ufficio del Governo (<em>Regeringskansliet</em>), quello di “incentivare il rimpatrio volontario” rafforzando il ruolo che i comuni hanno in tal senso.
Alcune settimane fa, Zetterblad ha invitato i vertici delle amministrazioni comunali ad avviare un dialogo sul tema.</p>

<p>Non tutti i comuni, però, sono intenzionati a collaborare.
Il primo ha farsi sentire è stato Roland Boman, il sindaco di Jokkmokk, che il 20 ottobre 2025 ha risposto alla coordinatrice Zetterblad con la seguente lettera:</p>

<blockquote>
  <p>Grazie, ma no grazie.</p>

  <p>Il comune di Jokkmokk ha ricevuto una richiesta di collaborare alla campagna del governo volta a espellere le persone che lavorano e contribuiscono al welfare. Ci sarebbe molto da dire su questa richiesta. Ma ecco alcune brevi riflessioni. Jokkmokk siamo NOI, non noi e loro. Jokkmokk siamo NOI, indipendentemente dal background, dal paese di origine o dal colore della pelle. In questo Jokkmokk si discosta dalla visione che il governo ha delle persone.</p>

  <p>Jokkmokk non sosterrà con le forze che oggi guidano la politica del governo nei confronti dei nostri concittadini che lavorano e contribuiscono. La politica attuata non è svedese.</p>

  <p>Si basa su un modo non svedese di vedere le persone e il loro valore. Per me è del tutto incomprensibile che oggi abbiamo un governo che non capisce e non incoraggia i valori svedesi, la mentalità svedese, l’etica del lavoro svedese e la profondità dell’animo popolare svedese.</p>

  <p>Pertanto, il comune di Jokkmokk rifiuta di partecipare alla politica del governo e alle minacce nei confronti dei nostri concittadini che lavorano e contribuiscono allo sviluppo e al benessere del comune di Jokkmokk.</p>
</blockquote>

<p>Nei giorni seguenti, si sono uniti alla protesta vari altri comuni a guida progressista di piccole e medie dimensioni, tra cui Växjö, Kiruna ed Härjedalen, il cui sindaco Lars-Gunnar Nordlander (<a href="https://harisont.github.io/ssds/2022/05/24/sv-nato.html#principali-partiti-svedesi-e-loro-attuali-posizioni">S</a>) ha commentato con un semplice “[la lettera della coordinatrice] è finita nel cestino, non è cosa per noi”.
E la lista si allunga, ma nel frattempo 65 comuni hanno accolto l’invito di Zetterblad.</p>

<h2 id="le-reazioni">Le reazioni</h2>
<p>La destra svedese non l’ha presa benissimo.
Riferendosi ai comuni che si oppongono a un dialogo sul tema dei rimpatri volontari, Ludvig Aspling, il portavoce per le politiche migratorie dei <a href="https://harisont.github.io/ssds/2022/05/24/sv-nato.html#principali-partiti-svedesi-e-loro-attuali-posizioni">Democratici Svedesi</a>), si è chiesto se sia ragionevole sostenere economicamente i comuni che non si prendono la responsabilità della propria situazione finanziaria.
Sveriges Radio, la radio nazionale svedese, riporta la notizia con il titolo: <em>La minaccia dell’<a href="https://harisont.github.io/ssds/2022/05/24/sv-nato.html#principali-partiti-svedesi-e-loro-attuali-posizioni">SD</a> nei confronti dei comuni recalcitranti: revocare i sussidi statali</em>.</p>

<p>Va detto però che, nonostante il suo appoggio sia fondamentale per la tenuta del governo, SD non è di per sè un partito di governo.</p>

<p>Il ministro per l’immigrazione Johan Forsell (<a href="https://harisont.github.io/ssds/2022/05/24/sv-nato.html#principali-partiti-svedesi-e-loro-attuali-posizioni">M</a>) ha reagito con toni prevedibilmente più moderati, ma con un’uscita comunque insidiosa (il grassetto è mio):</p>

<blockquote>
  <p>Il governo non prende posizione sulle modalità con cui i vari comuni scelgono di collaborare con la coordinatrice per fornire informazioni sul sussidio economico al reimpatrio volontario. Sappiamo tuttavia che l’offerta di collaborazione in tal senso ha ricevuto un riscontro positivo in molti comuni. [Quella del rimpatrio volontario] è un’opportunità rivolta a persone che <strong>non hanno trovato posto in Svezia</strong> o che forse <strong>non desiderano integrarsi</strong>, e in cui possiamo aiutare a ricominciare da capo.</p>
</blockquote>

<p>Zetterblad, dal canto suo, ci ha tenuto a sottolineare che il suo compito è quello di aiutare i comuni ad offrire agli immigrati che stanno valutando di tornare al proprio paese una consulenza professionale ed indipendente.</p>

<p>Difficile leggere questi pronunciamenti senza malizia, visto il contesto più generale di inasprimento delle condizioni di ammissione dei rifugiati, rinnovo dei permessi di lavoro e accesso alla cittadinanza.</p>

<h2 id="fonti">Fonti</h2>

<h3 id="sveriges-radio">Sveriges Radio</h3>
<ul>
  <li><a href="https://www.sverigesradio.se/artikel/malmo-foljer-jokkmokk-vill-inte-bidra-till-atervandring"><em>Malmö följer Jokkmokk – vill inte bidra till återvandring</em></a></li>
  <li><a href="https://www.sverigesradio.se/artikel/hard-kritik-mot-regeringens-atervandringspolitik-tack-men-nej-tack"><em>Hård kritik mot regeringens återvandringspolitik: ”Tack, men nej tack”</em></a></li>
  <li><a href="https://www.sverigesradio.se/artikel/sds-hot-mot-vagrande-kommuner-dra-in-statsstod"><em>SD:s hot mot vägrande kommuner: Dra in statsstöd</em></a></li>
</ul>

<h3 id="aftonbladet">Aftonbladet</h3>
<ul>
  <li><a href="https://www.aftonbladet.se/nyheter/a/1Mg0Wl/kommuner-sager-nej-till-regeringens-mote-om-atervandring"><em>Tydlig nej till återvandring på flera håll: ”Hamnat i papperskorgen”</em></a></li>
</ul>

<h3 id="migrationsverket">Migrationsverket</h3>
<ul>
  <li><a href="https://www.migrationsverket.se/du-har-tillstand-i-sverige/asyl/du-vill-flytta-fran-sverige.html"><em>Du vill flytta från Sverige</em></a></li>
  <li><a href="https://www.migrationsverket.se/du-har-tillstand-i-sverige/asyl/atervandringsbidrag.html"><em>Återvandringsbidrag</em></a></li>
</ul>

<h3 id="regeringskansliet">Regeringskansliet</h3>
<ul>
  <li><a href="https://www.regeringen.se/pressmeddelanden/2025/06/regeringen-tillsatter-samordnare-for-att-oka-frivillig-atervandring/"><em>Regeringen tillsätter samordnare för att öka frivillig återvandring</em></a></li>
</ul>]]></content><author><name>Arianna Masciolini</name><email>harisont@fripost.org</email></author><summary type="html"><![CDATA[La notizia di oggi è che Malmö - la terza città della Svezia per numero di abitanti dopo Stoccolma e Göteborg - si è unita ad una ventina di altri comuni svedesi nel rifiutare la richiesta da parte del governo di “avviare un dialogo su come rafforzare il lavoro in materia di rimpatrio volontario”.]]></summary></entry><entry><title type="html">Se non del tutto giusto, quasi niente sbagliato: appunti da un incontro con Richard Stallman</title><link href="https://harisont.github.io/2025/10/26/bombarolo.html" rel="alternate" type="text/html" title="Se non del tutto giusto, quasi niente sbagliato: appunti da un incontro con Richard Stallman" /><published>2025-10-26T00:00:00+00:00</published><updated>2025-10-26T00:00:00+00:00</updated><id>https://harisont.github.io/2025/10/26/bombarolo</id><content type="html" xml:base="https://harisont.github.io/2025/10/26/bombarolo.html"><![CDATA[<p>Circa un mese fa ho saputo che <a href="https://stallman.org/">Richard Stallman</a>, padre fondatore del <a href="https://www.gnu.org/philosophy/free-software-intro.html">movimento per il software libero</a>, sarebbe venuto a Göteborg per tenere una <a href="https://bahnhof.se/2025/09/30/freedom-in-bahnhof-bunker-och-richard-stallman/">lezione aperta sul tema <em>fri programvara och frihet i det digitala samhället</em> (“software libero e libertà in una società digitale”) presso un bunker a pochi minuti da casa mia che sta venendo convertito in un data center di massima sicurezza</a>.
La notizia mi è arrivata tramite la mailing list di <a href="https://fripost.org/">Fripost</a>, l’organizzazione di posta elettronica democratica di cui faccio parte da qualche mese, ma anche tramite Slack, la piattaforma di messaggistica istantanea che, discutibilmente, viene utilizzata da gran parte dei miei colleghi, me compresa, per le comunicazioni informali.</p>

<p>Personalmente, non vedevo l’ora di ascoltare ciò che Stallman aveva da dire nel 2025, anno in cui molte delle mie riflessioni, complice l’attuale situazione (geo)politica, si sono incentrate proprio su questo argomento.
Tuttavia, un mio collega ed amico intimo si è premurato di farci sapere tramite il canale Slack di cui sopra che non avrebbe partecipato all’evento perché aveva sentito troppe cose negative sul suo conto.
Questa, per me che di Stallman avevo visto qualche intervento registrato e letto qualche articolo diversi anni fa, quando ero un’informatica in erba, era senz’altro una sorpresa.</p>

<p>Ho fatto un giro sul web, senza trovare nè ragioni incontrovertibili per gli attacchi che Stallman ha subito di recente, nè prove inconfutabili della sua malafede per quel che riguarda le sue dichiarazioni più criticate.
Mi sono anzi fatta l’idea che si tratti di un personaggio a tratti incompreso, a tratti deliberatamente strumentalizzato. 
Indubbiamente, però, ho preso consapevolezza del fatto che Stallman sia una figura molto più controversa di quanto non pensassi, persino all’interno del movimento da lui fondato e dei gruppi ad esso affini.</p>

<p>Mi sono dunque recata all’evento curiosa di capire cosa provochi questo tipo di reazioni. 
Queste le mie impressioni “a freddo”, ad oltre due settimane dall’evento.</p>

<h3 id="imponerande-många-datakillar"><em>“Imponerande många data<strong>killar</strong>“</em></h3>
<p>La primissima cosa che ho notato, prima ancora dell’inizio della conferenza, è stata la composizione demografica della lunghissima coda che si era formata davanti al bunker. 
Nemmeno nei dipartimenti d’informatica che ho frequentato, dove le donne sono notoriamente una minoranza, ho mai riscontrato un tale squilibrio di genere.</p>

<p>La cosa non è stata notata solo da me, ma persino da alcuni maschi. 
Per esempio, è stata commentata esplicitamente <a href="https://sphinx.acast.com/p/open/s/68de31e86d92c33f9c22f774/e/68fa21335149d2d6f28e357a/media.mp3#t=846">nel podcast <em>Trevlig mjukvara</em> (“Software piacevole”, o qualcosa del genere)</a>.
Un mio collega, inoltre, ha commentato che c’erano <em>imponerande många datakillar</em> (“un numero impressionante di informatici (maschi) e simili”), anche se non so se intendesse la parola <em>killar</em> (“ragazzi/uomini”) in modo marcato o come un generico “tizi”.</p>

<p>Trovarmi in gruppi così composti non mi provoca particolare turbamento (anzi, mi motiva ancor di più ad essere parte attiva nella comunità del software libero), ma mi pare che il dato sia significativo e ci dica qualcosa sulla comunità stessa.
Non so bene, però, che cosa: Stallman, a prescindere da cosa gli altri dicano di lui, <a href="https://stallman.org/articles/virgin-of-emacs.html">si è espresso in modo abbastanza inequivocabile sulla parità di genere</a> ed il sistema per fare domande durante l’evento (per iscritto, anonimamente) mi è sembrato più che funzionale all’inclusione delle minoranze, anche se non so se ciò sia stato intenzionale o una fortunata coincidenza.</p>

<h3 id="in-direzione-ostinata-e-contraria">In direzione ostinata e contraria<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup></h3>
<p>Stallman è certamente un radicale (aggettivo che nel mio mondo può avere una connotazione molto positiva, vedi “Partito Radicale” e “Radio Radicale”<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>). 
Non mi sembra affatto, però, che sia un estremista.
Dal punto di vista dei contenuti, il suo intervento è consistito in una serie di fatti oggettivi dei quali non tutti hanno sufficiente consapevolezza e di ragionamenti in larghissima parte condivisibili.
Ritengo che le sue posizioni appaiano estreme e talvolta persino ridicole perché si ostina vivere la sua vita con straordinaria coerenza nonostante un contesto globale in cui la tecnologia sta accelerando in direzione opposta a quella da lui auspicata.</p>

<p>Non credo che tutti debbano agire come Stallman, nè lo vedo come un role model per il mio (per ora molto timido) attivismo, ma nutro nei suoi confronti rispetto e ammirazione. 
Sono inoltre convinta che un certo numero di persone come lui sia funzionale alla causa.
Nel nostro piccolo, anche nel mio dipartimento abbiamo chi si rifiuta di utilizzare il tutto il software proprietario (Slack, per esempio) che non ci sia ineludibilmente imposto.
Mi sembra che, da parte di molti, il suo atteggiamento sia vissuto con fastidio, ma per me è un promemoria costante di certe cose che andrebbero cambiate.
Un altro collega ha commentato che serve qualcuno che faccia da contrappeso alle grandi industrie tecnologiche, e anche questo mi pare un punto di vista condivisibile.</p>

<h3 id="un-disco-rotto">Un disco rotto</h3>
<p>L’intervento di Stallman è stato per molti versi piuttosto… noioso.
Il 90% dei punti principali non mi erano affatto nuovi, nonostante non lo seguissi attivamente da alcuni anni (del rimanente 10% impossibile non nominare la questione del cosiddetto <a href="https://fightchatcontrol.eu/it/">Chat Control</a>, che in qualche modo non era ancora giunta alle mie orecchie e che, per quanto abbia poi dedicato del tempo ad informarmi in merito, mi lascia tuttora a dir poco sbigottita).</p>

<p>A difesa di Stallman, bisogna dire risulta difficile non essere ripetitivi quando ciò che si predica da ormai quarant’anni è purtroppo ancora attuale e diventa anzi <a href="https://www.gnu.org/philosophy/free-software-even-more-important.html">sempre più rilevante</a>.</p>

<h3 id="dont-hear-what-he-didnt-say"><em>Don’t hear what he didn’t say!</em></h3>
<p>Un altro motivo per cui non ho trovato il discorso particolarmente avvincente è che Stallman, come oratore, è un po’ lento ed alquanto monocorde.
Allo stesso tempo, ho sempre apprezzato la sua precisione.
Ogni frase appare formulata con grande attenzione, ogni parola con estrema cura, allo scopo di evitare fraintendimenti.</p>

<p>Mi sono fatta l’idea che il prendersi il tempo per esprimere ogni concetto in modo esatto e senza enfasi sia una scelta deliberata e che Stallman voglia essere ascoltato per quello che dice esplicitamente, letteralmente, e non per come lo dice.
Mi pare che questa sia una cortesia che gli si possa fare (e che in molti casi gradirei fosse rivolta anche a me).
Su YouTube, l’unico social media che ancora frequento,<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup> mi sono imbattuta nella frase “<em>don’t hear what I didn’t say</em>” (“non stare a sentire quello che non ho detto”). 
Il contesto era la comunicazione tra persone autistiche ed allistiche, ma mi sembra una buona regola generale.</p>

<h3 id="vedere-le-differenze-far-vedere-le-somiglianze">Vedere le differenze, far vedere le somiglianze</h3>
<p>Fin qui, questo post potrebbe sembrare un’apologia di Stallman.
C’è però un aspetto del suo modo se non di ragionare quantomeno di comunicare che trovo altamente controproducente.</p>

<p>Nel film Rai <em>La meglio gioventù</em> (2023), una dei protagonisti, Giulia, critica il compagno Nicola dicendo che “non vede le differenze”.
Ho ripensato spesso a questa frase perché ritengo che ci sia invece un grande valore nel cercare di vedere le somiglianze.</p>

<p>Stallman questo non sembra volerlo fare, quantomeno non nel suo linguaggio.
Ad esempio, rende le distanze dal termine “open source” (<a href="https://www.gnu.org/philosophy/open-source-misses-the-point.html">con motivazioni a dire il vero legittime e quasi sempre anche ben articolate</a>) e addirittura dagli acronimi “FOSS” (<em>Free and Open Source Software</em>) and “FLOSS” (<em>Free, Libre and Open Source Software</em>) perché <em>“‘free’ and ‘software’ are too far away from each other”</em> (“[le parole] ‘libero’ e ‘software’ sono troppo lontane l’una dall’altra”); ci tiene a rimarcare che il boicottaggio di Spotify da parte di alcuni musicisti è insufficiente perché “<em>they don’t seem to recognize the injustice Spotify does to every listener: such as making them identify themselves (by payment systems) and imposing DRM.</em>” (“Non sembrano riconoscere l’ingiustizia che Spotify commette nei confronti di ogni ascoltatore: ad esempio, obbligandoli a identificarsi (tramite sistemi di pagamento) e imponendo il DRM”) e minimizza il valore del movimento <a href="https://en.wikipedia.org/wiki/Right_to_repair">Right to repair</a> sulla base di un suo presunto disinteresse verso il concetto di software libero.</p>

<p>In molti di questi casi, mi sembra che le differenze che Stallman correttamente individua tra diversi gruppi siano meno rilevanti delle affinità che esistono tra di loro. 
In alcuni, credo addirittura che la distanza tra di loro nasca non da differenze valoriali sostanziali, ma da scarsa conoscenza dei reciproci principi ed obiettivi.
Nel vedere le differenze, dimostra senz’altro spirito critico, ma nel farle insistentemente vedere agli altri scoraggia forse un dialogo che io ritengo invece cruciale.
Personalmente, cercherò di mettere in risalto le somiglianze pur avendo consapevolezza delle differenze.</p>

<hr />

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>Il titolo di questo post e la frase “in direzione ostinata e contraria” sono un omaggio a Fabrizio de André. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>Ho avuto a più riprese il dispiacere di interagire con il personale di Radio Radicale, ma rimango entusiasta del loro archivio. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:3" role="doc-endnote">
      <p>Prevalentemente tramite <a href="https://libretube.dev/">LibreTube</a>, un client libero che mi permette di continuare a seguire i canali che m’interessano senza che Google lo venga a sapere. Ho invece del tutto abbandonato Instagram, per ragioni soprattutto etiche, nonostante certi contenuti e persino alcune delle sue meccaniche non mi dispiacessero. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Arianna Masciolini</name><email>harisont@fripost.org</email></author><summary type="html"><![CDATA[Circa un mese fa ho saputo che Richard Stallman, padre fondatore del movimento per il software libero, sarebbe venuto a Göteborg per tenere una lezione aperta sul tema fri programvara och frihet i det digitala samhället (“software libero e libertà in una società digitale”) presso un bunker a pochi minuti da casa mia che sta venendo convertito in un data center di massima sicurezza. La notizia mi è arrivata tramite la mailing list di Fripost, l’organizzazione di posta elettronica democratica di cui faccio parte da qualche mese, ma anche tramite Slack, la piattaforma di messaggistica istantanea che, discutibilmente, viene utilizzata da gran parte dei miei colleghi, me compresa, per le comunicazioni informali.]]></summary></entry><entry><title type="html">My bikepacking list</title><link href="https://harisont.github.io/2025/07/18/bikepacking-list.html" rel="alternate" type="text/html" title="My bikepacking list" /><published>2025-07-18T00:00:00+00:00</published><updated>2025-07-18T00:00:00+00:00</updated><id>https://harisont.github.io/2025/07/18/bikepacking-list</id><content type="html" xml:base="https://harisont.github.io/2025/07/18/bikepacking-list.html"><![CDATA[<p>I’ve just come back from a nine-day bikepacking trip through Denmark (blog post upcoming!) and I’m in the process of unpacking my bags. 
This time, I think I did a pretty good job at packing (as in, I had almost everything I needed and needed basically everything I brought).
This blog post is mostly a note to self about what to pack next time, but I thought it might be useful for fellow cyclist who want to embark in similar adventures (note that this packing list is tailored to the Scandinavian summer).</p>

<h2 id="storage">Storage</h2>
<p>I have three main bags:</p>

<ul>
  <li>my awesome everyday <strong>carrier bag</strong>, <strong>which converts into a backpack</strong> (on this particular trip, this feature was unnecessary, but on many other occasions I have used this bags to store my valuables and transformed it into a backpack upon leaving the bike unattended for longer periods of time)</li>
  <li>another slightly smaller cheap (but <strong>waterproof</strong>) <strong>carrier bag</strong> from Lidl</li>
  <li>an old <strong>cooler backpack</strong> which I’ve had repaired for the occasion and that, excepts for shorter stretches from the supermarket to the picnic table, I pack onto the carrier with a bungee cord - I don’t love carrying things on my back, especially on warm summer days. In the past, I’ve stored food in a simple <strong>basket</strong> with a <strong>smaller cooler bag</strong> inside.</li>
</ul>

<p>I also have two smaller bike bags:</p>

<ul>
  <li>a <strong>front bag that can also be used as a shoulder bag</strong>, which I use for small items that need to come with me wherever I go, such as my wallet and keys</li>
  <li>a <strong>frame bag for bike tools</strong> that I bring on every long or short bike excursion.</li>
</ul>

<p>In addition, my bike has a <strong>bottle holder</strong> (essential!) and a <strong>phone holder</strong> that I use for navigation.</p>

<p>I also always bring one or more <strong>tote bags</strong>, where I store clean clothes. 
It also serves as my pillow, which works great for me, excepts if there are no longer any clean clothes.</p>

<h2 id="camping-equipment">Camping equipment</h2>
<ul>
  <li>obviously a <strong>tent</strong>. In this case, my friend C. brought hers because mine only fits one person. Choosing a one-person tent was obviously a mistake, even if I really love it. I have only used a couple of times in two years, and never for longer trips so far</li>
  <li>a <strong>sleeping bag</strong>:. Mine is very entry-level and not very warm, but for the summer, it gets the job done</li>
  <li>a basic roll-up <strong>camping mat</strong>. Mine is quite bulky, and I’d almost regret the purchase if I hadn’t found a second use for it: since it is insulating, I wrap it around one or two plastic water bottles to keep them cool during sunny days. If the bottle attached to my bike needs a refill, it’s just a matter of tilting the bike and unscrewing the cap. Aerodynamics isn’t the goal anyways, for the kind of trips I like going on</li>
  <li>a <strong>head lamp</strong>, which I mostly use as a tent light.</li>
</ul>

<h2 id="clothes">Clothes</h2>
<p>Here comes the annoying part. 
Summer in Scandinavia is rather unpredictable, and I know I need a wide variety of things:</p>

<ul>
  <li><strong>t-shirts, both quickdry and not</strong>: the former are nice to have in case of rain and for washing on the go, but they don’t feel nice, especially when combined with sunscreen. The amount depends on whether I plan to do proper laundry or not, which is possible at many campings and marinas, but takes time</li>
  <li><strong>pants</strong>: a pair or two of shorts, a pair of long and/or detachable trousers, a pair of sweatpants and a pair of leggins (they are warm, comfortable and compact). The same considerations about quickdry apply</li>
  <li>an old, beloved <strong>sweater</strong></li>
  <li>a comfy <strong>shirt</strong> (yes, I do mean a shirt with a collar! It is great to wear on top of other tops to protect me from the wind or from the sun, and if used in this way it can be reused many time, if necessary by itself at the end of the trip)</li>
  <li>a pair of running <strong>shoes</strong> or similar, preferably waterproof</li>
  <li><strong>flip-flops</strong> (mostly for showering)</li>
  <li>rain clothes: at least a high-quality <strong>k-way</strong> and a pair of <strong>rain shoes</strong>. Note that rain shoes need not necessarily be waterproof: in the summer, I prefer a pair of cheap sandals that I don’t mind getting wet. <strong>Rain trousers</strong> and <strong>helmet cover</strong> are, in my opinion, optional in warm weather, but the latter can be useful to cover other things too. On multiple occasions, I used it to protect my sleeping bag</li>
  <li>a super compact <strong>down jacket</strong> (this can be a bit costly, but I use it in different ways during all four seasons and it takes up a lot <em>less</em> space than a sweater)</li>
  <li>a thin ugly <strong>neck gaiter</strong> that I was given at a conference and has proven incredibly versatile and useful in a variety of situations</li>
  <li>abundant, comfortable <strong>socks and underwear</strong></li>
  <li>a <strong>swimsuit</strong></li>
  <li>prescription <strong>sunglasses</strong> (which I almost consider a <a href="#luxury-items">luxury item</a> &lt;3)</li>
  <li>a pair of <strong>bike gloves</strong>. I find these not to be essential in the summer, but they’re nice when it’s a bit colder or too sunny.</li>
</ul>

<h2 id="toiletries-first-aid-kit-etc">Toiletries, first aid kit etc.</h2>
<p>The single most important thing in this category is a towel.
<strong>Microfiber towels</strong> are compact and dry quickly.
I once bought two as they came in pairs. 
Next time, I’ll bring both.</p>

<p>My beauty case contains:</p>

<ul>
  <li>a bar of <strong>soap</strong></li>
  <li><strong>shower gel + shampoo</strong> in those tiny tiny bottles that they give you at hotels. They are becoming increasingly rare due to (very legitimate) environmental concerns, so I recommend saving the bottles and refilling them</li>
  <li><strong>toothbrush</strong>, <strong>mini-toothpaste</strong> and a few <strong>flosser picks</strong></li>
  <li>the most compact <strong>hairbrush</strong> in existence, which my dad gave me for my very first school trip in first grade</li>
  <li><strong>hairpins</strong> and <strong>hairbands</strong></li>
  <li>roll-on <strong>deodorant</strong></li>
  <li><strong>compressed mini-towels</strong>. I always end up needing a few, and some are even re-usable</li>
  <li><del>a <strong>sleeping mask</strong></del> (I always bring it, I never use it)</li>
  <li><strong>sunscreen</strong> - a necessary evil. I don’t get sunburnt easily and yet I decided I should use high SPF during this kind of holidays. I even have a <strong>sun-protective lipstick</strong></li>
  <li><strong>pads</strong>! Less is <em>not</em> more when it comes to these</li>
  <li><strong>tweezers</strong>, indispensable in case you have to remove a tick</li>
  <li><strong>band-aids</strong> and <strong>disinfectant</strong></li>
  <li><strong>paracetamol</strong></li>
  <li>a <strong>mosquito repellent</strong> and/or <strong>after-bite</strong> whatever. I forgot about this this time and bought a practical stick one during towards the end fo the trip</li>
  <li><strong>laundry sheets</strong>, but the ones I have kinda suck and I might just replace them with a piece of <strong>marseille soap</strong> unless I really plan on using a washing machine. In that case, I might invest in a <strong>collapsible bucket</strong> for doing laundry on the go.</li>
</ul>

<h2 id="bike-tools">Bike tools</h2>
<p>My bike tools bag, which I bring with me on every out-of-town ride, contains the following:</p>

<ul>
  <li>a small <strong>pump</strong> with several <strong>adapters</strong></li>
  <li>a <strong>bike multitool</strong> that is maximally unergonomic but good enough for emergency situations. It is complemented by <strong>another, smaller multitool</strong> that lives in my everyday bag and has pliers and smaller screwdrivers</li>
  <li><strong>chain oil</strong> and <strong>rust solvent</strong></li>
  <li>a pair of <strong>rubber gloves</strong></li>
  <li>the <strong>magic spray</strong> that supposedly fixes a flat tire from the inside.</li>
</ul>

<p>My friend C. does not believe in magic and insists on always having spare tubes. 
I think this is unnecessary for holidays where you’re always more or less close to a town, but she might also be right.
Spare tubes or not, if I ever went on a solo trip, I’d bring tire-changing tools.</p>

<h2 id="kitchen-utensils">Kitchen utensils</h2>
<ul>
  <li>a swiss army knife. I have a fancy one now, but I’ve used  a cheap one for years, and the longer blade is what I need 95% of the time. My point is, I need a knife, and that knife should not be a hazard for my bag. Any decent <strong>pocket knife</strong> will do the job</li>
  <li>reusable <strong>forks</strong>, <strong>spoons</strong> and optionally <strong>spreading knives</strong> (I forgot the knives this times, and spoons worked just fine). Although plastic is more lightweight, I use the normal metal ones from my kitchen - sporks look cool but are awkward to use, and plastic breaks easily</li>
  <li>a tiny bottle of concentrated <strong>dish soap</strong>, a <strong>sponge</strong> and <strong>something to put freshly washed cutlery</strong> on if there is no clean surface to do so</li>
  <li><strong>kitchen paper</strong></li>
  <li>many <strong>plastic bags</strong> and <strong>clips</strong></li>
  <li><strong>ice packs</strong>, although I’m debating whether to bring them or not next time. Some expensive campings have freezer you can use overnight, but otherwise they’re only good on the first day. Another option for keeping food cool is buying something frozen, but most of the frozen stuff that can be eaten without cooking doesn’t taste great. So far, the best I’ve found was edamame.</li>
  <li><strong>hand sanitizer</strong>, although I hate it.</li>
</ul>

<h2 id="other-utensils">Other utensils</h2>
<ul>
  <li><strong>bungee cords</strong>, one or more! If kept clean, these can also be used to hang wet clothes at night</li>
  <li><strong>bike lights</strong>: these are almost unnecessary in the long scandinavian summer days, but it’s better to always have them</li>
  <li>extra <strong>batteries</strong> for the head and bike lamps</li>
  <li><strong>zipties</strong>: somehow, they always solve some problem</li>
  <li>all possible <strong>rain covers</strong> for bags and other equipment. I suggest bringing them along and using them at any hint of rain whilst knowing that they mey never be enough in case of heavy, prolonged rain</li>
  <li>a mini <strong>sewing kit</strong></li>
  <li>a <strong>lock</strong>, just in case I end up sleeping at a hostel.</li>
</ul>

<h2 id="mandatory-electronics">Mandatory electronics</h2>
<p>I try to limit electronics as much as possible, but a few things are necessary:</p>

<ul>
  <li>a <strong>smartphone</strong>, which I use manily for finding campsites and navigation. I’ve been tempted by more power-efficient bike computers, that are also more readable in harsh sunlight, but I find OSM-based Android apps unbeatable when it comes to usability on the go. A small e-ink Android device would be the perfect OSM-machine, but they are all too expensive</li>
  <li><strong>charging cables</strong> and <strong>wall adapter</strong> for my phone and camera (see <a href="#luxury-items">below</a>)</li>
  <li>a <strong>powerbank</strong> (I have a small one, but I’d probably need to replace it if I go on a 4+ day trip by myself, and I’m tempted by <strong>portable solar panels</strong>)</li>
  <li>cheap <strong>wired earbuds</strong>, mostly because my phone microphone seems to be getting worse over time.</li>
</ul>

<h2 id="food">Food</h2>
<p>To limit weight and because of lack of experience with fireplaces, I do not cook when camping, but I find that, especially in the summer, you can go a long way just by assembling meals out of raw and semi-processed foods you can find in any supermarket. 
What food I bring along, of course, varies from time to time, but some things tend to buy are:</p>

<ul>
  <li><strong>salt</strong> (in a small airtight container)</li>
  <li><strong>bananas</strong>. Other fruit I tend to buy at unmanned farm shops along the way</li>
  <li>knäckebröd (crisp bread) and/or fresh <strong>bread</strong>. During this trip, I found rye bread to be a great option</li>
  <li><strong>jam or similar</strong> for breakfast</li>
  <li><strong>something canned</strong>, e.g. beans or fish</li>
  <li><strong>hummus</strong> or some other protein-rich spread</li>
  <li>a <strong>lemon</strong> (it improves many canned foods, and if there is no other use for it, I just squeeze it in my water bottle)</li>
  <li>some <strong>vegetables</strong>. Cucumbers, avocados and cherry tomatoes are three classics</li>
  <li><strong>fruit juice</strong> (sugary and refreshing. Blood orange juice has become a tradition of my trips with C.)</li>
  <li><strong>sugary snacks</strong>: sesamkakor, cotognata, dried mango raisins and the like</li>
  <li><strong>nuts</strong>.</li>
</ul>

<p>As for <strong>water</strong>, for free camping in the summer I usually make sure to have at the very least 2 liters on me. 
I usually have two smaller thermal bottles, one in the bike holder and one easily accessible for refills, and a larger plastic one, which I try to keep cool by wrapping it in my camping mat (see <a href="#camping-equipment">above</a>).</p>

<h2 id="luxury-items">Luxury items</h2>
<ul>
  <li>a <strong>notebook</strong> and <strong>pen</strong> for travel notes. I wrote about 20 (small) pages this time</li>
  <li>
    <p>a <strong>book</strong>, possibly with the following characteristics:</p>

    <ul>
      <li>slim but not too short, because ideally it has to last for the whole trip</li>
      <li>interesting but easy to read (not in a language I don’t know well, for example), because I might read it in overly early mornings when my travel companion is still asleep</li>
      <li>not too valuable or too beloved, because humidity might ruin it and/or it may need to be replaced when I run out of pages</li>
      <li>absolutely not borrowed from anyone and anywhere, for the same reasons.</li>
    </ul>

    <p>If I went on an even longer trip (say one month), I’d consider investing in a cheap, compact <strong>e-reader</strong>, but the one I own right now is way too large, expensive and delicate for camping</p>
  </li>
  <li><strong>MTG cards</strong> (if with C.) or another small <strong>board game</strong>. This year, I was happy I did not bring one of my two favorite MTG decks as rain managed to seep through my bag’s rain cover, plastic deck case and sleeves and ruin the corners of a few cards, even though they are still perfectly usable</li>
  <li>a small, easy to operate cheap and/or rugged <strong>camera</strong>. Until recently, I used an old compact point-and-shoot Canon, but since it is slowly declining, I recently bought a second-hand Olympus Tough camera, which is fun to use, a bit more modern and can stand the elements, water included.</li>
</ul>

<h2 id="things-i-deliberately-dont-pack">Things I deliberately don’t pack</h2>
<p>As I mentioned above, while I do bring some <a href="#kitchen-utensils">kitchen utensils</a>, I don’t really need that many because I avoid cooking outdoors altogether.
I don’t even bring <strong>glasses</strong> or <strong>plates</strong>, as bottles, food packaging and paper towels are usually all I need. 
However, I might rethink the latter and get one or two reusable plastic plates.</p>

<p>At least on my trips with C., I also don’t drink (and therefore bring) coffee or tea at all.
The first time, this happened accidentally and ended up being a nice and uncomplicated break from caffeine, so I decided to make it a rule. 
It may or may not also help with sleeping as early as needed.</p>

<p>Some other things I never bring are a proper <strong>pillow</strong>, a dedicated <strong>tent lamp</strong> and my <strong>prescription glasses</strong>.
For the first two, I think I found good enough alternative.
As for my eyesight, it is sufficiently good that I’m not completely dependent on glasses, and if I’m in the outdoors in the summer I wear sunglasses 80% of the time anyway.</p>]]></content><author><name>Arianna Masciolini</name><email>harisont@fripost.org</email></author><summary type="html"><![CDATA[I’ve just come back from a nine-day bikepacking trip through Denmark (blog post upcoming!) and I’m in the process of unpacking my bags. This time, I think I did a pretty good job at packing (as in, I had almost everything I needed and needed basically everything I brought). This blog post is mostly a note to self about what to pack next time, but I thought it might be useful for fellow cyclist who want to embark in similar adventures (note that this packing list is tailored to the Scandinavian summer).]]></summary></entry><entry><title type="html">FACS - FAQs about Computational Syntax</title><link href="https://harisont.github.io/2025/07/03/facs.html" rel="alternate" type="text/html" title="FACS - FAQs about Computational Syntax" /><published>2025-07-03T00:00:00+00:00</published><updated>2025-07-03T00:00:00+00:00</updated><id>https://harisont.github.io/2025/07/03/facs</id><content type="html" xml:base="https://harisont.github.io/2025/07/03/facs.html"><![CDATA[<p>This is a collection of questions about <a href="https://www.grammaticalframework.org/">Grammatical Framework</a> (GF) and <a href="https://universaldependencies.org/">Universal Dependencies</a> (UD) that I’ve been asked at least twice during the 2025 edition of the <a href="https://kursplaner.gu.se/pdf/kurs/en/LT2214.pdf">LT2214 Computational Syntax</a> course at the University of Gothenburg, and/or that I haven’t been able to answer exhaustively in class, and/or that I myself tend to forget the answer to in between years.</p>

<blockquote>
  <p><strong>NOTE:</strong> I maintain an up-to-date version of frequently asked GF+UD questions <a href="https://harisont.github.io/lists/facs.html">here</a>.</p>
</blockquote>

<hr />

<p>Contents:</p>
<ul>
  <li><a href="#gf">GF</a>
    <ul>
      <li><a href="#file-structuremodule-types">File structure/module types</a></li>
      <li><a href="#gf-termstypes-of-judgments">GF terms/types of judgments</a></li>
      <li><a href="#gf-syntax">GF syntax</a></li>
      <li><a href="#encoding-issues">Encoding issues</a></li>
      <li><a href="#using-gf-from-python">Using GF from Python</a></li>
    </ul>
  </li>
  <li><a href="#ud">UD</a>
    <ul>
      <li><a href="#multiword-tokens">MultiWord tokens</a></li>
      <li><a href="#conjunctions">Conjunctions</a></li>
      <li><a href="#syntax-highlighting">Syntax highlighting</a></li>
      <li><a href="#arborator">Arborator</a></li>
      <li><a href="#machamp">MaChAmp</a></li>
      <li><a href="#ud-validator">UD validator</a></li>
    </ul>
  </li>
</ul>

<h2 id="gf">GF</h2>

<h3 id="file-structuremodule-types">File structure/module types</h3>
<blockquote>
  <p>What goes in which files?</p>
</blockquote>

<p>In GF, there are several module types:</p>

<table>
  <thead>
    <tr>
      <th>name</th>
      <th>contents</th>
      <th>example from the course</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">abstract</code></td>
      <td>abstract syntax (cross-lingual)</td>
      <td><code class="language-plaintext highlighter-rouge">MicroLang.gf</code></td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">concrete</code></td>
      <td>concrete syntax (language-specific)</td>
      <td><code class="language-plaintext highlighter-rouge">MicroLangEng.gf</code></td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">resource</code></td>
      <td>reusable collection of <code class="language-plaintext highlighter-rouge">oper</code>s (see next question), i.e. library (type signatures &amp; bodies together)</td>
      <td><code class="language-plaintext highlighter-rouge">MicroResEng.gf</code></td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">interface</code></td>
      <td>“abstract syntax” (type declarations) of a resource module</td>
      <td>not used in this course</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">instance</code></td>
      <td>“concrete syntax” of a resource module whose “abstract syntax”  is defined in an interface</td>
      <td>not used in this course</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">incomplete concrete</code></td>
      <td>partial “concrete syntax”, used when some things are common to a few of the languages in covered in the grammar, but not all of them</td>
      <td>not used in this course</td>
    </tr>
  </tbody>
</table>

<p>Let’s focus on the first three.</p>

<p>An <code class="language-plaintext highlighter-rouge">abstract</code> module typically contains:</p>
<ul>
  <li>the list of the names of the cross-lingual <code class="language-plaintext highlighter-rouge">cat</code>egories used in the grammar (e.g. <code class="language-plaintext highlighter-rouge">Det</code>, <code class="language-plaintext highlighter-rouge">CN</code>, <code class="language-plaintext highlighter-rouge">NP</code>…)</li>
  <li>a list of “<code class="language-plaintext highlighter-rouge">fun</code>ctions”, i.e. type signatures for the <code class="language-plaintext highlighter-rouge">lin</code>earization rules of the grammar (e.g. <code class="language-plaintext highlighter-rouge">DetCN : Det -&gt; CN -&gt; NP ;</code>).
An abstract module works a bit like a Java interface, or rather, if you haven’t done any object-oriented programming, as <em>contract</em> that specifies all the things the concrete syntaxes for each language have to provide for the grammar to be complete.</li>
</ul>

<p>A <code class="language-plaintext highlighter-rouge">concrete</code> module contains the “implementations” of the <code class="language-plaintext highlighter-rouge">cat</code>s and <code class="language-plaintext highlighter-rouge">lin</code>s listed in the abstract syntax, for example:</p>
<ul>
  <li>a <code class="language-plaintext highlighter-rouge">Det</code> in English can be represented as a record storing a string and a number:
    <div class="language-haskell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">lincat</span> <span class="kt">Det</span> <span class="o">=</span> <span class="p">{</span><span class="n">s</span> <span class="o">:</span> <span class="kt">Str</span> <span class="p">;</span> <span class="n">n</span> <span class="o">:</span> <span class="kt">Number</span><span class="p">}</span> <span class="p">;</span>
</code></pre></div>    </div>
  </li>
  <li>the “body” of the <code class="language-plaintext highlighter-rouge">fun</code>ction (i.e. its <code class="language-plaintext highlighter-rouge">lin</code>earization rule) <code class="language-plaintext highlighter-rouge">DetCN</code> can be written as
    <div class="language-haskell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">lin</span> <span class="kt">DetCN</span> <span class="n">det</span> <span class="n">cn</span> <span class="o">=</span> <span class="p">{</span>
  <span class="n">s</span> <span class="o">=</span> <span class="o">\\</span><span class="n">c</span> <span class="o">=&gt;</span> <span class="n">det</span><span class="o">.</span><span class="n">s</span> <span class="o">++</span> <span class="n">cn</span><span class="o">.</span><span class="n">s</span> <span class="o">!</span> <span class="n">det</span><span class="o">.</span><span class="n">n</span> <span class="p">;</span>
  <span class="n">a</span> <span class="o">=</span> <span class="kt">Agr</span> <span class="n">det</span><span class="o">.</span><span class="n">n</span> <span class="p">}</span> <span class="p">;</span>
</code></pre></div>    </div>
  </li>
</ul>

<p>Finally, a <code class="language-plaintext highlighter-rouge">resource</code> module is just a bunch of <code class="language-plaintext highlighter-rouge">oper</code>s (i.e. helper functions) and <code class="language-plaintext highlighter-rouge">param</code>eter definitions that can be imported in other modules. 
You may well decide not to have a separate resource module in your grammar, but especially if your language of choice has extensice morphology, that’s a good place to store all the <code class="language-plaintext highlighter-rouge">param</code>eters and smart paradigms without cluttering your <code class="language-plaintext highlighter-rouge">MicroLangXxx</code> module.</p>

<h3 id="gf-termstypes-of-judgments">GF terms/types of judgments</h3>
<blockquote>
  <p>Can you give me a recap of what all of <code class="language-plaintext highlighter-rouge">cat</code>, <code class="language-plaintext highlighter-rouge">lincat</code>, <code class="language-plaintext highlighter-rouge">fun</code>, <code class="language-plaintext highlighter-rouge">lin</code>, <code class="language-plaintext highlighter-rouge">oper</code> and <code class="language-plaintext highlighter-rouge">param</code> mean?</p>
</blockquote>

<p>There you go:</p>

<table>
  <thead>
    <tr>
      <th>name</th>
      <th>short for</th>
      <th>description</th>
      <th>found in</th>
      <th>example</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">cat</code></td>
      <td>category</td>
      <td>grammatical category</td>
      <td>abstract modules</td>
      <td><code class="language-plaintext highlighter-rouge">cat Noun</code></td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">lincat</code></td>
      <td>linearization type</td>
      <td>language-specific “implementation” of a category</td>
      <td>concrete modules</td>
      <td><code class="language-plaintext highlighter-rouge">lincat Noun = {s : Number =&gt; Str}</code></td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">fun</code></td>
      <td>function</td>
      <td>type signature of a grammar rule</td>
      <td>abstract modules</td>
      <td><code class="language-plaintext highlighter-rouge">fun UseN : N -&gt; CN</code></td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">lin</code></td>
      <td>linearization rule</td>
      <td>language-specific “implementation” of a grammar rule</td>
      <td>concrete modules</td>
      <td><code class="language-plaintext highlighter-rouge">lin UseN n = n</code></td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">oper</code></td>
      <td>operation</td>
      <td>helper function</td>
      <td>here, there and everywhere (but often in concrete <strong>and</strong> resource modules)</td>
      <td><code class="language-plaintext highlighter-rouge">oper regNoun : Str -&gt; Noun = \sg -&gt; mkNoun sg (sg + "s")</code></td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">param</code></td>
      <td>parameter</td>
      <td>language-specific (inflectional) parameter tables</td>
      <td>typically resource modules</td>
      <td><code class="language-plaintext highlighter-rouge">param Number = Sg | Pg</code></td>
    </tr>
  </tbody>
</table>

<h3 id="gf-syntax">GF syntax</h3>
<blockquote>
  <p>What is the difference between <code class="language-plaintext highlighter-rouge">-&gt;</code> and <code class="language-plaintext highlighter-rouge">=&gt;</code>?</p>
</blockquote>

<p><code class="language-plaintext highlighter-rouge">-&gt;</code> is for functions, <code class="language-plaintext highlighter-rouge">=&gt;</code> is for tables.</p>

<p>More specifically:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">-&gt;</code> is used when <em>declaring the type signature of a function</em> (i.e. of a <code class="language-plaintext highlighter-rouge">fun</code> or an <code class="language-plaintext highlighter-rouge">oper</code>). Examples:
    <ul>
      <li><code class="language-plaintext highlighter-rouge">fun PredVPS : NP -&gt; VP -&gt; S ;</code></li>
      <li><code class="language-plaintext highlighter-rouge">oper regNoun : Str -&gt; Noun = ...</code></li>
    </ul>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">\ -&gt;</code> is when <em>defining a function</em> (typically in <code class="language-plaintext highlighter-rouge">oper</code>s). Example:</p>

    <div class="language-haskell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="o">...</span> <span class="nf">\</span><span class="n">sg</span> <span class="o">-&gt;</span> <span class="n">mkNoun</span> <span class="n">sg</span> <span class="p">(</span><span class="n">sg</span> <span class="o">+</span> <span class="s">"s"</span><span class="p">)</span> <span class="p">;</span>
</code></pre></div>    </div>
  </li>
  <li><code class="language-plaintext highlighter-rouge">=&gt;</code> is used when:
    <ul>
      <li>
        <p><em>declaring the type of a table</em> (typically in <code class="language-plaintext highlighter-rouge">lincat</code>). Example:</p>

        <div class="language-haskell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">lincat</span> <span class="kt">N</span> <span class="o">=</span> <span class="p">{</span><span class="n">s</span> <span class="o">:</span> <span class="kt">Number</span> <span class="o">=&gt;</span> <span class="kt">Str</span><span class="p">}</span> <span class="p">;</span>
</code></pre></div>        </div>
      </li>
      <li>
        <p><em>filling in the cell of a table</em>. Example:</p>

        <div class="language-haskell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">table</span> <span class="p">{</span> <span class="kt">Sg</span> <span class="o">=&gt;</span> <span class="s">"cat"</span> <span class="p">;</span> 
        <span class="kt">Pl</span> <span class="o">=&gt;</span> <span class="s">"cats"</span><span class="p">}</span>
</code></pre></div>        </div>
      </li>
    </ul>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">\\ =&gt;</code> is used for <em>filling in tables whose cells are all to be filled in the same way</em> (single-branch tables). Example:</p>

    <div class="language-haskell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">AdjCN</span> <span class="n">a</span> <span class="n">cn</span> <span class="o">=</span> <span class="p">{</span>
  <span class="c1">-- whatever the n (the number) is, use it to select the correct cell of the table for the CN</span>
  <span class="n">s</span> <span class="o">=</span> <span class="o">\\</span><span class="n">n</span> <span class="o">=&gt;</span> <span class="n">a</span><span class="o">.</span><span class="n">s</span> <span class="o">++</span> <span class="p">(</span><span class="n">cn</span><span class="o">.</span><span class="n">s</span> <span class="o">!</span> <span class="n">n</span><span class="p">)</span> <span class="p">;</span>
<span class="p">}</span> <span class="p">;</span>
</code></pre></div>    </div>
  </li>
</ul>

<h3 id="encoding-issues">Encoding issues</h3>
<blockquote>
  <p>I am working with a language that uses a non-latin script and, when I try to linearize a tree, I get the following error:</p>
  <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  &lt;stdout&gt;: commitBuffer: invalid argument (invalid character)
</code></pre></div>  </div>
  <p>How do I fix it?</p>
</blockquote>

<p>Add the line</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>flags coding = utf8 ;
</code></pre></div></div>

<p>to your concrete module.</p>

<p>This is necessary because the default encoding for GF source files is iso-latin-1, which can only handle the ASCII charset and a few extra characters needed for some European languages.</p>

<h3 id="using-gf-from-python">Using GF from Python</h3>
<blockquote>
  <p>I am getting started with lab 2 and I can’t install/run the Python <code class="language-plaintext highlighter-rouge">pgf</code> library and/or the C runtime.</p>
</blockquote>

<p>For the moment, don’t: follow <a href="https://github.com/GrammaticalFramework/comp-syntax-gu-mlt/blob/034f3a4771efd47cea9c53bcff1b493b577cce04/lab2/README.md?plain=1#L26-L30">Aarne’s alternative instructions for testing</a>.</p>

<h2 id="ud">UD</h2>

<h3 id="multiword-tokens">MultiWord tokens</h3>
<blockquote>
  <p>How do I analyze:</p>
  <ol>
    <li>“do” (“de + “o”) in Portuguese</li>
    <li>“au” (“à” + “le”) in French</li>
    <li>“nel” (“in” + “il”) in Italian</li>
    <li>“dámelo” (“da” + “me” + “lo”) in Spanish</li>
  </ol>

  <p>and so on?</p>
</blockquote>

<p>UD version 2 treats these cases (where an orthographic word consists of several syntactic units) as MultiWord Tokens (MWTs). 
Annotation consists of a so-called <em>range line</em> with the original form but no analysis, followed by 2+ lines where each individual element is analyzed individually.
Example for portuguese.</p>

<pre><code class="language-tsv"># text = A comida do gato.
# gloss = The food of+the cat.
1	A	o	DET	_	_	2	det	_	_
2	comida	comida	NOUN	_	_	0	root	_	_
3-4	do	_	_	_	_	_	_	_	_
3	de	de	ADP		_	5	case	_	_
4	o	o	DET	_	_	5	det	_	_
5	gato	gato	NOUN	_	_	2	nmod	_	_
6	.	.	PUNCT	_	_	2	punct	_	_
</code></pre>

<p>Unfortunately, <a href="#machamp">MaChAmp</a> cannot fully handle this yet.
This is one of the reasons why you need to preprocess all of its input files as indicated in the <a href="https://github.com/GrammaticalFramework/comp-syntax-gu-mlt/tree/main/lab3#step-2-preparing-the-training-and-development-data">lab description</a>.</p>

<h3 id="conjunctions">Conjunctions</h3>
<blockquote>
  <p>How do I annotate conjunctions, in phrases like “A and B”?</p>
</blockquote>

<p>Like this:</p>

<svg width="149" height="115" viewBox="0 0 149 115" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <text x="5" y="108" font-size="16" fill="white">A</text>
  <text x="42" y="108" font-size="16" fill="white">and</text>
  <text x="97" y="108" font-size="16" fill="white">B</text>
  <text x="5" y="93" font-size="10" fill="white">SYM</text>
  <text x="42" y="93" font-size="10" fill="white">CCONJ</text>
  <text x="97" y="93" font-size="10" fill="white">SYM</text>
  <line x1="20" y1="20" x2="20" y2="80" stroke="white" />
  <path d="M 20 80 17 74 23 74" fill="white" />
  <text x="25" y="28" font-size="10" fill="white">root</text>
  <path d="M 55 80 Q 55 63 71 63 L 88 63 Q 104 63 104 80" stroke="white" fill="none" />
  <line x1="55" y1="75" x2="55" y2="80" stroke="white" />
  <path d="M 55 80 52 74 58 74" fill="white" />
  <text x="75" y="58" font-size="10" fill="white">cc</text>
  <path d="M 27 80 Q 27 47 60 47 L 82 47 Q 115 47 115 80" stroke="white" fill="none" />
  <line x1="115" y1="75" x2="115" y2="80" stroke="white" />
  <path d="M 115 80 112 74 118 74" fill="white" />
  <text x="62" y="42" font-size="10" fill="white">conj</text>
</svg>

<blockquote>
  <p>But why? Then A and B are not on the same level!</p>
</blockquote>

<p>Reasonable objection.
However, remember that UD prioritizes cross-lingual parallelism by avoiding using function words (such as conjunctions) as syntactic heads.</p>

<p>In latin, for example “A and B” can be translated as both “A et b” and “A Bque” (e.g. “SPQR: Senatus PopolusQue Romanus”). 
If we used “et” as the head, the trees for “A and/et B” becomes:</p>

<svg width="149" height="95" viewBox="0 0 149 95" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <text x="5" y="88" font-size="16" fill="white">A</text>
  <text x="42" y="88" font-size="16" fill="white">et/and</text>
  <text x="97" y="88" font-size="16" fill="white">B</text>
  <text x="5" y="73" font-size="10" fill="white">SYM</text>
  <text x="42" y="73" font-size="10" fill="white">CCONJ</text>
  <text x="97" y="73" font-size="10" fill="white">SYM</text>
  <path d="M 19 60 Q 19 43 33 43 L 33 43 Q 48 43 48 60" stroke="white" fill="none" />
  <line x1="19" y1="55" x2="19" y2="60" stroke="white" />
  <path d="M 19 60 16 54 22 54" fill="white" />
  <text x="25" y="38" font-size="10" fill="white">conj</text>
  <line x1="57" y1="20" x2="57" y2="60" stroke="white" />
  <path d="M 57 60 54 54 60 54" fill="white" />
  <text x="62" y="28" font-size="10" fill="white">root</text>
  <path d="M 65 60 Q 65 43 81 43 L 98 43 Q 114 43 114 60" stroke="white" fill="none" />
  <line x1="114" y1="55" x2="114" y2="60" stroke="white" />
  <path d="M 114 60 111 54 117 54" fill="white" />
  <text x="81" y="38" font-size="10" fill="white">conj</text>
</svg>

<p>which is more different than it needs to be from</p>

<svg width="93" height="95" viewBox="0 0 93 95" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <text x="5" y="88" font-size="16" fill="white">A</text>
  <text x="42" y="88" font-size="16" fill="white">Bque</text>
  <text x="5" y="73" font-size="10" fill="white">SYM</text>
  <text x="42" y="73" font-size="10" fill="white">NOUN</text>
  <line x1="20" y1="20" x2="20" y2="60" stroke="white" />
  <path d="M 20 60 17 54 23 54" fill="white" />
  <text x="25" y="28" font-size="10" fill="white">root</text>
  <path d="M 29 60 Q 29 43 43 43 L 43 43 Q 58 43 58 60" stroke="white" fill="none" />
  <line x1="58" y1="55" x2="58" y2="60" stroke="white" />
  <path d="M 58 60 55 54 61 54" fill="white" />
  <text x="35" y="38" font-size="10" fill="white">conj</text>
</svg>

<p>where you can clearly see what the two conjuncts are.</p>

<blockquote>
  <p>But can’t “Bque” be treated as a <a href="#multiword-tokens">MWT</a>?</p>
</blockquote>

<p>Sure can: in that case, you would split “B” and “que” and you could in theory treat the clitic “que” as a head.
But imagine a language where conjunction is expressed by simply justaposing the conjuncts (e.g. “A B”). What would be the head then?</p>

<h3 id="syntax-highlighting">Syntax highlighting</h3>
<blockquote>
  <p>I have tried to install the <a href="https://marketplace.visualstudio.com/items/?itemName=lgrobol.vscode-conllu">vscode-conllu</a> extension but it doesn’t seem to work.</p>
</blockquote>

<ol>
  <li>check that your filename ends in <code class="language-plaintext highlighter-rouge">.conllu</code> (which is not the same as <code class="language-plaintext highlighter-rouge">.connllu</code>)</li>
  <li>check that you are using tabs and not spaces as separators</li>
  <li>if it still doesn’t work, save the file as <code class="language-plaintext highlighter-rouge">.tsv</code>. You’ll get a different but equally good highlighting for the token lines</li>
</ol>

<blockquote>
  <p>I want syntax highlighting, but I don’t use Visual Studio Code.</p>
</blockquote>

<p>GOTO step 3 of the answer above ;) 
Most editors have support for highlighting TSVs and CSVs.</p>

<h3 id="arborator">Arborator</h3>
<blockquote>
  <p>I am using <a href="arborator.grew.fr">Arborator</a> for annotation and I can’t find my project under “My Projects”</p>
</blockquote>

<p>…I know right? 
For the moment, look for it from the homepage using the search bar and then save the direct link.
Eventually, I hope they’ll solve the <a href="https://github.com/Arborator/arborator-frontend/issues/442">issue</a>.</p>

<h3 id="machamp">MaChAmp</h3>
<blockquote>
  <p>I am trying to run a <a href="https://github.com/machamp-nlp/machamp">MaChAmp</a> script but it fails complaining that some other Python file does not exist.</p>
</blockquote>

<p>Check that you are running the script from Machamp’s root folder (i.e. the folder named <code class="language-plaintext highlighter-rouge">machamp</code> or <code class="language-plaintext highlighter-rouge">machamp-master</code>).</p>

<blockquote>
  <p>I successfully installed MaChamp and preprocessed the training and development data and I’m now trying to train my model, but training fails with something like</p>
</blockquote>

<blockquote>
  <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>2025-05-21 10:34:51,518 - ERROR - STDERR - [enforce fail at inline_container.cc:595] . unexpected pos 196207040 vs 196206992
</code></pre></div>  </div>
</blockquote>

<p>There is probably some formatting error in your CoNNL-U input files. 
The most common ones are:</p>

<ol>
  <li>missing newlines at the end of the file, which often happens when you split the data into a training and development set yourself</li>
  <li>the diabolical non-unix newline characters, which some editors on Windows like adding when you simply <em>open</em> your files.</li>
</ol>

<p>To fix error 1, open your files and check that it ends with <strong>two</strong> empty lines. 
If it doesn’t, add one.</p>

<p>To fix error 2, run</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">tr</span> <span class="nt">-d</span> <span class="s1">'\r'</span> &lt; PATH-TO-YOUR-NONUNIX-FILE.conllu <span class="o">&gt;</span>  PATH-FOR-THE-OUTPUT-FILE.conllu
</code></pre></div></div>

<p>(which means “delete all <code class="language-plaintext highlighter-rouge">\r</code> characters from the non-unix file and write the output on a new file”).</p>

<p>If training still fails after this, try to validate your CoNNL-U file(s) (see below).</p>

<h3 id="ud-validator">UD validator</h3>
<blockquote>
  <p>How do I use the official UD validator?</p>
</blockquote>

<ol>
  <li>clone or download <a href="https://github.com/UniversalDependencies/tools">the UD tools repository</a></li>
  <li>move inside the <code class="language-plaintext highlighter-rouge">tools</code> folder</li>
  <li>run
    <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>python validate.py PATH-TO-YOUR-TREEBANK.conllu --lang=2-LETTER-LANGCODE-FOR-YOUR-LANGUAGE
</code></pre></div>    </div>
  </li>
</ol>

<p>MaChAmp should only be concerned about basic formatting issues, so if you are validating for MaChAmp you can add <code class="language-plaintext highlighter-rouge">--level=1</code>. If you want to check for errors in your own annotated files, however, you can go up a few levels:</p>
<ul>
  <li>2 checks UD format specifics</li>
  <li>3 checks that the universal UD guidelines are followed (e.g. that there are no <code class="language-plaintext highlighter-rouge">VERB</code>s used as <code class="language-plaintext highlighter-rouge">AUX</code> or multiple subjects in the same sentence)</li>
  <li>4 and 5 check language-specific stuff.</li>
</ul>]]></content><author><name>Arianna Masciolini</name><email>harisont@fripost.org</email></author><summary type="html"><![CDATA[This is a collection of questions about Grammatical Framework (GF) and Universal Dependencies (UD) that I’ve been asked at least twice during the 2025 edition of the LT2214 Computational Syntax course at the University of Gothenburg, and/or that I haven’t been able to answer exhaustively in class, and/or that I myself tend to forget the answer to in between years.]]></summary></entry></feed>