<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>manuel uberti</title>
    <link>https://manueluberti.eu/</link>
    <description>Recent content on manuel uberti</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>manuel.uberti@mailbox.org (Manuel Uberti)</managingEditor>
    <webMaster>manuel.uberti@mailbox.org (Manuel Uberti)</webMaster>
    <lastBuildDate>Sun, 31 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://manueluberti.eu/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Le conseguenze dell'amore</title>
      <link>https://manueluberti.eu/posts/2026-05-31-conseguenze/</link>
      <pubDate>Sun, 31 May 2026 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2026-05-31-conseguenze/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A un tratto le sembra che quel fatto sia soltanto una smagliatura,
un&amp;rsquo;interruzione nella trama delle cose, e a riempirla una storia vale l&amp;rsquo;altra.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Atto di famiglia&lt;/em&gt;, Alessandra Carati&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Raramente penso al divorzio dei miei genitori. Ero appena uscito di casa, stavo
già per rifarmi una vita altrove. Sento di non avere mai capito quanto è
successo o perché sia successo in quel determinato modo e non in un altro. Non
ne parlo mai né ci ripenso mai, come se fosse qualcosa di secondario. E del
resto è così che ho imparato a viverlo: come un fatto indipendente da me.&lt;/p&gt;
&lt;p&gt;La mia è stata una fuga, in un certo senso, dettata dall&amp;rsquo;incapacità di
affrontare quel periodo della mia vita in modo razionale. Con la scusa di avere
lasciato casa per continuare altrove, ho voltato le spalle senza fare e senza
farmi le opportune domande. Ho proseguito per lo più ignorando i motivi del
divorzio, riducendoli a una mancanza di affetto e semplificandomi così il
doverci fare i conti.&lt;/p&gt;
&lt;p&gt;Alessandra Carati con il suo &lt;em&gt;Atto di famiglia&lt;/em&gt; mi ha insegnato che il divorzio
dei miei genitori è tutto meno che qualcosa che posso mettere da parte. Mi ha
fatto capire che per conoscermi per chi sono davvero quell&amp;rsquo;episodio è
ineludibile. Va indagato, piuttosto, per comprendere meglio tutte le parti in
causa senza cercare conclusioni facili e affrettate.&lt;/p&gt;
&lt;p&gt;È proprio con il soffermarsi a turno sulle persone protagoniste della vicenda
che Carati mi ha obbligato a riprendere in mano l&amp;rsquo;accaduto. Invece di offrire
una risposta valida per spiegare definitivamente ciò che è successo, l&amp;rsquo;autrice
monzese sceglie prospettive multiple che costringono a rimettere continuamente
in questione cause e conseguenze del dissolversi del nucleo familiare. Non si
tratta di scegliere una posizione specifica, ma di accettare le inevitabili
variabili che rendono ogni esperienza unica.&lt;/p&gt;
&lt;p&gt;Carati misura le parole lasciando al non detto il compito di riempire i vuoti
spaziali e temporali. &lt;em&gt;Atto di famiglia&lt;/em&gt; impone in questo modo le sue linee
bianche, tracciando un percorso aperto nella violenza che distrugge la coppia e
che ricade impietosamente sulla figlia.&lt;/p&gt;
&lt;p&gt;È lei, infatti, a sopravvivere alla disgregazione della famiglia. Incompresa da
chi la circonda, con i tratti della madre e del padre che si intrecciano nella
sua personalità senza potersene fare una ragione, si nega la possibilità di un
confronto costruttivo con i genitori perché il trauma non le dà alcuna tregua,
ma anche perché ciò che si è incrinato non si può più aggiustare.&lt;/p&gt;
&lt;p&gt;Da adulta il tempo non è più dalla sua parte. I genitori lentamente svaniscono,
prede della vecchiaia. A lei rimangono solo frammenti di un rapporto che non
l&amp;rsquo;ha mai vista al centro del dialogo. In secondo piano mentre la famiglia
voltava pagina, si trova dunque relegata nell&amp;rsquo;impossibilità di negoziare ancora
qualche parola con il padre e con la madre. Sola, senza conoscersi, non verrà
mai a capo delle conseguenze dell&amp;rsquo;amore.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>E adesso?</title>
      <link>https://manueluberti.eu/posts/2026-05-24-adesso/</link>
      <pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2026-05-24-adesso/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;E adesso? si domandava.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Il deserto dei Tartari&lt;/em&gt;, Dino Buzzati&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Lentamente, un passo alla volta, sto ritrovando me stesso. Non è facile passare
dal &lt;a href=&#34;https://manueluberti.eu/posts/2026-02-25-bassi/&#34;&gt;silenzio&lt;/a&gt; alle parole.&lt;/p&gt;
&lt;p&gt;I primi mesi di questo 2026 sono stati un abisso da perlustrare, in apparenza
senza un fondo dove potere almeno toccare. Mi sono ritirato dalla quotidianità e
dal mondo esterno in cerca di qualcosa che poteva e doveva essere solo dentro di
me. Mai prima d&amp;rsquo;ora avevo rivolto uno sguardo così penetrante a ciò che sono.&lt;/p&gt;
&lt;p&gt;Nel cercarmi e ritrovarmi ho di nuovo incontrato quello che mi fa stare bene,
riuscendo a viverlo con l&amp;rsquo;entusiasmo che sembrava avermi abbandonato. Affetti,
passioni, le piccole e le grandi cose che riempiono la mia vita: è tutto qua.
Banalmente, dove è sempre stato. Fortunatamente, dove sono ancora in grado di
vederlo.&lt;/p&gt;
&lt;p&gt;Sono rientrato nella routine a testa alta, con la voglia di credere in me e in
quello che c&amp;rsquo;è. Ho ancora qualche cosa da sistemare, ma lentamente, un passo
alla volta, ci arrivo.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Silenzio</title>
      <link>https://manueluberti.eu/posts/2026-02-25-bassi/</link>
      <pubDate>Wed, 25 Feb 2026 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2026-02-25-bassi/</guid>
      <description>&lt;p&gt;Il silenzio su questo spazio in questo inizio 2026 non rispecchia come avrei
voluto cominciare il nuovo anno. Avevo in mente di leggere vari libri e
scriverci qualcosina, ma le cose stanno andando diversamente.&lt;/p&gt;
&lt;p&gt;Credo, anzi, che il silenzio si protrarrà ancora per qualche tempo, perché sto
lavorando su me stesso in un modo del tutto nuovo per me. Sto combattendo contro
qualcosa che non avevo mai preso così sul serio: la depressione.&lt;/p&gt;
&lt;p&gt;Ci vorrà un po&amp;rsquo;, insomma, per riavermi qui con i miei scritti.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Perché nulla può impedire che una parte di me sia sempre vicino a te e una
parte di te sia sempre vicino a me.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Lettera a Paul Celan&lt;/em&gt;, Ingeborg Bachmann&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    <item>
      <title>My 2025</title>
      <link>https://manueluberti.eu/posts/2025-12-23-my-2025/</link>
      <pubDate>Tue, 23 Dec 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-12-23-my-2025/</guid>
      <description>&lt;p&gt;Here we are again, with another year about to end. You have to excuse me for my
silence in the last couple of months, but some things in my life needed
particular attention so I haven&amp;rsquo;t had enough space in my mind to sit down for
new writings on this blog.&lt;/p&gt;
&lt;p&gt;Even now as I write these words, I am somewhat disconnected from the blank page.
In my defense, 2025 has been an emotional roller coaster that I haven&amp;rsquo;t overcome
yet, and I&amp;rsquo;ve got this bad feeling that 2026 is going to be a hell of a ride for
quite some time.&lt;/p&gt;
&lt;p&gt;This is to say that this year&amp;rsquo;s recap won&amp;rsquo;t look as my usual year&amp;rsquo;s recap. I&amp;rsquo;m
going to highlight few, memorable things, but that&amp;rsquo;s it. No lists of any kind,
then, just what was worth my while.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;work&#34;&gt;work&lt;/h3&gt;
&lt;p&gt;I lost my job this year, but &lt;a href=&#34;https://manueluberti.eu/posts/2025-06-24-no-job-new-me/&#34;&gt;I was prepared&lt;/a&gt; and in September I joined &lt;a href=&#34;https://www.verlata.it/&#34;&gt;Verlata&lt;/a&gt; as a member of
the IT department. For the first time in my life I&amp;rsquo;m working for a social
cooperative, which gives a different value to my work. It also asks me to get
accustomed to the fact that I won&amp;rsquo;t be providing software to car factories,
banks or insurance companies.&lt;/p&gt;
&lt;p&gt;The more I embrace my new career the more it looks like this is a change I was
in dire need of. Perhaps it would&amp;rsquo;ve happened anyway, even if my previous
company didn&amp;rsquo;t shut down. Or maybe not, maybe I needed to be forced into it.
Whatever the case, I&amp;rsquo;m ready now.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;education&#34;&gt;education&lt;/h3&gt;
&lt;p&gt;Thanks to &lt;a href=&#34;https://manueluberti.eu/posts/2025-03-12-belonging/&#34;&gt;Ribellione Animale&lt;/a&gt; I fell in love
with nonviolent communication and the world of facilitation. This has led me to
join a proper &lt;a href=&#34;https://manueluberti.eu/posts/2025-10-10-facilitazione/&#34;&gt;course&lt;/a&gt; where I can
challenge myself all the time with a new set of skills.&lt;/p&gt;
&lt;p&gt;Facilitation is as much about working with a group of people as it is about
discovering yourself. It&amp;rsquo;s a paradigm shift in that it pushes me to look at the
world within and around me with another pair of eyes altogether.&lt;/p&gt;
&lt;p&gt;What&amp;rsquo;s more, I&amp;rsquo;m not even halfway through the course yet and I can safely say
it&amp;rsquo;s going to be a transformative experience.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;music&#34;&gt;music&lt;/h3&gt;
&lt;p&gt;One thing that&amp;rsquo;s been sort of constant throughout 2025&amp;rsquo;s most turbulent days is
Bruce Springsteen&amp;rsquo;s &lt;em&gt;Nebraska&lt;/em&gt;, revealed to me in all its intimacy by Warren
Zanes&amp;rsquo;s lovely &lt;em&gt;Deliver Me from Nowhere: The Making of Bruce Springsteen&amp;rsquo;s
Nebraska&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s hard to explain why an old record combining tales of murderers with its
author&amp;rsquo;s past has meant so much. Springsteen&amp;rsquo;s true intentions here aren&amp;rsquo;t
really clear to me, for instance. Is he trying to sublimate his own experience
through the lives of ambiguous characters? Are their stories the evil side of
what his conscience is telling us? Is he just a great storyteller and there is
nothing more to it?&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t know and frankly I don&amp;rsquo;t care either. What I do know is that &lt;em&gt;Nebraska&lt;/em&gt;
tells me something relevant to me with every song. And by the way, Scott
Cooper&amp;rsquo;s film inspired by Zanes&amp;rsquo;s pages is gorgeous.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;the-end&#34;&gt;the end&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;It all flowed over me with a screaming ache of pain &amp;hellip; remember, remember,
this is now, and now and now. Live it, feel it, cling to it. I don&amp;rsquo;t want to
blot the fear out, and blur the edges of living now. I want to become acutely
aware of all that I’ve taken for granted.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Letter to Edward Cohen&lt;/em&gt;, Sylvia Plath&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Happy New Year.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Beating the blank page</title>
      <link>https://manueluberti.eu/posts/2025-10-12-blank-page/</link>
      <pubDate>Sun, 12 Oct 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-10-12-blank-page/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;You live in the problems you decided to build.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Used for Glue&lt;/em&gt;, Rival Schools&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Today I checked my writings directory and found a lot of unfinished stuff, all
sorts of TeX files left abandoned, drafts of short stories or maybe novels I
started only to feel unsure how to continue.&lt;/p&gt;
&lt;p&gt;This is a weird pattern I&amp;rsquo;ve tended to follow all my life. As much as I&amp;rsquo;ve
always enjoyed blogging, when it comes to longer writings I seem unable to
proceed after a bunch of pages. Why is that? Could this be the real reason why
&lt;a href=&#34;https://manueluberti.eu/posts/2025-02-06-writing-for-a-living/&#34;&gt;I can&amp;rsquo;t write for a living&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;I often question my ability to write. I never stop working on my style, my
voice, and my choices. I also know well that I&amp;rsquo;m quite far from being a great
writer, but this has never stopped me from trying my best at it.&lt;/p&gt;
&lt;p&gt;And yet, I can&amp;rsquo;t shake the feeling that whatever I&amp;rsquo;m working on isn&amp;rsquo;t what I as
a reader would really love to spend my time with. If I look closer at all my
drafts, two of them strike me as projects with a structure, that is a beginning,
an end and something in between. I even have chapters titles for one of them.
But as I read them all over again, what is already there is not enough to please
me.&lt;/p&gt;
&lt;p&gt;My partner often tells me: &amp;ldquo;Keep writing&amp;rdquo;. Which means: &amp;ldquo;Keep putting into words
whatever you have in mind and fine tune later&amp;rdquo;. This is what I usually do,
though. For example, I rarely get what I want from a blog post in a single run.
I may write some ideas, tweak them, leave them there for hours or even days at
times, and get back to them with a fresh mind to see if it all still makes
sense.&lt;/p&gt;
&lt;p&gt;However, those TeX files are a different matter altogether and to conquer the
blank page I have to identify the actual problems I have with it.&lt;/p&gt;
&lt;p&gt;First, I aim way too high by drawing comparisons with authors I love on every
line. This is the perfect recipe for failure. How is one supposed to finish a
chapter when all they&amp;rsquo;re thinking about is what a &lt;em&gt;different&lt;/em&gt; writer would do?&lt;/p&gt;
&lt;p&gt;The second mistake I make is believing I know the approximate &lt;em&gt;total&lt;/em&gt; number of
pages I would like to have. Setting a target such as this makes me only feel
distant from the target itself, because at every step my mind goes to what&amp;rsquo;s
left to write to reach the ideal number.&lt;/p&gt;
&lt;p&gt;The final and biggest issue is that I approach these writings rushing to
complete them, so when after ten pages I notice I&amp;rsquo;m only halfway through the
second chapter I give up and put everything aside.&lt;/p&gt;
&lt;p&gt;Given I identified the problems, the solutions may be just around the corner:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;forget about other authors and write for myself with what I have. There is
always room for improvements later;&lt;/li&gt;
&lt;li&gt;forget about the number of pages and just write anything that comes to mind.
There is always room for improvements later;&lt;/li&gt;
&lt;li&gt;sit down calmy in front of the blank page. Nobody is pressuring me to finish
anything because noone is out there waiting to publish my work. There is
always room for improvements later.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, yeah, basically my partner is right and there&amp;rsquo;s really just one thing I have
to do: keep writing.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Corso di facilitazione</title>
      <link>https://manueluberti.eu/posts/2025-10-10-facilitazione/</link>
      <pubDate>Fri, 10 Oct 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-10-10-facilitazione/</guid>
      <description>&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2025-10-10-la-prossima-cultura.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;In chiusura dello &lt;a href=&#34;https://manueluberti.eu/posts/2025-10-03-coda-occhio/&#34;&gt;scritto precedente&lt;/a&gt;
avevo lasciato in sospeso una bella novità in arrivo questo mese. Perciò, senza
ulteriori indugi, eccola qua: l&amp;rsquo;ultimo fine settimana di ottobre inizio il
&lt;a href=&#34;https://laprossimacultura.it/cosa-facciamo/corso-triennale-di-facilitazione/&#34;&gt;Corso triennale di facilitazione di
gruppi&lt;/a&gt;
organizzato da La Prossima Cultura.&lt;/p&gt;
&lt;p&gt;Perché un corso di facilitazione? Perché mettere da parte la &lt;a href=&#34;https://manueluberti.eu/posts/2024-09-07-philosophy-ma/&#34;&gt;laurea
specialistica&lt;/a&gt; per qualcosa al di fuori
del contesto universitario? Il merito di questa mia scelta è tutto da attribuire
a Ribellione Animale e al profondo cambiamento che &lt;a href=&#34;https://manueluberti.eu/posts/2025-03-12-belonging/&#34;&gt;farne parte&lt;/a&gt; ha messo in moto nella mia vita.&lt;/p&gt;
&lt;p&gt;È in Ribellione Animale, infatti, che sono venuto a contatto per la prima volta
con la pratica della facilitazione. Esservi continuamente esposto mi ha fatto
capire che non si tratta solo di moderare discussioni di gruppo online o in
presenza. La facilitazione porta con sé una rivoluzione culturale che in prima
battuta comincia dentro di noi.&lt;/p&gt;
&lt;p&gt;Il corso si sviluppa in tre livelli per un totale di tre anni. Mi riservo di
decidere se proseguire con i livelli di approfondimento e avanzato dopo aver
frequentato il livello base. Certo, aspettative ed entusiasmo sono già alle
stelle. In qualche modo sento il desiderio di affrontare un percorso del genere
fino in fondo, ma tempo al tempo.&lt;/p&gt;
&lt;p&gt;In ogni caso, prometto un riepilogo a fine corso per raccontare e rivivere
questa esperienza.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Con la coda dell'occhio</title>
      <link>https://manueluberti.eu/posts/2025-10-03-coda-occhio/</link>
      <pubDate>Fri, 03 Oct 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-10-03-coda-occhio/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Perché l&amp;rsquo;affetto quando passa non torna.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;L&amp;rsquo;arte della gioia&lt;/em&gt;, Goliarda Sapienza&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;È da un po&amp;rsquo; che cerco ispirazione. Mi va di aggiornare il blog con &lt;em&gt;qualcosa&lt;/em&gt;,
ma tutti gli argomenti di cui vorrei scrivere mi scivolano addosso lasciando
pochissime tracce meritevoli di essere pubblicate.&lt;/p&gt;
&lt;p&gt;Sto leggendo e apprezzando molto &lt;em&gt;L&amp;rsquo;arte della gioia&lt;/em&gt; di Goliarda Sapienza in
questi giorni. Mentre lo leggo, però, la mente corre ancora a &lt;em&gt;La morte di
Virgilio&lt;/em&gt; di Hermann Broch. Un libro quest&amp;rsquo;ultimo che, pur attestandosi tra i
più complessi fra quelli presenti sui miei scaffali, mi ha consegnato le più
belle parole dell&amp;rsquo;anno al momento.&lt;/p&gt;
&lt;p&gt;Nonostante mi tenga ancora piuttosto stretto &lt;a href=&#34;https://manueluberti.eu/posts/2025-08-09-cain/&#34;&gt;&lt;em&gt;Willoughby Tucker, I&amp;rsquo;ll Always
Love You&lt;/em&gt;&lt;/a&gt;, ultimamente ascolto con piacere due
dischi nello specifico: &lt;em&gt;Hard Headed Woman&lt;/em&gt; di Margo Price e &lt;em&gt;w/ the Producers&lt;/em&gt;
di Paul St. Hilaire. Country e dub-techno possono convivere fianco a fianco? Sì,
e senza litigare per giunta.&lt;/p&gt;
&lt;p&gt;Ci sono almeno due film che mi hanno particolarmente, e per motivi diversi,
segnato nei giorni scorsi: &lt;em&gt;The Life of Chuck&lt;/em&gt; di Mike Flanagan e &lt;em&gt;Together&lt;/em&gt; di
Michael Shanks. Sono quel genere di cinema che risveglia il mio amore per una
passione che tendo sciaguratamente a tenere troppo in secondo piano.&lt;/p&gt;
&lt;p&gt;Ognuno dei tre capoversi precedenti, a guardarlo bene, potrebbe fornire lo
spunto per un pezzo più lungo. Magari anche più di uno in mani esperte. E poi,
non è quello che faccio di solito? Intendo dire, non è di libri, musica e cinema
che scrivo e di cui sento il bisogno di scrivere solitamente?&lt;/p&gt;
&lt;p&gt;Non riesco a giustificare facilmente la mancanza di stimoli. Mi sento di puntare
il dito contro un&amp;rsquo;esperienza complessa e ancora lontana dal potersi considerare
conclusa, nella quale ho visto crescere in me l&amp;rsquo;affetto per una persona, l&amp;rsquo;ho
visto travolgermi e attraversarmi, per poi prendere una direzione dove solo la
coda dell&amp;rsquo;occhio può ormai percepirlo. Mentre si distanziava subdolamente
l&amp;rsquo;affetto ha deciso di portarsi via qualche pezzo di me. Inutile dire che è
necessario ancora uno sforzo per ritrovarmi.&lt;/p&gt;
&lt;p&gt;Oppure c&amp;rsquo;è altro dietro agli stimoli che latitano e devo capire meglio di cosa
si tratta. Dopo un paio di mesi &lt;a href=&#34;https://manueluberti.eu/posts/2025-06-24-no-job-new-me/&#34;&gt;senza impiego&lt;/a&gt; una nuova avventura è cominciata. È troppo
presto per giudicarla obiettivamente adesso, ma se è vero che ho parecchio da
fare per essere di nuovo me stesso, allora anche il lavoro dovrà aspettare per
vedermi al meglio di quello che posso dare. A patto che questo sia, a tutti gli
effetti, il posto dove potere essere la versione migliore di me.&lt;/p&gt;
&lt;p&gt;Eppure, in un periodo di questioni irrisolte, ottobre arriva in compagnia di
qualcosa di positivo. Annuncerò più in là di cosa si tratta così eviterò di
lamentarmi un&amp;rsquo;altra volta di non avere niente di cui scrivere.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Insert date at point</title>
      <link>https://manueluberti.eu/posts/2025-09-21-date-at-point/</link>
      <pubDate>Sun, 21 Sep 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-09-21-date-at-point/</guid>
      <description>&lt;p&gt;I don&amp;rsquo;t know why I haven&amp;rsquo;t shared this little helper before, but here it is.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-date-at-point (date)
  &amp;quot;Insert current DATE at point via `completing-read&#39;.&amp;quot;
  (interactive
   (let* ((formats &#39;(&amp;quot;%Y%m%d&amp;quot; &amp;quot;%F&amp;quot; &amp;quot;%Y%m%d%H%M&amp;quot; &amp;quot;%Y-%m-%dT%T&amp;quot;))
          (vals (mapcar #&#39;format-time-string formats))
          (opts
           (lambda (string pred action)
             (if (eq action &#39;metadata)
                 &#39;(metadata (display-sort-function . identity))
               (complete-with-action action vals string pred)))))
     (list (completing-read &amp;quot;Insert date: &amp;quot; opts nil t))))
  (insert date))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What &lt;code&gt;mu-date-at-point&lt;/code&gt; does is formatting the current date in four different ways with &lt;code&gt;format-time-string&lt;/code&gt;  and then offering them as options to &lt;code&gt;completing-read&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The interesting part is how &lt;code&gt;opts&lt;/code&gt; is built. It&amp;rsquo;s a nice trick to ensure its content is always sorted according to the order in &lt;code&gt;formats&lt;/code&gt;. Without leveraging &lt;code&gt;completion-metadata&lt;/code&gt; the completion system would take care of sorting the items for me.&lt;/p&gt;
&lt;p&gt;For the record, I learned how to tweak &lt;code&gt;completion-metadata&lt;/code&gt; on &lt;a href=&#34;https://emacs.stackexchange.com/a/41808&#34;&gt;Emacs StackExchange&lt;/a&gt;. I suggest reading &lt;code&gt;C-h f completing-read&lt;/code&gt; and &lt;code&gt;C-h f completion-metadata&lt;/code&gt; to know more.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>A call for systemic change</title>
      <link>https://manueluberti.eu/posts/2025-09-04-calc/</link>
      <pubDate>Thu, 04 Sep 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-09-04-calc/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;El que lucha por la vida nunca muere.&lt;/p&gt;
&lt;p&gt;&amp;mdash; Anonymous&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I had plenty of time on the &lt;a href=&#34;https://manueluberti.eu/posts/2025-08-06-a-fuoco/&#34;&gt;train&lt;/a&gt; back home after three days at the &lt;a href=&#34;https://manueluberti.eu/posts/2025-08-05-calc/&#34;&gt;Conference for Animal Liberation&lt;/a&gt; in Copenhagen (CALC from now on). And I needed that time to process the amount of thoughts the conference had left me with.&lt;/p&gt;
&lt;p&gt;Usually when I go to a conference I like to write a report on that experience.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; It&amp;rsquo;s my way of recording what the event has been and has meant to me. It&amp;rsquo;s also a trivial opportunity to say &amp;ldquo;thank you!&amp;rdquo; to the organisers of said event.&lt;/p&gt;
&lt;p&gt;However, CALC was no ordinary conference for me, and not just because, for once, it had nothing to do with the IT business. CALC has been special because it made me feel exactly where I was supposed to be, as if it was an extension and an enrichment of the &lt;a href=&#34;https://manueluberti.eu/posts/2025-03-12-belonging/&#34;&gt;sense of belonging&lt;/a&gt; I feel in my activism.&lt;/p&gt;
&lt;p&gt;This was true from the very beginning of the conference. I immediately felt in a safe space when I arrived. The quiet atmosphere, the care everybody had for each and every one of us attendees, the cozy space, the breaks between sessions, the food and the workshops, the &lt;a href=&#34;https://www.liberation.dk/march&#34;&gt;Animal Liberation March&lt;/a&gt;. I cannot fathom the amounts of hours that it must have taken to build such a wonderful environment, but even before the first talk started I knew CALC would end up meaning a lot more than the chance to learn something new.&lt;/p&gt;
&lt;p&gt;Maybe it had to do with what Jake Conroy said in his final talk, when he highlighted the importance of the do-it-yourself approach and the difference that it makes when it fuels grassroots activism. You discover how resourceful you can be if you are not backed by someone, you transform what is uncomfortable into something comfortable as you struggle to make ends meet. And together with fellow activists, this can become the experience of a lifetime.&lt;/p&gt;
&lt;p&gt;Coming sponsored by no one,&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; CALC displayed the power of a community driven to a cause so few seem to deeply care about. But instead of preaching to the choir, CALC pushed hard on the intersectionality pedal in order to encourage us to think about and work for a much needed systemic change. The conference raised awareness on multiple connections that &lt;a href=&#34;https://manueluberti.eu/posts/2024-11-11-av-activism/&#34;&gt;sometimes&lt;/a&gt; escape the movement for animal liberation.&lt;/p&gt;
&lt;p&gt;For example, I learned a great deal about the abuse of amphibians and reptiles in China thanks to Jin Qian&amp;rsquo;s research, and I was horrified when Fernando linked cattle ranchers to civil wars in Colombia. At the same time, as Laura Broxson told us the successes of NARA and Animal Rebellion in Ireland when it comes to pig farming, I was enthralled.&lt;/p&gt;
&lt;p&gt;Admittedly, I wanted for CALC to never really end because it looked like the beginning of something much bigger than a conference. Or I don&amp;rsquo;t know, maybe it &amp;mdash;whatever &lt;em&gt;it&lt;/em&gt; is&amp;mdash; has been going on for a while and it&amp;rsquo;s just me being fashionably late to the party once again.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;This quote was shown in the last slide of Fernando&amp;rsquo;s talk.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;See, for instance, &lt;a href=&#34;https://manueluberti.eu/posts/2024-09-21-heart-of-clojure/&#34;&gt;Scrappy hearts and Clojure fiddles&lt;/a&gt; or &lt;a href=&#34;https://manueluberti.eu/posts/2018-04-23-dcd-round-up/&#34;&gt;Dutch Clojure Days 2018 round-up&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;A reference to Fugazi&amp;rsquo;s &lt;em&gt;Full Disclosure&lt;/em&gt;.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Pagine Animali</title>
      <link>https://manueluberti.eu/posts/2025-08-22-pagine-animali/</link>
      <pubDate>Fri, 22 Aug 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-08-22-pagine-animali/</guid>
      <description>&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2025-08-22-locandina-pagine-animali.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Il 5,6 e 7 settembre arriva a Mantova &lt;em&gt;Pagine Animali&lt;/em&gt;, il primo festival di letteratura dedicato al nostro rapporto con gli altri abitanti di questo pianeta.&lt;/p&gt;
&lt;p&gt;Come &lt;a href=&#34;https://manueluberti.eu/posts/2025-05-12-no-food-no-science/&#34;&gt;No Food • No Science&lt;/a&gt;, vogliamo rispondere all&amp;rsquo;indifferenza di Festivaletteratura, che nonostante le proteste (nostre nel 2024 e di Fridays for Future nel 2023) mantiene come sponsor gli allevamenti intensivi e i macelli di Levoni e Grana Padano, e i combustibili fossili di Eni.&lt;/p&gt;
&lt;p&gt;La nostra proposta è il contro-festival &lt;em&gt;Pagine Animali&lt;/em&gt;. Tre giorni di incontri per raccontarci storie diverse: di animali che resistono, di cittadine (e non) che si organizzano contro la brutalità di un sistema cieco a tutto tranne al profitto.&lt;/p&gt;
&lt;p&gt;Vogliamo che la letteratura sia uno strumento di liberazione e non l&amp;rsquo;ancella di un sistema economico distruttivo. Ne discuteremo con filosof* e scrittor* come Eva Meijer, Claudio Kulesko e il gruppo Ippolita, con poet* e drammaturgh* come Pietro Babina, Teodora Mastrototaro e Maria Martelli, con studios* di genere e sessualità come Carol Adams e Egon Botteghi, con artist* come Geo e Violinoviola. Gli spazi per le conferenze sono accessibili e gratuiti, e  ci saranno pranzi e cene succulente ai Circoli Arci Virgilio e Arci Papacqua.&lt;/p&gt;
&lt;p&gt;Continuiamo a chiedere a Festivaletteratura di recidere i rapporti con sponsor nocivi come Levoni e Grana Padano. Insieme possiamo scrivere storie migliori.&lt;/p&gt;
&lt;p&gt;Ci vediamo a Mantova il 5, 6 e 7 settembre, ma puoi sbirciare il nostro &lt;a href=&#34;https://linktr.ee/nofoodnoscience&#34;&gt;Linktree&lt;/a&gt; per maggiori informazioni.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Ethel Cain e la mia catarsi</title>
      <link>https://manueluberti.eu/posts/2025-08-09-cain/</link>
      <pubDate>Sat, 09 Aug 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-08-09-cain/</guid>
      <description>&lt;p&gt;Da ieri è disponibile il nuovo album di Ethel Cain, &lt;em&gt;Willoughby Tucker, I&amp;rsquo;ll
Always Love You&lt;/em&gt;. Titolo che, nella sua semplicità, annuncia chiaramente quale
sarà il tenore dei settanta minuti abbondanti di musica che ci aspettano. Senza
un motivo, adoro pensare che lo si legge con l&amp;rsquo;enfasi su &lt;em&gt;Always&lt;/em&gt;, ma può essere
che io sia un inguaribile romantico. Come &lt;em&gt;sempre&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Avevo grandi aspettative per questo disco, complice il fatto che sono passati
tre anni da &lt;em&gt;Preacher&amp;rsquo;s Daughter&lt;/em&gt;, una di quelle opere che entrano dal nulla
nella mia vita e la sanno ribaltare con ogni singolo ascolto. Allo stesso tempo,
però, &lt;em&gt;Preacher&amp;rsquo;s Daugher&lt;/em&gt; aveva reso le mie aspettative piuttosto esigenti, per
cui è difficile negare che con &lt;em&gt;Willoughby Tucker&lt;/em&gt; (d&amp;rsquo;ora in avanti abbrevio per
comodità) temevo di rimanere deluso.&lt;/p&gt;
&lt;p&gt;Ethel Cain ha composto altra musica a suo nome oltre a questi due album, ma lei
stessa considera &lt;em&gt;Willoughby Tucker&lt;/em&gt; propriamente il suo secondo disco, perciò
mi piace regolare le aspettative in base alle sue dichiarazioni. Ma, diciamolo,
le regolo anche in base al fatto che niente di quello che ha fatto prima e dopo
&lt;em&gt;Preacher&amp;rsquo;s Daughter&lt;/em&gt; mi ha conquistato per davvero. Dopo tanti, e mai troppi,
ascolti, &lt;em&gt;Willoughby Tucker&lt;/em&gt; inverte questa rotta e posso tranquillamente dire
che se non siamo dalle parti del precedente, poco ci manca.&lt;/p&gt;
&lt;p&gt;Messa da parte la mia poco interessante opinione estetica, vorrei soffermarmi su
cosa significa &lt;em&gt;Willoughby Tucker&lt;/em&gt; per me in questo periodo. Di musica ne esce
tanta e &lt;a href=&#34;https://manueluberti.eu/posts/2023-04-10-bandcamp/&#34;&gt;ne ascolto tanta&lt;/a&gt;, ma in che senso
Ethel Cain ha contribuito alla mia catarsi? Cosa c&amp;rsquo;entra quello che sto vivendo
e come lo sto attraversando con questo disco in particolare?&lt;/p&gt;
&lt;p&gt;Senza scendere troppo nel personale, diciamo che Ethel Cain sembra stia
raccogliendo pezzi che ho lasciato per strada negli ultimi mesi per comporre un
puzzle che è più chiaro a lei che a me. Proprio la mancanza di chiarezza mi
spinge a tornare a &lt;em&gt;Willoughby Tucker&lt;/em&gt; ancora e ancora, perché a ogni ascolto
sento un nuovo pezzo andare a incastrarsi perfettamente. Nelle parti strumentali
e nei silenzi, è come se mi fosse chiesto di prendermi il giusto tempo per
guardare di nuovo al puzzle con una maggiore consapevolezza.&lt;/p&gt;
&lt;p&gt;Cosa pretenda da me Ethel Cain non mi è dato saperlo. La storia di &lt;em&gt;Willoughby
Tucker&lt;/em&gt; non è felice e solo a tratti rispecchia la mia vita recente. Quei tratti
sono però quello di cui avevo bisogno, ora più che mai. Esattamente come c&amp;rsquo;era
riuscita con &lt;em&gt;Preacher&amp;rsquo;s Daughter&lt;/em&gt;, Ethel Cain ritorna per riposizionarmi nel
mio percorso indicandomi una nuova strada. Si riparte, dunque. Un&amp;rsquo;altra volta.
Come &lt;em&gt;sempre&lt;/em&gt;.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Brucia, dunque disobbedisci</title>
      <link>https://manueluberti.eu/posts/2025-08-06-a-fuoco/</link>
      <pubDate>Wed, 06 Aug 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-08-06-a-fuoco/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I say what I mean, and I do what I say.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Heat&lt;/em&gt;, Michael Mann&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Uno dei più bei libri che ho letto quest&amp;rsquo;anno è &lt;em&gt;A fuoco&lt;/em&gt; di Gianluca Grimalda,
un autore portato alla mia attenzione da &lt;a href=&#34;https://manueluberti.eu/posts/2025-05-12-no-food-no-science/&#34;&gt;No Food • No Science&lt;/a&gt;. Ho iniziato la lettura appena prima di
partire in treno per una settimana in Calabria, e tutta la vacanza ha finito per
essere segnata dalle parole di Grimalda e da frequenti riflessioni dettate dalle
sue esperienze.&lt;/p&gt;
&lt;p&gt;Licenziato per essersi rifiutato di prendere un aereo, Grimalda racconta il suo
viaggiare &lt;em&gt;lento&lt;/em&gt; e l&amp;rsquo;impatto che la disobbedienza civile ha avuto sulla sua
vita. Non è ovviamente solo la dimensione lavorativa ad essere coinvolta, anzi.
A pagare le conseguenze dell&amp;rsquo;attivismo di Grimalda è soprattutto la dimensione
affettiva.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;A fuoco&lt;/em&gt; mescola diario di viaggio, vicende personali e ricerca scientifica.
Sembra un caos, ma Grimalda tiene tutto insieme con una scrittura fluida che
alterna specifici episodi del suo lungo percorso via terra e via mare per
rientrare in Italia dall&amp;rsquo;isola di Bougainville a sintetiche e potenti analisi
sulla crisi climatica e i suoi effetti, il tutto senza perdere mai di vista i
rapporti con la famiglia.&lt;/p&gt;
&lt;p&gt;Proprio questi ultimi sono quelli che mi hanno dato più da pensare. Dopo anni di
&lt;a href=&#34;https://manueluberti.eu/tags/veganism&#34;&gt;veganismo&lt;/a&gt;, genitori e parenti continuano a rifiutare di
prendere seriamente in considerazione le motivazioni delle mie scelte.
Insistono, piuttosto, con etichette quali &amp;ldquo;radicalità&amp;rdquo; ed &amp;ldquo;estremismo&amp;rdquo;, come se
il mio solo esistere diversamente costituisse di per sé un problema o, peggio,
un pericolo.&lt;/p&gt;
&lt;p&gt;Grimalda, allora, diventa un esempio e un modello di riferimento per me.
Rischiare tutto consapevoli di perderlo e in nome di un valore più alto è
proprio quel genere di vocazione che ci muove senza che la si possa spiegare a
parole. La qualifichiamo mettendola in pratica, agendo quotidianemente nel solo
modo che ci sembra possibile. Si dice quello in cui si crede, e si fa quello che
si dice.&lt;/p&gt;
&lt;p&gt;Non è un caso che abbia scelto di partecipare alla &lt;a href=&#34;https://manueluberti.eu/posts/2025-08-05-calc/&#34;&gt;Conference for Animal
Liberation&lt;/a&gt; viaggiando in treno sia all&amp;rsquo;andata che
al ritorno. La disobbedienza è anche questa: rifiutarsi di credere che la
comodità non abbia un prezzo.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Conference for Animal Liberation</title>
      <link>https://manueluberti.eu/posts/2025-08-05-calc/</link>
      <pubDate>Tue, 05 Aug 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-08-05-calc/</guid>
      <description>&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2025-08-05-calc.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;A quick announcement.&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;ll find me in Copenhagen from 29 to 31 August because I&amp;rsquo;ll be attending the
&lt;a href=&#34;https://www.liberation.dk/&#34;&gt;Conference for Animal Liberation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been planning this trip for a while now and I&amp;rsquo;m really looking forward to
being there.&lt;/p&gt;
&lt;p&gt;Do reach out if you want to talk about activism and veganism. I&amp;rsquo;ll be glad to
share my experience and, more importantly, to learn from yours.&lt;/p&gt;
&lt;p&gt;See you there!&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Non ti dirò bugie</title>
      <link>https://manueluberti.eu/posts/2025-07-21-thelma-louise/</link>
      <pubDate>Mon, 21 Jul 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-07-21-thelma-louise/</guid>
      <description>&lt;p&gt;La mia scena preferita di &lt;em&gt;Thelma &amp;amp; Louise&lt;/em&gt; arriva all&amp;rsquo;incirca a metà del film,
quando Louise (Susan Sarandon) e Jimmy (Michael Madsen) si ritrovano in un motel
di dubbia qualità.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;iniziale tensione di Jimmy sfocia in un attimo di incontrollata aggressività,
presto stemperata sia dai suoi sentimenti per Louise sia per la semplice
presenza di lei al suo fianco. Jimmy si scioglie, Louise riprende il controllo
della situazione e il dialogo fra i due assume toni di una dolcezza
irresistibile. Poco male se il giorno dopo, come sappiamo, questa dolcezza si
traduce in un amaro addio.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2025-07-21-thelma-louise.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Thelma &amp;amp; Louise (Ridley Scott, 1991)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;La recente morte di Michael Madsen mi ha riportato a &lt;em&gt;Thelma &amp;amp; Louise&lt;/em&gt; per
l&amp;rsquo;ennesima volta&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. Nei giorni successivi al triste annuncio, sul web l&amp;rsquo;attore
americano è stato molto spesso ricordato per gli splendidi ruoli al servizio di
&lt;a href=&#34;https://manueluberti.eu/posts/2019-12-02-once-upon-a-time/&#34;&gt;Quentin Tarantino&lt;/a&gt;. Eppure, il suo
Jimmy Lennox occupa un posto troppo speciale nel mio cuore per preferirgli Mr.
Blonde o Budd.&lt;/p&gt;
&lt;p&gt;Infatti, è anche e soprattutto in un personaggio minusculo eppure così
memorabile come Jimmy Lennox che si può rintracciare tutta la grandezza di
Michael Madsen. Chiaramente la scena descritta all&amp;rsquo;inizio non deve il suo
fascino al solo Madsen. Piuttosto, a impreziosirla sono l&amp;rsquo;apparente naturalità
della sua interazione con Susan Sarandon e il talento di Ridley Scott che li
incastra perfettamente. Fondamentale è poi il montaggio, che alterna la
seduzione di Thelma (Geena Davis) a opera di J.D. (Brad Pitt) in un&amp;rsquo;altra stanza
dello stesso motel, sovrapponendo per contrasto un&amp;rsquo;intimità del tutto diversa
che finisce per esaltare la qualità dei momenti tra Louise e Jimmy.&lt;/p&gt;
&lt;p&gt;Tuttavia, cosa sarebbe Jimmy Lennox senza il sorriso sghembo di Madsen? Nel suo
corpo prende vita l&amp;rsquo;incapacità di Jimmy di stare fermo mentre discute con
Louise, nonché l&amp;rsquo;inspiegabile urgenza che lo costringe a puntare lo sguardo
oltre la donna e oltre se stesso. Ogni volta che abbassa la testa, vinto, o che
rivolge gli occhi altrove, convinto, il peso delle parole che lo investono
arriva senza che a Jimmy sia necessario parlare.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;Ask me no questions and I&amp;rsquo;ll tell you no lies&amp;rdquo;&lt;/em&gt; dice a un certo punto Jimmy,
ed è così che mi piace immaginare Michael Madsen. Un attore il cui linguaggio
corporeo non mente e racconta solo quello che può dire, sapendolo comunicare con
grazia, senza un movimento di troppo, senza rovinare la scena cercando di
imporre la propria statura.&lt;/p&gt;
&lt;p&gt;Il cinema che amo è pieno di personaggi secondari indimenticabili, ma pochi lo
sono come Jimmy Lennox. Michael ora non c&amp;rsquo;è più, ma finché ho &lt;em&gt;Thelma &amp;amp; Louise&lt;/em&gt;
vicino a me Jimmy ci sarà sempre.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Ho questa meravigliosa &lt;a href=&#34;https://www.avforums.com/reviews/thelma-louise-4k-blu-ray-review.21041/&#34;&gt;edizione
Criterion&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>The chance of unemployment</title>
      <link>https://manueluberti.eu/posts/2025-06-24-no-job-new-me/</link>
      <pubDate>Tue, 24 Jun 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-06-24-no-job-new-me/</guid>
      <description>&lt;p&gt;After &lt;a href=&#34;https://manueluberti.eu/posts/2017-03-12-anewjob/&#34;&gt;more than eight years&lt;/a&gt; my journey with
7bridges has come to an end, but I don&amp;rsquo;t intend to dwell on 7bridges&amp;rsquo;s
shortcomings. What is left of it will soon cease to be of any concern of mine
anyway.&lt;/p&gt;
&lt;p&gt;Instead, I&amp;rsquo;d like to take this opportunity to sit back and think about what I
really want to do now. Anyone visiting this corner of the web with some sort of
regularity has noticed what happened to its contents. It&amp;rsquo;s been a while since I
wrote about anything IT-related and that&amp;rsquo;s because lately I&amp;rsquo;ve been finding
everything IT-related to be troublesome. Simply put, IT is just not what I hoped
it would be.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;This is not to say that I&amp;rsquo;m not interested in IT any more. IT plays a crucial
role in &lt;a href=&#34;https://manueluberti.eu/posts/2025-03-12-belonging/&#34;&gt;my activism&lt;/a&gt; and I often find myself
discussing secure and more privacy-aware solutions with comrades coming from
different backgrounds.&lt;/p&gt;
&lt;p&gt;Yet the combination of activism and my &lt;a href=&#34;https://manueluberti.eu/posts/2024-07-15-ba-journey/&#34;&gt;BA in philosophy&lt;/a&gt; has led me to a peculiar position. That is, I enjoy
working with people to a degree I&amp;rsquo;ve never thought possible before. I&amp;rsquo;ve
discovered the pleasure of just being there for like-minded people and the
rewards when I help people to get whatever they&amp;rsquo;re trying to get.&lt;/p&gt;
&lt;p&gt;It may sound silly and naive, I know, but to someone like me, so used to sitting
at a desk typing away lines of code, proper human interaction has never been a
given. Note that I&amp;rsquo;m not blaming remote work for this. Out of almost twenty
years spent in the IT business, remote work amounts to only a fifth of that
time.&lt;/p&gt;
&lt;p&gt;The truth is small talk is not &lt;em&gt;proper&lt;/em&gt; human interaction for me. It can be
nice, sure, but it can also be deeply boring. Most of the times it feels like
everyone has to do it so we end up chatting about the same things over and over
again. Maybe this is why I&amp;rsquo;ve rarely connected with colleagues on a personal
level, but I&amp;rsquo;m not pointing my finger at them. It&amp;rsquo;s just me needing a different
sort of people around.&lt;/p&gt;
&lt;p&gt;I want to look at my current unemployed status as an opportunity to find myself
again and move towards paths closer to what I really am. I can afford to spend
some time with me instead of giving it to the next employer. Let&amp;rsquo;s treasure this
privilege for once.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Every time I read the words &amp;ldquo;Emacs&amp;rdquo; and &amp;ldquo;AI&amp;rdquo; in the same sentence I
cringe.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>No Food • No Science</title>
      <link>https://manueluberti.eu/posts/2025-05-12-no-food-no-science/</link>
      <pubDate>Mon, 12 May 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-05-12-no-food-no-science/</guid>
      <description>&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2025-05-12-no-food-no-science.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Questo fine settimana a Mantova, a partire da venerdì 16 fino a domenica 18
maggio, c&amp;rsquo;è No Food • No Science, un contro-festival nato per contrastare il
festival Food&amp;amp;Science e fare emergere tutte le contraddizioni di un evento
sponsorizzato dalle multinazionali zootecniche della Pianura Padana.&lt;/p&gt;
&lt;p&gt;Fieramente antispecista e intersezionale, No Food • No Science replicherà quanto
fatto l&amp;rsquo;anno scorso durante la prima edizione per mostrare che, ancora una
volta, dal basso la presa di posizione politica e militante non ha intenzione di
fermarsi.&lt;/p&gt;
&lt;p&gt;Per me sarà l&amp;rsquo;occasione di partecipare a un festival che rifiuta il compromesso
riformista di adeguare il dialogo verso chi non è disposto a radicalizzarsi. Mai
come adesso ne sento il bisogno.&lt;/p&gt;
&lt;p&gt;Il programma è molto ricco, consiglio di tenere d&amp;rsquo;occhio la &lt;a href=&#34;https://www.instagram.com/nofood.noscience.festival/&#34;&gt;pagina
Instagram&lt;/a&gt; per maggiori
dettagli.&lt;/p&gt;
&lt;p&gt;Ci vediamo là.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Non sei mai cosa sei</title>
      <link>https://manueluberti.eu/posts/2025-04-15-chiru/</link>
      <pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-04-15-chiru/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Sono troppo destabilizzanti gli appagamenti raggiunti fuori dalla norma.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Chirù&lt;/em&gt;, Michela Murgia&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Non conosco tanti modi per stare vicino a un&amp;rsquo;amica in difficoltà. Ho una vita
sufficientemente semplice e fortunata che per ora mi ha evitato un certo tipo di
esperienza. Quella più o meno traumatica, intendo.&lt;/p&gt;
&lt;p&gt;In assenza di particolari qualifiche mediche, il mio stare vicino è a metà
strada tra una silenziosa spalla su cui piangere e una lieve sdrammatizzazione
degli eventi che sto ascoltando, con il solo obiettivo di vedere l&amp;rsquo;amica tornare
a sorridere nonostante tutto.&lt;/p&gt;
&lt;p&gt;Un aspetto interessante di questo mio modo di offrire conforto è che mentre provo
a mettermi a disposizione per un&amp;rsquo;altra persona vedo me stesso con occhi diversi.
Non posso dire con assoluta certezza di vedermi attraverso i suoi occhi, ma è
comunque un punto di vista esterno a me, uno sguardo puntato su ciò che di me
abitualmente non vedo.&lt;/p&gt;
&lt;p&gt;È come se ascoltare un&amp;rsquo;amica in difficoltà portasse con sé un insegnamento. Come
se il suo dolore mi mettesse di fronte a una maestra e io, inadeguato e capace
solo di impacciato supporto, diventassi il suo allievo. Va da sé che
l&amp;rsquo;intenzione dietro al mio aiuto non è quella di strumentalizzare la sofferenza
che ho davanti per ricavarne piacere. È innegabile, tuttavia, che più intenso
diventa il reciproco scambio di parole e silenzi, maggiore è la probabilità che
io scopra qualcosa di nuovo sul mio conto.&lt;/p&gt;
&lt;p&gt;Leggendo &lt;em&gt;Chirù&lt;/em&gt; di Michela Murgia ho ritrovato questa ambigua sensazione con
una precisione glaciale. Eleonora, voce narrante e protagonista del romanzo, si
propone come maestra per giovani allievi nei quali lei, e per lo più solo lei,
riconosce un&amp;rsquo;intelligenza diversa dalla media. Si pone come loro mentore
esistenziale, accompagnandoli alla scoperta di se stessi in un mondo il cui
limite precipuo è la prospettiva che lei, dolce e severa, impone loro.&lt;/p&gt;
&lt;p&gt;Nel fare questo Eleonora incontra e spesso si scontra con qualcosa di sé che o
non sapeva di conoscere o aveva a lungo tentato di rimuovere. Così facendo, il
suo passato si intreccia a più riprese con il presente. Non si tratta, però, di
fornire uno sfondo storico alla vicenda. Il passato, ineludibile e rigoroso,
determina ogni singolo passo che Eleonora compie, sia esso reticente o schietto.
In fin dei conti Eleonora sta fuggendo dalla stessa cosa a cui ritorna in
continuazione, inevitabilmente, ossia se stessa.&lt;/p&gt;
&lt;p&gt;È interessante la titubanza con cui Eleonora fatica ad accettare di essere stata
cambiata dai propri allievi. Certamente riconosce l&amp;rsquo;impatto che ognuno di loro
ha avuto su di lei, e non si nega la soddisfazione di avere cambiato la loro
vita, ma il rapporto con quello che rimane di lei dopo ogni allievo è un
processo aperto, in perenne via di definizione. Più si avvicina a loro, più
impara di sé.&lt;/p&gt;
&lt;p&gt;Il problema di Eleonora è che la lezione appresa sembra non bastarle mai. Anche
quando mette da parte il desiderio per l&amp;rsquo;ultima volta, sacrificandolo per la
promessa di una sicura stabilità, sta solo tenacemente illudendo se stessa con
la speranza di avere sotto controllo l&amp;rsquo;unica cosa che non riesce a controllare.
La stessa alla quale, dopotutto, è costretta a ritornare: se stessa.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Chirù&lt;/em&gt; non è stata una lettura facile perché anch&amp;rsquo;io, come Eleonora, vacillo se
messo di fronte all&amp;rsquo;ignoto in me. Accettare di dovermi ancora conoscere del
tutto è la lezione che devo fare mia, unitamente alla consapevolezza che non
smetterò mai di scoprirmi.&lt;/p&gt;
&lt;p&gt;Non credo sia un caso, dunque, che sia stata proprio un&amp;rsquo;amica in difficoltà ad
avermi consigliato questo libro.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Chi è infelice ha tutto da guadagnare, perché è dai baratri che si può sognare
il cielo. Chi è felice ha invece tutto da perdere.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Chirù&lt;/em&gt;, Michela Murgia&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    <item>
      <title>Una canzone in particolare</title>
      <link>https://manueluberti.eu/posts/2025-04-07-una-canzone/</link>
      <pubDate>Mon, 07 Apr 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-04-07-una-canzone/</guid>
      <description>&lt;p&gt;Penso possa capitare a chiunque, in specifici momenti di una giornata qualunque,
di ascoltare una canzone in particolare. A me, banalmente, succede sempre quando
sembrano mancare i consueti appigli emotivi. Dunque mi rifugio in un luogo
sicuro perché so che lì, anche se per pochi minuti, posso smettere di
preoccuparmi del senso delle cose.&lt;/p&gt;
&lt;p&gt;Poi quei minuti finiscono, chiaramente. È inevitabile, non importa quante volte
io possa pigiare &lt;em&gt;repeat&lt;/em&gt;. La musica a un certo punto si spegne e la canzone
finisce. I pensieri, allora, riprendono il loro corso più o meno da dove si
erano fermati. Rimane la certezza di poter tornare di nuovo a quella canzone in
particolare, e con essa la consapevolezza di poter arrestare, ancora per qualche
minuto, i miei pensieri.&lt;/p&gt;
&lt;p&gt;Ho sempre apprezzato questa funzione, chiamiamola così, terapeutica della
musica. È una funzione che, in un certo senso, la musica svolge sempre e da
sempre per me. Anche quando credo che si stia limitando a intrattenermi, una
canzone in particolare, in realtà, sta facendo qualcosa di più. Credo, cioè, che
stia rispondendo a un preciso bisogno. A ben vedere, mi sembra andare a riempire
una precisa mancanza.&lt;/p&gt;
&lt;p&gt;Al tempo stesso, la canzone in particolare porta con sé un effetto diverso
rispetto a quello provato con il ritorno a un disco in particolare. Quando torno
a un album specifico, nella maggior parte dei casi lo faccio perché non ho
voglia di musica nuova. Ho voglia di musica, sì, ma mi accontento del comfort
del già noto. Evidentemente anche qui la musica sta rispondendo a un bisogno, ma
direi che è qualcosa di meno impegnativo, emotivamente parlando.&lt;/p&gt;
&lt;p&gt;D&amp;rsquo;altro canto, perché negli istanti di fragilità non mi rivolgo a qualcosa di
più lungo e duraturo? Non sarebbero meglio i quaranta minuti di un disco
piuttosto che i tre minuti e mezzo di una canzone in particolare?&lt;/p&gt;
&lt;p&gt;È proprio il suo limite temporale, però, a rendere la canzone in particolare
così significativa. Per superare un dato momento di oscurità, ho bisogno di
credere che sia sufficiente una canzone in particolare. In altre parole, è come
se l&amp;rsquo;oscurità possa e debba durare solo il tempo necessario per farmi ascoltare
quella canzone in particolare.&lt;/p&gt;
&lt;p&gt;Pur non avendo mai preso nota di tutte le canzoni in particolare che mi hanno
aiutato ad attraversare periodi complicati, le ricordo tutte facilmente. Alcune
di esse sono su dischi che oggi ancora ascolto, di tanto in tanto. Le altre sono
svanite con il buio che avevano il compito di illuminare, ma non per questo sono
meno importanti.&lt;/p&gt;
&lt;p&gt;Oggi la canzone in particolare è &lt;em&gt;Darkness&lt;/em&gt; dei Pinegrove.&lt;/p&gt;
&lt;p&gt;Premo &lt;em&gt;play&lt;/em&gt;, adesso.&lt;/p&gt;
&lt;p&gt;A dopo.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>A sense of belonging</title>
      <link>https://manueluberti.eu/posts/2025-03-12-belonging/</link>
      <pubDate>Wed, 12 Mar 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-03-12-belonging/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;When we believe in each other, we are more likely to take risks and to invest
ourselves in possibility, even when our own hopes are not fully formed. In this
way, our relationships and the work of relationship building can change our
sense of what&amp;rsquo;s possible.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Let This Radicalize You&lt;/em&gt;, Kelly Hayes &amp;amp; Mariame Kaba&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For most of my life I tended to avoid people as much as possible. Since I don&amp;rsquo;t
remember my parents regularly having friends over for a meal or a coffee, I&amp;rsquo;ve
always considered my behaviour a trait I share with the rest of my family.&lt;/p&gt;
&lt;p&gt;Before activism and before &lt;a href=&#34;https://manueluberti.eu/posts/2025-01-15-ribellione-animale/&#34;&gt;Ribellione Animale&lt;/a&gt; (RA from now on) in particular, I was set
on my parents&amp;rsquo; footsteps. In retrospect, the way I chose to live without many
people around could be related to specific episodes from my teen days during
which, among so-called friends, I experienced an insurmountable distance. Did I
discard meaningful relationships because I was afraid to face that distance
again? It&amp;rsquo;s hard to tell.&lt;/p&gt;
&lt;p&gt;On the other hand, it&amp;rsquo;s easy to notice how comfortable I am any time I am
involved with fellow activists. Why is this happening? How much does it have to
do with me? I still don&amp;rsquo;t open up easily with other people, so there must be
something else at play here.&lt;/p&gt;
&lt;p&gt;I found the answer I was looking for in the beautiful &lt;em&gt;Let This Radicalize You&lt;/em&gt;
by Kelly Hayes and Mariame Kaba. In short, I&amp;rsquo;ve never felt to belong.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A strong organizing community is more than a labor force for social justice. It
is an ecosystem of care, learning, relationship building, and action.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Let This Radicalize You&lt;/em&gt;, Kelly Hayes &amp;amp; Mariame Kaba&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Not only isn&amp;rsquo;t activism as a group act sustainable without an organising
community, but every single person involved has to experience what Hayes and
Kaba describe as the sense of belonging.&lt;/p&gt;
&lt;p&gt;I see this belonging as a sweet combination of multiple facets. That is, when I
sense belonging the path to my self-determination is much clearer, I know in my
heart we believe in each other, and I am empowered by relationships of mutual
aid to the point that &amp;ldquo;it becomes less important whether or not I am unafraid&amp;rdquo;,
as Audre Lorde wrote in &lt;em&gt;The Cancer Journals&lt;/em&gt;.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;The extent of this feeling of belonging becomes even more relevant when I
compare my current involvement with RA to my previous experience with Anonymous
for the Voiceless (AV from now on). If I may stretch a bit two categories
offered by Hayes and Kaba, AV was mostly about connectivity whereas RA is all
about political communion. Put otherwise, AV cared more about coordinating
activists for the next &lt;a href=&#34;https://manueluberti.eu/posts/2024-04-23-first-cube-of-truth/&#34;&gt;cube of truth&lt;/a&gt; via text messages, while RA practices and encourages care for each other
first and foremost.&lt;/p&gt;
&lt;p&gt;This kind of solidarity is not a given, nor has it to be taken for granted just
because we share some ideas and core values. Instead, it&amp;rsquo;s a process we go
through every day, and it&amp;rsquo;s a demanding one. We have to show up for one another,
we must be there in order for each and everyone of us to keep hoping in the
possibility we are building together.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Together, we rise to deprive the monster of its simple story, and replace it
with our own.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Let This Radicalize You&lt;/em&gt;, Kelly Hayes &amp;amp; Mariame Kaba&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&amp;rsquo;m not an organiser and yet I feel like Hayes and Kaba have prepared me with
the basic resources to become one eventually. Through many voices who have known
firsthand what it takes for any struggle to exist, &lt;em&gt;Let This Radicalize You&lt;/em&gt;
tells stories of resistance and pressure campaigns. Every word we read is an act
of courage in itself.&lt;/p&gt;
&lt;p&gt;Unfortunately, not all the battles are won in this book. The systemic oppression
we have to deal with is too powerful and resilient to be broken once and for
all. Nonetheless, the fact that everybody Hayes and Kaba discuss with refuses to
give up should be enough for any activist reading these pages to do the same.&lt;/p&gt;
&lt;p&gt;Whenever we look around us we see what&amp;rsquo;s at stake. It may feel like it&amp;rsquo;s too
much, so we shut our eyes. &lt;em&gt;Let This Radicalize You&lt;/em&gt; teaches us to keep our eyes
open, instead, and to search for hope rather than despair. The truth is we can&amp;rsquo;t
afford despair, not now. Yet this doesn&amp;rsquo;t mean that we can&amp;rsquo;t build alternatives
towards hope.&lt;/p&gt;
&lt;p&gt;My preferred way to understand hope is to consider it, ultimately, as nothing
more than the possibility of change. And change is what &lt;em&gt;we&lt;/em&gt; are.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;The passage I refer to is quoted in &lt;em&gt;Let This Radicalize You&lt;/em&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Dire l'opposto</title>
      <link>https://manueluberti.eu/posts/2025-03-01-opposto/</link>
      <pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-03-01-opposto/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;The master&amp;rsquo;s tools will never dismantle the master&amp;rsquo;s house.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Sister Outsider&lt;/em&gt;, Audre Lorde&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nel corso della mia carriera come sviluppatore software ho avuto l&amp;rsquo;opportunità
di lavorare per varie aziende, sia italiane che straniere. Un percorso che, da
un lato, mi ha impedito di crescere all&amp;rsquo;interno di una singola realtà,
dall&amp;rsquo;altro mi ha permesso di conoscere tante persone. Do molto valore a questa
esperienza, perché mi ha fatto maturare in modi magari non strettamente legati
alla carriera professionale ma non per questo meno preziosi. Anzi.&lt;/p&gt;
&lt;p&gt;Il mio divenire me stesso è stato accompagnato, tuttavia, da una spiacevole
costante. In ogni ufficio che ho attraversato e con tutti i team con cui ho
collaborato non è mai venuta a mancare una malsana dose di maschilismo.&lt;/p&gt;
&lt;p&gt;Durante i primi tempi della mia carriera non reagivo a quanto succedeva,
rivelandomi così, attraverso il mio silenzio omertoso, complice più o meno
inconsapevole dei fatti di cui ero testimone. Fuggire da me e capire che stare
zitto mi rendeva non meno colpevole degli altri ha richiesto, e per certi versi
sta ancora richiedendo, un lungo e intenso processo.&lt;/p&gt;
&lt;p&gt;Se è vero che grazie alla &lt;a href=&#34;https://manueluberti.eu/posts/2024-07-15-ba-journey/&#34;&gt;filosofia&lt;/a&gt; ho
cominciato a guardare meglio dentro di me, è altrettanto vero che i primi
incontri con l&amp;rsquo;attivismo hanno palesato l&amp;rsquo;insufficienza della mia posizione.
Sono sulla buona strada, certo, ma ho fatto solamente due passi in avanti. C&amp;rsquo;è
ancora parecchio da fare per superarmi.&lt;/p&gt;
&lt;p&gt;Tuttavia, so di essere cambiato quel tanto che basta per avere rotto
definitivamente il muro del mio silenzio. A titolo di esempio voglio portare un
recente episodio accaduto in ufficio nel quale l&amp;rsquo;urgenza di obiettare alle
parole degli altri ha trovato la mia voce.&lt;/p&gt;
&lt;p&gt;Durante una pausa dagli schermi, alcuni colleghi si sono lanciati in una serie
di commenti riguardo la presunta incapacità delle donne quando si tratta di
programmazione informatica. Al termine di uno scambio di battute piuttosto
divertenti dal loro punto di vista, uno di loro si gira e mi domanda: &amp;ldquo;E tu cosa
ne pensi, Manuel?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Io: &amp;ldquo;Esattamente l&amp;rsquo;&lt;em&gt;opposto&lt;/em&gt; di quello che pensate voi.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Il discorso è capitolato in fretta. L&amp;rsquo;autore della domanda ha provato a portare
la sua esperienza a favore della sua tesi, ma non è servito a nulla visto che,
per sua ammissione, si tratta di un&amp;rsquo;esperienza limitata. Al tempo stesso, di
sicuro non sarà stata la mia reazione a fare cambiare opinione a lui o agli
altri, ma non importa. Dissentire era necessario. Dare fastidio vien da sé.&lt;/p&gt;
&lt;p&gt;Al di là del mio rifiutare beceri stereotipi, il problema è la normalità con cui
essi persistono negli ambienti di lavoro in cui mi vengo a trovare. Una
normalità convincente al punto tale che il cameratismo non solo è dato per
scontato, ma non è mai nemmeno messo in discussione. Fra uomini e su temi
specifici si è assolutamente certi di trovare conferma del proprio sentire nel
collega di fianco, anche quando lo si conosce poco o proprio per nulla.&lt;/p&gt;
&lt;p&gt;Io invece trovo che sia un piacere respingere determinate posizioni perché in
esse non mi riconosco. È un piacere mettere in crisi la presunta convinzione di
trovarsi fra propri simili e per forza di cose in comune accordo. È un piacere,
insomma, causare dispiacere.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Le persone non si radicalizzano combattendo le battaglie degli altri.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Manifesti femministi&lt;/em&gt;, Deborah Ardilli&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    <item>
      <title>Per essere contenti</title>
      <link>https://manueluberti.eu/posts/2025-02-19-per-essere-contenti/</link>
      <pubDate>Wed, 19 Feb 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-02-19-per-essere-contenti/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Le rondini mi vennero incontro con un grido alto di saluto: le riconobbi, erano
ancora mie parenti; rapide, calavano nella strada mettendo ovunque la loro
accorata disperazione. Le sentivo gridare dentro di me.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Dalla parte di lei&lt;/em&gt;, Alba de Céspedes&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Adoro l&amp;rsquo;accadere di una coincidenza significativa, ovvero quello strano evento
che Carl Jung ha definito
&lt;a href=&#34;https://it.wikipedia.org/wiki/Sincronicit%C3%A0&#34;&gt;sincronicità&lt;/a&gt; di nessi
acausali. In particolare, reputo adorabile che un libro entri nella mia vita,
senza che io abbia pianificato il suo ingresso in alcun modo, per parlarmi
esattamente di quello di cui ho bisogno in quel dato momento.&lt;/p&gt;
&lt;p&gt;A onor del vero era un po&amp;rsquo; che avevo &lt;em&gt;Dalla parte di lei&lt;/em&gt; di Alba de Céspedes
fra la pila dei libri da leggere. Più o meno da quando incontrai l&amp;rsquo;autrice per
la prima volta su &lt;a href=&#34;https://laltrabiblioteca.substack.com/&#34;&gt;L&amp;rsquo;altra biblioteca&lt;/a&gt;.
Senza un motivo preciso ne ho continuamente rimandata la lettura, lasciando
passare mesi, forse un anno addirittura, tra le sue pagine e me. Finché
all&amp;rsquo;improvviso, totalmente impreparato, l&amp;rsquo;ho preso in mano. Giunto al termine
sono ancora impegnato nel tentativo di mettere ordine al caos di pensieri che de
Céspedes ha suscitato in me.&lt;/p&gt;
&lt;p&gt;La mia reazione a &lt;em&gt;Dalla parte di lei&lt;/em&gt; deve parecchio allo &lt;a href=&#34;https://manueluberti.eu/posts/2025-02-13-speculative-workshop/&#34;&gt;stato
emotivo&lt;/a&gt; in cui mi trovo
ultimamente. Il che non significa che l&amp;rsquo;opera di de Céspedes non sappia farsi
amare per mille altre ragioni. C&amp;rsquo;è di tutto fra le sue pagine: urgente
femminilità e implacabile maschilismo; tradizioni in contrasto e distanze
incolmabili fuori e dentro l&amp;rsquo;amore; la congenita inafferrabilità del presente e
lo spettro ineludibile del passato; i turbamenti di una giovane in cerca di
compromessi con una vita che non accenna a darle tregua; la guerra, le bombe,
l&amp;rsquo;antifascismo. E molto, molto altro.&lt;/p&gt;
&lt;p&gt;Ciò che ad ogni modo mi ha sorpreso a più riprese è la frequenza con cui ho
scorto tracce di me stesso in Alessandra, protagonista e voce narrante del
romanzo. Non tanto per gli eventi che la vedono coinvolta, perché, nonostante le
somiglianze con l&amp;rsquo;Italia contemporanea e il suo prolungato volgere a destra, il
tempo delle vicende raccontate è lontano da me, sia sul piano storico che su
quello culturale.&lt;/p&gt;
&lt;p&gt;In Alessandra, piuttosto, ho rivisto diverse versioni di me. Il me di un tempo,
incapace di trovare lo spazio adatto per non dover fingere di essere qualcun
altro, e perciò sempre fuori posto, perennemente confinato in un altrove
indeterminato. Le mie poche certezze di allora hanno fin troppo in comune con
quelle della giovane Alessandra. Come in lei, in me c&amp;rsquo;era un filtro atto ad
impedirmi di penetrare senza vergogna la realtà.&lt;/p&gt;
&lt;p&gt;Alessandra è però anche il me di adesso, ossia una persona che si dibatte tra
istanze razionali e correnti irrazionali. Attonita, si muove parallelamente alle
circostanze, le stesse circostanze che la obbligano tuttavia a prendere
posizioni decise, spesso contraddittorie rispetto al suo più intimo sentire. Lei
prova a fermarsi, cerca la quiete per ritrovarsi, ma la vita rilancia con passo
greve il suo incedere inesorabile, facendosi via via più difficile da seguire.&lt;/p&gt;
&lt;p&gt;Nessuno è contento. Alessandra se ne accorge in fretta e tenterà di dare una
ragione a questa lapidaria persuasione. Nessuno è contento perché è impossibile
esserlo mentre l&amp;rsquo;incertezza divora qualsiasi progettualità. La guerra annienta
ogni sguardo lungimirante, ma allo stesso tempo le consolazioni indispensabili
non sono nel passato di Alessandra. Guardare indietro è invece un gesto di
rassegnazione al quale lei non vuole cedere. Si costringe avanti, piegata dai
fantasmi di affetti scomparsi eppure risoluta nel suo respingere le debolezze
che attraversano l&amp;rsquo;amore.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;inquietudine di Alessandra dispiegata in &lt;em&gt;Dalla parte di lei&lt;/em&gt; ha fatto
compagnia a un sentimento del tutto simile in me. Non so se stiamo cercando le
stesse cose, noi due, o se abbiamo gli stessi sogni. A ben vedere, anzi, non
crediamo nemmeno negli stessi ideali. Abitiamo corpi differenti e ci
rappresentiamo il mondo là fuori con sensibilità ineguali. Ciononostante,
riconosciamo una crudele mancanza nella nostra vita, qualcosa di irreparabile
che concede soltanto fuggevoli attimi di preziosa contentezza.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Avrei voluto rispondergli che la nostra era un&amp;rsquo;epoca in cui bisognava adattarsi
ad essere contenti anche solo per poche ore, un pomeriggio, una notte: appena si
poteva.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Dalla parte di lei&lt;/em&gt;, Alba de Céspedes&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    <item>
      <title>Speculative fiction workshop</title>
      <link>https://manueluberti.eu/posts/2025-02-13-speculative-workshop/</link>
      <pubDate>Thu, 13 Feb 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-02-13-speculative-workshop/</guid>
      <description>&lt;p&gt;Something is changing in my life. It&amp;rsquo;s a fuzzy feeling at the moment so I&amp;rsquo;m not
able to explain it as I&amp;rsquo;d like to. It may have started last year after my trip
in &lt;a href=&#34;https://manueluberti.eu/posts/2024-09-21-heart-of-clojure/&#34;&gt;Leuven&lt;/a&gt;, or at least that&amp;rsquo;s when I
first sensed new things in the air for me. But again, it&amp;rsquo;s hard to pin down what
is &lt;em&gt;really&lt;/em&gt; changing.&lt;/p&gt;
&lt;p&gt;Mandy Brown says &lt;a href=&#34;https://everythingchanges.us/&#34;&gt;everything changes&lt;/a&gt;, and as a
philosophy graduate I know there is a long history of thinkers who share her
opinion. That&amp;rsquo;s why I&amp;rsquo;ve begun a long, tortuous process to carefully figure out
where I am and where I want to be. Are they two different places? Am I &lt;em&gt;exactly&lt;/em&gt;
where I should be?&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t think so. I&amp;rsquo;ve been feeling restless since I came back from Leuven and I
know something has to change in order to silence the craving cries in my head. I
need to look around for opportunities to understand what is going on. Most
importantly, I need to look within me and search for what it is that I&amp;rsquo;m
missing.&lt;/p&gt;
&lt;p&gt;However, I can&amp;rsquo;t do this by myself. I can be the one who sets things into
motion, but I need someone to help me clarify what those things actually are
before I can do anything about them. Seeking an alternative to myself is the
only way to get a fresh perspective on what I can&amp;rsquo;t comprehend on my own.&lt;/p&gt;
&lt;p&gt;Usually when I wish to clear my mind I write on my journal. I set out ideas and
facts as orderly as I can, and then draw the best conclusion available to me.
This time, though, I simply don&amp;rsquo;t have all the building blocks in front of me. I
have some, yes, but I am struggling to put them together.&lt;/p&gt;
&lt;p&gt;A viable solution could be reaching out to professional counselling or life
coaches, and admittedly I thought about it more than once. Instead I applied to
join a &lt;a href=&#34;https://everythingchanges.us/workshop/sf&#34;&gt;speculative fiction workshop&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I chose this approach because &lt;a href=&#34;https://manueluberti.eu/posts/2025-02-06-writing-for-a-living/&#34;&gt;writing&lt;/a&gt; is who I am. Every time I write I am expressing and exposing myself, so
confronting whatever is going on with me through writing can unveil new paths I
haven&amp;rsquo;t found just yet. Furthermore, I&amp;rsquo;ll be doing it among people who feel in
the same spot as me. Connecting with others might reveal to ourselves what we
couldn&amp;rsquo;t see on our own.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Can't you write for a living?</title>
      <link>https://manueluberti.eu/posts/2025-02-06-writing-for-a-living/</link>
      <pubDate>Thu, 06 Feb 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-02-06-writing-for-a-living/</guid>
      <description>&lt;p&gt;If one wants to catch me off guard and make me feel nervous and embarrassed, one
needs only to ask: &lt;em&gt;can&amp;rsquo;t you write for a living?&lt;/em&gt; I usually have two different
answers to this question, both of them unsatisfactory to say the least.&lt;/p&gt;
&lt;p&gt;My first answer is simple and silly: &lt;em&gt;I don&amp;rsquo;t know how to do it&lt;/em&gt;. Friends are
kind enough to support me whenever I write something here, but this blog is
mainly a conversation between me and &lt;a href=&#34;https://manueluberti.eu/posts/2024-09-15-words-others/&#34;&gt;someone who isn&amp;rsquo;t there&lt;/a&gt;. The one time I tried a film criticism course
with the vague hope of becoming a member of the team behind the magazine the
teacher was the director of, I felt out of place. The teacher was pleased enough
with my assignments, but I wasn&amp;rsquo;t going anywhere with my film reviews. My
writings sounded all very similar to me and I wasn&amp;rsquo;t really saying anything
particularly interesting about the films we were asked to comment on. It was the
same feeling I had experienced some years before, when I had tried my luck
reviewing music records. Whenever I am constrained I struggle and can hardly
deliver, an obvious sign that writing professionally is something way bigger
than me. Furthermore, &lt;a href=&#34;https://manueluberti.eu/tags/music/&#34;&gt;music&lt;/a&gt; and &lt;a href=&#34;https://manueluberti.eu/tags/cinema/&#34;&gt;film&lt;/a&gt; criticism
don&amp;rsquo;t pay the bills in Italy. Just ask anyone who&amp;rsquo;s been doing it since before I
ever dreamt of writing for a living.&lt;/p&gt;
&lt;p&gt;The second answer is even sillier: &lt;em&gt;Work gets in the way&lt;/em&gt;. For one reason or
another, I&amp;rsquo;ve always been a software developer. I started as one twenty years
ago and, beside a brief period within a language school my partner and I built,
it&amp;rsquo;s always been software developing for me. Undeniably, I&amp;rsquo;ve also been very
lucky, because it&amp;rsquo;s been eight years now of me using the only software I still
care about every day: &lt;a href=&#34;https://manueluberti.eu/tags/emacs/&#34;&gt;Emacs&lt;/a&gt;. However, work is the first thing I
blame for my lack of success with writing. In terms of hours I feel like I could
be creative with, I often say my job steals the most valuable time of my day.
But this is nonsense, of course, especially if we consider that nothing stopped
me on my way to a &lt;a href=&#34;https://manueluberti.eu/posts/2024-07-15-ba-journey/&#34;&gt;BA in philosophy&lt;/a&gt;, not
even office hours. Ten plus years of this blog speak for themselves as well, I
guess. So what, then? Is writing the one and only thing I wish I could do for a
living and I&amp;rsquo;ve been postponing since forever? What&amp;rsquo;s actually stopping me?
Again, this makes me uncomfortable.&lt;/p&gt;
&lt;p&gt;One of the reasons I keep writing every day is that the urge to do it is
impossible to resist. Journaling helps me reflect at the end of the day, for
instance. When I read a particularly &lt;a href=&#34;https://manueluberti.eu/tags/books/&#34;&gt;interesting book&lt;/a&gt;, I need to
write down whatever it makes me feel even if only to record those precious
moments. Moreover, writing is my way of keeping track of myself more than
anything else. This is why every now and then I browse the &lt;a href=&#34;https://manueluberti.eu/archive&#34;&gt;archive&lt;/a&gt;
and go read some old post of mine. Do I still believe what I wrote back then?
It&amp;rsquo;s a useful exercise. Just like journaling, it puts things into perspective,
showing me how I&amp;rsquo;ve changed thus far. Besides, it gives me a sense of the
quality of my writing, at least from my own point of view. I don&amp;rsquo;t like my early
writings, for example, since it&amp;rsquo;s pretty obvious that I was struggling to find a
way to translate my thoughts into English. And yet I like this blog for this
reason as well, because it shows that I&amp;rsquo;ve not given up and I&amp;rsquo;ve never intended
to.&lt;/p&gt;
&lt;p&gt;Maybe this is the most important lesson I should take away here. In spite of all
my fears of not feeling that good at what I do, and likely not being that good
either, I&amp;rsquo;ve kept doing it. I should treasure this persistence. I should thrive
on the mere fact that I simply love writing and forget about everything else.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>La realtà del patriarca</title>
      <link>https://manueluberti.eu/posts/2025-01-29-patriarca/</link>
      <pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-01-29-patriarca/</guid>
      <description>&lt;p&gt;Anche con l&amp;rsquo;aiuto del senno di poi, se devo indicare il punto più basso toccato
nel mio percorso di &lt;a href=&#34;https://manueluberti.eu/posts/2024-07-15-ba-journey/&#34;&gt;laurea triennale&lt;/a&gt; il
pensiero va sempre alla stessa aula e allo stesso docente. Quella stessa aula in
cui quello stesso docente cercò di convincerci del valore letterario di un testo
che ogni aspirante bigotto deve avere a portata di mano, ovvero &lt;a href=&#34;https://manueluberti.eu/posts/2022-04-13-il-cavallo-rosso/&#34;&gt;&lt;em&gt;Il cavallo
rosso&lt;/em&gt;&lt;/a&gt; di Eugenio Corti.&lt;/p&gt;
&lt;p&gt;In un&amp;rsquo;altra occasione il docente in questione, che spesso amava interrompere il
flusso della sua esposizione con baldanzosi aneddoti sul suo conto alternati a
divagazioni dallo sperato effetto umoristico, si lanciò in un&amp;rsquo;aggressione
verbale rivolta ad alcune università inglesi e americane. Il nocciolo della sua
polemica era che in quegli atenei erano stati rimossi dai curricula dei classici
greci come Eschilo perché considerati inappropriati.&lt;/p&gt;
&lt;p&gt;Lì per lì, lo ammetto, ci cascai. Guarda un po&amp;rsquo;, mi dissi, uno che ha capito che
la &lt;em&gt;cancel culture&lt;/em&gt; è dannosa. Poi però sono tornato più e più volte alle sue
parole, specialmente dopo che mi si è rivelato fino in fondo attraverso Eugenio
Corti, e due considerazioni hanno capovolto la mia posizione di partenza. Primo,
per il docente problematizzare gli incesti e gli stupri nei testi era del tutto
fuori luogo alla luce del valore estetico in gioco. Secondo, il fatto che la
donna in quei classici non di rado emerga come fragile, subordinata,
appropriabile e misurabile in termini di funzione del proprio corpo, era
perfettamente in linea con quello che Corti, e di riflesso il docente, pensava
delle &lt;em&gt;sue&lt;/em&gt; donne.&lt;/p&gt;
&lt;p&gt;Mi è tornato in mente tutto questo mentre leggevo &lt;a href=&#34;https://www.meltemieditore.it/catalogo/realismo-patriarcale/&#34;&gt;&lt;em&gt;Realismo
patriarcale&lt;/em&gt;&lt;/a&gt; di
Martina Miccichè, il nuovo libro di un&amp;rsquo;autrice la cui voce sulla contemporaneità
è fra le più interessanti in circolazione. Ad un anno di distanza da
&lt;a href=&#34;https://manueluberti.eu/posts/2025-01-06-periferia/&#34;&gt;&lt;em&gt;Femminismo di periferia&lt;/em&gt;&lt;/a&gt;, Miccichè
ritorna, se possibile, anche più furiosa e decisa nelle sue argomentazioni, ma
perché si fa carico di un peso, direi, di molto maggiore.&lt;/p&gt;
&lt;p&gt;In &lt;em&gt;Realismo patriarcale&lt;/em&gt;, infatti, Miccichè estende il suo raggio di incidenza
tematica in modo da completare il quadro che &lt;em&gt;Femminismo di periferia&lt;/em&gt; aveva
cominciato a delineare. Se nella prima opera si trattava di riposizionarci per
capire il significato più profondo dei margini e di chi li abita e vive, qui
quegli spazi e quelle vite vengono riarticolate in vista di un più ampio
percorso lungo il complicato e pericoloso intreccio fra capitale e patriarcato.
Ancora una volta, Miccichè non si nasconde e fa di piccoli, si fa per dire,
episodi privati i momenti di avvio per perlustrare quel sistema di oppressioni
interagenti, come lei stessa lo definisce&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;, in cui esistiamo e ignorando il
quale chi può permetterselo vede soltanto fin dove &lt;em&gt;vuole&lt;/em&gt; vedere.&lt;/p&gt;
&lt;p&gt;La trasparenza di Miccichè, che fa della chiarezza nella scrittura un vero e
proprio atto politico, colpisce e sa fare male sul serio. Ciò rende &lt;em&gt;Realismo
patriarcale&lt;/em&gt;, ancor più di &lt;em&gt;Femminismo di periferia&lt;/em&gt;, un libro facile da leggere
e duro da digerire, come sottolinea giustamente Rachele Borghi nella prefazione,
quasi Miccichè avesse preso alla lettera le parole di Kafka sul testo come ascia
nel mare ghiacciato dentro di noi. Ma è proprio questo il metodo migliore per
comunicare verità scomode ed essere sicure che non ci siano fraintendimenti.
Quello che bisogna dire va detto in modo che chiunque lo possa comprendere. Se
non scrivesse per tutte e per tutti, Miccichè tradirebbe se stessa, e a me non
sembra un&amp;rsquo;autrice interessata a contraddirsi per ora.&lt;/p&gt;
&lt;p&gt;La categoria &lt;em&gt;realismo patriarcale&lt;/em&gt; trova il suo compimento letterario ne &lt;em&gt;Il
cavallo rosso&lt;/em&gt;. Non so se Martina Miccichè abbia letto o meno Eugenio Corti. In
caso negativo, mi verrebbe da consigliarle di starne quanto più possibile alla
larga, ma penso che non abbia alcun bisogno di me per annusarne il fetore
reazionario e reagire di conseguenza. Quello che conta è che, invece di
lasciarci con un voluminoso e irrilevante monumento alla propria chiusura
mentale, Miccichè preferisce intavolare un discorso faccia a faccia con noi per
costringerci a riprendere in mano la storia, a trasformare il presente senza che
il passato sia un impedimento in vista del futuro che &lt;em&gt;davvero&lt;/em&gt; vogliamo.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Miccichè, &lt;em&gt;Realismo patriarcale&lt;/em&gt;, p. 156.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Ribelli e solidali</title>
      <link>https://manueluberti.eu/posts/2025-01-15-ribellione-animale/</link>
      <pubDate>Wed, 15 Jan 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-01-15-ribellione-animale/</guid>
      <description>&lt;p&gt;Della mia recente scissione da Anonymous for the Voiceless (AV d&amp;rsquo;ora in avanti)
&lt;a href=&#34;https://manueluberti.eu/posts/2024-11-30-av-failure/&#34;&gt;ho già scritto&lt;/a&gt;, dunque non mi starò a
ripetere in merito. &lt;a href=&#34;https://manueluberti.eu/posts/2024-12-22-my-2024/&#34;&gt;Dicevo anche&lt;/a&gt; che non
avevo intenzione di smettere con l&amp;rsquo;attivismo e che ero alla ricerca di una
realtà più vicina al mio sentire per poterlo riprendere senza dover rinunciare a
niente di me.&lt;/p&gt;
&lt;p&gt;Bene, da ieri sono ufficialmente entrato a far parte di &lt;a href=&#34;https://italy.animalrebellion.org/&#34;&gt;Ribellione
Animale&lt;/a&gt; insieme ad alcune delle persone con
cui avevo lasciato il capitolo locale di AV. Ma perché proprio Ribellione
Animale e non altri movimenti o organizzazioni?&lt;/p&gt;
&lt;p&gt;Dico subito che ci ho messo diverso tempo a convincermi che il modo di agire di
Ribellione Animale facesse al caso mio. Due le ragioni in particolare:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;conoscevo Ribellione Animale solo superficialmente;&lt;/li&gt;
&lt;li&gt;conoscevo ancora più superficialmente il concetto di disobbedienza civile non
violenta.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La prima ragione deriva da un uso frettoloso dei canali social di Ribellione
Animale, attraverso i quali mi ero dato l&amp;rsquo;impressione, clamorosamente infondata,
di un movimento interessato soprattutto a creare disturbo senza che le
conseguenze di determinate azioni arrivassero da qualche parte in maniera
efficace. È bastato un colloquio con il gruppo di accoglienza di Ribellione
Animale per capire quanto teoria e prassi si intreccino con intelligenza e
passione in tutto l&amp;rsquo;agire del movimento.&lt;/p&gt;
&lt;p&gt;La seconda ragione si ricollega alla prima e deriva da un altro errore di
valutazione da parte mia. Forse perché ancora scottato dall&amp;rsquo;esperienza negativa
con AV, avevo dimenticato la storia delle vittorie che la disobbedienza civile
non violenta è riuscita ad ottenere. Intralciare il quotidiano svolgimento di
eventi così da penetrare nella routine delle persone per destabilizzarne la
percezione, cosciente o incosciente, dello status quo e della sua complice
accettazione è il modo più efficace per fare pressione sulle istituzioni che
ogni giorno lo rinforzano, quello status quo, e respingono chiunque lo metta in
discussione.&lt;/p&gt;
&lt;p&gt;È da quando ho lasciato AV che non ho smesso un giorno di riflettere su tutto
questo. Ho trovato utile ripassare l&amp;rsquo;operato di figure chiave come Stokely
Carmichael e Angela Davis, ma ancora più utile mi è stato leggere Astra Taylor,
nello specifico &lt;em&gt;The Age of Insecurity&lt;/em&gt; e, soprattutto, il volume a quattro mani
con Leah Hunt-Hendrix, &lt;em&gt;Solidarity&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Proprio la solidarietà trasformativa che Taylor e Hunt-Hendrix tematizzano nel
loro testo mi sembra essere la direzione intrapresa da Ribellione Animale. Una
solidarietà con la quale non si tratta di fare di noi un&amp;rsquo;unità esclusiva in
conflitto con un antagonista da annientare. Piuttosto, una solidarietà con cui
costruire insieme uno spazio che valorizzi ogni differenza e che permetta di
relazionarsi in modo agonistico con l&amp;rsquo;avversario consensualmente individuato.
Riprendendo le parole di Taylor e Hunt-Hendrix, non dobbiamo mai dimenticare la
capacità che l&amp;rsquo;essere umano ha di cambiare. Non è in gioco l&amp;rsquo;eliminazione di un
antagonista, quindi, quanto la profonda trasformazione di un avversario.&lt;/p&gt;
&lt;p&gt;È da qui che intendo ricominciare. È così che voglio continuare.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Waves of reconciliation</title>
      <link>https://manueluberti.eu/posts/2025-01-11-the-sea/</link>
      <pubDate>Sat, 11 Jan 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-01-11-the-sea/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;The past beats inside me like a second heart.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;The Sea&lt;/em&gt;, John Banville&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I don&amp;rsquo;t remember where my interest in John Banville&amp;rsquo;s &lt;em&gt;The Sea&lt;/em&gt; comes from.
Considering I&amp;rsquo;ve never heard of John Banville before reading this book, it could
be one of those titles that someone somewhere has passingly mentioned and I&amp;rsquo;ve
felt intrigued enough to take a note before it vanished from my mind. But it
didn&amp;rsquo;t take too many pages for &lt;em&gt;The Sea&lt;/em&gt; to conquer me, so I guess John Banville
would fit nicely into that &lt;a href=&#34;https://manueluberti.eu/posts/2024-11-24-a-little-life/&#34;&gt;particular shelf&lt;/a&gt; of mine where I place contemporary literature next to classics with no
shame whatsoever.&lt;/p&gt;
&lt;p&gt;Let me clear the air first. Even though I find it rather peculiar that Banville
maintains to be primarily influenced by &lt;a href=&#34;https://en.wikipedia.org/wiki/John_Banville&#34;&gt;W. B. Yeats and Henry
James&lt;/a&gt; when &lt;em&gt;The Sea&lt;/em&gt; shows obvious
traces of Marcel Proust, I didn&amp;rsquo;t start what I intend to be a journey through
this writer&amp;rsquo;s oeuvre from this book &lt;a href=&#34;https://manueluberti.eu/posts/2023-02-19-why-proust/&#34;&gt;because of Proust&lt;/a&gt;. When I picked &lt;em&gt;The Sea&lt;/em&gt; up, it had been months
since I made the aforementioned note, so I had no plan nor specific purpose
behind my choice either.&lt;/p&gt;
&lt;p&gt;After a few pages I felt greatly annoyed by Max Morden, the narrator. It&amp;rsquo;s been
a while since I&amp;rsquo;ve come across a character so self-aware, arrogant, and
petulant. But then it started to make sense. The disparaging comments he has for
almost everyone around him serve more as the walls of his internal fortress, the
barriers he struggles to overcome in order to reconcile with the past he&amp;rsquo;s
searching for the present to mean something. This becomes particularly explicit
when it comes to his relationship with his wife and his daughter. The deeper and
harsher the contempt, the more his true feelings for them are calling for him to
embrace the here and now.&lt;/p&gt;
&lt;p&gt;However, how much can we trust Morden? He&amp;rsquo;s basing the account of his
experiences on the power of his memory, but he acknowledges its limits and more
than once he seems uncertain about his telling. One could say that this is how
memory works in general, anyway. After all, Morden&amp;rsquo;s age at the time of his
recollection could be the source behind black spots, incoherence, and the
overall weakening of his mind. Yet he knows when he&amp;rsquo;s wrong, he knows when he&amp;rsquo;s
adding too much or leaving out too many details.&lt;/p&gt;
&lt;p&gt;During a &lt;a href=&#34;https://www.youtube.com/watch?v=7YvGhyhRe-k&#34;&gt;delightful interview&lt;/a&gt;,
Banville explained that were he to write his own autobiography he wouldn&amp;rsquo;t be
factual, but it would be true. I don&amp;rsquo;t know about his other works, but I think
this relation between facts and truth marvellously applies to &lt;em&gt;The Sea&lt;/em&gt;.
Everything Morden tells us may not correspond to actual events in his past, but
this doesn&amp;rsquo;t make them any less true. Truth here is the inevitably relative
positioning of a single point of view on a carefully selected set of memories.
These memories are true as long as Morden believes them to be so and, more
importantly, as long as in them he finds what he&amp;rsquo;s looking for. He&amp;rsquo;s not even
trying that hard to convince us of their objective truth, nor is he bending the
truth a little for pleasure. True for Morden is the act of exposing himself, the
opening of private doors to let us in and see for ourselves how meaningful
intimacy can be. And nothing is truer than intimacy.&lt;/p&gt;
&lt;p&gt;Despite his untrustworthiness, Morden is alone and only his memories seem to
keep him company now. Whenever he criticises someone or misremember a specific
place or moment in time, we know he&amp;rsquo;s losing something precious and that this
will keep him further away from the reconciliation he&amp;rsquo;s after. How we deal with
our own past is never a simple operation of retelling. The audience doesn&amp;rsquo;t
matter either. Some past is meant to be forgotten, other is here to stay.
Sometimes we choose what we can let go, others we are stuck with our
remembrances. The truth is that looking forward always implies looking back.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Yet for all that, I cannot rid myself of the conviction that we missed
something, that I missed something, only I do not know what it might have
been.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;The Sea&lt;/em&gt;, John Banville&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    <item>
      <title>A new artwork by Disagioia</title>
      <link>https://manueluberti.eu/posts/2025-01-09-disagioia/</link>
      <pubDate>Thu, 09 Jan 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-01-09-disagioia/</guid>
      <description>&lt;p&gt;If you visit this website on a regular basis&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; then you may have already
noticed that my poorly customised hawthorn SVG is gone.&lt;/p&gt;
&lt;p&gt;The new, brilliant artwork comes from the cleverly creative hands of
&lt;a href=&#34;https://msha.ke/disagioia&#34;&gt;Disagioia&lt;/a&gt;, an Italian artist who saw the lack of
artistic skills on my side and was kind enough to spare me some much deserved
criticism.&lt;/p&gt;
&lt;p&gt;The great thing is that we share a common interest in veganism and
anti-speciesism, so she immediately understood what I was looking for to make
this corner of the web a bit more personal and beautiful.&lt;/p&gt;
&lt;p&gt;Isn&amp;rsquo;t it pretty?&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/subspet-scaled.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Furthermore, Gioia updated the Open Graph image as well, adding the right words
from my beloved Baruch Spinoza.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/mu-scaled.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;If you enjoy her work do check out &lt;a href=&#34;https://msha.ke/disagioia&#34;&gt;her portfolio&lt;/a&gt; to
see what she&amp;rsquo;s capable of. I&amp;rsquo;m rather confident you&amp;rsquo;ll find something you&amp;rsquo;ll
like in there.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Thanks a lot for that!&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Dalla periferia con furore</title>
      <link>https://manueluberti.eu/posts/2025-01-06-periferia/</link>
      <pubDate>Mon, 06 Jan 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-01-06-periferia/</guid>
      <description>&lt;p&gt;Non so mai come qualificare il mio rapporto con i social. Da un lato non perdo
occasione per criticarne la superficialità della gran parte dei contenuti e
insultarli per il tempo che mi fanno perdere; dall&amp;rsquo;altro, c&amp;rsquo;è una percentuale
più o meno grande di valore aggiunto alla mia vita grazie ad essi. Senza i
social, per esempio, non sarei mai incappato in &lt;a href=&#34;https://linktr.ee/martimicci&#34;&gt;Martina
Miccichè&lt;/a&gt; e non avrei mai saputo dell&amp;rsquo;esistenza
del suo libro &lt;a href=&#34;https://sonda.it/prodotto/femminismo-di-periferia/&#34;&gt;&lt;em&gt;Femminismo di
periferia&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Miccichè è una scienziata politica, una fotoreporter e un&amp;rsquo;attivista
dall&amp;rsquo;approccio intersezionale e antispecista. Scrive una newsletter di nome
&lt;em&gt;Buccia&lt;/em&gt; e a me sembra che non si fermi mai, neanche per tirare il fiato. Chi
l&amp;rsquo;ha vista presentare &lt;em&gt;Femminismo di periferia&lt;/em&gt; dal vivo parla di &lt;a href=&#34;https://rewriters.it/femminismo-di-periferia-un-libro-dal-margine-della-citta/&#34;&gt;serate
travolgenti&lt;/a&gt;
ed &lt;a href=&#34;https://open.spotify.com/episode/3WvolikgVl6Fq1TdH8WIie?si=8ad96b2a72ae4362&#34;&gt;esperienze
intense&lt;/a&gt;
dove la rabbia appassionata dell&amp;rsquo;autrice emerge con tutta la sua forza.&lt;/p&gt;
&lt;p&gt;È pur vero che bastano poche pagine del libro in questione per percepire con
quale umore Miccichè stia scrivendo. Partendo dal quartiere milanese in cui è
cresciuta, la Comasina, l&amp;rsquo;autrice analizza tutte le implicazioni della tremenda
opposizione centro-periferia. Cosa significa vivere in centro se non &lt;em&gt;essere&lt;/em&gt; al
centro? E per converso, che impatto ha &lt;em&gt;esistere&lt;/em&gt; fuori da esso? Dal suo essere
socialmente costruita al bisogno di de-costruirla collettivamente, la relazione
centro-periferia investe spazi che non sono solo geografici, ma esistenziali,
economici e, prima di tutto, politici. I corpi umani e non umani intrappolati
nella distanza dal centro sono segnati da una differenza che ne sancisce lo
statuto ontologico inferiore rispetto a quello di chi gode del privilegio di
poter usufruire del centro. Esistere fuori da esso, dunque, è anche &lt;em&gt;resistere&lt;/em&gt;
ad esso.&lt;/p&gt;
&lt;p&gt;La restrizione degli spazi vitali e la riduzione del valore sociale di luoghi e
corpi è comprensibile solo se le si osserva da più punti di vista. Miccichè,
allora, lavora in modo da non concentrare il proprio sguardo su un&amp;rsquo;unica
limitante traiettoria. Per capire le vite ai margini è necessario prima capire
cosa sono quei margini e le conseguenze che abitandoli ci si porta dietro. Si
nasce marginalizzati o lo si diventa? Si vive in periferia o si è la periferia?
Il &lt;em&gt;fuori&lt;/em&gt; messo a tema qui è un &lt;em&gt;al di là&lt;/em&gt; del centro che quest&amp;rsquo;ultimo sceglie,
ogni giorno, di allontanare sempre di più. Davanti alla periferia il centro si
volta dall&amp;rsquo;altra parte, ne rifiuta le ragioni e contribuisce ad indebolirne le
certezze e le sicurezze in nome di uno status quo che si sceglie,
perentoriamente, di non mettere in discussione.&lt;/p&gt;
&lt;p&gt;Genere, razza e specie sono le categorie con le quali Miccichè interpreta la
periferia, ma è anche grazie ad essa che la marginalizzazione di determinate
categorie può essere colta nella sua complessità. Il maschilismo che soggiace
all&amp;rsquo;organizzazione capitalistica del centro si traduce ai margini con esperienze
che diventano chiare solo se illuminate da chi, in quei margini, è cresciuta
guadagnando, volente o nolente, la prospettiva giusta. La violenza di genere in
tutte le sue sfaccettature non è una prerogativa inspiegabile della periferia,
ma è resa possibile e sostenuta dal centro che, separandosene consapevolmente,
le permette di svilupparsi togliendole visibilità. Il razzismo che esclude da
qualsiasi garanzia sociale ed economica è incluso dal centro come necessario
correlato da espellere, in modo da assicurare il livello minimo di decoro
richiesto per rimanere centro in quanto tale. Rimossi, &lt;a href=&#34;https://www.vandaedizioni.com/prodotto/carne-da-macello-la-politica-sessuale-della-carne/&#34;&gt;referenti
assenti&lt;/a&gt;,
gli animali non umani costretti nella macchina di produzione sono confinati
nella periferia, ridotti a cose per diventare oggetti di consumo, mentre il
centro antropico concede appena un poco di spazio agli &lt;em&gt;altri&lt;/em&gt; non umani, quelli
che ha selezionato per sé.&lt;/p&gt;
&lt;p&gt;Sono cresciuto in una periferia che pensavo non avesse troppo in comune con la
Comasina di Miccichè e che mi ha nascosto molte delle realtà descritte in
&lt;em&gt;Femminismo di periferia&lt;/em&gt;. Oggi che da anni vivo altrove, è solo grazie a questo
libro che ho imparato a vederne tutte le contraddizioni, a riconoscerne le
eccedenze, a biasimarne le omissioni. Solo adesso capisco che tutto quello che
mancavo di vedere era costruito per non essere visto. Solo decentrandomi ho
potuto vedere il centro.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Un avviamento qualunque</title>
      <link>https://manueluberti.eu/posts/2025-01-04-italian/</link>
      <pubDate>Sat, 04 Jan 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-01-04-italian/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Non mancava altro che un&amp;rsquo;occasione, una spinta, un avviamento qualunque, per
ridurre le parole a fatti; e non tardò molto.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;I promessi sposi&lt;/em&gt;, Alessandro Manzoni&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Un breve annuncio per segnalare che, a partire proprio da questo annuncio
stesso, d&amp;rsquo;ora in avanti troveranno spazio sul blog articoli in lingua italiana.&lt;/p&gt;
&lt;p&gt;È qualcosa cui stavo pensando &lt;a href=&#34;https://manueluberti.eu/posts/2024-09-15-words-others/&#34;&gt;da un po&amp;rsquo;&lt;/a&gt;,
a dire il vero, e più di una volta mi è stato chiesto perché non scrivessi in
italiano. La mia giustificazione è sempre stata la stessa, ovvero che con
l&amp;rsquo;inglese avevo l&amp;rsquo;impressione di raggiungere più persone possibili. Tuttavia,
può essere un bell&amp;rsquo;esercizio per me scrivere in entrambe le lingue, poiché sarò
costretto ad adeguare la forma dei miei pensieri in modi diversi.&lt;/p&gt;
&lt;p&gt;Ad ogni modo, gli articoli in italiano saranno raggruppati sotto la categoria
&lt;a href=&#34;https://manueluberti.eu/tags/italian&#34;&gt;&lt;em&gt;italian&lt;/em&gt;&lt;/a&gt;. In homepage e nell&amp;rsquo;&lt;a href=&#34;https://manueluberti.eu/archive&#34;&gt;archivio&lt;/a&gt; l&amp;rsquo;apposita
bandierina (&amp;#x1f1ee;&amp;#x1f1f9;) indicherà gli articoli in italiano. Un click su di essa vi
rimanderà a tutti gli articoli nella suddetta lingua.&lt;/p&gt;
&lt;p&gt;Buona lettura!&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Disorderly human</title>
      <link>https://manueluberti.eu/posts/2025-01-01-bazterrica/</link>
      <pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2025-01-01-bazterrica/</guid>
      <description>&lt;p&gt;As I was reading Agustina María Bazterrica&amp;rsquo;s &lt;em&gt;Cadáver Exquisito&lt;/em&gt;,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; I was
surprised to acknowledge my detachment from the horrific violence perpetrated
against human bodies treated as edible products. Have I become so disenchanted
with the reality around me that I cannot feel anything any more? Why, then, did
the ending disturb me more than what came before?&lt;/p&gt;
&lt;p&gt;The truth is Bazterrica&amp;rsquo;s book put me through a rather unpleasant ordeal. With
the sole exception of a brief episode of mindless cruelty against puppies, I
found myself repeatedly unmoved by passages where the processing of selected
human lives into meat is described in vivid details. Yet when the final moments
revealed the aberrant plan of the protagonist, I started reconsidering
everything that had happened up to that point, including my feelings.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Cadáver Exquisito&lt;/em&gt; can be appreciated from different points of view. It&amp;rsquo;s a
powerful critique of all sorts of capitalistic exploitation and a tale of
cynical survivalism, both issues of the utmost relevance nowadays. Morevover,
trans-feminism and anti-speciesism can help us interpret the text as a poignant
metaphor of how ingrained the disregard for other&amp;rsquo;s human and non-human lives is
in the self-proclaimed superior species.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I have to admit, though, that I was a bit disappointed at first because most of
the events seem to lack emotional depth. I was afraid the reader should only
care about the shocking dystopia in front of them, whereas I was looking for
intellectual gratification. Events are cut short, placidly placed one after the
other, and descriptions are only pertinent insofar as the reader doesn&amp;rsquo;t lose
track of the horror. I didn&amp;rsquo;t understand why Bazterrica is purposefully glossing
over historical facts, for instance. I was craving for more information about
the pandemic that created the alternative reality she&amp;rsquo;s presenting here.&lt;/p&gt;
&lt;p&gt;However, I was wrong on multiple accounts. First of all, we experience
everything in &lt;em&gt;Cadáver Exquisito&lt;/em&gt; through Marcos Tejo&amp;rsquo;s acts and thoughts. In
confining the reader to his mind Bazterrica rightly chooses only what&amp;rsquo;s
necessary to render Marcos&amp;rsquo; version of the story. The plain language Bazterrica
uses is a brilliant technique to display the cognitive dissonance her
protagonist needs in order to position himself at a safe distance from the flesh
and blood he&amp;rsquo;s surrounded by.&lt;/p&gt;
&lt;p&gt;Furthermore, this is precisely why the ending hit me so hard. From the very
beginning Bazterrica is convincingly eroding Marcos&amp;rsquo; privileged, reassuring
position as a member of a society whose conditions of possibility he contributes
to. But when Marcos reveals himself for who he actually is, every effort he has
made to escape his world turns out to be a farce. Whether speciesism or
capitalism are responsible for his productive and reproductive instincts,
Bazterrica doesn&amp;rsquo;t tell. The system in place permeates everything around and,
more importantly, within Marcos. Whatever we presumed that he was feeling about
his father, his dogs, his sister or his wife is reduced to a single goal, that
is ensuring the permanence of the very system he has never really been alienated
from.&lt;/p&gt;
&lt;p&gt;Once again, horror proves to be a genre capable of penetrating our reality with
unconventional strength. We may refuse to accept the premises of &lt;em&gt;Cadáver
Exquisito&lt;/em&gt; because we believe in a different worldview, but we cannot avoid the
unequivocal questions about &lt;em&gt;our future&lt;/em&gt;. A future that inevitably includes our
specific worldview among many others, humans&amp;rsquo; and non-humans&#39;.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I read the English translation titled &lt;em&gt;Tender is the Flesh&lt;/em&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;See Valentina Greco&amp;rsquo;s &lt;em&gt;Specialità umane. Una lettura posizionata di&lt;/em&gt;
Cadavere squisito &lt;em&gt;di Agustina Bazterrica&lt;/em&gt; in &lt;a href=&#34;http://www.liberazioni.eu/liberazioni-n-58/&#34;&gt;&lt;em&gt;Liberazioni
#58&lt;/em&gt;&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>My 2024</title>
      <link>https://manueluberti.eu/posts/2024-12-22-my-2024/</link>
      <pubDate>Sun, 22 Dec 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-12-22-my-2024/</guid>
      <description>&lt;p&gt;2024 has been a mixed bag of delight, anger, frustration, joy, and
disappointment. A year of questions, connections, and self-determination. There
have been many beautiful things that I know I&amp;rsquo;m going to treasure, but
unfortunately they didn&amp;rsquo;t come alone.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s fair to say then that 2024 has pushed me to reconsider many things, myself
included. How far this is going to get me it&amp;rsquo;ll be next year&amp;rsquo;s real challenge.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;anonymous-for-the-voiceless&#34;&gt;Anonymous for the Voiceless&lt;/h3&gt;
&lt;p&gt;In terms of emotional turmoil this has to be the central experience of my 2024.&lt;/p&gt;
&lt;p&gt;My journey with Anonymous for the Voiceless was what I needed to finally &lt;a href=&#34;https://manueluberti.eu/posts/2024-04-23-first-cube-of-truth/&#34;&gt;engage
with activism&lt;/a&gt;. It also led me to
meet awesome people who make me fell less alone in my resistance to a status quo
that doesn&amp;rsquo;t understand how to care.&lt;/p&gt;
&lt;p&gt;At the same time &lt;a href=&#34;https://manueluberti.eu/posts/2024-11-11-av-activism/&#34;&gt;something&lt;/a&gt; didn&amp;rsquo;t seem
quite right to me, and when everything fell apart I understood &lt;a href=&#34;https://manueluberti.eu/posts/2024-11-30-av-failure/&#34;&gt;the true
nature&lt;/a&gt; of this organisation and decided to
leave.&lt;/p&gt;
&lt;p&gt;However, I don&amp;rsquo;t intend to stop with my activism because of this sad outcome. I
only need a better project to do it, so I&amp;rsquo;m exploring options.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;bluesky&#34;&gt;Bluesky&lt;/h3&gt;
&lt;p&gt;Despite all my doubts and concerns I joined
&lt;a href=&#34;https://bsky.app/profile/un-animale.bsky.social&#34;&gt;Bluesky&lt;/a&gt; last month and so far
I&amp;rsquo;ve been enjoying the experience. I found a rich community of philosophers and
academics sharing worthwhile content most of the time.&lt;/p&gt;
&lt;p&gt;On the other hand, it doesn&amp;rsquo;t appear to be an &lt;a href=&#34;https://mas.to/@TodePond/113691091294960279&#34;&gt;entirely safe
space&lt;/a&gt;. I also tend to get tired
rather quickly with social media, especially if I feel like I&amp;rsquo;m wasting hours
following nothing in particular.&lt;/p&gt;
&lt;p&gt;Therefore when my next round-up comes I may not be on Bluesky any more.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;books&#34;&gt;Books&lt;/h3&gt;
&lt;p&gt;I thought over and over again about my favourite books of 2024. It hasn&amp;rsquo;t been
an easy task and I already know I&amp;rsquo;ll regret leaving some great reads out.&lt;/p&gt;
&lt;p&gt;In order to avoid any further crime, I&amp;rsquo;m going to use a basic alphabetical order
to list the most relevant titles, hence no real preference will be expressed.
Here we go:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Animali si diventa&lt;/em&gt; (Federica Timeto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2024-11-01-the-bell-jar/&#34;&gt;&lt;em&gt;The Bell Jar&lt;/em&gt;&lt;/a&gt; (Sylvia Plath)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Calibano e la strega&lt;/em&gt; (Silvia Federici)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2024-12-12-checkout-19/&#34;&gt;&lt;em&gt;Checkout 19&lt;/em&gt;&lt;/a&gt; (Claire-Louise Bennett)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Cospirazione animale&lt;/em&gt; (Marco Reggio)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Del governo degli animali&lt;/em&gt; (Benedetta Piazzesi)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Dialoghi sulla religione naturale&lt;/em&gt; (David Hume)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2024-04-01-therefore-i-am/&#34;&gt;&lt;em&gt;Elizabeth Costello&lt;/em&gt;&lt;/a&gt; (J. M. Coetzee)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Estinzione&lt;/em&gt; (Thomas Bernhard)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2024-10-26-fortnight/&#34;&gt;&lt;em&gt;The Fortnight in September&lt;/em&gt;&lt;/a&gt; (R. C. Sherriff)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Letteratura come utopia&lt;/em&gt; (Ingeborg Bachmann)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Lettere dal carcere&lt;/em&gt; (Antonio Gramsci)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2024-11-24-a-little-life/&#34;&gt;&lt;em&gt;A Little Life&lt;/em&gt;&lt;/a&gt; (Hanya Yanagihara)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2024-03-17-language-tension/&#34;&gt;&lt;em&gt;Malina&lt;/em&gt;&lt;/a&gt; (Ingeborg Bachmann)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Perturbamento&lt;/em&gt; (Thomas Bernhard)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Poesie&lt;/em&gt; (Paul Celan)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Under the Skin&lt;/em&gt; (Michael Faber)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;L&amp;rsquo;uomo senza qualità&lt;/em&gt; (Robert Musil)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Random notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ingeborg Bachmann should be a mandatory read everywhere in the world;&lt;/li&gt;
&lt;li&gt;every book I read about non-human animals makes me a better human one;&lt;/li&gt;
&lt;li&gt;Paul Celan will keep me busy for at least another life;&lt;/li&gt;
&lt;li&gt;Robert Musil is the perfect excuse to avoid direct sunlight;&lt;/li&gt;
&lt;li&gt;Claire-Louise Bennett is the right writer at the right time;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.liberazioni.eu/&#34;&gt;&lt;em&gt;Liberazioni&lt;/em&gt;&lt;/a&gt; has become my favourite
periodical.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Missing from the list are a couple of books I spent a good chunk of hours on:
the first volume of Karl Marx&amp;rsquo;s &lt;em&gt;Il Capitale&lt;/em&gt; and György Lukács&amp;rsquo; &lt;em&gt;Storia e
coscienza di classe&lt;/em&gt;. I have yet to recover from these challenging and deeply
rewarding works, but everything I&amp;rsquo;ve been learning will stay with me.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;cinema&#34;&gt;Cinema&lt;/h3&gt;
&lt;p&gt;Overall I had great times with my old passion for cinema this year. The
following selection is not strictly related to 2024 films because there is
always something I missed from previous years. Anyway, here it is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;All of Us Strangers&lt;/em&gt; (Andrew Haigh)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;The Animal People&lt;/em&gt; (Denis Henry Hennelly, Casey Suchan)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;La Bête&lt;/em&gt; (Bertrand Bonello)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Caught by the Tides&lt;/em&gt; (Jia Zhang-ke)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Challengers&lt;/em&gt; (Luca Guadagnino)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;The Dreamed Ones&lt;/em&gt; (Ruth Beckermann)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Emilia Pérez&lt;/em&gt; (Jacques Audiard)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;L&amp;rsquo;étè dernier&lt;/em&gt; (Catherine Breillat)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2024-03-26-food-for-profit/&#34;&gt;&lt;em&gt;Food for Profit&lt;/em&gt;&lt;/a&gt; (Giulia
Innocenzi, Paolo D&amp;rsquo;Ambrosi)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Godzilla Minus One&lt;/em&gt; (Takashi Yamazaki)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Here&lt;/em&gt; (Robert Zemeckis)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Judas And the Black Messaiah&lt;/em&gt; (Shaka King)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Sex&lt;/em&gt; (Dag Johan Haugerud)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Twilight of the Warriors: Walled In&lt;/em&gt; (Soi Cheang)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;The Young Karl Mark&lt;/em&gt; (Raoul Peck)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Random notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;nothing has come close to the devastating effect &lt;em&gt;All of Us Strangers&lt;/em&gt; has had
on me, and I won&amp;rsquo;t forget it any time soon;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Food for Profit&lt;/em&gt; should be a mandatory watch everywhere in the world;&lt;/li&gt;
&lt;li&gt;sometimes a giant monster is all I need to be happy;&lt;/li&gt;
&lt;li&gt;yes, Soi Cheang, I love Hong Kong cinema too;&lt;/li&gt;
&lt;li&gt;if Karl Marx was as sexy as Peck&amp;rsquo;s version of him, why isn&amp;rsquo;t everyone a sworn
Marxist yet?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;heart-of-clojure&#34;&gt;Heart of Clojure&lt;/h3&gt;
&lt;p&gt;Beside confirming itself as &lt;a href=&#34;https://manueluberti.eu/posts/2024-09-21-heart-of-clojure/&#34;&gt;the best conference&lt;/a&gt; I&amp;rsquo;ve ever been to, Heart of Clojure has had
the perhaps unintentional side effect of forcing me to rethink my position in
the IT world. I&amp;rsquo;ve been working on this ever since I got back from Leuven, but I
have a long way ahead of me.&lt;/p&gt;
&lt;p&gt;Other questions arose as well. Maybe one day I&amp;rsquo;ll come back to them with the
proper state of mind and I&amp;rsquo;ll share my findings.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;music&#34;&gt;Music&lt;/h3&gt;
&lt;p&gt;What follows is a chart as temporary as any other, apart from the first two
spots which are by miles the records I needed the most this year. Without
further ado, then:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2024-07-14-olympia-mare/&#34;&gt;&lt;em&gt;SEI ALMENO UN PO&amp;rsquo; FELICE?&lt;/em&gt;&lt;/a&gt; (Olympia Mare)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2024-10-04-diamond-jubilee/&#34;&gt;&lt;em&gt;Diamond Jubilee&lt;/em&gt;&lt;/a&gt; (Cindy Lee)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Brat&lt;/em&gt; (Charli XCX)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;This Could Be Texas&lt;/em&gt; (English Teacher)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;All of This Awaits You&lt;/em&gt; (Swami And the Bed of Nails)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;stillness stop: you have a right to remember&lt;/em&gt; (Any Other)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Make It Fit&lt;/em&gt; (Karate)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Light Sides&lt;/em&gt; (Angie McMahon)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;A Polaroid for Christmas&lt;/em&gt; (Memoria Polaroid)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Revival of a Friend&lt;/em&gt; (Sour Widows)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Searching&lt;/em&gt; (Staples Jr. Singers)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Where Next?&lt;/em&gt; (Sandwell District)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Random notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the deluxe edition of The Get Up Kids&amp;rsquo;s &lt;a href=&#34;https://manueluberti.eu/posts/2024-08-28-fake-nostalgia/&#34;&gt;&lt;em&gt;Something to Write Home
About&lt;/em&gt;&lt;/a&gt; made me cry ten seconds after
the vinyl started spinning;&lt;/li&gt;
&lt;li&gt;a Marta Del Grandi&amp;rsquo;s concert proved that she is truly from another planet;&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;ve been listening to Pinegrove for an insane amount of hours in the last few
months. I miss them so much.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;university&#34;&gt;University&lt;/h3&gt;
&lt;p&gt;There is little I can add to what &lt;a href=&#34;https://manueluberti.eu/posts/2024-07-15-ba-journey/&#34;&gt;I wrote already&lt;/a&gt;, so let me just say one thing. A younger version of
myself couldn&amp;rsquo;t understand the value of studying at university. That boy had to
undergo trials and errors, but he got there eventually. So much so &lt;a href=&#34;https://manueluberti.eu/posts/2024-09-07-philosophy-ma/&#34;&gt;he can&amp;rsquo;t
really stop now&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To be honest in the last month I&amp;rsquo;ve had some doubts about what I really want to
pursue with my studies. I&amp;rsquo;ll come back to this as soon as my mind is clear. For
now, I see interesting paths in front of me.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Self-creation and auto-fiction</title>
      <link>https://manueluberti.eu/posts/2024-12-12-checkout-19/</link>
      <pubDate>Thu, 12 Dec 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-12-12-checkout-19/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Yet in my heart I was bereft, grieving &amp;mdash; homesick for a place I had never
seen. For a place that doesn&amp;rsquo;t exist, yet I belonged there nonetheless.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Checkout 19&lt;/em&gt;, Claire-Louise Bennett&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Auto-fiction is an intriguing literary genre. Part fiction, part autobiography,
whenever I read a book that falls under this category I feel like I&amp;rsquo;m having a
terrific conversation with its author sitting next to me. This is beautifully
achieved by writers that I love such as &lt;a href=&#34;https://manueluberti.eu/posts/2023-02-19-why-proust/&#34;&gt;Marcel Proust&lt;/a&gt; or &lt;a href=&#34;https://manueluberti.eu/posts/2024-04-01-therefore-i-am/&#34;&gt;J. M. Coetzee&lt;/a&gt;, but I had a wonderful time &lt;em&gt;listening&lt;/em&gt; to
&lt;a href=&#34;https://manueluberti.eu/posts/2023-07-23-batuman-ferrari/&#34;&gt;Elif Batuman&lt;/a&gt; as well.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve recently experienced a somewhat similarly pleasant feeling with
Claire-Louise Bennett&amp;rsquo;s &lt;em&gt;Checkout 19&lt;/em&gt;. I needed something to take my mind away
from the dark places &lt;a href=&#34;https://manueluberti.eu/posts/2024-11-01-the-bell-jar/&#34;&gt;&lt;em&gt;The Bell Jar&lt;/em&gt;&lt;/a&gt; and
&lt;a href=&#34;https://manueluberti.eu/posts/2024-11-24-a-little-life/&#34;&gt;&lt;em&gt;A Little Life&lt;/em&gt;&lt;/a&gt; had built for me, but I
wasn&amp;rsquo;t expecting to be so captured by Bennett&amp;rsquo;s work.&lt;/p&gt;
&lt;p&gt;This is due first and foremost to Bennett&amp;rsquo;s writing style. Whereas, say, Elif
Batuman clearly unfolds events as she ventures to explore and perhaps relive her
past in chronological fashion, Bennett lets her pen move on a seemingly free
ride. Which is not to say that she&amp;rsquo;s ransacking her memories randomly and
without a clue about the best way to organise her recollection. She isn&amp;rsquo;t trying
to make the stream of consciousness hip again either.&lt;/p&gt;
&lt;p&gt;Bennett is recreating herself thanks to the power of language. Instead of
listening to her sardonically presenting her coming of age to us, we watch as
word after word a storyteller is born. More importantly, we&amp;rsquo;re not here to
witness passively the creation of her own self. Provided we are conscious of the
process, we actively participate as we read along. I, for instance, found myself
trying to make sense of all the literary references Bennett spreads with
adorable confidence throughout the book. I kept track of all the names and the
titles I don&amp;rsquo;t know, but at the same time I was seeing my upbringing as an avid
reader mirrored on the pages. When a specific book meant as much to her as it
meant to me I couldn&amp;rsquo;t hide a smile on my face.&lt;/p&gt;
&lt;p&gt;This is close yet not the same as the experiences one may share with the
protagonist of a novel, being them their author&amp;rsquo;s alter ego or not. &lt;em&gt;Checkout
19&lt;/em&gt; has of course episodes one can link to their own, but it&amp;rsquo;s more interesting
to observe how Bennett&amp;rsquo;s writing is shaped by the literary world she builds for
herself. The metaphor she chooses, the stories she starts telling abruptly in
the middle of a chain of thoughts, not to mention the stark beauty of the sounds
carefully picked syllables make. Her mastery of the language is put to test by
her own imagination and as we accompany her we detect the challenge with
delectation.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Is &lt;em&gt;Checkout 19&lt;/em&gt; a challenge on purpose, then? Quite the contrary. Once we&amp;rsquo;ve
adjusted ourselves to the detours, we understand that there&amp;rsquo;s only one road
ahead of Bennett and it&amp;rsquo;s waiting for us. Modernist and post-modernist writers
knew that our thoughts rarely follow straight lines, and so does Bennett. But
instead of tracing all the possible combinations on an impossible map, her
cartography is simpler and gentler. At all times we are where she wants us to
be. We&amp;rsquo;re lost only insofar as she&amp;rsquo;s lost. We are literally on the same page.&lt;/p&gt;
&lt;p&gt;How much of Claire-Louise Bennett we find in &lt;em&gt;Checkout 19&lt;/em&gt; is not really
important. In the end this book is more about the never-ending and
transformational processes of language than a rigorous collection of facts we
need to put together to have a precise biography. What matters is the spaces
Bennett creates for us to fill. The more the blanks in common, the more we share
in our own journey of self-creation.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Certain written words are alive, active, living &amp;mdash; they are entirely in the
present, the same present as you.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Checkout 19&lt;/em&gt;, Claire-Louise Bennett&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;The last sentence is a little homage to one of my favourite lines of
&lt;em&gt;Checkout 19&lt;/em&gt;, which says: &lt;em&gt;&amp;ldquo;each holding their own delectable though not
always readily detectable specimen&amp;rdquo;&lt;/em&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Anonymous for the so what</title>
      <link>https://manueluberti.eu/posts/2024-11-30-av-failure/</link>
      <pubDate>Sat, 30 Nov 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-11-30-av-failure/</guid>
      <description>&lt;p&gt;Not long after &lt;a href=&#34;https://manueluberti.eu/posts/2024-11-11-av-activism/&#34;&gt;I questioned&lt;/a&gt; myself and my
assumptions about Anonymous for the Voiceless (AV from now on), chaos ensued
among the Italian organising team. This is incredibly fascinating.&lt;/p&gt;
&lt;p&gt;The situation is rather foggy at the moment. Most of the people are preparing
themselves to leave AV behind, but so far, to the extent of my knowledge, there
have only been meetings and heated discussions. Some of the activists I&amp;rsquo;ve
talked to agree with me that something has to change, because whatever is going
on hints to a toxic environment we don&amp;rsquo;t want to be a part of any more.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t intend to indulge in personal attacks and random witch hunting. My
doubts and concerns about AV were already there, way before the last few days of
rage and desperation. From where I stand I have a limited point of view anyway,
so it&amp;rsquo;s impossible to point at official culprits with absolute certainty. Nor do
I need to, to be honest.&lt;/p&gt;
&lt;p&gt;What is really important to me is how everything I&amp;rsquo;ve read about AV since the
moment I started questioning it has been turning out to be true. For instance,
the lack of a clear communication on how the money is managed tells a lot about
the level of consideration AV has for the activists in the streets. In a recent
online meeting I was reminded of the top-down hierarchy behind AV as something I
am supposed to silently agree with in the name of the greater good. My refusal
to act as a grovelling sycophant was deemed aggressive and unhelpful. To be
fair, yes, I reacted with loud anger, but I cannot suffer obsequious smiles and
selfish connivance. This, more than anything else, caused my outburst.&lt;/p&gt;
&lt;p&gt;And yet I wasn&amp;rsquo;t expecting the proverbial shit storm I&amp;rsquo;ve witnessed in the
following days. But again, I&amp;rsquo;m not interested in the gory details behind a fight
of egos. The fact that there is a fight &lt;em&gt;in the first place&lt;/em&gt; matters here. Since
this doesn&amp;rsquo;t look like a disagreement that can be solved with rational
discussions, all of it is just the surface of a deeper problem within AV with
which nobody around me has ever wanted to engage before.&lt;/p&gt;
&lt;p&gt;Not that I can be excused here. When &lt;a href=&#34;https://manueluberti.eu/posts/2024-04-23-first-cube-of-truth/&#34;&gt;I joined AV&lt;/a&gt;, I too was impressed by their online
videos. Driven by the righteousness of the cause for non-human animal
liberation, I complied and accepted their modus operandi without paying too much
attention at what was going on behind the shiny facade. Now I can only wish I
had started the questioning of my actions and those of AV sooner.&lt;/p&gt;
&lt;p&gt;On the flip side, there is a valuable lesson for me here. Every form of activism
I am embracing from now on needs to be closely examined &lt;em&gt;before&lt;/em&gt; I start. I need
to avoid assumptions and compromises. I need core values aligned to my own. I
need honesty and proper cooperation. I need people on a common ground, not
arguably benevolent dictators and obliging pawns.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Larger than life</title>
      <link>https://manueluberti.eu/posts/2024-11-24-a-little-life/</link>
      <pubDate>Sun, 24 Nov 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-11-24-a-little-life/</guid>
      <description>&lt;p&gt;Every time I finish a renown classic, I fear that the next book will never match
my expectations. It&amp;rsquo;s silly, I know. It&amp;rsquo;s also, I think, what the Italian school
system has left me with thanks to its relentless praises for a supposedly
glorious past. The old, they imply, is always better than the new. A lesson
forever rooted in me.&lt;/p&gt;
&lt;p&gt;Contemporary literature, however, is full of works that happily and shamelessly
I place on my shelves next to &lt;a href=&#34;https://manueluberti.eu/posts/2023-02-19-why-proust/&#34;&gt;Marcel Proust&lt;/a&gt; and &lt;a href=&#34;https://manueluberti.eu/posts/2024-03-17-language-tension/&#34;&gt;Ingeborg Bachmann&lt;/a&gt;. Among
these, I&amp;rsquo;d say Hanya Yanagihara&amp;rsquo;s &lt;em&gt;A Little Life&lt;/em&gt; fits nicely if only because,
to a certain extent, it seems to naturally complement and expand upon Sylvia
Plath&amp;rsquo;s &lt;a href=&#34;https://manueluberti.eu/posts/2024-11-01-the-bell-jar/&#34;&gt;&lt;em&gt;The Bell Jar&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is not to say that Yanagihara is following Plath&amp;rsquo;s steps. It&amp;rsquo;s easy to tell
their books apart, since there are all sorts of differences such as their
writing style, the point of view from which the story is narrated, and
Yanagihara&amp;rsquo;s rich assortment of characters versus Plath&amp;rsquo;s claustrophobic
soliloquy.&lt;/p&gt;
&lt;p&gt;Essential qualities notwithstanding, at the same time it&amp;rsquo;s impossible to keep
the trajectory of Jude St. Francis&amp;rsquo;s story in &lt;em&gt;A Little Life&lt;/em&gt; apart from Esther
Greenwood&amp;rsquo;s in &lt;em&gt;The Bell Jar&lt;/em&gt;. Plath is less direct and more enthralling,
perhaps. For instance, we hardly know Esther as we turn the last page.
Yanagihara, on the other hand, gives the reader plenty of time to know Jude.
Everything happening in his own &lt;em&gt;little&lt;/em&gt; life has an enormous impact on everyone
who loves him, and we get to see how far the consequences of one&amp;rsquo;s choices and
actions reach, in what way they defy control.&lt;/p&gt;
&lt;p&gt;And yet both Esther and Jude don&amp;rsquo;t progress on a straight line. Both books
create this gripping tension where we slowly give up expecting improvements in
Jude&amp;rsquo;s and Esther&amp;rsquo;s condition. We cannot consider them safe from harm. Maybe
Jude experiences more relief than Esther, especially when he finds love, but as
we follow the non-linear unfolding of the events we get to understand how
painful and traumatic Jude&amp;rsquo;s past has been, how it has shaped him and never
ceases to do so.&lt;/p&gt;
&lt;p&gt;In order not to forget that there is &lt;em&gt;never&lt;/em&gt; just one life at stake, that we are
who we are because there is &lt;em&gt;always&lt;/em&gt; someone else who determines changes in our
selves, Yanagihara intersects the story of Jude with those of his dearest
friends, each of them unforgettable in their own way, each of them with a
unique, privileged access to Jude. We learn to understand him better through
their eyes, but their relationships with him lead us to a better understanding
of his friends as well.&lt;/p&gt;
&lt;p&gt;Through multiple angles, then, Yanagihara accompanies the readers in and out the
lives of her characters. She also uses her inquisitive lenses to explore
violence, abuse, rape, self-inflicted scars, pedophilia, and self-consciousness.
The physical and psychological hell she puts us through can be demanding at
times, but as ruthless as some of the cruelest episodes are, moments of
uncompromising love and joy tie us close to these &lt;em&gt;little&lt;/em&gt; lives. I&amp;rsquo;ve never met
a person like JB and probably never will, but this doesn&amp;rsquo;t mean I wouldn&amp;rsquo;t want
to. It doesn&amp;rsquo;t mean he&amp;rsquo;s any less real than me.&lt;/p&gt;
&lt;p&gt;This is why it&amp;rsquo;s easy to relate to these characters, and I do enjoy this feeling
of familiarity. I enjoy it so much, in fact, that spotting myself on the pages
has become some sort of a game I like to play any time I&amp;rsquo;m reading. Usually,
though, hints of my own personality are scattered among multiple characters, but
it&amp;rsquo;s still fascinating to discover just how ordinary I am, how things I think
only peculiar to me are actually out there for anyone to have. It&amp;rsquo;s something
that projects me into a &lt;em&gt;wider&lt;/em&gt; space beyond myself.&lt;/p&gt;
&lt;p&gt;When Yanagihara allows her characters to experience the open, breathing web that
holds them together, she is making them realise that they&amp;rsquo;re still part of a
&lt;em&gt;larger&lt;/em&gt; world. The more they look inward, the more they fail to see what is
waiting for them. In other words, they&amp;rsquo;re never alone. Much like Esther
Greenwood really wasn&amp;rsquo;t. Much like we never are.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>A space in question</title>
      <link>https://manueluberti.eu/posts/2024-11-11-av-activism/</link>
      <pubDate>Mon, 11 Nov 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-11-11-av-activism/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Only by imagining the impossible will it be possible to transform the
unacceptable.&lt;/p&gt;
&lt;p&gt;&amp;mdash; Paul B. Preciado&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The day I acknowledged I wasn&amp;rsquo;t doing enough for what I believe in, I didn&amp;rsquo;t
really weigh my options thoroughly. I knew I had to leave my desk and move
beyond learning about non-human animals liberation from books, that much was
clear. But it doesn&amp;rsquo;t mean I stopped reading on the subject. I never do.&lt;/p&gt;
&lt;p&gt;Soon after &lt;a href=&#34;https://manueluberti.eu/posts/2024-04-23-first-cube-of-truth/&#34;&gt;joining&lt;/a&gt; Anonymous for
the Voiceless (AV from now on), I found plenty of criticism concerning this
organisation. This criticism is easy to look up, so I won&amp;rsquo;t point you to sources
which may or may not be out of date when you read this, and I&amp;rsquo;ll also let you
decide what to do with it. I for one think it&amp;rsquo;s necessary to &lt;a href=&#34;https://manueluberti.eu/posts/2024-04-01-therefore-i-am/&#34;&gt;question
everything&lt;/a&gt; I do and reasoning about the
meaning and value of my actions, which includes how I choose my activism to be.
As much as I understand the limits and the problems of AV, however, I know in it
I have a space where I&amp;rsquo;m finally able to accept myself for who I am.&lt;/p&gt;
&lt;p&gt;This is not to say that the criticism I read did not make me reconsider my
position. Nevertheless, the only way for any criticism to be effective is for it
to come from within the boundaries of its object, that is where context matters.
From there change can be highlighted, pushed forward, and eventually become
reality. Otherwise we are only pointing fingers and shouting, something that
won&amp;rsquo;t lead us very far any time soon.&lt;/p&gt;
&lt;p&gt;And yet I do believe something has to change in AV if it wants to take non-human
animals liberation seriously. If it doesn&amp;rsquo;t change, if it isn&amp;rsquo;t open to
discussing its assumptions and opts to stand still, then &lt;a href=&#34;https://manueluberti.eu/posts/2024-03-17-language-tension/&#34;&gt;nothing&lt;/a&gt; is ever going to happen. Again, context
matters. Without the proper context, criticism may fall short. But without the
proper context, AV is missing the broader spectrum of the fight it wants to be a
part of.&lt;/p&gt;
&lt;p&gt;This goes back to the limits I see in this organisation. The core of its
approach is the so-called outreach, which is a way for us to engage passers-by
in a conversation about the images of carnage we display. AV defines a protocol
that activists must follow in order for the outreach to be successful. But what
does it &lt;em&gt;really&lt;/em&gt; mean for an outreach to be claimed as successful?&lt;/p&gt;
&lt;p&gt;Much as any other activist in AV, I too watched its online workshops to
understand what I was supposed to do in the street. One thing I&amp;rsquo;ve always found
rather peculiar in these videos is the confrontational attitude that members of
AV use during outreaches. Most of the time I saw activists orchestrating the
exchange with their interlocutor like it was a debate they already knew how to
win. Is winning a debate the point of the outreach, then?&lt;/p&gt;
&lt;p&gt;Conducting yourself in this way can be off-putting or unreasonably intimidating
for the person in front you, and thus eventually ineffectual. It also ignores
the context from which that specific person comes. By treating everyone
consuming animal products as one abstract, undeniably guilty entity, we are
missing the opportunity to actually listen and understand each and every person
there with us. We are, in fact, missing everything that is worth discussing,
which is a scope much larger than that of an individual experience. We are
missing &lt;em&gt;what&lt;/em&gt; makes it possible, &lt;em&gt;how&lt;/em&gt; it is put into place, and &lt;em&gt;why&lt;/em&gt; it is
exactly the way it is.&lt;/p&gt;
&lt;p&gt;At the same time, I believe AV places me as an activist in an interesting
position. Whenever I start a conversation with someone who stops to look at our
screens, I&amp;rsquo;m grateful for the time this stranger is taking out of their life to
at least, and perhaps unconsciously, accept that something is not right. I
consider their willingness to sustain the horror an opportunity and not a
challenge. This is &lt;em&gt;our&lt;/em&gt; starting point, theirs and mine. From here, we can try
to build something. We can become aware of power structures we have never
considered before, we can question our biases, we can try to look at our society
from the point of view of the non-human animals we trapped in it. It&amp;rsquo;s not about
winning an argument, for me. It&amp;rsquo;s about normalising &lt;em&gt;together&lt;/em&gt; the work towards
an argument for a better world.&lt;/p&gt;
&lt;p&gt;But AV has also shown me something I wasn&amp;rsquo;t prepared for. Not to this extent
anyway. Our local chapter has introduced me to amazing people who never stop
encouraging each other. When activism becomes tiring, demanding, disheartening,
as it can be when everyone else seems to think the opposite, they&amp;rsquo;re always
there to pick me up. They remind me of our purpose just by being who they are,
they embrace me as one of them without asking anything in return. In the small
town where I live, chances to meet people like these are not that many, and I
can never underestimate a thing &lt;em&gt;this&lt;/em&gt; precious. We are a group that moves as
one not because rules force us together. We stand together as one because we all
share the same sparkle. We want change. We want liberation.&lt;/p&gt;
&lt;p&gt;My only wish is for AV to one day realise that unless liberation comes for
everyone, nobody will truly be free.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;From the introduction to the Italian edition of &lt;em&gt;Terror anal&lt;/em&gt;.
(Translation mine)&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Small is good</title>
      <link>https://manueluberti.eu/posts/2024-11-03-small-is-good/</link>
      <pubDate>Sun, 03 Nov 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-11-03-small-is-good/</guid>
      <description>&lt;p&gt;I like to think it&amp;rsquo;s not a coincidence that, as this website is about to
approach its tenth birthday, I happened to read &lt;a href=&#34;https://trimmings.wtf/sept-2024&#34;&gt;Philippa Markovics&amp;rsquo;s
words&lt;/a&gt; on blogging.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I grew up during the heyday of the blogosphere. RSS was the new hot thing, and
there were so many nice, quirky, weird, and interesting websites to subscribe
to. Most of them are gone now.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is so true for me as well. I used to follow all these beautiful blogs about
random topics such as Thai cinema and Italian jazz. I don&amp;rsquo;t know whether social
media or real life are to blame for their disappearance, but I do know I miss
these places a lot.&lt;/p&gt;
&lt;p&gt;Part of the reason why I made this website as small as possible is to keep that
old spirit alive. True, I also did it because it makes maintenance simpler.
However, I love the fact that whenever a random reader comes here they only have
my writings to focus on and, if I&amp;rsquo;m lucky, the contact options they can use to
get in touch with me.&lt;/p&gt;
&lt;p&gt;It may seem like I&amp;rsquo;m not offering much because I lack the skills to build a
prettier website, and yeah, maybe this is true as well. For instance, among the
websites Philippa highlights as their favourites I already know and love two of
them: &lt;a href=&#34;https://www.todepond.com/&#34;&gt;Todepond&lt;/a&gt; and
&lt;a href=&#34;https://leahneukirchen.org/trivium/&#34;&gt;Trivium&lt;/a&gt;. I don&amp;rsquo;t have the creative talent
to design something as pleasant as Philippa&amp;rsquo;s, Lu&amp;rsquo;s or Leah&amp;rsquo;s work, but it&amp;rsquo;s OK.&lt;/p&gt;
&lt;p&gt;I know that every reader who for whatever reason lands here has no chance to
feel lost or overwhelmed by irrelevant content. What I write is what they get.
What they get is just me.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>My own private bell jar</title>
      <link>https://manueluberti.eu/posts/2024-11-01-the-bell-jar/</link>
      <pubDate>Fri, 01 Nov 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-11-01-the-bell-jar/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;It never occurred to me to say no.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;The Bell Jar&lt;/em&gt;, Sylvia Plath&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;At the moment I cannot name a book with a more devastating effect on me than
Sylvia Plath&amp;rsquo;s &lt;em&gt;The Bell Jar&lt;/em&gt;. Until recently, Plath was one of those authors I
only knew by name and brief anecdotal facts. But instead of wishing to have met
her when I was younger, I content myself with the mere fact that I will never
forget her novel.&lt;/p&gt;
&lt;p&gt;As I was turning its pages, more often than not it seemed like &lt;em&gt;The Bell Jar&lt;/em&gt;
was reading into me. This is not an entirely new sensation, because other
writers are just as capable of intimately piercing prose. Plath, however, has
the rare power of poets, the unattainable talent for molding images and letters
into unexpectedly perfect shapes. Paul Celan, for instance, acts in the same way
on me. These artists only need few, precise words to express with delicate
severity the sort of feeling one experiences during uncomfortable situations,
that is when in their heart they know what they are going through but at the
same time they are utterly inadequate at describing it. This is something that
happens to me all the time. When it does, I usually prefer a wall of silence
rather than trying unconvincingly to collect one hazy sentence after the other.
Reading Plath makes me fully aware of how nearly impossible is to master the art
of language.&lt;/p&gt;
&lt;p&gt;Nevertheless, despite her ability with words, Esther Greenwood, the novel&amp;rsquo;s
protagonist and Plath&amp;rsquo;s alter ego on paper, can never grasp the world she lives
in. She is actually telling the story of the irreconcilable difference between
herself and everything else. The introspection, though, is not instrumental to a
better understanding of the world, or of herself for that matter. She doesn&amp;rsquo;t
try to make sense of anything at all, because the world simply moves at another
pace altogether. She is young, her intellectual heft and emotional depth are out
of question, and yet peace, comfort, and ease don&amp;rsquo;t have a place for her. Her
sliding into depression is shockingly natural, since there doesn&amp;rsquo;t seem to be
any other option available to her. I don&amp;rsquo;t think ever before had I wanted so
desperately to hug a character and being of any help.&lt;/p&gt;
&lt;p&gt;I was taken aback at the sudden realisation that I was accepting her
deteriorating state of mind as something inevitable. The point is that the bell
jar trapping Esther works in the other way too. Family, friends, ex-lovers,
doctors, and us readers, everyone is locked outside of the bell jar. She is
alone. She sees through the bell jar, but nobody sees her. They watch her,
instead, unable to help her out of there, pointlessly moving around her
solitude.&lt;/p&gt;
&lt;p&gt;How much Esther is aware of the full extent of her condition I cannot say. She
rejects any sort of attempt at lifting the bell jar. She is defenseless,
obviously, but she somehow knows that whatever everyone is trying to do for her
is not the right thing. This is a character truly out of their time, which
doesn&amp;rsquo;t imply that were Esther to be born in a different age her life would have
been easier and painless. In fact, I don&amp;rsquo;t think Esther could ever been saved,
here or elsewhere. The categories and intellectual structures she has at her
disposal aren&amp;rsquo;t suitable for a world that reduces everything setting itself
apart from the norm to a mistake to be fixed or a disease to be cured. Esther is
a question mark in a world full of assertions and descriptions that make no
sense unless we accept the bell jar for what it really is, which is the reason
why we don&amp;rsquo;t understand each other.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>R. C. Sherriff and Lake Garda</title>
      <link>https://manueluberti.eu/posts/2024-10-26-fortnight/</link>
      <pubDate>Sat, 26 Oct 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-10-26-fortnight/</guid>
      <description>&lt;p&gt;The most unequivocal sign that in a previous life I was something other than a
techie is not my involvement with philosophy, but the mere fact that it takes
only few words on a page to turn my day upside down. Yesterday I finished
reading R. C. Sherriff&amp;rsquo;s &lt;em&gt;The Fortnight in September&lt;/em&gt; and although it did not
match the expectations that some rave reviews had built up for me, it did manage
to catch me off guard on several occasions. No wonder I cannot stop thinking
about it.&lt;/p&gt;
&lt;p&gt;Sherriff&amp;rsquo;s story is tremendously simple. The Stevens have been going on holiday
for fifteen days in September since forever. Every year they travel to the same
place: same trains, same streets, same guest house, same beach, same sea.
Everything is carefully planned and everyone tries their best to behave
according to the plan. Sherriff captures the poetry of the most trivial routines
of the Stevenses from the very beginning, framing with consummate elegance their
vivid joy about apparently banal accomplishments, as if no surprise is in itself
a reason to be happily surprised.&lt;/p&gt;
&lt;p&gt;But Sherriff is even better at understanding the anxiety of his characters and
the tragedy of their nostalgic attempts at stopping time by trying to preserve
everything as it has always been, when in fact, little by little, all has
changed, the characters themselves first and foremost. The question of time, the
fear of missing a chance, the anxious contempt for wasted opportunities, the
impossible dreams of escape: for &lt;a href=&#34;https://manueluberti.eu/posts/2023-02-19-why-proust/&#34;&gt;a Marcel Proust lover&lt;/a&gt; this is all too familiar and more than welcome.
What I find even more interesting, and what really makes &lt;em&gt;The Fortnight in
September&lt;/em&gt; a special book for me, is how I can relate many of the people and the
events in these pages to my direct experience.&lt;/p&gt;
&lt;p&gt;When I was little, we used to spend every summer in a small place near Lake
Garda. We didn&amp;rsquo;t stay for more than a day, because it wasn&amp;rsquo;t that far from our
home so it was cheaper to get there early in the morning and be back right after
dinner. The fierce regularity of this trip was so similar to the Stevenses&amp;rsquo;. My
mother, the female version of Mr. Stevens, always packed the same lunch and made
sure we always left the house around 7am in order to claim the same spot on the
beach before anyone else. In the evening, she always had a table reserved in a
cozy restaurant nearby for a pizza. The first two years there was a kid with
whom I played a lot. We took crazy dives from the jetty in order to splash all
sorts of people, German tourists in particular, who, according to us, had to
walk around soaking wet. There was a small arcade where I usually went after
lunch, but now I am sure it was a trick my parents used to keep me out of the
water for a while.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s funny remembering all of this now. Along with the memories come the mixed
feelings Sherriff describes with beautiful insight. The first summers everyone
was so enthusiastic to be leaving for the lake. Then, as I was getting older my
opinion on this trip changed. I started feeling like I didn&amp;rsquo;t want to be
reassured by the comfort of a familiar place any more. Every year the beach, the
arcade, the jetty looked different to me, not just because I was less and less
interested in these things, trying to act like a grown-up already, but because
they served as reminders of habits I was ready to abandon. I wished for new
thrills, new adventures.&lt;/p&gt;
&lt;p&gt;At the same time, only now I understand how important that small place was for
my parents. Much like Mr. and Mrs. Stevens, my parents were not using that beach
as a simple escape from their days of work. They were putting every inch of
themselves in moments they wanted to last forever. They were trying to have
something worth remembering because they knew, deep within their hearts, it
wasn&amp;rsquo;t just the arcade or the jetty ageing quickly. Fighting through anxious
routines the inevitable changes with which time challenges the solidity of a
family, they wanted us to stay together one more time.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The jubilee of Cindy Lee</title>
      <link>https://manueluberti.eu/posts/2024-10-04-diamond-jubilee/</link>
      <pubDate>Fri, 04 Oct 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-10-04-diamond-jubilee/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Look in the mirror&lt;br&gt;
A face you know too well&lt;br&gt;
If this is heaven&lt;br&gt;
I&amp;rsquo;m going straight to hell&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Golden Microphone&lt;/em&gt;, Cindy Lee&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&amp;rsquo;ve started writing this blog post at least five times already, looking for the
best way to dive into my reflections on Cindy Lee&amp;rsquo;s &lt;em&gt;Diamond Jubilee&lt;/em&gt;. The
old-versus-new angle, the time-versus-engagement perspective, and the
double-disc-in-this-day-and-age point of view are but a few of the beginnings
I&amp;rsquo;ve tried. Every single time the opening paragraph felt wrong, leading to
nothing in particular and thus being utterly useless.&lt;/p&gt;
&lt;p&gt;The thing is &lt;em&gt;Diamond Jubilee&lt;/em&gt; had its moment earlier this year, when everyone
in the music business was talking about this seemingly absurd record, repeating
the story of its origin over and over again. Sure, the release on GeoCities and
YouTube, the &lt;em&gt;fuck Spotify!&lt;/em&gt; stance of its authors, even the US tour
cancellation, all make for great anecdotes, but why does &lt;em&gt;Diamond Jubilee&lt;/em&gt; have
such an impact on me?&lt;/p&gt;
&lt;p&gt;To a certain extent it&amp;rsquo;s precisely because of everything surrounding it. The
&lt;a href=&#34;https://www.reddit.com/r/cindylee/&#34;&gt;/r/cindylee&lt;/a&gt; subreddit, for example, full
of people sharing everything and more about Cindy Lee, has thrown me back to a
time, almost fifteen years ago, when my partner and I had a blog on all things
Neutral Milk Hotel. We translated lyrics into Italian, wrote news and thoughts
about Jeff Mangum&amp;rsquo;s future, and got in touch with amazing people overseas who
kindly sent us rare live footage. I&amp;rsquo;m deeply fond of that pre-social-network
period of the digital era, even though I know it&amp;rsquo;s easier in today&amp;rsquo;s web to find
like-minded strangers. Anyway, when music channels people&amp;rsquo;s enthusiasm beyond
the mere pleasure of listening, I&amp;rsquo;m always moved. This is the pure energy that
music delivers no matter one&amp;rsquo;s opinion of it, its raw power able to cross
physical and psychological distances.&lt;/p&gt;
&lt;p&gt;Furthermore, &lt;em&gt;Diamond Jubilee&lt;/em&gt; makes me feel like I felt when I fell in love
with the Smashing Pumpkins&amp;rsquo; &lt;em&gt;Mellon Collie and the Infinite Sadness&lt;/em&gt; and the
Magnetic Fields&amp;rsquo; &lt;em&gt;69 Love Songs&lt;/em&gt;. These are two of my all-time favourite records
and they happen to be long and unafraid of pushing stylistic conventions to
their liking, much like Cindy Lee&amp;rsquo;s daring venture into the sublime does. A long
album is like an invitation to enter a special place, a place whose owner is
confident enough to ask for quite a lot of one&amp;rsquo;s own time so they can unfold an
unorthodox amount of tales for them. I have but the utmost admiration for
artists who truly believe that people will appreciate their willingness to share
so much with them.&lt;/p&gt;
&lt;p&gt;Speaking of actual content, if one trusts the press then &lt;em&gt;Diamond Jubilee&lt;/em&gt; is
otherworldly and unique, either an experimental rendition of Twin Peaks&amp;rsquo; sounds
re-engineered by Phil Spector&amp;rsquo;s machinery or bubblegum pop for the end of the
world. To me Cindy Lee are delivering a lonely goodbye, written for everyone and
spelled to nobody. I feel alone when I listen to &lt;em&gt;Diamond Jubilee&lt;/em&gt;, and I get
the impression that its authors feel alone too. Some say that this is a nice
soundtrack for an on the road trip to somewhere far, but I&amp;rsquo;d rather not drive to
these songs because I know they&amp;rsquo;d point me towards a different direction,
eventually taking me to an unpredictable destination. Whatever Cindy Lee sing
about seems to come from people who are tired of everything, sounds and words
echoing each other to no avail. When the voice leaves and the instruments
develop the melody, I am put in a room with the eerie sensation of being lost in
a space I should know by heart. If this is Cindy Lee&amp;rsquo;s idea of jubilee I wonder
what exactly they are celebrating here. Whether it&amp;rsquo;s their demise or the
world&amp;rsquo;s, I see no diamonds. I only hear them.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Scrappy hearts and Clojure fiddles</title>
      <link>https://manueluberti.eu/posts/2024-09-21-heart-of-clojure/</link>
      <pubDate>Sat, 21 Sep 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-09-21-heart-of-clojure/</guid>
      <description>&lt;p&gt;The room is slowly filling up with attendees, organisers and volunteers are
moving around to check that everything is where it is supposed to be. I
recognise some faces, I spot a couple of speakers. I keep looking around eagerly
as if I wanted to take it all in right here right now. This is not my first
Clojure conference, and I do hope it will not be the last, but as I sit I feel
the same rush of emotions I have only felt once before, back in 2019. It was
Heart of Clojure then. It is &lt;a href=&#34;https://2024.heartofclojure.eu/&#34;&gt;Heart of Clojure&lt;/a&gt;
now.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;What does it mean to be here?&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is a question I would end up asking myself over and over again while in
Leuven. While I am back home writing this, I am not sure I have found an answer
just yet, so I want to go over the last few days to see if I finally have a
reply to that question.&lt;/p&gt;
&lt;p&gt;But first, a caveat. If you are looking for a review of the conference or a
report on its program, this is not it. I am sure plenty of useful feedback is
already popping up around the web and many more will come out along with
pictures, videos, and what have you. This writing, however, will mostly be about
me and what Heart of Clojure meant to me.&lt;/p&gt;
&lt;p&gt;With that out of the way, let&amp;rsquo;s dig in.&lt;/p&gt;
&lt;p&gt;Heart of Clojure was bigger and stronger this time. There were two locations
where talks, sessions, workshops and all sort of activities took place. But the
conference was bigger and stronger in another, more intimate sense too. The
first edition had already been &lt;a href=&#34;https://manueluberti.eu/posts/2019-08-04-clojure-heart/&#34;&gt;the people&amp;rsquo;s conference&lt;/a&gt;. This time it was as if the organisers had
wished not only to up the ante, but to make sure that everyone followed suit.
And using two locations for the event had much to do with this.&lt;/p&gt;
&lt;p&gt;Since there was always something going on, people were kindly asked to move
freely from one place to another. In the rare occasion when nothing was
happening, that &lt;em&gt;nothing&lt;/em&gt; was just an illusion. Within the locations, in the
halls while waiting for the next talk, outside on a bench for a break, or in the
street walking to another session, people were literally everywhere, and
anywhere a nice chat might start. Even an introverted such as myself could not
resist this welcoming energy.&lt;/p&gt;
&lt;p&gt;On the other hand, I also avoided many nice occasions to meet a new person or
enjoy a friendly conversation. Too shy? Maybe. Too overwhelmed? Indeed. It is
not easy for me to take in everything and everyone all at once, my body and my
mind simply refuse to comply, I get awkwardly silent and I do not like to be
around people when I feel this way. So I needed my breaks, I needed my walks
alone around Leuven with my music.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; I do not know if the organisers had
planned for this kind of attendee, but to me it looked like they did. I had time
both for myself &lt;em&gt;and&lt;/em&gt; the conference, my walks &lt;em&gt;and&lt;/em&gt; the people. I realise now
that a conference such as this might not be for everyone, especially for the
ones who usually like to pile up as many talks as possible, but that is not me.
And I am glad Heart of Clojure somehow took care of me.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;What&amp;rsquo;s your take away from the conference?&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I was asked this question yesterday, on my last day in Leuven and the day after
Heart of Clojure had ended. I did not have to think too much to answer. Lu
Wilson put it nicely in their outstanding keynote, but they did deliver it
directly to me with even more power in a short&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; conversation one evening.
When I write, whatever I write, I have to be comfortable with sharing sides of
me, otherwise simply feel OK not doing so. Balancing tiger with rhythm of
tortoise, as Angie McMahon sings.&lt;/p&gt;
&lt;p&gt;This self-reflexive state of mind became a constant throughout the whole Heart
of Clojure not long after the two opening keynotes had ended. My position in the
field was shaken multiple times as I was listening to Lu Wilson and Anna Colom.
Am I doing the right thing? Am I not questioning enough the work I do? Am I not
open enough, aware enough, serious enough? Am I putting my effort and my rather
basic set of skills where they should belong? Miranda Kastemaa (a.k.a. pulu)&amp;rsquo;s
live set felt like the much needed relief.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;What does it mean to be here?&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Back to the original question. I sense no single, unequivocal answer to it.
Heart of Clojure made me connect with beautiful people, made me conscious of my
limited space and time, filled me with smiles and doubts, words and code, prose
and poetry. More than once people said that this conference had contributed to
pivotal changes in their lives. What if just by setting my foot in Leuven in the
past few days something has been set into motion?&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Mostly Angie McMahon&amp;rsquo;s new &lt;em&gt;Light Sides&lt;/em&gt; EP and The Ex&amp;rsquo;s new &lt;em&gt;Great! / The
Evidence&lt;/em&gt;, but some old favourites like Pinegrove and Fugazi found their way
to my ears. Comfort music, so to speak.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Because of me, not because of Lu.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Words and the other</title>
      <link>https://manueluberti.eu/posts/2024-09-15-words-others/</link>
      <pubDate>Sun, 15 Sep 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-09-15-words-others/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I wanna take up space.&lt;/p&gt;
&lt;p&gt;&amp;mdash; Angie McMahon&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I do not often think about why I write. I usually write in different places for
different reasons, and not everything I put into words is meant to be read by
someone else. There is this very blog here, of course, and there is also my Bujo
notebook where notes, tasks, and all sorts of rants are stored.&lt;/p&gt;
&lt;p&gt;Lately I have found myself sending small comments on the films I watch to a
friend. It started off as a joke about my love for cinema, but they greatly
underestimated my desire to share. Nothing serious, though. Five, maybe ten
lines containing my thoughts on a film and that is it.&lt;/p&gt;
&lt;p&gt;Nevertheless, after a while I noticed something. I noticed that when I am
explicitly addressing somebody, I write much better. Maybe it has do with my
language of choice. The small reviews I send are all written in Italian, which
is the language I feel more confident with when I write, especially after some
years at university. Or maybe it has to do with the feeling of having someone
truly on the other side, someone I know and with whom a certain degree of
confidence has been established prior to the exchange.&lt;/p&gt;
&lt;p&gt;The things is, unless it is in my notebook, I always write for somebody other
than me. This blog, for instance, is clearly not just an excuse for English
practice. When I write, I am looking for a kindred spirit. I share not because I
want everyone to know I care a lot, but because I wish to reach people who care
enough. Recent experiences have showed me that I had been looking too far away.
Deep and significant connections demand shorter distance and physical presence.&lt;/p&gt;
&lt;p&gt;This is not to say that long-distance friendships never work. I have been into
one for almost twenty years, and every time I receive news from this friend it
is an emotion in and for itself. We both know, however, that a phone call, a
message, or an e-mail will only take us so far. Our lives follow paths that
never cross, thus we end up writing each other recaps in which one of us is not
really a part of.&lt;/p&gt;
&lt;p&gt;For my writings to mean something I must look elsewhere, somewhere closer to my
blank page than I thought. Will this realisation lead the blog towards another
direction? I am not sure yet. Most probably I will not stop writing in English,
but even if I see room for updates in Italian from now on, I also need to
understand what makes sense to share and what does not. One thing will not
change, though: I will keep writing.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>An MA is on its way</title>
      <link>https://manueluberti.eu/posts/2024-09-07-philosophy-ma/</link>
      <pubDate>Sat, 07 Sep 2024 06:12:50 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-09-07-philosophy-ma/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Many people have to be persuaded that studying too is a job, and a very tiring
one, with its own particular apprenticeship - involving muscles and nerves as
well as intellect. It is a process of adaptation, a habit acquired with
effort, tedium and even suffering.&lt;/p&gt;
&lt;p&gt;&amp;mdash; Antonio Gramsci&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Although a couple of months have passed already, my BA in Philosophy feels like
&lt;a href=&#34;https://manueluberti.eu/posts/2024-07-15-ba-journey/&#34;&gt;yesterday&lt;/a&gt;. I am still processing this
achievement, and yet I have decided to pursue an MA in order to continue the
wonderful journey as a part-time student, mostly because I feel like I have only
touched the surface of a vast ocean of knowledge. Therefore, next week I will be
back in the classroom and once again ready to spend my evenings with more books
than usual.&lt;/p&gt;
&lt;p&gt;I have often been asked why I am doing this and how it is going to affect my
professional career, but this is the wrong way to look at my endeavour. Usually
one&amp;rsquo;s studies are strictly related to one&amp;rsquo;s future job(s). However, not
everything we learn has to be measured in terms of money. I have always, always
loathed this simplistic view that reduces all knowledge to a bag of tricks one
can leverage to earn a salary. Put otherwise, what is wrong with learning for
the sake of learning?&lt;/p&gt;
&lt;p&gt;This is something many find hard to digest, accustomed as we are to a society
that links price and value of something inextricably together. Moreover, I work
in a field where philosophy is either frowned upon or used just as an abstract
label for self-help literature or the misleading words of online moralists.&lt;/p&gt;
&lt;p&gt;I am in no way interested in fixing this situation. First of all, I keep my day
job as a Clojure developer and my philosophy student&amp;rsquo;s life separated. I respect
my co-workers for their programming skills, but I would never embark in a
discussion about Wittgenstein&amp;rsquo;s &lt;em&gt;Philosophical Investigations&lt;/em&gt; with them, much
like I do not expect the person next to me in the classroom to appreciate the
finesse of my Emacs configuration.&lt;/p&gt;
&lt;p&gt;Furthermore, I have never considered philosophy as a standard school subject.
How it has changed me is not related to the amount of concepts I have memorised
nor the pleasure I experience when reading it. The change in me is the result of
the combination of theoretical exercise and thoughtful practice. Since I started
to understand what philosophers mean in their writings, I have also started to
think and act differently. I find myself more concerned with the world around me
and at the same time capable of comprehending it a bit better. This immediately
translates into tangible consequences: I see problems where I did not before and
I know I can do something about them.&lt;/p&gt;
&lt;p&gt;An MA is the obvious prosecution along this path of ethics and praxis.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Philosophy is its own time apprehended in thoughts.&lt;/p&gt;
&lt;p&gt;&amp;mdash; Georg Wilhelm Friedrich Hegel&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    <item>
      <title>Fake nostalgia is the real emo</title>
      <link>https://manueluberti.eu/posts/2024-08-28-fake-nostalgia/</link>
      <pubDate>Wed, 28 Aug 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-08-28-fake-nostalgia/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://thegetupkids.bandcamp.com/album/something-to-write-home-about-25th-anniversary-deluxe-edition&#34;&gt;Last
Friday&lt;/a&gt;,
the 25th anniversary edition of The Get Up Kids&amp;rsquo; &lt;em&gt;Something to Write Home About&lt;/em&gt;
came out. It was an incredibly emotional moment for all the people who had been
there in 1999 when the record was first released. Late &amp;rsquo;90s saw the rise of nu
metal on the charts, brit pop stepping aside to let Radiohead in, Britney Spears
moving hearts and bodies, and music download seriously taking off courtesy of
Napster. &lt;em&gt;Something to Write Home About&lt;/em&gt; seemed unaware of all this and some
people loved the record even more for it.&lt;/p&gt;
&lt;p&gt;At least this is what I heard and read over the weekend. I was not there, not in
spirit anyway, so what do I know? Too young and out of pretty much anything
related to alternative music news, I was just discovering grunge and brit pop
back in 1999 before adolescent&amp;rsquo;s rage diverted me to nu metal. It took a full
dose of Fugazi and the AmRep catalogue to set me back on the right track. Still,
The Get Up Kids were nowhere in my radar.&lt;/p&gt;
&lt;p&gt;Fast forward to 2007. A nice guy on a now-dead internet forum introduced me to
Quicksand and Rival Schools in order to kick off my post-hardcore phase. Once
Drive Like Jehu and Texas Is the Reason settled in my stereo I learnt to
appreciate the Emo music that I was hardly seeing on television. However, it was
2009 by then. The Get Up Kids had broken up and they had also reunited and,
let&amp;rsquo;s be honest, I did not pay that much attention. I thought certain kind of
music I attached my younger self to was not relevant to me any more. I was
wrong, so wrong.&lt;/p&gt;
&lt;p&gt;Another fast forward. 2017. New job, new commute. Time on public transport has
always been a great time for listening to music. Unfathomable reasons had put
some heavy stuff back in my ears. Luckily nothing related to nu metal. Instead,
post-hardcore and noise were, once again, my go-to genres, but it was not just
about old, beloved records. It took me very little time to catch up with what I
missed and this was when I gave The Get Up Kids another, proper chance. I
started with &lt;em&gt;Something to Write Home About&lt;/em&gt; and it all ended with &lt;em&gt;Something to
Write Home About&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I know The Get Up Kids are more than an incredible record. Yet, just as all I
need from Trail of Dead is &lt;em&gt;Worlds Apart&lt;/em&gt;, &lt;em&gt;Something to Write Home About&lt;/em&gt; is
everything I could ask for to Matt Pryor and his band mates. The interesting
thing is that whatever I link this music to has nothing to do with the
historical significance of The Get Up Kids releasing these songs in 1999, nor
are there tears of sadness for a particular live performance I missed.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; And
to be frank, how can I relate to lyrics about break-ups, one-night stands, and
betrayals of all sorts? Is this really me?&lt;/p&gt;
&lt;p&gt;I have records in my collection that I consider specifically mine. Not in an
overprotective parent sort of way, but mine in terms of I just do not share them
with anyone. For starters, my partner does not like them, and that is fine since
we came from different musical backgrounds anyway. More than that, though, these
are records where I find a side of me that I like to keep for myself. They
remind me of what-ifs and situations I could have approached better, they open
up a world where certain feelings make more sense, they act as the friend I want
to confess things to. These records have songs that I sing along when I am alone
and only when I am alone, afraid to let too much out. &lt;em&gt;Something to Write Home
About&lt;/em&gt; may very well be the leader of the pack here, and I am grateful The Get
Up Kids gave me another excuse to lose myself into it.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Savvy people told me the 2009 gig in Bologna is still one of the best show
they have ever been. I do not hate them for this, I swear.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>A part-time journey to a BA</title>
      <link>https://manueluberti.eu/posts/2024-07-15-ba-journey/</link>
      <pubDate>Mon, 15 Jul 2024 06:12:50 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-07-15-ba-journey/</guid>
      <description>&lt;p&gt;Now that I officially earned a BA in Philosophy, it is time to sit down and
think about this long and wild journey. I say &lt;em&gt;long&lt;/em&gt; because it took me five
years instead of the standard three that a regular student is accustomed to here
in Italy. I say &lt;em&gt;wild&lt;/em&gt; because, well, let&amp;rsquo;s start from the beginning to
understand why.&lt;/p&gt;
&lt;p&gt;Back in summer 2019, I was watching Astra Taylor&amp;rsquo;s &lt;a href=&#34;https://manueluberti.eu/posts/2019-06-28-democracy/&#34;&gt;What Is Democracy?&lt;/a&gt; and missing the point of almost all of its
philosophical inquiries. Nonetheless, I was intrigued. I was so intrigued, in
fact, that in the following days I asked my partner whether me going back to
university sounded like a mad man&amp;rsquo;s project. It would have meant trying my luck
with university again, but I do not want to dig into my past failures. The
obvious truth is that trying serious studying with the wrong mindset is a rather
pointless endeavour.&lt;/p&gt;
&lt;p&gt;Anyway, this time my mind was really set. In order to start the courses in
September, though, I had to pass an entry test to certify some basic knowledge
of philosophy.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; Coming from a software developing background meant spending a
couple of months on high school manuals to get a general idea of more than two
thousand years&amp;rsquo; worth of Western thought. The test itself was based on a book
with key philosophical concepts, most of them unknown to me. I had to pick a
subset of these terms and explain them along with the motivation for my choice.
I still remember me and about fifty kids&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; sitting everywhere outside the
professor&amp;rsquo;s office, raising our anxiety bar every time we randomly revised the
material. I waited for hours, but eventually my turn came and in about ten
minutes I was out again. One question, one answer, another question, another
answer. Done. I felt like a door was opening for me right there. I was ready to
begin.&lt;/p&gt;
&lt;p&gt;The first real exam was a deep dive into Plato&amp;rsquo;s and Aristotle&amp;rsquo;s works. On the
one hand, it was the right course at the right time. What better way to start
than back at the origins of Western philosophy? On the other hand, it made me
realise the extent of my ignorance. This is why I will always treasure a tip a
kind student gave me on my first days on the campus. They recommended two
courses with a specific professor from whom I would learn an invaluable approach
to philosophical texts. Admittedly, halfway through the first of these courses I
was struggling to keep up. The now-retired professor was well known among
students for taking no prisoners whatsoever. His were two of the most difficult
exams I had to prepare, but to this day very little comes close to what I
learned with him.&lt;/p&gt;
&lt;p&gt;Nevertheless, a good chunk of the courses left me with many impressive insights,
and this is especially true for the most demanding ones. The hours devoted to
unpacking Hegel&amp;rsquo;s &lt;em&gt;The Philosophy of Right&lt;/em&gt; will never be forgotten,&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; but I
will also remember fondly the energy put into preparing presentations on beloved
topics, not to mention the emails exchanged with kind professors luckily never
tired of my relentless enthusiasm.&lt;/p&gt;
&lt;p&gt;Being a part-time student meant using what was left of the day after work for
lessons and actual books, something requiring a sort of discipline to achieve.
This is not to say that I have never been on a trip in the past five years, of
course. Still, evenings, weekends, and Christmas holidays all became victims of
my studying schedule. In retrospect, I could have taken some exams more lightly,
enjoying some breaks more. Over and over again I pushed myself harder than
necessary because I wanted to learn as much as possible and not just for that
great mark.&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;However, in the end the overall experience has been highly rewarding. I can read
Hegel, for instance, and as anyone already familiar with the German philosopher
knows, this is a wonderful achievement in itself. I fell in love with Spinoza,
the true driving force of my thought in the years following our first encounter.
Wittgenstein hypnotised me multiple times and I can only think of Plotinus as a
question mark, fascinating and lonesome just like Simone Weil. I have much to
learn yet from Kant and Adorno, from Deleuze and Derrida, from Hume and
Schopenhauer.&lt;/p&gt;
&lt;p&gt;They are all there, right where I can see them now. They are all there waiting
for me to catch up.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;OFA (Obbligo Formativo Aggiuntivo), as it is called at Ca&amp;rsquo; Foscari.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Even after my last exam, I felt old and out of place in the classroom.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;Although my partner does not want to have anything to do with Hegel any
more.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:4&#34;&gt;
&lt;p&gt;Saying &lt;em&gt;magna cum laude&lt;/em&gt; out loud does feel good, though.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Dance, dance, little dancer</title>
      <link>https://manueluberti.eu/posts/2024-07-14-olympia-mare/</link>
      <pubDate>Sun, 14 Jul 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-07-14-olympia-mare/</guid>
      <description>&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2024-07-14-olympia-mare.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Olympia Mare (Bandcamp)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Sometimes it happens that out of nowhere music hits me harder than expected. Of
course a book or a film can work in the same way through me, but the funny thing
with music is the total randomness of its power. Literature and cinema are safe
places for me. I usually have a specific reason to read a book and film
criticism keeps me up to date with what I want to watch. Therefore, if I am not
liking the pages in my hands or the images in front of me I mostly have myself
to blame for the bad choice.&lt;/p&gt;
&lt;p&gt;Music is different. I cannot resist listening to new albums, but at the same
time I am not doing much to follow trends and releases. More importantly,
whereas I favour certain types of books and films, when it comes to music I do
not stick to a particular genre, which means I do not shy away from
radio-friendly pop sensations just as I am always excited to discover
underground musicians and independent labels.&lt;/p&gt;
&lt;p&gt;On the other hand, this cautiously vague approach to new music does not welcome
change easily. Take summer time, for instance. To my ears these months call for
easy listening, good-for-driving songs, something to chill out without
overthinking too much because we already have to take care of our sweat. So why
does Olympia Mare&amp;rsquo;s &lt;a href=&#34;https://olympiamare.bandcamp.com/album/sei-almeno-un-po-felice&#34;&gt;SEI ALMENO UN PO&#39;
FELICE?&lt;/a&gt; have
become my go-to record in the past weeks?&lt;/p&gt;
&lt;p&gt;It is difficult to put into words. It is true that nowadays I mostly gravitate
towards &lt;a href=&#34;https://manueluberti.eu/posts/2022-08-14-big-time/&#34;&gt;deceptively simple music&lt;/a&gt;,
picking up quiet vibes instead of loud riffs. No wonder then Olympia Mare found
their way to me. Their songs are as far away from complexity as possible,
beautifully naive in their lack of pretentiousness. They sing of everything and
nothing really, they play as friends invited over to not surprise anyone but the
host of the party that is all in their head. With the risk of sounding a tad too
nostalgic, one possible explanation for my devoted attachment to Olympia Mare is
the way they remind me of how I got to where I am right now.&lt;/p&gt;
&lt;p&gt;Again, it is hard to explain. When one relies on their feelings to describe
something being objective becomes &lt;a href=&#34;https://manueluberti.eu/posts/2017-10-27-onapersonallevel/&#34;&gt;impossible&lt;/a&gt;, and so to me Olympia Mare is trains and
subways and buses and all the cities I lived in and walked through. It is nights
spent chatting with long-distance friends on a fragile internet connection, the
Greenwich meridian and breakfasts on tiny tables in tiny apartments, furniture
that does not exist any more, pubs out of old churches, parks where everything
seemed possible and beaches where little made sense, people on stage screaming
at me screaming back at them, buying tea with not enough experience to
understand the difference among tea leaves and not really caring too much about
it, political thoughts I cannot put my finger on, relatives that are no more and
habits that never leave, an old man younger than his son and a young woman that
I want to be young forever, waving hands and a wedding dress, a book of love and
loving books. All of this and the only laugh I care for in between.&lt;/p&gt;
&lt;p&gt;When music overwhelms me like this I know that I have a record I will hold dear
for a long, long time. And even if it is all so relative I am absolutely
convinced of it.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Heart of Clojure is back</title>
      <link>https://manueluberti.eu/posts/2024-07-10-heart-of-clojure/</link>
      <pubDate>Wed, 10 Jul 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-07-10-heart-of-clojure/</guid>
      <description>&lt;p&gt;This will be just a quick announcement.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://2024.heartofclojure.eu/&#34;&gt;Heart of Clojure&lt;/a&gt;, the biggest Clojure
conference in Europe, is happening again, five years after the first edition. I
had much fun &lt;a href=&#34;https://manueluberti.eu/posts/2019-08-04-clojure-heart/&#34;&gt;back in 2019&lt;/a&gt;, so I am
really excited to have another chance to enjoy it.&lt;/p&gt;
&lt;p&gt;You will find me right in Leuven from 18 to 19 September if you want to chat
about beautiful topics such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Emacs and that&amp;rsquo;s it&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Pet-driven development&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;À la recherche du REPL perdu&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Vegan parenthesis&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See you there.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Delete duplicate words</title>
      <link>https://manueluberti.eu/posts/2024-06-15-duplicate-words/</link>
      <pubDate>Sat, 15 Jun 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-06-15-duplicate-words/</guid>
      <description>&lt;p&gt;I make a lot of mistakes when I write prose, because I usually write down
everything that comes to mind and then edit sentences and paragraphs over and
over again until I get what I want. This is a recipe for all sort of errors, of
course.&lt;/p&gt;
&lt;p&gt;Although I have been a happy user of Flyspell and &lt;code&gt;proselint&lt;/code&gt;, in order not to
get distracted by warnings and errors nowadays I like to avoid automatic
spell-checkers or linters and rely on &lt;code&gt;ispell-buffer&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;There is however a specific category of errors for which &lt;code&gt;ispell-buffer&lt;/code&gt; cannot
help: duplicate words. When quickly rephrasing a sentence or adjusting a
paragraph it could happen that I do not pay enough attention to the words I
remove and so I keep typing with no care whatsoever.&lt;/p&gt;
&lt;p&gt;Much in the spirit of my occasional use of &lt;code&gt;ispell-buffer&lt;/code&gt;, I want a command
that scans the buffer, finds consecutive occurrences of the same word, and
removes all but one of them. Emacs already has a built-in solution for this:
&lt;code&gt;C-M-%&lt;/code&gt; (&lt;code&gt;query-replace-regexp&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Nevertheless, laziness prevails. Why typing the necessary regular expression
every time when a simple command can do it for me?&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-delete-duplicate-words ()
  &amp;quot;Delete duplicate words via `query-replace-regexp&#39;.&amp;quot;
  (interactive nil text-mode)
  (save-excursion
    (goto-char (point-min))
    (query-replace-regexp &amp;quot;\\(\\b\\w+\\b\\)\\W+\\1\\b&amp;quot; &amp;quot;\\1&amp;quot;)))
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    <item>
      <title>My first Cube of Truth</title>
      <link>https://manueluberti.eu/posts/2024-04-23-first-cube-of-truth/</link>
      <pubDate>Tue, 23 Apr 2024 06:12:50 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-04-23-first-cube-of-truth/</guid>
      <description>&lt;p&gt;Last Sunday I joined the nearest local chapter of &lt;a href=&#34;https://www.anonymousforthevoiceless.org/&#34;&gt;Anonymous for the
Voiceless&lt;/a&gt;, after many nudges from my
better half who has been a member for quite a while now. As I have already
written in the past, it is about time I put &lt;a href=&#34;https://manueluberti.eu/posts/2023-11-01-world-vegan-day/&#34;&gt;my thoughts into action&lt;/a&gt;. What does it mean to be in a &lt;em&gt;Cube of Truth&lt;/em&gt;,
though? More importantly, what does it mean to finally act as an activist?&lt;/p&gt;
&lt;p&gt;A &lt;em&gt;Cube of Truth&lt;/em&gt; is a simple and yet powerful way to engage in street activism.
Activists wearing anonymous masks hold screens (television sets, laptops, etc.)
big enough to display footage coming from slaughterhouses, farms, and all sorts
of practices that exploit and abuse non-human animals. It is called &lt;em&gt;cube&lt;/em&gt;
because, given enough activists, we form a cube-resembling shape,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; usually
alternating screens with cardboard panels containing only one word: &lt;em&gt;truth&lt;/em&gt;.
Otherwise, we do what we can as long as the images speak for themselves. When
passers-by stop and watch for more than just few seconds the bloodbath we
display, activists outside the Cube, not wearing masks, start the so called
&lt;em&gt;outreach&lt;/em&gt;, which means they engage in a conversation about the relationship
between the images on the screens and the temporary spectator&amp;rsquo;s own
responsibilities.&lt;/p&gt;
&lt;p&gt;From there anything can happen, and that is why I was not sure that this was the
right thing to do for me. I have always been horribly shy and I tend to keep to
myself when in public. Or so I believed. As soon as it was my turn to approach a
by-stander something clicked. It was as if the only thing that mattered was
reasoning calmly about my purpose for being there, respecting the person&amp;rsquo;s
opinions while slowly eroding their confidence with the cruel reality of animal
suffering. The key was always making my listener understand that as long as they
do not act differently they are accountable for what is happening on the
screens. I even surprised myself when I was able to control the tone of my
reactions and the words I was using. I guess I have to thank my years at Ca&#39;
Foscari university for this, because I am pretty sure I would not have been able
to do it otherwise.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;On the other hand, I was luckier than other activists. I shadowed some of them
in order to learn from their experience, and after seeing them dealing with
arrogant kids and obnoxious trolls not only I admired their patience, but I also
asked myself: what if I were to be caught in that sort of discussions? Were they
serious discussions or just distractions from real work? I saw an important
lesson for me to take away there, which is learning when to halt the
conversation and move on. If there is someone eager to listen and curious enough
to question their own beliefs and customs, then the discussion is going
somewhere and maybe there is a chance that they will rethink their actions
sooner rather than later or, worse, never.&lt;/p&gt;
&lt;p&gt;Moreover, contrary to what I usually think of myself this has led me to believe
that I was exactly where I was supposed to be. I can speak up for what I value,
I can defend my opinion, and I can offer an alternative, reasonable point of
view to people in real life, right there in the street. This is where my words
have a meaning that &lt;em&gt;feels&lt;/em&gt; tangible. This is where I belong.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;More of a square, if you ask me, but let us not get into geometry right
now.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Angry replies seem like yesterday when I think about it. And of course,
the angrier I got, the less I was making sense.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Thesis frontispiece with LaTeX</title>
      <link>https://manueluberti.eu/posts/2024-04-10-thesis-latex/</link>
      <pubDate>Wed, 10 Apr 2024 15:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-04-10-thesis-latex/</guid>
      <description>&lt;p&gt;Usually when I start writing a new document I am not immediately interested
about the output layout. This may sound unorthodox to one accustomed to the
&lt;a href=&#34;https://en.wikipedia.org/wiki/WYSIWYG&#34;&gt;WYSIWYG&lt;/a&gt; likes of Microsoft Word, but
since I mainly write in Markdown and LaTeX, I like to focus on what I want to
say first and think about typesetting the text later. The look of the output
matters, though, so eventually I have to deal with it.&lt;/p&gt;
&lt;p&gt;For example, while working on my BA thesis with LaTeX I was faced with the
problem of the frontispiece. Ca&amp;rsquo; Foscari university provides &lt;a href=&#34;https://unive.it/pag/8751/&#34;&gt;a
template&lt;/a&gt; that students can slap in front of their
documents, but the choice is limited to a couple of popular file formats: DOC
and ODT.&lt;/p&gt;
&lt;p&gt;The quick and dirty solution could have been along these lines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;edit the ODT template;&lt;/li&gt;
&lt;li&gt;export it to a PDF file;&lt;/li&gt;
&lt;li&gt;add it to the front of my final document.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;However, I decided to stick with AUCTeX and accept the challenge. The following
is a working example based on my thesis that can be saved to a
&lt;code&gt;frontispiece.tex&lt;/code&gt; file:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-tex&#34;&gt;\documentclass[12pt]{book}
\usepackage{geometry}
\usepackage{graphicx}
\usepackage{xcolor}

\begin{document}

\begin{titlepage}

\newgeometry{top=1cm,bottom=1cm,right=1cm,left=1cm}
\fontfamily{lmss}\selectfont
\includegraphics[width=0.15\textwidth]{cafoscari-logo}\par\vspace{1cm}

\begin{center}
\LARGE{Corso di Laurea triennale in \colorbox{gray!10}{indirizzo}\par}
\vspace{1cm}
\LARGE{Tesi di Laurea\par}
\vspace{1.5cm}
{\huge\bfseries \colorbox{gray!10}{titolo}\par}
\LARGE{\colorbox{gray!10}{sottotitolo}\par}
\end{center}
\vspace{2cm}
\vfill
\textbf{Relatore}\\
\colorbox{gray!10}{nome e cognome}\\[0.5cm]
\textbf{Laureando}\\
\colorbox{gray!10}{nome e cognome}\\
\colorbox{gray!10}{numero matricola}\\[0.5cm]
\textbf{Anno Accademico}\\
\colorbox{gray!10}{0000/0001}
\vfill

\end{titlepage}

\end{document}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The only missing bit is the Ca&amp;rsquo; Foscari university logo, referenced above as
&lt;code&gt;{cafoscari-logo}&lt;/code&gt; as per the name of the image file I used, which is
&lt;code&gt;cafoscari-logo.png&lt;/code&gt;. Here it is:&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/cafoscari-logo.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Now, getting a PDF is simply a matter of placing the &lt;code&gt;.tex&lt;/code&gt; and the &lt;code&gt;.png&lt;/code&gt; files
in the same directory and run something like &lt;code&gt;pdflatex frontispiece.tex&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;On the other hand, I have AUCTeX and PDF Tools on my side. From the comfort of
Emacs I can then set &lt;code&gt;TeX-view-program-selection&lt;/code&gt; to &lt;code&gt;&#39;((output-pdf &amp;quot;PDF Tools&amp;quot;))&lt;/code&gt; and then press &lt;code&gt;C-c C a&lt;/code&gt; to create and display the desired
PDF output.&lt;/p&gt;
&lt;p&gt;One last remark for any Ca&amp;rsquo; Foscari student reading this. To the best of my
knowledge supervisors in the Philosophy department usually ask for drafts in DOC
format. Although this may not be true for other departments, unless LaTeX is a
requirement make sure your supervisor and assistant supervisor, if any, accept
PDFs when you want their valuable opinion on your draft.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;The logo comes from the ODT template, which is publicly available on the
university website. I just extracted it to a PNG file using LibreOffice
Writer.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>It exists therefore I am</title>
      <link>https://manueluberti.eu/posts/2024-04-01-therefore-i-am/</link>
      <pubDate>Mon, 01 Apr 2024 07:12:50 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-04-01-therefore-i-am/</guid>
      <description>&lt;p&gt;Setting reason aside is not something we welcome gladly, is it? After all,
acting according to feelings is acting irrationally, and if we open that door we
are going to let in the possibility of regrets and sorrow as well. Since we do
not always feel ready to face regrets and sorrow, we prefer applying our mind on
every worthwhile occasion. Or so we believe. Why do we act like we must reduce
everything to reason, anyway?&lt;/p&gt;
&lt;p&gt;John M. Coetzee taught me that it is impossible to subject the richness of our
everyday experience to the rules of reason alone. He did so through one of his
most beautiful and complex characters, one whose presence by now is almost
tangible to me: Elizabeth Costello. And as it often happens with the best things
in one&amp;rsquo;s life, Coetzee and Costello entered mine by chance, that is by way of a
casual mention during a course at my university which set off the same
irrational drive that led me to &lt;a href=&#34;https://manueluberti.eu/posts/2024-03-17-language-tension/&#34;&gt;Ingeborg Bachmann&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Elizabeth Costello is an elderly Australian woman, a renown writer whose fame,
contrary to her will, is an outcome of the success of one of her early novels.
Over the course of Coetzee&amp;rsquo;s book, she is invited to give speeches on a wide
range of topics around the world. She complies, even though her distress is
something she will not overcome easily. Eventually, she will have to deal with
the consequences of her words, standing by her opinions, and questioning her own
beliefs.&lt;/p&gt;
&lt;p&gt;As in other Coetzee&amp;rsquo;s works, taking into account the existence of non-human
animals and how we live with and next to them is unavoidable. Coetzee&amp;rsquo;s ethics
are much too complex for me to deal with right now,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; so I will just single
out a passage from &lt;em&gt;Elizabeth Costello&lt;/em&gt; which I would like to expand upon.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Both reason and seven decades of life experience tell me that reason is
neither the being of the universe nor the being of God. On the contrary,
reason looks to me suspiciously like the being of human thought; worse than
that, like the being of one tendency in human thought. Reason is the being of
a certain spectrum of human thinking. And if this is so, if that is what I
believe, then why should I bow to reason this afternoon and content myself
with embroidering on the discourse of the old philosophers.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I do not think that I could find better words to explain why, as I am close to
get my BA in Philosophy, I am struggling to cope with some of what I have learnt
so far.&lt;/p&gt;
&lt;p&gt;Do not get me wrong, I value my time at Ca&amp;rsquo; Foscari and there is no end to what
opening my mind to philosophy has done to me.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; And yet I wish I had known
Coetzee and Costello back when I was following a course on moral philosophy. It
has been more than two years since that exam, but I have never been able to
shake off the feeling of contempt it has left on me, its questionable attempt at
winning students over to a specific worldview. It became &lt;a href=&#34;https://manueluberti.eu/posts/2022-04-13-il-cavallo-rosso/&#34;&gt;even clearer&lt;/a&gt; a couple of months after the exam, but
obvious hints triggered me way before that.&lt;/p&gt;
&lt;p&gt;More specifically, while discussing the role of the human soul in Aquinas, the
professor decided to share his opinion on animal rights. He did so by
oversimplifying his arguments against the likes of Tom Regan and Peter Singer,
while talking about animal rights movements without acknowledging how they have
evolved since they were first born. It was baffling to notice how conveniently
he avoided any practical matter. Why should we care about intensive farming and
moral justifications for hunting when we can sit down and discuss about the
human soul from the comfort of our classroom?&lt;/p&gt;
&lt;p&gt;This whole approach served his purpose rather well. Eventually, he singled out
the possibility of reasoning about infinity as humans&amp;rsquo; defining trait. Human
life, he added, follows an arc trajectory, open to the transcendental, whereas
animals&amp;rsquo; is a cycle. And so what? How is that even relevant when one looks a bit
more closely at how humans have been treating animals over the course of
history? More importantly, how is his discourse of any relevance to the lives of
non-human animals?&lt;/p&gt;
&lt;p&gt;I put forward my opinion to the teacher&amp;rsquo;s assistant during a seminar, but the
conversation was cut short because, I can only assume, he sensed no way out from
the circularity of his arguments. Are we not to be held accountable when we
decide of the lives of other living beings? Is human reason so peculiar that it
can be excused from thinking about the implications of all our actions and not
just the ones we deem worth of moral judgements? Who are we to decide what is
morally justifiable to do to living beings we share our lives with?&lt;/p&gt;
&lt;p&gt;I believe philosophy must teach us how to live in a world greater than us. We
exist only because the world exists, not the other way around. We are born
humans, we argue with humans, but we find more than humans out there. If we are
still discussing the human soul and otherness in human terms, then we still have
to move past the old philosophers Elizabeth Costello refers to.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I suggest starting with &lt;em&gt;J. M. Coetzee and Ethics&lt;/em&gt; to get a general idea.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Coetzee, &lt;em&gt;Elizabeth Costello&lt;/em&gt;, p. 67.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;As I wrote other times, I will return to my experience at Ca&amp;rsquo; Foscari
later this year.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Food for Profit</title>
      <link>https://manueluberti.eu/posts/2024-03-26-food-for-profit/</link>
      <pubDate>Tue, 26 Mar 2024 06:50:50 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-03-26-food-for-profit/</guid>
      <description>&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2024-03-26-food-for-profit.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Last night, as I was walking out of the cinema where I had just watched &lt;a href=&#34;https://www.foodforprofit.com&#34;&gt;Food
for Profit&lt;/a&gt;, I could not help but think about the
people around me. It is pretty easy to say that maybe I am not the kind of
person Innocenzi&amp;rsquo;s and D&amp;rsquo;Ambrosi&amp;rsquo;s documentary aims at. Why would I need an
investigation such as this to move me towards ethical choices that by now I have
already been following for over ten years? And yet, beside supporting this much
too necessary endeavor, I was curious to sit in a room with other people and
sense the impact its images would have on eyes possibly not accustomed to the
reality of intensive farming.&lt;/p&gt;
&lt;p&gt;Let me start by simply saying that if one cares in any way about the world we
live in, then they should not ignore this work. Furthermore, at the moment in
Italy it is nearly impossible not to find a screening. Its authors have been
literally reaching every corner of this country to make sure everyone has a
chance to see the results of their five-year long effort. Considering that this
is an independent film which relies on word of mouth, because big producers and
giant distributors have no interest in alienating the meat industry,
Innoncenzi&amp;rsquo;s and D&amp;rsquo;Ambrosi&amp;rsquo;s willingness to share what they believe in is
absolutely remarkable.&lt;/p&gt;
&lt;p&gt;However, I had my misconceptions about the film. Somehow I was expecting it to
be solely criticism about European agricultural politics, as if the whole point
of the documentary was to expose politicians not behaving as one would suppose,
which would have been barely a surprise nowadays. This is only a part of what
Innoncenzi and D&amp;rsquo;Ambrosi do, though. They cannot and do not want to hide the
inevitable consequences of what some inept members of the European Parliament
agree upon. Animal suffering, diseases, environmental disasters, exploitation of
workers: it is all here in its vivid, horrific evidence.&lt;/p&gt;
&lt;p&gt;After what I learnt from &lt;a href=&#34;https://www.nationearth.com/&#34;&gt;Earthlings&lt;/a&gt; and
&lt;a href=&#34;https://www.youtube.com/watch?v=LQRAfJyEsko&#34;&gt;Dominion&lt;/a&gt;, I should be used to
mindless violence, but the shock always manages to unsettle me, just as it
always takes me a moment to recover from the fact that we seem incapable of
treating animals and other people with the same principles of humanity we
believe to have perfected over the course of history. &lt;em&gt;Food for Profit&lt;/em&gt; acts as
a powerful reminder of how we constantly and comfortably forget those principles
in order to enjoy privileges that we choose not to question. As Innocenzi said
to us at the end of the screening, we usually expect documentaries such as this
from the US. It is about time Europe comes to terms with the same atrocities
that we like to think are far way from us.&lt;/p&gt;
&lt;p&gt;This is what one should really focus on as they watch the film. I can hardly
trust critics who pick at Innoncenzi for posing herself in a sort of egocentric,
Michael Moore-like kind of way.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; On the contrary, I believe that she needs to
put herself right within these images and back them as strongly as she can. She
has every right to use her public persona to engage with viewers, because I do
not see this work as art for art&amp;rsquo;s sake, nor I see any point in approaching it
with the dissecting eye of a film critic. There is simply too much at stake in
this documentary to look at it with questionable, rational detachment or
reductionist arguments.&lt;/p&gt;
&lt;p&gt;And this is why last night I found people&amp;rsquo;s reactions more honest and important
than any critique. We were all shaken by the cruelty and the indifference we had
witnessed, but I was genuinely surprised by the sincere concern many showed at
the end. Innocenzi kindly replied to all the questions, most of which dealt with
what can we do now, what is actually feasible and what, if any, are the hopes
for a better world. If one, like me, finds it really difficult to believe that
the planet and whoever lives on it can put up with human actions any longer,
people&amp;rsquo;s response to &lt;em&gt;Food for Profit&lt;/em&gt; will be enough to placate the heart for a
while.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;See Matteo Marelli&amp;rsquo;s &amp;ldquo;review&amp;rdquo; on &lt;em&gt;FilmTv&lt;/em&gt;. The cheap scepticism used to
dismiss the actual point of &lt;em&gt;Food for Profit&lt;/em&gt; tells me more about Marelli
than the film itself.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>The irresistible tension of language</title>
      <link>https://manueluberti.eu/posts/2024-03-17-language-tension/</link>
      <pubDate>Sun, 17 Mar 2024 07:12:50 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-03-17-language-tension/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;My life is over, for during the deportation he has drowned in the river, he
was my life. I loved him more than my life.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Malina&lt;/em&gt;, Ingeborg Bachmann&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;My career at Ca&amp;rsquo; Foscari is coming to an end, at least in terms of my BA in
Philosophy. I will write about this long and wild journey another time, but
today I want to expand upon a brief talk I gave in class last Tuesday as part of
an assignment for the &lt;em&gt;Philosophy of Literature&lt;/em&gt; course.&lt;/p&gt;
&lt;p&gt;The professor asked us to work in groups on one of the essays we have to study
for the final exam, free to develop its contents in any feasible direction. For
reasons I am not entirely able to explain I was drawn to Aldo Gargani&amp;rsquo;s &lt;em&gt;Il
pensiero raccontato&lt;/em&gt;, a marvellous study about Austrian poet and author Ingeborg
Bachmann. Two other students soon joined me and we pleasantly lost ourselves in
her words as well as among the ones by Paul Celan, Thomas Bernhard and Ludwig
Wittgenstein.&lt;/p&gt;
&lt;p&gt;I was particularly fascinated by Gargani&amp;rsquo;s focus on the tension in Bachmann and
Bernhard writings. This tension is not just the reader&amp;rsquo;s feeling as they turn
the pages, albeit there are passages in Bachmann&amp;rsquo;s &lt;em&gt;Malina&lt;/em&gt; and Bernhard&amp;rsquo;s
&lt;em&gt;Gargoyles&lt;/em&gt;&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; perfectly capable of shaking one&amp;rsquo;s own psychological grounds.
The tension that Gargani highlights is &lt;em&gt;within&lt;/em&gt; the actual language used by
these authors. More specifically, the tension is between what is shown by the
language and what cannot be said. Where does this tension lead?&lt;/p&gt;
&lt;p&gt;According to Gargani the tension is always aimed at the reality we live in, its
purpose nothing less than being the cause of a &lt;em&gt;&amp;ldquo;moral leap&amp;rdquo;&lt;/em&gt;, as Bachmann puts
it in her Frankfurt lessons.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; Bachmann wants us to understand that in order
to confront the present we are thrown into and survive, we have to look at it
through lenses that are not, and cannot, be set once and for all. The past is
always transforming the present just as the present never sits still. There is
nothing, then, that we can seriously take for granted. Bachmann creates a
language that forces us to constantly look at where we are now and, at the same
time, gaze into where we really should be. This is why in her view literature
must be capable of influencing any present, the one we are currently in and
&lt;em&gt;every&lt;/em&gt; present that is yet to come.&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;The quote from &lt;em&gt;Malina&lt;/em&gt; I put at the beginning of this writing is the same one I
used in class. To me it is the perfect example of what Gargani so acutely finds
in Bachmann. In it she is conflating the tragic experience of Nazi Germany&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;
and the suicide of Romanian poet Paul Celan,&lt;sup id=&#34;fnref:6&#34;&gt;&lt;a href=&#34;#fn:6&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;6&lt;/a&gt;&lt;/sup&gt; thus keeping alive the horrible
connection between the past, hers and ours, with the present, hers and ours.
Furthermore, she is pushing us to look for implicit and explicit connections
within the text and outside of it. Bachmann is fully aware that her book should
not matter just for the people alive at the time of her writing. For it to be of
any value to all the possible readers that will get to it eventually, its
language has to keep renewing itself for every reader, creating tension between
different times and different spaces.&lt;/p&gt;
&lt;p&gt;As Jacques Derrida and Walter Benjamin wrote, this can only be done by using
live, dynamic affinities instead of channeling static similarities.&lt;sup id=&#34;fnref:7&#34;&gt;&lt;a href=&#34;#fn:7&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;7&lt;/a&gt;&lt;/sup&gt; This
means that language must not act as a homogenising common denominator. It should
not be a universal item that subsumes concepts, historical processes, and
cultural events under one, giant umbrella. If we lose heterogeneity, we lose the
possibility of seeing beyond ourselves. If we cannot see beyond ourselves, we
will never be able to change, and only the dead never changes.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;The English translation of &lt;em&gt;Malina&lt;/em&gt; from New Directions uses &amp;ldquo;transport&amp;rdquo;
instead of &amp;ldquo;deportation&amp;rdquo;, whereas the Italian translation published by
Adelphi goes with &amp;ldquo;deportazione&amp;rdquo;. I prefer the Italian version because it
makes the not so subtle reference to the concentration camps clearer.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;The German title, &lt;em&gt;Verstörung&lt;/em&gt;, translates as something like confusion or
derangement, whereas the Italian title is &lt;em&gt;Perturbamento&lt;/em&gt;, which is closer
to the original meaning.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;I am referring to &lt;em&gt;Letteratura come utopia. Lezioni di Francoforte&lt;/em&gt;
published by Adelphi, but there is an English translation as well titled
&lt;em&gt;The Critical Writings of Ingeborg Bachmann&lt;/em&gt;.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:4&#34;&gt;
&lt;p&gt;See: &lt;em&gt;Letteratura come utopia. Lezioni di Francoforte&lt;/em&gt;.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:5&#34;&gt;
&lt;p&gt;Her father was a member of the Austrian National Socialist Party.&amp;#160;&lt;a href=&#34;#fnref:5&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:6&#34;&gt;
&lt;p&gt;The relationship between Ingeborg Bachmann and Paul Celan was so intense
and incredible it deserves a much better writer than myself. To get an idea
I highly recommend starting with &lt;em&gt;Correspondence: Ingeborg Bachmann and Paul
Celan&lt;/em&gt; and then watching Ruth Beckermann&amp;rsquo;s &lt;em&gt;The Dreamed Ones&lt;/em&gt;.&amp;#160;&lt;a href=&#34;#fnref:6&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:7&#34;&gt;
&lt;p&gt;See Derrida&amp;rsquo;s &lt;em&gt;Des tours de Babel&lt;/em&gt; and &lt;em&gt;Qu&amp;rsquo;est-ce qu&amp;rsquo;une traduction
&amp;ldquo;relevante&amp;rdquo;?&lt;/em&gt;, and Benjamin&amp;rsquo;s &lt;em&gt;The Task of the Translator&lt;/em&gt; and &lt;em&gt;On Language
as Such and on the Language of Man&lt;/em&gt;.&amp;#160;&lt;a href=&#34;#fnref:7&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Everything that is born dies</title>
      <link>https://manueluberti.eu/posts/2024-02-10-marnero/</link>
      <pubDate>Sat, 10 Feb 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-02-10-marnero/</guid>
      <description>&lt;p&gt;I am still processing the contents of a message that one of my favourite bands
shared early today. A gravestone, that is.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2024-02-10-marnero.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;This annoucement hit me hard. They published what looked like the first half of
a &lt;a href=&#34;https://www.donnabavosa.com/marnero/&#34;&gt;new record&lt;/a&gt; five months ago and then
they toured Italy for a while, hence I was ready for the new record and another
chance to catch a live show. However, unless there is a cruel joke behind those
dates up there, this is never going to happen now.&lt;/p&gt;
&lt;p&gt;I have their records to return to, obviously, but a huge part of me is no more.
More importantly, people who had been keeping the spirit of underground music
alive since the early 2000s have put an end to a long, beautiful story.&lt;/p&gt;
&lt;p&gt;Maybe they will be back some day with a new name and new sounds, new ideas and
new friends. I sincerely hope so. And yet all will be different, me and them.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>From Jekyll to Hugo</title>
      <link>https://manueluberti.eu/posts/2024-01-21-hugo/</link>
      <pubDate>Sun, 21 Jan 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-01-21-hugo/</guid>
      <description>&lt;p&gt;This is yet another one of those articles that bloggers&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; put up every once in
a while to state they have moved to Hugo as their static website generator.&lt;/p&gt;
&lt;p&gt;Ruby dependencies are hard to manage, especially when building my website across
different machines with different operative systems. Recently I was forced to
use an Ubuntu image on SourceHut because a specific version of a gem was not
available on Debian stable, but that was just the tip of the iceberg. Every time
I change OS I need to fight with Ruby and &lt;code&gt;rvm&lt;/code&gt;, which is not fun at all. I
simply do not want to waste time in technicalities. I want the basic
architecture under this corner of the web to be simple and easy to use.&lt;/p&gt;
&lt;p&gt;Following a path similar to what &lt;a href=&#34;https://jvns.ca/blog/2016/10/09/switching-to-hugo/&#34;&gt;Julia
Evans&lt;/a&gt; did some years ago, I
would say that overall the migration went fairly smoothly.&lt;/p&gt;
&lt;p&gt;First I ran &lt;code&gt;hugo import jekyll&lt;/code&gt; to have a starting point, then I grabbed the
CSS generated for my old website and used it as the basis for the new version.
The thing is I do not want to deal with SCSS files and SASS plugins any more.
One CSS file is enough for my trivial needs, although I will need to clean it up
a bit soon.&lt;/p&gt;
&lt;p&gt;Moreover, I had to write a custom &lt;code&gt;render-image.html&lt;/code&gt; to make sure I could use a
caption under my images if needed. Other than that, combinations of
&lt;code&gt;project-find-regexp&lt;/code&gt; and &lt;code&gt;query-replace&lt;/code&gt; let me quickly fix the syntax in my
posts to make Hugo happy.&lt;/p&gt;
&lt;p&gt;Moving to Hugo resulted in a smaller &lt;code&gt;.build.yml&lt;/code&gt; manifest to package and deploy
my website via SourceHut pages. In practical terms, I can now use an Alpine
image where Hugo and &lt;a href=&#34;https://sr.ht/~emersion/hut/&#34;&gt;hut&lt;/a&gt; are readily available
to handle everything after a &lt;code&gt;git push&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I feel old writing this word.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>The perfect book club</title>
      <link>https://manueluberti.eu/posts/2024-01-06-book-club/</link>
      <pubDate>Sat, 06 Jan 2024 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2024-01-06-book-club/</guid>
      <description>&lt;p&gt;In &lt;a href=&#34;https://manueluberti.eu/posts/2023-12-22-my-2023/&#34;&gt;my recap&lt;/a&gt; of 2023 I quickly mentioned that
I wanted to expand on my experience with the &lt;a href=&#34;https://proustsociety.org/&#34;&gt;Proust Society of
Greenwich&lt;/a&gt;, so here I am. I would also like to take
this opportunity to reflect on what a book club should do for me.&lt;/p&gt;
&lt;p&gt;I have always wanted to share my opinions on the things I love. I remember
fondly the pre-Reddit age of internet fora and I still subscribe to mailing
lists and newsletters for in-depth discussions without the ubiquitous
distractions of today&amp;rsquo;s world wide web. My experience with a book or a film is
not complete if I do not translate my feelings into words for someone to read or
to hear. This urge to express my own mind is what has been driving me to search
for book clubs over the past years. Since the Proust Society of Greenwich is the
last one I joined, let me briefly describe the previous ones.&lt;/p&gt;
&lt;p&gt;My very first book club since I have been living in this town was organised by a
co-worker of my better half who wanted to make their students read books in
their original language (English) in order to discuss them together (in
English). I was not part of their group of students, but I asked if I could join
anyway for the sake of reading and sharing comments. After a few meetings I sort
of understood that the main aim of the book club was having students practice
and improve their knowledge of the English language, which was not really the
reason for me to be there. This is not to say that I do not need to improve my
English, because I always do. Nonetheless, it was not what I had hoped for.&lt;/p&gt;
&lt;p&gt;My second book club was organised by a nearby public library. This is a
close-knit group of people, most of them part of the club since its beginnings
back in the 2010s. That is why I entered a bit shyly, not really sure how to
relate and what to add at first.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; Soon I started to fit in better, but I also
realised that I was not enjoying the books that we were supposed to read and
talk about. I tend to treasure the amount of time I have for my readings
because, simply put, time is never enough. I cannot afford to waste it on books
that do not work for me.&lt;/p&gt;
&lt;p&gt;The third book club was one I pushed for. When I got the news that a philosophy
book club was about to start not too far from where I live my expectations
skyrocketed. Since I am not as close to the university campus as I wish, I do
not have many people around me to discuss philosophy with. I wanted the book
club to be the place for close readings and unpacking of theories, because,
despite my years at Ca&amp;rsquo; Foscari, I still feel like a novice in this regard.
Unfortunately, the club turned out to be something different.&lt;/p&gt;
&lt;p&gt;Open to everyone remotely interested in philosophy, it consisted in monthly
chats on selected pages of books picked according to so-called themes (e.g.,
friendship, love, etc.). With little to no guidance from the organisers, the
books were chosen from a list including philosophical, psychological, and
literary works. Mostly people shared feelings about the content of the books and
that was it. I offered some feedback to the organisers a couple of times, only
to be ignored. Introducing philosophy to everybody is an admirable endeavor, but
that was not what I had in mind.&lt;/p&gt;
&lt;p&gt;After reading Proust&amp;rsquo;s &lt;em&gt;La Recherche&lt;/em&gt; for the first time I just could not stop
thinking about it.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; More importantly, I thought that what I had been really
looking for in a book club was a group of people devoted to just one author or
one book that seriously moves us. I had read wonders about an &lt;em&gt;Infinite Jest&lt;/em&gt;
marathon, for instance, but I could not find anything Proust-related in my
country.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; A quick online research, however, pointed me to the right place.
Fereshteh Priou, the person in charge of the Proust Society of Greenwich, kindly
admitted me to the meetings and so it began.&lt;/p&gt;
&lt;p&gt;We get together online once a month, 20-25 fellow Proust lovers. The aim is
reading all seven volumes of &lt;em&gt;La Recherce&lt;/em&gt;, a small selection of pages at a
time. In this age of ever-decreasing attention span this is the right pace for
such a demanding work. What really helps, though, is Priou&amp;rsquo;s vast knowledge of
the subject. She singles out passages for us to discuss and she is never out of
prompts to keep the words flying around. Most of the times I learn something new
and yet I never feel discouraged to speak my mind. Moreover, we rarely lose
focus and this is of immense value. Online meetings do not make it easy to stay
constantly alert, but Priou keeps it all together nicely and in the end it
always seems like one hour is way too short to share our love for Proust.&lt;/p&gt;
&lt;p&gt;Eventually, finding myself among people who come with their own cultural
background to an author or a book that everyone is at the very least interested
in is the best place to spend my time while sharing my obsessions. We take it
slow, we value the time spent on understanding the intricacies of Proust&amp;rsquo;s
passages by paying close attention to them. This makes much more sense to me
than sitting down to discuss a different book on each occasion. In the other
clubs I mentioned above it was often the case that some member did not finish
the book in time for the meeting, so they felt unable to add something
meaningful to the conversation. Why constraint ourselves to a schedule instead
of allowing us the precious and much needed moments to approach a book slowly,
to parse it calmly, and savour it page after page?&lt;/p&gt;
&lt;p&gt;On the other hand, my experience with the Proust Society of Greenwich leaves my
quest for a philosophy book club open, but who knows. Some day, maybe. Some day.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;&amp;ldquo;Sociability is hard enough for me.&amp;rdquo; (&lt;em&gt;Coffee &amp;amp; TV&lt;/em&gt;, Blur)&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Ask my partner.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;As it is often the case.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>My 2023</title>
      <link>https://manueluberti.eu/posts/2023-12-22-my-2023/</link>
      <pubDate>Fri, 22 Dec 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-12-22-my-2023/</guid>
      <description>&lt;p&gt;Another year, another recap. 2023 has been a strange bunch of months for
different reasons. Last year I complained about not finding enough motivation
with my studies and the book clubs I had joined. 2023, on the other hand, has
been definitely better in these regards. I will return to my studies later when
I will deal with my favourite books, but in terms of book clubs I am now a
member of the &lt;a href=&#34;https://proustsociety.org/&#34;&gt;Proust Society of Greenwich&lt;/a&gt; and I
have found myself deeply involved in monthly discussions on my favourite author.
A rewarding experience to say the least, something I would like to expand on
soon.&lt;/p&gt;
&lt;p&gt;Anyway, let&amp;rsquo;s proceed.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;emacs&#34;&gt;Emacs&lt;/h3&gt;
&lt;p&gt;I have to say 2023 has seen few experiments with the one and only text editor. I
have moved around completion solutions just to rely on the standard, built-in
one eventually, because it has been much improved in &lt;a href=&#34;https://manueluberti.eu/posts/2023-01-12-completions/&#34;&gt;Emacs 29&lt;/a&gt; and therefore in the development version I use as
well. The one thing I was missing is a predictable behaviour for the window
containing the &lt;code&gt;*Completions*&lt;/code&gt; buffer. Basically, I want this window to always
pop up at the bottom.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(add-to-list
 &#39;display-buffer-alist
 &#39;(&amp;quot;\\*Completions*\\*&amp;quot;
   (display-buffer-reuse-mode-window display-buffer-at-bottom)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Furthermore, I have been relying a lot on &lt;code&gt;project-compile&lt;/code&gt; to run unit and
integration tests and execute &lt;code&gt;shadow-cljs&lt;/code&gt; when needed. Speaking of Cloure, I
have played around a bit with &lt;a href=&#34;https://manueluberti.eu/posts/2023-08-26-clojure-tree-sitter/&#34;&gt;clojure-ts-mode&lt;/a&gt; with nothing to be sad about, although I
have yet to find corner cases which regular &lt;code&gt;clojure-mode&lt;/code&gt; seriously struggles
with.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;learning-french&#34;&gt;Learning French&lt;/h3&gt;
&lt;p&gt;Early this year I briefly mentioned &lt;a href=&#34;https://manueluberti.eu/posts/2023-02-19-why-proust/&#34;&gt;my intention to learn French&lt;/a&gt; in order to read the entirety of Proust&amp;rsquo;s oeuvre. I
started with the popular Duolingo, but after a while I was tired of random
phrases without context. I cannot learn a language like this. At most this is
good for practising and revising.&lt;/p&gt;
&lt;p&gt;Therefore I went with the good old way: a proper course with a professional
language teacher. I looked for one on Preply until I found the teacher with the
right qualifications. Everything has been great so far, my basic knowledge of
French has already improved a lot.&lt;/p&gt;
&lt;p&gt;Along with the lessons I have been following the same approach I had used in the
past to learn English: language exposure. I watched my first French film without
English subtitles (Roman Polanski&amp;rsquo;s &lt;em&gt;J&amp;rsquo;accuse&lt;/em&gt;), I read my first French book
with a dictionary on the side and no translation to help me (Neige Sinno&amp;rsquo;s
&lt;em&gt;Triste tigre&lt;/em&gt;), I have been reaching for French news (Franceinfo and France
24), and I have been keeping a grammar book next to me for some extra practice.&lt;/p&gt;
&lt;p&gt;All of this would not make much sense if I had not set a goal for myself, which
is a DELF B2 certification. It will take time, but I will get there.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;books&#34;&gt;Books&lt;/h3&gt;
&lt;p&gt;First, the usual selection from this year&amp;rsquo;s readings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;I piaceri e i giorni&lt;/em&gt; (Marcel Proust)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Jean Santeuil&lt;/em&gt; (Marcel Proust)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Saggi&lt;/em&gt; (Marcel Proust)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Vita di Marcel Proust&lt;/em&gt; (Jean Yves-Tadié)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Giovanni&amp;rsquo;s Room&lt;/em&gt; (James Baldwin)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Teoria del romanzo&lt;/em&gt; (Guido Mazzoni)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Le vite del romanzo&lt;/em&gt; (Thomas Pavel)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;The Idiot&lt;/em&gt; (Elif Batuman)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Sulla poesia moderna&lt;/em&gt; (Guido Mazzoni)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Either/Or&lt;/em&gt; (Elif Batuman)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Bel Ami&lt;/em&gt; (Guy De Maupassant)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Blonde&lt;/em&gt; (Joyce Carol Oates)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Fontamara&lt;/em&gt; (Ignazio Silone)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Senza intellettuali&lt;/em&gt; (Giorgio Caravale)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Triste tigre&lt;/em&gt; (Neige Sinno)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is no need to explain again why Proust is there. Nonetheless,
here are some additional notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;literary theory is a wonderful thing;&lt;/li&gt;
&lt;li&gt;I consider &lt;a href=&#34;https://manueluberti.eu/posts/2023-07-23-batuman-ferrari/&#34;&gt;Elif Batuman&lt;/a&gt; one of the
most interesting writers out there. Her newsletter is a nice way to entertain
me while I eagerly wait for her next book;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2023-09-17-marilyn-avatar/&#34;&gt;Blonde&lt;/a&gt; hit me on so many levels
that I have struggled to find something interesting to write about it. I
honestly believe it is one of the greatest books I have ever put my eyes on;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Triste tigre&lt;/em&gt; started as an exercise because I wanted to read something in
French and it has ended up being an emotional tour de force. A &lt;em&gt;Lolita&lt;/em&gt; from
the other side if you will.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is another author that has played an important role in the last months,
but I have not put him on the list because I have only studied bits and pieces
of his writings so far. Still, since it has already been moving me in so many
ways,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; he deserves a mention: Antonio Gramsci. Thanks to a course on
political philosophy I have finally had the chance to study Gramsci more closely
and work on my rather sparse knowledge of him. The more I dig the more he is
leaving a mark on me as great as Spinoza&amp;rsquo;s.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;music&#34;&gt;Music&lt;/h3&gt;
&lt;p&gt;The new records from RVG and Angie McMahon came out right when I needed them
this year. RVG showed up with their best album so far, fiercely personal and
less obvious about its roots than the two before, while McMahon healed her
wounds with an open letter from her heart to the world, as close to a real-life
hug as possible.&lt;/p&gt;
&lt;p&gt;I should also put Róisín Murphy here. Even though her controversial statements
ruined her party, I still believe her latest effort is fantastic. And let&amp;rsquo;s not
forget about Paul St. Hilaire, who came back after many years with all the dub
vibes one could ask for.&lt;/p&gt;
&lt;p&gt;As for Italy, I am glad the people behind the music festival I mentioned last
year are back with a new place for great live music. Thanks to them I found out
about Trust The Mask and their lovely &lt;em&gt;Idiom&lt;/em&gt;. It was impossible to stay still
at the concert, a sign of undeniable quality. I have also the utmost respect for
the intrepid Daniela Pes, whose &lt;em&gt;Spira&lt;/em&gt; sounds like nothing else around me, and
only good words for Marta Del Grandi and The Thugs.&lt;/p&gt;
&lt;p&gt;However, boygenius&amp;rsquo; &lt;em&gt;the record&lt;/em&gt; and, to a lesser extent, the follow-up EP &lt;em&gt;the
rest&lt;/em&gt; are what 2023 has been mostly all about in terms of music. The vinyl did
not come cheap, but &lt;em&gt;the record&lt;/em&gt; has been pretty much my go-to album until
McMahon stole its thunder. It does not matter, anyway, because boygenius are a
storm and they still have plenty a thunder to share.&lt;/p&gt;
&lt;p&gt;As for older music, I have fallen madly in love with Ada Oda, who are clearly
here to remind me new wave is as relevant for me today as it was back in my
youth, and I have found something worth of attention in Andrew WK&amp;rsquo;s most recent
and less appreciated albums. They cannot match the wild rides of his first two
works but at least they do find him at peace with himself somehow.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;cinema&#34;&gt;Cinema&lt;/h3&gt;
&lt;p&gt;Just as it has been a great year for studying and reading, cinema has found its
way to my heart again. The following is a mixed selection of titles from 2023
and from 2022, because I had so much to catch up with.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Knock at the Cabin&lt;/em&gt; (M. Night Shyamalan)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;La Nuit du 12&lt;/em&gt; (Dominik Moll)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Novembre&lt;/em&gt; (Cédric Jimenez)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Coma&lt;/em&gt; (Bertrand Bonello)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Pacifiction&lt;/em&gt; (Albert Serra)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Blonde&lt;/em&gt; (Andrew Dominik)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Avatar: The Way of Water&lt;/em&gt; (James Cameron)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Malum&lt;/em&gt; (Anthony DiBlasi)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Sick of Myself&lt;/em&gt; (Kristoffer Borgli)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Bodies Bodies Bodies&lt;/em&gt; (Halina Reijn)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Anatomy of a Fall&lt;/em&gt; (Justine Triet)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Bottoms&lt;/em&gt; (Emma Seligman)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Ferrari&lt;/em&gt; (Michael Mann)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Priscilla&lt;/em&gt; (Sofia Coppola)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;May December&lt;/em&gt; (Todd Haynes)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As I did with books, some extra notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;French cinema is still able to say things like nobody else;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2023-09-17-marilyn-avatar/&#34;&gt;Blonde&lt;/a&gt; is absolutely fantastic and
I wonder if my appreciation for it could explain why I feel so distant from
most contemporary film critics;&lt;/li&gt;
&lt;li&gt;James Cameron is once again reinventing cinema;&lt;/li&gt;
&lt;li&gt;I am so happy that horror films still talk to me;&lt;/li&gt;
&lt;li&gt;I did not need &lt;em&gt;Ferrari&lt;/em&gt; to love Michael Mann, but I am glad he wanted to make
sure my feelings have not changed.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;So much so that the critical editions of his &lt;em&gt;Notebooks&lt;/em&gt; and &lt;em&gt;Letters&lt;/em&gt; are
already next to me.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>World Vegan Day</title>
      <link>https://manueluberti.eu/posts/2023-11-01-world-vegan-day/</link>
      <pubDate>Wed, 01 Nov 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-11-01-world-vegan-day/</guid>
      <description>&lt;p&gt;It has been almost 10 years since I turned to a vegan lifestyle, but I have
never written much about this choice here. Partly because I tend not to
advertise my beliefs unless explicitly asked, and partly because I expect people
to be able to look up for themselves what being vegan means and why it matters.&lt;/p&gt;
&lt;p&gt;However, I do feel like this is an important cause I have not been doing enough
for so far. It is true that my choice means one less person out there eating
meat and dairy products, but is it really enough? Believing in something implies
standing up for it, and I have never stood up for anything remotely this
necessary in my life before.&lt;/p&gt;
&lt;p&gt;To celebrate &lt;a href=&#34;https://vegan-day.org/en/&#34;&gt;World Vegan Day&lt;/a&gt; I would like to share
some helpful resources one could peruse to understand why a change of diet is a
crucial step in the right direction and why much more could be done for a far
better world.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;anonymous-for-the-voiceless&#34;&gt;Anonymous for the Voiceless&lt;/h3&gt;
&lt;p&gt;The not-for-profit animal rights organisation &lt;a href=&#34;https://www.anonymousforthevoiceless.org&#34;&gt;Anonymous for the
Voiceless&lt;/a&gt; discusses veganism and
animal exploitation directly on the streets. They collected some videos over at
&lt;a href=&#34;https://cubeoftruth.com/av&#34;&gt;The Essential Videos&lt;/a&gt; and being fooled by a
click-bait title such as &lt;em&gt;Best Speech You Will Ever Hear&lt;/em&gt; makes total sense for
once.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;adaptt&#34;&gt;ADAPTT&lt;/h3&gt;
&lt;p&gt;Following the above mentioned video one could visit the
&lt;a href=&#34;https://www.adaptt.org/&#34;&gt;ADAPTT&lt;/a&gt; website and begin their journey at &lt;a href=&#34;https://www.adaptt.org/resources/becoming-a-new-vegan.html&#34;&gt;Becoming a
New Vegan&lt;/a&gt;. There is
useful information everywhere on this website, so be sure to check out other
pages as well.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;earthlings&#34;&gt;Earthlings&lt;/h3&gt;
&lt;p&gt;A key part in my move to veganism and why I consider it the most rational choice
I have ever made was &lt;a href=&#34;https://www.nationearth.com/&#34;&gt;Earthlings&lt;/a&gt;, a devastating
close look at animal exploitation. This is an eye-opener for anyone who prefers
to turn away from violence on animals while accepting it for illogical reasons.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;lav&#34;&gt;LAV&lt;/h3&gt;
&lt;p&gt;What I like about &lt;a href=&#34;https://www.lav.it/&#34;&gt;LAV&lt;/a&gt; is the extent of their operations,
the legal actions they are willing to pursue, the campaigns they constantly
promote, their coordinated efforts day after day for the sake of animals. LAV is
for Italians only, but one can refer to &lt;a href=&#34;https://www.peta.org/&#34;&gt;PETA&lt;/a&gt; for a
somewhat similar approach.&lt;/p&gt;
&lt;p&gt;This is of course only a selection of places one can have easily access to, not
to mention people to get in touch with, in order to learn about different
choices and alternative consequences. It does not take much to dig up more with
a decent search engine.&lt;/p&gt;
&lt;p&gt;I firmly believe we all can live a better lifestyle if we base our actions on
caring, a feeling more relevant now than it has possibly ever been. When we care
the world makes much more sense. With this powerful feeling within, every action
makes much more sense as well.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Perhaps she would not have thought of evil as a state so rare, so abnormal, so
exotic, one in which it was so refreshing to sojourn, had she been able to
discern in herself, as in everyone else, that indifference to the sufferings
one causes which, whatever other names one gives it, is the most terrible and
lasting form of cruelty.&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;In Search of Lost Time&lt;/em&gt;, Marcel Proust&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    <item>
      <title>Using Ugrep with Embark</title>
      <link>https://manueluberti.eu/posts/2023-10-01-embark-ugrep/</link>
      <pubDate>Sun, 01 Oct 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-10-01-embark-ugrep/</guid>
      <description>&lt;p&gt;When I wrote about &lt;a href=&#34;https://manueluberti.eu/posts/2023-09-16-consult-ugrep/&#34;&gt;using Ugrep with Consult&lt;/a&gt; I hinted at the chance of having my custom command available in Embark as
well.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Building on top of Consult is great. Much like &lt;code&gt;consult-git-grep&lt;/code&gt; and
&lt;code&gt;consult-ripgrep&lt;/code&gt;, the integration with Embark is around the corner.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As &lt;a href=&#34;https://github.com/oantolin/embark/issues/663#issuecomment-1722966589&#34;&gt;Omar Antolín
Camarena&lt;/a&gt;
explained to me, though, it is not immediately obvious how to combine
&lt;code&gt;mu-consult-ugrep&lt;/code&gt; with Embark.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Consult async search commands are tricky to use as Embark actions, which is
why there is an entire, nontrivial embark-consult package to set up the
integration.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;However, he kindly suggested &lt;a href=&#34;https://github.com/oantolin/embark/issues/663#issuecomment-1722967814&#34;&gt;the
solution&lt;/a&gt;
to my problem as well. I just had to add it to my setup:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(with-eval-after-load &#39;embark-consult
  (setf (alist-get &#39;mu-consult-ugrep embark-target-injection-hooks)
        &#39;(embark-consult--prep-async embark--allow-edit))

  (setf (alist-get &#39;mu-consult-ugrep embark-pre-action-hooks)
        &#39;(embark--unmark-target))

  (setf (alist-get &#39;mu-consult-ugrep embark-around-action-hooks)
        &#39;(embark-consult--projectless embark--cd))

  (keymap-set embark-consult-search-map &amp;quot;u&amp;quot; #&#39;mu-consult-ugrep))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The above code lets me call &lt;code&gt;mu-consult-ugrep&lt;/code&gt; on the candidate at point with
&lt;code&gt;C-. C u&lt;/code&gt;, where &lt;code&gt;C-.&lt;/code&gt; corresponds to &lt;code&gt;embark-act&lt;/code&gt; while &lt;code&gt;C&lt;/code&gt;
gives me access to &lt;code&gt;embark-consult-search-map&lt;/code&gt;. This approach complements my
regular usage of &lt;code&gt;mu-consult-ugrep&lt;/code&gt; via &lt;code&gt;M-s u&lt;/code&gt;, which I generally use
when what I am looking for is &lt;em&gt;not&lt;/em&gt; the thing at point.&lt;/p&gt;
&lt;p&gt;Note that &lt;code&gt;C-. C u&lt;/code&gt; can be just as easily replaced by &lt;code&gt;M-s u M-n M-n&lt;/code&gt;
to leverage Emacs&amp;rsquo; future history&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; or even by &lt;a href=&#34;https://manueluberti.eu/posts/2022-09-01-consult-xref/&#34;&gt;a basic wrapper&lt;/a&gt; around &lt;code&gt;mu-consult-ugrep&lt;/code&gt; that would grab the
thing at point. This is Emacs, of course, so the user is in charge of their
preferences.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Type &lt;code&gt;C-h i g&lt;/code&gt; &lt;code&gt;(emacs) Minibuffer History&lt;/code&gt; &lt;code&gt;RET&lt;/code&gt; to
know more.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Marilyn’s avatar</title>
      <link>https://manueluberti.eu/posts/2023-09-17-marilyn-avatar/</link>
      <pubDate>Sun, 17 Sep 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-09-17-marilyn-avatar/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I guess there isn&amp;rsquo;t any Norma Jean, is there?&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;em&gt;Blonde&lt;/em&gt;, Andrew Dominik&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The first image of Marilyn Monroe I have ever seen is a photo of her, up on the
wall of the living room in the house where I grew up. It has been there for as
long as I can remember and it is still there today. I have never paid too much
attention to it, to be honest, even when I understood who the charming lady was.
It seemed like an icon from a past I did not feel really attached to. Recently,
while reading Joyce Carol Oates&amp;rsquo; &lt;em&gt;Blonde&lt;/em&gt; and right before watching Andrew
Dominik&amp;rsquo;s film of the same name, I have had the chance to look at the photo more
closely. Once again, it eluded me. Where is Norma Jeane here?&lt;/p&gt;
&lt;p&gt;Oates and Dominik ask themselves the same question and set out to explore what
phrasing it means, way before searching for an answer. What Oates aptly
discovers and what Dominik bravely takes away from her book is that in order to
understand the woman behind Marilyn Monroe one has to start from her body and
think of how &lt;em&gt;she&lt;/em&gt; lived it. This could explain why Oates&amp;rsquo; and Dominik&amp;rsquo;s works
have been met with mixed reactions. There is no point in expecting the story of
Marilyn Monroe or asking for another apologetic tale of belated repentance, just
as it makes no sense to complain about how shattered one&amp;rsquo;s own mental picture of
her will be after the last word and the last scene. Quite the contrary. The
fragments Oates and Dominik disperse should be treasured as pieces of a bigger
puzzle everyone is required to complete.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2023-09-17-marilyn.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Marilyn Monroe (Cecil Beaton, 1956)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Indeed, Marilyn Monroe remains a mystery the solution of which cannot be found
neither in Oates&amp;rsquo; book nor in Dominik&amp;rsquo;s film. Still, the pages and the images
provide a specific point of view, an angle from which one can observe Marilyn
Monroe and try &lt;em&gt;for themselves&lt;/em&gt; to find a way in her world of mirrors,
illusions, fame and failure, tragedy and eternity. I have the utmost respect for
a writer, a director or, generally speaking, an artist who provokes me or even
infuriates me. As long as a reaction to what is placed in front of me is
demanded, art is already doing the right thing regardless of any aesthetic
consideration. I like to think I deserve a bit of credit from an artist, I want
to believe they know they can rely on me doing my best to engage with their
effort. Simply put, I may not share the artist knowledgeable background, but it
does not mean that I should be treated as a goof.&lt;/p&gt;
&lt;p&gt;This is why I felt so compelled by Oates and Dominik. They refuse to pamper
their audience and keep pushing forward whatever they think worth of our
attention. Take Oates, for instance. She offers a plethora of voices, never at
peace with a simple opinion, deliberately refusing to add details for the sake
of completeness. What if the reader cannot understand a specific passage because
they are not familiar with Norma Jean&amp;rsquo;s youth? What if they cannot recognise
names, places, events? Oates does not care. She points at the source material
for her book in the very first pages, so the reader knows how to fill the gaps
if so inclined. Eventually, Oates shapes facts, invents characters, exaggerates
situations, and breaks conventional pictures of Marilyn Monroe. What we read is
beyond the true-false dichotomy. Only Norma Jean painfully knows what is true
and what is false about Marilyn Monroe.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2023-09-17-blonde.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Blonde (Andrew Dominik, 2022)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Dominik accepts Oates&amp;rsquo; uncompromising imagination and dives as deep as possible
in the horror of this story. The director plays to great extent with Norma Jean
being an avatar of Marilyn Monroe. One would expect the exact opposite, but
Dominik convincingly insists on the psychological power of Monroe, a white men
product, over the fragile woman who was never able to overcome it. Monroe takes
apart Norma Jean mind and body, destroys her private life every time she tries
to get it back, and owns her to the end until exhaustion. Much like Oates,
Dominik picks what makes sense to him from the book and, to a larger extent,
from Monroe&amp;rsquo;s life. And just like the writer, the director twists specific
moments and develops new scenarios with remarkable effect. Look, for example, at
his shocking depiction of Norma Jean&amp;rsquo;s nightmares or marvel at the outstanding
yet unsustainable last minute of the film.&lt;/p&gt;
&lt;p&gt;Both authors have been criticised for their supposedly merciless treatment of a
sacred icon like Marilyn Monroe. Again, destabilising common conscience and
subverting given myths is precisely what art should do. Oates&amp;rsquo; and Dominik&amp;rsquo;s
works aim at the same target: where does entertainment end? More than twenty
years separate the film from the book, but this question is as relevant today as
it was back in the early 2000s.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Using Ugrep with Consult</title>
      <link>https://manueluberti.eu/posts/2023-09-16-consult-ugrep/</link>
      <pubDate>Sat, 16 Sep 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-09-16-consult-ugrep/</guid>
      <description>&lt;p&gt;I have &lt;a href=&#34;https://manueluberti.eu/posts/2022-09-01-consult-xref/&#34;&gt;already discussed&lt;/a&gt; how one can
leverage &lt;code&gt;ugrep&lt;/code&gt; and &lt;code&gt;consult-xref&lt;/code&gt; to make a &lt;code&gt;completing-read&lt;/code&gt; variant of
&lt;code&gt;project-find-regexp&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;However, today I would like to go a bit further and show how easily Consult can
be extended to include a command that behaves like &lt;code&gt;consult-grep&lt;/code&gt;,
&lt;code&gt;consult-git-grep&lt;/code&gt;, and &lt;code&gt;consult-ripgrep&lt;/code&gt;, but with &lt;code&gt;ugrep&lt;/code&gt; as its engine. True,
something along these lines &lt;a href=&#34;https://github.com/minad/consult/issues/604&#34;&gt;has been
around&lt;/a&gt; for a while. And yet I have
no need for an external package when Consult has everything in place in order to
devise a custom command.&lt;/p&gt;
&lt;p&gt;By inspecting the code behind &lt;code&gt;consult-git-grep&lt;/code&gt; and &lt;code&gt;consult-ripgrep&lt;/code&gt; the
pattern is pretty clear:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a &lt;code&gt;defcustom&lt;/code&gt; with the command (e.g., &lt;code&gt;git grep&lt;/code&gt;) and its arguments&lt;/li&gt;
&lt;li&gt;a builder function to create the actual command to be invoked (e.g.,
&lt;code&gt;consult--git-grep-make-builder&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;a wrapper around &lt;code&gt;consult--grep&lt;/code&gt; (e.g., &lt;code&gt;consult-git-grep&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Therefore, the solution is simple:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defvar mu-consult-ugrep-args (string-join &#39;(&amp;quot;ugrep&amp;quot;
                                             &amp;quot;--color=never&amp;quot;
                                             &amp;quot;--exclude-dir=.git/&amp;quot;
                                             &amp;quot;--hidden&amp;quot;
                                             &amp;quot;--ignore-binary&amp;quot;
                                             &amp;quot;--ignore-case&amp;quot;
                                             &amp;quot;--line-buffered&amp;quot;
                                             &amp;quot;--line-number&amp;quot;
                                             &amp;quot;--null&amp;quot;
                                             &amp;quot;--recursive&amp;quot;)
                                           &amp;quot; &amp;quot;))

(defun mu-consult-ugrep-make-builder (paths)
  &amp;quot;Create ugrep command line builder given PATHS.&amp;quot;
  (let ((cmd (consult--build-args mu-consult-ugrep-args)))
    (lambda (input)
      (pcase-let* ((`(,arg . ,opts) (consult--command-split input))
                   (`(,re . ,hl)
                    (funcall consult--regexp-compiler arg &#39;extended t)))
        (when re
          (cons (append cmd
                        (cdr (mapcan (lambda (x) (list &amp;quot;--and&amp;quot; &amp;quot;-e&amp;quot; x)) re))
                        opts paths)
                hl))))))

(defun mu-consult-ugrep (&amp;amp;optional dir initial)
  &amp;quot;Search with `ugrep&#39; for files in DIR with INITIAL input.&amp;quot;
  (interactive &amp;quot;P&amp;quot;)
  (require &#39;consult)
  (consult--grep &amp;quot;Ugrep&amp;quot; #&#39;mu-consult-ugrep-make-builder dir initial))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Since I am always using the same &lt;code&gt;ugrep&lt;/code&gt; options, my builder function is a bit
simpler than &lt;code&gt;consult--git-grep-make-builder&lt;/code&gt; or
&lt;code&gt;consult--ripgrep-make-builder&lt;/code&gt;. Other than that, it&amp;rsquo;s only a matter of
understanding the right options for &lt;code&gt;ugrep&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Building on top of Consult is great. Much like &lt;code&gt;consult-git-grep&lt;/code&gt; and
&lt;code&gt;consult-ripgrep&lt;/code&gt;, the integration with Embark is around the corner. And now
that the power of the minibuffer is available during my searches I have no use
for &lt;a href=&#34;https://manueluberti.eu/posts/2022-08-07-emacs-ugrep/&#34;&gt;mu-recursive-grep&lt;/a&gt; any more.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Clojure and Tree-sitter</title>
      <link>https://manueluberti.eu/posts/2023-08-26-clojure-tree-sitter/</link>
      <pubDate>Sat, 26 Aug 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-08-26-clojure-tree-sitter/</guid>
      <description>&lt;p&gt;By now Emacs users are well aware of
&lt;a href=&#34;https://tree-sitter.github.io/tree-sitter/&#34;&gt;Tree-sitter&lt;/a&gt; and the built-in
integration that comes with &lt;a href=&#34;https://www.masteringemacs.org/article/how-to-get-started-tree-sitter&#34;&gt;Emacs
29&lt;/a&gt;. I am
a bit late to the party because only recently I have started to look into
&lt;code&gt;treesit-language-source-alist&lt;/code&gt; and &lt;code&gt;treesit-install-language-grammar&lt;/code&gt;, but
right now I am more interested in how Clojure programming can benefit from
Tree-sitter.&lt;/p&gt;
&lt;p&gt;Danny Freeman is the maintainer of
&lt;a href=&#34;https://github.com/clojure-emacs/clojure-ts-mode&#34;&gt;clojure-ts-mode&lt;/a&gt;, and after I
kindly &lt;a href=&#34;https://github.com/clojure-emacs/clojure-ts-mode/issues/8#issuecomment-1675729535&#34;&gt;nudged
him&lt;/a&gt;
he made it available on NonGNU ELPA. This means that the package is only a &lt;code&gt;M-x package-install&lt;/code&gt; away.&lt;/p&gt;
&lt;p&gt;Once installed Emacs has to know how to prefer &lt;code&gt;clojure-ts-mode&lt;/code&gt; to good old
&lt;code&gt;clojure-mode&lt;/code&gt;. This is where &lt;code&gt;majore-mode-remap-alist&lt;/code&gt; comes into play.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(push &#39;(clojure-mode . clojure-ts-mode) major-mode-remap-alist)
(push &#39;(clojurec-mode . clojurec-ts-mode) major-mode-remap-alist)
(push &#39;(clojurescript-mode . clojurescript-ts-mode) major-mode-remap-alist)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Since I always use CIDER let&amp;rsquo;s leverage &lt;code&gt;clojure-ts-mode-hook&lt;/code&gt; to enable it.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(add-hook &#39;clojure-ts-mode-hook #&#39;cider-mode)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is enough to activate &lt;code&gt;clojure-ts-mode&lt;/code&gt;, but upon entering a project I
noticed the lack of a couple of useful key bindings.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(with-eval-after-load &#39;clojure-ts-mode
  (keymap-set clojure-ts-mode-map &amp;quot;C-c C-r&amp;quot; &#39;clojure-refactor-map)
  (keymap-set clojure-ts-mode-map &amp;quot;C-c C-x&amp;quot; &#39;cider-start-map))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that &lt;code&gt;clojure-ts-mode&lt;/code&gt; is still under development. For instance, Danny is
working on allowing users to pick their preferred &lt;a href=&#34;https://github.com/clojure-emacs/clojure-ts-mode/issues/9&#34;&gt;indentation
style&lt;/a&gt;. As Daw-Ran
Liou suggested, for now I can use &lt;code&gt;clojure-mode-variables&lt;/code&gt; to make
&lt;code&gt;clojure-ts-mode&lt;/code&gt; follow my preferred &lt;a href=&#34;https://github.com/clojure-emacs/clojure-ts-mode/issues/9#issuecomment-1547271293&#34;&gt;formatting settings&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(add-hook &#39;clojure-ts-mode-hook #&#39;clojure-mode-variables)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I have been using &lt;code&gt;clojure-ts-mode&lt;/code&gt; daily in the last two weeks and the
experience has been great. They say Tree-sitter is a game changer. I say thank
you, Danny Freeman.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Elif Batuman and Dario Ferrari</title>
      <link>https://manueluberti.eu/posts/2023-07-23-batuman-ferrari/</link>
      <pubDate>Sun, 23 Jul 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-07-23-batuman-ferrari/</guid>
      <description>&lt;p&gt;The summer break from lessons and exams&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; is the perfect time for picking up
books I have on my to-read list. Three entries in particular from this lot have
been prompting so many notes and discussions with my partner lately that I
cannot miss the opportunity to recap everything here. The works I am referring
to are &lt;em&gt;The Idiot&lt;/em&gt; and &lt;em&gt;Either/Or&lt;/em&gt; by Elif Batuman and Dario Ferrari&amp;rsquo;s &lt;em&gt;La
ricreazione è finita&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I will not go into many details about plots and characters in order to avoid
unfortunate spoilers. Still, a bit of context is necessary. Both Batuman and
Ferrari write about academia experiences in a semi-autobiographical fashion,
meaning they use bits and pieces from their lives to fuel their pages. With
different approaches they look back at what university did to and for them.
Having seen my share of the academia world in the last four years I can relate
to some of the episodes, which helps appreciate Batuman&amp;rsquo;s humour and Ferrari&amp;rsquo;s
sarcasm, but this sort of narrative has always fascinated me.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;What I like about Batuman is how she plays with time. She states the importance
of time by opening &lt;em&gt;The Idiot&lt;/em&gt; with a quote from Proust, and she understands
perfectly well what the relationship between writing and time means for the
French author.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Suddenly it occurred to me that maybe the point of writing wasn&amp;rsquo;t just to
record something past but also to prolong the present, like in &lt;em&gt;One Thousand
and One Nights&lt;/em&gt;, to stretch out the time until the next thing happened[.]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Like Thomas Pavel says,&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; writing for Proust is not only a vocation, it is a
means for personal salvation. With &lt;em&gt;The Idiot&lt;/em&gt; and &lt;em&gt;Either/Or&lt;/em&gt; Batuman is using
her protagonist to confront a present that only makes sense as it unfolds. For
all the love for Kierkegaard she shows in &lt;em&gt;Either/Or&lt;/em&gt;, using the title of the
book and the epigram to make it as clear as possible, Batuman is subtly defying
the Danish philosopher&amp;rsquo;s words about the meaning of life.&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt; Instead of
treating the past as a line that joins previous events and eventually leads them
to the present, Batuman lets the reader notice, over and over again, how hard it
is to look back at our experiences to make sense of who we are here and now.
There is so much going on and even more could have happened that tracing
consistent trajectories is impossible.&lt;/p&gt;
&lt;p&gt;This is where Ferrari fails. The Italian writer wishes to juxtapose past and
present using different alter egos, but in the end he has the two temporal
dimensions running in parallel, struggling to connect them via moral and
historical checkpoints. Whereas Batuman deals with Turkish culture as an
unsolvable puzzle, Ferrari handles Italian anarchism as bygone folklore to be
admired through the nostalgic eyes of a paraphernalia collector. He then directs
the same pair of eyes to love and friendship, moving between failed romances and
dramatic camaraderie with characters whose feeble personalities exist only to
abstract the protagonist away from himself. Batuman&amp;rsquo;s heroine, on the other
hand, is surrounded by human beings so rich and specific that she is constantly
reminded of the depth of the human condition she desperately wants to capture.
Love goes only in predictable directions for Ferrari, while remaining a mystery
for Batuman, who is able to depict the vast incomprehensibility of such a
powerful feeling with kindheartedness and bitter seriousness at the same time.&lt;/p&gt;
&lt;p&gt;Ferrari surpasses Batuman prose in one regard, though, which is the portrayal of
university&amp;rsquo;s inner workings. Batuman moves lightly here, focusing on a limited
set of problems, the big picture always a bit too far to be properly seen.
Ferrari, however, is an unstoppable force. He knows firsthand what is wrong with
Italian academia, the political mess behind it, the poor state of the research
sector and the lottery that a career as a professor turns out to be in this
country. He may sound too cynical and caustic at times, self-deprecation not
being my favourite writing style, yet if one by any chance is or was a student
at an Italian university they know Ferrari is right.&lt;/p&gt;
&lt;p&gt;I am glad I have come across Elif Batuman and Dario Ferrari. It is obvious that
I enjoyed Batuman&amp;rsquo;s books more, but both writers found more or less compelling
ways to tell relatable stories. Summer demands nothing more.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Well, sort of. I am still working on a couple of exams waiting for me
between the end of August and the beginning of September.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;I have admired Donna Tartt&amp;rsquo;s &lt;em&gt;The Secret History&lt;/em&gt; long before the recent
wave of enthusiasm.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;See: Thomas Pavel&amp;rsquo;s &lt;em&gt;The Lives of the Novel: A History&lt;/em&gt;.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:4&#34;&gt;
&lt;p&gt;&amp;ldquo;Life can only be understood backwards; but it must be lived forward.&amp;rdquo;
(Søren Kierkegaard, &lt;em&gt;Journals&lt;/em&gt;, IV)&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Tweaking Consult completion</title>
      <link>https://manueluberti.eu/posts/2023-06-17-consult-completion/</link>
      <pubDate>Sat, 17 Jun 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-06-17-consult-completion/</guid>
      <description>&lt;p&gt;After &lt;a href=&#34;https://manueluberti.eu/posts/2023-04-16-vertico-current/&#34;&gt;having adapted&lt;/a&gt;
&lt;code&gt;vertico--format-candidate&lt;/code&gt; to behave like I want in my Marginalia-less setup, I
noticed I still had undesired documentation during completion.&lt;/p&gt;
&lt;p&gt;Now, Daniel Mendler created the beautiful Corfu to improve completion at point
in Emacs. However, he did not forget about old school users such as myself and
provided &lt;code&gt;consult-completion-in-region&lt;/code&gt; for the minibuffer lovers out there.&lt;/p&gt;
&lt;p&gt;My only &amp;ldquo;problem&amp;rdquo;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; with &lt;code&gt;consult-completion-in-region&lt;/code&gt; is that by default
candidates are offered with some related documentation next to them, much like
what one would see with &lt;code&gt;M-x&lt;/code&gt; were one to use Marginalia. It is
possible to leverage &lt;code&gt;consult-customize&lt;/code&gt; to change a subset of
&lt;code&gt;consult-completion-in-region&lt;/code&gt; details,&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; but to remove the extra information
something else is needed.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(define-advice consult-completion-in-region
    (:around (&amp;amp;rest args) mu-completion-no-extra-properties)
  &amp;quot;Remove extra properties from completion candidates.&amp;quot;
  (cl-letf (((default-value &#39;completion-extra-properties) nil))
    (apply args)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A hack, yes, but also another way to prove the level of freedom Emacs empowers
the user with.&lt;/p&gt;
&lt;p&gt;Note that my small modifications to &lt;code&gt;vertico--format-candidate&lt;/code&gt; and
&lt;code&gt;consult-completion-in-region&lt;/code&gt; are not intended to highlight any Vertico or
Consult shortcomings. These are great packages that improve the standard Emacs
experience, thus they should be tried as they come out of the box for a while.
The fact that I can easily adjust them to my preferences just make them shine
even more.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;The quotes should be enough to suggest that this is not a real problem,
but let me spell it out to avoid confusion.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Try &lt;code&gt;C-h f consult-completion-in-region RET&lt;/code&gt; to know more.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Ghost in the Machine</title>
      <link>https://manueluberti.eu/posts/2023-06-03-ghost-in-the-machine/</link>
      <pubDate>Sat, 03 Jun 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-06-03-ghost-in-the-machine/</guid>
      <description>&lt;p&gt;Whenever I think of artificial intelligence, &lt;em&gt;Ghost in the Machine&lt;/em&gt;, the seventh
episode of the first season of &lt;em&gt;The X-Files&lt;/em&gt;, comes to my mind.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; Almost
thirty years have gone since that episode first aired, but it has always been
one of my favourites. The plot is fairly straightforward: the Central Operating
System (a.k.a. the AI) of a software company develops both survival instinct and
morbid care for its creator; killings ensues; Mulder and Scully manage to stop
the evil technology. Or do they? As a teenager I loved the openness of &lt;em&gt;The
X-Files&lt;/em&gt;, always leaving room for unsolved dilemmas episode after episode. I
also wanted to believe as Mulder did, but that is a different story.&lt;/p&gt;
&lt;p&gt;Today it is not uncommon to laugh at the overtly pessimistic views of shows such
as this, casting aside wrongly perceived assumptions with an indulgent smirk.
Beside the fact that usually the characters who never doubt common sense are the
first ones to die in these tales, this sort of cynicism reveals more than it
conceals.&lt;/p&gt;
&lt;p&gt;My firm belief is that the outcomes of and the concerns about the recent
developments in artificial intelligence are nothing more than the inevitable
consequence of the society we have built. We have been putting our faith in
technology for so long by now that it is nearly impossible to look at it from a
rather different perspective. The one who does so is generally ridiculed. This
is even more interesting when we think about the distinction between science and
technology and how we relate to them. Think of the pandemic. What COVID-deniers&#39;
reactions highlighted is how easily we can criticise science for its
shortcomings while at the same time relying on the technology that science
itself made available for our rants to be out in the public.&lt;/p&gt;
&lt;p&gt;Technology says as much of our times as fiction does. It mirrors points of view,
it asks questions, and offers problems just as it looks for answers and tries to
offer solutions. Like telling a story, developing a specific technology is an
effort situated in a precise place at a particular time, and we can understand
more of that time and that place if we read them through the stories and the
technology that were born within their constraints.&lt;/p&gt;
&lt;p&gt;However, we do not want to look at technology as we look at fiction, because we
cannot believe technology to live in the realm of the uncertain, the implausible
or the unreal. Technology is tangible, its immediate effects readily perceivable
in our lives. Technology fixes problems, creates comfort, enables people to do
things that seemed impossible. And yet, like fiction, this is a story told from
a narrator who, like us, is a finite human being. A story makes sense when it
ends, but we cannot make sense of our lives because we do not know when they
will end and, just as well, we can never know the whole that constitutes other
people&amp;rsquo;s lives. Being a finite product of finite beings, how do we make sense of
technology then?&lt;/p&gt;
&lt;p&gt;One possible answer, or at least the only answer I can think of, is critical
thinking. We may never find reliable replies to metaphysical doubts, but we can
still stop ourselves from mindlessly consuming technology and pause for a
moment, a moment long enough to figure out whether the full impact of new
technology is clear and understood. It is fairly obvious to me that this was not
the case for mobile technology. Have we ever stopped to think about how a
smartphone could change the life of a teenager? Do we not see what happened to
the attention span of people after years of push notifications? My university
has already issued a statement warning that papers will be proof read to avoid
misuses of ChatGPT, which is telling of how little to zero thought has been put
into the pivotal transformations artificial intelligence will bring upon us.&lt;/p&gt;
&lt;p&gt;Lost in our market-driven technological bubble we please ourselves by being
concerned about the dangers of AI during lunch breaks or between rounds of beer.
I know we are still capable of critical thought, but I am not sure for how long
we will be. I cannot help but think that the smarter technology becomes, the
dumber end users might get.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Along with &lt;em&gt;Kill Switch&lt;/em&gt; from Season 5, yes, but only when I am in a
deeply apocalyptic mood that usually drives me to watch &lt;em&gt;The Terminator&lt;/em&gt; one
more time.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Tweaking Vertico candidates</title>
      <link>https://manueluberti.eu/posts/2023-04-16-vertico-current/</link>
      <pubDate>Sun, 16 Apr 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-04-16-vertico-current/</guid>
      <description>&lt;p&gt;One of the Emacs packages I do not seem to get used to is
&lt;a href=&#34;https://github.com/minad/marginalia&#34;&gt;Marginalia&lt;/a&gt;. There is nothing wrong with
it and since Daniel Mendler is involved the ELisp underneath is great. However,
to me it&amp;rsquo;s just too much information where I rarely want it. When I need that
sort of documentation it&amp;rsquo;s always a quick key binding away.&lt;/p&gt;
&lt;p&gt;Given the author it should not come as a surprise that Marginalia works rather
smoothly with &lt;a href=&#34;https://github.com/minad&#34;&gt;Vertico&lt;/a&gt;. In fact, it works so well
that I only see a &amp;ldquo;problem&amp;rdquo; when I use it &lt;em&gt;without&lt;/em&gt; Marginalia. Months ago I
reported &lt;a href=&#34;https://github.com/minad/vertico/issues/269&#34;&gt;this minor glitch&lt;/a&gt; to
Daniel, but to cut a long story short, at the end of the current selected item
&lt;code&gt;vertico--format-candidate&lt;/code&gt; adds a newline escape sequence to which the
&lt;code&gt;vertico-current&lt;/code&gt; face is applied as well.&lt;/p&gt;
&lt;p&gt;I know, it&amp;rsquo;s a minor thing that should not stop me from using Vertico. Still, it
can be fixed quite easily. I suggested an advice in the aforementioned report,
but since &lt;code&gt;vertico--format-candidate&lt;/code&gt; is implemented as a &lt;code&gt;cl-defgeneric&lt;/code&gt; I can
do better:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(with-eval-after-load &#39;vertico
  (set-face-attribute &#39;vertico-current nil :extend nil)
  
  (cl-defmethod vertico--format-candidate (cnd pref suf idx _start)
    &amp;quot;Format CND given PREF, SUF, and IDX.&amp;quot;
    (setq cnd (vertico--display-string (concat pref cnd suf &amp;quot;\n&amp;quot;)))
    (when (= idx vertico--index)
      (add-face-text-property 0 (1- (length cnd)) &#39;vertico-current &#39;append cnd))
    cnd))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Beside ensuring that &lt;code&gt;vertico-current&lt;/code&gt; does not extend beyond the selected
candidate, I use the lovely named &lt;code&gt;1-&lt;/code&gt; function to avoid applying this face to
&lt;code&gt;\n&lt;/code&gt; as well.&lt;/p&gt;
&lt;p&gt;Note that something like &lt;code&gt;fido-vertical-mode&lt;/code&gt; does not need a hack like this.
Yet I simply cannot resist tinkering with my favourite packages.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Bandcamp and independent music</title>
      <link>https://manueluberti.eu/posts/2023-04-10-bandcamp/</link>
      <pubDate>Mon, 10 Apr 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-04-10-bandcamp/</guid>
      <description>&lt;p&gt;When I heard of Bandcamp
&lt;a href=&#34;https://blog.bandcamp.com/2022/03/02/bandcamp-is-joining-epic/&#34;&gt;joining&lt;/a&gt; Epic
Games I had mixed feelings. Since I have been out of the gaming world for
years&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; I know next to nothing about Epic Games. All I know is that an
independent music platform has become part of something bigger and way more
powerful, but the extent of this giant&amp;rsquo;s interest in music, and indie musicians
in particular, eludes me.&lt;/p&gt;
&lt;p&gt;A year or so after the acquisition I read about workers at Bandcamp
unionising.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; Not too long after Bandcamp decided &lt;a href=&#34;https://twitter.com/topshelfrecords/status/1644418623983820810&#34;&gt;to
react&lt;/a&gt; and I am
sure &lt;a href=&#34;https://www.gamedeveloper.com/business/bandcamp-employees-accuse-ceo-of-union-busting-ahead-of-nlrb-hearing&#34;&gt;the muscles
upstairs&lt;/a&gt;
backed them up swiftly.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2023-04-10-topshelf.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;I will need more details about this whole story in order to understand what is
really going on, but even as it is, I cannot help but question how I should act
now with regards to Bandcamp. You see, I love Bandcamp and use it regularly. I
buy records from independent artists&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; and I don&amp;rsquo;t remember how many musicians
I have bumped into just by randomly browsing the website.&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt; This doesn&amp;rsquo;t mean
that I don&amp;rsquo;t enjoy buying music from my favourite local store, which still makes
me feel like I did when I bought my very first CD, or that I don&amp;rsquo;t get excited
when I can chat with musicians selling their merchandise right after the live
gig.&lt;/p&gt;
&lt;p&gt;However, Bandcamp makes supporting independent music a couple of clicks away,
while giving me the pleasure of sending a message to the people behind a record
instead of a random seller on Discogs. It&amp;rsquo;s not really laziness, is it? Back in
my twenties, I rarely had the chance to support, say, Australian artists in such
a direct way. When Amazon became a standard for online shopping I thought that
was it, and to a certain degree it was,&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt; but there is so much independent
music struggling to survive that whenever avoiding middle men is possible I am
all for it.&lt;/p&gt;
&lt;p&gt;Amazon is cheap and used items on Discogs are a bargain, I am well aware of the
situation. Not to mention the streaming services I ignore on purpose since
stacking records on my shelves is a much more relaxing experience. But even with
digital records, which I buy only sometimes otherwise I would have to sleep on a
mattress made of vinyls and CDs, Bandcamp does not make me feel like the bad guy
who rips off artists shouting &amp;ldquo;sharing is caring, man!&amp;rdquo; to justify the ZIP
archives frantically downloaded from advertisement-loaded corners of the web.&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t get me wrong, I was around during the early age of file sharing and there
were tons of music in and out my primitive Internet connection, but that didn&amp;rsquo;t
stop me from buying records. The thing is Bandcamp offers a relief to my
conscience, because now I can get a preview of a track or a whole album to get a
general idea of its sound, decide if I care enough to spend some money for the
digital version, or show some love and order the much more rewarding vinyl
edition, all of it without backstabbing small bands or young DJs from rural
towns.&lt;/p&gt;
&lt;p&gt;Considering that I don&amp;rsquo;t keep up with music-related news and releases like I
used to, this is even more precious. Nowadays when I want to listen to new music
I bounce around labels, bands sharing their favourite acts, solid advice from
shrewd friends&lt;sup id=&#34;fnref:6&#34;&gt;&lt;a href=&#34;#fn:6&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;6&lt;/a&gt;&lt;/sup&gt; and that&amp;rsquo;s it basically. It&amp;rsquo;s always nice when I hear or read
about a new name and I can find more about them on Bandcamp, which means I can
learn about their music by actually listening to it instead of reading reviews
or other sort of comments.&lt;/p&gt;
&lt;p&gt;Again, don&amp;rsquo;t get me wrong. I used to write —rather poorly, I must say— about
music, so I kind of know the value of a good review for the reader, who maybe
gains more insights from a different point of view, but especially for the
musician, who may actually need as much press as possible to reach a wider
audience. And yet, having been a music enthusiast for most of my life, I know
the sounds I like and I can easily understand whether that new record is what I
am after or not. Bandcamp is just the right place at the right time for someone
like me.&lt;/p&gt;
&lt;p&gt;What now, then? Obviously I don&amp;rsquo;t want to stop supporting my favourite
musicians. At the same time I cannot afford to attend every single concert in
order to buy their last work because the middle man is playing dirty tricks
while faking good behaviour to prevent opposition. And of course I cannot just
write to all of them complaining about the Bandcamp situation and asking them to
find a different option for sharing their sounds. If you love music boycotting
Bandcamp puts the artists, and not just you, on a dangerous path. This is not
the world a sappy seventeen-year old with an awkward smile, leaving the country
side on a forty-minutes bus ride to get to a record store, would have imagined
waking up to.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Though the Wipeout HD online community will always have a special place in
my heart.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;See: &lt;a href=&#34;https://musictech.com/news/industry/bandcamp-workers-union-epic-games/&#34;&gt;Workers at Epic-owned Bandcamp are unionising because “It&amp;rsquo;s not
enough to get small wins
alone”&lt;/a&gt;
and &lt;a href=&#34;https://linktr.ee/bandcampunited&#34;&gt;@bandcampunited&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;The last record I bought is from
&lt;a href=&#34;https://lleroy999.bandcamp.com/&#34;&gt;Lleroy&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:4&#34;&gt;
&lt;p&gt;Off the top of my head I would say
&lt;a href=&#34;https://rvgband.bandcamp.com/music&#34;&gt;RVG&lt;/a&gt;, a band particularly dear to me.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:5&#34;&gt;
&lt;p&gt;For English books and specific Blu-ray editions I often have only Amazon
to rely on.&amp;#160;&lt;a href=&#34;#fnref:5&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:6&#34;&gt;
&lt;p&gt;The list of artists trustworthy people put into my ears is endless. To
name just a few of the ones I am more grateful for: Angie McMahon, Terre
Thaemlitz, Róisín Murphy, Nina Nastasia…&amp;#160;&lt;a href=&#34;#fnref:6&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>CIDER and Clojure LSP</title>
      <link>https://manueluberti.eu/posts/2023-03-25-clojure-lsp/</link>
      <pubDate>Sat, 25 Mar 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-03-25-clojure-lsp/</guid>
      <description>&lt;p&gt;When I wrote about &lt;a href=&#34;https://manueluberti.eu/posts/2022-10-27-cljformat/&#34;&gt;formatting Clojure buffers&lt;/a&gt; I also mentioned that &lt;a href=&#34;https://clojure-lsp.io/&#34;&gt;Clojure LSP&lt;/a&gt; can take care
of this among other things. Since my working days are pretty much Clojure days,
it&amp;rsquo;s time to check out how LSP can help me in this regard and whether the
experience is worth an extra tool.&lt;/p&gt;
&lt;p&gt;Installing Clojure LSP is trivial so I will leave you on your own with that.
After the installation the first thing I tried is the obvious &lt;code&gt;M-x&lt;/code&gt;
&lt;code&gt;eglot&lt;/code&gt; in a Clojure buffer, but all I got was a connection timeout error as a
reply. Weird, I thought, this has never happened with LaTeX. However, the
solution was simple: I just needed to increase the default value of
&lt;code&gt;eglot-connect-timeout&lt;/code&gt; to &lt;code&gt;60&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Emacs can leverage many goodies from Clojure LSP thanks to Eglot, but some of
them out of the box interfere with CIDER. For instance, the integration with
ElDoc is better left in the capable hands of Eglot in order to avoid duplicates
when displaying documentation.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(setq-default cider-eldoc-display-for-symbol-at-point nil)

(defun mu-cider-disable-eldoc ()
  &amp;quot;Let LSP handle ElDoc instead of CIDER.&amp;quot;
  (remove-hook &#39;eldoc-documentation-functions #&#39;cider-eldoc t))

(add-hook &#39;cider-mode-hook #&#39;mu-cider-disable-eldoc)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In a similar fashion I put Clojure LSP in charge of completions. This approach
is useful when in a Clojure buffer all I need is some poking around to
understand the code in front of me. There is no need to jack-in with CIDER to do
just that.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-cider-disable-completion ()
  &amp;quot;Let LSP handle completion instead of CIDER.&amp;quot;
  (remove-hook &#39;completion-at-point-functions #&#39;cider-complete-at-point t))

(add-hook &#39;cider-mode-hook #&#39;mu-cider-disable-completion)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I am sure CIDER can, and probably will, embrace Clojure LSP some day, but one
cannot blame its developers for these nuisances. On the contrary, we should be
grateful for the ease of customization at our disposal, which is one more reason
to appreciate CIDER, if you ask me.&lt;/p&gt;
&lt;p&gt;Anyway, now I can get rid of &lt;code&gt;mu-cljfmt-format-buffer&lt;/code&gt; and rely on &lt;code&gt;M- eglot-format-buffer&lt;/code&gt; for my Clojure formatting needs. A happy ending
indeed, because removing code from my &lt;code&gt;init.el&lt;/code&gt; is always a pleasure.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Jump to minibuffer from completions</title>
      <link>https://manueluberti.eu/posts/2023-02-25-switch-to-minibuffer/</link>
      <pubDate>Sat, 25 Feb 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-02-25-switch-to-minibuffer/</guid>
      <description>&lt;p&gt;More than a month after &lt;a href=&#34;https://manueluberti.eu/posts/2023-01-12-completions/&#34;&gt;my commitment&lt;/a&gt; to
the default built-in completion system I can say that everything has been going
smoothly. I adjusted my muscle memory to hit &lt;code&gt;TAB&lt;/code&gt; in the minibuffer
whenever I need to pop up the &lt;code&gt;*Completions*&lt;/code&gt; window, which to my surprise has
not been happening as much as I was expecting. The only thing that I added to
the original setup is the following:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(keymap-set completion-list-mode-map &amp;quot;M-e&amp;quot; #&#39;switch-to-minibuffer)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is easier to reach than &lt;code&gt;M-g M-c&lt;/code&gt; when I want to move from the
completion window to the minibuffer. Admittedly, it&amp;rsquo;s not something that I do
often, but it can be useful if I need to edit what I have just typed.&lt;/p&gt;
&lt;p&gt;If you are wondering why I chose &lt;code&gt;M-e&lt;/code&gt; for this, the answer is simple.
I like &lt;code&gt;isearch-edit-string&lt;/code&gt; and use it regularly, plus the &lt;code&gt;e&lt;/code&gt; in
&lt;code&gt;M-e&lt;/code&gt; reminds me of the verb &amp;ldquo;edit&amp;rdquo;, which is what this key binding
allows me to do.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Why Proust?</title>
      <link>https://manueluberti.eu/posts/2023-02-19-why-proust/</link>
      <pubDate>Sun, 19 Feb 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-02-19-why-proust/</guid>
      <description>&lt;p&gt;I have been asked the question in the title twice recently, only to find myself
seemingly incapable of explaining my reasons without stating the obvious. It was
&lt;a href=&#34;https://manueluberti.eu/posts/2022-10-07-leopardi-loser/&#34;&gt;not the first time&lt;/a&gt; that words did not
come to me as I really want, and I am sure it will not be last. In order to
avoid being cornered by &amp;ldquo;why Proust?&amp;rdquo; inquiries again, I decided to put my
answer into writing.&lt;/p&gt;
&lt;p&gt;Marcel Proust&amp;rsquo;s name entered my life around my last days of high school. Back
then I just had the luxury of an online forum&amp;rsquo;s community to escape my small,
rural town and access a broader range of cultural items. The forum had a section
where topics about books showed up every now and then. Truth be told, we were
more into films and music, but luckily I wasn&amp;rsquo;t alone in my passion for
literature. I was, and to a certain degree still am, a novice in this regard, so
I used to take every recommendation as a chance to widen my limited horizon.&lt;/p&gt;
&lt;p&gt;When a member opened a topic about Proust, though, I was scared. I had already
read some classics, I knew my way around some English and French literature, but
the guy did not care to mention, among other things, that &lt;em&gt;À la recherche du
temps perdu&lt;/em&gt; was over 4000 pages, nor that it&amp;rsquo;s nearly impossible to understand
without taking into consideration its author&amp;rsquo;s life. Plus, I didn&amp;rsquo;t have a
teacher as good as the one who made me &lt;a href=&#34;https://manueluberti.eu/posts/2021-12-24-books/&#34;&gt;fall in love&lt;/a&gt; with &lt;em&gt;I Promessi Sposi&lt;/em&gt; next to me. I could only think of one thing: let&amp;rsquo;s
bookmark Marcel Proust in my mind and get back to him when I feel ready.
Slightly embarrassingly, I felt ready almost twenty years later. Put otherwise,
it was never the &lt;em&gt;right time&lt;/em&gt; to pick up Proust.&lt;/p&gt;
&lt;p&gt;We could argue about the notion of right time for ages, I suppose. To me, the
right time to do something is when it feels natural to do it, to the point that
I start doing it without really thinking about what took me there instead of
somewhere else. The right time is also a wonderful and mysterious feeling,
especially with books. I remember fondly the right time for Roberto Bolaño and
David Foster Wallace because an ever-changing stream of emotions bathed me while
reading their works. And even more incredibly inexplicable was the right time
for Baruch Spinoza, with the implications of his philosophy destroying most of
my thoughts about the world around me. These authors happened to be what I
needed in a particular moment in my life, and the fact that they have stayed with
me since then adds depth to my idea of &amp;ldquo;right time&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;When was the right time for Marcel Proust and &lt;em&gt;À la recherche du temps perdu&lt;/em&gt;? I
cannot pinpoint a day, but last year both the writer and the book found their
ways back to me. It had mainly to do with university, I suppose. My partner took
a class with a professor who teaches Proust, albeit not in that specific course.
Proust was named, though. As it is my custom, I started endless talks on my
desire to know more about him, subtly convincing my partner to shut me up by
joining me in the hunt for the Italian edition of &lt;em&gt;La Recherche&lt;/em&gt;.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;While devoted to its pages, two things happened. First, during a course on
Gilles Deleuze we spent quite some time on his &lt;em&gt;Proust and Signs&lt;/em&gt;, working on
the relevance of Henri Bergson&amp;rsquo;s concept of virtual memory on both Deleuze and
Proust. My enthusiasm was so manifest that on the day of the exam I ended up
talking about Proust even if I wasn&amp;rsquo;t explicitly asked about him.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; Second,
rather impulsively, I enrolled on the course of the aforementioned professor to
enjoy a theoretical study of &lt;em&gt;La Recherche&lt;/em&gt; with some help from Mikhail Bakhtin,
György Lukács, Thomas G. Pavel, and Franco Moretti.&lt;/p&gt;
&lt;p&gt;The more I learn about &lt;em&gt;La Recherche&lt;/em&gt;, the more I want to know about Marcel
Proust. His first writings, his early poetry, his essays, George D. Painter&amp;rsquo;s
classic biography, I just cannot stop reading, and I am now seriously
considering learning French to dig deeper.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; Just as it happened with Bolaño,
Wallace, and Spinoza, Proust&amp;rsquo;s words speak to sides of me that I wasn&amp;rsquo;t even
aware of having. They seem to understand me better than anyone else, not solely
because they shine a light on my inner self, but because they confront me with
possibilities yet to come and paths I&amp;rsquo;d better not take. &lt;em&gt;This&lt;/em&gt; is why Proust.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;There are different editions and formats of Proust&amp;rsquo;s masterpiece available
in Italy. I wanted the seven volumes translated by Giovanni Raboni, which
are starting to be replaced by a new one volume edition, large and heavy
enough to make holding it with your hands an endless struggle.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;The professor appreciated it anyway.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;The entirety of Proust&amp;rsquo;s correspondence is not available in Italian.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Better built-in completions</title>
      <link>https://manueluberti.eu/posts/2023-01-12-completions/</link>
      <pubDate>Thu, 12 Jan 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-01-12-completions/</guid>
      <description>&lt;p&gt;Despite me doing my best to track Emacs development and build the latest
&lt;code&gt;master&lt;/code&gt; regularly, I forgot to check out the improvements on the default
&lt;code&gt;*Completions*&lt;/code&gt; buffer that are going to be available on the next official
release of our favourite text editor. Thankfully, &lt;a href=&#34;https://robbmann.io/posts/emacs-29-completions/&#34;&gt;Robert
Enzmann&lt;/a&gt; did it for me.&lt;/p&gt;
&lt;p&gt;Much like Robert, I&amp;rsquo;ve been living with Vertico, Consult, Corfu and Orderless
for a while now, and you won&amp;rsquo;t be hearing any complaint from me on that side.
These packages are simply fantastic. Still, by now a regular reader knows I
enjoy the vanilla Emacs experience, and if there is a chance to stick with it I
am not the one who is going to miss it.&lt;/p&gt;
&lt;p&gt;Robert did a great job already at explaining what&amp;rsquo;s new when it comes to
built-in completions and what settings you can tweak to take advantage of the
new developments. He is sporting pretty animations too, so go check his writing
for further details. I&amp;rsquo;ll just mention that, beside setting
&lt;code&gt;completions-header-format&lt;/code&gt; to &lt;code&gt;nil&lt;/code&gt;, I set &lt;code&gt;completion-show-help&lt;/code&gt; to &lt;code&gt;nil&lt;/code&gt; to
keep the &lt;code&gt;*Completions*&lt;/code&gt; buffer as clean as possible.&lt;/p&gt;
&lt;p&gt;A setup like this is a radical change for me. From my IDO days, I have always
relied on a completion approach rather different than what is available on the
very first Emacs run. Basically one that provides more than a bare prompt. As
expected, it took me a while to adapt and learn to change my old habits. Take
&lt;code&gt;M-x&lt;/code&gt;, for instance. With Helm or Icomplete candidates appear before I
hit other keys, and since I usually sort them by usage, I can navigate to the
most recent one without typing its name at all. To overcome the confusion, I
tried to think at the prompt as a shell one. Like I do in a shell, I type some
letters and then reach for &lt;code&gt;TAB&lt;/code&gt; to complete the rest. It&amp;rsquo;s not that I
wasn&amp;rsquo;t doing something like this before. Think of file paths, for example.
However, most of the times the initial list took me away from the prompt
entirely because what I was after was a &lt;code&gt;C-n&lt;/code&gt; away.&lt;/p&gt;
&lt;p&gt;Moreover, every Vertico and friends user knows that they stay close to Emacs
internals and work like building blocks, nicely complementing each other in
order to extend step by step core functionalities. This means that nothing is
stopping me to keep Consult and Orderless around or having Corfu ready to pop up
completion candidates at point without having to move my eyes to the bottom of
the screen. For anyone yet not convinced, this is another sound proof of how
carefully the likes of Daniel Mendler and Omar Antolín Camarena designed their
packages.&lt;/p&gt;
&lt;p&gt;To get back at Robert&amp;rsquo;s article, I&amp;rsquo;ll ask myself the same question he did to
himself and I&amp;rsquo;ll reply with a similar, enigmatic answer: will I see the
&lt;code&gt;*Completions*&lt;/code&gt; buffer more often from now on? Yes, probably yes.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>LaTeX footnotes and Tempel</title>
      <link>https://manueluberti.eu/posts/2023-01-02-latex-footnotes/</link>
      <pubDate>Mon, 02 Jan 2023 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2023-01-02-latex-footnotes/</guid>
      <description>&lt;p&gt;For those who remember, the combination of AUCTeX and Eglot &lt;a href=&#34;https://manueluberti.eu/posts/2022-03-12-eglot-digestif/&#34;&gt;makes me happy&lt;/a&gt;. And those with even better memory surely
recall me mentioning BibLaTeX for my footnotes. The thing with footnotes,
though, is that having beautiful, automatic completion for my bibliography is
only half of the story. The other half is leveraging yet another great package
from the unstoppable Daniel Mendler: &lt;a href=&#34;https://github.com/minad/tempel&#34;&gt;Tempel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As usual with Daniel, the README is full of details, so there is little for me
to add. Following the documentation, I have &lt;code&gt;M-+&lt;/code&gt; bound to
&lt;code&gt;tempel-complete&lt;/code&gt; and then I have few templates for things like &lt;code&gt;clojure-mode&lt;/code&gt;,
&lt;code&gt;emacs-lisp-mode&lt;/code&gt;, and &lt;code&gt;haskell-mode&lt;/code&gt; in an aptly named &lt;code&gt;templates&lt;/code&gt; file. I also
have the following for &lt;code&gt;latex-mode&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-lisp&#34;&gt;(footnote &amp;quot;\\footnote{&amp;quot; p &amp;quot;.}&amp;quot;)
(texcite &amp;quot;\\textcite{&amp;quot; p &amp;quot;}&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It may look like trivial stuff, I know, but this is all it takes to insert a
footnote:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hit &lt;code&gt;M-+&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Pick &lt;code&gt;footnote&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If no bibliographical entry is needed, type the desired text&lt;/li&gt;
&lt;li&gt;Otherwise, hit &lt;code&gt;M-+&lt;/code&gt; again&lt;/li&gt;
&lt;li&gt;Pick &lt;code&gt;textcite&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Let Corfu powered by Digestif offer the required bibliographical entry&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Trust me, it&amp;rsquo;s a quick manoeuvre once you get used to it. It&amp;rsquo;s also a bit
cumbersome, if you ask me. Daniel must know me better than I know myself because
Tempel already provides a simpler option, namely the &lt;code&gt;tempel-key&lt;/code&gt; macro.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(with-eval-after-load &#39;tex
  (tempel-key &amp;quot;C-c t f&amp;quot; footnote TeX-mode-map)
  (tempel-key &amp;quot;C-c t t&amp;quot; texcite TeX-mode-map))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now with few key strokes and AUCTeX doing the rest of the heavy lifting I can
safely focus on the content of my document without worrying about the footnotes.&lt;/p&gt;
&lt;p&gt;Note that &lt;code&gt;tempel-key&lt;/code&gt; sort of fixes a small issue with &lt;code&gt;tempel-complete&lt;/code&gt;. When
I hit &lt;code&gt;M-+&lt;/code&gt; right after the last letter of a word, I get a message
saying &lt;code&gt;tempel--interactive: tempel-complete: No completions&lt;/code&gt;. To avoid this
unpleasant behaviour either I add an extra whitespace character to be removed
after the footnote is ready, or I use &lt;code&gt;tempel-key&lt;/code&gt;. The better alternative is
obvious.&lt;/p&gt;
&lt;p&gt;A final warning: the most recent version of Digestif introduced a problem with
&lt;code&gt;completion-at-point&lt;/code&gt; and Xref, which &lt;a href=&#34;https://github.com/astoff/digestif/issues/55&#34;&gt;I
reported&lt;/a&gt; on the bug tracker. For
now it&amp;rsquo;s possible to work around the issue by using commit &lt;code&gt;f1b4202&lt;/code&gt; as &lt;a href=&#34;https://github.com/astoff/digestif/issues/55#issuecomment-1368907844&#34;&gt;I
wrote&lt;/a&gt;
over there.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>My 2022</title>
      <link>https://manueluberti.eu/posts/2022-12-22-my-2022/</link>
      <pubDate>Thu, 22 Dec 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-12-22-my-2022/</guid>
      <description>&lt;p&gt;This year I am going to approach my usual recap in a different way. Instead of
separating best-of lists I will look back at 2022 in a single writing to keep it
simple.&lt;/p&gt;
&lt;p&gt;2022 will not be remembered as a particularly stimulating time. For instance, I
have struggled to keep my enthusiasm alive when it comes to university. This is
not solely because of the whole mess with &lt;a href=&#34;https://manueluberti.eu/posts/2022-07-05-remote-uni/&#34;&gt;dual lessons&lt;/a&gt;, but it encompasses the quality of the courses and
what I have been learning as well. Maybe I will return on this at some point in
the future, but for now let me just add that once again I can&amp;rsquo;t wait to get it
over with. Almost the same reasoning can explain why I left the two book clubs I
had joined in 2021. I was not pleased by the reading choices nor by the
discussions around them, and more often than not it felt like I was putting
obstacles between me and the books I want to read. But let&amp;rsquo;s set aside the
negativity for a while and see what really mattered this year.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;emacs&#34;&gt;Emacs&lt;/h3&gt;
&lt;p&gt;I usually document my Emacs adventures on this website so I&amp;rsquo;ll be brief. For the
ever-present and more reliable software in my computing life this has been the
first year fully away from Magit and MELPA. The built-in VC system has been a
trustworthy companion, and the combination of GNU ELPA and NonGNU ELPA has
provided the few external packages I need. Speaking of packages, Eglot deserves
a mention. It&amp;rsquo;s true that I don&amp;rsquo;t use it for work, but whenever I deal with
academic writings (LaTeX) or hobby projects (Haskell) Eglot has made me
appreciate some of the goodies that LSP has to offer. Another package worth
being included here is
&lt;a href=&#34;https://git.sr.ht/%7Eniklaseklund/detached.el&#34;&gt;detached.el&lt;/a&gt;, which I&amp;rsquo;ve been
using to run commands like &lt;code&gt;bundle&lt;/code&gt;, &lt;code&gt;yarn&lt;/code&gt;, and &lt;code&gt;shadow-cljs&lt;/code&gt; from &lt;code&gt;shell-mode&lt;/code&gt;
without losing control of the buffer. So neat.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;sourcehut&#34;&gt;SourceHut&lt;/h3&gt;
&lt;p&gt;Early this year I moved my projects from GitHub to &lt;a href=&#34;https://manueluberti.eu/posts/2022-04-08-sourcehut/&#34;&gt;SourceHut&lt;/a&gt;. This was such an important step for me because for
my repositories I don&amp;rsquo;t want to worry about actions, notifications, unnecessary
JavaScript, and giant corporations stalking my code. SourceHut firmly avoids all
of that and provides the user with a small set of great tools. GitHub helped me
to get out of my cave and learn how to share and collaborate with others,
something not to be underestimated. However, SourceHut cares. The least I could
do was joining them to support this wonderful act of caring.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;divestos&#34;&gt;DivestOS&lt;/h3&gt;
&lt;p&gt;After almost six years, in May I decided to leave the default Fairphone OS
behind and look for &lt;a href=&#34;https://manueluberti.eu/posts/2022-05-15-divestos/&#34;&gt;something different&lt;/a&gt;.
The experience with DivestOS has been so fantastic I had to make a donation to
this awesome project. My phone battery now lasts longer than ever before and the
user interface is generally more responsive, but the true value of this OS is
that I have a Google-free Fairphone 2 that works as expected. For a person who
has basic needs when it comes to their smartphone and wishes for better privacy,
DivestOS is the perfect solution.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;books&#34;&gt;Books&lt;/h3&gt;
&lt;p&gt;From the book lover perspective 2022 has been intense, and I am not referring to
the total number of pages I read. What I mean is the profound quality of the
works I&amp;rsquo;ve been through and the hours spent thinking both while reading and
after the turn of the last page. Even in &lt;a href=&#34;https://manueluberti.eu/posts/2022-04-13-il-cavallo-rosso/&#34;&gt;the one case&lt;/a&gt; where I got angry at the author it was still
worth it. Here are the most rewarding readings of the past months:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Anna Karenina&lt;/em&gt; (Leo Tolstoy)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;In the Eye of the Wild&lt;/em&gt; (Nastassja Martin)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Cecilia e le streghe&lt;/em&gt; (Laura Conti)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Malvina, or the Heart&amp;rsquo;s Intuition&lt;/em&gt; (Maria Wirtemberska)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Le Père Goriot&lt;/em&gt; (Honoré de Balzac)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Beloved&lt;/em&gt; (Toni Morrison)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Spinoza&amp;rsquo;s Religion: A New Reading of the Ethics&lt;/em&gt; (Clare Carlisle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2022-08-19-horcynus-orca/&#34;&gt;Horcynus Orca&lt;/a&gt; (Stefano D&amp;rsquo;Arrigo)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;The Handmaid&amp;rsquo;s Tale&lt;/em&gt; (Margaret Atwood)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;The Pale King&lt;/em&gt; (David Foster Wallace)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;In Search of Lost Time&lt;/em&gt; (Marcel Proust)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Most of these are classics so you don&amp;rsquo;t really need my words to pick them up.
Still, it&amp;rsquo;s safe to say that for one reason or another they all are experiences
to treasure, worth the time and the effort that they require. If you are
wondering where philosophy fits in my 2022 readings, I can say Kant, Hegel, and
Deleuze are the authors I have spent a great deal of days on, but there has been
room for Spinoza, Heidegger, Wittgenstein, and Adorno too.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;music&#34;&gt;Music&lt;/h3&gt;
&lt;p&gt;As an avid music listener and record collector, I feel a bit ashamed in this
regard. The only records I bought this year are &lt;a href=&#34;https://manueluberti.eu/posts/2022-08-14-big-time/&#34;&gt;Big Time&lt;/a&gt; by Angel Olsen and &lt;em&gt;II&lt;/em&gt; by Liberato, but Olsen&amp;rsquo;s
costed me a small fortune, so there goes my banal excuse for not sticking more
with music in 2022.&lt;/p&gt;
&lt;p&gt;Anyway, some of my best experiences had more to do with concerts. I went to a
little festival last summer, called Upside Fest, created by the same people
behind the loveliest place for beer and live music around here that sadly did
not survive the pandemic. The festival was all about independent music,
workshops, and being friendly to each other, which is the sort of spirit the
organizers always put in everything they do. It took place in the small park of
what long ago was the castle of the town, a cozy and quiet environment which
invites everyone to massive chill out sessions. It&amp;rsquo;s impossible to come out
bored or unhappy when these people are involved.&lt;/p&gt;
&lt;p&gt;On the opposite side of the intimacy spectrum, I finally attend a Liberato&amp;rsquo;s
live performance. The show has been postponed multiple times due to COVID-19,
but eventually they did it and it was glorious. I am not too fond of big
concerts and huge crowds these days, but Liberato is some of the best music
Italy has at the moment so I could not miss it. He pretty much remixed all of
his tracks, interpolating covers and extending them with new beats for the
entire set. We danced (well, jumped around mostly) and yelled Neapolitan words
for two hours. Fun times indeed.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;cinema&#34;&gt;Cinema&lt;/h3&gt;
&lt;p&gt;I know this is going to sound horrible coming from a self-proclaimed cinephile,
but all things considered I have not been able to feel moved, involved,
passionate with a film not already part of my Blu-ray and DVD collection. I can
mention &lt;em&gt;Elvis&lt;/em&gt; and &lt;em&gt;Kimi&lt;/em&gt; as pleasant and interesting movies, but titles such
as &lt;em&gt;Deep Water&lt;/em&gt;, &lt;em&gt;Armageddon Time&lt;/em&gt;, and &lt;em&gt;Crimes of the Future&lt;/em&gt; were just below
my expectations. The only exception to this bleakness is &lt;em&gt;The Fabelmans&lt;/em&gt;, which
although formulaic, predictable, and not up there with the best from Steven
Spielberg, shows love for the art and it understands where the heart fits among
the images. It reminded me of Zhang Yimou&amp;rsquo;s &lt;em&gt;One Second&lt;/em&gt;, hence storytelling for
the sake of telling.&lt;/p&gt;
&lt;p&gt;It looks like I have been approaching films with a precise idea of what I wanted
from them, which is obviously not the right thing to do. Cinema owes me nothing
and it&amp;rsquo;s up to me to be open and apply my mind accordingly. I see myself getting
tired quickly with recent films, throwing around comparisons and unable to
accept what is in front of me. I have not been keeping up with new releases, at
least not as much as I used to, so I don&amp;rsquo;t have the proper tools to understand
where cinema is going and why. I hope this is just some sort of vacation from
one of my deepest and oldest loves in order to regain the mindset to be at peace
with it again.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Automatically format Clojure buffers</title>
      <link>https://manueluberti.eu/posts/2022-10-27-cljformat/</link>
      <pubDate>Thu, 27 Oct 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-10-27-cljformat/</guid>
      <description>&lt;p&gt;Contrary to my experience with free or open source projects, when it comes to
the proprietary software I have been developing for work since late 2004, code
formatting has never been matter of discussion. There was a team, back in my
days in the UK, that enforced some strict rules via Ant, but until today that
was the sole exception.&lt;/p&gt;
&lt;p&gt;Luckily the people I am coding with nowadays are more open to this kind of
problem. Yes, I used the word &lt;em&gt;problem&lt;/em&gt;. As I explained to a co-worker when I
raised the question of formatting tools, I read code as I read a book. I cannot
imagine sitting through different books each written according to the authors&#39;
own ideas of stylistic conventions. It&amp;rsquo;s about having the text, whether words or
code,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; accessible to anyone by making the assumption that the first step to
understanding is ease of legibility.&lt;/p&gt;
&lt;p&gt;The team agreed on using &lt;a href=&#34;https://github.com/weavejester/cljfmt&#34;&gt;cljfmt&lt;/a&gt; for
this task. Most of the developers here use Clojure LSP and, from what I
understand, the integration with &lt;code&gt;cljfmt&lt;/code&gt; is already there for them. I, on the
other hand, went with a more manual approach. I first built the &lt;code&gt;cljfmt&lt;/code&gt; binary
with GraalVM thanks to Rune Juhl Jacobsen&amp;rsquo;s useful
&lt;a href=&#34;https://github.com/runejuhl/cljfmt-graalvm&#34;&gt;cljfmt-graalvm&lt;/a&gt;. Rune offers a
snippet for &lt;code&gt;use-package&lt;/code&gt; and Projectile users, but I leveraged &lt;code&gt;project.el&lt;/code&gt; and
a CIDER hook instead.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defvar mu-cljfmt-edn &amp;quot;cljfmt.edn&amp;quot;
  &amp;quot;The name of `cljfmt&#39; configuration file.&amp;quot;)
  
(defun mu-cljfmt-format-buffer ()
  &amp;quot;Format current buffer with `cljfmt&#39;.&amp;quot;
  (when (derived-mode-p &#39;clojure-mode)
    (let* ((pr (project-root (project-current)))
           (cfg-dir (locate-dominating-file pr mu-cljfmt-edn))
           (cfg-edn (expand-file-name mu-cljfmt-edn cfg-dir))
           (cmd (if (file-exists-p cfg-edn)
                    (format &amp;quot;cljfmt -c %s %s&amp;quot; cfg-edn buffer-file-name)
                  (format &amp;quot;cljfmt %s&amp;quot; buffer-file-name))))
      (shell-command-to-string cmd))
    (revert-buffer t t)))

(defun mu-cider-format-buffer ()
  &amp;quot;Automatically format current buffer after saving.&amp;quot;
  (add-hook &#39;after-save-hook #&#39;mu-cljfmt-format-buffer nil t))

(add-hook &#39;cider-mode-hook #&#39;mu-cider-format-buffer)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Some things worth considering:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;the location and the name of the &lt;code&gt;cljfmt.edn&lt;/code&gt; file matter, so check your
projects if you follow my approach. For instance, the snippet provided by Rune
uses &lt;code&gt;.cljfmt.edn&lt;/code&gt;. With &lt;code&gt;mu-cljfmt-edn&lt;/code&gt; I can customize it per-project via
directory variables, if needed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;clojurec-mode&lt;/code&gt; and &lt;code&gt;clojurescript-mode&lt;/code&gt; are both derived from &lt;code&gt;clojure-mode&lt;/code&gt;.
This explains the use of &lt;code&gt;derived-mode-p&lt;/code&gt;;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;in buffers handled by &lt;code&gt;clojure-mode&lt;/code&gt; I always have CIDER enabled, even if not
necessarily jacked-in. For a more general approach, &lt;code&gt;clojure-mode-hook&lt;/code&gt; should
be preferred;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CIDER provides an
&lt;a href=&#34;https://docs.cider.mx/cider/usage/misc_features.html#formatting-code-with-cljfmt&#34;&gt;integration&lt;/a&gt;
with &lt;code&gt;cljfmt&lt;/code&gt;. Depending on your needs that may be already enough.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With a tool tweaked to format code
&lt;a href=&#34;https://github.com/bbatsov/clojure-style-guide&#34;&gt;idiomatically&lt;/a&gt; for us, now it&amp;rsquo;s
time to argue about names. Wait, let me refresh my &lt;em&gt;hadoukens&lt;/em&gt; first.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;By the way, looking at code as text is the subject of &lt;a href=&#34;https://pwlconf.org/2022/zach-tellman/&#34;&gt;Sense and
Structure: Towards a Textual Analysis of
Software&lt;/a&gt;, a recent talk by Zach
Tellman.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>A new filmsinwords.eu</title>
      <link>https://manueluberti.eu/posts/2022-10-23-filmsinwords/</link>
      <pubDate>Sun, 23 Oct 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-10-23-filmsinwords/</guid>
      <description>&lt;p&gt;As of today &lt;em&gt;Films in Words&lt;/em&gt;, the website I use for my writings on cinema,
becomes an archive. I will keep it around for a while, but I imported its
contents here and anything new related to cinema will be posted on this website.
Some time next year &lt;em&gt;filmsinwords.eu&lt;/em&gt; will not be available any more.&lt;/p&gt;
&lt;p&gt;The reason for this change, in case you are wondering, is a practical one. I
first started blogging in English with &lt;em&gt;Films in Words&lt;/em&gt;, and I did not want to
use it as a personal website. So when &lt;a href=&#34;https://manueluberti.eu&#34;&gt;manueluberti.eu&lt;/a&gt;
arrived, the idea was to keep my techie and film buff sides separated. Years
passed, and to my surprise content not involving Emacs has surfaced here. It
makes sense then that I host my cinema writings on these pages as well.&lt;/p&gt;
&lt;p&gt;To make browsing by category easier I added pages for articles grouped by
category, like &lt;a href=&#34;https://manueluberti.eu/tags/emacs/&#34;&gt;Emacs&lt;/a&gt;, &lt;a href=&#34;https://manueluberti.eu/tags/cinema/&#34;&gt;Cinema&lt;/a&gt;, and &lt;a href=&#34;https://manueluberti.eu/tags/books/&#34;&gt;Books&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For an overview of all the writings there is always the whole &lt;a href=&#34;https://manueluberti.eu/archive/&#34;&gt;archive&lt;/a&gt; to peruse.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Jump to the last change in the buffer</title>
      <link>https://manueluberti.eu/posts/2022-10-16-back-last-edit/</link>
      <pubDate>Sun, 16 Oct 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-10-16-back-last-edit/</guid>
      <description>&lt;p&gt;Ages ago I did the minimally required amount of work to get Chris Done&amp;rsquo;s
&lt;a href=&#34;https://github.com/chrisdone/emacs-config/blob/master/packages/goto-last-point/goto-last-point.el&#34;&gt;goto-last-point&lt;/a&gt;
to MELPA. Recently the maintenance of that package has been taken over by
&lt;a href=&#34;https://github.com/melpa/melpa/pull/8164&#34;&gt;someone else&lt;/a&gt; as part of me moving
away from GitHub and caring only about projects I want to actively maintain.&lt;/p&gt;
&lt;p&gt;The thing with &lt;code&gt;goto-last-point&lt;/code&gt; is that it&amp;rsquo;s too much code for me. I simply
want to jump back to the last change in the buffer when I need. A savvy Emacs
user knows that commands such as &lt;code&gt;isearch-forward&lt;/code&gt; (&lt;code&gt;C-s&lt;/code&gt;) or
&lt;code&gt;beginning-of-buffer&lt;/code&gt; (&lt;code&gt;M-&amp;lt;&lt;/code&gt;) push mark at the previous position,
making it easy to go back to that position with a quick &lt;code&gt;C-u C-SPC&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;However, suppose for a moment that for some inexplicable reason you reached over
to the scroll wheel to move around your buffer. &lt;code&gt;C-u C-SPC&lt;/code&gt; cannot help
you now.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-back-to-last-edit ()
  &amp;quot;Jump back to the last change in the current buffer.&amp;quot;
  (interactive)
  (ignore-errors
    (let ((inhibit-message t))
      (undo-only)
      (undo-redo))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Bind &lt;code&gt;mu-back-to-last-edit&lt;/code&gt; to a key binding of your choice and no matter the
weird dances your point is put through, you can safely reach for the last edit
without thinking too much about it.&lt;/p&gt;
&lt;p&gt;Note that I am using &lt;code&gt;ignore-errors&lt;/code&gt; and &lt;code&gt;inhibit-message&lt;/code&gt; just because both
&lt;code&gt;undo-only&lt;/code&gt; and &lt;code&gt;undo-redo&lt;/code&gt; display useful messages that, in this specific case
only, I don&amp;rsquo;t need. You could avoid them if you don&amp;rsquo;t mind some noise in the
echo area.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Giacomo Leopardi was a loser</title>
      <link>https://manueluberti.eu/posts/2022-10-07-leopardi-loser/</link>
      <pubDate>Fri, 07 Oct 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-10-07-leopardi-loser/</guid>
      <description>&lt;p&gt;Not too long ago, I was having dinner with relatives and friends. The
conversation was circling around topics I do not much care about (e.g., food),
but at some point, I don&amp;rsquo;t remember exactly how, we moved to more interesting
subjects. Specifically, literature and poetry. A friend mentioned how hard
teaching poetry at their school is, and we ended up sharing comments on our
favourite poets. As soon as Giacomo Leopardi&amp;rsquo;s name was thrown around, from the
other side of the table a relative quickly shared their thought: &amp;ldquo;Giacomo
Leopardi was a loser!&amp;rdquo;. It took me a while to realize what had just been said.
Then I failed miserably at trying to explain the stunning beauty of
&lt;a href=&#34;https://en.wikipedia.org/wiki/L%27infinito&#34;&gt;L&amp;rsquo;infinito&lt;/a&gt; to an audience not
particularly interested in the sublime, the absolute, and the Spinozistic
reality of the poem.&lt;/p&gt;
&lt;p&gt;Over the course of the next days I kept returning to the statement &amp;ldquo;Giacomo
Leopardi was a loser&amp;rdquo;. I wanted to understand it better. I was not particularly
interested in shaming the author of the comment, because I am not a poetry
expert, so it would have been silly to hold up true aesthetic values for art&amp;rsquo;s
sake without being able to justify my opinion. I simply was fascinated by what
something like &amp;ldquo;Giacomo Leopardi was a loser&amp;rdquo; could tell me on the author of the
comment&amp;rsquo;s views on poetry and art in general.&lt;/p&gt;
&lt;p&gt;What happens when we value a piece of art according to our perception of the
author? The relative who expressed their opinion on Leopardi has never cared too
much about humanities, so what does it mean for them to acknowledge something as
beautiful? One possible explanation is that what they deem beautiful is in fact
what they instinctively like or, to a certain degree, think they understand.
This is the old subjective versus objective argument encapsulated by the
following expression: beauty is in the eye of the beholder.&lt;/p&gt;
&lt;p&gt;However, I don&amp;rsquo;t think this kind of relativism can be used as a solid principle,
mostly because it can be conducive to naive forms of skepticism for which there
is no easy way out.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; It&amp;rsquo;s also true that the mere fact that we like something
does not make it automatically beautiful for everyone, and yet there are work of
arts generally considered beautiful but in front of which we are not moved at
all. Is art failing at communicating a universal value of beauty, or is it just
us lacking the right perspective and the proper knowledge to grasp beauty as it
should be?&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Another question raised in me by &amp;ldquo;Giacomo Leopardi was a loser&amp;rdquo; concerns the
relationship between the person and the artist who that person is. I remember
being desperately incapable of making a distinction between the two, for
instance, praising or insulting an art piece depending on how close the author
was to my political ideas. A professor dear to me once said: &amp;ldquo;Should we trash
&lt;em&gt;Being and Time&lt;/em&gt; now that we know of Heidegger&amp;rsquo;s sympathies for the Nazi
Party?&amp;rdquo;.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; Whatever the term &amp;ldquo;loser&amp;rdquo; means, it makes absolutely no difference
when we consider what Leopardi left us with. We have his poetry, we can read his
writings. What do they tell us? Do they still mean something to us? Is
Leopardi&amp;rsquo;s art relevant today? Unless the answer to all of these questions is
negative and justifiably so, I see no point in avoiding Leopardi in light of how
the man was supposed to be.&lt;/p&gt;
&lt;p&gt;Moreover, if beautiful is only what I like and can understand, does it even make
sense to study this poet, or even poetry at all, at school? There is a not so
subtle utilitarian dimension to a notion of beauty built upon an individual&amp;rsquo;s
own interests which, in turn, renders poetry somehow imposed on students against
more practical, day-to-day matters. This is an all too familiar situation,
because it goes hand in hand with what I want a teacher to be. When I think of
poetry, I think of the highest peak of the humans&amp;rsquo; adventure with language. When
I read poetry, I am taken simultaneously more beyond and within myself than with
any other art by the incredible simplicity of the nature of poetry itself: it&amp;rsquo;s
just words on a page, how can they push me so far? If a teacher cannot enable
their students to explore the unknown sides of themselves by means of poetry,
then the students are totally free to set Leopardi aside and move on. Finding
beauty in poetry is hard, and that&amp;rsquo;s why it takes a really great teacher to make
it possible.&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Still, suppose for a moment that we have finally found a poem we do like.
Suppose the poem has already been valued as beautiful by experts way more
trustworthy than us. Should we consider its beauty useful? In my rather limited
experience, engaging with beauty in art and humanities does not seem to pay the
bills, so is there even a point in studying Giacomo Leopardi when the world out
there will rarely if ever match your knowledge with a salary? Let me provide a
short question as a quick answer first: who cares? Now let me try to expand on
it.&lt;/p&gt;
&lt;p&gt;Conflating beauty with interest makes sense only if, for a while, we wish to
take care of ourselves in a less income-driven way. Yes, finding beauty in
things is for the most part a self-involved endeavor. One can reasonably say
that as long as there is pleasure in it, then something is beautiful and worth
of their attention. Money means nothing here: I want beauty to provide instant
gratification, please. Such a hedonistic stance depends on the kind of pleasure
one is looking for. If it is immediate excitement or a quick diversion from
boring routine we are searching, then this is not the beauty a poem like
&lt;em&gt;L&amp;rsquo;infinito&lt;/em&gt; conveys. To appreciate its beauty one needs hard work. One must
&lt;em&gt;know&lt;/em&gt; what Leopardi is writing about; one has to &lt;em&gt;remove&lt;/em&gt; any interference with
their reading; one has to &lt;em&gt;be open&lt;/em&gt; to the endless paths the poem will
eventually uncover.&lt;/p&gt;
&lt;p&gt;I know it takes considerable effort and time to do all of that and usually lack
of time is the primary objection to this process, but I do not want to waste
words on the amount of hours daily spent in front of screens of different sizes.
The point here is actually very simple: you have to work for beauty to work on
you. When you succeed, beauty succeeds, and as you &lt;em&gt;feel the eternal&lt;/em&gt; you will
know that it is worth every penny you are not putting in your wallet while
&lt;em&gt;sinking in this sea&lt;/em&gt;.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Put otherwise: if everything can be judged according to one&amp;rsquo;s opinions,
then the statement &amp;ldquo;everything can be judged according to one&amp;rsquo;s opinions&amp;rdquo; is
questionable as well.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Studying Immanuel Kant&amp;rsquo;s &lt;em&gt;Critique of Judgment&lt;/em&gt; has led me to inquiries of
this kind.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;I will never share Martin Heidegger&amp;rsquo;s ideas on Nazism, but &lt;em&gt;Being and
Time&lt;/em&gt; is one of the books I can point at if asked about my love for
philosophy.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:4&#34;&gt;
&lt;p&gt;I have never had a teacher capable of doing it. Luckily, I had teachers
able to show me the wonders of literature and philosophy, and so I came to
poetry with my eyes partially open already.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Update on Eglot and jdtls</title>
      <link>https://manueluberti.eu/posts/2022-09-27-jdtls-data/</link>
      <pubDate>Tue, 27 Sep 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-09-27-jdtls-data/</guid>
      <description>&lt;p&gt;This is just a quick update on the status of Eclipse JDT Language Server support
in Eglot.&lt;/p&gt;
&lt;p&gt;Since my Python skills are close to none, &lt;a href=&#34;https://github.com/eclipse/eclipse.jdt.ls/pull/2207#issuecomment-1258544400&#34;&gt;Roland
Grunberg&lt;/a&gt;
kindly stepped forward to &lt;a href=&#34;https://github.com/eclipse/eclipse.jdt.ls/commit/b93370662a8e4e552dc2af162eb9510b276e0203&#34;&gt;make
sure&lt;/a&gt;
that &lt;code&gt;jdtls&lt;/code&gt; can take care of setting up everything in order to &lt;a href=&#34;https://manueluberti.eu/posts/2022-08-18-eglot-jdtls-data/&#34;&gt;avoid ugly
workarounds in Emacs&lt;/a&gt; and, I guess,
other text editors and IDEs as well.&lt;/p&gt;
&lt;p&gt;The fix will be available on the
&lt;a href=&#34;https://github.com/eclipse/eclipse.jdt.ls/milestone/106?closed=1&#34;&gt;next&lt;/a&gt; Eclipse
JDT milestone. However, nothing stops you from grabbing the &lt;a href=&#34;https://download.eclipse.org/jdtls/snapshots/?d&#34;&gt;latest snapshot
build&lt;/a&gt; and &lt;code&gt;M-x&lt;/code&gt;
&lt;code&gt;eglot&lt;/code&gt; away in your Java projects.&lt;/p&gt;
&lt;p&gt;Even though I am not working with Java these days, it&amp;rsquo;s good to know that I
&lt;em&gt;could&lt;/em&gt; do it in Emacs with the nice features LSP offers.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Working with diff-mode</title>
      <link>https://manueluberti.eu/posts/2022-09-24-diff-mode/</link>
      <pubDate>Sat, 24 Sep 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-09-24-diff-mode/</guid>
      <description>&lt;p&gt;One Emacs package that has been with me for a very long time is
&lt;a href=&#34;https://github.com/dgutov/diff-hl&#34;&gt;diff-hl&lt;/a&gt;, and the reason is not its
on-the-fly coloured fringe markers, but the fact that colours stay there when I
visit the same buffer later. This is useful since more often than not I end my
work day with something still in progress, so the next morning it&amp;rsquo;s easier to
use &lt;code&gt;diff-hl-next-hunk&lt;/code&gt; and &lt;code&gt;diff-hl-previous-hunk&lt;/code&gt; to move around my unfinished
edits.&lt;/p&gt;
&lt;p&gt;However, I have put &lt;code&gt;diff-hl&lt;/code&gt; aside because there have been some welcome
improvements lately on the built-in &lt;code&gt;diff-mode&lt;/code&gt;, especially the possibility to
edit its buffer contents and commit &lt;a href=&#34;https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=4803fba487d41f0817feab48b5095ef4b4940ff6&#34;&gt;straight from it&lt;/a&gt;. I now find myself using
&lt;code&gt;C-x v D&lt;/code&gt; (&lt;code&gt;vc-root-diff&lt;/code&gt;) many times a day, and by using
&lt;code&gt;diff-mode&lt;/code&gt; more, I have started to appreciate one simple thing that was already
available to me but have always ignored, that is the navigation among hunks with
&lt;code&gt;diff-hunk-next&lt;/code&gt; (&lt;code&gt;n&lt;/code&gt;) and &lt;code&gt;diff-hunk-prev&lt;/code&gt; (&lt;code&gt;p&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;The pattern, already become muscle memory, is the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;C-x p p&lt;/code&gt; to enter the project I am working on&lt;/li&gt;
&lt;li&gt;Visit the file I am interested in&lt;/li&gt;
&lt;li&gt;Hit &lt;code&gt;C-x v =&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Move with either &lt;code&gt;n&lt;/code&gt; or &lt;code&gt;p&lt;/code&gt; to the desired hunk&lt;/li&gt;
&lt;li&gt;Hit &lt;code&gt;RET&lt;/code&gt; to jump to the hunk&lt;/li&gt;
&lt;li&gt;Hit &lt;code&gt;C-x 1&lt;/code&gt; to hide the &lt;code&gt;diff-mode&lt;/code&gt; buffer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Easy and quick. I guess one could even speed up the process by using
something like &lt;code&gt;recentf-mode&lt;/code&gt;, for instance, but I&amp;rsquo;ll leave that to you wild
ELisp explorers.&lt;/p&gt;
&lt;p&gt;By the way, after months with VC instead of Magit,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; the combination of
&lt;code&gt;vc-dir&lt;/code&gt;, &lt;code&gt;vc-git&lt;/code&gt;, &lt;code&gt;diff-mode&lt;/code&gt;, and &lt;code&gt;shell-command&lt;/code&gt; has resulted in one of the
most dreaded command any serious Emacs user can think of, one that I cannot even
type out of fear of mystical forces coming after me. Let&amp;rsquo;s just say it involves
&lt;code&gt;package-delete&lt;/code&gt; and&amp;hellip; Dear GNU, they&amp;rsquo;re already here.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;My actual focus on VC roughly started last year, see: &lt;a href=&#34;https://manueluberti.eu/posts/2021-12-05-vc-rebasing/&#34;&gt;Rebasing with
VC&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Automatically highlight regular expressions</title>
      <link>https://manueluberti.eu/posts/2022-09-06-tk-font-lock/</link>
      <pubDate>Tue, 06 Sep 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-09-06-tk-font-lock/</guid>
      <description>&lt;p&gt;While reading the nice &lt;a href=&#34;https://jakebox.github.io/blog/posts/highlight_buffer_text/&#34;&gt;Straightforward Emacs: Automatically Highlight Buffer
Text&lt;/a&gt;, I kept
wondering whether I could get a similar solution with Emacs built-in facilities.
The article explains how to highlight &amp;ldquo;TK&amp;rdquo; and variations of it (e.g.,
&amp;ldquo;TKTKTKTK&amp;rdquo;) using the helpful
&lt;a href=&#34;https://codeberg.org/ideasman42/emacs-hl-prog-extra&#34;&gt;hl-prog-extra&lt;/a&gt;. The author
says they had to rely on an external package &amp;ldquo;after some searching and trial and
error&amp;rdquo;, but it is in fact possible to avoid &lt;code&gt;hl-prog-extra&lt;/code&gt; for the simple
problem they are trying to solve. The trick is using &lt;code&gt;font-lock-add-keywords&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;First of all, I am going to use a custom face instead of the
&lt;code&gt;font-lock-warning-face&lt;/code&gt; one used in the original article, because I like to
think of &amp;ldquo;TK&amp;rdquo; as a comment instead of a warning.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defface mu-tk-face &#39;((t :inherit font-lock-comment-face :bold t))
  &amp;quot;Face used to highlight \&amp;quot;TK\&amp;quot; markers.&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then I am going to create a small function to hook into the mode where I want to
use &amp;ldquo;TK&amp;rdquo; markers.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defvar mu-tk-regexp &amp;quot;\\(TK\\)+&amp;quot;
  &amp;quot;Regexp to identify \&amp;quot;TK\&amp;quot; markers.&amp;quot;)

(defun mu-markdown-mode-setup ()
  &amp;quot;Configure `markdown-mode&#39;.&amp;quot;
  (font-lock-add-keywords nil `((,mu-tk-regexp 0 &#39;mu-tk-face))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The rest is trivial:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(add-hook &#39;markdown-mode-hook #&#39;mu-markdown-mode-setup)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This should be enough already, but since I use &lt;code&gt;flyspell-mode&lt;/code&gt; in my Markdown
documents it has to ignore &amp;ldquo;TK&amp;rdquo; so as to avoid having the &lt;code&gt;flyspell-incorrect&lt;/code&gt;
face interfering with my own &lt;code&gt;mu-tk-face&lt;/code&gt;. In order to accomplish this, I need a
function that ignores these markers so I can use it as the value of
&lt;code&gt;flyspell-generic-check-word-predicate&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-flyspell-skip-tk ()
  &amp;quot;Ignore \&amp;quot;TK\&amp;quot; markers when spell-checking.&amp;quot;
  (not (string-match-p mu-tk-regexp (thing-at-point &#39;word t))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Finally it&amp;rsquo;s enough to add the following to &lt;code&gt;mu-markdown-mode-setup&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(setq-local flyspell-generic-check-word-predicate #&#39;mu-flyspell-skip-tk)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now I can use &amp;ldquo;TK&amp;rdquo; markers as intended.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/tk.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Hopefully it should be obvious that I am &lt;em&gt;not&lt;/em&gt; advising against using
&lt;code&gt;hl-prog-extra&lt;/code&gt; for your highlighting needs. My code is a small solution to a
tiny itch, while the scope of &lt;code&gt;hl-prog-extra&lt;/code&gt; is much larger. The intent of this
writing is just showing that for certain tasks Emacs comes already prepared.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Ugrep and consult-xref</title>
      <link>https://manueluberti.eu/posts/2022-09-01-consult-xref/</link>
      <pubDate>Thu, 01 Sep 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-09-01-consult-xref/</guid>
      <description>&lt;p&gt;This is going to be a small correction to my &lt;a href=&#34;https://manueluberti.eu/posts/2022-08-31-project-find-regexp/&#34;&gt;previous post&lt;/a&gt; about Ugrep and project navigation.&lt;/p&gt;
&lt;p&gt;If you remember, I was using &lt;code&gt;xref-show-definitions-completing-read&lt;/code&gt; to make
&lt;code&gt;project-find-regexp&lt;/code&gt; offer its results in the minibuffer. The problem with that
command is that the results are grouped by file, which is good, but within the
groups they do not appear to be sorted by line number, which is not so good.&lt;/p&gt;
&lt;p&gt;However, since I am already using &lt;a href=&#34;https://github.com/minad/consult&#34;&gt;consult&lt;/a&gt;
the solution is right behind the corner.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-project-find-regexp ()
  &amp;quot;Use `project-find-regexp&#39; with completion.&amp;quot;
  (interactive)
  (defvar xref-show-xrefs-function)
  (let ((xref-show-xrefs-function #&#39;consult-xref))
    (if-let ((tap (thing-at-point &#39;symbol)))
        (project-find-regexp tap)
      (call-interactively #&#39;project-find-regexp))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The documentation of &lt;code&gt;consult-xref&lt;/code&gt; itself is pretty clear.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Show xrefs with preview in the minibuffer.&lt;/p&gt;
&lt;p&gt;This function can be used for ‘xref-show-xrefs-function&#39;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now the only thing left is saying &amp;ldquo;Thank you, Daniel Mendler!&amp;rdquo; one more time for
all his beautiful work.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Search thing at point with Ugrep</title>
      <link>https://manueluberti.eu/posts/2022-08-31-project-find-regexp/</link>
      <pubDate>Wed, 31 Aug 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-08-31-project-find-regexp/</guid>
      <description>&lt;p&gt;When I described &lt;a href=&#34;https://manueluberti.eu/posts/2022-08-07-emacs-ugrep/&#34;&gt;how I use Ugrep in
Emacs&lt;/a&gt; I forgot to mention
something. It&amp;rsquo;s true that I rely on &lt;code&gt;project-find-regexp&lt;/code&gt; (&lt;code&gt;C-x p g&lt;/code&gt;)
for searches, but there is a specific use-case where this command is not as
handy as it usually is: project-wide navigation.&lt;/p&gt;
&lt;p&gt;To be more precise, in my daily workflows it can happen that all I need to do is
jump to a different file where the thing at point is used. The power of
&lt;code&gt;project-find-regexp&lt;/code&gt; is too much here, because I don&amp;rsquo;t need the &lt;code&gt;*xref*&lt;/code&gt; buffer
with all the results and the ability to replace them. I just want a quick a way
to hit &lt;code&gt;RET&lt;/code&gt; on the candidate I am looking for and move to the desired
file.&lt;/p&gt;
&lt;p&gt;With &lt;code&gt;xref-search-program&lt;/code&gt; set to &lt;code&gt;&#39;ugrep&lt;/code&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; the solution is trivial.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-project-find-regexp ()
  &amp;quot;Use `project-find-regexp&#39; with completion.&amp;quot;
  (interactive)
  (defvar xref-show-xrefs-function)
  (let ((xref-show-xrefs-function #&#39;xref-show-definitions-completing-read))
    (if-let ((tap (thing-at-point &#39;symbol)))
        (project-find-regexp tap)
      (call-interactively #&#39;project-find-regexp))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The trick is temporarily setting &lt;code&gt;xref-show-xrefs-function&lt;/code&gt; to
&lt;code&gt;xref-show-definitions-completing-read&lt;/code&gt;, which according to its documentation
does exactly what I am looking for.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Let the user choose the target definition with completion.&lt;/p&gt;
&lt;p&gt;When there is more than one definition, let the user choose
between them by typing in the minibuffer with completion.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I then bind &lt;code&gt;mu-project-find-regexp&lt;/code&gt; to &lt;code&gt;M-?&lt;/code&gt; and all is set.
Needless to say, the heavy work is still done by &lt;code&gt;project-find-regexp&lt;/code&gt;. Such an
awesome tool.&lt;/p&gt;
&lt;p&gt;Note that I am overriding the default &lt;code&gt;M-?&lt;/code&gt; on purpose, because the
original &lt;code&gt;xref-find-references&lt;/code&gt; does not take things like &lt;code&gt;.gitignore&lt;/code&gt; into
account, something absolutely necessary in large projects where I want to avoid
having useless candidates spam the ever precious minibuffer.&lt;/p&gt;
&lt;p&gt;Finally, be aware that a better version of &lt;code&gt;mu-project-find-regexp&lt;/code&gt; can be found
&lt;a href=&#34;https://manueluberti.eu/posts/2022-09-01-consult-xref/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Once again, refer to &lt;a href=&#34;https://github.com/Genivia/ugrep#using-ugrep-within-emacs&#34;&gt;Using ugrep with
Emacs&lt;/a&gt; for the
configuration details.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Horcynus Orca</title>
      <link>https://manueluberti.eu/posts/2022-08-19-horcynus-orca/</link>
      <pubDate>Fri, 19 Aug 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-08-19-horcynus-orca/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;It&amp;rsquo;s the only European answer to &lt;em&gt;Moby-Dick&lt;/em&gt;: D&amp;rsquo;Arrigo is Melville&amp;rsquo;s
equal.&lt;/p&gt;
&lt;p&gt;&amp;mdash; George Steiner&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After I closed the last page of Stefano D&amp;rsquo;Arrigo&amp;rsquo;s &lt;em&gt;Horcynus Orca&lt;/em&gt; I could not
help but think about David Foster Wallace&amp;rsquo;s &lt;em&gt;E Unibus Pluram: Television and
U.S. Fiction&lt;/em&gt;.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; What would have Wallace thought of D&amp;rsquo;Arrigo&amp;rsquo;s prose? Would
&lt;em&gt;Horcynus Orca&lt;/em&gt; complicate his reaction to postmodernism? Here I am assuming
that the American writer did not have a chance to pick up D&amp;rsquo;Arrigo&amp;rsquo;s masterpiece
when he was alive. I am also fairly confident in my assumption because a) it
takes a profound knowledge of Italian language and culture to get through
&lt;em&gt;Horcynus Orca&lt;/em&gt; and Wallace was not known to be an expert in this regard and b)
there is only a German translation available but it was published years after
his death. Still, does his reasoning about postmodernism apply to Stefano
D&amp;rsquo;Arrigo?&lt;/p&gt;
&lt;p&gt;In a sense, it certainly does. &lt;em&gt;Horcynus Orca&lt;/em&gt; was published in 1975 but
D&amp;rsquo;Arrigo had been working on it since 1950, thus the writing process started and
culminated right within an age dense with postmodern fiction. John Barth, Kurt
Vonnegut, Julio Cortázar, Italo Calvino, Thomas Pynchon, Ursula Le Guin, J.G.
Ballard, are only few of the several authors whose literary efforts were
distinctly geared towards what was supposed to happen after the modernism of
early twentieth century. Stefano D&amp;rsquo;Arrigo could be added to this list as well,
as he was clearly influenced by writers such as James Joyce, Virginia Woolf, and
T.S. Eliot, but I like to think that he understood how truly modern Herman
Melville had been and even venture to say that before David Foster Wallace
embarked in his post-postmodern mission, D&amp;rsquo;Arrigo had already moved in the same
direction.&lt;/p&gt;
&lt;p&gt;For the thirty-one year old Wallace behind &lt;em&gt;E Unibus Pluram&lt;/em&gt;, literature needed
to progress beyond postmodernism by forgetting about its penchant for
self-awareness. He sensed the powerful influence of media on fiction, and he
brilliantly acknowledged the cynicism that rapidly followed the irony television
so insisted upon. His ideal book was a combination of the style of postmodern
masters with the themes of modern literary geniuses. When I think of this, I
like to imagine Thomas Mann or Marcel Proust writing about today&amp;rsquo;s society after
some years in the company of Cortázar and Pynchon.&lt;/p&gt;
&lt;p&gt;In this regard, &lt;em&gt;Horcynus Orca&lt;/em&gt; resembles Wallace&amp;rsquo;s magnum opus, &lt;em&gt;Infinite
Jest&lt;/em&gt;. Thematically, both works are focused on individual persons and their
struggles with a world always out of reach. D&amp;rsquo;Arrigo&amp;rsquo;s main character, &amp;lsquo;Ndrja
Cambrìa, can hardly cope with the leftovers of World War II in Southern Italy,
while the Incandenza family, Don Gately, and Joelle van Dyne in &lt;em&gt;Infinite Jest&lt;/em&gt;
have to endlessly deal with addiction and media-driven entertainment. In both
books, the father figure is of utmost importance. It&amp;rsquo;s the key to Wallace&amp;rsquo;s
mystery but it&amp;rsquo;s also what anchors &amp;lsquo;Ndrja Cambrìa to a past he cannot escape. At
the same time, the two writers share stylistic choices to a certain degree.
Beside streams of long sentences, just as Wallace crafts new vocabulary and
makes extensive use of slang, D&amp;rsquo;Arrigo mixes regional dialect with invented
jargon. Furthermore, whereas the American writer breaks the narrative structure
with a plethora of end notes, the Sicilian author disrupts it with the language
itself, forcing the reader to make sense of neologisms at any time.&lt;/p&gt;
&lt;p&gt;There is one more similarity which I find particularly fascinating. &lt;em&gt;Horcynus
Orca&lt;/em&gt; and &lt;em&gt;Infinite Jest&lt;/em&gt; avoid unambiguous resolutions. While this can be
somehow implied in the title of Wallace&amp;rsquo;s work, the irony of it bouncing back to
the reader after the last page, what does the same reader come out with at the
end of &lt;em&gt;Horcynus Orca&lt;/em&gt;? The closing hendecasyllable points to an infinity
reminiscent of Wallace&amp;rsquo;s one, but this is pure speculation. The intentionally
misspelled title, with that &lt;em&gt;H&lt;/em&gt; and that &lt;em&gt;y&lt;/em&gt; left there without any explanation,
does not help either. On the contrary, I think it may just be D&amp;rsquo;Arrigo telling
us that questions will arise before the very first page. This openness from both
books demands multiple readings, closer inspection, and thoughtful attention,
which is nothing less than what the world we live in constantly requires from
us. It&amp;rsquo;s an invitation to care, and the complexity of these pages makes explicit
how hard learning to care actually is.&lt;/p&gt;
&lt;p&gt;What sets Stefano D&amp;rsquo;Arrigo&amp;rsquo;s &lt;em&gt;Horcynus Orca&lt;/em&gt; apart from its contemporaries is
precisely what David Foster Wallace was aiming for. Had they had the opportunity
to meet, one can only wonder what the two might have talked about. Would they
have agreed on their views on postmodernism? I like to think they would.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;See: &lt;a href=&#34;https://archivio.unita.news/assets/main/2004/11/28/page_023.pdf&#34;&gt;George Steiner - Un umanista assediato dalla
scienza&lt;/a&gt;
(My translation).&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;The essay can be found in &lt;em&gt;A Supposedly Fun Thing I&amp;rsquo;ll Never Do Again&lt;/em&gt;.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Fix jdtls configuration for Eglot</title>
      <link>https://manueluberti.eu/posts/2022-08-18-eglot-jdtls-data/</link>
      <pubDate>Thu, 18 Aug 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-08-18-eglot-jdtls-data/</guid>
      <description>&lt;p&gt;When thanks to its developers I added support for &lt;code&gt;jdtls&lt;/code&gt; in
&lt;a href=&#34;https://manueluberti.eu/posts/2022-03-16-eglot-jdtls/&#34;&gt;Eglot&lt;/a&gt;, I did it by
removing a lot of boilerplate in the package devised to accommodate the complex
setup needed for Eclipse JDT to start the language server. This made the
&lt;code&gt;java-mode&lt;/code&gt; entry in &lt;code&gt;eglot-server-programs&lt;/code&gt; simpler and it also moved the
responsibility of providing the correct defaults to the &lt;code&gt;jdtls&lt;/code&gt; script itself.&lt;/p&gt;
&lt;p&gt;However, recent versions of &lt;code&gt;jdtls&lt;/code&gt; seem to still require extra configuration,
in particular with regards to the &lt;code&gt;-data&lt;/code&gt; argument that before my change was
tweaked &lt;a href=&#34;https://github.com/joaotavora/eglot/issues/1008&#34;&gt;within Eglot&lt;/a&gt;.
Understandably, Eglot&amp;rsquo;s maintainer cannot spend all his time hunting down random
quirks for every LSP server &lt;a href=&#34;https://github.com/joaotavora/eglot/issues/1008#issuecomment-1214462761&#34;&gt;out
there&lt;/a&gt;.
Therefore, it&amp;rsquo;s up to the users to update their configuration at least until
&lt;code&gt;jdtls&lt;/code&gt; takes care of &lt;a href=&#34;https://github.com/eclipse/eclipse.jdt.ls/issues/2191&#34;&gt;this
problem&lt;/a&gt; once and for
all.&lt;/p&gt;
&lt;p&gt;The small hack I added to my &lt;code&gt;init.el&lt;/code&gt; is the following:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(with-eval-after-load &#39;eglot
  (let ((cache (expand-file-name (md5 (project-root (project-current t)))
                                 (locate-user-emacs-file &amp;quot;jdtls-cache&amp;quot;))))
    (add-to-list &#39;eglot-server-programs `(java-mode &amp;quot;jdtls&amp;quot; &amp;quot;-data&amp;quot; ,cache))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The above snippet works fine with the latest &lt;code&gt;jdtls&lt;/code&gt; (as of 2022-08-11 14:25)
and OpenJDK 18.0.2-ea. I updated the relevant Eglot
&lt;a href=&#34;https://github.com/joaotavora/eglot/discussions/868&#34;&gt;discussion&lt;/a&gt; as well, so
refer to it if you need more details.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Forget the old dream</title>
      <link>https://manueluberti.eu/posts/2022-08-14-big-time/</link>
      <pubDate>Sun, 14 Aug 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-08-14-big-time/</guid>
      <description>&lt;p&gt;Since music plays a huge part in my life, I am always interested in seeing not
just how cinema leverages it, but also how music can make use of cinema to offer
new angles from which to approach it. I already wrote about &lt;a href=&#34;https://manueluberti.eu/posts/2019-04-25-homecoming/&#34;&gt;music videos and
film concerts&lt;/a&gt;, and yet
Angel Olsen&amp;rsquo;s &lt;em&gt;Big Time&lt;/em&gt; poses a different problem: has music become cinema or
is it something new altogether?&lt;/p&gt;
&lt;p&gt;Accompanying a record with visuals is not a novelty, of course, nor is using
music for a film which ends up highlighting the music itself (e.g., Prince&amp;rsquo;s
&lt;em&gt;Purple Rain&lt;/em&gt;). However, Olsen places &lt;em&gt;Big Time&lt;/em&gt; in a peculiar position. It&amp;rsquo;s
not a concert film, it&amp;rsquo;s not a narration of the record&amp;rsquo;s concept by means of
images, and it&amp;rsquo;s not even a re-telling of the album&amp;rsquo;s songs via loosely
connected music videos. She wanted something different for her sixth full-length
work.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2022-08-14-big_time_poster.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Big Time (Kimberly Stuckwisch and Angel Olsen, 2022)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;To understand &lt;em&gt;Big Time&lt;/em&gt; as a whole one must immerse themselves in Olsen&amp;rsquo;s
present history insofar as she is willing to disclose it to the public. Much has
changed in her life since the 2019&amp;rsquo;s marvel that is &lt;em&gt;All Mirrors&lt;/em&gt;. A year later
she shared the true origins of that album with the instrumentally more intimate
&lt;em&gt;Whole New Mess&lt;/em&gt;. Then, collected both records plus demos, remixes, and covers
in &lt;em&gt;Songs of the Lark and Other Far Memories&lt;/em&gt;, which is to say she wanted to be
done once and for all with this troublesome time in her career. In the midst of
the pandemic she streamed live concerts from her home among other places,
crafted various mixes and covers, and found the time to work with Sharon Van
Etten on &lt;a href=&#34;https://www.youtube.com/watch?v=5ibj87fwRaM&#34;&gt;Like I Used To&lt;/a&gt; before
unveiling &lt;em&gt;Big Time&lt;/em&gt; and embarking on The Wild Hearts Tour with Van Etten and
Julien Baker.&lt;/p&gt;
&lt;p&gt;This admirable relentlessness is, however, only half of the story. After the
breakup that turned the self-imposed isolation to reconnect with herself into
the proper space to conceive &lt;em&gt;All Mirrors&lt;/em&gt;, life went on with new challenges for
the American song-writer. Olsen has recently come out as gay and right before
starting the recording session for &lt;em&gt;Big Time&lt;/em&gt; her mother died of heart failure,
only two months after her father passed away in his sleep. Her music has always
been a means to cope with events that are hard to process, let alone control.
Yet the songs in &lt;em&gt;Big Time&lt;/em&gt;, although rooted in a musical style prone to inward
reflection such as country, point to a move beyond the contemplation on
loneliness and grief one can find in her earlier recordings. It&amp;rsquo;s as if Olsen is
replying to her own call to action by actually taking the necessary steps to set
things into motion.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;Big Time&lt;/em&gt; film marks both the beginning and the end of this process. It
came out the day before the official release of the record of the same name and
it expands on the images and the background story that were already present in
the singles that anticipated Olsen&amp;rsquo;s new adventure, namely &lt;em&gt;All the Good Times&lt;/em&gt;,
the title track, and &lt;em&gt;Through the Fires&lt;/em&gt;. The plot was born out of dreams of
time travelling that Olsen had at the time of her mother&amp;rsquo;s passing. Kimberly
Stuckwisch, the director, helped her creating a story arc which crosses reality
with events that did not really happen, while keeping the whole thing perfectly
relatable for anyone who experienced at least once in their life changes as
pivotal as the ones Olsen is dealing with here.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2022-08-14-big_time.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Big Time (Kimberly Stuckwisch and Angel Olsen, 2022)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;This is a sympathy that goes from the record and the film to the listener and
the viewer, but it works the other way around just as well. Olsen wants us to
listen to and to watch attentively at what it meant for her to live through
painful and transformational moments, offering images to support sounds and
words to reach wherever chords cannot. However, this is true for every honest
artist willing to share with heartfelt confidence the dark side of their
existence. Here, more than ever before, Olsen is making her experience an
example of intimacy shared not for the sake of art but for that of real life.
She needs to move on, she wants to fight to get where she can feel safe. The
fact that the film is not entirely precise about the details of her story is not
just a way to render the dream narrative with cinematic devices, it&amp;rsquo;s also a way
to make her intimacy something as universal as possible. We need to move on, we
want to fight to get where we can feel safe.&lt;/p&gt;
&lt;p&gt;Looking back at Olsen&amp;rsquo;s career and listening closely to her songs one cannot
help but notice her research for something through constant shifts to new
musical forms and styles. What has she been looking for? The easiest answer to
this question is her true identity. But is that really it? She was already alone
with the desperate necessity to manage things on her own in &lt;em&gt;Unfucktheworld&lt;/em&gt;,
the first track of her 2014 album &lt;em&gt;Burn Your Fire for No Witness&lt;/em&gt;. &lt;em&gt;&amp;ldquo;I am the
only one now&amp;rdquo;&lt;/em&gt;, she said back then. She was also not ready to open up fearing to
be hurt again when she sang &lt;em&gt;&amp;ldquo;With no promise of the future am I not allowed to
think kindly of a stranger&amp;rdquo;&lt;/em&gt; in &lt;em&gt;Woman&lt;/em&gt; from 2016&amp;rsquo;s &lt;em&gt;My Woman&lt;/em&gt;. She then made
her anxiety even more explicit in the opening track of &lt;em&gt;All Mirrors&lt;/em&gt; with the
words &lt;em&gt;&amp;ldquo;If only we could start again pretending we don&amp;rsquo;t know each other&amp;rdquo;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Now it seems like she has eventually accepted why the other matters. &lt;em&gt;Big Time&lt;/em&gt;
is about looking for the other, reaching out for someone who cares, and in doing
so, letting go everything that may impede this dangerous quest. The last images
of the film show Olsen&amp;rsquo;s erasing her past self and kissing her partner at the
dawn of a new day. She is awake, now, the dream finally come to an end. Life
begins anew and everything is set right in front of her. A new day for her and a
new day for everyone she is sharing it all with. Therefore, as inseparable from
the music as the film is, &lt;em&gt;Big Time&lt;/em&gt; is also a nod in our direction. When the
music ends, when the images are gone, we still need help to move on, because by
ourselves we are going to make it unnecessarily difficult. Angel Olsen has
removed the differences between music and cinema. In doing so, she is urging us
to forget about the differences between ourselves and the others. Only among
others we will disclose and thus find our true identity, only then serenity and
peace of mind will come.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Ugrep in Emacs</title>
      <link>https://manueluberti.eu/posts/2022-08-07-emacs-ugrep/</link>
      <pubDate>Sun, 07 Aug 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-08-07-emacs-ugrep/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2021-09-10-rgrep-and-vc-git-grep/&#34;&gt;Almost a year ago&lt;/a&gt; I wrote
about my handy &lt;code&gt;mu-recursive-grep&lt;/code&gt;, an easy way to combine &lt;code&gt;rgrep&lt;/code&gt; and
&lt;code&gt;vc-git-grep&lt;/code&gt;. But after &lt;a href=&#34;https://leahneukirchen.org/blog/archive/2022/03/note-taking-in-emacs-with-howm.html&#34;&gt;Leah
Neukirchen&lt;/a&gt;
mentioned &lt;code&gt;ugrep&lt;/code&gt; recently, I could not resist checking whether it was a good
fit for my daily Emacs usage. A couple of benchmark&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; impressed me enough to
add support for it directly via &lt;code&gt;xref-search-program-alist&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The details to configure everything you need are over at &lt;a href=&#34;https://github.com/Genivia/ugrep#using-ugrep-within-emacs&#34;&gt;Using ugrep within
Emacs&lt;/a&gt; on the project
README. Once set, you can just hit &lt;code&gt;C-x p g&lt;/code&gt; (&lt;code&gt;project-find-regexp&lt;/code&gt;)
in your project and let &lt;code&gt;ugrep&lt;/code&gt; do his magic.&lt;/p&gt;
&lt;p&gt;Moreover, as the README mentions, it&amp;rsquo;s possible to leverage &lt;code&gt;grep-template&lt;/code&gt; to
have commands like &lt;code&gt;lgrep&lt;/code&gt; rely on &lt;code&gt;ugrep&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(setq-default grep-template (string-join &#39;(&amp;quot;ugrep&amp;quot;
                                           &amp;quot;--color=always&amp;quot;
                                           &amp;quot;--ignore-binary&amp;quot;
                                           &amp;quot;--ignore-case&amp;quot;
                                           &amp;quot;--include=&amp;lt;F&amp;gt;&amp;quot;
                                           &amp;quot;--line-number&amp;quot;
                                           &amp;quot;--null&amp;quot;
                                           &amp;quot;--recursive&amp;quot;
                                           &amp;quot;--regexp=&amp;lt;R&amp;gt;&amp;quot;)
                                         &amp;quot; &amp;quot;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Thus, &lt;code&gt;mu-recursive-grep&lt;/code&gt; becomes a bit simpler:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-recursive-grep (search-term search-path)
  &amp;quot;Recursively search for SEARCH-TERM in SEARCH-PATH.&amp;quot;
  (interactive
   (progn
     (unless grep-command
       (grep-compute-defaults))
     (let ((search-term (grep-read-regexp))
           (search-path (expand-file-name
                         (read-directory-name
                          &amp;quot;Directory: &amp;quot; nil default-directory t))))
       (list search-term search-path))))
  (lgrep search-term &amp;quot;*&amp;quot; search-path))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As mentioned in &lt;a href=&#34;https://manueluberti.eu/posts/2021-09-10-rgrep-and-vc-git-grep/&#34;&gt;Grep&amp;rsquo;s good rep&lt;/a&gt;, for project-wide searches &lt;code&gt;C-x p g&lt;/code&gt; is my go-to key binding.
However, there are situations when I want to limit the search to specific paths,
and that&amp;rsquo;s where I prefer using &lt;code&gt;mu-recursive-grep&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A closing remark: before blindly leaving &lt;code&gt;grep&lt;/code&gt;, &lt;code&gt;ripgrep&lt;/code&gt;, or even
&lt;code&gt;vc-git-grep&lt;/code&gt; behind, I suggest to benchmark the performance of each tool and
see what actually suits you best. You may find that whatever you are using at
the moment is already the best choice.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;See &lt;a href=&#34;https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54608#14&#34;&gt;54608#14&lt;/a&gt; and
&lt;a href=&#34;https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54608#20&#34;&gt;54608#20&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>The privileged classroom</title>
      <link>https://manueluberti.eu/posts/2022-07-05-remote-uni/</link>
      <pubDate>Tue, 05 Jul 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-07-05-remote-uni/</guid>
      <description>&lt;p&gt;Yesterday all the students at Ca&amp;rsquo; Foscari university received an email from the
Educational Programmes and Student Services Area Manager of the school. The key
content of the email is the following:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;2022/2023 classes at Ca&amp;rsquo; Foscari university of Venice will be delivered
exclusively in person.&lt;/p&gt;
&lt;p&gt;Emergency teaching methods such as dual, synchronous or
asynchronous lessons will not be provided.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I have been thinking about this email since I first read it. Despite being
predictable behaviour from an institution which has never really wanted to act
differently, there are other things to consider.&lt;/p&gt;
&lt;p&gt;First, Ca&amp;rsquo; Foscari is blatantly ignoring the new peaks of COVID-19 infections in
order to be &amp;ldquo;consistent with the values that we have always recognised and
upheld in recent years: the relationship between students and faculty . . .&amp;rdquo;.
However, how much do they really value this &amp;ldquo;relationship&amp;rdquo;? The email states
that the classroom capacity will be back to 100%, and yet without any rule in
place to enforce the use of masks I am left to wonder why security and health
are so easily overlooked. What&amp;rsquo;s even more fascinating is that the Italian
healthcare institute released an &lt;a href=&#34;https://www.epicentro.iss.it/coronavirus/bollettino/Bollettino-sorveglianza-integrata-COVID-19_22-giugno-2022.pdf&#34;&gt;official
bulletin&lt;/a&gt;
documenting the raising numbers of infections on June 24, right within the range
of days when the Conference of Italian Universities Rectors (on June 22) and
then the Regional Monitoring Committee (on June 27) agreed upon delivering
classes exclusively in person.&lt;/p&gt;
&lt;p&gt;Furthermore, it&amp;rsquo;s not clear what is going to happen to the technology and the
services that have been built and maintained during the last two years. Most of
the professors are openly against remote classes and lesson registrations, so
they did it reluctantly and, more often than not, without bothering to learn how
to use the tools at their disposal. Students did not help in this regard either.
Among the ones online with me during the lessons, many participated with both
camera and microphone turned off the entire time, thus forcing teachers to stare
at walls of black squares on their Zoom window. The problem here, as I see it,
is two-fold: on the one hand, if you are a teacher and your university forces
you to use certain tools it also has to provide decent training. I cannot expect
all the professors in humanities to be familiar with multiple screens or Zoom
breakout rooms, for instance. However, Zoom is not Emacs. If you are still
hitting the wrong button after, say, ten lessons, then the issue might be found
somewhere between the chair and the keyboard. On the other hand, students not
willing to be a part of the lesson from remote should just be kicked out of the
session. I know this sounds brutal, but I took time off my daily job to do my
best and be at every possible online lesson, asking questions, interacting with
professors, and in general making the most of it. I seriously doubt that every
student with a black square in their place was actually unable to do something
about it.&lt;/p&gt;
&lt;p&gt;Eventually Ca&amp;rsquo; Foscari is about to forget the progress it has made in the last
two years by enabling students such as myself to be seriously engaged with the
faculty. It&amp;rsquo;s fairly obvious to me that when they talk about &amp;ldquo;the relationship
between students and faculty&amp;rdquo; they have a precise idea of who these &amp;ldquo;students&amp;rdquo;
should be. This unwillingness to compromise is making me question my willingness
to compromise. I was willing to accept their Google-owned platforms and their
Zoom because, despite the poor technological choice, work was being done to
bring people in instead of keeping them out. Am I willing to continue with the
compromise now?&lt;/p&gt;
</description>
    </item>
    <item>
      <title>DivestOS on my Fairphone 2</title>
      <link>https://manueluberti.eu/posts/2022-05-15-divestos/</link>
      <pubDate>Sun, 15 May 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-05-15-divestos/</guid>
      <description>&lt;p&gt;One of the reasons I am not a heavy smartphone user is privacy concerns.
However, the truth is that I have a smartphone and I use it, so clearly being
aware of a problem and not acting on it is not going to fix it any time soon.&lt;/p&gt;
&lt;p&gt;This is why I have finally decided to move to a different operative system for
my Fairphone 2. After researching the right OS for my needs I landed on
&lt;a href=&#34;https://divestos.org/index.php?page=home&#34;&gt;DivestOS&lt;/a&gt;. I won&amp;rsquo;t go into the
technical details underneath the software because the website is fairly rich in
this regard. Let&amp;rsquo;s see the practicals, instead.&lt;/p&gt;
&lt;p&gt;First of all, I backed up the important data on my phone. This means PGP keys,
OTP settings, and everything else that Google was not already saving for me. I
then downloaded the required &lt;code&gt;fp2&lt;/code&gt; images from &lt;a href=&#34;https://divestos.org/index.php?page=devices&amp;amp;base=LineageOS&#34;&gt;Device
Downloads&lt;/a&gt;. After
that, I moved to the
&lt;a href=&#34;https://divestos.org/index.php?page=bootloader&#34;&gt;Bootloader/Installation&lt;/a&gt; page
and went through the &lt;em&gt;Prerequisites&lt;/em&gt; section by making sure USB debugging was
enabled on my phone and by running the following command on my laptop:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;sudo apt install android-tools-adb android-tools-fastboot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Since DivestOS is a fork of LineageOS, I preferred to follow the &lt;a href=&#34;https://wiki.lineageos.org/devices/FP2/install&#34;&gt;Install
LineageOS on FP2&lt;/a&gt; steps instead
of the ones over at the
&lt;a href=&#34;https://divestos.org/index.php?page=bootloader#fastboot&#34;&gt;Fastboot&lt;/a&gt; section of
the &lt;em&gt;Bootloader/Installation&lt;/em&gt; page. Why? Because I am a newbie at smartphone
flashing and I wanted clear instructions on how to proceed.&lt;/p&gt;
&lt;p&gt;The installation went smoothly. I then set up the few apps I need, making sure
everything from my VPN to basic email was working as expected. The only problem
I soon discovered is PosteID, which is the app I use to handle SPID, the digital
identity system the Italian government offers to access online administration
services. Luckily, there is a workaround to avoid the PosteID app which relies
on good old SMS for part of the authentication process. It&amp;rsquo;s limited to 8
messages every 3 months, but that is enough for me.&lt;/p&gt;
&lt;p&gt;When I started this de-googling project I knew I was sacrificing comfort in
favour of more control over my digital life. How much the whole operation is
worth only time will tell.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>First steps with Ubuntu 22.04</title>
      <link>https://manueluberti.eu/posts/2022-04-24-ubuntu-jammy/</link>
      <pubDate>Sun, 24 Apr 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-04-24-ubuntu-jammy/</guid>
      <description>&lt;p&gt;As curious as one can be with new toys, I&amp;rsquo;ve been playing safe and lazy for a
while now by upgrading my laptop only to a new LTS when it is available.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;
&amp;ldquo;Upgrade&amp;rdquo; is a misleading word, though, because in my case it means that I start
from afresh by erasing the disk, installing the new LTS, running my Ansible
Playbooks and retrieving my backup data.&lt;/p&gt;
&lt;p&gt;Anyway, Ubuntu 22.04 is my first step into the Wayland world. Beside building
Emacs with PGTK and not noticing much of a difference from my years with X Org,
I discovered soon that vokoscreenNG does not work
&lt;a href=&#34;https://github.com/vkohaupt/vokoscreenNG/issues/51&#34;&gt;here&lt;/a&gt;. Well, this is only
true for the version available via &lt;code&gt;apt&lt;/code&gt;, because the 3.3.0 (beta) on the
official website seems to do what I need.&lt;/p&gt;
&lt;p&gt;The most annoying thing I found out is Firefox provided through &lt;code&gt;snap&lt;/code&gt;. I
avoided &lt;code&gt;snap&lt;/code&gt; on Ubuntu 20.04 by simply disabling everything related to it. I
wasn&amp;rsquo;t ready to leave the reliable &lt;code&gt;apt&lt;/code&gt; aside for my basic package management
needs. I still don&amp;rsquo;t much care about &lt;code&gt;snap&lt;/code&gt; to be honest, but the problem is
that Firefox via &lt;code&gt;snap&lt;/code&gt; does not play well with KeePassXC-Browser. So I moved to
LibreWolf and be done with it.&lt;/p&gt;
&lt;p&gt;Last but not least, the Network Manager. I need to connect to my university VPN
when studying from home, which is what I do most of the time anyway. The
university VPN is necessary to access the ever helpful library system and spend
insane amounts of hours through papers and other niceties. The university
website recommends the installation of &lt;code&gt;network-manager-vpnc-gnome&lt;/code&gt;, which is
what I was using on the previous LTS. On Ubuntu 22.04, though, &lt;code&gt;vpnc&lt;/code&gt; support in
the Network Manager is &lt;a href=&#34;https://askubuntu.com/q/1403896/811902&#34;&gt;broken&lt;/a&gt; so I
have to resort to the command line to &lt;a href=&#34;https://askubuntu.com/a/1404188/811902&#34;&gt;make it
work&lt;/a&gt;. However, there is a GUI solution
that can be achieved with
&lt;a href=&#34;https://askubuntu.com/a/1404609&#34;&gt;nm-connection-editor&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I faced other minor problems with the provided Ruby version and the building of
my websites, but luckily &lt;code&gt;rvm&lt;/code&gt; helped me fix everything. I am confident it will
come a day when installing a new LTS will just be a smooth matter. For now, I am
glad I know what I am doing.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;The home server runs Debian stable, so that&amp;rsquo;s an even safer and lazier
approach.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Restart Emacs</title>
      <link>https://manueluberti.eu/posts/2022-04-18-restart-emacs/</link>
      <pubDate>Mon, 18 Apr 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-04-18-restart-emacs/</guid>
      <description>&lt;p&gt;Tracking Emacs development is always nice, because I get to explore new things
as soon as they are made available. Yesterday Lars Ingebrigtsen introduced a new
command:
&lt;a href=&#34;https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=5be9a9cacfaae1959c4b95c45c146044a181ad20&#34;&gt;restart-emacs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s &lt;code&gt;C-h f restart-emacs RET&lt;/code&gt; to check what we are dealing with:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Kill the current Emacs process and start a new one. This goes through the same
shutdown procedure as ‘save-buffers-kill-emacs&amp;rsquo;, but instead of killing Emacs
and exiting, it re-executes Emacs (using the same command line arguments as the
running Emacs).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It sounds useful, doesn&amp;rsquo;t it? So I quickly devised a new command to let me
decide whether I want to quit Emacs or re-launch it:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-quit-or-restart (&amp;amp;optional restart)
  &amp;quot;Quit Emacs or restart it with RESTART.&amp;quot;
  (interactive &amp;quot;P&amp;quot;)
  (if restart
      (restart-emacs)
    (save-buffers-kill-terminal t)))
(keymap-global-set &amp;quot;C-x C-c&amp;quot; #&#39;mu-quit-or-restart)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This little command should be obvious: &lt;code&gt;C-x C-c&lt;/code&gt; does the usually
killing, whereas &lt;code&gt;C-u C-x C-c&lt;/code&gt; re-executes Emacs. This will come in
handy when I upgrade packages, because I tend to restart Emacs after that and
being able to do it quickly is a great thing indeed.&lt;/p&gt;
&lt;p&gt;Note that &lt;code&gt;keymap-global-set&lt;/code&gt; may not be available if you are not following the
Emacs master branch. Rely on &lt;code&gt;global-set-key&lt;/code&gt; in that case.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The Red Horse</title>
      <link>https://manueluberti.eu/posts/2022-04-13-il-cavallo-rosso/</link>
      <pubDate>Wed, 13 Apr 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-04-13-il-cavallo-rosso/</guid>
      <description>&lt;p&gt;When I wrote about &lt;a href=&#34;https://manueluberti.eu/posts/2021-12-24-books/&#34;&gt;my favourite reads of 2021&lt;/a&gt;,
I also wrote that starting this year I would share my thoughts on the books I
enjoy. My intention was to go longer on specific titles instead of collecting
small paragraphs in a round-up post in December. However, I cannot really say
that I enjoyed the book I am about to discuss. What makes it still worth of some
words is the fascination I found myself in when researching its origins and its
author. A fascination that soon became an obsession because the more I dug the
less I found. I am writing this piece out of an urge to put an end to the affair
between Eugenio Corti&amp;rsquo;s &lt;em&gt;Il cavallo rosso&lt;/em&gt; (&lt;em&gt;The Red Horse&lt;/em&gt;) and me.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Il cavallo rosso&lt;/em&gt; came to my attention last year when a professor at Ca&#39;
Foscari university mentioned it during one of their lessons. Theirs was more
than a title-drop, though. They went as far as calling it one of the best books
of the twentieth century, and this really took me by surprise. I had never heard
of Eugenio Corti and his work before. Why had such a work of art by an Italian
author born not too far from my hometown always eluded me? I wanted a copy of
that book as soon as possible. After about a month with its 1080 pages&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; I
turned the last one feeling confused and offended. I couldn&amp;rsquo;t possibly
understand why &lt;em&gt;Il cavallo rosso&lt;/em&gt; should be praised as a masterpiece and why a
university professor should suggest it as a notable work to their students.
Unless I was missing something, that is to say.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Il cavallo rosso&lt;/em&gt; is divided into three parts. Corti writes about his
experiences during the Second World War on the Russian front in the first two,
and how his life turned out to be after the war in the third one. In doing so he
does not put himself directly into his pages. Instead, he splits ideas and
different moments of his life among a set of closely related characters. Just
like the author, all of them were born and raised in Brianza, an area between
Milan and Lake Como which Corti depicts as an earthly paradise of Catholic
traditions and pious solidarity. I use the word &amp;ldquo;Catholic&amp;rdquo; carefully here,
because &lt;em&gt;Il cavallo rosso&lt;/em&gt; cannot be read without taking into account what Corti
wanted to achieve with it in terms of religious view. I would venture to say
that it&amp;rsquo;s next to impossible to accept this book for what it is without sharing
its author&amp;rsquo;s point of view on Catholicism and faith.&lt;/p&gt;
&lt;p&gt;What is Corti&amp;rsquo;s view on Catholicism, then? Corti distinctively puts himself into
a conservative position when it comes to religious matters, promoting a
reactionary tale of the present which, according to the character of Michele
Tintori, Corti&amp;rsquo;s closest &lt;em&gt;alter ego&lt;/em&gt;, has diverged too much from the pure
sanctity of the Middle Ages. The key to understand Corti&amp;rsquo;s version of reality is
the third section of &lt;em&gt;Il cavallo rosso&lt;/em&gt;, where the writer forgets about the
depths of his male characters by reducing them to little variations of the same
notion. The notion being that Communism and everything that has led to it are
the prime sources for the moral decadence of the world we live in. Tintori
condemns Marx multiple times, reassuring the reader that he studied his books
when he was in a concentration camp, while at the same time conveniently
forgetting about the differences between Marxism, Soviet Communism, and Chinese
Communism. The same character later justifies the Inquisition, a noble cause
that only Christians have the right to judge, and defends fascist censorship
because it spared Italians the trouble of reading bad literature. At a certain
point I lost count of the times Partisans and the Italian resistance movement
are ridiculed, but the blind compassion for German soldiers and the hanged body
of Mussolini did not escape me either. The more we proceed through the third
part of &lt;em&gt;Il cavallo rosso&lt;/em&gt;, the more Corti insists on the obstacles that an
Italian government scared of Communist and Socialist propaganda placed on his
younger self&amp;rsquo;s way to stardom. Again, it does not matter how Communism and
Socialism differ from each other. What matters is that anything other than
Catholic faith is inherently wrong and opposed to Tintori/Corti and his success.&lt;/p&gt;
&lt;p&gt;I have to admit that Tintori&amp;rsquo;s tirades, angry and emotionally charged, can
easily appeal to people who identify with his opinions. In this regard, &lt;em&gt;Il
cavallo rosso&lt;/em&gt; is basically a pamphlet of Catholic stances, a literary exercise
in dogmatism for the sake of a cause the moral grounds of which cannot be argued
with. The real problem with &lt;em&gt;Il cavallo rosso&lt;/em&gt; is that only one on Corti&amp;rsquo;s side,
and who basically thinks like him, can in all honesty consider this book a great
artistic achievement.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; As much as Corti&amp;rsquo;s experiences on the Russian front
are telling of the horrors and the misery of the soldiers and the prisoners,
shining a light on events which may not be always remembered as they actually
deserve, it&amp;rsquo;s hard to applaud the third section of this book for the writing
style or the content. For instance, Corti is incapable of portraying female
characters. He measures them in terms of beauty and devotion to God and to their
male partners. More so than with men, women have no real meaning here except
serving as reminders of what a good Catholic mother and wife is supposed to be.
In a couple of occasions Corti links one of this women, Alma, to Alessandro
Manzoni&amp;rsquo;s Lucia Mondella. Is he trying to create a bridge between Manzoni and
himself? If so, Corti fails miserably at it. Lucia is rich with inner turmoil
and fear. In &lt;em&gt;I promessi sposi&lt;/em&gt;, we witness her becoming a woman every time her
unshakeable faith is put to test. Her chastity is not her pedigree, it&amp;rsquo;s not
something to show off. It&amp;rsquo;s one and all with her intimacy, a private matter
altogether. References to Manzoni are not enough to save a character as poorly
developed as Alma, whose inexpressive look, a trait so peculiar the reader has
to be constantly reminded of, is the only thing one can eventually remember her
by.&lt;/p&gt;
&lt;p&gt;Interestingly enough, Alessandro Manzoni is one of the writers Eugenio Corti is
compared to in the reviews collected on the last pages of the edition of &lt;em&gt;Il
cavallo rosso&lt;/em&gt; in my possession. This is a baffling comparison, because even if
it&amp;rsquo;s true that they both write from a profoundly religious perspective, Manzoni
does not shy away from the wrongdoings of the Church, revealing the shallowness
of don Abbondio over and over again. The only way for Corti to criticise a
priest is by attacking his progressive views. But even if Manzoni did stand
alongside the Church — think of Cardinal Federigo Borromeo — just take the
arrival of Renzo Tramaglino in a Milan devastated by famine and weigh it against
Corti&amp;rsquo;s description of life in a concentration camp. Manzoni judges but does not
forget the scene in front of him, whereas Corti, in order to state his position
on Communism, does it at every turn of the page. He spends an incredible number
of words in detailing war scenes, which is probably the one thing he does really
well, but prisoners are just good or bad, much like women are just beautiful or
ugly for him. In Manzoni we sense the mob, we see poverty, and we feel anger
because what Renzo sees is what Manzoni wants us to see. We know what Manzoni
thinks because he lets the readers grasp it without force-feeding them. With
Corti, however, we only wait for the next iteration of his commentary against
Communism. This can obviously be a specific choice of his. Corti may be more
concerned about the cause rather than the effects of the horrors around him, but
then critics who make use of the comparison with Manzoni are either doing so
mischievously or are ineptly trying to raise Corti&amp;rsquo;s status to that of a classic
without securing solid grounds for their statements.&lt;/p&gt;
&lt;p&gt;While reading and researching I kept asking myself: what are the praises for
Corti and &lt;em&gt;Il cavallo rosso&lt;/em&gt; based upon? Why is it that these praises seem to
focus only on the poignancy of the historical content and blatantly avoid its
more controversial aspects? Try it for yourself. Try to go onto your favourite
search engine and look up &lt;em&gt;&amp;ldquo;Eugenio Corti&amp;rdquo;&lt;/em&gt; or &lt;em&gt;&amp;ldquo;Il cavallo rosso&amp;rdquo;&lt;/em&gt;. Unless you
first hit some comments on Amazon which are openly against this book, you are
going to find Catholic zealots rambling about the transformative power of these
pages or the methodical removal of this literary talent from the history of
Italian literature. The only piece of criticism you may find is &lt;a href=&#34;https://www.vorrei.org/culture/3683-il-nobel-al-provincialismo.html&#34;&gt;Il nobel al
provincialismo&lt;/a&gt;,
which refers to a more interesting article on the now defunct Infonodo.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; You
will also note that most of the positive reviews are vague about the writing
style and prefer to drop names such as Alessandro Manzoni, Lev Tolstoj, Vasilij
Grossman and J. R. R. Tolkien to give you a general idea of the book without
actually telling anything useful. Why should I think of Tolkien when reading
Corti? The English writer hides Christianity away in the &lt;em&gt;The Lord of the Rings&lt;/em&gt;
and there is no single meaning consistently put forward. It&amp;rsquo;s up to the reader
to decide what to take away from it. Furthermore, none of these writings on
Corti questions the facts or his rather few ideas, and this only means that
there is a common ground from which a specific worldview is thrown at the
reader&amp;rsquo;s face. These are not studies on &lt;em&gt;Il cavallo rosso.&lt;/em&gt; It&amp;rsquo;s not even proper
criticism. At most it qualifies as advertisement.&lt;/p&gt;
&lt;p&gt;In order to counter my theory one could point to the comments on Corti that have
been published on paper. For example, on the pages of &lt;em&gt;Il Timone&lt;/em&gt;, a
Catholic-oriented Italian magazine, one can find various entries about him. Most
of them come from Paola Scaglione, who also seems to be the only person to have
published books about Corti in Italy.&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt; What I find even more fascinating is
that not only Corti wrote on this magazine, but the professor who led me to &lt;em&gt;Il
cavallo rosso&lt;/em&gt; published something here as well. Which brings me back to their
advice. I am struggling to understand why someone who has taught philosophy for
a long time felt it necessary to recommend so narrow-minded an author. I want to
believe that there is more than a moral cause behind their words, because I want
to believe that when one invests their life in philosophy one is always open to
different contexts and ideas. Differences matter. Eugenio Corti, on the other
hand, is all about removing them in favour of just one point of view: his.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;resources&#34;&gt;Resources&lt;/h3&gt;
&lt;p&gt;The following are the most relevant resources in Italian I consulted when
researching for this piece:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.avvenire.it/agora/pagine/il-futuro-di-uno-scrittore-di-razza&#34;&gt;Il futuro di uno scrittore di razza&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.cattoliciromani.com/threads/58111-Padre-Cornelio-Fabro-CSS?s=78f5b3cf0fc0c7553a7b499e7fc8a92d&amp;amp;p=1712902&amp;amp;viewfull=1#post1712902&#34;&gt;Forum dei cattolici romani su Cornelio Fabro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.radioradicale.it/scheda/500110/leredita-lasciataci-dai-padri-eugenio-corti-un-maestro-per-i-nostri-giorni&#34;&gt;L&amp;rsquo;eredità di Corti - Radio Radicale&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.iltimone.org&#34;&gt;Il Timone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paologulisano.com/eugenio-corti-il-cavallo-rosso-ha-formato-la-mia-generazione/#more-1004&#34;&gt;Commento di Paolo Gulisano&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.paolosmeraldi.com/2018/02/ricordo-di-eugenio-corti.html&#34;&gt;Commento e intervista di Paolo Smeraldi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.ilsussidiario.net/news/cultura/2014/2/8/eugenio-corti-chieffo-padre-amico-e-maestro/464549/&#34;&gt;Commento di Benedetto Chieffo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.lafeltrinelli.it/cavallo-rosso-libro-eugenio-corti/e/9788881559138&#34;&gt;Recensioni su Feltrinelli&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.vorrei.org/culture/3683-il-nobel-al-provincialismo.html&#34;&gt;Il nobel al
provincialismo&lt;/a&gt;
and the related &amp;ldquo;Eugenio Corti: come la destra cattolica ha costruito
artificialmente la fama letteraria dello scrittore promuovendolo alla
candidatura per il Nobel&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I have &lt;a href=&#34;https://www.edizioniares.it/it/prodotti/narrativa/il-cavallo-rosso-edizione-centenario&#34;&gt;this edition&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;A heartfelt thank goes to professor Valentina Ciciliot for helping me put
this thought into better words.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;It&amp;rsquo;s still available through the Wayback Machine, although I made a copy
(including all the comments at the bottom) to not let it disappear any time
soon.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:4&#34;&gt;
&lt;p&gt;See &lt;em&gt;Eugenio Corti: come la destra cattolica ha costruito artificialmente…&lt;/em&gt;
in &lt;em&gt;Resources&lt;/em&gt;.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Welcome SourceHut</title>
      <link>https://manueluberti.eu/posts/2022-04-08-sourcehut/</link>
      <pubDate>Fri, 08 Apr 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-04-08-sourcehut/</guid>
      <description>&lt;p&gt;I will not go into many details on me leaving GitHub behind, because
&lt;a href=&#34;https://protesilaos.com/codelog/2022-04-07-all-emacs-projects-sourcehut/&#34;&gt;Protesilaos&lt;/a&gt;
has already done it and I share his appreciation for SourceHut. So, without
further ado, here we go:
&lt;a href=&#34;https://sr.ht/~manuel-uberti/&#34;&gt;https://sr.ht/~manuel-uberti/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The migration went fine. I only had a small issue with my website, mainly a
&lt;code&gt;www&lt;/code&gt; to non-&lt;code&gt;www&lt;/code&gt; HTTP redirect not behaving as intended, but I am
investigating. For now, &lt;a href=&#34;https://manueluberti.eu&#34;&gt;manueluberti.eu&lt;/a&gt; is the new
kid in town. I do not want to spend too much time over this problem, though. If
a solution does not come up in the next few days, consider the &lt;code&gt;www&lt;/code&gt; gone once
and for all.&lt;/p&gt;
&lt;p&gt;Needless to say, since I still want to report bugs and file pull requests on
projects hosted on GitHub I am keeping my account over there.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Eglot and Eclipse JDT for Java</title>
      <link>https://manueluberti.eu/posts/2022-03-16-eglot-jdtls/</link>
      <pubDate>Wed, 16 Mar 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-03-16-eglot-jdtls/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2022-03-12-eglot-digestif/&#34;&gt;Last time&lt;/a&gt; I mentioned that I helped
making it possible for Eglot to use &lt;code&gt;jdtls&lt;/code&gt;, the Python helper script packaged
with Eclipse JDT to start the language server with sane defaults. The only
problem I had during my work on this is that &lt;code&gt;jdtls&lt;/code&gt; requires Python 3.9 or
later, why my Ubuntu 20.04 machine comes with the 3.8.10 version. Since changing
the default Python on Ubuntu can bring pain,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; I decided to have Emacs work
with Python 3.9 only for my Java projects.&lt;/p&gt;
&lt;p&gt;First, I installed the required Python packages:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;$ sudo apt install python3.9 python3-9-venv
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, in my Java project root directory I ran:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;$ python3.9 -m venv env
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Finally, I had to tell Emacs how to interact with this new Python environment.
In the root directory of my project I added a &lt;code&gt;.dir-locals.el&lt;/code&gt; file with the
following content:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;((nil . ((buffer-env-command . &amp;quot;&amp;gt;&amp;amp;2 . \&amp;quot;$0\&amp;quot; &amp;amp;&amp;amp; env -0&amp;quot;)
         (buffer-env-script-name . &amp;quot;env/bin/activate&amp;quot;)
         (python-shell-virtualenv-root . &amp;quot;./env&amp;quot;))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I am using Augusto Stoffel&amp;rsquo;s &lt;a href=&#34;https://github.com/astoff/buffer-env&#34;&gt;buffer-env&lt;/a&gt;
to pick up the &lt;code&gt;activate&lt;/code&gt; script and run it automatically for me. Checking the
Python version with &lt;code&gt;M-! /usr/bin/env python3 -V RET&lt;/code&gt; told me I
was doing the right thing. Keep in mind that you don&amp;rsquo;t have to set
&lt;code&gt;buffer-env-command&lt;/code&gt; like I do. Here I am setting it back to its default value
because I changed it in my &lt;code&gt;init.el&lt;/code&gt; to specifically deal with &lt;code&gt;direnv&lt;/code&gt;. Anyway,
with everything in place Eglot correctly interfaced with &lt;code&gt;jdtls&lt;/code&gt; for a smooth
Java developing experience.&lt;/p&gt;
&lt;p&gt;A note to myself: I will probably need to revisit this setup as soon as I move
to the new Ubuntu LTS which, I guess, will provide a more recent Python by
default.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Trust me on this.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Eglot and digestif for LaTeX</title>
      <link>https://manueluberti.eu/posts/2022-03-12-eglot-digestif/</link>
      <pubDate>Sat, 12 Mar 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-03-12-eglot-digestif/</guid>
      <description>&lt;p&gt;I don&amp;rsquo;t think I have enough words to express my admiration for
&lt;a href=&#34;https://github.com/joaotavora/eglot&#34;&gt;Eglot&lt;/a&gt;. The more I use it, the more I
appreciate its minimalist approach that just does the right thing and then gets
out of my way. With the help of its maintainer João Távora and the friendly
Felicián Németh, I have done &lt;a href=&#34;https://github.com/joaotavora/eglot/discussions/868&#34;&gt;my
part&lt;/a&gt; to help keeping it up
to speed with Eclipse JDT latest developments. I had to give back something,
didn&amp;rsquo;t I?&lt;/p&gt;
&lt;p&gt;Why stop at Java, though? Since I have come to enjoy the niceties of LSP, I
decided to push it a little further and step outside my comfortable software
developer zone to check how Eglot can improve on my experience with LaTeX.
Albeit a bit early in my student&amp;rsquo;s career, I have followed a kind professor&amp;rsquo;s
prompt to pursue some ideas of mine and have started working on my thesis. Mind
you, I have been a happy &lt;a href=&#34;https://www.gnu.org/software/auctex/&#34;&gt;AUCTeX&lt;/a&gt; user for
quite a long time and I do not intend to leave it behind. How can Eglot fit in,
then?&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;The &amp;ldquo;don&amp;rsquo;t be silly, trust Emacs!&amp;rdquo; answer comes from Augusto Stoffel in the form
of &lt;a href=&#34;https://github.com/astoff/digestif&#34;&gt;digestif&lt;/a&gt;. If you are familiar with a
language server, you know what &lt;code&gt;digestif&lt;/code&gt; does. I like to think of it as AUCTeX
missing piece, because it offers completion, documentation, and navigation
commands that really make a difference when writing a non-trivial LaTeX
document. Furthermore, Augusto has recently added &lt;a href=&#34;https://github.com/astoff/digestif/issues/42#issuecomment-1065396699&#34;&gt;specific
integration&lt;/a&gt;
for BibLaTeX, which turns inserting citation and footnotes into a nice and easy
task and it also means that I can safely disable RefTeX now.&lt;/p&gt;
&lt;p&gt;Installing &lt;code&gt;digestif&lt;/code&gt; is just as painless as well: put the &lt;a href=&#34;https://raw.githubusercontent.com/astoff/digestif/master/scripts/digestif&#34;&gt;self-installing
script&lt;/a&gt;
in your &lt;code&gt;$PATH&lt;/code&gt;, make it executable, and run it once. Or you can use &lt;code&gt;luarocks install digestif&lt;/code&gt; if you have &lt;code&gt;luarocks&lt;/code&gt; on your machine. Back in Emacs, Eglot
will take care of everything else. Try &lt;code&gt;M-x&lt;/code&gt; &lt;code&gt;eglot&lt;/code&gt; in your LaTeX
buffers if you don&amp;rsquo;t believe me.&lt;/p&gt;
&lt;p&gt;When I first heard of LSP I wasn&amp;rsquo;t sure of what to do with it. Well, to a
certain degree I still am. For instance, I am not using
&lt;a href=&#34;https://clojure-lsp.io/&#34;&gt;clojure-lsp&lt;/a&gt; even though I spend eight hours a day
with Clojure. However, when it comes to LaTeX I don&amp;rsquo;t think I am going to
abandon Eglot and &lt;code&gt;digestif&lt;/code&gt; any time soon. Whether or not you use AUCTeX, with
&lt;code&gt;digestif&lt;/code&gt; the experience is simply more comfortable and, thus, better.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Most Emacs users would suggest Org instead of plain LaTeX here, but I
just enjoy writing LaTeX in the old fashioned way.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Ignore project buffers</title>
      <link>https://manueluberti.eu/posts/2022-02-27-project-ignore-buffers/</link>
      <pubDate>Sun, 27 Feb 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-02-27-project-ignore-buffers/</guid>
      <description>&lt;p&gt;As you may already know, I take buffer switching
&lt;a href=&#34;https://manueluberti.eu/posts/2021-08-14-switch-buffer/&#34;&gt;seriously&lt;/a&gt;. Jokes aside,
one of the key bindings I use the most is &lt;code&gt;C-x p b&lt;/code&gt;, which is bound to
&lt;code&gt;project-switch-to-buffer&lt;/code&gt; by default. As the above linked article explains, it
takes little time to find myself with many open buffers, some of which may not
be immediately relevant to the context of my actual work.&lt;/p&gt;
&lt;p&gt;Instead of tweaking &lt;code&gt;switch-to-buffer&lt;/code&gt;, though, I decided to make it possible
for &lt;code&gt;project-switch-to-buffer&lt;/code&gt; to act according to certain conditions. With the
help of &lt;a href=&#34;https://github.com/dgutov&#34;&gt;Dmitry Gutov&lt;/a&gt;, I have recently added
&lt;code&gt;project-ignore-buffer-conditions&lt;/code&gt; on Emacs master. Now, for instance, I can do
the following:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defvar-local mu-ignored-buffers
    &#39;(&amp;quot;\\` &amp;quot; &amp;quot;^\\*Async&amp;quot; &amp;quot;^\\*Completions&amp;quot; &amp;quot;^\\*Flymake&amp;quot; &amp;quot;^\\*Help&amp;quot;
      &amp;quot;^\\*Messages&amp;quot; &amp;quot;^\\*eldoc&amp;quot; &amp;quot;^\\*envrc&amp;quot; &amp;quot;\\*tramp&amp;quot; &amp;quot;^\\*xref&amp;quot;)
  &amp;quot;A list of predicates for buffers to ignore.&amp;quot;)
  
(defun mu-project-ignore-buffer-p (buffer)
  &amp;quot;Check if BUFFER is a member of `mu-ignored-buffers&#39;.&amp;quot;
  (seq-contains-p mu-ignored-buffers (buffer-name buffer) #&#39;string-match-p)) 
  
(setq-default project-ignore-buffer-conditions &#39;(mu-project-ignore-buffer-p
                                                 (derived-mode . comint-mode))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that I changed &lt;code&gt;project--read-project-buffer&lt;/code&gt; to take the new &lt;code&gt;defcustom&lt;/code&gt;
into account, so &lt;code&gt;project-display-buffer&lt;/code&gt; and
&lt;code&gt;project-display-buffer-other-frame&lt;/code&gt; are also affected.&lt;/p&gt;
&lt;p&gt;Futhermore, to understand what kind of conditions you can use, check
&lt;code&gt;project-kill-buffer-conditions&lt;/code&gt; which is what I based
&lt;code&gt;project-ignore-buffer-conditions&lt;/code&gt; on following Dmitry&amp;rsquo;s tip.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Handling wildcards in paths</title>
      <link>https://manueluberti.eu/posts/2022-01-20-wildcards/</link>
      <pubDate>Thu, 20 Jan 2022 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2022-01-20-wildcards/</guid>
      <description>&lt;p&gt;My recent experiments with
&lt;a href=&#34;https://manueluberti.eu/posts/2021-11-21-eglot-and-vc/&#34;&gt;Eglot&lt;/a&gt; and Java led me to
figure out how to speed up the connection to Eclipse JDT Language Server.
Basically I wanted a simpler version of &lt;code&gt;eglot--eclipse-jdt-contact&lt;/code&gt; to avoid
any prompt and just do the right thing for me.&lt;/p&gt;
&lt;p&gt;Looking at Eglot&amp;rsquo;s bug tracker, there is an issue with some tips:
&lt;a href=&#34;https://github.com/joaotavora/eglot/issues/424#issuecomment-598415067&#34;&gt;#424&lt;/a&gt;. I
followed the instructions and added the relevant code to my &lt;code&gt;init.el&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(with-eval-after-load &#39;eglot
  (defconst mu-jdt-launcher
    (concat &amp;quot;/home/manuel/jdt/plugins&amp;quot;
            &amp;quot;/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar&amp;quot;))

  (defun mu-eglot-jdt-contact (_interactive)
    &amp;quot;See `eglot--eclipse-jdt-contact&#39;.&amp;quot;
    (let ((cp (or (getenv &amp;quot;CLASSPATH&amp;quot;) path-separator)))
      (setenv &amp;quot;CLASSPATH&amp;quot; (concat cp path-separator mu-jdt-launcher))
      (unwind-protect (eglot--eclipse-jdt-contact nil)
        (setenv &amp;quot;CLASSPATH&amp;quot; cp))))
  (setcdr (assq &#39;java-mode eglot-server-programs) #&#39;mu-eglot-jdt-contact))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;However, I do not like the hard-coded path to the JDT jar file, mainly because I
have to manually update it every time I install a new version of the language
server. Fortunately, Emacs has what I need right under the hood:
&lt;code&gt;file-expand-wildcards&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defconst mu-jdt-launcher
  (let ((path &amp;quot;~/jdt/plugins/org.eclipse.equinox.launcher_*&amp;quot;))
    (car (file-expand-wildcards path &#39;full))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you check the documentation of &lt;code&gt;file-expand-wildcards&lt;/code&gt; you will notice that
it returns a list of file names matching the given pattern. In this case, there
is only one element in that list, so &lt;code&gt;car&lt;/code&gt; can safely grab it. Again, the
documentation will also explain the meaning of that &lt;code&gt;&#39;full&lt;/code&gt; argument, but I am
sure it is pretty clear already.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>My 2021 in films</title>
      <link>https://manueluberti.eu/posts/2021-12-30-my-2021/</link>
      <pubDate>Thu, 30 Dec 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-12-30-my-2021/</guid>
      <description>&lt;p&gt;2021 has been a weird year. On the one hand, the pandemic still wants to be with
us and I had to say goodbye to a dear relative. On the other hand, cinema has
satisfied me unexpectedly in different occasions over these last twelve months,
even though I haven&amp;rsquo;t spent too much time with it. Something a dear friend
usually does. Let&amp;rsquo;s recapitulate.&lt;/p&gt;
&lt;p&gt;After a couple of months of catching up with films I missed in 2020, &lt;em&gt;Zack
Snyder&amp;rsquo;s Justice League&lt;/em&gt; entered the scene bringing forth his creator&amp;rsquo;s vision
like it was originally supposed to be. Albeit an epic four-hour run, this is a
film that leaves so much in the air that everyone who has enjoyed it as much as
I did is obviously still wishing for more. However, it seems like we are not
going to get more material in this regard. Months later Snyder would come back
with &lt;em&gt;Army of the Dead&lt;/em&gt; which confirmed that whatever he has to say about
zombies is not what I want to hear from him.&lt;/p&gt;
&lt;p&gt;Another director that graced me with two of his works this year is Zhang Yimou.
The political drama &lt;em&gt;Cliff Walkers&lt;/em&gt; is a house of mirrors which probably
indulges in standard propaganda too comfortably, but &lt;em&gt;One Second&lt;/em&gt; goes way back
to Chaplin to break the viewer&amp;rsquo;s heart with some of the simplest and yet more
profound emotions cinema seems to have forgotten about. Predictable just as it
is immensely enjoyable.&lt;/p&gt;
&lt;p&gt;Speaking of enjoyment, &lt;em&gt;Godzilla vs. Kong&lt;/em&gt; and &lt;em&gt;No Time to Die&lt;/em&gt; easily
accomplish what they are looking for. The first takes the good of &lt;em&gt;Kong: Skull
Island&lt;/em&gt; but extends its intuitions to a better understanding of the images and
the icons at its disposal. The latter closes Daniel Craig&amp;rsquo;s affair with 007 by
using all that his body can offer to the frame. It wants us to remember Craig&amp;rsquo;s
grandeur by pushing on the tragedy pedal too overtly, but one cannot deny the
sheer improvement these Bond films have brought to the overall franchise.&lt;/p&gt;
&lt;p&gt;I was moderately happy with Guy Ritchie&amp;rsquo;s &lt;em&gt;Wrath of Man&lt;/em&gt; and Steven Soderbergh&amp;rsquo;s
&lt;em&gt;No Sudden Move&lt;/em&gt;, but the fact that I haven&amp;rsquo;t felt the urge to revisit them
tells me that not everything clicked with these films. Almost the same can be
said for &lt;em&gt;Halloween Kills&lt;/em&gt;, the twelfth installment of the blood-driven saga of
Michael Myers, and for &lt;em&gt;Coming Home in the Dark&lt;/em&gt;, which frightens with its
darkness until it becomes irrelevantly tiresome.&lt;/p&gt;
&lt;p&gt;I had much more pleasure with two little films that instantly became my beloved
guilty pleasures of 2021. &lt;em&gt;The Woman in the Window&lt;/em&gt; and &lt;em&gt;The Voyeurs&lt;/em&gt; invite us
to join them in the well-known and irresistible art of curiosity. Both explore
breaking privacy barriers and fulfilling the perverted desire of knowing more
about others than they know about us in order to exert more control over them.
&lt;em&gt;The Voyeurs&lt;/em&gt; is slightly better because there is lovable honesty in its
sleaziness, even though it could have pushed for more in this regard.&lt;/p&gt;
&lt;p&gt;Some old friends came back this year with their new efforts. &lt;em&gt;Raging Fire&lt;/em&gt; is
the way Benny Chan chose to leave us forever. The action is great and the old
Hong Kong spirit is alive, and I have certainly liked it more than some of the
recent works from Dante Lam. Still, I was a bit exhausted at the end, but maybe
that&amp;rsquo;s what Benny Chan wanted me to feel. Something very close to how I felt
with Abel Ferrara&amp;rsquo;s &lt;em&gt;Zeros and Ones&lt;/em&gt;. He is a true rebel in the cinema world,
but I need more time to wrap my head around his last three films. And then there
is M. Night Shyamalan. &lt;em&gt;Old&lt;/em&gt; finds him on the same spot he has always been,
using the same tricks for kind of the same stories, but one way or another he
keeps me there in front of the screen with a smile on my face.&lt;/p&gt;
&lt;p&gt;Unfortunately, these good pals had to deal with Paul Verhoeven&amp;rsquo;s &lt;em&gt;Benedetta&lt;/em&gt;
which simply blasted them all away and forced its way to my heart. Once again,
Verhoeven is not scared of images and the power that a single image can have.
Once again, he places a woman as the centrepiece of his plan. And once again, he
demands our total attention, our alert cooperation, because he is still refusing
to dumb his cinema down to the industry standards. Considered alongside &lt;em&gt;Basic
Instinct&lt;/em&gt; and &lt;em&gt;Black Book&lt;/em&gt;, and more so than &lt;em&gt;Elle&lt;/em&gt;, &lt;em&gt;Benedetta&lt;/em&gt; can be seen as
part of an ideal trilogy where women state, defend, and reinforce their position
in spite of men.&lt;/p&gt;
&lt;p&gt;The struggles of Benedetta reminded me somehow of the struggles &lt;em&gt;Britney vs
Spears&lt;/em&gt; portrays. This documentary is more of a call for help than a cry for
scandal, hence something genuine, at least as far as a pop star&amp;rsquo;s extra-ordinary
life can be. Help is also what the characters of Bonifacio Angius&amp;rsquo; &lt;em&gt;I Giganti&lt;/em&gt;
scream for, which makes all the more sense when one considers the present we are
living in right now. Angius tells us hope is terribly out of reach. Can we find
a way to move beyond a simple nod that shows tacit agreement? Rarely in recent
years a film has moved something inside me for days with the same frightening
aplomb of &lt;em&gt;I Giganti&lt;/em&gt;. Its sincerity fits like a glove, but underneath that
glove one never knows whether a punch or a caress is waiting for them.&lt;/p&gt;
&lt;p&gt;Mentioning pop stars makes me wonder: is there anything Lady Gaga cannot do? In
a farcical fanfare beautifully unable to contain itself like &lt;em&gt;House of Gucci&lt;/em&gt;,
Gaga manages to be the centre of a full-blown overacted extravaganza where
talents such as Al Pacino and Jeremy Irons trade outlandish duets with younger
stars like Adam Driver and Jared Leto, while she spins the wheel of their
bravura in all seriousness. Ridley Scott captures our present of rich masks and
disposable personas by trapping a gossip-generator story in a luxurious cage of
nothingness. &lt;em&gt;House of Gucci&lt;/em&gt; is what a nice satire like &lt;em&gt;Don&amp;rsquo;t Look Up&lt;/em&gt; can
only achieve in few great moments.&lt;/p&gt;
&lt;p&gt;Finally, right on the last days of this 2021, Steven Spielberg decided to
surprise me one more time. Fifty years after &lt;em&gt;Duel&lt;/em&gt;, having mastered the
cinematic form in a career as full of marvellous moments as it is occasionally
spoiled by missed opportunities, Spielberg shoots for the moon with a project so
out of time that it was bound to be the box office bomb it is turning out to
become. However, the magic of &lt;em&gt;West Side Story&lt;/em&gt;&amp;rsquo;s tragic love story, the
brilliance of its choreography and its montage, its irresistible music and
colours, all make for an earnest request to watch cinema in order to rediscover
pleasures that we don&amp;rsquo;t even know whether they exist or not any more. Spielberg
will always be the smiling kid in the middle of a gathering of tired and cynic
adults, reminding everyone that the dream must be kept alive.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The best books of 2021</title>
      <link>https://manueluberti.eu/posts/2021-12-24-books/</link>
      <pubDate>Fri, 24 Dec 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-12-24-books/</guid>
      <description>&lt;p&gt;To the brave reader who has been following me somehow regularly it&amp;rsquo;s obvious
that Emacs is the main topic of discussion here on these pages. Being it a
personal website, though, it makes sense to expand on other topics as well. And
since my cinephile side is pretty much covered by &lt;em&gt;Films in Words&lt;/em&gt;,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; what is left
to write about? Books, of course. Starting from next year I will share here a
few words on the books that I enjoy the most. For today, however, a classic
best-of list is all that I am going to offer.&lt;/p&gt;
&lt;p&gt;I have selected only the most relevant books from this year, setting aside
&lt;em&gt;almost&lt;/em&gt; everything related to my university exams. Without further ado, from
bottom to top:&lt;/p&gt;
&lt;h4 id=&#34;12-spinoza-lorenzo-vinciguerra&#34;&gt;12) &lt;em&gt;Spinoza&lt;/em&gt; (Lorenzo Vinciguerra)&lt;/h4&gt;
&lt;p&gt;Carocci has been covering many great philosophers with these handy companions.
Beside Vinciguerra&amp;rsquo;s, I have been through the ones about Aristotle, Plotinus,
and Decartes and they all proved to be more than mere introductions. They are
deep, clear, and concise explorations that help the reader move swiftly among
outstanding thinkers. I am singling out Vinciguerra&amp;rsquo;s book because Spinoza is
particularly dear to me, but any serious philosophy enthusiast should check
Carocci catalogue.&lt;/p&gt;
&lt;h4 id=&#34;11-the-broom-of-the-system-david-foster-wallace&#34;&gt;11) &lt;em&gt;The Broom of the System&lt;/em&gt; (David Foster Wallace)&lt;/h4&gt;
&lt;p&gt;Not my favourite work from David Foster Wallace, but he was still able to absorb
me and enthrall me. Even though most of the time I was looking for clues to
understand how he moved from here to &lt;em&gt;Infinite Jest&lt;/em&gt;, he was already a superb
writer and an enigmatic story-teller when he published this.&lt;/p&gt;
&lt;h4 id=&#34;10-michael-mann-pier-maria-bocchi&#34;&gt;10) &lt;em&gt;Michael Mann&lt;/em&gt; (Pier Maria Bocchi)&lt;/h4&gt;
&lt;p&gt;My favourite Italian film critic on my favourite film director. There is nothing
much to add. This is a work of love, it&amp;rsquo;s plain to see, but it is not only for
Mann&amp;rsquo;s devotees. Bocchi has dedicated more than twenty years to study the
director&amp;rsquo;s career and the amount of insights in these pages is outrageous. I
won&amp;rsquo;t say this is &lt;em&gt;the&lt;/em&gt; book about Michael Mann, but yes, it definitely is.&lt;/p&gt;
&lt;h4 id=&#34;9-surfacing-margaret-atwood&#34;&gt;9) &lt;em&gt;Surfacing&lt;/em&gt; (Margaret Atwood)&lt;/h4&gt;
&lt;p&gt;A little book about the imaginative power of memory and how hard it is to
control it. Atwood does not tell. She evokes impressions, suggests emotions,
points at infinite directions. She traps the reader gently and then shocks them
at the right time.&lt;/p&gt;
&lt;h4 id=&#34;8-philosopher-of-the-heart-clare-carlisle&#34;&gt;8) &lt;em&gt;Philosopher of the Heart&lt;/em&gt; (Clare Carlisle)&lt;/h4&gt;
&lt;p&gt;One the most introvert philosophers of all time, Kierkegaard put everything he
thought and was in his writings, so why should we read a book about him written
by someone else? Carlisle answers this rather silly question of mine with a
marvellous work that places the reader within the Danish philosopher&amp;rsquo;s mind and
heart. Eventually, she poses an interesting question to any Kierkegaard&amp;rsquo;s
apprentice out there: what if there is something about him that he was not able
to process with his philosophy?&lt;/p&gt;
&lt;h4 id=&#34;7-freedom-jonathan-franzen&#34;&gt;7) &lt;em&gt;Freedom&lt;/em&gt; (Jonathan Franzen)&lt;/h4&gt;
&lt;p&gt;Franzen always seems capable of capturing something about my life when he
writes, as he does all the time, of people that could not be more different from
me. &lt;em&gt;Freedom&lt;/em&gt; tops the already great &lt;em&gt;The Corrections&lt;/em&gt; not only because of this,
but also because whenever I think of life one of his characters comes to mind,
and more often than not they have such familiar faces.&lt;/p&gt;
&lt;h4 id=&#34;6-attesa-di-dio-simone-weil&#34;&gt;6) &lt;em&gt;Attesa di Dio&lt;/em&gt; (Simone Weil)&lt;/h4&gt;
&lt;p&gt;Considering my idea of Christianity, when a book forces me to think about the
&lt;em&gt;Pater Noster&lt;/em&gt; for months then it has to be special. Weil&amp;rsquo;s explorations of
every word of the Lord&amp;rsquo;s prayer is the only thing I could think of when, a few
days ago, I happened to be in church for a funeral. Faith remains a complicated
issue for me, but Weil has forever changed the way I look at prayers.&lt;/p&gt;
&lt;h4 id=&#34;5-diari-1941-1943-etty-hillesum&#34;&gt;5) &lt;em&gt;Diari 1941-1943&lt;/em&gt; (Etty Hillesum)&lt;/h4&gt;
&lt;p&gt;As a member of a book club, at one of our meetings I had a hard time explaining
why it is next to impossible to write about what it means to live through hate
and die because of it after Hillesum&amp;rsquo;s pages. Which is the main reason why I
didn&amp;rsquo;t enjoy the book we were discussing, anyway. I wish Etty could have been
there because she would have found the right words. She was truly one of a kind.&lt;/p&gt;
&lt;h4 id=&#34;4-the-human-stain-philip-roth&#34;&gt;4) &lt;em&gt;The Human Stain&lt;/em&gt; (Philip Roth)&lt;/h4&gt;
&lt;p&gt;From now on when someone asks me about race I will point them to this book,
simply because I&amp;rsquo;ve never seen the hypocrisy of so many opinions about race and
racism framed so intelligently. Roth&amp;rsquo;s sharp writing takes no prisoners. As soon
as I was sure to have him finally pinned down, he punched me hard and woke me up
once and for all.&lt;/p&gt;
&lt;h4 id=&#34;3-moby-dick-herman-melville&#34;&gt;3) &lt;em&gt;Moby-Dick&lt;/em&gt; (Herman Melville)&lt;/h4&gt;
&lt;p&gt;For reasons beyond my understanding Melville&amp;rsquo;s masterpiece has entered my life
many times but only this year I was able to pick it up and go through all of it.
In awe, of course, because there is no other way to witness the literary genius
of Melville at work. If you are not deeply in love with this book already, I
could not recommend the Norton Critical Edition enough.&lt;/p&gt;
&lt;h4 id=&#34;2-i-promessi-sposi-alessandro-manzoni&#34;&gt;2) &lt;em&gt;I Promessi Sposi&lt;/em&gt; (Alessandro Manzoni)&lt;/h4&gt;
&lt;p&gt;Possibly the most hated book in Italian high schools, I was lucky back then
because I had a great teacher that was able to convey her passion for Manzoni to
a kid who was not ready for the world just yet. More than twenty years later I
decided to see whether &lt;em&gt;I Promessi Sposi&lt;/em&gt; had still something to offer to me.
It&amp;rsquo;s safe to say that it will take me a while to find another novel that can
match the emotional turmoil Manzoni has put me through once again.&lt;/p&gt;
&lt;h4 id=&#34;1-la-divina-commedia-dante-alighieri&#34;&gt;1) &lt;em&gt;La Divina Commedia&lt;/em&gt; (Dante Alighieri)&lt;/h4&gt;
&lt;p&gt;As great as the above-mentioned teacher was, a colleague of hers who was
supposed to enlighten us about Dante Alighieri was instead a complete jackass
who disregarded &lt;em&gt;La Divina Commedia&lt;/em&gt; entirely, and so I ended up finishing high
school with little to zero knowledge about this classic. More so than with
Manzoni, I wanted to feel ready when approaching Alighieri, and studying
philosophy has taken me right where I wanted to be. I am going to read &lt;em&gt;La
Divina Commedia&lt;/em&gt; over and over again for the rest of my life and I am confident
I will never be able to talk about it with the respect and the wisdom it
deserves.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s all from 2021. Happy new year, people!&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;An old blog of mine, not available any more. See: &lt;a href=&#34;https://manueluberti.eu/posts/2022-10-23-filmsinwords/&#34;&gt;A new
filmsinwords.eu&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>The Mast-Head</title>
      <link>https://manueluberti.eu/posts/2021-12-17-masthead/</link>
      <pubDate>Fri, 17 Dec 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-12-17-masthead/</guid>
      <description>&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/masthead.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;I am not really good at advertising so this will be short and straight to the point.&lt;/p&gt;
&lt;p&gt;My wife is back at blogging after a long hiatus. Head over to &lt;a href=&#34;https://giuliabrazzale.eu/blog/&#34;&gt;The Mast-Head&lt;/a&gt; to read her ideas on whales, fountain pens, knitting, yoga, and whatever else she feels like writing about.&lt;/p&gt;
&lt;p&gt;I also know for a fact that she uses Emacs, so surely her blog will be an awesome project indeed.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Completing shell commands</title>
      <link>https://manueluberti.eu/posts/2021-12-10-shell-command/</link>
      <pubDate>Fri, 10 Dec 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-12-10-shell-command/</guid>
      <description>&lt;p&gt;The more I move to VC,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; the more I end up relying on &lt;code&gt;M-!&lt;/code&gt;
(&lt;code&gt;shell-command&lt;/code&gt;). Admittedly, this is a tool I&amp;rsquo;ve hardly ever used before, but
since VC lacks many features covered by Magit, sometimes I need to interact with
the power of Git straight from the command line.&lt;/p&gt;
&lt;p&gt;One of the best things about Magit is that I don&amp;rsquo;t have to remember the many Git
options to use it every day. Through transient menus, Magit makes Git a matter
of few key strokes. On the other hand, from time to time I find myself on remote
machines where Magit is not available, so it does not hurt to have a better
understanding of the basic Git operations at my disposal.&lt;/p&gt;
&lt;p&gt;However, typing them all out every single time is not the kind of pleasant
activity a lazy Emacs user enjoys. Juri Linkov shared this little trick on
&lt;a href=&#34;https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg00802.html&#34;&gt;emacs-devel&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-minibuffer-complete-history ()
  &amp;quot;Complete minibuffer history.&amp;quot;
  (interactive)
  (completion-in-region (minibuffer--completion-prompt-end) (point-max)
                        (symbol-value minibuffer-history-variable)
                        nil))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Juri also suggested to bind it to &lt;code&gt;C-TAB&lt;/code&gt; in &lt;code&gt;minibuffer-local-map&lt;/code&gt;
which, coincidentally, is the same key binding I have to manually complete with
Company outside of the minibuffer.&lt;/p&gt;
&lt;p&gt;What Juri&amp;rsquo;s code does is popping up a &lt;code&gt;*Completions*&lt;/code&gt; buffer with the history of
the commands used in the minibuffer. I only use it with &lt;code&gt;shell-command&lt;/code&gt;, but try
it with &lt;code&gt;C-x C-f&lt;/code&gt; for fun.&lt;/p&gt;
&lt;p&gt;I leave it as a small exercise for the reader to understand how to switch from
the minibuffer to the &lt;code&gt;*Completions*&lt;/code&gt; buffer and vice versa. Tip: &lt;code&gt;C-h m&lt;/code&gt; is your friend.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;See &lt;a href=&#34;https://manueluberti.eu/posts/2021-11-27-vc/&#34;&gt;A job for VC&lt;/a&gt; and
&lt;a href=&#34;https://manueluberti.eu/posts/2021-12-05-vc-rebasing/&#34;&gt;Rebasing with VC&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Rebasing with VC</title>
      <link>https://manueluberti.eu/posts/2021-12-05-vc-rebasing/</link>
      <pubDate>Sun, 05 Dec 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-12-05-vc-rebasing/</guid>
      <description>&lt;p&gt;Two weeks without Magit&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; have forced me to rethink how I use Git in my
projects. I have already written about &lt;a href=&#34;https://manueluberti.eu/posts/2021-11-27-vc/&#34;&gt;some commands&lt;/a&gt; I have been using, but beside basic things, how does Emacs hold up in a
more complex situation?&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s talk about interactive rebasing. If you are familiar with Magit,&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; you
know how simple it gets. This is what I usually do from &lt;code&gt;magit-status&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;l&lt;/code&gt; for &lt;code&gt;magit-log&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;l&lt;/code&gt; for &lt;code&gt;current&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;n&lt;/code&gt; as many times as needed to move to the commit I want to start
rebasing with&lt;/li&gt;
&lt;li&gt;&lt;code&gt;r&lt;/code&gt; for &lt;code&gt;magit-rebase&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;i&lt;/code&gt; for &lt;code&gt;interactive&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;s&lt;/code&gt; on the commits I want to squash&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-c C-c&lt;/code&gt; to confirm&lt;/li&gt;
&lt;li&gt;write the commit message I want&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-c C-c&lt;/code&gt; to confirm&lt;/li&gt;
&lt;li&gt;&lt;code&gt;P&lt;/code&gt; and &lt;code&gt;-f&lt;/code&gt; to push with &lt;code&gt;--force-with-lease&lt;/code&gt; enabled&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It&amp;rsquo;s quicker to do it than to write it all down, especially now that it has
become muscle memory. No wonder I was still relying on Magit to interactively
rebase on my first days with VC.&lt;/p&gt;
&lt;p&gt;Since I did not find a similar solution in &lt;code&gt;vc-git&lt;/code&gt;, I asked on
&lt;a href=&#34;https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg00238.html&#34;&gt;emacs-devel&lt;/a&gt;
how the core developers approach this workflow. I got different, interesting
replies that can be roughly summed up with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;bare command line&lt;/li&gt;
&lt;li&gt;&lt;code&gt;helm-ls-git&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;custom code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Not wanting to be scared away from a non-Magit option, this is what I have
eventually ended up doing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;in &lt;code&gt;shell-mode&lt;/code&gt;, I run &lt;code&gt;git rebase -i &amp;lt;branch&amp;gt;~&amp;lt;commits&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;in the buffer that opens up I type &lt;code&gt;s&lt;/code&gt; on the commits I want to squash&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-x C-s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-x k RET&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;in the buffer with the commit message I edit the text as I wish&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-x C-s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-x k RET&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;either I run &lt;code&gt;git push --force-with-lease&lt;/code&gt; from &lt;code&gt;shell-mode&lt;/code&gt;, or &lt;code&gt;C-u P&lt;/code&gt; from &lt;code&gt;C-x p v&lt;/code&gt; to push with &lt;code&gt;--force-with-lease&lt;/code&gt; added
manually&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that this approach requires that in &lt;code&gt;~/.config/git/config&lt;/code&gt; I have &lt;code&gt;editor&lt;/code&gt;
set to &lt;code&gt;emacsclient&lt;/code&gt; and either I have &lt;code&gt;server-start&lt;/code&gt; somewhere in my &lt;code&gt;init.el&lt;/code&gt;
or I do &lt;code&gt;M-x&lt;/code&gt; &lt;code&gt;server-start&lt;/code&gt; before starting the actual rebasing.&lt;/p&gt;
&lt;p&gt;It looks like that even without Magit I can do everything from Emacs, which
makes for a good alternative in my opinion. Nonetheless, it does not take a PhD
to notice that Magit makes the whole rebasing easier to sort out. Hence, you
will not hear me scream &amp;ldquo;&lt;em&gt;drop it already and party hard, fellas!&lt;/em&gt;&amp;rdquo;. Sorry.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Not entirely true, but keep reading.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Who isn&amp;rsquo;t in this day and age?&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Stashing with VC</title>
      <link>https://manueluberti.eu/posts/2021-11-29-vc-stashing/</link>
      <pubDate>Mon, 29 Nov 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-11-29-vc-stashing/</guid>
      <description>&lt;p&gt;Following my &lt;a href=&#34;https://manueluberti.eu/posts/2021-11-27-vc/&#34;&gt;previous article&lt;/a&gt; on
VC, I felt like proposing a key binding for &lt;code&gt;vc-git-stash&lt;/code&gt; to the Emacs
developers was something that could turn out to be useful for other VC users.&lt;/p&gt;
&lt;p&gt;As it is usually recommended to do in these cases,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; I filed my request using
&lt;code&gt;M-x&lt;/code&gt; &lt;code&gt;report-emacs-bug&lt;/code&gt;:
&lt;a href=&#34;https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52158&#34;&gt;#52158&lt;/a&gt;. You can see that
I specifically mentioned &lt;code&gt;mu-vc-git-stash&lt;/code&gt;, the thin wrapper I coded to have VC
stashing commands easily reachable, in order to back my proposal with the custom
code I used to scratch a tiny itch.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://lars.ingebrigtsen.no/&#34;&gt;Lars Ingebrigtsen&lt;/a&gt;, one of the Emacs
co-maintainers, replied to me quickly&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; suggesting that I can use &lt;code&gt;C&lt;/code&gt;
if I put my cursor on the &lt;code&gt;Stash:&lt;/code&gt; line of the &lt;code&gt;vc-dir&lt;/code&gt; buffer. That led me to
discover that if I move the cursor onto a line pointing to a stash I can press
&lt;code&gt;P&lt;/code&gt; to pop it with &lt;code&gt;vc-git-stash-pop-at-point&lt;/code&gt;. The outcome should be
obvious: I can get rid of &lt;code&gt;mu-vc-git-stash&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Why wasn&amp;rsquo;t I using these key bindings before? As I wrote on the bug tracker,
&lt;code&gt;C-h m&lt;/code&gt; in &lt;code&gt;vc-dir&lt;/code&gt; buffers does not document them and I did not find
them explained in the &lt;code&gt;28.1.10.2 VC Directory Commands&lt;/code&gt; section of the manual
either. If the documentation is not added, I may get in touch with the Emacs
maintainers to see if I can contribute it myself. Unless of course the
documentation is already there and it&amp;rsquo;s just my reading and searching skills
failing me.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I was once advised to use this approach on &lt;code&gt;emacs-devel&lt;/code&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;This is something Emacs core developers do all the time and I don&amp;rsquo;t think
it&amp;rsquo;s appreciated enough. They always reply to my questions, even the ones
that on second thoughts I consider silly.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>A job for VC</title>
      <link>https://manueluberti.eu/posts/2021-11-27-vc/</link>
      <pubDate>Sat, 27 Nov 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-11-27-vc/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2021-11-21-eglot-and-vc/&#34;&gt;Some days ago&lt;/a&gt; I briefly wrote about my
willingness to give Emacs built-in VC system a try for real. For real means that
it&amp;rsquo;s easy to praise the beauties of &lt;code&gt;vc-git&lt;/code&gt; when working on personal projects
such as this blog, but is VC actually worth it on bigger projects where
different people commit and push regularly, rebasing is a habit, and merge
conflicts are unavoidable necessities?&lt;/p&gt;
&lt;p&gt;A warning first. This article is not intended as a VC tutorial. It aims to be an
example of how &lt;em&gt;I&lt;/em&gt; use it or, to phrase it better, how I &lt;em&gt;started&lt;/em&gt; to use it. As
&lt;a href=&#34;https://www.masteringemacs.org/&#34;&gt;Mickey Petersen&lt;/a&gt; suggests in the &amp;ldquo;Exploring
Emacs&amp;rdquo; section of his great &lt;em&gt;Mastering Emacs&lt;/em&gt; book, if you want to know more
about VC there is plenty of information right within our favourite text editor.
Furthermore, Protesilaos Stavrou has a couple of nice videos on VC you might
want to check out: &lt;a href=&#34;https://www.youtube.com/watch?v=SQ3Beqn2CEc&#34;&gt;Introduction to
VC&lt;/a&gt; and &lt;a href=&#34;https://www.youtube.com/watch?v=0YlYX_UjH5Q&#34;&gt;Workflow with VC for
Git&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now, let&amp;rsquo;s break down a common workflow of mine:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A new ticket is assigned to me&lt;/li&gt;
&lt;li&gt;I create a new branch for this ticket, starting from the &lt;code&gt;master&lt;/code&gt; one&lt;/li&gt;
&lt;li&gt;I code my thing&lt;/li&gt;
&lt;li&gt;I commit and push my code&lt;/li&gt;
&lt;li&gt;I file a new merge request ready to be reviewed&lt;/li&gt;
&lt;li&gt;The review may require changes to my code&lt;/li&gt;
&lt;li&gt;I may need to rebase my changes onto &lt;code&gt;master&lt;/code&gt; because other developers have
merged their branches before me&lt;/li&gt;
&lt;li&gt;Merge conflicts may arise and need to be fixed&lt;/li&gt;
&lt;li&gt;I push my updated code ready to be reviewed again&lt;/li&gt;
&lt;li&gt;If everything&amp;rsquo;s fine I merge my changes, otherwise back to my
edit/rebase/merge process until it&amp;rsquo;s properly done&lt;/li&gt;
&lt;li&gt;Meanwhile, it may happen that I need to stash my changes and quickly fix a
higher priority bug&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This more or less happens on a daily basis, so the interaction with Git (the
only VCS I have used in the last ten years) must be smooth. On the other hand,
Git-wise the above workflow is not that complicated. For instance, I rarely
use features such as cherry-picking or bisecting.&lt;/p&gt;
&lt;p&gt;On the surface, the main difference between Magit and VC is &lt;code&gt;transient&lt;/code&gt;. Magit
transient menus make all the operations I described above&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; a breeze. From
checking out a branch to interactive rebasing, Magit requires few key strokes to
accommodate my needs. The blatant truth is that Magit wraps everything I want
from Git and much more in a user interface that just works.&lt;/p&gt;
&lt;p&gt;VC, however, is not tightly coupled to Git, so it does not cover all of its many
options. And yet I was able to manage my work projects with VC alternatives to
Magit commands.&lt;/p&gt;
&lt;p&gt;VC has its own &lt;code&gt;vc-git-stash&lt;/code&gt;, &lt;code&gt;vc-git-stash-pop&lt;/code&gt;, and &lt;code&gt;vc-git-stash-delete&lt;/code&gt;
commands, but instead of calling them via &lt;code&gt;M-x&lt;/code&gt; I devised
&lt;code&gt;mu-vc-git-stash&lt;/code&gt; and bound it to &lt;code&gt;z&lt;/code&gt; in &lt;code&gt;vc-dir-mode-map&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-vc-git-stash (pop-or-delete)
  &amp;quot;Create, pop, or delete Git stashes.
With no POP-OR-DELETE call `vc-git-stash&#39;. With one prefix
argument call `vc-git-stash-pop&#39;. With two prefix arguments call
`vc-git-stash-delete&#39;.&amp;quot;
  (interactive &amp;quot;P&amp;quot; vc-dir-mode)
  (cond ((= (prefix-numeric-value pop-or-delete) 4)
         (call-interactively #&#39;vc-git-stash-pop))
        ((= (prefix-numeric-value pop-or-delete) 16)
         (call-interactively #&#39;vc-git-stash-delete))
        (t (call-interactively #&#39;vc-git-stash))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As you can see, &lt;code&gt;C-u z&lt;/code&gt; issues &lt;code&gt;vc-git-stash-pop&lt;/code&gt; while &lt;code&gt;C-u C-u z&lt;/code&gt; runs &lt;code&gt;vc-git-stash-delete&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;One thing that Magit really shines at for me is interactive rebasing (&lt;code&gt;r i&lt;/code&gt;). I haven&amp;rsquo;t had the opportunity so far to check how I can handle this
with VC. I guess a combination of &lt;code&gt;shell-command&lt;/code&gt; and something I have yet to
discover would do, probably.&lt;/p&gt;
&lt;p&gt;Anyway, I&amp;rsquo;ll keep using VC in the next days and report back if I manage to adapt
more of my Git workflows to it. I suspect Magit will outshine the humbler Emacs
built-in eventually, but who knows. Reading on the &lt;code&gt;emacs-devel&lt;/code&gt; mailing list
that some wild Emacs developers prefer VC to Magit seems to confirm that the
world is still full of surprises.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Well, only the ones related to Git of course.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>On Eglot and VC</title>
      <link>https://manueluberti.eu/posts/2021-11-21-eglot-and-vc/</link>
      <pubDate>Sun, 21 Nov 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-11-21-eglot-and-vc/</guid>
      <description>&lt;p&gt;I have been pretty busy since my last update here, but that does not mean I
haven&amp;rsquo;t had the time to explore a couple of things for my everyday Emacs usage.&lt;/p&gt;
&lt;p&gt;Lately I had to deal with some Java and some JavaScript. No fancy libraries on
top of them, no languages built upon them, just plain, old Java and JavaScript.
I took that as a chance to familiarize myself with
&lt;a href=&#34;https://microsoft.github.io/language-server-protocol/&#34;&gt;LSP&lt;/a&gt; and especially with
&lt;a href=&#34;https://github.com/joaotavora/eglot&#34;&gt;Eglot&lt;/a&gt;, one of the two (to my knowledge)
packages that add LSP support to Emacs. Why Eglot and not
&lt;a href=&#34;https://github.com/emacs-lsp/lsp-mode&#34;&gt;lsp-mode&lt;/a&gt;? Easy: I like how Eglot
leverages &lt;code&gt;project.el&lt;/code&gt; and Flymake, tools I heavily rely on, and I also like how
quickly it enabled me to type Java and JavaScript code. I mean, it&amp;rsquo;s just a
matter of &lt;code&gt;M-x&lt;/code&gt; &lt;code&gt;eglot&lt;/code&gt;. It does not get any easier than that, if
you ask me.&lt;/p&gt;
&lt;p&gt;Eglot works well with Company, Xref, and ElDoc, so coding in Java finally makes
sense in Emacs. Granted, I haven&amp;rsquo;t used it on a big project and I am sure the
likes of IntelliJ IDEA and Eclipse do wonders, but none of them has the editing
capabilities or the openness to infinite customization that Emacs offers.&lt;/p&gt;
&lt;p&gt;Another tool that entered my day-to-day computing is the built-in
version-control system, or VC for short. My love for
&lt;a href=&#34;https://manueluberti.eu/posts/2017-11-09-magit/&#34;&gt;Magit&lt;/a&gt; is well-known, but on my
way to a vanilla Emacs appreciation I thought I could give VC a try. It turns
out most of the things I need to do with my Git-versioned projects can be done
from &lt;code&gt;vc-dir&lt;/code&gt;. This means that instead of &lt;code&gt;C-x g&lt;/code&gt; for &lt;code&gt;magit-status&lt;/code&gt; I
have been using &lt;code&gt;C-x p v&lt;/code&gt; for &lt;code&gt;project-vc-dir&lt;/code&gt;. When it&amp;rsquo;s time to get
my hands dirty with some advanced Git-fu, Magit is always next to me.&lt;/p&gt;
&lt;p&gt;One thing should be obvious here: Magit is more powerful and feature rich than
the built-in VC, so I do not intend to drop Magit as quickly I dropped
Projectile and Flycheck. Why don&amp;rsquo;t I just use Magit, then, you ask. For the same
reason I tried Eglot instead of installing Eclipse, I&amp;rsquo;d reply. Curiosity will
not kill any cat in my house.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>He won, didn’t he?</title>
      <link>https://manueluberti.eu/posts/2021-09-30-he-won/</link>
      <pubDate>Thu, 30 Sep 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-09-30-he-won/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s easy to cast a disparaging look at the state of my country from the comfort
of my desk, and yet it has been a while since hope took a different road from
mine. Have Italians ever been so lost that nothing seems capable of distracting
them from their cynic detachment from reality? Most of the time our reactions
translate into sarcasm, which soon stagnates in a quest for social interaction
where the exchange of opinions amounts to little more than vain lamentations.&lt;/p&gt;
&lt;p&gt;However, obliging to self-involvement does not mean that we forgot about the
cult of personality. Ever present in my teenage years with the seemingly
unstoppable rise of Silvio Berlusconi, today it&amp;rsquo;s up to the likes of Matteo
Salvini and Giorgia Meloni to keep its flame alive. I usually blame Berlusconi
for the cultural and political decay of Italian society because Salvini and
Meloni are the obvious side effects of Berlusconism, but with &lt;em&gt;Vincere&lt;/em&gt; Marco
Bellocchio has taught me that I am too young to understand when everything
started.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2021-09-30-vincere.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Vincere (Marco Bellocchio, 2009)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Vincere&lt;/em&gt; moves on two tracks: one is Bellocchio&amp;rsquo;s attempt to understand a
lesser known side of the &amp;ldquo;Duce&amp;rdquo; of Italian Fascism; the other is a study on the
dangerous effects of a winning personality on the masses. Inevitably, the two
tracks will collide and Bellocchio uses this collision to highlight how little
has changed in this country since the fall of Fascism and eventually questioning
the viewer: did Fascism actually fall? Has anything really changed?&lt;/p&gt;
&lt;p&gt;From the very beginning, Ida Dalser eyes are enamoured both with the person and
the personality of Benito Mussolini. She gives herself to him completely, always
balancing the fascination of a groupie with the mad passion of a restless lover,
blind to consequences. She is not irrational like a foolish individual. She is
irrational because the more she loves Mussolini the more rational means of
communication stop working with her. Considering what Mussolini put her through,
whatever form of love she feels for him becomes increasingly inexplicable. The
audacity of her belief in Mussolini stands strong even when she knows that the
man is making everything in his power to hide her away as something to be
ashamed of. She looses her life and her son to him and only in the end she seems
to be battling for her cause instead of his husband&amp;rsquo;s. Definitely too late for
her, but for us it&amp;rsquo;s a hint of feeble resistance that could spark something more
if we understand how to treasure it.&lt;/p&gt;
&lt;p&gt;Bellocchio avoids the &lt;a href=&#34;https://manueluberti.eu/posts/2019-02-06-retelling/&#34;&gt;biopic
pitfalls&lt;/a&gt; by working on
perspectives. The story is that of his characters but the large context of
History cannot be avoided, especially when the context throws such a heavy load
on Italy&amp;rsquo;s shoulders. Bellocchio&amp;rsquo;s style reminded me of Alessandro Manzoni&amp;rsquo;s &lt;em&gt;I
Promessi Sposi&lt;/em&gt; (&lt;em&gt;The Betrothed&lt;/em&gt;), where the point of view shifts sweetly
between the hardships of Lucia Mondella and Renzo Tramaglino and the social and
political turmoil around them from one chapter to another. Like Manzoni,
Bellocchio enters and exits historical facts via archival footage in order to
never forget where Ida Dalser&amp;rsquo;s quest is happening, while focusing on her
experiences throughout years as complicated for Italy as they are for her.&lt;/p&gt;
&lt;p&gt;However, Bellocchio does not stop at an obscure tragedy for memory&amp;rsquo;s sake. He is
not even content with the lesson we can infer from it alone. Dalser&amp;rsquo;s son,
Benito Albino Mussolini, died in a psychiatric institute just like her mother.
Before ending &lt;em&gt;Vincere&lt;/em&gt; with written remarks about their deaths and that of
Mussolini, thus leaving the last words to History, Bellocchio makes Benito
Albino do a couple of impressions of his father. The first one is somehow
imposed on him by his friends, who are looking to make fun of the Benito
Mussolini they have just seen on television. Benito Albino unwillingly portrays
his father in an overtly exaggerated way, but the scene does not make the viewer
laugh along with Albino&amp;rsquo;s friends, because we know where Albino comes from. More
importantly, when one thinks of Italy today they know every politician is an
actor living off the charisma-building skills Mussolini left us with. The acts
and words are different, but the rhetorical power is just the same. Hence, the
joke Albino enacts is on his friends and, if we do not stay alert, on us.&lt;/p&gt;
&lt;p&gt;The second impression is an uncontrollable feat triggered by another appearance
of Benito Mussolini on television. Mussolini speaks German, and so does Benito
Albino, but by now tuberculosis has destroyed his mind and body, so he probably
does not even understand a word of what he is saying. Bellocchio not only
refuses humour but does not even try to put a hint of irony in this scene. This
is the plainest image of what Mussolini and, by extension, Fascism did to Italy.
This is the extent of his victory in the long run.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Grep’s good rep</title>
      <link>https://manueluberti.eu/posts/2021-09-10-rgrep-and-vc-git-grep/</link>
      <pubDate>Fri, 10 Sep 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-09-10-rgrep-and-vc-git-grep/</guid>
      <description>&lt;p&gt;Look around this blog and you will find nice words about
&lt;a href=&#34;https://github.com/BurntSushi/ripgrep&#34;&gt;ripgrep&lt;/a&gt;. I especially enjoy how I can
plug it into Emacs, like the time when I devised my own &lt;a href=&#34;https://manueluberti.eu/posts/2020-02-22-ripgrepping-with-helm/&#34;&gt;Helm
commands&lt;/a&gt; for it.&lt;/p&gt;
&lt;p&gt;However, roughly &lt;a href=&#34;https://manueluberti.eu/posts/2020-09-18-project/&#34;&gt;a year ago&lt;/a&gt; I
started my journey to a more vanilla Emacs experience. During this time I have
been slowly moving away from the niceties of &lt;code&gt;ripgrep&lt;/code&gt; in order to stick to a
couple of built-in tools: &lt;code&gt;rgrep&lt;/code&gt; and &lt;code&gt;vc-git-grep&lt;/code&gt;. Now, technically speaking,
both this commands rely on external tools, &lt;code&gt;grep&lt;/code&gt; and &lt;code&gt;git grep&lt;/code&gt;. Why should I
use these instead of &lt;code&gt;ripgrep&lt;/code&gt;? Personal preferences, of course: &lt;code&gt;grep&lt;/code&gt; is
readily available on Ubuntu and &lt;code&gt;git&lt;/code&gt; is the first tool I install when upgrading
to a new LTS from Canonical.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Furthermore, I rarely need the power of &lt;code&gt;ripgrep&lt;/code&gt;. Your experience may be
different on this, but the size of my projects does not scare neither &lt;code&gt;grep&lt;/code&gt; nor
&lt;code&gt;git grep&lt;/code&gt;. For instance, I regularly use &lt;code&gt;vc-git-grep&lt;/code&gt; on Emacs sources, which
amounts to something like 2,755,361 lines of code,&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; and the performances are
just fine for me.&lt;/p&gt;
&lt;p&gt;The only thing I usually do not need from these commands is the prompt for the
file types to look into.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-recursive-grep (search-term search-path)
  &amp;quot;Recursively search for SEARCH-TERM in SEARCH-PATH.&amp;quot;
  (interactive
   (progn
     (unless grep-command
       (grep-compute-defaults))
     (let ((search-term (grep-read-regexp))
           (search-path (expand-file-name
                         (read-directory-name
                          &amp;quot;Directory: &amp;quot; nil default-directory t))))
       (list search-term search-path))))
  (if (vc-root-dir)
      (vc-git-grep search-term &amp;quot;*&amp;quot; search-path)
    (rgrep search-term &amp;quot;*&amp;quot; search-path)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I combined the two commands to make it simpler. When I am in a Git-versioned
project (i.e., &lt;code&gt;vc-root-dir&lt;/code&gt; is not &lt;code&gt;nil&lt;/code&gt;) &lt;code&gt;mu-recursive-grep&lt;/code&gt; runs
&lt;code&gt;vc-git-grep&lt;/code&gt;; otherwise, it&amp;rsquo;s time for &lt;code&gt;rgrep&lt;/code&gt; to shine. As trivial as it might
look, the fact that the last two lines of &lt;code&gt;mu-recursive-grep&lt;/code&gt; look similar is
what made it easier for me to devise a common wrapper. Emacs &lt;code&gt;describe&lt;/code&gt; system
is always invaluable for discoveries such as this.&lt;/p&gt;
&lt;p&gt;One last thing. When in a project, if I want to find where the thing at point is
used I do not need &lt;code&gt;mu-recursive-grep&lt;/code&gt;. For this task &lt;code&gt;project-find-regexp&lt;/code&gt;
(&lt;code&gt;C-x p g&lt;/code&gt;) is enough,&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; but &lt;code&gt;mu-recursive-grep&lt;/code&gt; is still helpful
when I want to narrow the search down to a specific path.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I use Ansible Playbooks to set up the new system.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;That&amp;rsquo;s what &lt;code&gt;scc&lt;/code&gt; tells me today, anyway.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;&lt;code&gt;C-h v xref-search-program&lt;/code&gt; shows that &lt;code&gt;ripgrep&lt;/code&gt; can be used
instead of the default &lt;code&gt;grep&lt;/code&gt;. Hence you can keep ripgrepping if that&amp;rsquo;s what
you prefer.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Package report</title>
      <link>https://manueluberti.eu/posts/2021-09-01-package-report/</link>
      <pubDate>Wed, 01 Sep 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-09-01-package-report/</guid>
      <description>&lt;p&gt;I don&amp;rsquo;t know about you, but I like to monitor my Emacs configuration to see if
it is growing out of control due to my penchant for experimenting with ELisp and
new packages. This led me to a simple question: why not have a command that can
produce a summary of the installed packages? Specifically, I want to know the
total number of packages installed and I&amp;rsquo;d like to list the packages for every
archive set up in &lt;code&gt;package-archives&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-package-report ()
  &amp;quot;Report total package counts grouped by archive.&amp;quot;
  (interactive)
  (package-refresh-contents)
  (mu--display-package-report
   (let* ((arch-pkgs (mu--archive-packages))
          (counts (seq-sort-by #&#39;cdr #&#39;&amp;gt; (mu--archive-counts arch-pkgs)))
          (by-arch (seq-group-by #&#39;car arch-pkgs)))
     (concat
      (format &amp;quot;Total packages: %s\n\n&amp;quot; (apply #&#39;+ (mapcar #&#39;cdr counts)))
      (mapconcat
       (lambda (archive)
         (concat &amp;quot;• &amp;quot;
                 (format &amp;quot;%s (%s)&amp;quot; (car archive) (cdr archive))
                 &amp;quot;: &amp;quot;
                 (mapconcat (lambda (ap-pair) (cdr ap-pair))
                            (alist-get (car archive) by-arch)
                            &amp;quot;, &amp;quot;)))
       counts
       &amp;quot;\n\n&amp;quot;)))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now, let&amp;rsquo;s unpack it.&lt;/p&gt;
&lt;p&gt;I want my report buffer to be displayed in a new window, so this is what
&lt;code&gt;mu--display-package-report&lt;/code&gt; does:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu--display-package-report (output)
  &amp;quot;Display OUTPUT in a popup buffer.&amp;quot;
  (let ((buffer-name &amp;quot;*package-report*&amp;quot;))
    (with-help-window buffer-name
      (with-current-buffer buffer-name
        (visual-line-mode 1)
        (erase-buffer)
        (insert output)
        (goto-char (point-min))))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, I want to know from which archive (e.g., GNU ELPA) a package is coming to
my system:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu--archive-packages ()
  &amp;quot;Return a list of (archive . package) cons cells.&amp;quot;
  (seq-reduce
   (lambda (res package)
     (let ((archive (package-desc-archive
                     (cadr (assq package package-archive-contents))))
           (pkg (symbol-name package)))
       (push (cons archive pkg) res)))
   (mapcar #&#39;car package-alist)
   nil))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is nice because now I can also have the number of packages for every archive.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu--archive-counts (arch-pkgs)
  &amp;quot;Return a list of cons cells from alist ARCH-PKGS.
The cars are package archives, the cdrs are the number of
packages installed from each archive.&amp;quot;
  (seq-reduce
   (lambda (counts key)
     (cons (cons key (+ 1 (or (cdr (assoc key counts)) 0)))
           (assoc-delete-all key counts)))
   (mapcar #&#39;car arch-pkgs)
   nil))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The rest of the code in &lt;code&gt;mu-package-report&lt;/code&gt; deals with formatting the output.
For example, I am using &lt;code&gt;seq-sort-by&lt;/code&gt; to have the archive with the highest
number of packages on top. As for the &lt;code&gt;mapconcat&lt;/code&gt; producing the actual bullet
points, the Emacs community came to the rescue on &lt;a href=&#34;https://emacs.stackexchange.com/questions/65088/format-alist-into-bullet-points&#34;&gt;Emacs Stack
Exchange&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Finally, this is how &lt;code&gt;M-x&lt;/code&gt; &lt;code&gt;mu-package-report&lt;/code&gt; &lt;code&gt;RET&lt;/code&gt; looks
like:&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/package-report.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Have I been good?</title>
      <link>https://manueluberti.eu/posts/2021-08-20-resolutions/</link>
      <pubDate>Fri, 20 Aug 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-08-20-resolutions/</guid>
      <description>&lt;p&gt;Back in January, I stated as frankly as I could &lt;a href=&#34;https://manueluberti.eu/posts/2021-01-03-resolutions/&#34;&gt;my plans for the rest of
2021&lt;/a&gt;. Namely:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More books and less films&lt;/li&gt;
&lt;li&gt;More philosophy and less fiction&lt;/li&gt;
&lt;li&gt;Running&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now that we are approaching the end of August I think it makes sense to check on
myself and see how I have behaved so far.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;more-books-and-less-films&#34;&gt;More books and less films&lt;/h3&gt;
&lt;p&gt;I track everything I read and watch on my Bujo so let&amp;rsquo;s see actual numbers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;books: 33 (not including strictly university material)&lt;/li&gt;
&lt;li&gt;films: 132 (not including a couple of series)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It doesn&amp;rsquo;t look promising, does it? In my defense, among the books there have
been heavyweights like Herman Melville&amp;rsquo;s &lt;em&gt;Moby-Dick&lt;/em&gt; and Dante Alighieri&amp;rsquo;s
&lt;em&gt;Divine Comedy&lt;/em&gt; which I took my time to read slowly and carefully. Still, there
is room for improvement here.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;more-philosophy-and-less-fiction&#34;&gt;More philosophy and less fiction&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;philosophy and philosophy-related books: 15&lt;/li&gt;
&lt;li&gt;fiction: 15&lt;/li&gt;
&lt;li&gt;non-fiction: 3&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Oh well, it has been going better here! I have been keeping fiction for the
evening and that splendid time in bed before turning the lights off. Otherwise, a
great deal of philosophy courtesy of Alasdair MacIntyre, Jürgen Habermas, Terry
Pinkard, Emmanuel Levinas, Emanuele Severino, Hannah Arendt, Simone Weil, Etty
Hillesum, Søren Kierkegaard and Baruch Spinoza.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;running&#34;&gt;Running&lt;/h3&gt;
&lt;p&gt;And now the sad note: I have neglected proper exercise and not only running this
year. I did walk a lot in the wild on holiday, that&amp;rsquo;s true, but it isn&amp;rsquo;t enough.
One could be on my side and try the &amp;ldquo;You are such an avid reader!&amp;rdquo; card, but we
all know that that is just a lame excuse for being comfortably lazy on the
couch. Work has to be done here.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;conclusion&#34;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Honestly, despite the need to leave the desk and the couch more, I cannot
complain. Philosophy has proved to be an exceptional exercise for the mind and
so somehow I have actually been involved in great training during these months.
I will check myself again on December to see if new year&amp;rsquo;s resolutions do in
fact make sense after all.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Switching buffers (Take 3)</title>
      <link>https://manueluberti.eu/posts/2021-08-14-switch-buffer/</link>
      <pubDate>Sat, 14 Aug 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-08-14-switch-buffer/</guid>
      <description>&lt;p&gt;The more I remove code from my &lt;code&gt;init.el&lt;/code&gt; to rely on Emacs defaults, the more I
am getting used to it. This means I stopped using the likes of &lt;a href=&#34;https://manueluberti.eu/posts/2019-02-05-nswbuff/&#34;&gt;nswbuff&lt;/a&gt; and &lt;a href=&#34;https://manueluberti.eu/posts/2019-03-16-switch-buffers/&#34;&gt;counsel-projectile&lt;/a&gt;, but it doesn&amp;rsquo;t mean there isn&amp;rsquo;t room for small
tweaks.&lt;/p&gt;
&lt;p&gt;The basic &lt;code&gt;switch-to-buffer&lt;/code&gt; (&lt;code&gt;C-x b&lt;/code&gt;) does exactly what it says: it
lets you switch to a buffer of your choice. Now, if you play around in Emacs for
a while you end up with many open buffers such as &lt;code&gt;*Messages*&lt;/code&gt;, &lt;code&gt;*Flymake log*&lt;/code&gt;,
&lt;code&gt;*Help*&lt;/code&gt;, &lt;code&gt;*Ibuffer*&lt;/code&gt;, etc. Usually when I want to switch to a buffer I start
typing and &lt;code&gt;fido-mode&lt;/code&gt; gets me there, but the output of vanilla
&lt;code&gt;switch-to-buffer&lt;/code&gt; is still a bit cluttered with buffers I never jump to.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defvar mu-ignored-buffers
  &#39;(&amp;quot;\\` &amp;quot; &amp;quot;^\\*Async&amp;quot; &amp;quot;^\\*Compile-Log&amp;quot; &amp;quot;^\\*Completions&amp;quot; &amp;quot;^\\*Flymake&amp;quot;
    &amp;quot;^\\*Messages&amp;quot; &amp;quot;^\\*eldoc&amp;quot; &amp;quot;^\\*envrc&amp;quot; &amp;quot;\\*tramp&amp;quot; &amp;quot;^\\*xref&amp;quot;)
  &amp;quot;A list of predicates for buffers to ignore.&amp;quot;)
  
(defun mu-switch-to-buffer (buffer-or-name)
  &amp;quot;Switch to BUFFER-OR-NAME but ignore specific buffers.&amp;quot;
  (interactive
   (list (read-buffer &amp;quot;Switch to: &amp;quot;
                      (other-buffer (current-buffer))
                      (confirm-nonexistent-file-or-buffer)
                      (lambda (buf)
                        (not
                         (seq-contains-p
                          mu-ignored-buffers (car buf) #&#39;string-match-p))))))
  (switch-to-buffer buffer-or-name))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The key point in &lt;code&gt;mu-switch-to-buffer&lt;/code&gt; is the fourth argument passed to
&lt;code&gt;read-buffer&lt;/code&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Optional arg PREDICATE, if non-nil, is a function limiting the buffers that
can be considered. It will be called with each potential candidate, in the form
of either a string or a cons cell whose `car&amp;rsquo; is a string, and should return
non-nil to accept the candidate for completion, nil otherwise.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Note that I am using &lt;code&gt;mu-ignored-buffers&lt;/code&gt; only in &lt;code&gt;mu-switch-to-buffer&lt;/code&gt;. Ibuffer
still shows the ignored buffers to me. If I&amp;rsquo;ll ever get particularly angry at
those buffers, I could hide them in Ibuffer as well by adding them to
&lt;code&gt;ibuffer-never-show-predicates&lt;/code&gt;. These days, though, teenage angst is far behind
myself.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Trust me, I complete</title>
      <link>https://manueluberti.eu/posts/2021-08-06-fido/</link>
      <pubDate>Fri, 06 Aug 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-08-06-fido/</guid>
      <description>&lt;p&gt;Not too long ago I wrote about my pleasant experience with
&lt;a href=&#34;https://manueluberti.eu/posts/2021-06-24-icomplete-vertical/&#34;&gt;icomplete-vertical-mode&lt;/a&gt;, a recent
addition on Emacs master which gives a vertical spin to the good old Icomplete.
But now Emacs also comes with &lt;code&gt;fido-mode&lt;/code&gt;, which enhances &lt;code&gt;icomplete-mode&lt;/code&gt; with
&lt;code&gt;ido-mode&lt;/code&gt; powers.&lt;/p&gt;
&lt;p&gt;The question is: can I combine &lt;code&gt;fido-mode&lt;/code&gt; and &lt;code&gt;icomplete-vertical-mode&lt;/code&gt; to have
the best of both worlds? Yep, it turns out I can and it is simple and easy.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(fido-vertical-mode 1)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And this is basically it. The only other thing I did was setting
&lt;code&gt;icomplete-matches-format&lt;/code&gt; to &lt;code&gt;nil&lt;/code&gt; because I don&amp;rsquo;t have a particular need for
the match count at the prompt.&lt;/p&gt;
&lt;p&gt;Whether or not one uses &lt;code&gt;fido-vertical-mode&lt;/code&gt;, &lt;code&gt;fido-mode&lt;/code&gt; enables nice features
such as &lt;code&gt;icomplete-fido-delete-char&lt;/code&gt; (&lt;code&gt;C-d&lt;/code&gt;), which deletes the current
character or calls &lt;code&gt;dired&lt;/code&gt; on the current directory, and &lt;code&gt;icomplete-fido-kill&lt;/code&gt;
(&lt;code&gt;C-k&lt;/code&gt;), which kills the current line or, for instance, if we are
completing files asks if we want to delete the selected one. Check
&lt;code&gt;icomplete-fido-mode-map&lt;/code&gt; for more details on the available key bindings.&lt;/p&gt;
&lt;p&gt;Inspecting &lt;code&gt;icomplete--fido-mode-setup&lt;/code&gt; reveals that &lt;code&gt;fido-mode&lt;/code&gt; also uses the
&lt;code&gt;flex&lt;/code&gt; completion style,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; but nothing forces us to stick with it or try
something like Orderless instead. As always with Emacs, the power is in our
hands.&lt;/p&gt;
&lt;p&gt;One more thing. The &lt;em&gt;&amp;ldquo;Trust me&amp;rdquo;&lt;/em&gt; in the title aims to be a pun on the word
&lt;em&gt;&amp;ldquo;fido&amp;rdquo;&lt;/em&gt;. In Italian &lt;em&gt;&amp;ldquo;fido&amp;rdquo;&lt;/em&gt; is the form for &amp;ldquo;I&amp;rdquo; of &lt;em&gt;&amp;ldquo;fidare&amp;rdquo;&lt;/em&gt; which means &lt;em&gt;&amp;ldquo;to
trust&amp;rdquo;&lt;/em&gt;: &lt;em&gt;&amp;ldquo;Mi fido di te&amp;rdquo;&lt;/em&gt; becomes &lt;em&gt;&amp;ldquo;I trust you&amp;rdquo;&lt;/em&gt; in English. &lt;em&gt;&amp;ldquo;Fido&amp;rdquo;&lt;/em&gt; is also
a &lt;a href=&#34;https://en.wikipedia.org/wiki/Fido_(dog)&#34;&gt;famous dog&lt;/a&gt; in Italy that came to
public attention because of his strong loyalty. Thus using &lt;code&gt;fido-mode&lt;/code&gt; implies
that my love for dogs is sincere and trustworthy.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;&lt;code&gt;C-h o completion-styles-alist RET&lt;/code&gt; to know more about it.
Specifically, search for &lt;code&gt;flex&lt;/code&gt; in the &lt;code&gt;Value:&lt;/code&gt; section of the
documentation.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>A dictionary in Emacs</title>
      <link>https://manueluberti.eu/posts/2021-07-31-dictionary/</link>
      <pubDate>Sat, 31 Jul 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-07-31-dictionary/</guid>
      <description>&lt;p&gt;I explained my need for an English dictionary when I wrote about my own
[helm-wordnut]({% post_url 2020-06-13-helm-wordnut %}). To sum it up: my English is good but it&amp;rsquo;s not David Foster
Wallace good, so a dictionary is mandatory.&lt;/p&gt;
&lt;p&gt;Last October Torsten Hilbrich added &lt;a href=&#34;https://github.com/myrkr/dictionary-el&#34;&gt;dictionary-el&lt;/a&gt; to Emacs master so, in my
quest for a Vanilla Emacs appreciation, I decided to give it a try. According to
the first line of &lt;code&gt;dictionary.el&lt;/code&gt; this library is a client for &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc2229&#34;&gt;RFC 2229&lt;/a&gt; dictionary
servers, which as the RFC says, rely on the DICT protocol:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The DICT protocol is designed to provide access to multiple databases. Word
definitions can be requested, the word index can be searched (using an easily
extended set of algorithms), information about the server can be provided (e.g.,
which index search strategies are supported, or which databases are available),
and information about a database can be provided (e.g., copyright, citation, or
distribution information). Further, the DICT protocol has hooks that can be used
to restrict access to some or all of the databases.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is very useful because it means that one can collect different definitions
from various dictionary and possibly compare synonyms.&lt;/p&gt;
&lt;p&gt;This is how I set up &lt;code&gt;dictionary.el&lt;/code&gt; in my &lt;code&gt;init.el&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(global-set-key (kbd &amp;quot;C-c d&amp;quot;) #&#39;dictionary-search)
(setq dictionary-server &amp;quot;dict.org&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;dictionary-search&lt;/code&gt; cleverly picks up the word at point which means that when I
hit &lt;code&gt;C-c d RET&lt;/code&gt; on a word I don&amp;rsquo;t know I get a &lt;code&gt;*Dictionary*&lt;/code&gt; buffer with entries
coming from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Collaborative International Dictionary of English&lt;/li&gt;
&lt;li&gt;WordNet&lt;/li&gt;
&lt;li&gt;Moby Thesaurus II&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is much more in &lt;code&gt;dictionary.el&lt;/code&gt;, though. I counted 17 &lt;code&gt;defcustom&lt;/code&gt;s for
starters, so go on and tweak it like any Emacs hacker would do. As for me, the
couple of ELisp lines above are adequate.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Reuse Dired buffers</title>
      <link>https://manueluberti.eu/posts/2021-07-14-dired/</link>
      <pubDate>Wed, 14 Jul 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-07-14-dired/</guid>
      <description>&lt;p&gt;This is going to be a real quick one, mainly a “thank you!” to Lars
Ingebrigtsen. Lars has recently added a new option on the Emacs master branch:
&lt;code&gt;dired-kill-when-opening-new-dired-buffer&lt;/code&gt;. I will let the documentation speak for
itself:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;dired-kill-when-opening-new-dired-buffer is a variable defined in ‘dired.el&#39;.&lt;/p&gt;
&lt;p&gt;Its value is t&lt;br&gt;
Original value was nil&lt;/p&gt;
&lt;p&gt;You can customize this variable.
This variable was introduced, or its default value was changed, in
version 28.1 of Emacs.
Probably introduced at or before Emacs version 28.1.&lt;/p&gt;
&lt;p&gt;If non-nil, kill the current buffer when selecting a new directory.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Setting this new option to &lt;code&gt;t&lt;/code&gt; means that pressing &lt;code&gt;RET&lt;/code&gt; or &lt;code&gt;^&lt;/code&gt; in a Dired
buffer will reuse the existing buffer. This is something I required a while ago
(&lt;a href=&#34;https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20598&#34;&gt;#20598&lt;/a&gt;) and that up
until today I had been hacking up poorly in my &lt;code&gt;.init.el&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I know the Emacs developers have more urgent bugs to work on, but this is such a
nice improvement I am pretty sure you can see me happily smiling right now.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>I complete. You?</title>
      <link>https://manueluberti.eu/posts/2021-06-24-icomplete-vertical/</link>
      <pubDate>Thu, 24 Jun 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-06-24-icomplete-vertical/</guid>
      <description>&lt;p&gt;Tracking the Emacs development by building its master branch may not be a smooth
experience for everyone, but for the average enthusiast is the perfect way to
see their favourite tool evolve, trying experimental things, and reporting back
to the core developers to help them. Sure, one has to deal with occasional build
failures, but with Git at one&amp;rsquo;s service it&amp;rsquo;s always easy to reset to a working
commit and find happiness again.&lt;/p&gt;
&lt;p&gt;Recently a shiny new mode has been implemented on master:
&lt;code&gt;icomplete-vertical-mode&lt;/code&gt;. Now, if you had the chance to read this blog in the
past you know that when it comes to candidate completion I am a gangsta jumping
back and forth among packages with excessive self-satisfaction. But you should
also already know that I like to use as many Emacs built-ins as possible. Hence,
I could not wait to give &lt;code&gt;icomplete-vertical-mode&lt;/code&gt; a try.&lt;/p&gt;
&lt;p&gt;Turning it on is trivial:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(icomplete-mode 1)
(add-hook &#39;icomplete-mode-hook #&#39;icomplete-vertical-mode)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Since other completion systems have spoiled me, I prefer scrolling over the
rotating behaviour of the standard &lt;code&gt;icomplete&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(setq icomplete-scroll t)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Furthermore, I always want to see the candidate list:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(setq icomplete-show-matches-on-no-input t)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is pretty much it. I use &lt;code&gt;icomplete-fido-backward-updir&lt;/code&gt; to move up one
directory and I have &lt;code&gt;exit-minibuffer&lt;/code&gt; bound to &lt;code&gt;C-j&lt;/code&gt; for convenience.&lt;/p&gt;
&lt;p&gt;I have been using &lt;code&gt;icomplete-vertical-mode&lt;/code&gt; daily for a while now and everything
has been working as expected. For the record, this mode works seamlessly with
your favourite &lt;code&gt;completion-styles&lt;/code&gt; settings, so moving from, say, Vertico to
&lt;code&gt;icomplete-vertical-mode&lt;/code&gt; is simple and easy.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Let Soderbergh talk</title>
      <link>https://manueluberti.eu/posts/2021-06-03-talk/</link>
      <pubDate>Thu, 03 Jun 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-06-03-talk/</guid>
      <description>&lt;p&gt;Sometimes it takes a peculiar turn of events to shine a new light on a film that
did not hit me at all the first time I watched it. The more dramatic the events
are, the more the film is able to dig its own way through me on the second time.
And if the film manages to catch me off guard as well, it simply means that
I did not have a clue before and that I was, once again, ignoring the brilliant
capacity that cinema has to enter my life unexpectedly.&lt;/p&gt;
&lt;p&gt;There is a lot going on with my family at the moment, but to put it briefly:
a relative with health issues and another one without a job in a delicate
moment. In the world of my family, reasoning together around a table on these
problems is next to impossible, and if one is used to sit down and talk in order
to better understand the situation, they are going to have a hard time getting
honest replies and decent answers out of these mouths. Unless they are Steven
Soderbergh, I guess.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2021-06-05-let_them_all_talk.jpeg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Let Them All Talk (Steven
Soderbergh, 2020)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;In &lt;em&gt;Let Them All Talk&lt;/em&gt;, Soderbergh captures the dynamics and the intricacies of
different kind of relationships with the eye of the adult back after many years
where they were born. Like that adult, Soderbergh&amp;rsquo;s camera observes the
development of stories that are familiar and distant at the same time. The adult
knows where and how these stories began, but it is actually the child in them
that is remembering, and so the memories are vague and partly filled with the
audacity of imagination. The adult has not followed the development of these
stories if not remotely and by chance, and thus the intimacy with them is now
lost. This feeling is strengthened by the position in which the viewer is
constantly put by Soderbergh, a position where they think they know more than
the characters, but it is a knowledge which does not inform them enough to
derive neither the correct nor the wrong conclusions. Just like the adult that
has to reacquaint with his family, the viewer needs time to process where the
images are leading them to.&lt;/p&gt;
&lt;p&gt;This is not to say that &lt;em&gt;Let Them All Talk&lt;/em&gt; is out to play with our minds.
Soderbergh shows more than he conceals, and the death of Alice, as shocking as
it is, is in fact slightly anticipated by her anxiety. She desperately wants to
reconnect with the most important people in her life, and yet we sense that
there is more to it in this trip. Throughout the crossing on the ship she
struggles to find the time and the emotional space to sit down and fix what went
wrong in what seems like a previous life, but she is not ready to give up on her
work and her swimming to do that, a sign that there is more at stake than a
friendship here. The same is true for Tyler and his infatuation with Karen. As
much as they build a bond on board, the reasons why it does not turn into a
romance are on plain sight. Karen uses Tyler for her own ends at first, but as
they get closer to each other they share and connect on a different level. Most
of the time, say in a romantic comedy or a sit-com, this level is the prelude of
a happy love story. However, Karen is not attracted to Tyler and she never
suggests that she is. Tyler naturally falls for her, he takes the risk of a
timid and messy confession, and Karen does not know how to react to that. We can
only guess she realises that she must have given him the wrong impression, but
the viewer is not entitled to enter the privacy of her emotions. Soderbergh
hides only what is respectful to hide.&lt;/p&gt;
&lt;p&gt;Furthermore, &lt;em&gt;Let Them All Talk&lt;/em&gt; is not shy when it comes to humour, with its
main target being the literary world, but again Soderbergh approaches the matter
from a hide and seek angle. Alice makes fun of best-selling author Kelvin Kranz,
despising the poor quality of his hugely popular books and laughing at his
semi-automatic writing process. The fictional Kranz mirrors the likes of Wilbur
Smith, a beloved writer in my family, and so I can relate to both
Alice&amp;rsquo;s criticism and Susan&amp;rsquo;s appreciation. Whereas Wilbur Smith may not conquer
my taste in literature, after decades he still is a staple in my parents&amp;rsquo; house,
and something of my passion for books must come from all those evenings with my
parents on the sofa completely absorbed by his pages. This is one of the things
&lt;em&gt;Let Them All Talk&lt;/em&gt; is really good at. It dwells on mixed feelings while
acknowledging the apparently simple fact that every situation is bound to be
charged with emotions well beyond our reach. Its characters share a common
background. Sometimes it works for them, and other times, it is set against
them. They cannot assume friendship and family ties, however strong, to be the
only means for their relationships to survive.&lt;/p&gt;
&lt;p&gt;This is why Roberta is such an important character. She is not able to let go
her belief that her life has been ruined by Alice&amp;rsquo;s most popular book. Roberta
is sure that Alice used her and her life as the basis for the book, thus what
she seems to be after is monetary compensation for all the troubles she had.
However, right at the very end, when getting money out of Alice&amp;rsquo;s death requires
more effort on Roberta&amp;rsquo;s side, she lets go. Does she do it because she cannot be
bothered to fight any more? Or has she finally realised that she, and only she,
can press the button to put change in motion? I like to think that only she
knows the answer, and I like to think that anyone facing the same decision would
act differently. Like Kierkegaard said, humans are possibility, and within the
possible everything is possible.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Would Alfred Hitchcock use Emacs?</title>
      <link>https://manueluberti.eu/posts/2021-04-12-vertico/</link>
      <pubDate>Mon, 12 Apr 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-04-12-vertico/</guid>
      <description>&lt;p&gt;First you have to excuse the awful title, but a cinephile cannot resist the
temptation of an easy reference when the Emacs package he is going to write
about is called &lt;a href=&#34;https://github.com/minad/vertico&#34;&gt;Vertico&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Daniel Mendler has become such a prolific contributor to our Emacs world. His
work with Omar Antolín Camarena and Clemens Radermacher (to name a few!) has
been showing me how much can be done with little improvements on Emacs default
completion system. Actually, “little” is a bit unfair to them because they have
been putting a lot of effort in their packages and contributions. What “little”
stands for instead is the amount of code I had to add to my &lt;code&gt;init.el&lt;/code&gt; to get a
superb completion UI. I combine Vertico with
&lt;a href=&#34;https://github.com/oantolin/orderless&#34;&gt;Orderless&lt;/a&gt; and I didn&amp;rsquo;t have to do much
beside this after the installation via &lt;code&gt;package.el&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(require &#39;orderless)
(setq completion-styles &#39;(orderless))

(require &#39;vertico)
(vertico-mode 1)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Well, to be fair I did something more, like binding &lt;code&gt;vertico-exit-input&lt;/code&gt; to
&lt;code&gt;C-j&lt;/code&gt; and setting &lt;code&gt;orderless-matching-styles&lt;/code&gt; to &lt;code&gt;orderless-regexp&lt;/code&gt;,
plus I am using Daniel&amp;rsquo;s &lt;a href=&#34;https://github.com/minad/consult&#34;&gt;consult&lt;/a&gt; to extend
Vertico capabilities, but I guess you see where I am going by now. The
combination of small packages makes for a modular system that I can interact
with more easily. For instance, Daniel can go berserk and forget about the
lovely 500 lines of code limit he set himself to with Vertico. Why should
I trust this criminal mind, then? I can switch to
&lt;a href=&#34;https://github.com/raxod502/selectrum&#34;&gt;Selectrum&lt;/a&gt; and keep using Consult and
Orderless with it.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;The beauty of Vertico is that it is not about reinventing Emacs completion once
again. By sticking to Emacs built-in commands and completion facilities, Vertico
succeeds in staying close to the source without losing the chance to improve on
it. On the one hand, moving to Vertico means it is up to the user to configure
extra niceties. That is what packages like Consult, Orderless,
&lt;a href=&#34;https://github.com/oantolin/embark&#34;&gt;Embark&lt;/a&gt;, and
&lt;a href=&#34;https://github.com/minad/marginalia&#34;&gt;Marginalia&lt;/a&gt; aim for, but again, the user
is in charge of the right setup for their needs, while a solution such as Helm
offers a lot of functionalities out of the box. On the other hand, tools such as
Helm, Ivy, and Selectrum are more complex than Vertico and may bring in code you
do not necessarily need, which is something even Emacs itself doesn&amp;rsquo;t shy away
from.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I find it amazing that a seemingly simple and yet so central feature in my
everyday Emacs such as the completion system has pushed people to create all
these amazing packages. It seems to me that Helm has helped pave the way for a
more powerful experience when it comes to completion and that by studying Emacs
internals carefully one can achieve similar benefits with a different approach.
As humble end-users of all this we really are a lucky bunch.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;The irony should be obvious.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;I don&amp;rsquo;t really need games in my text editor.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Back to the roots</title>
      <link>https://manueluberti.eu/posts/2021-04-08-no-use-package/</link>
      <pubDate>Thu, 08 Apr 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-04-08-no-use-package/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2021-03-08-package/&#34;&gt;Last time&lt;/a&gt; I left &lt;code&gt;straight&lt;/code&gt; for the built-in
&lt;code&gt;package.el&lt;/code&gt;, a choice I have not had the pleasure to regret so far. Now I am
going to reason about a more ambitious change in my Emacs configuration: I am
not using &lt;a href=&#34;https://github.com/jwiegley/use-package&#34;&gt;use-package&lt;/a&gt; any more.&lt;/p&gt;
&lt;p&gt;Before answering your concerned &lt;em&gt;why!?&lt;/em&gt; let me just say that if you are happy
with &lt;code&gt;use-package&lt;/code&gt; you should stay with it. By wrapping all the settings for a
built-in feature or an external package with &lt;code&gt;use-package&lt;/code&gt; you can easily notice
what you are doing wrong when tweaking something, while having control over the
installation and the loading of your favourite library as well. Despite some
unhappiness around the web,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; &lt;code&gt;use-package&lt;/code&gt; is just a great tool that any
serious Emacs hacker should consider when digging deep into their &lt;code&gt;.emacs.d&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;As for my choice to move away from it, it all started as an experiment. I wanted
to see if I could have the same amount of control and readability over my
&lt;code&gt;init.el&lt;/code&gt; without an extra package. You see, most of the recent changes to my
setup involved trying to rely on Emacs own facilities to answer my needs, and
I am glad to say vanilla Emacs has been really a surprise in this regard. My
liaisons with &lt;a href=&#34;https://manueluberti.eu/posts/2020-09-18-project/&#34;&gt;project.el&lt;/a&gt; and
&lt;a href=&#34;https://manueluberti.eu/posts/2020-09-23-flymake/&#34;&gt;Flymake&lt;/a&gt; are nice examples of
this.&lt;/p&gt;
&lt;p&gt;Removing &lt;code&gt;use-package&lt;/code&gt; has meant rethinking the way I install packages,
especially if I want my setup to be ready to go any time I upgrade to a newer
version of Ubuntu. My solution was adding the packages I use to
&lt;code&gt;package-selected-packages&lt;/code&gt; and have a check on startup to make sure they are
installed. This works very well combined with &lt;code&gt;package-autoremove&lt;/code&gt;: if a package
is not listed under &lt;code&gt;package-selected-packages&lt;/code&gt;, Emacs takes care of the mess.&lt;/p&gt;
&lt;p&gt;All the &lt;code&gt;use-package&lt;/code&gt; blocks have been replaced with a combination of
&lt;code&gt;with-eval-after-load&lt;/code&gt;, &lt;code&gt;define-key&lt;/code&gt;, and &lt;code&gt;add-hook&lt;/code&gt;, which was not as
complicated as it might sound, and more often than not was similar to what I had
in my days before the &lt;code&gt;use-package&lt;/code&gt; takeover. True, I lost the nice readability
of &lt;code&gt;use-package&lt;/code&gt; with this massive edit. For example, its keywords have the
benefit of grouping settings together and clearly indicate when a new group
starts, but on the other hand now there is less macro-magic masking
package-related operations. As a result I have a more detailed insight of what
is really going on with my Emacs Lisp. For instance, I have gained a better
knowledge of what &lt;code&gt;run-with-idle-timer&lt;/code&gt; actually does.&lt;/p&gt;
&lt;p&gt;Again, it is a matter of personal preferences. By now the beauty of
&lt;code&gt;use-package&lt;/code&gt; is well-known in the Emacs world and all the praises are
well-deserved. Let me stress it again: &lt;code&gt;use-package&lt;/code&gt; makes your configuration
simpler to manage and easier to read. Those were the main reasons I switched to
it years ago, anyway.&lt;/p&gt;
&lt;p&gt;However, if you know what you are doing you can achieve a clean and pleasant
&lt;code&gt;init.el&lt;/code&gt; with what Emacs already offers. Does it take more effort? Yes, it
probably does. Is it really worth it? It&amp;rsquo;s up to you, mate. Am I just showing
off? No, come on, don&amp;rsquo;t be rude.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;See for instance &lt;a href=&#34;https://github.com/conao3/leaf.el#description&#34;&gt;here&lt;/a&gt; or
&lt;a href=&#34;https://two-wrongs.com/migrating-away-from-use-package&#34;&gt;here&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Quick starting is a bendy road</title>
      <link>https://manueluberti.eu/posts/2021-03-08-package/</link>
      <pubDate>Mon, 08 Mar 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-03-08-package/</guid>
      <description>&lt;p&gt;After more than a year with &lt;a href=&#34;https://manueluberti.eu/posts/2019-10-04-straight/&#34;&gt;straight&lt;/a&gt; as my
package manager, recently I have decided to sit down and look closely at how
I handle my Emacs packages.&lt;/p&gt;
&lt;p&gt;For all the interesting design choices and splendid documentation &lt;code&gt;straight&lt;/code&gt;
offers, I have never used neither its version freezing capabilities nor the
chances to edit the source code of a package to try possible fixes before
sending patches upstream. Two reasons, mainly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I update my packages on a daily basis, accepting the risk of breakages in
order to signal them to the maintainers and offer some help;&lt;/li&gt;
&lt;li&gt;when I want to send a patch, I have the source code of the package I am
working on outside of my Emacs configuration to avoid leaving something messy
around.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are not issues with &lt;code&gt;straight&lt;/code&gt;, of course. It all depends on what one needs
from their package manager.&lt;/p&gt;
&lt;p&gt;One of the major benefits that &lt;code&gt;straight&lt;/code&gt; brought to my setup is a boost in
startup speed. However, why don&amp;rsquo;t give &lt;code&gt;package-quickstart&lt;/code&gt; a try? Setting
&lt;code&gt;package-quickstart&lt;/code&gt; to &lt;code&gt;t&lt;/code&gt; instructs &lt;code&gt;package.el&lt;/code&gt; to pre-compute an autoload
file so that the activation of packages can be done much faster, resulting in a
&lt;a href=&#34;https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=6dfdf0c9e8e4aca77b148db8d009c862389c64d3&#34;&gt;faster
startup&lt;/a&gt;.
And indeed it does, resulting in more or less the same 0.4 seconds that I was
getting with &lt;code&gt;straight&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;One thing to be aware of is that, as the documention of &lt;code&gt;package-quickstart&lt;/code&gt;
suggests, “the use of ‘package-quickstart-refresh&amp;rsquo; every time the activation
need to be changed, such as when ‘package-load-list&amp;rsquo; is modified” is required.
Hence, I added an &lt;code&gt;:after-while&lt;/code&gt; advice to &lt;code&gt;package-menu-execute&lt;/code&gt; (bound to
&lt;code&gt;x&lt;/code&gt; in &lt;code&gt;Package Menu&lt;/code&gt;) to make sure &lt;code&gt;package-quickstart-refresh&lt;/code&gt; is run
after every upgrade.&lt;/p&gt;
&lt;p&gt;Again, mine is not an argument against &lt;code&gt;straight&lt;/code&gt;. It&amp;rsquo;s still a great package
manager and a fantastic alternative to the built-in &lt;code&gt;package.el&lt;/code&gt;. However, these
days my Emacs interactions do not need the fine-grained control &lt;code&gt;straight&lt;/code&gt;
provides.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Punching masculinity</title>
      <link>https://manueluberti.eu/posts/2021-01-18-snyder/</link>
      <pubDate>Mon, 18 Jan 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-01-18-snyder/</guid>
      <description>&lt;p&gt;When I first watched &lt;em&gt;Watchmen&lt;/em&gt;, I felt like Zack Snyder was playing the most
cruel of jokes on me. Since the difference between arts was still eluding me at
the time, I went in looking for the comic book that I love, wrongly assuming
Snyder would tell me what I already knew about its awesome pages. As a result,
I removed Snyder from my radar.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2021-01-18-sucker_punch.jpeg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Sucker Punch (Zack Snyder, 2011)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;As usual, when trustworthy film critics write about a director I hate it&amp;rsquo;s time
to approach that director again, and this blog has witnessed this experience
many times. I am even prepared to &lt;a href=&#34;https://manueluberti.eu/posts/2020-08-09-fifty-shades-of-criticism/&#34;&gt;kick my own
self&lt;/a&gt; for
misjudging a film and pretending to know what I am writing about. When it comes
to Zack Snyder, the film that opened new perspectives on him for me has been one
of his most poorly received and generally hated efforts, squeezed in between
&lt;em&gt;Watchmen&lt;/em&gt; and his deep dive into DC Comics. Namely, &lt;em&gt;Sucker Punch&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sucker Punch&lt;/em&gt; establishes quickly its focus, which is the psychological and
physical dominance of men over women. Opening with &lt;em&gt;Sweet Dreams&lt;/em&gt; by Eurythmics
sang by Emily Browning is not a simple pop choice to underline the abuse on the
screen. Instead it immediately sets the viewer in the mind of
Browning&amp;rsquo;s Babydoll character. Beside a voice over, Snyder stages the event
leading to the confinement of Babydoll in a psychiatric hospital with only
images and music. The lack of words is not casual and has nothing to do with the
video-music style Snyder&amp;rsquo;s been often accused of. We are trapped in
Babydoll&amp;rsquo;s nightmare as are her words. Silence is a natural reaction to shock
and trauma after all and certain events cannot be easily explained. The
commentary is stuck in our head as we are bound to relive them sooner or later.
Thus the multi-layered narrative of &lt;em&gt;Sucker Punch&lt;/em&gt; starts way before we enter
Babydoll&amp;rsquo;s fantasy world.&lt;/p&gt;
&lt;p&gt;Were it not for the clothes and the abrupt change in the cinematography, would
we really have noticed the switch from a hospital to a brothel? The twisted
reality of both worlds is much the same, with the girls forced in one way or the
other to act according to someone else&amp;rsquo;s plans. If the brothel functions as
another impossible cage, it is also the place where Babydoll can find within
herself the comfort of dancing and retire in the freedom of her own visions.
Dancing is her way to open herself to a world where she is free to decide what
is best for her, where her actions and words are what matters because they
matter to others as well. In the action sequences which translate the dances
Babydoll is the leader of her own will.&lt;/p&gt;
&lt;p&gt;The fact that the outfits that the girls wear in the brothel reveal just as much
as the ones in the combats mirrors what a typical male gaze is looking for:
reification. It does not matter whether the girl is dancing on a stage or facing
giant monsters as long as it is all a performance that the men in power can
appreciate from a safe distance. Snyder clearly stated that &lt;em&gt;Sucker Punch&lt;/em&gt; is an
explicit critique of &lt;a href=&#34;https://filmschoolrejects.com/interview-zack-snyder-on-the-sexuality-and-fanboy-hate-of-sucker-punch-36287c94c6b0/&#34;&gt;sexist geek
culture&lt;/a&gt;,
but he is subtler than, say, Paul Verhoeven. Whereas &lt;em&gt;Showgirls&lt;/em&gt; never ceases to
arouse the viewer and hit them hard as soon as they are too much involved with
the female bodies on the screen, &lt;em&gt;Sucker Punch&lt;/em&gt; implies more than it suggests
knowing well that sexual fantasies need little to start with. Considering that
&lt;em&gt;Spring Breakers&lt;/em&gt; came out only a year later, Snyder built the perfect bridge
from Verhoeven&amp;rsquo;s men-eating women of the 1990s to &lt;a href=&#34;https://manueluberti.eu/posts/2019-04-01-korine/&#34;&gt;Harmony Korine&amp;rsquo;s reckless
teens&lt;/a&gt;, joining &lt;a href=&#34;https://manueluberti.eu/posts/2020-08-29-anderson/&#34;&gt;Paul W. S. Anderson&lt;/a&gt; in the creation of complex, strong and at the same
time fragile female leads in a male-dominated world.&lt;/p&gt;
&lt;p&gt;Moreover, Snyder shares with Anderson the ability and the tenacity to build
unique visuals. While every other work of his comes with a solid background set
by others (George Romero, Frank Miller and Lynn Varley, well-known superheroes),
&lt;em&gt;Sucker Punch&lt;/em&gt; lives on its own and must take extra care to win the viewer&amp;rsquo;s
confidence. Snyder succeeds in this by skipping premises and wordily
explanations and trusting his images. The richness of details is overwhelming
and with no reason offered for seemingly random elements we are left to our own
sense of wonder, which is exactly what I expect from the cinema that I need.
Every dream sequence expands on the previous in size and scope, paralleling the
attempts at escaping the brothel and matching their increasingly higher stakes.
Yet Snyder knows that with novelty comes pleasure as much as boredom. Therefore
he anchors his settings to obvious albeit generic references to pop culture,
such as mechas, zombies, dragons, and samurais. Again, the lack of context lets
one&amp;rsquo;s imagination run wild, making for potentially infinite and thus living
connections beyond the screen.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sucker Punch&lt;/em&gt; remains a perfect example of how mainstream US cinema can still
be inventive and personal in spite of giant battles of industries competing to
standardize every image.
&lt;a href=&#34;https://screenrant.com/sucker-punch-three-versions-extended-directors-cut-differences/&#34;&gt;Rumours&lt;/a&gt;
of a director&amp;rsquo;s cut have been thrown around, but &lt;a href=&#34;https://www.youtube.com/watch?v=T2rZdN-m3Ow&#34;&gt;according to
Snyder&lt;/a&gt; it looks like it&amp;rsquo;s going to
take a while. Either way, the extended cut provides enough material to
experience one of the most personal and vital works of the last decade.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Re-solutions</title>
      <link>https://manueluberti.eu/posts/2021-01-03-resolutions/</link>
      <pubDate>Sun, 03 Jan 2021 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2021-01-03-resolutions/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been studying philosophy at Ca&amp;rsquo; Foscari for about a year and half now,
devoting most of my spare time to wonderful and wonderfully difficult books, and
enjoying every part of this journey. There is still a lot of ground to cover
because I see many gaps to fill and thoughts to process, but there is one thing
that I am sure of: it&amp;rsquo;s going to be the journey of a lifetime.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve not been so deeply fascinated and involved with something in a long while.
Ask my wife and she is going to tell you that perhaps my love for cinema can
match this passion for philosophy. I could agree, but cinema has not really been
on my side lately. Beside few exceptions, 2020 will not be remembered for the
films or the directors that inspired me to write.&lt;/p&gt;
&lt;p&gt;The last days of 2020 were dedicated to planning new year&amp;rsquo;s resolutions. To be
perfectly honest, I am not a great fan of new year&amp;rsquo;s resolutions. Most of the
time I forget about them in a couple of months. To circumvent my poor will,
I decided to keep the resolutions simple, small, and practical. This is what
I wrote down on my Bujo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More books and less films&lt;/li&gt;
&lt;li&gt;More philosophy and less fiction&lt;/li&gt;
&lt;li&gt;Running&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The first two are easy to adopt side by side. I watched way too many forgettable
films last year, leaving the couch with the horrible feeling of time wasted.
I do not want to repeat that. If there isn&amp;rsquo;t a film to watch, I want to turn off
the TV, forget about my Blu-ray collection, and grab the book next to me.&lt;/p&gt;
&lt;p&gt;As for the kind of book to pick up, I want to avoid contemporary fiction. There
is nothing wrong with contemporary fiction, of course, but most of the
contemporary books I read in 2020 proved to be little more than decent
entertainment. There is so much to read, and it&amp;rsquo;s not just philosophy. I want
more classics on my bedside table, and I want to read more from authors I love.
Consider it a sabbatical. I intend to come back to contemporary fiction next
year.&lt;/p&gt;
&lt;p&gt;Finally, running. Let&amp;rsquo;s just say I stopped for no good reason and I am waiting
for my contact lens to start again. As simple as this resolution looks,
it&amp;rsquo;s also the most necessary one. Between work and studies the time I spend at
my desk has become unhealthy, and I know how fresh air and exercise make me
feel.&lt;/p&gt;
&lt;p&gt;For all the good things in this planning, I see a couple of drawbacks here. If I
manage to stick to these resolutions, computing is going to play a different
role in my life. I will still be in front of my Emacs five days a week, but
that&amp;rsquo;s about it. Whereas this means less tinkering and less &lt;em&gt;githubbing&lt;/em&gt;, it also
means less writing for my blogs. Nevertheless, for the sake of my priorities,
I am willing to sacrifice writing just as I am willing to put cinema aside.&lt;/p&gt;
&lt;p&gt;Happy new year.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Embarking in a new affair with completions</title>
      <link>https://manueluberti.eu/posts/2020-12-25-embark/</link>
      <pubDate>Fri, 25 Dec 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-12-25-embark/</guid>
      <description>&lt;p&gt;What a year this 2020. Beside the pandemic changing our lives in unpredictable
ways, from the perspective of my Emacs usage much was going on in my &lt;code&gt;init.el&lt;/code&gt;
until I felt that &lt;a href=&#34;https://manueluberti.eu/posts/2020-09-08-end-of-era/&#34;&gt;a temporary break was
necessary&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Most of my tinkering concerned the minibuffer and its completion mechanisms.
I finished last year and started this one with Helm, but I am about to close
2020 with the built-in minibuffer completion and
&lt;a href=&#34;https://github.com/oantolin/embark&#34;&gt;Embark&lt;/a&gt; providing candidates. A solution
that &lt;a href=&#34;https://protesilaos.com/dotemacs/&#34;&gt;Protesilaos Stavrou&lt;/a&gt; explored and which
has been really suiting me.&lt;/p&gt;
&lt;p&gt;Before detailing how I adapted his approach to my preferences, though, let me
give you a bit of rationale. First, Helm rocks and it rocks hard. Its power is
evident after a couple of hours with it. I briefly used Icomplete tweaked to
display its results vertically, but I didn&amp;rsquo;t find it responsive enough to stick
with it. Then I found out about Selectrum, which fixed the responsiveness but
eventually was not adding a significant difference compared to Helm. True,
Selectrum has a simpler codebase, but were I only to look at my daily
interactions with Emacs, only the user interface can tell Helm and Selectrum
apart.&lt;/p&gt;
&lt;p&gt;Protesilaos took a different path. He wants to understand the code in front of
him, so the less changes the better. In this regard Helm, Selectrum, and even
Icomplete add a layer of indirection between him and the minibuffer. He is right
in this. The minibuffer is more capable than the plethora of completion
frameworks may suggest, and one can leverage its strength without forcing it to
behave in a totally new way. Protesilaos&amp;rsquo; reasoning got me thinking. Once again,
am I looking for a solution from the outside before having really understood
what lies underneath my beloved text editor?&lt;/p&gt;
&lt;p&gt;Following Protesilaos&amp;rsquo; steps, I set up the minibuffer to rely only on
&lt;a href=&#34;https://github.com/oantolin/orderless&#34;&gt;orderless&lt;/a&gt; and Embark, with
&lt;a href=&#34;https://github.com/minad/consult&#34;&gt;Consult&lt;/a&gt; chiming in for a some of operations
like better history in &lt;code&gt;shell-mode&lt;/code&gt; and an improved &lt;code&gt;apropos&lt;/code&gt;. What I added to
Protesilaos&amp;rsquo; code is the only thing that I felt was missing: a command to search
for the symbol at point in my project, with the results displayed in an
&lt;code&gt;embark-live-occur&lt;/code&gt; window in order to quickly jump to a specific entry. Over at
the Consult&amp;rsquo;s GitHub there are talks about a &lt;code&gt;consult-rg&lt;/code&gt; utility which would
serves this purpose, and there has been suggestions of using
&lt;code&gt;project-find-regexp&lt;/code&gt; as well.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-project-find-refs ()
  &amp;quot;Use `project-find-regexp&#39; to search for thing at point.&amp;quot;
  (interactive)
  (if-let (tap (thing-at-point &#39;symbol))
      (project-find-regexp tap)
    (message &amp;quot;Nothing at point to search for&amp;quot;)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Easy enough to understand. However, if you, like me, set up Embark like
Protesilaos does you&amp;rsquo;ll notice that this command doesn&amp;rsquo;t show any candidate
unless you type something at the &lt;code&gt;Jump to definition&lt;/code&gt; prompt. The candidates are
there already, though, so I have to avoid waiting for an input and display the
candidate list immediately.&lt;/p&gt;
&lt;p&gt;The solution is straightforward: just remove &lt;code&gt;embark-live-occur-after-input&lt;/code&gt;
from &lt;code&gt;minibuffer-setup-hook&lt;/code&gt; and use &lt;code&gt;embark-live-occur-after-delay&lt;/code&gt; instead.
I added a &lt;code&gt;:before&lt;/code&gt; advice on &lt;code&gt;mu-project-find-refs&lt;/code&gt; for this. The beauty of
this advice is that it works elsewhere as well. For instance, I have been using
it for &lt;code&gt;consult-flymake&lt;/code&gt; and &lt;code&gt;flyspell-correct-at-point&lt;/code&gt; too.&lt;/p&gt;
&lt;p&gt;Note that this advice requires a little change to the original
&lt;code&gt;minibuffer-setup-hook&lt;/code&gt; I have lifted from Protesilaos. Instead of adding
&lt;code&gt;embark-live-occur-after-input&lt;/code&gt; to it I am using this to ensure only
&lt;code&gt;embark-live-occur-after-input&lt;/code&gt; is present.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-embark-live-occur-after-input ()
  &amp;quot;Ensure only `embark-live-occur-after-input&#39; is active.&amp;quot;
  (remove-hook &#39;minibuffer-setup-hook #&#39;embark-live-occur-after-delay)
  (add-hook &#39;minibuffer-setup-hook #&#39;embark-live-occur-after-input))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Without a dedicated completion framework the minibuffer may feel rather basic at
first, but do not let it deceive you with its frugality. Like &lt;code&gt;project.el&lt;/code&gt;, all
it needs is love.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Restricting Flymake to my projects</title>
      <link>https://manueluberti.eu/posts/2020-11-21-flymake-projects/</link>
      <pubDate>Sat, 21 Nov 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-11-21-flymake-projects/</guid>
      <description>&lt;p&gt;My recent move &lt;a href=&#34;https://manueluberti.eu/posts/2020-09-23-flymake/&#34;&gt;from Flycheck to
Flymake&lt;/a&gt; has proven to be a
solid choice because the Emacs built-in syntax checker has yet to let me down.
And since by now I am sure my love for &lt;code&gt;project.el&lt;/code&gt; is absolutely obvious, could
I miss the opportunity to make these two underappreciated gems shine together?&lt;/p&gt;
&lt;p&gt;Honestly, though, the credit here goes all to Protesilaos Stavrou. &lt;a href=&#34;https://protesilaos.com/dotemacs/#h:b8bfcc05-c0d3-4093-b3fe-f06187d22c6a&#34;&gt;His Flymake
setup&lt;/a&gt;
made me aware of a neat way to limit the use of Flymake to the places I actually
need it.&lt;/p&gt;
&lt;p&gt;All I had to do was adapt it to my preferences:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-flymake-mode-activate ()
  &amp;quot;Activate `flymake-mode&#39; only in my projects.&amp;quot;
  (project--ensure-read-project-list)
  (let ((known-projects (project-known-project-roots))
        (pr (or (locate-dominating-file &amp;quot;.&amp;quot; &amp;quot;.git&amp;quot;)
                default-directory)))
    (if (and (eq buffer-read-only nil)
             (member pr known-projects))
        (flymake-mode 1)
      (flymake-mode -1))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I then hooked this little function to &lt;code&gt;prog-mode-hook&lt;/code&gt; and &lt;code&gt;text-mode-hook&lt;/code&gt; and
everything was good to go.&lt;/p&gt;
&lt;p&gt;Note that &lt;code&gt;project.el&lt;/code&gt; must be required before running &lt;code&gt;mu-flymake-mode-activate&lt;/code&gt;,
otherwise Emacs will complain about &lt;code&gt;project--ensure-read-project-list&lt;/code&gt; not being
available.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Extending project.el</title>
      <link>https://manueluberti.eu/posts/2020-11-14-extending-project/</link>
      <pubDate>Sat, 14 Nov 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-11-14-extending-project/</guid>
      <description>&lt;p&gt;In my &lt;a href=&#34;https://manueluberti.eu/posts/2020-09-18-project/&#34;&gt;first appreciation&lt;/a&gt; of
&lt;code&gt;project.el&lt;/code&gt; I wrote about a patch for &lt;code&gt;project--files-in-directory&lt;/code&gt;. It&amp;rsquo;s a
working solution, I won&amp;rsquo;t deny that, but patching code always feels hacky.
It&amp;rsquo;s like a dirty workaround you cannot avoid to look at every time you visit
your Emacs configuration.&lt;/p&gt;
&lt;p&gt;By inspecting the code of &lt;code&gt;project.el&lt;/code&gt; I noticed that &lt;code&gt;project-files&lt;/code&gt; is a
generic function. In Emacs Lisp parlance, a &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Generic-Functions.html&#34;&gt;generic
function&lt;/a&gt;
specifies an abstract operation with the actual implementation provided by
methods. This simply means that I can devise my own implementation of
&lt;code&gt;project-files&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(cl-defmethod project-root ((project (head local)))
  (cdr project))

(defun mu--project-files-in-directory (dir)
  &amp;quot;Use `fd&#39; to list files in DIR.&amp;quot;
  (let* ((default-directory dir)
         (localdir (file-local-name (expand-file-name dir)))
         (command (format &amp;quot;fd -t f -0 . %s&amp;quot; localdir)))
    (project--remote-file-names
     (sort (split-string (shell-command-to-string command) &amp;quot;\0&amp;quot; t)
           #&#39;string&amp;lt;))))

(cl-defmethod project-files ((project (head local)) &amp;amp;optional dirs)
  &amp;quot;Override `project-files&#39; to use `fd&#39; in local projects.&amp;quot;
  (mapcan #&#39;mu--project-files-in-directory
          (or dirs (list (project-root project)))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;project.el&lt;/code&gt; has to be made aware of my &lt;code&gt;local&lt;/code&gt; type now.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-project-try-local (dir)
  &amp;quot;Determine if DIR is a non-Git project.
DIR must include a .project file to be considered a project.&amp;quot;
  (let ((root (locate-dominating-file dir &amp;quot;.project&amp;quot;)))
    (and root (cons &#39;local root))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;mu-project-try-local&lt;/code&gt; just needs to be added to &lt;code&gt;project-find-functions&lt;/code&gt; to
make sure my non-Git projects become known and remembered across sessions when
I hit &lt;code&gt;C-x p p&lt;/code&gt;. This is way more elegant than the previous patch.&lt;/p&gt;
&lt;p&gt;Since I also never use Git submodules, I can push my extensions a little further.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu--backend (dir)
  &amp;quot;Check if DIR is under Git, otherwise return nil.&amp;quot;
  (when (locate-dominating-file dir &amp;quot;.git&amp;quot;)
    &#39;Git))

(defun mu-project-try-vc (dir)
  &amp;quot;Determine if DIR is a project.
This is a thin variant of `project-try-vc&#39;:
- It takes only Git into consideration
- It does not check for submodules&amp;quot;
  (let* ((backend (mu--backend dir))
         (root
          (when (eq backend &#39;Git)
            (or (vc-file-getprop dir &#39;project-git-root)
                (let ((root (vc-call-backend backend &#39;root dir)))
                  (vc-file-setprop dir &#39;project-git-root root))))))
    (and root (cons &#39;vc root))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;mu-project-try-vc&lt;/code&gt; now replaces &lt;code&gt;project-try-vc&lt;/code&gt; in &lt;code&gt;project-find-functions&lt;/code&gt;.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Emacs and Emanuele Severino</title>
      <link>https://manueluberti.eu/posts/2020-10-24-emacs-severino/</link>
      <pubDate>Sat, 24 Oct 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-10-24-emacs-severino/</guid>
      <description>&lt;p&gt;The recently available &lt;a href=&#34;https://emacssurvey.org/&#34;&gt;Emacs User Survey&lt;/a&gt; made me think, once again, about the
status of the technological world around me. The survey was painstakingly
discussed on the &lt;a href=&#34;https://lists.gnu.org/mailman/listinfo/emacs-devel&#34;&gt;emacs-devel&lt;/a&gt; mailing list, and generated some interesting
reactions among people outside the core developing team as well. More
interesting for the perspective of this writing are the reactions to the
discussions on &lt;code&gt;emacs-devel&lt;/code&gt;, because they reveal how great the distance between
me and some members of the Emacs community has been getting.&lt;/p&gt;
&lt;p&gt;You see, I am a failed Free Software supporter. I stopped campaigning in its
favour as soon as my wife&amp;rsquo;s school closed. There I had set up everything with
Free and Open Source software, and watching the teachers effectively do their
job with technological solutions they were not accustomed to made me happy. They
did not really care about the reasons behind my choices, but they respected my
contribution and were willing to overcome the first weeks of adaptation as long
as I could guarantee a comfortable working environment. When all of this ended
and I went back to software development, Free and Open Source software became
only a private concern. While still set on Linux,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; I left Debian for Ubuntu
because I didn&amp;rsquo;t want to spend time tinkering with my operative system to get
the best out of my Dell XPS. My distro-hopping days had come to an end. I just
wanted a system that would let me code, write, and browse the Web. I chose the
easy way.&lt;/p&gt;
&lt;p&gt;However, I have never stopped paying attention to the world around me and
behaving consciously. For instance, I hate wasting technology. The
3-and-a-half-year old Dell XPS where I am writing now replaced my 8-year old
Dell Inspiron, and my 7-year old HP server is still rock-solid and here to stay.
I have a 4-year old Fairphone, my first and only smartphone, that I intend to
keep for as long as possible. Beside gadgets, I&amp;rsquo;ve been on a vegan diet for
almost seven years and I consider it one of the best and most important choices
I&amp;rsquo;ve ever made regarding the ethics of what I eat. Come to think of it, as bad
as the Coronavirus crisis is turning out to be, it “fixed” the problem of
getting to the office every day, cutting my car usage down to once a week for
groceries&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; and thus decreasing my impact on the environment.&lt;/p&gt;
&lt;p&gt;This is why mixing technocraticism with pragmatism bothers me. The words
“pragmatic” and “pragmatism” have been kind of a constant in the IT world I live
in since “The Pragmatic Programmer” passed on my shelves. As every word in every
language, “pragmatic” and “pragmatism” are complex words and their actual
meaning is not trivially describable. Immanuel Kant distinguishes between
“practical” and “pragmatic”, but without asking him we can quickly see what the
dictionary tells us. According to the Oxford Learner&amp;rsquo;s Dictionary, “pragmatic”
means “solving problems in a practical and sensible way rather than by having
fixed ideas or theories”. Treccani, however, is closer to how “pragmatic” is
known nowadays: “what is being characterised by the prevailing of practical
interests over theoretical ones and ideal &lt;em&gt;values&lt;/em&gt;”. I won&amp;rsquo;t digress on the
multiple meanings of “ideal” to keep it simple and because “values” is actually
the key word for me here.&lt;/p&gt;
&lt;p&gt;“Pragmatic” and “pragmatism”, in common parlance, imply a separation between
theoretical thoughts and practical action, but it is actually impossible to draw
a line between the two. Every action is informed by a thought and every thought
shines a light on the action. We can act automatically without thinking about
it, sure, but that has nothing to do with voluntary actions. When we act, we act
according to a line of reasoning, and it&amp;rsquo;s that line of reasoning that
determines the value of the action. Take my choice of using Ubuntu on this Dell
XPS. A deliberate decision born out of my desire to prefer a comfortable option
instead of spending time to value more Free Software-compliant solutions.
I acted with a plan just as I acted with a plan when I chose my vegan diet.
Which choice is more pragmatic? Which one tells you more about my ethics?&lt;/p&gt;
&lt;p&gt;For years now I&amp;rsquo;ve been seeing the IT world as self-involved and rarely eager to
discuss larger issues. Problems such as the environmental crisis become material
for self-congratulatory speeches at conferences around the world, while in fact
the day after the conference we resume our lives as if nothing other than
ourselves mattered. We do that because, as Emanuele Severino says, we are scared
of what is beyond ourselves. We have replaced religious myths with the myth of
technology to find the immediate answers to deep and life-changing questions
that we do not want to investigate any further.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s not easy to understand the weight of words like “pragmatism” and
“pragmatic” in a technocratic world. We live in an age where we believe that
technology is our ultimate saviour. We are driven to accept technology as it is
because of the benefits it brings to ourselves. We trust our technology because
not doing so would result in the effort of questioning it, which in turns may
unveil the details that the technocratic world goes a long distance to hide.
More importantly, questioning technology could disclose what we really are and
need to be, something that takes will and courage to face. In a time like this,
Emanuele Severino&amp;rsquo;s claim that &lt;em&gt;technique&lt;/em&gt; is the dominant power of our time
sounds as forceful as ever.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Yes, I didn&amp;rsquo;t write GNU/Linux.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Yes, I am a bit of a recluse.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Reliable REPL switching and buffer loading with CIDER</title>
      <link>https://manueluberti.eu/posts/2020-10-16-repl-switching/</link>
      <pubDate>Fri, 16 Oct 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-10-16-repl-switching/</guid>
      <description>&lt;p&gt;As a Clojure developer one of the most important packages in my everyday Emacs
usage is &lt;a href=&#34;https://cider.mx/&#34;&gt;CIDER&lt;/a&gt;. There are many things to love about it, chief among them the
great interactive code evaluation and a sweet integration with popular Clojure
tools. I still haven&amp;rsquo;t played with its debugging facilities, but yes, I know I should.&lt;/p&gt;
&lt;p&gt;However, there is something that has been bothering me for quite a while: REPL
switching and buffer loading. I cannot pinpoint the exact moment when these
seemingly simple operations have become so unreliable, but I still remember when
switching to the correct REPL buffer according to the file in front of me used
to work as expected and loading a buffer didn&amp;rsquo;t require dealing with sessions
first.&lt;/p&gt;
&lt;p&gt;Let me give you more details before this writing starts to look like a random
rant. My projects are usually web applications, which means I have to write both
Clojure and ClojureScript. The Clojure side can be backed by &lt;code&gt;leiningen&lt;/code&gt; or a
&lt;code&gt;deps.edn&lt;/code&gt; file, and we are set on &lt;code&gt;shadow-cljs&lt;/code&gt; for ClojureScript. The first thing
I normally do is jack-in with &lt;code&gt;C-c C-x j j&lt;/code&gt; and then bring up the dedicated
ClojureScript REPL with &lt;code&gt;C-c C-x j s&lt;/code&gt;. Opening the browser and navigate to
something along the lines of &lt;code&gt;localhost:3000&lt;/code&gt; finalises the process of setting up
the ClojureScript REPL. That&amp;rsquo;s it, another good day of coding can begin. And
soon enough frustration follows.&lt;/p&gt;
&lt;p&gt;I tend to move from Clojure to ClojureScript files and vice versa quite a lot,
and hitting &lt;code&gt;C-c C-z&lt;/code&gt; frequently results in an unpredictable behaviour. Sometimes
the REPL of the expected type pops up, sometimes the other one appears,
sometimes I get a message about a missing REPL in the current session. Manually
linking the current buffer to the correct REPL with &lt;code&gt;C-c C-s b&lt;/code&gt; seems to fix the
problem, but it&amp;rsquo;s only a matter of time. It takes a couple of buffer switching
operations to bring the issue back. It is as if the link between the buffer and
the REPL has vanished. Even worse, without that link I can forget about &lt;code&gt;C-c C-k&lt;/code&gt;
to load the buffer.&lt;/p&gt;
&lt;p&gt;To overcome my frustration, I sat back and looked at how exactly I interact with
CIDER:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I only deal with one project at a time&lt;/li&gt;
&lt;li&gt;I need at most two running REPLs&lt;/li&gt;
&lt;li&gt;I don&amp;rsquo;t really care about firing up dedicated REPLs for other projects. If
I change project, I simply close every buffer of the current one and start
afresh&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This made me realise that the whole CIDER &lt;a href=&#34;https://docs.cider.mx/cider/0.26/usage/managing_connections.html#sessions&#34;&gt;session&lt;/a&gt; management is too much for my
basic needs.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu--cider-repl-regex (type)
  &amp;quot;Return the regexp to get the CIDER REPL based on TYPE.&amp;quot;
  (if (eq type &#39;clj)
      &amp;quot;\`*cider-repl .*clj[*]&amp;quot;
    &amp;quot;\`*cider-repl .*cljs&amp;quot;))

(defun mu--cider-repl-buffer-name (type)
  &amp;quot;Get buffer from `buffer-list&#39; according to TYPE.&amp;quot;
  (let ((regex (mu--cider-repl-regex type)))
    (car (seq-filter (lambda (s) (string-match-p regex s))
                     (mapcar #&#39;buffer-name (buffer-list))))))

(defun mu-cider-switch-to-repl (&amp;amp;optional type)
  &amp;quot;Open a CIDER REPL for TYPE.
If TYPE is not passed, open a Clojure REPL.&amp;quot;
  (interactive &amp;quot;P&amp;quot;)
  (let ((type (or type &#39;clj)))
    (if-let (buffer (mu--cider-repl-buffer-name type))
        (pop-to-buffer buffer)
      (message &amp;quot;No CIDER REPL available&amp;quot;))))

(defun mu-cider-switch-to-cljs-repl ()
  &amp;quot;Open a CIDER REPL for ClojureScript.&amp;quot;
  (interactive)
  (mu-cider-switch-to-repl &#39;cljs))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that I changed the value of &lt;code&gt;nrepl-repl-buffer-name-template&lt;/code&gt; to &lt;code&gt;*cider-repl %j %r:%S*&lt;/code&gt;, so you may have to change &lt;code&gt;mu--cider-repl-regex&lt;/code&gt; according to the value
in your setup.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;C-c C-z&lt;/code&gt; is bound to &lt;code&gt;mu-cider-switch-to-repl&lt;/code&gt; in &lt;code&gt;clojure-mode-map&lt;/code&gt; and
&lt;code&gt;clojurec-mode-map&lt;/code&gt;, and to &lt;code&gt;mu-cider-switch-to-cljs-repl&lt;/code&gt; in
&lt;code&gt;clojurescript-mode-map&lt;/code&gt;. This of course means that in &lt;code&gt;.cljc&lt;/code&gt; files I always get to
a Clojure REPL, but that&amp;rsquo;s fine. The code in there has to be tested on both
REPLs anyway, so it doesn&amp;rsquo;t matter which one comes up first.&lt;/p&gt;
&lt;p&gt;Now, let&amp;rsquo;s fix &lt;code&gt;C-c C-k&lt;/code&gt; as well.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu--cider-session-by-type (type)
  &amp;quot;Return the current CIDER session by TYPE.&amp;quot;
  (let* ((regex (mu--cider-repl-regex type))
         (system (sesman--system))
         (sessions (sesman-current-sessions system &#39;(buffer))))
    (car
     (seq-filter (lambda (s)
                   (string-match-p regex (buffer-name (cadr s))))
                 sessions))))

(defun mu--cider-load-buffer (session)
  &amp;quot;Load the current buffer according to SESSION.&amp;quot;
  (if session
      (let ((system (sesman--system))
            (buf (current-buffer)))
        (sesman--clear-links)
        (sesman-link-session system session &#39;buffer buf)
        (cider-load-buffer buf))
    (message &amp;quot;No CIDER REPL available&amp;quot;)))

(defun mu-cider-load-clj-buffer ()
  &amp;quot;Load the current Clojure buffer.&amp;quot;
  (interactive)
  (mu--cider-load-buffer (mu--cider-session-by-type &#39;clj)))

(defun mu-cider-load-cljc-buffer ()
  &amp;quot;Load the current ClojureC buffer.&amp;quot;
  (interactive)
  (let ((clj-session (mu--cider-session-by-type &#39;clj))
        (cljs-session (mu--cider-session-by-type &#39;cljs)))
    (if (and (null clj-session)
             (null cljs-session))
        (message &amp;quot;No CIDER REPL available&amp;quot;)
      (when clj-session
        (mu--cider-load-buffer clj-session))
      (when cljs-session
        (mu--cider-load-buffer cljs-session)))))

(defun mu-cider-load-cljs-buffer ()
  &amp;quot;Load the current ClojureScript buffer.&amp;quot;
  (interactive)
  (mu--cider-load-buffer (mu--cider-session-by-type &#39;cljs)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Just like for &lt;code&gt;C-c C-z&lt;/code&gt;, &lt;code&gt;C-c C-k&lt;/code&gt; is now bound to these commands according to the
mode map. For the sake of completeness, I have also disabled both &lt;code&gt;C-c C-k&lt;/code&gt; and
&lt;code&gt;C-c C-z&lt;/code&gt; in &lt;code&gt;cider-mode-map&lt;/code&gt; in order to avoid any kind of overshadowing by CIDER.&lt;/p&gt;
&lt;p&gt;Note that this approach works well with my intended CIDER usage. It may not be
what you are looking for if you are experiencing the same problems with REPL
switching and buffer loading. Still, I have been using these commands for a
while now and I am happy with them. CIDER has become my trusted Clojure IDE
again.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>We can fly with what we have</title>
      <link>https://manueluberti.eu/posts/2020-09-23-flymake/</link>
      <pubDate>Wed, 23 Sep 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-09-23-flymake/</guid>
      <description>&lt;p&gt;There was a time when I just didn&amp;rsquo;t trust Emacs. This lack of confidence was the
result of mixing good and evil: listening to other reliable Emacsers&amp;rsquo; opinions
while being too lazy to see for myself what Emacs could do. The outcome of this
endeavour was a frenetic copying-and-pasting of code snippets in my &lt;code&gt;init.el&lt;/code&gt;,
blindly dragging in more and more external packages.&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t get me wrong, external packages made Emacs what it is today for me.
I can&amp;rsquo;t even imagine using it without the likes of &lt;a href=&#34;https://magit.vc/&#34;&gt;Magit&lt;/a&gt; or
&lt;a href=&#34;https://cider.mx/&#34;&gt;CIDER&lt;/a&gt;. However, ignoring what is already there and reaching
for MELPA every time I have an itch to scratch has made me overlook built-in
niceties like &lt;a href=&#34;https://manueluberti.eu/posts/2020-09-18-project/&#34;&gt;project.el&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.gnu.org/software/manual/html_node/flymake/index.html#Top&#34;&gt;Flymake&lt;/a&gt;
did fell prey of this line of reasoning.
&lt;a href=&#34;https://www.flycheck.org/en/latest/&#34;&gt;Flycheck&lt;/a&gt; has always seemed like the way
go, so much so that I have barely registered João Távora&amp;rsquo;s and other Emacs
developers&amp;rsquo; efforts to improve Flymake. Since my recent experiments with
&lt;code&gt;project.el&lt;/code&gt; have turned my eyes inwards again, I wanted to see if I can live
without Flycheck.&lt;/p&gt;
&lt;p&gt;There are three places where I need on-the-fly syntax checking:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Emacs Lisp package files with &lt;a href=&#34;https://github.com/purcell/package-lint&#34;&gt;package-lint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clojure files with &lt;a href=&#34;https://github.com/borkdude/clj-kondo&#34;&gt;clj-kondo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Markdown files with &lt;a href=&#34;https://github.com/amperser/proselint&#34;&gt;proselint&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Kind people took care of Emacs Lisp and Clojure for me: &lt;code&gt;package-lint-flymake&lt;/code&gt;
comes with &lt;code&gt;package-lint&lt;/code&gt; and
&lt;a href=&#34;https://github.com/turbo-cafe/flymake-kondor&#34;&gt;flymake-kondor&lt;/a&gt; is a valid
alternative to
&lt;a href=&#34;https://github.com/borkdude/flycheck-clj-kondo&#34;&gt;flycheck-clj-kondo&lt;/a&gt;. But
I wasn&amp;rsquo;t able to find an existing integration with &lt;code&gt;proselint&lt;/code&gt;, so I decided to
provide one.&lt;/p&gt;
&lt;p&gt;My first tries with &lt;a href=&#34;https://github.com/purcell/flymake-easy&#34;&gt;flymake-easy&lt;/a&gt;
didn&amp;rsquo;t go very well. I asked for help on &lt;a href=&#34;https://emacs.stackexchange.com/questions/60769/configure-flymake-for-proselint&#34;&gt;Emacs
StackExchange&lt;/a&gt;,
before realizing I could use
&lt;a href=&#34;https://github.com/karlotness/flymake-quickdef&#34;&gt;flymake-quickdef&lt;/a&gt; like
&lt;code&gt;flymake-kondor&lt;/code&gt; does and &lt;a href=&#34;https://emacs.stackexchange.com/a/60771/5514&#34;&gt;answer to
myself&lt;/a&gt;. The next step was making
the solution available to everyone in the form of a package, and so I published
the little
&lt;a href=&#34;https://github.com/manuel-uberti/flymake-proselint&#34;&gt;flymake-proselint&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Flymake may not have the extensive support for checkers that its bigger brother
has, and it doesn&amp;rsquo;t seem to have the same huge community behind, but it&amp;rsquo;s still
a great library to play with. There is a comparison between the two projects on
the &lt;a href=&#34;https://www.flycheck.org/en/latest/user/flycheck-versus-flymake.html&#34;&gt;Flycheck
website&lt;/a&gt;,
so have a look there before making your choice. Note that the comparison doesn&amp;rsquo;t
mention &lt;code&gt;flymake-quickdef&lt;/code&gt;, which I find easier to use for extending Flymake.&lt;/p&gt;
&lt;p&gt;As for me, my requirements for on-the-fly syntax checking are met by Flymake. At
the end of the day it&amp;rsquo;s good to know that after all these years together Emacs
can still surprise me.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>It’s never too late</title>
      <link>https://manueluberti.eu/posts/2020-09-18-project/</link>
      <pubDate>Fri, 18 Sep 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-09-18-project/</guid>
      <description>&lt;p&gt;In his article &lt;a href=&#34;https://www.masteringemacs.org/article/whats-new-in-emacs-27-1&#34;&gt;What&amp;rsquo;s new in Emacs
27.1?&lt;/a&gt; Mickey
Petersen wrote that the built-in &lt;code&gt;project.el&lt;/code&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; is a library “not widely used”
and “about 20 years too late”, concluding that it is “a missed opportunity”.&lt;/p&gt;
&lt;p&gt;From what I can tell &lt;code&gt;project.el&lt;/code&gt; has been around since 2015. As everything else
in our Emacs world, it&amp;rsquo;s an effort from volunteers offered back to the
community. I see no reason to avoid it because it has been lacking the attention
of other well-known alternatives such as Projectile. On the contrary, I believe
that the more users try it and report what is missing back to the developers or
perhaps contribute with lines of code, the more chances this tiny library has to
grow and to get better.&lt;/p&gt;
&lt;p&gt;Instead of replacing &lt;code&gt;helm-ls-git&lt;/code&gt; with &lt;code&gt;project.el&lt;/code&gt;, I decided to leave Helm
aside for a moment and try my luck with Icomplete. I trust &lt;a href=&#34;https://protesilaos.com/&#34;&gt;Protesilaos
Stavrou&lt;/a&gt;&amp;rsquo;s opinion on it, anyway, so that&amp;rsquo;s another
good point to give it a shot. If you want a detailed setup for Icomplete be sure
to follow his lead. I limited myself to installing
&lt;a href=&#34;https://github.com/oantolin/icomplete-vertical&#34;&gt;icomplete-vertical&lt;/a&gt; and
&lt;a href=&#34;https://github.com/oantolin/orderless&#34;&gt;orderless&lt;/a&gt; to make my life easier.&lt;/p&gt;
&lt;p&gt;The entry point in &lt;code&gt;project.el&lt;/code&gt; is the prefix &lt;code&gt;C-x p&lt;/code&gt;. You can hit &lt;code&gt;C-h&lt;/code&gt; after that to
see the available key bindings. If you press &lt;code&gt;C-x p p&lt;/code&gt; a list of known projects
will appear. You will see that an option to select a new project is always
available, so it&amp;rsquo;s trivial to add new elements here.&lt;/p&gt;
&lt;p&gt;Once you land on your candidate hit &lt;code&gt;RET&lt;/code&gt; to be presented with a customizable list
of commands to act on the selected project. The keys to activate the commands
are highlighted so, for instance, you can press &lt;code&gt;f&lt;/code&gt; to start exploring your
project files.&lt;/p&gt;
&lt;p&gt;The defaults key bindings provided by &lt;code&gt;project.el&lt;/code&gt; suit me well enough, but I did
apply some changes to tune its behaviour to my needs.&lt;/p&gt;
&lt;p&gt;First, I don&amp;rsquo;t want to rely on &lt;code&gt;find&lt;/code&gt; for &lt;code&gt;project--files-in-directory&lt;/code&gt; when the
faster &lt;a href=&#34;https://github.com/sharkdp/fd&#34;&gt;fd&lt;/a&gt; is around the corner.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(el-patch-defun project--files-in-directory (dir ignores &amp;amp;optional files)
  (el-patch-remove
    (require &#39;find-dired)
    (require &#39;xref)
    (defvar find-name-arg))
  (let* ((default-directory dir)
         ;; Make sure ~/ etc. in local directory name is
         ;; expanded and not left for the shell command
         ;; to interpret.
         (localdir (file-local-name (expand-file-name dir)))
         (command (el-patch-swap
                    (format &amp;quot;%s %s %s -type f %s -print0&amp;quot;
                            find-program
                            localdir
                            (xref--find-ignores-arguments ignores localdir)
                            (if files
                                (concat (shell-quote-argument &amp;quot;(&amp;quot;)
                                        &amp;quot; &amp;quot; find-name-arg &amp;quot; &amp;quot;
                                        (mapconcat
                                         #&#39;shell-quote-argument
                                         (split-string files)
                                         (concat &amp;quot; -o &amp;quot; find-name-arg &amp;quot; &amp;quot;))
                                        &amp;quot; &amp;quot;
                                        (shell-quote-argument &amp;quot;)&amp;quot;))
                              &amp;quot;&amp;quot;))
                    (format &amp;quot;fd -t f -0 . %s&amp;quot; localdir))))
    (project--remote-file-names
     (sort (split-string (shell-command-to-string command) &amp;quot;\0&amp;quot; t)
           #&#39;string&amp;lt;))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then I had to tweak &lt;code&gt;project-kill-buffer-conditions&lt;/code&gt; for buffers in
&lt;code&gt;cider-repl-mode&lt;/code&gt; to ensure &lt;code&gt;project-kill-buffers&lt;/code&gt; catches them.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(add-to-list &#39;project-kill-buffer-conditions &#39;(major-mode . cider-repl-mode) t)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The last customization was adding quick keys for &lt;code&gt;magit-status&lt;/code&gt;, &lt;code&gt;project-shell&lt;/code&gt;,
and &lt;code&gt;ripgrep&lt;/code&gt; to &lt;code&gt;project-switch-commands&lt;/code&gt;. You don&amp;rsquo;t need my Elisp for that.&lt;/p&gt;
&lt;p&gt;As little and work-in-progress as it is, &lt;code&gt;project.el&lt;/code&gt; already covers everything
I usually need to handle my projects. It&amp;rsquo;s good to know that right within our
beloved text editor comes a tool like this. And no, Pat Benatar, this time is
not too little too late.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Note that &lt;code&gt;project.el&lt;/code&gt; is also available on
&lt;a href=&#34;https://elpa.gnu.org/packages/project.html&#34;&gt;ELPA&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>The vast relativity of trauma</title>
      <link>https://manueluberti.eu/posts/2020-09-09-still-processing/</link>
      <pubDate>Wed, 09 Sep 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-09-09-still-processing/</guid>
      <description>&lt;p&gt;As anyone approaching their twenties ravaged by hormones and victim of outbursts
of devastating infatuations, I did some crazy things. Acting foolish just to fit
in, neglecting family reunions to feel like a rebel, weekly looking for the
right clothes to show off my new personality with. The usual. I don&amp;rsquo;t regret
being that kid, but one thing I do regret is doing something the full extent of
which would hit me much later in my life.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2020-09-09-still-processing.jpeg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Still Processing (Sophy Romvari, 2020)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;One day, absolute certain of my feelings, I grabbed a photograph of me around
the age of five and gave it to the girl that I thought I was going to spend the
rest of my life with. The picture was a matter of playful anecdotes in my house,
displaying me with a nice red hat, colourful shirt and fancy shorts playing the
drums left unattended at a town festival. My parents and my grandparents had
always remembered that day as clearly as I&amp;rsquo;ve never been able to. Nobody noticed
the absence of the photograph for a long while. Some years later, my grandmother
was arranging old pictures to display in her living room and asked me for the
drums one. I stood silent first, then I invented random words about not being
sure where my mum could have put it, and left the room to hide somewhere.
I cried, as I am practically doing right now while I relive this episode in my
head.&lt;/p&gt;
&lt;p&gt;I am thrown back to that photograph and to what it meant to my grandmother by
Sophy Romvari&amp;rsquo;s latest short film &lt;a href=&#34;https://sophy.me/&#34;&gt;Still Processing&lt;/a&gt;. The
film starts with a box of previously unseen family photos and videotapes which
brings Romvari to confront herself with memories that were waiting to be
awakened. A fairly simple premise, probably something that can happen to
anybody, but Romvari does not limit herself to filming how photographs inform
the recollection of our family&amp;rsquo;s past.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Still Processing&lt;/em&gt; is how the Canadian director reacts at being reminded of the
trauma of losing two of her brothers. Understanding the pictures in front of her
implies absorbing the loss through the process of film-making. In making sense
of the images and filming how she does it, Romvari makes her, her family, and
everyone else willing to be there with her short film, a part of a process that
is bound to be perpetual. We can learn to live with a loss of a dear one and go
on with our lives, but can we really let it go? Someone or something could
trigger memories unexpectedly, and how we face those memories is up to us.&lt;/p&gt;
&lt;p&gt;Romvari chooses to put her camera in front of the photos and the videotapes,
presenting them along with her reaction and that of her brother. The past is
alive again, the present never really free from it. It&amp;rsquo;s as if for her the
images alone were not enough to comprehend the memories. Only by processing them
she is finally able to connect with her family, see how it was and what is lost.
The fact that the images are as new to us as they are to her places us closer to
where she stands. We are not her family, but we are as near as possible to what
she feels while working on the objective necessity of the past.&lt;/p&gt;
&lt;p&gt;At some point in &lt;em&gt;Still Processing&lt;/em&gt; Romvari says that trauma is relative, which
is true if we consider the specificity of it. After all, I have never
experienced something along the lines of what she has been through. However,
&lt;em&gt;Still Processing&lt;/em&gt; shows that trauma stops being relative whenever we are able
to share how it affects us. Romvari opens the wounds for us to see with a grace
that refuses commiseration and asks for empathy.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The end of an era?</title>
      <link>https://manueluberti.eu/posts/2020-09-08-end-of-era/</link>
      <pubDate>Tue, 08 Sep 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-09-08-end-of-era/</guid>
      <description>&lt;p&gt;Yesterday I noticed it has been a while since I wrote something here. I can
easily blame the lack of time and concentration, point the finger at my cinema
obsession, or even rant against Plato and Hegel for the energy-draining efforts
they require from me. Or I can simply be honest and say the truth out loud: my
journey with Emacs has come to a halt. Before calling me names and put the GNU
police on my back, hear me out.&lt;/p&gt;
&lt;p&gt;After years on a constant tinkering diet, my configuration has reached a point
where everything I need from it is covered. The key word in the previous
statement is &lt;em&gt;everything&lt;/em&gt;. What is this &lt;em&gt;everything&lt;/em&gt; I use Emacs for? Well, contrary
to the popular Emacs-centric workflows of many fellow Elisp lovers, &lt;em&gt;everything&lt;/em&gt;
is just prose (Markdown, LaTeX) and Clojure programming with some Elisp on the
side. What happens outside of my beloved text editor is up to Firefox,
Thunderbird, GNOME Terminal on some occasions, Slack for work and Gajim for
personal use, and KeePassXC. 99% of the times this is what my computing is about
these days.&lt;/p&gt;
&lt;p&gt;Although Emacs can be used for some of the things the aforementioned external
programs do, I am fine with this setup for a couple of reasons.&lt;/p&gt;
&lt;p&gt;Firstly, I like to keep my configuration as simple as possible. It used to sport
over 200 packages, but refinement after refinement has taken me to half that
number. It&amp;rsquo;s even a smaller total if I don&amp;rsquo;t count the package dependencies for
which there is no &lt;code&gt;use-package&lt;/code&gt; snippet in my &lt;code&gt;init.el&lt;/code&gt;. I am still far from
minimalism but maintenance is much easier now, because I know what I want from
Emacs and I want it to do just that.&lt;/p&gt;
&lt;p&gt;Secondly, but maybe more importantly, I don&amp;rsquo;t want any kind of distraction in my
text editor. This may be just me, but most of the times the Web, reading emails,
and messaging interfere with my concentration without adding real value. Emacs
is my peace of mind. I turn to it just for writing, knowing well it is not ready
to fetch emails or chatting with my wife or a co-worker because that&amp;rsquo;s how it is
set up. There is no technological secret here. It&amp;rsquo;s all about the psychological
pleasure of a maximized Emacs window with little more than my precious text in
it.&lt;/p&gt;
&lt;p&gt;This line of reasoning has led me to an Emacs configuration that does not
require that much fiddling with any more. I have to admit that not seeing
buffers from my &lt;code&gt;.emacs.d&lt;/code&gt; always presented by &lt;code&gt;helm-mini&lt;/code&gt; feels a bit strange.
At the same time, though, I am sure they will pop up again as soon as the next
irresistible package will reach ELPA or MELPA. Until then, Elisp can go on a
well-deserved holiday and have a couple of drinks on me.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The experience of watching</title>
      <link>https://manueluberti.eu/posts/2020-08-29-anderson/</link>
      <pubDate>Sat, 29 Aug 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-08-29-anderson/</guid>
      <description>&lt;p&gt;I am never aware of the amount of hours I dedicate to a director I am in love
with, although the actual number would probably scare me, leading me to think
about the time spent in front of a screen. Like in any love relationship, the
first days are frenetic. Everything seems to be happening right outside of
one&amp;rsquo;s reach, the mind wrapped into dreams and thoughts that are now slowly
withdrawing to leave enough room for new dreams and thoughts. Time makes no
sense and it takes days, weeks even for the fog that the mind is happily
struggling through to clear away.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2020-08-29-anderson.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Paul W. S. Anderson (by The Star)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Recently I&amp;rsquo;ve enjoyed a similar situation when I discovered what I had been
missing in Paul W. S. Anderson for many years. I was already familiar with some
of his work and I knew most of my favourite critics agree on the qualities of
his film-making skills, but I couldn&amp;rsquo;t see these qualities. I couldn&amp;rsquo;t see that
the man behind the films has always been a passionate and dedicated author since
his beginnings, firm in his belief of what matters in the cinema he wants to
do.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; Once again, I was reading films instead of watching them.&lt;/p&gt;
&lt;p&gt;Reading a film, in my case, means focusing on certain aspects. Due to the lack
of a proper education in film studies, books help me explore cinema and film
criticism: biographies give me background context, while monographs provide me
with some necessary tools to dig deeper. These books usually come recommended by
reliable sources (i.e., the aforementioned film critics), otherwise I just move
by instinct and read about a director or a genre at any given moment. Such an
approach has been proving useful since I started showing an interest in cinema
beyond entertainment, but it&amp;rsquo;s a narrow vision. By limiting my analysis to the
connection between the images on the screen and the words on paper I was missing
a crucial facet: the experience of watching.&lt;/p&gt;
&lt;p&gt;Anderson&amp;rsquo;s career makes for a great candidate to understand the experience of
watching because within the confines of specific genres (science fiction,
horror, and action), the English director has been consistently pushing for an
aesthetic of the senses. Anderson is primarily a visual artist, all of his films
living in their own world in terms of how they are perceived by the
viewer&amp;rsquo;s eyes. This is true in general in Anderson&amp;rsquo;s filmography, but it is
noticeable on a smaller scale too, such as in the &lt;em&gt;Resident Evil&lt;/em&gt; series where
each chapter has its decisively distinct look.&lt;/p&gt;
&lt;p&gt;The architecture of indoor and outdoor spaces is key to the eloquence of
Anderson&amp;rsquo;s style. Fascinated by mazes, he traps the characters in perpetual
displacement. Extra-dimensional forests, roads to nowhere, shape-shifting rooms,
claustrophobic tunnels, and impending natural disasters constraint people and
force the action to develop itself in places where escape, if any, comes at a
high cost. Never in Anderson the background functions perfunctorily as a
container for the action in the foreground. Whether controlled by an artificial
intelligence or a corporation, propelled by nature&amp;rsquo;s uncompromising power or
just waiting to be set in motion by human intervention, stages are as much of a
tangible presence as anything and anyone inhabiting them.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2020-08-29-re-final-chapter.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Resident Evil: The Final Chapter (Paul W. S. Anderson, 2016)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;The move to digital from &lt;em&gt;Resident Evil: Afterlife&lt;/em&gt; onwards has not only
increased the opportunities for Anderson to expand his architectural
designs.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; Digital has opened Anderson&amp;rsquo;s style to a contrast with analogue
forms. This contrast is already present in &lt;em&gt;Alien vs. Predator&lt;/em&gt;, where
computer-generated imagery extends the possibilities of suits and miniatures.
However, the complete upshot of digital power would come to life later, when
everything can be extended with the new technology. Artificiality does not
simply become the new organic. Anderson preserves the organic through its
changes via the artificial, in a dialectical interplay reminiscent of
Hegel&amp;rsquo;s sublation. In &lt;em&gt;Resident Evil: Retribution&lt;/em&gt;, Alice is a human-created
clone that discovers the instinct of motherhood by caring for a manufactured
daughter. Worlds do not collide: it is necessary to comprehend them in their
unity with their mutual relationship.&lt;/p&gt;
&lt;p&gt;In placing life and death at the centre of the interaction between natural and
artificial, Anderson has been revealing a humanitarian philosophy underpinning
the entire span of his career. In this regard, &lt;em&gt;Pompeii&lt;/em&gt; is his most poetic
accomplishment. A profoundly personal project, &lt;em&gt;Pompeii&lt;/em&gt; is a narration of lives
divided by social conflicts and clashes of powers eventually obliterated by
death, the greatest equalizer. Since the tragedy of the city of Pompeii is
well-known, the eruption of Mount Vesuvius is cathartic only insofar as it
liberates everybody from their personal struggles. Anderson again stretches and
maintains the contradiction until its unity is revealed, only this time the two
opposites are absolute dissolution and relative preservation instead of analogue
vis-a-vis digital. The ending of &lt;em&gt;Pompeii&lt;/em&gt; is precisely this difference removed.
Life as a romance is no more, death as the unassailable destroyer is no more.
Romance and thus life carry on after death, as temporary as they are
never-ending.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;His dedication is evident on the commentary tracks and the making-ofs
included in the Blu-rays.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Even though some of the Blu-rays come with a 3D option I don&amp;rsquo;t have the
hardware to enjoy it, hence I am not going to comment on it.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Fifty shades of criticism</title>
      <link>https://manueluberti.eu/posts/2020-08-09-fifty-shades-of-criticism/</link>
      <pubDate>Sun, 09 Aug 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-08-09-fifty-shades-of-criticism/</guid>
      <description>&lt;p&gt;Often when I read about films I bookmark the great writings I find. I like to
re-read my favourite film criticism just to see how it is done by real critics.
Sometimes here on this blog I single out pieces I consider beautiful, but what
I am not in the habit of doing is pointing my finger at the bad ones.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2020-08-09-fifty_shades_of_grey.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Fifty Shades of Grey (Sam Taylor-Johnson, 2015)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;What this piece aims to do is subverting a writing which can barely call itself
a review. Let&amp;rsquo;s call it a short-review to hide its blatant rant side. It&amp;rsquo;s a
write-up on Sam Taylor-Johnson&amp;rsquo;s &lt;em&gt;Fifty Shades of Grey&lt;/em&gt; which I am going to take
apart paragraph by paragraph because I want to offer another opinion, mostly an
opposite one, on each and everyone of them. By the way, I wrote the words I am
about to destroy.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;First things first: I know nothing about the book, I know nothing about the
director, and I didn&amp;rsquo;t even notice this film when it came out. There, my
ignorance on display.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The problem with a start like this is that one feels that they have to make sure
the reader will not be offended or at least should enter prepared. Why retreat
from the challenge with a poor display of humility? More importantly, why should
the reader care about my knowledge of the book? Does my ignorance have any
relevance to the words that follow? As we can see from the next paragraph I took
a completely different road, so there doesn&amp;rsquo;t seem to be any relation at all
with the rest of the comment.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;My problem with this kind of picture is that intimacy is one of the hardest,
if not the hardest, thing to get right in cinema. It&amp;rsquo;s not a matter of showing
off genitals, it&amp;rsquo;s a matter of chemistry. You must find the right actors, you
have to understand how the choice of words and the delivering of those words
come into play, you have to balance artificiality with natural instincts. Eyes
closed, you can feel it coming from the screen when it&amp;rsquo;s done right. A sex
scene to me is only interesting when it conveys intimacy, otherwise is soft
porn for the masses. Even a violation of that intimacy can be a worthy
subject, but it takes an even apter hand to impress me with that.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As much as the meaning of the word &lt;em&gt;intimacy&lt;/em&gt; is relevant to a film like &lt;em&gt;Fifty
Shades of Grey&lt;/em&gt;, this paragraph touches little of what Taylor-Johnson actually
captures on the screen and it fails to read the images for what they offer.
Intimacy is a beautiful thing, but it&amp;rsquo;s exactly what is missing in the lives of
Anastasia and Christian, and Taylor-Johnson works on this with her characters
from various angles.&lt;/p&gt;
&lt;p&gt;Anastasia is pure, virginal frailty, searching for the intimacy she has yet to
experience. At every step of her relationship with Christian she moves further
into what intimacy means for her, deluded by the illusion of a romance that is
never going to happen. On the other hand, Christian twists his version of
intimacy aroused by the power of control. He imposes closeness while keeping it
at a distance, just as Anastasia wants to skip the distance and grab the
closeness once and for all.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Fifty Shades of Grey&lt;/em&gt; fails on intimacy from the very beginning. The
stiffness of the dialogues makes it impossible to connect with the events, and
the actors play the mutual attraction with such coldness that it&amp;rsquo;s equally
impossible to accept the sex scenes as the power struggle they aim to be. I
can fake my interest in a rich guy with sadomasochistic tendencies, but I
cannot fake my interest in a bonding that never feels possible.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There are two issues here, the first being really obvious. There is no
“stiffness” and the supposed “coldness” was blindness to the subtleties in the
acting. Jamie Dornan is the arrogant prick who lives in a world so far and away
from our everyday one that it takes a forceful act to tear it down. His smug
conveys a self-assurance built on money and little else. The shifts in emotions
which Dornan translates with cracks on his face near the end are more effective
than the thousand words he could have used to explain his behaviour.&lt;/p&gt;
&lt;p&gt;Dakota Johnson goes even further. She starts by displaying on her face and with
her body a seemingly total lack of confidence, but what lies beneath comes out
through her voice, her lips, and her eyes. And it&amp;rsquo;s there on the screen from the
very first meeting with Christian, where Anastasia battles against the awkward
feeling of being on another planet and the will to preserve the control of her
action. She doesn&amp;rsquo;t know where she is and yet she does know where she is. The
more she falls for Christian the more she lets down her guard, and Johnson lets
her body run along with it, being it drunk or trapped in a dance.&lt;/p&gt;
&lt;p&gt;The second problem I was referring to is the power struggle in the sex scenes.
There is no power struggle here. We can see from the beginning where the power
is, so it&amp;rsquo;s not about power at all until the final moments. Sex in &lt;em&gt;Fifty Shades
of Grey&lt;/em&gt; is about controlling passion and passionate control. It&amp;rsquo;s about pushing
the limits knowingly until the veil is stripped and the limits are exposed for
what they are. The statement about class is to be found in everything but sex.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Moreover, it doesn&amp;rsquo;t help framing everything in an expensive music video
style, unless you want to highlight the artificiality of it. Artificiality
comes with a cost, though, and it&amp;rsquo;s not enough to toy with smooth lights to
build it. Even artificiality craves for believability, and from the helicopter
drive to the spotless rooms lushly decorated, everything looks simply lifted
from a trendy furniture catalogue.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I am glad I moved beyond this simplistic view of artificiality. Taylor-Johnson
is so much more than “smooth lights”, like in the incredible meeting scene,
where the playfulness of love intersects with anxiety and lust, fear and
curiosity, all cast under a dark orange light which shows and conceals at the
same time. This scene alone is enough to trash any accusation of “music video
style”.&lt;/p&gt;
&lt;p&gt;Moreover, believability is not about how I can relate to the furniture.
Taylor-Johnson builds spaces which reflect the emptiness of Christian. He uses
objects as he uses women, and he discards them oblivious to their meaning and
the reason of their presence. Cleanliness is coldness and that is what Christian
is, framed in rooms so impersonal and detached from the reality of his mind. He
is a stranger in warmer places as in, for instance, his parents&amp;rsquo; house, just
like Anastasia never really fits in large spaces with no sense of humanity in
them.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ōshima Nagisa and Bernardo Bertolucci paved the way for portrayals of sex and
intimacy beyond trite erotic fantasies. They grabbed the fantasies and pull
them on the screen without masks of fake prudery. Nobody has followed, and
&lt;em&gt;Fifty Shades of Grey&lt;/em&gt; surely hasn&amp;rsquo;t learned their lesson.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ōshima Nagisa and Bernardo Bertolucci did exploit prudery, but to reduce
Taylor-Johnson&amp;rsquo;s work to a “trite erotic fantasy” is misreading it to say the
least. It&amp;rsquo;s missing the meaning of fantasy entirely. &lt;em&gt;Fifty Shades of Grey&lt;/em&gt;
takes the fantasy of erotic pleasure and purges it of any satisfaction up to the
point where it becomes unbearable. Not because of what Taylor-Johnson chooses to
show and not to show when portraying sex, but because what matters is the grey
and not the shades.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;The comment was originally published on Letterboxd.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Paper Emacs</title>
      <link>https://manueluberti.eu/posts/2020-07-24-paper/</link>
      <pubDate>Fri, 24 Jul 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-07-24-paper/</guid>
      <description>&lt;p&gt;Since I moved to
&lt;a href=&#34;https://manueluberti.eu/posts/2019-08-25-bujo/&#34;&gt;bullet-journaling&lt;/a&gt;, most of the
time I have been writing on paper. Even though I&amp;rsquo;ve not restricted my Emacs time
to Clojure programming, paper and fountain pen have changed the way I approach
my favourite text editor for prose.&lt;/p&gt;
&lt;p&gt;As I was writing articles for my blogs, I&amp;rsquo;ve discovered that I wanted my
text-editing environment as close as possible to the beautiful, distraction-free
feeling of a blank page. There are plenty of themes and modes out there to suit
this particular need, but the combination of settings and packages I am about to
describe has proven to be the most satisfying so far.&lt;/p&gt;
&lt;h2 id=&#34;theme&#34;&gt;Theme&lt;/h2&gt;
&lt;p&gt;A light theme is the obvious choice to mirror the paper look. Since I have been
using &lt;a href=&#34;https://manueluberti.eu/posts/2020-03-16-modus-themes/&#34;&gt;modus-operandi&lt;/a&gt; for
a while now, there is no reason to look for something else. Everything in
&lt;code&gt;markdown-mode&lt;/code&gt; is supported, and with a &lt;code&gt;variable-pitch&lt;/code&gt; font
(&lt;a href=&#34;https://bboxtype.com/typefaces/FiraGO/#!layout=specimen&#34;&gt;FiraGO&lt;/a&gt; in my case)
the buffer stops resembling code for once.&lt;/p&gt;
&lt;h2 id=&#34;editing-modes&#34;&gt;Editing modes&lt;/h2&gt;
&lt;p&gt;I write all my articles in Markdown, but to achieve the desired distraction-free
effect I rely on Protesilaos Stavrou&amp;rsquo;s tips, slightly adjusted to my
preferences: &lt;a href=&#34;https://protesilaos.com/codelog/2020-07-16-emacs-focused-editing/&#34;&gt;&amp;ldquo;Focused editing tools&amp;rdquo; for
Emacs&lt;/a&gt; and
&lt;a href=&#34;https://protesilaos.com/codelog/2020-07-17-emacs-mixed-fonts-org/&#34;&gt;Emacs: configuring mixed fonts in Org
mode&lt;/a&gt;. I am
using a variant of
&lt;a href=&#34;https://github.com/rnkn/olivetti/issues/39#issuecomment-660606677&#34;&gt;Olivetti&lt;/a&gt;
like him, the only difference being the use of &lt;code&gt;text-scale-increase&lt;/code&gt; to increase
the text size and &lt;code&gt;text-scale-decrease&lt;/code&gt; to restore it back to normal when
leaving the mode.&lt;/p&gt;
&lt;p&gt;On top of that I use &lt;a href=&#34;https://github.com/rnkn/freeze-it&#34;&gt;freeze-it&lt;/a&gt;, which is
like having someone slapping my hands away from the text before the current
paragraph. Harsh, yes, but for the obsessive-compulsive writer an effective way
to keep the mind focused on one thing at the time. I can always review the
previous paragraphs later, and with the big picture in front of me editing often
becomes deleting.&lt;/p&gt;
&lt;h2 id=&#34;mode-line&#34;&gt;Mode-line&lt;/h2&gt;
&lt;p&gt;Once again, I find myself tweaking the mode-line. Setting
&lt;code&gt;modus-operandi-theme-3d-modeline&lt;/code&gt; has been enough thus far, but something less
prominent can be closer to the no-frills of my Bujo. Luckily &lt;a href=&#34;https://github.com/rnkn/freeze-it&#34;&gt;William
Rankin&lt;/a&gt;, the author of Olivetti and
&lt;code&gt;freeze-it&lt;/code&gt;, &lt;a href=&#34;https://github.com/rnkn/olivetti/issues/39#issuecomment-660606677&#34;&gt;shared his magic
tricks&lt;/a&gt; and
I followed his lead. I merely threw in coloured indicators for modified,
read-only, and remote buffers. Sorry, I can&amp;rsquo;t resist a little bit of fanciness.&lt;/p&gt;
&lt;h2 id=&#34;final-notes&#34;&gt;Final notes&lt;/h2&gt;
&lt;p&gt;There is more than this to my writing environment. For instance, I wrote about
&lt;a href=&#34;https://manueluberti.eu/posts/2020-03-07-ispell-with-helm/&#34;&gt;spell-checking&lt;/a&gt;
before and I use Artur Malabarba&amp;rsquo;s suggestions on &lt;a href=&#34;http://endlessparentheses.com/meta-binds-part-2-a-peeve-with-paragraphs.html&#34;&gt;paragraph
movements&lt;/a&gt;.
Not to mention the default Emacs facilities for marking, killing, yanking, and
moving around the buffer. Nonetheless, this should be enough to write prose in a
quieter and more fruitful way.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Notes on my digital consumption</title>
      <link>https://manueluberti.eu/posts/2020-07-16-digital-minimalism-2/</link>
      <pubDate>Thu, 16 Jul 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-07-16-digital-minimalism-2/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s been more than a year since I decided to try my best at &lt;a href=&#34;https://manueluberti.eu/posts/2019-04-10-digital-minimalism/&#34;&gt;Digital
Minimalism&lt;/a&gt; and
recently I&amp;rsquo;ve found myself discussing my efforts with non-believers. Reviewing
the resolutions described in the afore-linked article, I noticed a considerable
level of progress on two of them in particular:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I don&amp;rsquo;t use RSS feeds any more&lt;/li&gt;
&lt;li&gt;I check Letterboxd sparingly&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The first one may come as a surprise considering how highly I think of
&lt;a href=&#34;https://manueluberti.eu/posts/2017-08-01-elfeed/&#34;&gt;Elfeed&lt;/a&gt;. The problem is not the
tool one uses to collect updates, of course. The problem is how pervasive they
had become. I felt irresistibly attracted to the news provided by my collection
of RSS entries, pulled into my Elfeed buffer over and over again. But was it
worth it? How many times I was just marking an entry as read before reading it
fully? This can be very subjective, sure, and the beauty of an update speaks
more about my taste in RSS feeds than the actual content. Not to mention the
simple fact that one could just learn to set their priorities and schedule
feed-checking at precise times.&lt;/p&gt;
&lt;p&gt;Nonetheless, this is why I dropped Elfeed entirely and subscribed to a handful
of weekly and biweekly newsletters. I still want to be informed and I still like
to read about Emacs, philosophy, literature, cinema, and music, but the
information should not overwhelm me and be a distraction.&lt;/p&gt;
&lt;p&gt;As for Letterboxd, it has sadly become another digital addiction which in return
has been giving me little. Partly because one of my favourite film critics has
vanished from the website and partly because most of the recent films I watched
barely moved me, I&amp;rsquo;ve been neglecting my cinephilia in favour of books. As a
result, constantly browsing Letterboxd has developed into seldom visiting the
website to register my viewings. Unfortunately this also means my other blog
misses me, but the love for cinema is still strong, so it&amp;rsquo;s only a matter of
time.&lt;/p&gt;
&lt;p&gt;For someone working in IT it&amp;rsquo;s kind of ironic to write about detachment from
technology, I know. Rest assured, I am not working my way to the life of a
farmer. At the same time, though, I&amp;rsquo;d be lying if I say that having more time
for other things isn&amp;rsquo;t what I was really looking for after all.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>My reliable English dictionary</title>
      <link>https://manueluberti.eu/posts/2020-06-13-helm-wordnut/</link>
      <pubDate>Sat, 13 Jun 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-06-13-helm-wordnut/</guid>
      <description>&lt;p&gt;Despite my best efforts, my English needs constant work.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; I mostly write in
this language when I am online, but good prose is a matter of trying, failing,
trying again, failing again, and never give up. A bloody battle of words.&lt;/p&gt;
&lt;p&gt;An ever-present companion during my writing sessions is the dictionary. Since
I don&amp;rsquo;t want distractions of any kind, I want the dictionary to be offline and
easy to use. The more time I spend away from my text, the easier it is for my
mind to drift off.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://wordnet.princeton.edu&#34;&gt;WordNet&lt;/a&gt; meets my expectations almost exactly. It&amp;rsquo;s quickly installable on my
Ubuntu machine, a breeze to use, and it comes with a command-line tool (&lt;code&gt;wn&lt;/code&gt;) and
a graphical one (&lt;code&gt;wnb&lt;/code&gt;) which are simple and fast.&lt;/p&gt;
&lt;p&gt;However, I don&amp;rsquo;t want to leave Emacs for a task like this. I want to be able to
search for the word at point or to type something and see if what I have in mind
makes any sense at all. Why not taking advantage of the power of Helm?
That&amp;rsquo;s why I wrote &lt;a href=&#34;https://github.com/emacs-helm/helm-wordnut&#34;&gt;helm-wordnut&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As I explain in the README, using WordNet within Emacs was already possible
through &lt;a href=&#34;https://github.com/raghavgautam/helm-wordnet&#34;&gt;helm-wordnet&lt;/a&gt; and &lt;a href=&#34;https://github.com/gromnitsky/wordnut&#34;&gt;wordnut&lt;/a&gt;, but in both cases it doesn&amp;rsquo;t look like there
is much maintenance going on. I liked the idea of the former and the nice output
of the latter, and so I devised a package with what in my opinion is the
simplest and ideal Helm interface for WordNet. I can type what I want or just
hit &lt;code&gt;M-n&lt;/code&gt; to pick up the word a point. Pressing &lt;code&gt;RET&lt;/code&gt; on the desired candidate opens
a buffer with a detailed definition of the word. How much detail one needs is
customizable through &lt;code&gt;helm-wordnut-cmd-options&lt;/code&gt;, but the default covers more than
enough already for my usual writings.&lt;/p&gt;
&lt;p&gt;Given the existence of &lt;code&gt;helm-wordnet&lt;/code&gt; and &lt;code&gt;wordnut&lt;/code&gt;, I have not published
&lt;code&gt;helm-wordnut&lt;/code&gt; on any package archive at the moment. If somebody else finds it a
better alternative to the existing solutions, do reach out and let me know. I&amp;rsquo;ll
see what I can do about convincing the MELPA masterminds to accept yet another
WordNet front-end.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;The same can be said for my Italian, but let&amp;rsquo;s not dig too deep into my
shortcomings please.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Search only in visible buffers</title>
      <link>https://manueluberti.eu/posts/2020-06-05-helm-occur-visible-buffers/</link>
      <pubDate>Fri, 05 Jun 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-06-05-helm-occur-visible-buffers/</guid>
      <description>&lt;p&gt;Among the things that I dropped when I moved to Helm,
&lt;a href=&#34;https://github.com/abo-abo/swiper&#34;&gt;Swiper&lt;/a&gt; was one of the first ones to go.
Actually, the built-in Isearch replaced Swiper first. Then I found out about
&lt;a href=&#34;https://github.com/raxod502/ctrlf&#34;&gt;CTRLF&lt;/a&gt;, and now I have the best of both
worlds: I can use CTRLF for no-fuss searches and I can rely on &lt;code&gt;helm-occur&lt;/code&gt; for
a Swiper-like feeling.&lt;/p&gt;
&lt;p&gt;However, I often find myself with two buffers in the same window, and sometimes
I want to restrict my searches to just those two buffers. CTRLF and &lt;code&gt;helm-occur&lt;/code&gt;
are not suitable for this task, because they both work on a single buffer. And
&lt;a href=&#34;https://manueluberti.eu/posts/2020-03-13-helm-rg-refactoring/&#34;&gt;mu-helm-rg&lt;/a&gt; is way
too much for this, because it is best used in specific directories or
project-wise.&lt;/p&gt;
&lt;p&gt;Luckily enough, Thierry Volpiatto has recently introduced
&lt;code&gt;helm-occur-visible-buffers&lt;/code&gt; in Helm. Like the name says, this command runs
&lt;code&gt;helm-occur&lt;/code&gt; on all visible buffers. The results are grouped by buffer, making
them really easy and clear to navigate. When run in one buffer,
&lt;code&gt;helm-occur-visible-buffers&lt;/code&gt; behaves just like &lt;code&gt;helm-occur&lt;/code&gt;, so if you have a
key binding for the latter you can safely point it to the former and retain the
functionality you were accustomed to.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t know if my use-case is a niche one, but it&amp;rsquo;s good to know Helm got me
covered once again.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>A machine in the ghost</title>
      <link>https://manueluberti.eu/posts/2020-05-22-machine-ghost/</link>
      <pubDate>Fri, 22 May 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-05-22-machine-ghost/</guid>
      <description>&lt;p&gt;When cinema decided to make full use of the digital power at its disposal, I was
among the sceptics eager to jump at the screen whenever they noticed an apparent
lack of faith in more analogical means. Ironically enough, more than twenty
years later some of my favourite films are one-hundred percent digital.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2020-05-22-lake_mungo.jpeg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Lake Mungo (Joel Anderson, 2008)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;My most used critic back then was the supposed falseness in front of me. In
linking digital technology with artificiality, I was relegating a promising tool
to the role of trick, seeing its potential already fulfilled by special effects.
This is why Joel Anderson&amp;rsquo;s &lt;em&gt;Lake Mungo&lt;/em&gt; is such a fascinating film. By
exploiting digital technology as a trick, Anderson exposes and enhances the
limits of his images, forcing the viewer to accept visual shifts while coping
with the content within.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Lake Mungo&lt;/em&gt; defeats the horror genre just like it defeats what one can expect
from a ghost story. Anderson doesn&amp;rsquo;t use the &lt;em&gt;mockumentary&lt;/em&gt; as a
momentum-builder: he avoids building a momentum entirely. &lt;em&gt;Lake Mungo&lt;/em&gt; unfolds
as what at first looks like a television programme, one of those shows where
every effort is made to ensure that the audience experiences the tragedy of
others in all its reality.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; The talking heads of Alice Palmer&amp;rsquo;s family
recollect past moments and feelings whereas friends corroborate their integrity.
Except that Anderson makes use of empty spaces early in the film, inviting the
viewer to face loneliness before they realize that loneliness is ultimately the
most haunting of presences.&lt;/p&gt;
&lt;p&gt;The digital camera heightens the clarity of these spaces, their sheer beauty a
powerful contrast to the solitude that inhabits them. Moreover, the preciseness
of their appearance is everything that is missing from the increasingly
unsettling footage revealing who was Alice Palmer and what she has really seen.
These videos break the continuum of the interviews with distorted images,
dismantling the fiction in the perceived reality fictionalized in the
interviews. On the one hand, the footage shows the never-ending influence of
technology, its pervasive reach into our lives, and the easiness with which it
breaks privacy, like eyes unaffected by moral boundaries. On the other hand,
technology alone cannot suppress grief, because whatever the range of its
capabilities, technology still needs human intervention to operate, and that
control is bound to be emotionally driven. Digital technology stops as soon as
an analogue emotion outruns it.&lt;/p&gt;
&lt;p&gt;Furthermore, Anderson pushes forward and displaces the viewer. A &lt;em&gt;mockumentary&lt;/em&gt;
is usually a function of something else. It&amp;rsquo;s in its nature to play with a set
of rules and show the possibilities beyond them. &lt;em&gt;Lake Mungo&lt;/em&gt; is in fact very
much attracted to the rules of the documentary, but it bends them to reduce the
distance between the viewer and the &lt;em&gt;facts&lt;/em&gt;. Instead of unmasking the fake
truth, it covers the real lie until the very end, while acknowledging the charms
of fiction and how it can influence our thoughts. &lt;em&gt;Lake Mungo&lt;/em&gt; knows that it is
telling a story, and yet it takes no obtuse pride in this knowledge, because
Anderson shares it with the viewer. For example, when the ending credits start
to roll we are shown further sightings of Alice&amp;rsquo;s ghost. Anderson is not making
fun of us for not having noticed her ghost before. He is telling us she has
always been a part of the story that we have just witnessed. A story after all.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Lake Mungo&lt;/em&gt; is the rare film that positions itself among genres, crafting a new
one just for itself. Unnerving and terribly sad, Anderson&amp;rsquo;s work reasons about
trauma and the subsequent sorrow without looking for possible explanations.
Eventually, everybody is alone in their intimacy, and in that precious place
they rely only on themselves. A place so safe that even the smartest technology
hasn&amp;rsquo;t been able to reach. Yet.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;In Italy we have &lt;em&gt;Chi l&amp;rsquo;ha visto?&lt;/em&gt;, for instance.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Lockdown Beam: volatile-highlights</title>
      <link>https://manueluberti.eu/posts/2020-04-27-lockdown-beam-volatile-highlights/</link>
      <pubDate>Mon, 27 Apr 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-04-27-lockdown-beam-volatile-highlights/</guid>
      <description>&lt;p&gt;In the middle of a frantic editing session one can use some help. You are there
sweating, firing key bindings with a smugness you can barely keep at bay, with
buffers and windows appearing and disappearing. Point is visibly tired of your
powerful skills because, let&amp;rsquo;s face it, jumping around is not always
pleasurable.&lt;/p&gt;
&lt;p&gt;In situations such as this, you may find yourself killing a paragraph or a block
of code in order to yank it somewhere else. If that “somewhere else” is another
buffer (e.g., a Clojure file others worked on), I for one don&amp;rsquo;t want to make a
mess. This is precisely where Keitaro
Miyazaki&amp;rsquo;s &lt;a href=&#34;https://github.com/k-talo/volatile-highlights.el&#34;&gt;volatile-highlights&lt;/a&gt;
finds its place.&lt;/p&gt;
&lt;p&gt;Keitaro&amp;rsquo;s package adds a temporary highlight to the yanked text which makes the
addition stand out briefly, and so I get a sense of what I am doing in a buffer
I&amp;rsquo;m not entirely familiar with yet. There are other commands that benefit from
it, as the &lt;code&gt;volatile-highlights&lt;/code&gt; README explains. For instance, I find the
highlights around undo operations and &lt;code&gt;occur-mode&lt;/code&gt; occurrences very helpful.&lt;/p&gt;
&lt;p&gt;Although I didn&amp;rsquo;t play with it, &lt;code&gt;volatile-highlights&lt;/code&gt; can be extended to support
other packages and commands. Check out &lt;code&gt;vhl/define-extension&lt;/code&gt; and
&lt;code&gt;vhl/install-extension &lt;/code&gt;if you want to go down that road.&lt;/p&gt;
&lt;p&gt;This is the last entry in my “Lockdown Beam” series. I was hoping to outlast the
lockdown, but I lost the battle eventually. Anyway, do give these packages a
chance. It&amp;rsquo;s easy to overlook a little gem in the ever-growing Emacs ecosystem.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Lockdown Beam: native-complete</title>
      <link>https://manueluberti.eu/posts/2020-04-20-lockdown-beam-native-complete/</link>
      <pubDate>Mon, 20 Apr 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-04-20-lockdown-beam-native-complete/</guid>
      <description>&lt;p&gt;If you have followed this blog long enough, you know it&amp;rsquo;s been a while since &lt;a href=&#34;https://manueluberti.eu/posts/2017-10-07-m-x-shell/&#34;&gt;I
embraced shell-mode&lt;/a&gt;.
I even have a nice setup to &lt;a href=&#34;https://manueluberti.eu/posts/2019-07-01-bury/&#34;&gt;handle its
windows&lt;/a&gt; and to apply &lt;a href=&#34;https://manueluberti.eu/posts/2019-06-14-xterm/&#34;&gt;better
colours&lt;/a&gt; to it.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;However, before Troy
Hinckley&amp;rsquo;s &lt;a href=&#34;https://github.com/CeleritasCelery/emacs-native-shell-complete&#34;&gt;native-complete&lt;/a&gt;
fixed it for me, tab-completion in &lt;code&gt;shell-mode&lt;/code&gt; wasn&amp;rsquo;t quite the same experience
as the one on a separate terminal emulator. To be honest, I didn&amp;rsquo;t investigate
far enough to understand whether this was due to my Bash configuration or to
Emacs itself. The only thing I know is that Troy&amp;rsquo;s package got me where I wanted
to be.&lt;/p&gt;
&lt;p&gt;On MELPA you will find two packages: &lt;code&gt;native-complete&lt;/code&gt; and
&lt;code&gt;company-native-complete&lt;/code&gt;. I use both, but if you are not a Company user you can
live with the former alone.&lt;/p&gt;
&lt;p&gt;Anyway, I set up &lt;code&gt;native-complete&lt;/code&gt; with a hook to &lt;code&gt;shell-mode&lt;/code&gt; that runs
&lt;code&gt;native-complete-setup-bash&lt;/code&gt;, then another hook adds &lt;code&gt;company-native-complete&lt;/code&gt;
to &lt;code&gt;company-backends&lt;/code&gt;. Tom explained everything you need to start and other
useful details in the package README, so head over there for more details. The
only thing I can add is that I have &lt;code&gt;TAB&lt;/code&gt; bound to &lt;code&gt;company-complete&lt;/code&gt;
in &lt;code&gt;shell-mode-map&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Now that there is a &lt;a href=&#34;https://github.com/akermu/emacs-libvterm&#34;&gt;libvterm
integration&lt;/a&gt; for Emacs, staying with
&lt;code&gt;shell-mode&lt;/code&gt; may sound anachronistic, because proper terminal emulation with
your favourite shell is just a package away. But if you, like me, are happy with
Bash in &lt;code&gt;shell-mode&lt;/code&gt;, I can&amp;rsquo;t recommend &lt;code&gt;native-complete&lt;/code&gt; and
&lt;code&gt;company-native-complete&lt;/code&gt; enough. By the way, Troy&amp;rsquo;s work supports &lt;code&gt;csh&lt;/code&gt; and
other fancy things too, so you&amp;rsquo;re not strictly limited to Bash.&lt;/p&gt;
&lt;p&gt;Next time we will see highlights disappear suddenly. Is the &lt;a href=&#34;https://en.wikipedia.org/wiki/Evil_demon&#34;&gt;Evil
Genius&lt;/a&gt; operating my Emacs? Who knows.&lt;/p&gt;
&lt;p&gt;Stay safe.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Note that the &lt;a href=&#34;https://manueluberti.eu/posts/2020-03-16-modus-themes/&#34;&gt;Modus Themes&lt;/a&gt; have
built-in support for that, so I don&amp;rsquo;t customise &lt;code&gt;xterm-color-names&lt;/code&gt; and
&lt;code&gt;xterm-color-names-bright&lt;/code&gt; any more.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Lockdown Beam: mark-thing-at</title>
      <link>https://manueluberti.eu/posts/2020-04-13-lockdown-beam-mark-thing-at/</link>
      <pubDate>Mon, 13 Apr 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-04-13-lockdown-beam-mark-thing-at/</guid>
      <description>&lt;p&gt;Until I noticed that I was hardly using everything it has to offer, Leo
Liu&amp;rsquo;s &lt;a href=&#34;https://github.com/leoliu/easy-kill&#34;&gt;easy-kill&lt;/a&gt; was one of the packages
I used the most. Specifically, I wasn&amp;rsquo;t really taking advantage of its
capability of repeating mark commands, nor its keys to modify the current
selection. Although it doesn&amp;rsquo;t seem actively maintained this day, check it out
if you want to extend your mark/kill actions.&lt;/p&gt;
&lt;p&gt;As for me, Paul
Landes&amp;rsquo;s &lt;a href=&#34;https://github.com/plandes/mark-thing-at&#34;&gt;mark-thing-at&lt;/a&gt; has become my
best pal when it comes to marking. Granted, it&amp;rsquo;s way less powerful than
&lt;code&gt;easy-kill&lt;/code&gt;, but combine it with Emacs regular key bindings for killing and
there is nothing more that I need.&lt;/p&gt;
&lt;p&gt;You will find &lt;code&gt;mark-thing-at&lt;/code&gt; on MELPA, and if you follow my lead, you can
enable &lt;code&gt;mark-thing-at-mode&lt;/code&gt; and be happy with it. Note that if you do not
configure &lt;code&gt;mark-thing-at-keymap-prefix&lt;/code&gt; you end up with &lt;code&gt;C-x m&lt;/code&gt; as a
prefix for all the &lt;code&gt;mark-*&lt;/code&gt; commands now available at your fingertips. This
means that you will lose the key binding for &lt;code&gt;compose-mail&lt;/code&gt;, but I&amp;rsquo;m fine with
it.&lt;/p&gt;
&lt;p&gt;Whatever the prefix you end up with just append &lt;code&gt;C-h&lt;/code&gt; to it and you
will see the many commands at your disposal. You probably won&amp;rsquo;t need them all,
but it&amp;rsquo;s good to have a nice way to leverage these marking facilities.&lt;/p&gt;
&lt;p&gt;Next time we will explore a better completion system for &lt;code&gt;shell-mode&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Stay safe.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Lockdown Beam: hide-mode-line</title>
      <link>https://manueluberti.eu/posts/2020-04-06-lockdown-beam-hide-mode-line/</link>
      <pubDate>Mon, 06 Apr 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-04-06-lockdown-beam-hide-mode-line/</guid>
      <description>&lt;p&gt;Fun fact: the mode-line is the one Emacs thing I&amp;rsquo;ve probably spent most of my
tinkering time on. Why? Hard to tell. I consider it a place for useful
information, but the only interaction I have with it is &lt;em&gt;looking&lt;/em&gt; at it.
It&amp;rsquo;s not like some of those fancy packages offering you all manners of
interactive commands and assorted key bindings.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; It&amp;rsquo;s a, well, it&amp;rsquo;s a &lt;em&gt;line&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Among the several iterations, &lt;a href=&#34;https://manueluberti.eu/posts/2018-03-10-moody-and-minions/&#34;&gt;this
one&lt;/a&gt; has lasted the
longest. But then again, not too long ago I felt the irresistible call of
minimalism, and so I ended up with &lt;a href=&#34;https://manueluberti.eu/posts/2020-03-01-helm-ripgrep-mode-line/&#34;&gt;this other
one&lt;/a&gt;. And yet,
despite the immoderate amount of care I spent on it, there are times where
I just want it out of my way.&lt;/p&gt;
&lt;p&gt;For instance, I have no use for the mode-line in &lt;code&gt;shell-mode&lt;/code&gt; or when I am
reading the latest news via Elfeed. Luckily, Henrik
Lissner&amp;rsquo;s &lt;a href=&#34;https://github.com/hlissner/emacs-hide-mode-line&#34;&gt;hide-mode-line&lt;/a&gt; is
out there for this kind of messy work.&lt;/p&gt;
&lt;p&gt;Provided the mode you don&amp;rsquo;t want to see the mode-line in has a hook, you can add
&lt;code&gt;#&#39;hide-mode-line-mode&lt;/code&gt; to it with
&lt;a href=&#34;http://doc.endlessparentheses.com/Fun/add-hook.html&#34;&gt;add-hook&lt;/a&gt;. For Elfeed,
however, a different solution is needed:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-elfeed-open ()
  &amp;quot;Open elfeed and hide the mode-line.&amp;quot;
  (interactive)
  (mu-save-window-config-then-call #&#39;elfeed)
  (hide-mode-line-mode 1))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Have a look at &lt;a href=&#34;https://manueluberti.eu/posts/2019-06-21-windows/&#34;&gt;Passing the prefix argument
around&lt;/a&gt; if you want to know
what &lt;code&gt;mu-save-window-config-then-call&lt;/code&gt; does.&lt;/p&gt;
&lt;p&gt;Obviously you can go berserk and hide the mode-line everywhere with
Henrik&amp;rsquo;s package. But would you &lt;em&gt;really&lt;/em&gt; do that? Don&amp;rsquo;t be cruel and think about
it.&lt;/p&gt;
&lt;p&gt;Next time we are going to mark things, so keep your markers around.&lt;/p&gt;
&lt;p&gt;Stay safe.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;&lt;code&gt;M-x&lt;/code&gt; &lt;code&gt;^mode-line&lt;/code&gt; actually gives me ten entries, so what do
I know?&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Lockdown Beam: git-identity</title>
      <link>https://manueluberti.eu/posts/2020-03-30-lockdown-beam-git-identity/</link>
      <pubDate>Mon, 30 Mar 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-03-30-lockdown-beam-git-identity/</guid>
      <description>&lt;p&gt;The situation doesn&amp;rsquo;t seem to get any better, does it? We are still confined in
our homes, still wary about our movements and contacts. Since not even running
outside is allowed, I am getting lazy, to the point that I&amp;rsquo;ve never thought I&amp;rsquo;d
miss the gym so much. It&amp;rsquo;s time to resort to in-house crunches and push-ups,
I suppose.&lt;/p&gt;
&lt;p&gt;Meanwhile, let&amp;rsquo;s not forget about Emacs. Last time I hinted at a Git-related
package, but at this point wouldn&amp;rsquo;t writing about Magit again be out of
fashion?&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;When it comes to Git repository, the only thing I am not using Magit for is
checking and setting my identity. I&amp;rsquo;m not sure this is a common problem, but
I have to handle two Git identities on the same machine, one for personal
repositories and one for work projects.&lt;/p&gt;
&lt;p&gt;Without Akira
Komamura&amp;rsquo;s &lt;a href=&#34;https://github.com/akirak/git-identity.el&#34;&gt;git-identity&lt;/a&gt; this
situation was leading me to confusion, because more often than not I found
myself committing and pushing work stuff with my personal identity. One could
manually edit &lt;code&gt;.git/config&lt;/code&gt; every time or use Git own commands to deal with
this, but to me these are both cumbersome alternatives compared to the
simplicity of Konamura&amp;rsquo;s package.&lt;/p&gt;
&lt;p&gt;The only configuration needed for me after the installation was binding
&lt;code&gt;I&lt;/code&gt; to &lt;code&gt;git-identity-info&lt;/code&gt; in &lt;code&gt;magit-status-mode-map&lt;/code&gt;. Now once
I cloned a new repository I can easily check whether the identity is correct or
not.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/git-identity.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Furthermore, &lt;code&gt;git-identity&lt;/code&gt; can help even if for some random reason I didn&amp;rsquo;t
rely on &lt;code&gt;git-identity-info&lt;/code&gt;. With &lt;code&gt;git-identity-magit-mode&lt;/code&gt; enabled,
&lt;code&gt;git-identity&lt;/code&gt; makes sure that on &lt;code&gt;magit-commit&lt;/code&gt; a global or a local identity is
actually set.&lt;/p&gt;
&lt;p&gt;Next time we are going to play hide and seek with the mode-line.&lt;/p&gt;
&lt;p&gt;Stay safe.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I am kidding, Magit is always stylish.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Comrades, it’s a love story</title>
      <link>https://manueluberti.eu/posts/2020-03-26-comrades/</link>
      <pubDate>Thu, 26 Mar 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-03-26-comrades/</guid>
      <description>&lt;p&gt;I feel old and boring whenever I talk or write about Hong Kong cinema, which is
weird because I wasn&amp;rsquo;t there at the beginning. I was too young back when Italian
film nerds were exchanging obscure VHS tapes feeling like underground warriors.
My eyes were still set on Hollywood and little else from Europe, so it wasn&amp;rsquo;t
until a decent internet connection arrived that the gates finally opened.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2020-03-26-comrades.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Comrades: Almost a Love Story (Peter Chan, 1996)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;When the time came, I experienced my own kind of magic. Armed with a cheap
region-free DVD player I ransacked
&lt;a href=&#34;https://www.yesasia.com/global/en/home.html&#34;&gt;yesasia.com&lt;/a&gt; and other, now
defunct online stores, driven by insatiable euphoria. I just couldn&amp;rsquo;t stop. The
more I read, the more I wanted to watch. The more I watched, the more
I collected piles of DVDs. A flow of images, titles, directors became one
indistinct mass of data, impossible to keep up with. Honest pleasure was much
more important than the analytical approach.&lt;/p&gt;
&lt;p&gt;Those wild years of endless viewings seem a bit distant now that Hong Kong
cinema has definitely distanced itself from what it was. On the one hand, today
we have lavish productions, bombastic blockbusters good for a popcorn and Coke
combo. On the other hand, some directors and actors from the golden age are
pushing the nostalgia effect to its extreme consequences, struggling to keep the
old spirit alive, revisiting tropes that made them heroes amongst cinephiles all
over the world. In either case, something precious got lost along the way, as if
Hong Kong hasn&amp;rsquo;t really been able to cope with the handover yet.&lt;/p&gt;
&lt;p&gt;There is a moment in Peter Chan&amp;rsquo;s &lt;em&gt;Comrades: Almost a Love Story&lt;/em&gt; which captures
this sense of loss and bewilderment so well. We are near the end, Lai Siu Kwan
(Leon Lai) and Lee Kiu (Maggie Cheung) are in New York, a city whose crowded and
chaotic streets resemble those they left back in Hong Kong. Lee Kiu is working
as a tourist guide now, taking a group of Chinese mainlanders around the Big
Apple. Tired of taking pictures at the Statue of Liberty, a couple of women turn
to Lee Kiu, trying to understand when she is taking them to shopping. One of the
them asks about her home town, Guangzhou, and more importantly, points out the
mere fact that many Hongkongers are moving to China these days where they are
finding better jobs. Confronting these remarks with what has meant for Lee Kiu
and Lai Siu Kwan to leave mainland China and try to get by in Hong Kong is
devastating. Why leave China for another place if that is really where the
opportunities are up for grab? How can they stand the pace of a country growing
at a speed which is inevitably leaving many behind?&lt;/p&gt;
&lt;p&gt;Chan seems to believe that Hong Kong has never been the land of opportunities
for mainlanders with little hope to survive where they were born, and extends
his disillusion to New York by blending the differences between the two cities.
Eventually, all that Lee Kiu and Lai Siu Kwan are working for is to remain in
the same place after all. As immigrants in the United States as they were in
Hong Kong, they are looked down and confined to the isolation of the unknowns,
rejected by societies where solipsism has become the only means of survival.
Alone with their dreams of escape, Lee Kiu and Lai Siu Kwan have only their work
to hang on to.&lt;/p&gt;
&lt;p&gt;Right before the dramatic handover, Chan used romance to spell out the problems
of a city that has failed to deal with contemporaneity. The capitalism which
separated Hong Kong from China&amp;rsquo;s own brand of the same economic system, and
which ironically made most of its vibrant cinema possible, wrapped the city
obfuscating the reality outside, making it oblivious and totally unprepared to
what was about to come next. &lt;em&gt;Comrades: Almost a Love Story&lt;/em&gt; suggests that as
long as Lee Kiu and Lai Siu Kwan have each other, there is a way out. But what
happens when love is missing? Like Lee Kiu facing the inquiring tourist, Chan
doesn&amp;rsquo;t offer an answer. And as for Hong Kong cinema, the question still remains
open.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Lockdown Beam: eldoc-eval</title>
      <link>https://manueluberti.eu/posts/2020-03-23-lockdown-beam-eldoc-eval/</link>
      <pubDate>Mon, 23 Mar 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-03-23-lockdown-beam-eldoc-eval/</guid>
      <description>&lt;p&gt;As mentioned briefly at the end of the &lt;a href=&#34;https://manueluberti.eu/posts/2020-03-19-lockdown-beam-bm/&#34;&gt;previous
entry&lt;/a&gt;, today we are
going to play with Emacs&#39;
&lt;a href=&#34;http://doc.endlessparentheses.com/Fun/eldoc-mode.html&#34;&gt;Eldoc&lt;/a&gt;. Sometimes
I forget about it, but &lt;code&gt;eldoc-mode&lt;/code&gt; is one of those subtle things which improve
my daily Emacs routine. Besides giving me useful information in Elisp,
&lt;code&gt;eldoc-mode&lt;/code&gt; is always helpful when I am programming in Clojure thanks to its
integration with CIDER.&lt;/p&gt;
&lt;p&gt;However, there is another place where Eldoc comes in handy. You surely know that
when you press &lt;code&gt;M-:&lt;/code&gt; you can type an expression in the minibuffer and
then evaluate it by pressing &lt;code&gt;RET&lt;/code&gt;. But wouldn&amp;rsquo;t it be great to have
Eldoc for these quick runs to?&lt;/p&gt;
&lt;p&gt;The answer is not “Well, yes!”, but “Hey, there is a mode for it!”, which is
what an Emacser regularly replies when asked about any matter whatsoever. This
time the mode comes with the package of the day: Thierry
Volpiatto&amp;rsquo;s &lt;a href=&#34;https://github.com/thierryvolpiatto/eldoc-eval&#34;&gt;eldoc-eval&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Once installed, activating &lt;code&gt;eldoc-eval&lt;/code&gt; is easy. Turn on &lt;code&gt;eldoc-in-minibuffer-mode&lt;/code&gt;
and everything is set.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/eldoc-eval.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Nice and simple. You may not like the Eldoc information appearing in the
mode-line, but Thierry got you covered with &lt;code&gt;eldoc-in-minibuffer-show-fn&lt;/code&gt;. If
you use tooltips, try setting this to &lt;code&gt;#&#39;tooltip-show&lt;/code&gt;. There are other features
in &lt;code&gt;eldoc-eval&lt;/code&gt; worth of notice, so be sure to check out its README if you want
more juice.&lt;/p&gt;
&lt;p&gt;As for me, I am happy with just enabling &lt;code&gt;eldoc-in-minibuffer-mode&lt;/code&gt;. I patched
&lt;code&gt;eldoc-show-in-mode-line&lt;/code&gt; to fit the help message properly in my custom
mode-line, but that&amp;rsquo;s it. If you are using your own mode-line too, I am leaving
that as a little exercise.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Next time we will meet a Git-related package which doesn&amp;rsquo;t include the letters
“m” and “a” in its name.&lt;/p&gt;
&lt;p&gt;Stay safe.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I used &lt;code&gt;el-patch&lt;/code&gt; for this.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Lockdown Beam: bm.el</title>
      <link>https://manueluberti.eu/posts/2020-03-19-lockdown-beam-bm/</link>
      <pubDate>Thu, 19 Mar 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-03-19-lockdown-beam-bm/</guid>
      <description>&lt;p&gt;I guess there is no need to explain the choice of the word “lockdown” in the
title. I don&amp;rsquo;t know about you, but here in Italy things are getting worse and
worse. Every time I look outside the window I see desolation, and for a George
Romero fan this is getting scarier and scarier. I am lucky, though. I can work
from home (thank you, &lt;a href=&#34;https://7bridges.eu&#34;&gt;7bridges&lt;/a&gt;) and study from home
(thank you, &lt;a href=&#34;https://www.unive.it/&#34;&gt;Ca&amp;rsquo; Foscari&lt;/a&gt;). But I can also take the time
to spread words of love about some Emacs packages I rarely talk about.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Lockdown Beam&lt;/em&gt; aims to be a series of small articles on packages that deserve
more attention, but I can&amp;rsquo;t tell now how long this series is going to run.
I tend to use &lt;em&gt;all&lt;/em&gt; the packages configured in my &lt;code&gt;init.el&lt;/code&gt;, and most of them
are fairly popular, so it&amp;rsquo;s not like digging obscure entries from the dust of my
setup. However, out of more than 100 packages, I am pretty sure I can find a
decent amount of poor neglected things in there.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s start with Jo Odland&amp;rsquo;s &lt;a href=&#34;https://github.com/joodland/bm&#34;&gt;bm.el&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are many great ways to bookmark things in Emacs,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; but sometimes a
visual clue just adds a good feeling of immediacy one (e.g., myself) can find
pleasant. The README says this is a feature from Visual Studio that the author
was missing in Emacs, but you will have to check for yourself whether this is
something Visual Studio does. You know there is no such thing as a different
text editor for me.&lt;/p&gt;
&lt;p&gt;Following the documentation, setting up &lt;code&gt;bm.el&lt;/code&gt; is easy. If you use
&lt;code&gt;use-package&lt;/code&gt;, there is a nice example ready for copy-and-paste at &lt;a href=&#34;https://github.com/joodland/bm#configuring-bmel-with-use-package&#34;&gt;Configuring
bm.el with
use-package&lt;/a&gt;.
I started from there, but I replaced the hook on &lt;code&gt;vc-before-checkin-hook&lt;/code&gt; with a
hook on &lt;code&gt;magit-pre-refresh-hook&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I find &lt;code&gt;bm.el&lt;/code&gt; really useful when studying source code from others, or when
I want to quickly set jumping points in a log file cluttered with stacktraces.
It&amp;rsquo;s quicker then moving around with Isearch or &lt;code&gt;helm-occur&lt;/code&gt;, and unlike
&lt;a href=&#34;https://github.com/abo-abo/avy&#34;&gt;avy&lt;/a&gt; it&amp;rsquo;s not limited to what is currently
visible on the screen.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s all for today. Next time a little friend will help me exploit Eldoc.&lt;/p&gt;
&lt;p&gt;Stay safe.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Check out what Protesilaos Stavrou has to say about
&lt;a href=&#34;https://protesilaos.com/codelog/2020-03-08-emacs-registers/&#34;&gt;registers&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Light is right, alright?</title>
      <link>https://manueluberti.eu/posts/2020-03-16-modus-themes/</link>
      <pubDate>Mon, 16 Mar 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-03-16-modus-themes/</guid>
      <description>&lt;p&gt;For a long, long while I was a happy &lt;a href=&#34;https://github.com/bbatsov/solarized-emacs&#34;&gt;Solarized
Light&lt;/a&gt; user. Then, somehow,
I switched to Steve Purcell&amp;rsquo;s version of &lt;a href=&#34;https://github.com/purcell/color-theme-sanityinc-tomorrow&#34;&gt;Tomorrow
Night&lt;/a&gt;, and no other
theme has been able to take me away from that colour scheme. There were times
where I found myself looking for a new light theme, but the lack of a pleasant
one&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; left me in the comfortable palettes of Tomorrow Night. I even put on
MELPA what at first looked like &lt;a href=&#34;https://github.com/manuel-uberti/doneburn-theme&#34;&gt;the light
I needed&lt;/a&gt;, but the dark side
still kept me within its reach.&lt;/p&gt;
&lt;p&gt;Why didn&amp;rsquo;t I go back to Solarized Light if the experience had been so joyful?
I guess getting older distanced me somehow from the pleasures of a yellowish
background. Don&amp;rsquo;t get fooled by my grumpiness, though. It&amp;rsquo;s still one of the
best Emacs themes out there, so be sure to check it out if you are after a light
theme.&lt;/p&gt;
&lt;p&gt;As for me, I&amp;rsquo;ve recently seen &lt;em&gt;the light&lt;/em&gt; again. Protesilaos Stavrou open
sourced a couple of beautiful themes, &lt;code&gt;modus-vivendi&lt;/code&gt; and &lt;code&gt;modus-operandi&lt;/code&gt;, both
available at &lt;a href=&#34;https://gitlab.com/protesilaos/modus-themes&#34;&gt;modus-themes&lt;/a&gt;, on
ELPA, and on MELPA. I am sure the apt readers remember that &lt;code&gt;modus-vivendi&lt;/code&gt;
first appeared on these pages right at the end of &lt;a href=&#34;https://manueluberti.eu/posts/2020-03-01-helm-ripgrep-mode-line/&#34;&gt;Ripgrepping with Helm: the
mode-line&lt;/a&gt;, but
since then &lt;code&gt;modus-operandi&lt;/code&gt; has become the default.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/modus-operandi.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;What I found intriguing in Protesilaos&amp;rsquo; work is the reasoning behind the themes.
I have never cared about the &lt;a href=&#34;https://www.w3.org/WAI/standards-guidelines/wcag/&#34;&gt;Web Content Accessibility
Guidelines&lt;/a&gt;, which is a shame
considering how poor my eyesight has been since I was a kid. The Modus Themes
are built with those guidelines in mind and it shows immediately. The text is
always readable, it doesn&amp;rsquo;t matter what face is applied over it. It&amp;rsquo;s not only a
matter of being able to read, but to always distinguish specific contexts. For
instance, comments are clearly separated from the rest of the code without
sacrificing legibility. I know this sounds reasonable and it may already be the
case for the theme you are currently using, but for my eyes it has never been so
easy. And yes, I did tend to prefer beauty over accessibility.&lt;/p&gt;
&lt;p&gt;Another remarkable thing about the Modus Themes is that both variants cover a
wide range of Emacs packages, something not so axiomatic in the Emacs theme
world. Admittedly, I bothered Protesilaos with some issues about Helm and few
other packages, but he quickly tamed my wild sensibility. &lt;em&gt;“If a compromise is
ever necessary between aesthetics and accessibility, it shall always be made in
the interest of latter”&lt;/em&gt;, the README points out. So far no complaints from the
aesthetics department, though.&lt;/p&gt;
&lt;p&gt;Protesilaos explained his ideas in &lt;a href=&#34;https://www.youtube.com/watch?v=gz8yifu6pGo&#34;&gt;My accessible Emacs
themes&lt;/a&gt;, a valuable presentation
which you should watch before &lt;a href=&#34;https://www.youtube.com/watch?v=TIUXYDaq9AY&#34;&gt;My Modus Themes are in
ELPA&lt;/a&gt;. Considering that I came from
years with a dark background, the switch to a light one has been less traumatic
than it may seem. It could be due to the fact that Solarized Light was there way
before the dark age, why not? Nevertheless, the new colour scheme is as simple
and beautiful as it is effective. See you around, Sith Lord.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;An obvious matter of personal taste.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>A better approach at searching with Helm</title>
      <link>https://manueluberti.eu/posts/2020-03-13-helm-rg-refactoring/</link>
      <pubDate>Fri, 13 Mar 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-03-13-helm-rg-refactoring/</guid>
      <description>&lt;p&gt;When I wrote about how I use &lt;code&gt;ripgrep&lt;/code&gt; with Helm in &lt;a href=&#34;https://manueluberti.eu/posts/2020-02-22-ripgrepping-with-helm/&#34;&gt;Ripgrepping with Helm&lt;/a&gt;, I overlooked something. Actually,
let&amp;rsquo;s be honest. I didn&amp;rsquo;t study my usual search habits like I should&amp;rsquo;ve had to.&lt;/p&gt;
&lt;p&gt;Looking closely at my per-project searches, there are two patterns I tend to
follow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;searching for the thing at point in the current project;&lt;/li&gt;
&lt;li&gt;searching for &lt;em&gt;something&lt;/em&gt; in the current project.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The first pattern is somehow addressed by the previous incarnation of
&lt;code&gt;mu-helm-rg&lt;/code&gt;, but it can be improved by leveraging &lt;code&gt;helm&lt;/code&gt;&amp;rsquo;s &lt;code&gt;:input&lt;/code&gt;
&lt;a href=&#34;https://github.com/emacs-helm/helm/wiki/Developing&#34;&gt;option&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For the second pattern &lt;code&gt;helm-sources-using-default-as-input&lt;/code&gt; needs to be
temporarily disabled, otherwise &lt;code&gt;helm&lt;/code&gt; would start with the thing at point as
&lt;code&gt;:default&lt;/code&gt; and would run an initial search that most of the times is not what I
need. I can still pick up the thing at point with &lt;code&gt;M-n&lt;/code&gt; if needed, but
in this case I prefer typing what I want to find.&lt;/p&gt;
&lt;p&gt;To achieve this, I decided to reimplement &lt;code&gt;helm-grep-ag-1&lt;/code&gt; according to my needs:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu--helm-rg (directory &amp;amp;optional with-tap type)
  &amp;quot;Build the Helm command for `mu-helm-rg&#39;.

For DIRECTORY, WITH-TAP, and TYPE see `mu-helm-rg&#39;. This command
disables `helm-sources-using-default-as-input&#39; temporarily to
avoid the automatic search which starts when :default is set to
`thing-at-point&#39; (the default behaviour). The search starts
automatically only with WITH-TAP.&amp;quot;
  (let ((helm-sources-using-default-as-input nil)
        (command (helm-grep--ag-command))
        (input (when with-tap
                 (thing-at-point &#39;symbol &#39;no-properties))))
    (setq helm-source-grep-ag
          (helm-make-source (upcase command) &#39;helm-grep-ag-class
            :header-name (lambda (name)
                           (format &amp;quot;%s in %s&amp;quot;
                                   name (abbreviate-file-name directory)))
            :candidates-process (lambda ()
                                  (helm-grep-ag-init directory type))))
    (helm-set-local-variable &#39;helm-input-idle-delay helm-grep-input-idle-delay)
    (helm :sources &#39;helm-source-grep-ag
          :keymap helm-grep-map
          :history &#39;helm-grep-ag-history
          :input input
          :truncate-lines helm-grep-truncate-lines
          :buffer (format &amp;quot;*helm %s*&amp;quot; command))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now &lt;code&gt;mu-helm-rg&lt;/code&gt; must be updated, but the changes are trivial. I only need to
consider a new parameter, &lt;code&gt;with-tap&lt;/code&gt;, and call &lt;code&gt;mu--helm-rg&lt;/code&gt; properly.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-helm-rg (directory &amp;amp;optional with-tap with-types)
  &amp;quot;Search in DIRECTORY with RG.

With WITH-TAP, search for thing at point. With WITH-TYPES, ask
for file types to search in.&amp;quot;
  (interactive &amp;quot;P&amp;quot;)
  (require &#39;helm-adaptive)
  (mu--helm-rg (expand-file-name directory)
               with-tap
               (helm-aif (and with-types
                              (helm-grep-ag-get-types))
                   (helm-comp-read
                    &amp;quot;RG type: &amp;quot; it
                    :must-match t
                    :marked-candidates t
                    :fc-transformer &#39;helm-adaptive-sort
                    :buffer &amp;quot;*helm rg types*&amp;quot;))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Finally, let&amp;rsquo;s see the new &lt;code&gt;mu-helm-rg&lt;/code&gt; in action:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-helm-project-search (&amp;amp;optional with-types)
  (interactive &amp;quot;P&amp;quot;)
  (mu-helm-rg (mu--project-root) nil with-types))

(defun mu-helm-project-search-at-point (&amp;amp;optional with-types)
  (interactive &amp;quot;P&amp;quot;)
  (mu-helm-rg (mu--project-root) t with-types))

(defun mu-helm-file-search (&amp;amp;optional with-types)
  (interactive &amp;quot;P&amp;quot;)
  (mu-helm-rg default-directory nil with-types))
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    <item>
      <title>Spell-checking and Helm</title>
      <link>https://manueluberti.eu/posts/2020-03-07-ispell-with-helm/</link>
      <pubDate>Sat, 07 Mar 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-03-07-ispell-with-helm/</guid>
      <description>&lt;p&gt;Helm provides so many great commands I am still discovering new gems in it, like
the useful &lt;code&gt;helm-regexp&lt;/code&gt;, which lets you build your regular expression pattern,
see the results of your search live in the Helm buffer, and optionally pass the
query to &lt;code&gt;query-replace-regexp&lt;/code&gt;. So neat.&lt;/p&gt;
&lt;p&gt;This is why I haven&amp;rsquo;t written a Helm command of my own until recently. To be
fair, as I am going to show there is not even the need for this command to
exist, but coding it has been a fun exercise anyway.&lt;/p&gt;
&lt;p&gt;When it comes to spell-checking my buffers, I have been relying on
&lt;a href=&#34;https://manueluberti.eu/posts/2017-02-04-guess-language/&#34;&gt;mu-cycle-ispell-languages&lt;/a&gt;
to change dictionaries and
&lt;a href=&#34;https://github.com/d12frosted/flyspell-correct&#34;&gt;flyspell-correct-helm&lt;/a&gt; to pick
the correct word I happened to misspell. Since I am already using Helm with
Flyspell, then, why not using it to select the dictionary too?&lt;/p&gt;
&lt;p&gt;First, the actual dictionaries.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defvar mu-dictionaries &#39;((&amp;quot;en_GB&amp;quot; . &amp;quot;English&amp;quot;)
                          (&amp;quot;it_IT&amp;quot; . &amp;quot;Italian&amp;quot;)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that I use &lt;code&gt;hunspell&lt;/code&gt; for spell-checking as I explained in &lt;a href=&#34;https://manueluberti.eu/posts/2016-06-06-spellchecksetup/&#34;&gt;Spell-checking
with Hunspell and
flyspell-correct&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Next, my new command.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-select-dictionary ()
  &amp;quot;Select the dictionary for the spell-checker.&amp;quot;
  (interactive)
  (helm :sources
        (helm-build-sync-source &amp;quot;Dictionaries&amp;quot;
          :candidates (map-values mu-dictionaries)
          :action (lambda (candidate)
                    (let ((dict (car (rassoc candidate mu-dictionaries))))
                      (ispell-set-spellchecker-params)
                      (setq ispell-dictionary dict
                            ispell-local-dictionary dict
                            ispell-local-dictionary-overridden t)
                      (ispell-internal-change-dictionary)
                      (setq ispell-buffer-session-localwords nil)
                      (run-hooks &#39;ispell-change-dictionary-hook))))
        :preselect (map-elt mu-dictionaries ispell-dictionary)
        :buffer &amp;quot;*helm select dictionary*&amp;quot;)
  (flyspell-buffer))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I merely followed the guidelines on the &lt;a href=&#34;https://github.com/emacs-helm/helm/wiki/Developing&#34;&gt;Helm
wiki&lt;/a&gt;, but let&amp;rsquo;s break it
down.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(helm :source
      (helm-build-sync-source &amp;quot;Dictionaries&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The source of my Helm command comes from the simple &lt;code&gt;alist&lt;/code&gt; defined before
(&lt;code&gt;mu-dictionaries&lt;/code&gt;), so &lt;code&gt;helm-build-sync-source&lt;/code&gt; is enough.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;:candidates (map-values mu-dictionaries)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here I am using the excellent
&lt;a href=&#34;https://github.com/emacs-mirror/emacs/blob/master/lisp/emacs-lisp/map.el&#34;&gt;map.el&lt;/a&gt;
to get the clearer “English” and “Italian” labels as &lt;code&gt;:candidates&lt;/code&gt; for the Helm
buffer.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;:action (lambda (candidate)
          (let ((dict (car (rassoc candidate mu-dictionaries))))
            (ispell-set-spellchecker-params)
            (setq ispell-dictionary dict
                  ispell-local-dictionary dict
                  ispell-local-dictionary-overridden t)
            (ispell-internal-change-dictionary)
            (setq ispell-buffer-session-localwords nil)
            (run-hooks &#39;ispell-change-dictionary-hook)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The anonymous function for &lt;code&gt;:action&lt;/code&gt; is a small version of
&lt;code&gt;ispell-change-dictionary&lt;/code&gt;, containing only what I need for this operation to
complete successfully. Note the use of &lt;code&gt;rassoc&lt;/code&gt;: this is how I get the key
corresponding to the value of &lt;code&gt;candidate&lt;/code&gt; in &lt;code&gt;mu-dictionaries&lt;/code&gt;. I didn&amp;rsquo;t find a
similar facility in &lt;code&gt;map.el&lt;/code&gt;, but &lt;code&gt;rassoc&lt;/code&gt; and &lt;code&gt;car&lt;/code&gt; get the job done.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;:preselect (map-elt mu-dictionaries ispell-dictionary)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here I am using the current dictionary as the preselected element in the Helm
buffer. I could use &lt;code&gt;:input&lt;/code&gt; to have it offered on the prompt, but I prefer to
have the prompt empty in this case.&lt;/p&gt;
&lt;p&gt;If you look closely at &lt;code&gt;ispell-change-dictionary&lt;/code&gt; source code, you can
understand the triviality of &lt;code&gt;mu-select-dictionary&lt;/code&gt;: &lt;code&gt;ispell-change-dictionary&lt;/code&gt;
uses &lt;code&gt;completing-read&lt;/code&gt;, so in my case it already pops up a Helm buffer. But I am
still happy with this solution, and not just because I prefer “Dictionaries”
instead of “ispell-change-dictionary” as the source name displayed in my Helm
buffer. (Yes, of course it&amp;rsquo;s mostly because of it.)&lt;/p&gt;
&lt;p&gt;As a bonus, thanks to &lt;code&gt;flyspell-buffer&lt;/code&gt; the current buffer is spell-checked
right after the new dictionary is selected.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Ripgrepping with Helm: the mode-line</title>
      <link>https://manueluberti.eu/posts/2020-03-01-helm-ripgrep-mode-line/</link>
      <pubDate>Sun, 01 Mar 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-03-01-helm-ripgrep-mode-line/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2020-02-22-ripgrepping-with-helm/&#34;&gt;Last time&lt;/a&gt;
I tailored my own &lt;code&gt;helm-do-grep-ag&lt;/code&gt; to show you how I use &lt;code&gt;ripgrep&lt;/code&gt; within Helm.
However, I missed something: the mode-line.&lt;/p&gt;
&lt;p&gt;The default mode-line Helm offers for &lt;code&gt;helm-do-grep-ag&lt;/code&gt; doesn&amp;rsquo;t fit well with my
custom one, which is a minimal&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; version of the excellent
&lt;a href=&#34;https://github.com/seagle0128/doom-modeline&#34;&gt;doom-modeline&lt;/a&gt;. It&amp;rsquo;s a two-fold
issue: my mode-line is bigger than the default one and I don&amp;rsquo;t need all the
information usually printed by &lt;code&gt;helm-do-grep-ag&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;By inspecting Helm source code one can easily find out what &lt;code&gt;helm-do-grep-ag&lt;/code&gt;
does on
&lt;a href=&#34;http://doc.endlessparentheses.com/Var/mode-line-format.html&#34;&gt;mode-line-format&lt;/a&gt;.
Basically, among other things &lt;code&gt;helm-grep-ag-init&lt;/code&gt; sets up the value for
&lt;code&gt;mode-line-format&lt;/code&gt; according to the number of results. Very well, then, it&amp;rsquo;s
time to bring &lt;a href=&#34;https://manueluberti.eu/posts/2019-12-01-el-patch/&#34;&gt;el-patch&lt;/a&gt; back
in the game.&lt;/p&gt;
&lt;p&gt;First, though, aesthetics.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(set-face-bold &#39;helm-grep-finish t)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I am just making &lt;code&gt;helm-grep-finish&lt;/code&gt; bold, nothing serious.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(el-patch-defun helm-grep-ag-init (directory &amp;amp;optional type)
  &amp;quot;Start AG process in DIRECTORY maybe searching only files of type TYPE.&amp;quot;
  (let ((default-directory (or (el-patch-swap
                                 helm-ff-default-directory
                                 (mu--project-root))
                               (helm-default-directory)
                               default-directory))
        (cmd-line (helm-grep-ag-prepare-cmd-line
                   helm-pattern (or (file-remote-p directory &#39;localname)
                                    directory)
                   type))
        (el-patch-remove
          (start-time (float-time)))
        (proc-name (helm-grep--ag-command)))
    (set (make-local-variable &#39;helm-grep-last-cmd-line) cmd-line)
    (el-patch-remove
      (helm-log &amp;quot;Starting %s process in directory `%s&#39;&amp;quot;
                proc-name directory)
      (helm-log &amp;quot;Command line used was:\n\n%s&amp;quot;
                (concat &amp;quot;&amp;gt;&amp;gt;&amp;gt; &amp;quot; cmd-line &amp;quot;\n\n&amp;quot;)))
    (prog1
        (start-file-process-shell-command proc-name helm-buffer cmd-line)
      (set-process-sentinel
       (get-buffer-process helm-buffer)
       (lambda (process event)
         (let* ((err (process-exit-status process))
                (noresult (= err 1))
                (el-patch-add
                  (proc (concat &amp;quot; HELM &amp;quot; proc-name))))
           (el-patch-swap
             (cond (noresult
                    (with-helm-buffer
                      (insert (concat &amp;quot;* Exit with code 1, no result found,&amp;quot;
                                      &amp;quot; command line was:\n\n &amp;quot;
                                      (propertize helm-grep-last-cmd-line
                                                  &#39;face &#39;helm-grep-cmd-line)))
                      (setq mode-line-format
                            `(&amp;quot; &amp;quot; mode-line-buffer-identification &amp;quot; &amp;quot;
                              (:eval (format &amp;quot;L%s&amp;quot; (helm-candidate-number-at-point))) &amp;quot; &amp;quot;
                              (:eval (propertize
                                      (format
                                       &amp;quot;[%s process finished - (no results)] &amp;quot;
                                       ,(upcase proc-name))
                                      &#39;face &#39;helm-grep-finish))))))
                   ((string= event &amp;quot;finished\n&amp;quot;)
                    (helm-log &amp;quot;%s process finished with %s results in %fs&amp;quot;
                              proc-name
                              (helm-get-candidate-number)
                              (- (float-time) start-time))
                    (helm-maybe-show-help-echo)
                    (with-helm-window
                      (setq mode-line-format
                            `(&amp;quot; &amp;quot; mode-line-buffer-identification &amp;quot; &amp;quot;
                              (:eval (format &amp;quot;L%s&amp;quot; (helm-candidate-number-at-point))) &amp;quot; &amp;quot;
                              (:eval (propertize
                                      (format
                                       &amp;quot;[%s process finished in %.2fs - (%s results)] &amp;quot;
                                       ,(upcase proc-name)
                                       ,(- (float-time) start-time)
                                       (helm-get-candidate-number))
                                      &#39;face &#39;helm-grep-finish))))
                      (force-mode-line-update)
                      (when helm-allow-mouse
                        (helm--bind-mouse-for-selection helm-selection-point))))
                   (t (helm-log
                       &amp;quot;Error: %s %s&amp;quot;
                       proc-name
                       (replace-regexp-in-string &amp;quot;\n&amp;quot; &amp;quot;&amp;quot; event))))
             (if noresult
                 (with-helm-buffer
                   (setq mode-line-format
                         `(&amp;quot;&amp;quot;
                           mu-mode-line-bar
                           &amp;quot; &amp;quot;
                           (:eval
                            (propertize
                             (format &amp;quot;%s [no results]&amp;quot; ,proc)
                             &#39;face &#39;helm-grep-finish)))))
               (with-helm-window
                 (setq mode-line-format
                       `(&amp;quot;&amp;quot;
                         mu-mode-line-bar
                         &amp;quot; &amp;quot;
                         (:eval
                          (propertize
                           (format &amp;quot;%s [%s results]&amp;quot;
                                   ,proc (helm-get-candidate-number))
                           &#39;face &#39;helm-grep-finish))))
                 (force-mode-line-update))))))))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Let&amp;rsquo;s break down my changes:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(default-directory (el-patch-swap
                     (or helm-ff-default-directory
                         (helm-default-directory)
                         default-directory)
                     (or (mu--project-root)
                         (helm-default-directory)
                         default-directory)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This has nothing do to with the mode-line, actually, but why not re-use
&lt;a href=&#34;https://manueluberti.eu/posts/2020-02-22-ripgrepping-with-helm/&#34;&gt;mu–-project-root&lt;/a&gt;
here? Exactly.&lt;/p&gt;
&lt;p&gt;I also removed all the &lt;code&gt;helm-log&lt;/code&gt; references, because I am confident my Elisp-fu
will not need debugging.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; Anyway, I want the buffer identification to look
like the rest of the Helm buffer identifications in my mode-line:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(proc (concat &amp;quot; HELM &amp;quot; proc-name))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I am going to use only &lt;code&gt;ripgrep&lt;/code&gt; for my searches, so &lt;code&gt;proc-name&lt;/code&gt; is usually &lt;code&gt;rg&lt;/code&gt;
here, but one never knows what will come next.&lt;/p&gt;
&lt;p&gt;When there are no results to be shown, I don&amp;rsquo;t want a message in the Helm
buffer, just a clean feedback:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(setq mode-line-format
      `((:eval mu-mode-line-bar)
        &amp;quot; &amp;quot;
        (:eval
         (propertize
          (format &amp;quot;%s [no results]&amp;quot; ,proc)
          &#39;face &#39;helm-grep-finish))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The same goes for one or more results:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(setq mode-line-format
      `((:eval mu-mode-line-bar)
        &amp;quot; &amp;quot;
        (:eval
         (propertize
          (format &amp;quot;%s [%s results]&amp;quot;
                  ,proc
                  (helm-get-candidate-number))
          &#39;face &#39;helm-grep-finish))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;mu-mode-line-bar&lt;/code&gt; is what makes my mode-line bigger and I borrowed it from
&lt;code&gt;doom-mode-line&lt;/code&gt;, so go check its fantastic code to find out about this magic
trick.&lt;/p&gt;
&lt;p&gt;Finally, this is how the mode-line looks after &lt;code&gt;M-?&lt;/code&gt; when the
&lt;code&gt;ripgrep&lt;/code&gt; process finishes:&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/helm-rg-finished.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;And for the sake of completeness, this is how it looks when I move through the
results with &lt;code&gt;C-p&lt;/code&gt; and &lt;code&gt;C-n&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/helm-rg.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;By the way, the colours are courtesy of
&lt;a href=&#34;https://gitlab.com/protesilaos/modus-themes&#34;&gt;modus-vivendi&lt;/a&gt;, a great theme by
Protesilaos Stavrou I&amp;rsquo;ve recently switched to.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;As in &amp;ldquo;what is enough for me?&amp;rdquo;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;It&amp;rsquo;s not that I am &lt;em&gt;that&lt;/em&gt; good, it&amp;rsquo;s just that I can worry about debugging
later.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Burn, baby, burn</title>
      <link>https://manueluberti.eu/posts/2020-02-24-promare/</link>
      <pubDate>Mon, 24 Feb 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-02-24-promare/</guid>
      <description>&lt;p&gt;I am always conflicted when it comes to Japanese animation. Talents such as
Hideaki Anno and Satoshi Kon are absolute masters to me, but I&amp;rsquo;ve never really
gone beyond the most popular names. My knowledge is limited because I want it to
be limited. It sounds like a silly paradox, but it&amp;rsquo;s true. As much as I love
works like &lt;em&gt;Neon Genesis Evangelion&lt;/em&gt; and &lt;em&gt;Paprika&lt;/em&gt;, I stop at the entrance and
somehow refuse to understand the immense universe that Japanese animation is.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2020-02-24-promare.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Promare (Hiroyuki Imaishi, 2019)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Sometimes, though, a new name manages to break through my nonsensical walls. In
2010 I met Hiroyuki Imaishi&amp;rsquo;s &lt;em&gt;Dead Leaves&lt;/em&gt; and immediately fell in love with
it. Its fifty minutes of pumping music and characters screaming their way
through deranged mayhem are the complete opposite of what makes &lt;em&gt;Neon Genesis
Evangelion&lt;/em&gt; so special, and maybe just for this reason alone, what makes
Imaishi&amp;rsquo;s madness so irresistible.&lt;/p&gt;
&lt;p&gt;Since I heard the first words about &lt;em&gt;Promare&lt;/em&gt; expectations have been mounting
up, despite the fact that everything Imaishi did in between &lt;em&gt;Dead Leaves&lt;/em&gt; and
&lt;em&gt;Promare&lt;/em&gt; is of moderate interest to me. His worlds live through action and
movement, and when he stops and lets something else on the front his power on me
decreases (e.g., &lt;em&gt;Gurren Lagann&lt;/em&gt;). Even when he sustains the fury of &lt;em&gt;Dead
Leaves&lt;/em&gt;, as it often happens in the series &lt;em&gt;Panty &amp;amp; Stocking with Garterbelt&lt;/em&gt;,
he is actually stretching a technique that gains much of its strength from the
short timespan it was deployed in.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Promare&lt;/em&gt; starts with a quick, precise prologue before almost twenty minutes of
Imaishi showing how much he has learned throughout the years. The relentless
action explodes with details and pastel colours, testing the
viewer&amp;rsquo;s willingness to keep up with chaos. One can see where Imaishi is coming
from, because he seems to sum up his career, but at the same time he is
introducing a renovated style. He builds a world out of polygons and angles,
which eventually will prove to be animation tools as much as elemental parts of
a universe plagued by their rigidity. Their precision comes at a cost, but
it&amp;rsquo;s not until the very end that we learn what is at stake here. Amidst the
bedlam, characterization begins to take place, and the specific traits of each
character emerge through movements and reactions to events impossible to
control.&lt;/p&gt;
&lt;p&gt;Along with the protagonists, a plethora of themes rise up to the surface.
Although Imaishi doesn&amp;rsquo;t seem to be interested in exploring them in depth,
&lt;em&gt;Promare&lt;/em&gt; hints at least at fascism, racism, human experimentation, and
technocratic failures. It&amp;rsquo;s not easy to understand the social and political
implications of the issues on display, because the film deliberately chooses
chaos before words, but &lt;em&gt;Promare&lt;/em&gt;&amp;rsquo;s world still boils with details. There is
also room for irony and sarcasm. Imaishi points his fun gun against Japanese pop
culture, in a mix of self-referential pose and funny remarks, like Galo Thymos&#39;
insisting on announcing himself before moving to action or applying awkward
labels to machinery and fight stances. However, the dark cynicism of &lt;em&gt;Dead
Leaves&lt;/em&gt; and its twisted taste for the obscene are long gone, probably a sign of
the kind of public Imaishi is aiming for this time.&lt;/p&gt;
&lt;p&gt;The epic scale of the action sequences makes up for what &lt;em&gt;Promare&lt;/em&gt; lacks in sex
and degradation. Furious flames in the form of a dragon blast through the city
in a feast of lights, while gigantic robots wreck havoc among skyscrapers,
picking up where &lt;em&gt;Gurren Lagann&lt;/em&gt; stopped. Imaishi pushes the boundaries of his
animated sense of wonder, intersecting different animation techniques to render
new possibilities on the screen. Imagination runs wild in every minute of
&lt;em&gt;Promare&lt;/em&gt;, which is what I expect animation to always do anyway. Imaishi knows
there is no point in limiting oneself where the means at one&amp;rsquo;s disposal allow
everything the mind conceives. The sky is not the limit. The sky is way below us
now.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Ripgrepping with Helm</title>
      <link>https://manueluberti.eu/posts/2020-02-22-ripgrepping-with-helm/</link>
      <pubDate>Sat, 22 Feb 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-02-22-ripgrepping-with-helm/</guid>
      <description>&lt;p&gt;Sometimes curiosity leads me to use alternative packages for built-in solutions
which I should have explored better. For instance, it took me moving through
&lt;a href=&#34;https://github.com/syohex/emacs-helm-ag&#34;&gt;helm-ag&lt;/a&gt; and
&lt;a href=&#34;https://github.com/cosmicexplorer/helm-rg&#34;&gt;helm-rg&lt;/a&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; before realising Helm
already comes with a functionality suitable for my needs: &lt;code&gt;helm-do-grep-ag&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;By now I expect you to be familiar with the wonders of
&lt;a href=&#34;https://github.com/BurntSushi/ripgrep&#34;&gt;ripgrep&lt;/a&gt;. I was heavily relying on
&lt;code&gt;counsel-rg&lt;/code&gt; back in my Ivy days, and I needed a similar command in Helm. Truth
be told, &lt;code&gt;helm-do-grep-ag&lt;/code&gt; is not the replacement I was looking for, but
understanding its code helped me devise my own utilities for super fast
searches.&lt;/p&gt;
&lt;p&gt;First of all, let&amp;rsquo;s use &lt;code&gt;ripgrep&lt;/code&gt; instead of &lt;code&gt;ag&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(setq helm-grep-ag-command (concat &amp;quot;rg&amp;quot;
                                   &amp;quot; --color=never&amp;quot;
                                   &amp;quot; --smart-case&amp;quot;
                                   &amp;quot; --no-heading&amp;quot;
                                   &amp;quot; --line-number %s %s %s&amp;quot;)
      helm-grep-file-path-style &#39;relative)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that the string for &lt;code&gt;helm-grep-ag-command&lt;/code&gt; comes from its documentation.
I chose &lt;code&gt;relative&lt;/code&gt; for &lt;code&gt;helm-grep-file-path-style&lt;/code&gt; because I find relative file
paths in the search result buffer more useful than their base name.&lt;/p&gt;
&lt;p&gt;Now, &lt;code&gt;helm-do-grep-ag&lt;/code&gt; defers to &lt;code&gt;helm-grep-ag&lt;/code&gt;, which in turns defers to
&lt;code&gt;helm-grep-ag-1&lt;/code&gt;, and this is the Helm facility I can leverage for my own
&lt;code&gt;ripgrep&lt;/code&gt; variant.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-helm-rg (directory &amp;amp;optional with-types)
  &amp;quot;Search in DIRECTORY with RG.
With WITH-TYPES, ask for file types to search in.&amp;quot;
  (interactive &amp;quot;P&amp;quot;)
  (require &#39;helm-adaptive)
  (helm-grep-ag-1 (expand-file-name directory)
                  (helm-aif (and with-types
                                 (helm-grep-ag-get-types))
                      (helm-comp-read
                       &amp;quot;RG type: &amp;quot; it
                       :must-match t
                       :marked-candidates t
                       :fc-transformer &#39;helm-adaptive-sort
                       :buffer &amp;quot;*helm rg types*&amp;quot;))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It&amp;rsquo;s basically &lt;code&gt;helm-grep-ag&lt;/code&gt; with minor aesthetic changes, but &lt;a href=&#34;https://manueluberti.eu/posts/2019-12-01-el-patch/&#34;&gt;you know
me&lt;/a&gt;. Note the &lt;code&gt;with-types&lt;/code&gt;
parameter. If I use this command with &lt;code&gt;C-u&lt;/code&gt; I get to pick one or more file types
to narrow the search down to. I don&amp;rsquo;t remember if this is possible with
&lt;code&gt;counsel-rg&lt;/code&gt;, but in large projects it is an absolute must have. Furthermore,
the symbol at point, if any, is the default search parameter. Why is this
awesome? Keep reading.&lt;/p&gt;
&lt;p&gt;With &lt;code&gt;mu-helm-rg&lt;/code&gt; in place, I can build a couple of commands to make my life
easier.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-helm-project-search (&amp;amp;optional with-types)
  &amp;quot;Search in current project with RG.
With WITH-TYPES, ask for file types to search in.&amp;quot;
  (interactive &amp;quot;P&amp;quot;)
  (mu-helm-rg (mu--project-root) with-types))

(defun mu-helm-file-search (&amp;amp;optional with-types)
  &amp;quot;Search in `default-directory&#39; with RG.
With WITH-TYPES, ask for file types to search in.&amp;quot;
  (interactive &amp;quot;P&amp;quot;)
  (mu-helm-rg default-directory with-types))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In case you are wondering, &lt;code&gt;mu–-project-root&lt;/code&gt; is a trivial function to figure out
the current project&amp;rsquo;s root directory.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu--project-root ()
  &amp;quot;Return the project root directory or `helm-current-directory&#39;.&amp;quot;
  (require &#39;helm-ls-git)
  (if-let (dir (helm-ls-git-root-dir))
      dir
    (helm-current-directory)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I don&amp;rsquo;t need &lt;code&gt;mu-helm-file-search&lt;/code&gt; as often as &lt;code&gt;mu-helm-project-search&lt;/code&gt;, which
is why I&amp;rsquo;ve bound the latter to &lt;code&gt;M-?&lt;/code&gt;. I use this key binding so
much it must be a quick one. And this is why having the symbol at point
automatically picked up by &lt;code&gt;mu-helm-rg&lt;/code&gt; is so important: it just makes the whole
search operation as simple as possible.&lt;/p&gt;
&lt;p&gt;Oh wait, the symbol at point is not what you are after? No problem, you can
start typing whatever you want and have Helm &lt;em&gt;ripgrepping&lt;/em&gt; your files.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Both packages seem hardly maintained these days.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Words are never enough</title>
      <link>https://manueluberti.eu/posts/2020-01-31-eden/</link>
      <pubDate>Fri, 31 Jan 2020 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2020-01-31-eden/</guid>
      <description>&lt;p&gt;No matter how many films I&amp;rsquo;ve seen since the first time I watched Pietro
Marcello&amp;rsquo;s &lt;em&gt;Martin Eden&lt;/em&gt;, I&amp;rsquo;ve never really been able to stop thinking about it
and the impact it had on me, its images lingering in my mind day after day.
Considering how low my expectations for contemporary Italian cinema usually are,
this is all the more surprising.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2020-01-31-martin-eden.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Martin Eden (Pietro Marcello, 2019)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Jack London&amp;rsquo;s &lt;em&gt;Martin Eden&lt;/em&gt; is one of my absolute favourite books, so close to
who I am, who I supposed I wanted to be, and what I have always been afraid of.
When I learnt about an adaption I cringed a bit. Pietro Marcello was a new name
for me, but that didn&amp;rsquo;t matter anyway. The real issue is that I am pretty hard
to satisfy when it comes to transposing literary works into films. Sure, it can
work on me sometimes, such as in the case of
&lt;a href=&#34;https://manueluberti.eu/posts/2019-12-19-connection/&#34;&gt;Carol&lt;/a&gt; or &lt;a href=&#34;https://manueluberti.eu/posts/2019-05-28-hooper/&#34;&gt;Salem&amp;rsquo;s
Lot&lt;/a&gt;, but most of the times
I just get angry at the screen after a few minutes (e.g., &lt;em&gt;The Lord of the
Rings&lt;/em&gt;). How could I approach Pietro Marcello&amp;rsquo;s take on a so pivotal book
without letting London&amp;rsquo;s beauty inform my opinion on Marcello&amp;rsquo;s rendition?&lt;/p&gt;
&lt;p&gt;This is actually where the Campanian director pulls off his most magical trick.
I could never let go of London&amp;rsquo;s words while watching &lt;em&gt;Martin Eden&lt;/em&gt;, but instead
of comparing the images with the pages in search of errors and betrayal, I was
tracing all the details in front of the camera back to the book with the utmost
admiration. Not only do Marcello and his co-writer Maurizio Braucci show a deep
understanding of Jack London, but because of that they are able to adapt themes
of class struggles and individualism from the American writer to different
settings and a different time period, without losing an inch of the book power.
Inevitably they are forced to condense episodes and characters, and yet they
display a remarkable tenacity in capturing the essence of &lt;em&gt;Martin Eden&lt;/em&gt; while
avoiding the temptation of letting the words speak for themselves.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Martin Eden&lt;/em&gt;&amp;rsquo;s narrative is a product of the eponymous character. We see the
world through his eyes, and we witness his reactions on different levels. Among
these, there is the use of colour-tinted footage which takes the viewer back to
specific episodes of Martin&amp;rsquo;s youth and childhood. We see him as a kid dancing
with his sister, we see his father leaving the house, and him experiencing the
little schooling he could afford. Marcello uses archival footage to
contextualise the world of his Martin Eden too. The film opens with images of
the Italian anarchist Enrico Malatesta, referencing the historical moment
(Savona, 1921) and pointing at Eden&amp;rsquo;s own story.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;He was an anarchist and believed that persons, individuals, people, are not to
be neglected, but at the same time are not to become megalomaniac.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;Martin Eden&lt;/em&gt; gives us an idea, but not the exact moment this Martin Eden&amp;rsquo;s life
unveils. Like a recollection which loses details years after years,
Marcello&amp;rsquo;s Italy is a reminiscence, a set of experiences filtered through the
eyes of a man who praises individualism only to find the failures in it. But
there are also the failures of Italy&amp;rsquo;s left in Marcello&amp;rsquo;s vision. The dream and
promises of socialism many around Martin so fervently believe in don&amp;rsquo;t take into
account what would become of the individual once the power is overthrown. More
importantly, they mislead their followers in thinking that power can be replaced
with a different form of power. Power is and always will be power, and until
there is power there will always be a difference between the strong and the
weak. The real issue is knowing who the strong and the weak actually are.&lt;/p&gt;
&lt;p&gt;However, nobody listens to Martin Eden, and instead of fighting for his cause,
he retires into literature. He wants to be the eyes and ears of the world, but
what starts as vivid prose about episodes of his life around the world, soon
becomes rhetoric tools for brutal social commentary. When he reads from his
books near the end, it&amp;rsquo;s him against the world, against everyone who wasn&amp;rsquo;t able
to understand him before and is still not able now. Again, he refuses to fight,
worn out by what he sees and what he hears. The words he has come to master are
not worth the peace of mind he is looking for and eventually cannot save him.&lt;/p&gt;
&lt;p&gt;Italy cannot afford to ignore talents such as Pietro Marcello and Luca
Marinelli, simply because I don&amp;rsquo;t know how many Italian directors and actors are
this good right now. These are young talents, people who deserves money, time,
and space to create more and more. So why do I have the feeling that this is
another of those precious films that my country will forget much too soon?&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;See: &lt;a href=&#34;https://cinema-scope.com/cinema-scope-magazine/no-god-but-the-unknown-pietro-marcello-and-maurizio-braucci-on-martin-eden/&#34;&gt;No God But the Unknown: Pietro Marcello and Maurizio Braucci on
Martin
Eden&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Helmify some completion mechanisms</title>
      <link>https://manueluberti.eu/posts/2019-12-30-helm-dabbrev/</link>
      <pubDate>Mon, 30 Dec 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-12-30-helm-dabbrev/</guid>
      <description>&lt;p&gt;Last year I wrote about &lt;a href=&#34;https://manueluberti.eu/posts/2019-01-17-company-on-demand/&#34;&gt;making Company completion popup appear on
demand&lt;/a&gt;. There I also
briefly mentioned &lt;code&gt;dabbrev-expand&lt;/code&gt; and &lt;code&gt;dabbrev-completion&lt;/code&gt;, but I have never
mentioned &lt;code&gt;hippie-expand&lt;/code&gt;, and that it has been pretty much covering my
completion needs.&lt;/p&gt;
&lt;p&gt;However, &lt;a href=&#34;https://manueluberti.eu/posts/2019-11-16-helm/&#34;&gt;moving to Helm&lt;/a&gt; prompted
me to give &lt;code&gt;helm-dabbrev&lt;/code&gt; a try. &lt;code&gt;helm-dabbrev&lt;/code&gt; works similarly to
&lt;code&gt;dabbrev-completion&lt;/code&gt;, but when you hit &lt;code&gt;helm-dabbrev-cycle-threshold&lt;/code&gt; (which
defaults to 5), it takes you to a Helm buffer with all the benefits that come
with it.&lt;/p&gt;
&lt;p&gt;Two settings are necessary to have &lt;code&gt;helm-dabbrev&lt;/code&gt; behave like I want to. First,
I turned off Helm&amp;rsquo;s show completion, a feature which displays candidates in the
current buffer. I don&amp;rsquo;t like popups, as you may have noticed, and I prefer Helm
to always show candidates in the same position of the screen.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(setq helm-turn-on-show-completion nil)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, I made &lt;code&gt;helm-dabbrev&lt;/code&gt; look for completions in all the available buffers.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(setq helm-dabbrev-related-buffer-fn nil)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;By default, &lt;code&gt;helm-dabbrev&lt;/code&gt; scans buffers with the same major mode as the current
one, but this doesn&amp;rsquo;t help when, for instance, I am writing a commit message and
I want a symbol to be completed. Binding &lt;code&gt;helm-dabbrev&lt;/code&gt; to &lt;code&gt;C-.&lt;/code&gt; is all
that&amp;rsquo;s left to do.&lt;/p&gt;
&lt;p&gt;Moreover, Helm improves on Company too. With the help of
&lt;a href=&#34;https://github.com/Sodel-the-Vociferous/helm-company&#34;&gt;helm-company&lt;/a&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; is
possible to narrow down the candidates through Helm smart UI. &lt;code&gt;C-TAB&lt;/code&gt;
is my go-to key binding for &lt;code&gt;helm-company&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Since Helm has become a great companion during my Emacs sessions, it makes sense
to rely on it for everything concerning completion.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I used to maintain &lt;code&gt;helm-company&lt;/code&gt; before discovering Ivy, and now I&amp;rsquo;m back
to it. The Emacs world is full of surprises.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Developing Helm actions</title>
      <link>https://manueluberti.eu/posts/2019-12-23-helm-actions/</link>
      <pubDate>Mon, 23 Dec 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-12-23-helm-actions/</guid>
      <description>&lt;p&gt;One of the central pieces of my recent &lt;a href=&#34;https://manueluberti.eu/posts/2019-11-16-helm/&#34;&gt;return to
Helm&lt;/a&gt; is
&lt;a href=&#34;https://github.com/emacs-helm/helm-ls-git&#34;&gt;helm-ls-git&lt;/a&gt;, which empowers
&lt;code&gt;helm-browse-project&lt;/code&gt; with everything I need to move through my Git projects
smoothly. Combine that with &lt;code&gt;helm-projects-history&lt;/code&gt;, and you can see why I don&amp;rsquo;t
need Projectile any more. Well, sort of. It&amp;rsquo;s true that I&amp;rsquo;ve stopped using
Projectile since Helm took over my Emacs configuration, but it&amp;rsquo;s also true that
I had to code the “helmified” version of a couple of features I was heavily
relying upon.&lt;/p&gt;
&lt;p&gt;In Helm, you can leverage
&lt;a href=&#34;https://github.com/emacs-helm/helm/wiki/Developing#writing-actions&#34;&gt;actions&lt;/a&gt; to
extend the available utilities.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu--candidate-directory (candidate)
  &amp;quot;Find the directory containing CANDIDATE.
Default to `helm-current-directory&#39; when none can be found.&amp;quot;
  (if (fboundp &#39;helm-ls-git-root-dir)
      (let* ((dir (cond ((stringp candidate)
                         (file-name-directory candidate))
                        ((and (bufferp candidate)
                              (buffer-file-name candidate))
                         (file-name-directory (buffer-file-name candidate)))
                        (t default-directory)))
             (root-dir (helm-ls-git-root-dir dir)))
        (if root-dir
            root-dir
          (helm-current-directory)))
    (helm-current-directory)))

(defun mu-helm-project-dired ()
  &amp;quot;Open Dired buffers at project root from a Helm session.&amp;quot;
  (interactive)
  (dolist (cand (helm-marked-candidates))
    (dired (mu--candidate-directory cand))))

(defun mu-helm-project-shell ()
  &amp;quot;Open shell buffers at project root from a Helm session.&amp;quot;
  (interactive)
  (dolist (cand (helm-marked-candidates))
    (let* ((default-directory (mu--candidate-directory cand))
           (buffer (concat &amp;quot;*shell &amp;quot;
                           (file-name-nondirectory
                            (directory-file-name default-directory))
                           &amp;quot;*&amp;quot;)))
      (mu-shell-open buffer))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The actions are self-explanatory (see &lt;a href=&#34;https://manueluberti.eu/posts/2019-06-21-windows/&#34;&gt;Passing the prefix argument
around&lt;/a&gt; for &lt;code&gt;mu-shell-open&lt;/code&gt;).
I often need to jump to a Dired or a shell-mode buffer of a project different
from the current one, so I want the possibility to use the current candidate in
&lt;code&gt;helm-projects-history&lt;/code&gt; as a starting point.&lt;/p&gt;
&lt;p&gt;To be fair, &lt;code&gt;mu--candidate-directory&lt;/code&gt; does a little more than what I need here.
That&amp;rsquo;s because I use &lt;code&gt;mu-helm-project-dired&lt;/code&gt; and &lt;code&gt;mu-helm-project-shell&lt;/code&gt; in
&lt;code&gt;helm-mini&lt;/code&gt; and &lt;code&gt;helm-browse-project&lt;/code&gt; too. The latter lists special buffers
(e.g., &lt;code&gt;*scratch*&lt;/code&gt;) as buffers of the current project. Since they do not live in
any specific directory,
&lt;a href=&#34;http://doc.endlessparentheses.com/Var/default-directory.html&#34;&gt;default-directory&lt;/a&gt;
is the obvious choice.&lt;/p&gt;
&lt;p&gt;Now I have to plug the actions into &lt;code&gt;helm-projects-history&lt;/code&gt;. Unfortunately, it
doesn&amp;rsquo;t have a &lt;code&gt;keymap&lt;/code&gt; to extend, so I need another solution.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defvar mu-helm-projects-history-map
  (let ((map (make-sparse-keymap)))
    (set-keymap-parent map helm-map)
    (define-key map (kbd &amp;quot;C-c d&amp;quot;) (helm-exit-and-run! (mu-helm-project-dired)))
    (define-key map (kbd &amp;quot;C-c s&amp;quot;) (helm-exit-and-run! (mu-helm-project-shell)))
    map)
  &amp;quot;Keymap for `mu-helm-projects-history&#39;.&amp;quot;)

(defun mu-helm-projects-history (arg)
  &amp;quot;A `helm-projects-history&#39; with custom actions.&amp;quot;
  (interactive &amp;quot;P&amp;quot;)
  (require &#39;helm-ls-git)
  (helm :sources
        (helm-build-sync-source &amp;quot;Project history&amp;quot;
          :candidates helm-browse-project-history
          :action (lambda (candidate)
                    (with-helm-default-directory candidate
                      (helm-browse-project
                       (or arg helm-current-prefix-arg))))
          :keymap mu-helm-projects-history-map)
        :buffer &amp;quot;*helm browse project history*&amp;quot;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;mu-helm-projects-history&lt;/code&gt; adds only two things to the original
&lt;code&gt;helm-projects-history&lt;/code&gt;. I require &lt;code&gt;helm-ls-git&lt;/code&gt; early because I need its
capabilities inside my actions, and I use my own &lt;code&gt;mu-helm-projects-history-map&lt;/code&gt;
to make them available in the Helm buffer opened by this command.&lt;/p&gt;
&lt;p&gt;Last but not least, &lt;code&gt;helm-exit-and-run!&lt;/code&gt; is a helpful macro to avoid dry
repetitions:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defmacro helm-exit-and-run! (&amp;amp;rest body)
  &amp;quot;Define an action with BODY to be run after exiting Helm.&amp;quot;
  (declare (doc-string 1))
  `(lambda ()
     (interactive)
     (with-helm-alive-p
       (helm-exit-and-execute-action (lambda (_candidate) ,@body)))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that in my actions I am ignoring the &lt;code&gt;_candidate&lt;/code&gt; parameter on purpose.
Since &lt;code&gt;helm-marked-candidates&lt;/code&gt; grabs the current candidate when none of them is
selected, I can use my actions on multiple candidates if I feel wild enough.
Yeah, sometimes I can be crazy like that.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>An open connection</title>
      <link>https://manueluberti.eu/posts/2019-12-19-connection/</link>
      <pubDate>Thu, 19 Dec 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-12-19-connection/</guid>
      <description>&lt;p&gt;Listing my favourite films of this closing decade would be a daunting task,
because I have only recently started to log my viewings. What I can do, though,
is picking one of them, the one which stands out not as the most revolutionary
of the lot, but as the best example of what film-making is all about for me. And
that would be Todd Haynes&amp;rsquo; &lt;em&gt;Carol&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2019-12-19-carol.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Carol (Todd Haynes, 2015)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Carol&lt;/em&gt; is seemingly simpler than other relevant candidates to my number one
spot on the best of the 2010s list. It is not a culmination of stylistic
explorations like Michael Mann&amp;rsquo;s &lt;em&gt;Blackhat&lt;/em&gt; or Jia Zhangke&amp;rsquo;s &lt;em&gt;Mountains May
Depart&lt;/em&gt;. It is not a new way of narrating the social disaster we live in like
Harmony Korine&amp;rsquo;s &lt;em&gt;Spring Breakers&lt;/em&gt;, nor another push to the cinematic form like
Jean-Luc Godard&amp;rsquo;s &lt;em&gt;Film Socialisme&lt;/em&gt;. The closest work I can think of is Baz
Luhrmann&amp;rsquo;s &lt;em&gt;The Great Gatsby&lt;/em&gt;, because both films understand the pages of the
books they come from without compromising what cinema means to their respective
auteurs.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Carol&lt;/em&gt; begins with a man interrupting a conversation between two women, Carol
Aird and Therese Belivet. The women are sitting at a table, apparently having a
casual conversation. By the end of the film we will have understood the weight
of this exchange, but for now we can only register the effect of the man
forcibly imposing his presence. Carol is visibly annoyed, she is trying to keep
her cool before leaving the table and the scene. Only later we will know the
turmoil behind the façade. Therese is embarrassed, in her eyes the reflection of
the fight within her because she realizes, and it will happen again, that she
has no control over the situation. This is just the first of many instances
where women&amp;rsquo;s intimate space is invaded by men. Repeatedly over the course of
Carol and Therese&amp;rsquo;s story, they face male gaze and male ire, men trying to make
them reason according to male logic. With the exception of Harge Aird, Haynes
does not show us how low men can get when they fail to take a relationship
between two women into consideration. The male characters cannot accept a thing
such as two women in love, and Haynes makes no effort to explore the dark side
of more than one man. One is enough for him. Considering some of the comments
I hear in my everyday life on gender-related topics, Haynes has all the reasons
to be cynical.&lt;/p&gt;
&lt;p&gt;However, this is a cynicism that does not need to be shouted at the viewer. Most
of &lt;em&gt;Carol&lt;/em&gt; takes place between silent reactions. Therese acknowledges the world
around her with feeble tilts of her head, slight changes on her face, hardly
using words to express what she feels. Her personality seems contained in her
gestures. Haynes does not seem interested in a silent film performance, though.
He is simply trying to make sense of a world where love has to be feared and
needs to be hidden away. It&amp;rsquo;s a world of few words spoken freely. Even Carol,
with her strong personality and her commanding wisdom, does not really know what
to say to Therese much of the time if not through her body. Maybe she is afraid
to lose her, but she also knows the consequences of her desire. The two women do
not perceive their relationship as something inherently wrong, because there is
nothing wrong with love, but at the same time everyone blames them for what they
are doing. Love is there from the beginning, but Therese battles to accept it,
because the conventions of imposed masculinity are always in her way. Carol and
Therese want, but they cannot. They only can if they abandon everything and live
among themselves.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Carol&lt;/em&gt; explores the discovery of love and the progress of the relationship
through senses. The viewer feels the surfaces as if touching them, not because
the sound design is great, which it is by the way, but because the grace of the
characters&amp;rsquo; movements is matched by the delicacy of the camera capturing them.
The gentleness of a photograph, the softness of a sweater, the coldness of a
gun: objects are alive without getting in the way. And yet Haynes avoids the
objectification of commodities. In spite of the evident comfort in Carol&amp;rsquo;s life
and the modest state of Therese&amp;rsquo;s one, &lt;em&gt;Carol&lt;/em&gt; offers few glimpses of this
difference, because it is irrelevant when it comes to what the women&amp;rsquo;s hearts
crave for. When on the road, their love deepens unhindered by how cheap or
expensive the room they are in is. As long as men are not around, the issue is
not where or how.&lt;/p&gt;
&lt;p&gt;Sight is another important and richly covered sense. &lt;em&gt;Carol&lt;/em&gt; lives thanks to eyes
and looks. The first lunch Carol and Therese have together is all about how they
perceive each other and how this perception informs them. There is already
passion underneath those looks, but it&amp;rsquo;s more of a systematic and yet gentle
search for a possible kindred spirit. Is it there? Am I reaching out for
something real? Carol&amp;rsquo;s and Therese&amp;rsquo;s eyes tentatively inspect what is in front
of them, telling more about the affection they are trying to conceal than the
mind would want to reveal. On the other hand, men look down on women as if to
constantly remind them of their social position. Men&amp;rsquo;s eyes are angry and
disparaging, but they are at their worst when they become condescending,
manipulating sympathy to remind the women who is in charge after all.&lt;/p&gt;
&lt;p&gt;In posing love as the central node of a web of questions and answers, &lt;em&gt;Carol&lt;/em&gt;
refuses to make sense of the connection it creates between two people and
prefers to live it open. And rightly so. Love is the reason we unreasonably fall
for someone, and it&amp;rsquo;s not often that a film can capture so well the poor chances
we have to explain what is happening to us. The more I look at &lt;em&gt;Carol&lt;/em&gt;, the more
it seems like the peak of Todd Haynes&amp;rsquo; career, something he is going to come to
terms with for the rest of his life.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Once Upon a Time</title>
      <link>https://manueluberti.eu/posts/2019-12-02-once-upon-a-time/</link>
      <pubDate>Mon, 02 Dec 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-12-02-once-upon-a-time/</guid>
      <description>&lt;p&gt;I remember the first time I saw &lt;em&gt;Pulp Fiction&lt;/em&gt; quite well. I was a sixteen-year
old already settled on my path to becoming a proper nerd, which means I was your
regular outsider in a valley of farmers and carpenters, far from any big city,
and without a reliable internet connection. I relied on magazines to inform my
cinephilia, and at that time some of those came with a VHS attached. That is how
&lt;em&gt;Pulp Fiction&lt;/em&gt; entered my life.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2019-12-02-once_upon_a_time_in_hollywood.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Once Upon a Time in
Hollywood (Quentin Tarantino, 2019)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Fast forward fifteen years, and after &lt;em&gt;Inglourious Basterds&lt;/em&gt; I lost interest in
Quentin Tarantino. I didn&amp;rsquo;t particularly like &lt;em&gt;Django Unchained&lt;/em&gt; and though
I enjoyed &lt;em&gt;The Hateful Eight&lt;/em&gt;, I&amp;rsquo;ve never gone back to it. The only one of his
works I was willing to revisit is &lt;em&gt;Death Proof&lt;/em&gt;, because there our love for
images met, danced, and kissed amiably.&lt;/p&gt;
&lt;p&gt;This could partly explain why &lt;em&gt;Once Upon a Time in Hollywood&lt;/em&gt; hit me so hard.
I simply wasn&amp;rsquo;t expecting a great film from Tarantino, and I certainly wasn&amp;rsquo;t
expecting him to be able to tell me something new. I&amp;rsquo;ve always had the feeling
he had little to say, albeit he had been saying it mostly convincingly, film
after film. The themes, the references, the dialogues, the violence, the
objectification of pop culture: his cinema has been a reiteration of his own
obsessions. An enjoyable endeavour if you go along with it, a trite exercise
when you don&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;In &lt;em&gt;Once Upon a Time in Hollywood&lt;/em&gt;, Tarantino has finally understood that geeky
quotes, fan-service, and homages can live within a much broader context. Instead
of amusing the audience and himself with pop references and obscure trivia, he
uses nostalgia as a platform to deliver punches at a world that is actually not
the dream we used to believe in. And so we have an ageing actor who is forced to
accept subpar roles, merely a pawn at the disposal of producers and directors
who just want to profit from his once glorious fame. Next to him a stuntman who,
in spite of his easygoing attitude, sees his future perilously attached to a
movie star&amp;rsquo;s highs and lows. All dark sides of an industry that swallows you in
as quickly as it can throw you out from the back.&lt;/p&gt;
&lt;p&gt;However, Tarantino is too much in love with his idea of Hollywood to let go
nostalgia once and for all. &lt;em&gt;Once Upon a Time in Hollywood&lt;/em&gt; brims with the
culture of the period, every set carefully devised to convey the feeling of a
long gone era. The joy of re-creation is evident: leaflets, signposts,
accessories, wallpapers, posters, everything mirrors an insane love for those
years. In his previous films, this would be a sign of attention to minute
details for the sake of it, a perversion for popular paraphernalia one has to
show off, but here Tarantino finds the grace of George Lucas&amp;rsquo; &lt;em&gt;American
Graffiti&lt;/em&gt;. The camera moves patiently from a billboard to a neon sign, caresses
a drive-in and indulges on a cocktail with lover&amp;rsquo;s eyes. The surroundings blend
in with the individual stories being told. Instead of keeping track of the pop
nods, the viewer can actually feel in another place and another time, and they
are forgiven when they miss the umpteenth clue.&lt;/p&gt;
&lt;p&gt;Key to this smooth balance between time-travelling fun and functional
environments is what lies beneath the surface. Tarantino&amp;rsquo;s cinema is one of
individuals, men and women who more or less coincidentally cross paths which
usually end in violent confrontations. Here we have long stretches where nothing
relevant seems to happen. Just when one is about to ask whether there is a point
or not, one realizes the isolation the characters live in and how much of
everyone&amp;rsquo;s distinct isolations Tarantino intersects at precise points of the
story. The pleasure Sharon Tate finds in the people appreciating her performance
on the screen of a movie theatre is the pleasure Rick Dalton discovers in being
able to act greatly in a hackneyed western. The nonsensical world Cliff Booth
flashbacks into while on Dalton&amp;rsquo;s rooftop gives him the same happiness Sharon
Tate dwells in when home alone she listens to her favourite music. For a
director so in love with his dialogues, there are plenty of beautifully silent
moments in &lt;em&gt;Once Upon a Time in Hollywood&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Moreover, this film marks the first time in almost thirty years Tarantino has
replaced irony and complacent jokes with self-irony. I remember vividly when, at
the peak of his popularity, he ended up on the covers of DVDs recommending the
latest Asian film director he put his eyes on. His words become religion among
film viewers, and I too started digging through B-movies shelves to discover the
hidden gem he had just mentioned in another interview. In &lt;em&gt;Once Upon a Time in
Hollywood&lt;/em&gt; Tarantino has eventually come to terms with this, lightly mocking the
pretentiousness of all but forgettable productions. He invests so much time in
making the less than memorable stints of Rick Dalton look real that one may
believe he really thinks they are great stuff. Thanks to DiCaprio&amp;rsquo;s hilarious
overacting, though, the mimicry is exposed as brilliantly as it is achieved.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Once Upon a Time in Hollywood&lt;/em&gt; could very well be the surprise of the year for
me. I hope Quentin Tarantino moves further from here, and begins to apply the
lenses he used to analyse the world of the Hollywood that was to the Hollywood
that we have right now.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The aesthetics of patching</title>
      <link>https://manueluberti.eu/posts/2019-12-01-el-patch/</link>
      <pubDate>Sun, 01 Dec 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-12-01-el-patch/</guid>
      <description>&lt;p&gt;In describing &lt;a href=&#34;https://manueluberti.eu/posts/2019-11-16-helm/&#34;&gt;my move to Helm&lt;/a&gt; I quickly
mentioned another package from Thierry Volpiatto: &lt;code&gt;psession&lt;/code&gt;. &lt;code&gt;psession&lt;/code&gt; is a
light session saving mechanism and it comes with built-in integration for Helm
among other things, which of course renders it a valuable improvement to my
setup. The installation instructions are pretty clear, so there is no need to
bother you with obvious code snippets.&lt;/p&gt;
&lt;p&gt;Instead, I want to bother you with my obsessive-compulsive disorder. You see,
I am fond of how my beloved text editor looks, especially after boot. I disabled
every message, toolbar, scrollbar, menu, and buffer Emacs can throw at me on
startup, and the theme is applied as late as possible to ensure nothing
obstructs my way to another great day of text editing.&lt;/p&gt;
&lt;p&gt;What&amp;rsquo;s “wrong” with &lt;code&gt;psession&lt;/code&gt; then? In order to make the previous sessions
available, &lt;code&gt;psession&lt;/code&gt; loads some compiled files when Emacs starts. This is what
I expect it to do, because there would be no point in saving sessions without
restoring them. My only “problem” with this behaviour is the file loading
itself.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(cl-defun psession--restore-objects-from-directory
    (&amp;amp;optional (dir psession-elisp-objects-default-directory))
  (let ((file-list (directory-files dir t directory-files-no-dot-files-regexp)))
    (cl-loop for file in file-list do (and file (load file)))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The code is not hard to understand. What constitutes a rude attack at my
delicate aesthetic feelings is that &lt;code&gt;(load file)&lt;/code&gt; right before the good-looking
closing parentheses. Calling &lt;code&gt;load&lt;/code&gt; in this manner causes a bunch of messages to
“interfere” with a clean Emacs boot: they show up in the echo area during the
loading of my &lt;code&gt;init.el&lt;/code&gt; and they hurt so bad!&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s examine the documentation of the function &lt;code&gt;load&lt;/code&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;load is a function defined in lread.c.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Signature&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;(load FILE &amp;amp;optional NOERROR NOMESSAGE NOSUFFIX MUST-SUFFIX)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Documentation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Execute a file of Lisp code named FILE.&lt;/p&gt;
&lt;p&gt;[…]&lt;/p&gt;
&lt;p&gt;Print messages at start and end of loading unless
optional third arg NOMESSAGE is non-nil (but force-load-messages
overrides that).&lt;/p&gt;
&lt;p&gt;[…]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Perfect. Now I just have to hack &lt;code&gt;psession--restore-objects-from-directory&lt;/code&gt; and
make sure &lt;code&gt;load&lt;/code&gt; is called with a non-nil value for &lt;code&gt;NOMESSAGE&lt;/code&gt;. Usually when
I want to silence a command I rely on &lt;code&gt;inhibit-message&lt;/code&gt;. Let&amp;rsquo;s say I want to
silence the activation of &lt;code&gt;helm-adaptive-mode&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(let ((inhibit-message t))
  (helm-adaptive-mode 1))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;However, &lt;code&gt;psession--restore-objects-from-directory&lt;/code&gt; is sort of a private
function, so I need something else to change it according to my plans. There are
probably several good ways to patch &lt;code&gt;psession--restore-objects-from-directory&lt;/code&gt;,
but my go-to package in these situations is Radon Rosborough&amp;rsquo;s el-patch.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(el-patch-feature psession)
(with-eval-after-load &#39;psession
  (el-patch-cl-defun psession--restore-objects-from-directory
    (&amp;amp;optional (dir psession-elisp-objects-default-directory))
    (let ((file-list (directory-files dir t directory-files-no-dot-files-regexp)))
      (cl-loop for file
               in file-list
               do (and file (el-patch-swap (load file)
                                           (load file nil &#39;nomessage nil)))))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Only nine lines of code to please my sense of aesthetic. Beauty is always within
reach when we are dealing with Emacs.&lt;/p&gt;
&lt;p&gt;Note that at the moment of this writing, &lt;code&gt;el-patch-cl-defun&lt;/code&gt; is on the &lt;code&gt;develop&lt;/code&gt;
&lt;a href=&#34;https://github.com/raxod502/el-patch/issues/39&#34;&gt;branch&lt;/a&gt; of &lt;code&gt;el-patch&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I know this is silly, but I hope the double quotation marks and the light
tone make the irony clear enough. The point is having fun at hacking Emacs,
not insulting Thierry.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>At the helm of my configuration</title>
      <link>https://manueluberti.eu/posts/2019-11-16-helm/</link>
      <pubDate>Sat, 16 Nov 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-11-16-helm/</guid>
      <description>&lt;p&gt;It was a cold winter back in December 2014. If memory serves me well, it was
time spent at tinkering with old hardware and obscure window managers, reading
my first books on functional programming, and dealing with something about text
editors I can&amp;rsquo;t quite put my finger on.&lt;/p&gt;
&lt;p&gt;I was also reading about &lt;a href=&#34;https://emacs-helm.github.io/helm/&#34;&gt;Helm&lt;/a&gt; and the
praises everywhere in the Emacs community for this package: it can do this, it
improves that, it will take you closer to Emacs Nirvana. So yeah, I believed the
hype, because it came from trusted sources, especially the Nirvana-guy. Soon
Helm took over my configuration and I was using it for everything: switching
buffers, selecting bookmarks, in-buffer and per-project searches. Anything
involving candidate completion was in the wise hands of Helm.&lt;/p&gt;
&lt;p&gt;After a while &lt;a href=&#34;https://github.com/abo-abo/swiper&#34;&gt;Ivy&lt;/a&gt; came along, and the rest
is history. I have been using Ivy/Counsel for such a long a time I might as well
say they have become the central drivers of my Emacs setup. Along with the likes
of &lt;a href=&#34;https://github.com/ericdanan/counsel-projectile&#34;&gt;counsel-projectile&lt;/a&gt;, these
are the packages I use the most during the day.&lt;/p&gt;
&lt;p&gt;Lately I&amp;rsquo;ve been following some conversations about
&lt;a href=&#34;http://doc.endlessparentheses.com/Var/completion-styles.html&#34;&gt;completion-styles&lt;/a&gt;,
and when I learned that &lt;a href=&#34;https://github.com/thierryvolpiatto&#34;&gt;Thierry Volpiatto&lt;/a&gt;
was working on leveraging Helm for this I just could not resist. Note that
Thierry is still devising the implementation, so there is no need to rush at
opening issues and scream at him. Anyway, Helm was back in my radar now, and so
I took the chance to see if I could come up with a setup which would mirror my
everyday workflow with Ivy/Counsel.&lt;/p&gt;
&lt;p&gt;I immediately noticed that the theme I use lacked proper support for some Helm
faces, but nothing stopped me to &lt;a href=&#34;https://github.com/purcell/color-theme-sanityinc-tomorrow/pull/144&#34;&gt;do something about
it&lt;/a&gt;. Much
like Ivy/Counsel, Helm provides its own version for common operations such as
&lt;code&gt;helm-M-x&lt;/code&gt;, &lt;code&gt;helm-find-files&lt;/code&gt;, &lt;code&gt;helm-mini&lt;/code&gt;, &lt;code&gt;helm-recentf&lt;/code&gt;, &lt;code&gt;helm-bookmarks&lt;/code&gt;,
&lt;code&gt;helm-show-kill-ring&lt;/code&gt;, and &lt;code&gt;helm-resume&lt;/code&gt;. These are the core features for me,
and they work as expected. I also enabled &lt;code&gt;helm-adaptive-mode&lt;/code&gt; and
&lt;code&gt;helm-autoresize-mode&lt;/code&gt;, fixing the Helm window height to my preferences.&lt;/p&gt;
&lt;p&gt;As I did with Ivy/Counsel, I made buffer switching (i.e., &lt;code&gt;helm-mini&lt;/code&gt;) ignore
some files:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(require &#39;helm-buffers)
(setq helm-ff-skip-boring-files t)
(dolist (regexp &#39;(&amp;quot;\\`\\*direnv&amp;quot; &amp;quot;\\`\\*straight&amp;quot; &amp;quot;\\`\\*xref&amp;quot;))
  (cl-pushnew regexp helm-boring-buffer-regexp-list))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;My projects are all Git-versioned, hence I installed
&lt;a href=&#34;https://github.com/emacs-helm/helm-ls-git&#34;&gt;helm-ls-git&lt;/a&gt;, which superseded
Projectile and the related &lt;code&gt;helm-projectile&lt;/code&gt; in an instant. In order to make
per-project lookups with Helm as easy as they were with Ivy/Counsel, I went with
&lt;a href=&#34;https://github.com/syohex/emacs-helm-ag&#34;&gt;helm-ag&lt;/a&gt; and
&lt;a href=&#34;https://github.com/brotzeit/helm-xref&#34;&gt;helm-xref&lt;/a&gt;. To make it even better,
I added &lt;a href=&#34;https://github.com/thierryvolpiatto/psession&#34;&gt;psession&lt;/a&gt; and configured
it to persist the things I need from my Emacs sessions. The only goodies I put
on top of this setup are &lt;a href=&#34;https://github.com/tmalsburg/helm-bibtex&#34;&gt;helm-bibtex&lt;/a&gt;
and &lt;a href=&#34;https://github.com/masasam/emacs-helm-tramp&#34;&gt;helm-tramp&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Back in the day, Helm felt heavier and more bloated than Ivy/Counsel, but that
is nonsense and was probably due to me being still young and inexperienced at
Emacs tweaking. In fact, it still takes less than one second for my Emacs to
boot, and so far there is nothing in terms of functionalities I have been
missing from my previous configuration. We could argue about UI minimalism and
design choices as long as we want, or we could simply try what the Emacs
ecosystem offers and decide for ourselves what suits our text editor best.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Thirty straight days</title>
      <link>https://manueluberti.eu/posts/2019-11-02-thirty-straight-days/</link>
      <pubDate>Sat, 02 Nov 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-11-02-thirty-straight-days/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s already been a month since I moved from &lt;code&gt;package.el&lt;/code&gt; to &lt;code&gt;straight.el&lt;/code&gt;, and
if it wasn&amp;rsquo;t for the constant fiddling with my Emacs configuration, I would have
hardly noticed the differences in package management. A proof of the solid work
behind &lt;code&gt;straight.el&lt;/code&gt;, sure, but also a demonstration of how painless package
management can be for someone who bypasses the provided UI and relies on
&lt;code&gt;use-package&lt;/code&gt; snippets to install and setup their packages.&lt;/p&gt;
&lt;p&gt;However, with &lt;code&gt;straight.el&lt;/code&gt; a new approach to updates is needed. First of all,
I compulsively track the state of the packages I have installed, and I tend to
update all of them every morning. This is an operation that follows the pulling
of the latest developments on the Emacs &lt;code&gt;master&lt;/code&gt; branch.&lt;/p&gt;
&lt;p&gt;On the one hand, this approach could lead to breaking changes and tears of
sadness. On the other hand, I like to report bugs as soon as I discover them,
and hopefully help the great developers out there who make my text editing a
wonder.&lt;/p&gt;
&lt;p&gt;Considering how vital to my computing Emacs is, this may sound like complete
madness, I know. In my defence, I mostly rely on stable and long-term support
software on my computer. Emacs is just the special kind of madness that drags me
to it in spite of the risks. Furthermore, as I wrote &lt;a href=&#34;https://manueluberti.eu/posts/2019-10-04-straight/&#34;&gt;last time&lt;/a&gt;, &lt;code&gt;straight.el&lt;/code&gt; makes it easier to revert to a
previous unbroken version of a package, so I can find a functional environment
without too much of a hassle.&lt;/p&gt;
&lt;p&gt;In my &lt;code&gt;package.el&lt;/code&gt; days, package updating was handled by Paradox. In a matter of
a couple of key bindings, it took care of notifying me about new versions and
installing the selected updates. &lt;code&gt;straight.el&lt;/code&gt; is less fancy, though. It
provides the necessary commands to install and update a package, as well as the
big brother that will pull every package in, but all the UI it offers is the
user&amp;rsquo;s &lt;code&gt;completing-read&lt;/code&gt; framework—&lt;code&gt;ivy-read&lt;/code&gt; in my case.&lt;/p&gt;
&lt;p&gt;Well, like the first line of the README says, &lt;code&gt;straight.el&lt;/code&gt; is a tool for the
Emacs hacker, so let&amp;rsquo;s play with it. All I had to do to get a more &lt;em&gt;interactive&lt;/em&gt;
user experience when updating packages was devising a small wrapper around
&lt;code&gt;straight.el&lt;/code&gt;&amp;rsquo;s facilities.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-straight-pull-or-prune (&amp;amp;optional prune)
  &amp;quot;Update all available packages via `straight&#39;.
With PRUNE, prune the build cache and the build directory.&amp;quot;
  (interactive &amp;quot;P&amp;quot;)
  (if prune
      (when (y-or-n-p &amp;quot;Prune build cache and build directory?&amp;quot;)
        (straight-prune-build-cache)
        (straight-prune-build-directory))
    (when (y-or-n-p &amp;quot;Update all available packages?&amp;quot;)
      (straight-pull-all))))

(bind-key* &amp;quot;&amp;lt;f7&amp;gt;&amp;quot; #&#39;mu-straight-pull-or-prune)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pretty straightforward, isn&amp;rsquo;t it? (Pun intended.)&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The essence of kinesis</title>
      <link>https://manueluberti.eu/posts/2019-10-23-kinesis/</link>
      <pubDate>Wed, 23 Oct 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-10-23-kinesis/</guid>
      <description>&lt;p&gt;Without going too deep into Aristotle&amp;rsquo;s &lt;em&gt;Physics&lt;/em&gt;, the Greek term &lt;em&gt;kinesis&lt;/em&gt; can
be translated as both change and movement. It&amp;rsquo;s a fascinating word, because it
implies that every transformation is in fact a motion. It&amp;rsquo;s also a concept which
popped up in my mind over and over again as I was sitting through Baz
Luhrmann&amp;rsquo;s &lt;em&gt;Moulin Rouge!&lt;/em&gt; for the first time.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2019-10-23-kinesis.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Moulin Rouge! (Baz Luhrmann, 2001)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Much like &lt;em&gt;Romeo + Juliet&lt;/em&gt;, &lt;em&gt;Moulin Rouge!&lt;/em&gt; starts with a sheer attack on the
viewer&amp;rsquo;s senses. It took me a while to get accustomed to Luhrmann
machine-gunning frames. The pacing is hysterical with multiple characters
constantly overlapping each other, unable to stop moving and talking, surrounded
by music and colours aimed at obliterating the smallest hint of finesse. The
screen struggles to contain the barrage of action and words, and even the
editing department feels exhausted while it desperately tries to save up energy
for the next sequence of events. It&amp;rsquo;s impossible to follow all that is happening
in front of us and making sense of it in one go. The film demands other viewings
to be fully appreciated.&lt;/p&gt;
&lt;p&gt;This is an approach that can lead the untrained eye to fatigue, because it takes
solid skills to master such an emotional assault to the mind. Play it too loud,
and you will not fit in the viewers&amp;rsquo; attention span; instead you will contribute
to its progressive erosion. On the other hand, work on the safe side and you
will miss the potential of your images&amp;rsquo; energy, leaving the script or the actors
in charge of avoiding a lacklustre effort.&lt;/p&gt;
&lt;p&gt;Luhrmann, however, understands the limits of his &lt;em&gt;mise-en-scène&lt;/em&gt; and knows
exactly when he is about to stretch it too far. He stops at the right time,
takes a step back, and lets everything in between movements speak. The control
is all the more remarkable considering the places where the events occur. They
are all confined spaces which shorten the distance between people, hastening
their encounters almost as quickly as it would take an editing cut to do the
identical thing. The viewer is unnaturally constrained, but at the same time
they gain a deep level of intimacy with the characters even amidst the restless
chaos.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Moulin Rouge!&lt;/em&gt; seems to agree with Aristotle about time. According to the great
philosopher, time is a measure of change, hence time itself cannot exist without
it. In &lt;em&gt;Moulin Rouge!&lt;/em&gt; the illusion and the lavish artifice of the spectacle are
the stopwatches bound to end their run as soon as the characters give up
changing. If they hid their passion, they would never be happy; but if they
unmasked their lies, they would put an end to a show that must go on in spite of
everyone&amp;rsquo;s fate. Thus their relationship lives both in the dark and in the open,
kept alive by a vibrant tension between the two worlds.&lt;/p&gt;
&lt;p&gt;The tension is between Luhrmann&amp;rsquo;s world and cinema as a spectacle as well. Not
only the director breaks the illusion of a period drama as soon as the pop songs
blend starts, he also plays with the musical form interspersing quotes and
homages along the way, asking us to be permanently up to speed. Moreover, he
wants over-the-top reactions from his leads, who exaggerate their performances
and get close to unnatural acting, albeit never quite there. We are left in
between credulous and incredulous feelings, always on the verge of losing our
mind right before we find faith in the images again.&lt;/p&gt;
&lt;p&gt;Almost twenty years later, &lt;em&gt;Moulin Rouge!&lt;/em&gt; is still an unidentifiable object
from the outer world. Films like &lt;em&gt;Speed Racer&lt;/em&gt; played with &lt;em&gt;kinesis&lt;/em&gt; and
cinema&amp;rsquo;s own artifice to wonderful results, but ever since Luhrmann&amp;rsquo;s pop
extravaganza nobody has been able to master the essence of &lt;em&gt;kinesis&lt;/em&gt; with such
lush awkwardness.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Straight ahead</title>
      <link>https://manueluberti.eu/posts/2019-10-04-straight/</link>
      <pubDate>Fri, 04 Oct 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-10-04-straight/</guid>
      <description>&lt;p&gt;I have never found Emacs appealing without external packages. From the colour
theme to the best Git UI one could ask for, I can&amp;rsquo;t imagine using Emacs without
external packages. The built-in &lt;code&gt;package.el&lt;/code&gt; has served me well for a long time.
Configured with the usual package archives, it has offered me easy access to new
packages and updates for the currently installed ones.&lt;/p&gt;
&lt;p&gt;However, digging a little deeper reveals some of its shortcomings. For instance,
downgrading has to be done manually, because &lt;code&gt;package.el&lt;/code&gt; gives access only to
the latest version of a package. This also means it is impossible to get a
specific version of said package without getting the source and loading it by
yourself.&lt;/p&gt;
&lt;p&gt;As you install and configure more and more tools to enhance your Emacs
experience, you are adding layers of complexity. Dependencies are pulled in and
new releases could bring breaking changes: either you never upgrade your
packages, or you learn to live on the bleeding edge. I love that edge as much as
your next Emacs hacker, but to approach it with steadiness I need more control
over the packages I use.&lt;/p&gt;
&lt;p&gt;This is where &lt;a href=&#34;https://github.com/raxod502/straight.el&#34;&gt;straight.el&lt;/a&gt; fits in.
I have to admit that &lt;a href=&#34;https://github.com/raxod502&#34;&gt;Radon Rosborough&lt;/a&gt; played
dirty with my feelings: by describing &lt;code&gt;straight.el&lt;/code&gt; as purely functional he knew
perfectly well a developer in love with functional programming could not resist.
But there is more to it, of course.&lt;/p&gt;
&lt;p&gt;First of all, I love the documentation. The effort put into explaining the
rationale behind it, the comparisons with other package managers, and the basics
to get started is simply amazing. Even the process of reproducing bugs is
documented. It may seem like a lot to take in, but it&amp;rsquo;s clear and it&amp;rsquo;s something
I want to know before changing one of the key features of my text editor.&lt;/p&gt;
&lt;p&gt;Moreover, it takes a few lines of code to bootstrap &lt;code&gt;straight.el&lt;/code&gt;. It would
probably take fewer lines to set up &lt;code&gt;package.el&lt;/code&gt;, that&amp;rsquo;s true, but &lt;code&gt;straight.el&lt;/code&gt;
is far more customisable. It also works seamlessly with &lt;code&gt;use-package&lt;/code&gt;, so
I didn&amp;rsquo;t have to reinvent my Emacs configuration just to try a new package
manager.&lt;/p&gt;
&lt;p&gt;Finally, you can freeze your package state at any time with
&lt;code&gt;straight-freeze-versions&lt;/code&gt;. This creates a lockfile with the current versions of
your packages, meaning you can reproduce your exact configuration with a simple
&lt;code&gt;straight-thaw-versions&lt;/code&gt;. Stability is just a couple of commands away.&lt;/p&gt;
&lt;p&gt;There must (should?) be a moment when the Emacs hacker knows they exploited
their beloved editor as much as possible, the eureka light bulb leading the way
through a thick fog of &lt;code&gt;setq&lt;/code&gt; and &lt;code&gt;defun&lt;/code&gt;. Valhalla is there, Emacs hacker, you
know it. As for me, I decided to accept the murkiness for now, and look for the
bulb that will get me out of here eventually another time.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Grounding expressionism</title>
      <link>https://manueluberti.eu/posts/2019-08-31-grounding/</link>
      <pubDate>Sat, 31 Aug 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-08-31-grounding/</guid>
      <description>&lt;p&gt;Every time I grab a Tony Scott&amp;rsquo;s film from my shelves and put it on is a
reminder of how much I miss him. Periodically revisiting their favourite
directors is something all film lovers do, of course. When the director is dead,
and his or her passing happens to be recent, it&amp;rsquo;s almost as if a close friend is
gone. I do miss Charlie Chaplin, but he was a like a long gone
grand-grandfather. A friend is a different thing altogether.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2019-08-31-unstoppable.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Unstoppable (Tony Scott, 2010)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;I was fourteen when &lt;em&gt;The Last Boy Scout&lt;/em&gt; appeared in my life, and for every new
film from him I watched, only lukewarm reviews or negative analyses would be
available to me.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; The vulgar auteurism wave of some years ago took me by
surprise. Critics were finally acknowledging the qualities of Scott&amp;rsquo;s works and
put him into perspective. I didn&amp;rsquo;t like all the directors avidly called vulgar
auteurs, but it was still a pleasure to read informed and not biased pieces.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;
I felt much less alone in my love. Recently I went back to some of Scott&amp;rsquo;s late
period films, and &lt;em&gt;Unstoppable&lt;/em&gt; revealed itself under a new light this time.&lt;/p&gt;
&lt;p&gt;More so than &lt;em&gt;The Taking of Pelham 123&lt;/em&gt;, as Sam Redfern acutely &lt;a href=&#34;https://letterboxd.com/samredfern/film/unstoppable-2010/1/&#34;&gt;points
out&lt;/a&gt;, &lt;em&gt;Unstoppable&lt;/em&gt;
never loses its poetry for an iteration of its thematic foundations. Scott
removes the need to morally justify the events with a simple and yet absolutely
functional expedient: there is no villain in &lt;em&gt;Unstoppable&lt;/em&gt;. Or to phrase it
another way, the real villains are men&amp;rsquo;s short-sightedness and arrogance.&lt;/p&gt;
&lt;p&gt;There are always silly mistakes by main or secondary characters in
Scott&amp;rsquo;s films. More often than not, they cost lives, and to a varying degree
they can all be traced down to ignorance or stupidity. Ego plays such a pivotal
role in moving individuals&amp;rsquo; actions that they forget to be aware of the
situation and to fully understand the consequences of their decisions. As a
result people die, but Scott is not cynic enough to stop and judge. He leaves it
there as a viewer&amp;rsquo;s responsibility, allowing himself the moments to indulge in
aesthetic developments. These stylistic choices didn&amp;rsquo;t appear out of nowhere.
Instead they were the results of Scott&amp;rsquo;s constant explorations from the 2002
short film &lt;em&gt;Beat the Devil&lt;/em&gt; onwards. Film after film, Scott kept building on the
tension between expressing feelings through editing, camera movements, lights,
shadows and colour palettes, and the realism upon which the events were
grounded.&lt;/p&gt;
&lt;p&gt;This is where &lt;em&gt;Unstoppable&lt;/em&gt; really shines, because it positions itself at the
opposite of the form of &lt;em&gt;Domino&lt;/em&gt;, representing Scott&amp;rsquo;s more balanced approach to
a material that could easily escape control. In &lt;em&gt;Domino&lt;/em&gt;, the director takes his
chances to play with a malleable narrative rhythm, setting aside the good versus
evil battle that usually underpins his efforts. He lets himself lose the
connection with the viewer unexpectedly, forcing him to follow through events
that just seem to pop out of Domino Harvey&amp;rsquo;s mind at her own will.&lt;/p&gt;
&lt;p&gt;On the other hand, &lt;em&gt;Unstoppable&lt;/em&gt; packs in about one hour and half a tight series
of set pieces, with such a precise arrangement that we can be sidetracked by the
constant action before noticing the firm hand holding it all together. Minutes
of details to inform us and make us care about the leads leave soon space to
speed and danger, juxtaposed with phone and radio calls that contribute to the
adrenaline crescendo. In between crashes and chases, the clash of generations,
the passing of experiences from the older generation to the younger, nepotism
and incompetence, economic concerns and lives as collateral damage to keep the
system alive, media insolence and old fashioned heroism.&lt;/p&gt;
&lt;p&gt;Since the 80s through the 90s, Tony Scott has often been deemed too attached to
a polished and depthless method operating with never good enough scripts. As
soon as he moved on to transform his vision, he has been attacked for the
courage to renounce the conventional forms of the action genre and for playing
too close to illegibility. However, the middle way between expressionism and
realism has never been found with such a convincing strength as in the work of
Tony Scott.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;See: &lt;a href=&#34;https://www.amazon.com/gp/product/8880121529/ref=dbs_a_def_rwt_bibl_vppi_i1&#34;&gt;Action! Forme di un transgenere
cinematografico&lt;/a&gt;
by Giona Nazzaro.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;See: &lt;a href=&#34;https://mubi.com/notebook/posts/smearing-the-senses-tony-scott-action-painter&#34;&gt;Smearing the Senses: Tony Scott, Action
Painter&lt;/a&gt;
and &lt;a href=&#34;https://mubi.com/notebook/posts/tony-scott-a-moving-target&#34;&gt;Tony Scott: A Moving
Target&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>A pen and a notebook</title>
      <link>https://manueluberti.eu/posts/2019-08-25-bujo/</link>
      <pubDate>Sun, 25 Aug 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-08-25-bujo/</guid>
      <description>&lt;p&gt;Cal Newport&amp;rsquo;s &lt;em&gt;Digital Minimalism&lt;/em&gt; has really &lt;a href=&#34;https://manueluberti.eu/posts/2019-04-10-digital-minimalism/&#34;&gt;changed my perspective&lt;/a&gt; on a lot of things in my life. Since
I started my decluttering process I&amp;rsquo;ve noticed several benefits. In particular,
I&amp;rsquo;m less prone to distractions and leisure has become time for engaging
activities.&lt;/p&gt;
&lt;p&gt;This new approach has prompted me to reconsider how I organise my days, weeks,
and months. For a couple of years I&amp;rsquo;ve been using my custom variation of GTD,
tracking everything with Org files in Emacs, and using Syncthing and Orgzly to
keep it all synced with my phone. However, as I already explained when I wrote
about Cal Newport&amp;rsquo;s book, my smartphone is not my best friend, and so the whole
setup is actually of little use. And let&amp;rsquo;s be frank: sometimes I can leave Emacs
alone.&lt;/p&gt;
&lt;p&gt;I also write a lot, everyday. I write about films, note my ideas on the music
I listen to and the books I read, and I write for this blog too. Hence I need a
place which can be useful both for organising my life and for my basic urge to
write. Enter Bullet Journal.&lt;/p&gt;
&lt;p&gt;I recently rediscovered the pleasure of pen and paper when in Leuven for &lt;a href=&#34;https://manueluberti.eu/posts/2019-08-04-clojure-heart/&#34;&gt;Heart
of Clojure&lt;/a&gt;. Since I left the laptop at
home on purpose, I spent almost every spare moment on my notebook, and much of
the article on the conference came straight from its pages. As Ryder Carroll,
the man behind Bullet Journal, points out in his book, the connection our brain
establishes with pen and paper is completely different from the one with
keyboard and monitor. For me it&amp;rsquo;s mostly been a feeling I sensed when writing on
my notebook. My thoughts just came out with a spontaneity I&amp;rsquo;ve rarely enjoyed
with the digital counterparts.&lt;/p&gt;
&lt;p&gt;I won&amp;rsquo;t bother you with the details about Bullet Journal. The website has
tutorials, videos, there is a book about it, so everything you need to know is
out there. I picked this system because I find it simple and clear, modular and
practical. Starting next month, I am going to fully migrate my GTD setup to
Bullet Journal and once again step back to distance myself from pervasive
technology consumption.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Open Magit from Ibuffer</title>
      <link>https://manueluberti.eu/posts/2019-08-07-ibuffer-magit/</link>
      <pubDate>Wed, 07 Aug 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-08-07-ibuffer-magit/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s amazing how many packages for our beloved editor exist out there. ELPA and
MELPA keep growing and growing, and curiosity is always pushing me out to look
for a new package to try.&lt;/p&gt;
&lt;p&gt;Last year I wrote about &lt;a href=&#34;https://manueluberti.eu/posts/2017-08-02-eyebrowse/&#34;&gt;Eyebrowse&lt;/a&gt;, a cool
workspace manager that has proven to be a reliable friend until recently.
Eyebrowse is a helpful extension, but as it turns out the built-in Ibuffer is
enough to make sense of all of the buffers available. I open it with `C-x C-b,
which is one of the most used key bindings in my everyday Emacs interactions.&lt;/p&gt;
&lt;p&gt;Ibuffer presents a customizable list of buffers on which, much like Dired, we
can apply different kinds of operations: filter, sort, group, mark, delete,
bury, visit. Just press &lt;code&gt;h&lt;/code&gt; in Ibuffer to get an idea.&lt;/p&gt;
&lt;p&gt;Since I mainly work on projects versioned on Git, ibuffer-vc helps with grouping
the buffers in a project-based fashion and operate on them. For instance, to
quickly close a project and its related buffers, mark the project header for
deletion with &lt;code&gt;d&lt;/code&gt; and then press &lt;code&gt;x&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;One thing I was missing in Ibuffer was an integration with Magit. I wanted to
open &lt;code&gt;magit-status&lt;/code&gt; in the project the current buffer (i.e., the buffer where
point is on) belongs to.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-ibuffer-magit ()
  &amp;quot;Open `magit-status&#39; for the current buffer.&amp;quot;
  (interactive)
  (let ((buf (ibuffer-current-buffer t)))
    (magit-status (cdr (ibuffer-vc-root buf)))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I&amp;rsquo;ve bound this function to &lt;code&gt;v&lt;/code&gt; in &lt;code&gt;ibuffer-mode-map&lt;/code&gt;. Note that
&lt;code&gt;v&lt;/code&gt; was previously calling &lt;code&gt;ibuffer-do-view&lt;/code&gt;, so you may want to pick
the key that suits you best.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The people’s conference</title>
      <link>https://manueluberti.eu/posts/2019-08-04-clojure-heart/</link>
      <pubDate>Sun, 04 Aug 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-08-04-clojure-heart/</guid>
      <description>&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/hoc.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;I have still to properly unpack my luggage and yet here I am, eager to make
sense of the enthusiasm of experiencing Heart of Clojure. I tried my best to pin
down on my diary everything that the conference had to offer, because at first
I wanted to write a round-up similar to the one I did for &lt;a href=&#34;https://manueluberti.eu/posts/2018-04-23-dcd-round-up/&#34;&gt;Dutch Clojure Days
2018&lt;/a&gt;. However, summarising Heart of
Clojure seems like an unimaginative exercise. And this is because a summary is
by definition a cursory look. Considering what I&amp;rsquo;ve had the pleasure to enjoy,
it doesn&amp;rsquo;t feel right.&lt;/p&gt;
&lt;p&gt;So, what was Heart of Clojure like exactly? After one day and a half in and
plenty more to do, I came up with a definition: the people&amp;rsquo;s conference.
Fragments of this definition were already floating around my head as soon as
I was in front of Hal5, the incredibly cosy space the Heart of Clojure team set
up as the main location for the event. It&amp;rsquo;s not easy to put it clearly into
words, but just take a look at the registration process. You reached a desk,
they gave you a badge, you picked the holder of the right colour for you (i.e.,
green meant you were fine appearing in pictures taken during the conference,
pink you were not), you were given pens and markers to write your name on the
badge and add whatever customisations you feel like adding to it. Now, go back
and count how many &lt;em&gt;you&lt;/em&gt; and &lt;em&gt;they&lt;/em&gt; there are in the last sentence, and you&amp;rsquo;ll
start getting an idea about the general approach of Heart of Clojure.&lt;/p&gt;
&lt;p&gt;The more I think about it, the more I find the effort to make everything safe
and nice for the attendees remarkable, especially because it looked like nobody
was actually controlling anything. I wasn&amp;rsquo;t expecting surveillance cameras and
SWAT teams, of course, but the simple fact that the responsibility of looking
after everyone appeared invisible made for a peaceful environment. And you
always had kind and smiling Heart of Clojure&amp;rsquo;s staff members around ready to
help you out or have a chat with you. The results were in plain sight. Everybody
looked calm, serene, and even without asking you could tell they were having a
great time just being there.&lt;/p&gt;
&lt;p&gt;Unsurprisingly, the wide range of topics in the program left me with an
impossible amount of thoughts. Teaching programmers to draw, Clojure in fashion,
empathy and resilience, inclusiveness and climate change, open source
sustainability and fragment shaders, compilers and arcade games. In a two-day
span, the selection of talks leveraged topics of such a pervasive power that it
was basically impossible not to constantly connect and be moved. With the
entertaining work of the hosts and unforgettable MCs Saskia Linder and Bozhidar
Batsov there was no such thing as boredom in the air.&lt;/p&gt;
&lt;p&gt;At the same time, though, I have to admit I was a bit sceptical about the extra
activities. Again, the Heart of Clojure&amp;rsquo;s masterminds put the people in charge,
and so anyone could devise an activity covering the spare time in the evenings,
during the long afternoon break on Saturday, or on Sunday morning. Before
leaving for Leuven, my overtly paranoid brain asked me: how could they trust
everybody like this? What if a too fervid attendee can&amp;rsquo;t manage it well?
Wouldn&amp;rsquo;t it spoil the fun for the rest of us? It turned out there was too much
joyfulness around to be paranoid, a well-deserved lesson for that silly brain of
mine. I will never be able to thank the awesome Malwine enough for the
sketchnote workshop, and I&amp;rsquo;ll have to find a way to be at another of her
workshops sooner or later.&lt;/p&gt;
&lt;p&gt;Probably co-opted by the aforementioned brain, my mind wandered in similar
doubts when it came to the lightning talks, but in five minutes Connie silenced
both my brain and my mind. I think I&amp;rsquo;ve held my breath and stood still
throughout her entire session, struck in my seat by the genius of an eleven-year
old&amp;rsquo;s crafts. More than anything else, she was the heart at the Heart of
Clojure.&lt;/p&gt;
&lt;p&gt;I have to stop now, because it&amp;rsquo;s time to rest and see if I can soothe the
intense emotions of the past three days. Did I mention the couple of tears on
the &lt;em&gt;My Heart Will Go On&lt;/em&gt; karaoke? You cannot play with a sentimental fool like
this, people, there are feelings at stake. Come on.&lt;/p&gt;
&lt;p&gt;But before turning off the lights:&lt;/p&gt;
&lt;p&gt;Thank you Arne and thank you Martin: you conceived the impossible and made it
happen. Please make it happen again.&lt;/p&gt;
&lt;p&gt;Thank you Heart of Clojure&amp;rsquo;s program committee and reviewers: Arne and Martin
couldn&amp;rsquo;t have made it without you.&lt;/p&gt;
&lt;p&gt;Thank you speakers: singling out one of you would be unfair and completely
pointless. You all inspired me, in one way or the other.&lt;/p&gt;
&lt;p&gt;Thank you Saskia: you taught me the beauty of reaching out, and I will treasure
the words on emotion management for a long while.&lt;/p&gt;
&lt;p&gt;Thank you Bozhidar: no, not for just CIDER this time. For everything, including
the unparalleled dancing skills.&lt;/p&gt;
&lt;p&gt;Thank you Carlo, Davide, Fabrizio, and Kleopatra: I&amp;rsquo;m still not sure of how you
did it, but you made me forget sociability is an issue for me. For a while, at
least.&lt;/p&gt;
&lt;p&gt;Thank you Marco and thank you 7bridges: I just couldn&amp;rsquo;t have managed it by
myself.&lt;/p&gt;
&lt;p&gt;Thank you James Cameron: yes, I still cry with that film, why are you doing this
to me?&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Format XML like a pro</title>
      <link>https://manueluberti.eu/posts/2019-07-18-reformatter/</link>
      <pubDate>Thu, 18 Jul 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-07-18-reformatter/</guid>
      <description>&lt;p&gt;Years ago I wrote about a &lt;a href=&#34;https://manueluberti.eu/posts/2016-12-03-xmllint/&#34;&gt;custom function&lt;/a&gt;
that uses &lt;code&gt;shell-command-on-region&lt;/code&gt; to run &lt;code&gt;xmllint&lt;/code&gt; on an XML buffer.&lt;/p&gt;
&lt;p&gt;There is nothing wrong with this function, but a simpler approach is using
&lt;code&gt;reformatter&lt;/code&gt;, a nice tool from the prolific mind of Steve Purcell.&lt;/p&gt;
&lt;p&gt;Once installed, defining a new formatter is trivial:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(reformatter-define xml-format
  :program &amp;quot;xmllint&amp;quot;
  :args &#39;(&amp;quot;--format&amp;quot; &amp;quot;-&amp;quot;)
  :mode nil)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now I can add a key binding for &lt;code&gt;xml-format&lt;/code&gt; or simply type &lt;code&gt;M-x&lt;/code&gt;
&lt;code&gt;xml-format&lt;/code&gt; in an XML buffer to have it nicely printed.&lt;/p&gt;
&lt;p&gt;Note that setting &lt;code&gt;:mode&lt;/code&gt; to &lt;code&gt;nil&lt;/code&gt; tells &lt;code&gt;reformatter-define&lt;/code&gt; to not create a
minor mode, which I don&amp;rsquo;t need in this particular case. The minor mode could be
useful if you want your formatter to be called automatically when you save a
buffer. For instance, without changing the default setting for &lt;code&gt;:mode&lt;/code&gt; you could
set up the formatter in a project via &lt;code&gt;.dir-locals.el&lt;/code&gt; with:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;((nxml-mode
  (mode . xml-format-on-save)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify other options when creating a formatter, so be sure to
check the documentation of &lt;code&gt;reformatter-define&lt;/code&gt; (&lt;code&gt;C-h f reformatter-define&lt;/code&gt;).&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Motivate yourself</title>
      <link>https://manueluberti.eu/posts/2019-07-06-memento-mori/</link>
      <pubDate>Sat, 06 Jul 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-07-06-memento-mori/</guid>
      <description>&lt;p&gt;Life is such an ephemeral thing. When you really think about it, the time spent
on the planet we are destroying day after day is not that much, especially
compared to the entire history of humankind. Luckily enough, I can allow myself
to indulge in thoughts about life and time. I tend to avoid laziness as much as
possible, saving spare time for &lt;a href=&#34;https://manueluberti.eu/posts/2019-04-10-digital-minimalism/&#34;&gt;gratifying leisure&lt;/a&gt;: morning runs and basic workout, books,
cinema, collecting vinyls, occasional cooking. I like to think of myself as
someone who is not set on a predictable path for the rest of his life.&lt;/p&gt;
&lt;p&gt;Lassi Kortela&amp;rsquo;s &lt;code&gt;memento-mori&lt;/code&gt; has recently appeared on MELPA. It&amp;rsquo;s a small
package which aims to display your age in the mode-line. The age is displayed
with two decimals and it gets updated after a few days once you turned on
&lt;code&gt;memento-mori-mode&lt;/code&gt;. Thus you have a reminder of how long you have been on
Earth, a somehow inspirational indicator to question the time at your disposal.
We are entering philosophical worlds here.&lt;/p&gt;
&lt;p&gt;However, I don&amp;rsquo;t like having too much stuff in my mode-line. I want it simple
and with only the information I need. That&amp;rsquo;s why I use &lt;code&gt;minions&lt;/code&gt; to hide all the
minor-modes. But I can still use &lt;code&gt;memento-mori&lt;/code&gt; to display a message on Emacs
startup.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-display-memento-mori ()
  &amp;quot;Display my current age by leveraging `memento-mori-age-string&#39;.&amp;quot;
  (interactive)
  (let ((first-name (car (s-split-words user-full-name)))
        (age (s-trim memento-mori-age-string))
        (msg &amp;quot;%s, you are %s, don&#39;t waste your time!&amp;quot;))
    (run-with-timer 2 nil
                    (lambda ()
                      (message msg first-name age)
                      (run-with-timer 3 nil
                                      (lambda ()
                                        (message nil)))))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I am using &lt;code&gt;s&lt;/code&gt; facilities to manipulate strings, but more importantly the trick
is using &lt;code&gt;run-with-timer&lt;/code&gt; as explained on
&lt;a href=&#34;https://emacs.stackexchange.com/a/28243/5514&#34;&gt;Emacs.StackExchange&lt;/a&gt;. After two
seconds, the message is shown, and three seconds after being visible it will
disappear.&lt;/p&gt;
&lt;p&gt;Provided you set &lt;code&gt;memento-mori-birth-date&lt;/code&gt; and activate &lt;code&gt;memento-mori-mode&lt;/code&gt;,
adding the function to &lt;code&gt;after-init-hook&lt;/code&gt; does the rest.&lt;/p&gt;
&lt;p&gt;Note that you need to activate &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Using-Lexical-Binding.html#Using-Lexical-Binding&#34;&gt;lexical
binding&lt;/a&gt;
in your init file to use &lt;code&gt;mu-display-memento-mori&lt;/code&gt;.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Thanks to Martin Buchmann for pointing this out.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Questioning the future</title>
      <link>https://manueluberti.eu/posts/2019-07-05-ai/</link>
      <pubDate>Fri, 05 Jul 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-07-05-ai/</guid>
      <description>&lt;p&gt;A work of art is ever-changing. It never ceases to approach you in unexpected
ways and, even when you know what is coming, a work of art knows that it can
surprise your mental agility in an instant. It&amp;rsquo;s as living as the artist, and
just as the artist explores different directions, a work of art moves and
challenges you constantly. If it doesn&amp;rsquo;t move or it stops fighting, then there
is little art involved in it.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2019-07-05-ai.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;A.I. Artificial Intelligence (Steven Spielberg, 2001)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;A recent review of &lt;a href=&#34;https://letterboxd.com/alec_lane/film/ai-artificial-intelligence/2/&#34;&gt;A.I. Artificial
Intelligence&lt;/a&gt;
by Alec Lane prompted me to reacquaint with a fundamental piece of my love for
cinema. Lane&amp;rsquo;s write-up is not only the best commentary on &lt;em&gt;A.I.&lt;/em&gt; I&amp;rsquo;ve ever
read,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; it also makes a convincing and beautifully thought point: there is
more Steven Spielberg than Stanley Kubrick at play here, and only Spielberg
could have taken the film to its incredible heights.&lt;/p&gt;
&lt;p&gt;This is such a fascinating take for me, because I&amp;rsquo;ve always thought of &lt;em&gt;A.I.&lt;/em&gt; as
a film from two minds. I superficially attributed the first and third act to
Kubrick, and the second, longish one to Spielberg. My error was the consequence
of the limited knowledge of Spielberg&amp;rsquo;s career I had until recent years.
I deemed him a somewhat too dully popular and happy-ending seeker, so my view on
his works had been impeded by such unjustified snobbery.&lt;/p&gt;
&lt;p&gt;However, &lt;em&gt;A.I.&lt;/em&gt; felt immediately special. After the first viewing, it became a
fixation. I devoured the special contents on the two-disc DVD edition, collected
articles and books about and at the basis of it, bought the Blu-ray, repeatedly
annoyed everyone around me over the years, and wrote about it on one of my
long-lost affairs with blogging.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Why do I feel compelled to revisit &lt;em&gt;A.I.&lt;/em&gt; so much? It has to do with its nature.
The more I grow old, the more I read and learn. The more I know, the more I find
in the film. Surely this is a process applicable to many other films as well,
but it&amp;rsquo;s particularly gratifying with &lt;em&gt;A.I.&lt;/em&gt; because there seems to be no end at
the angles from which it can be looked at. The fairy tale as an allegory is just
the first step. As soon as you start peeling layers away, &lt;em&gt;A.I.&lt;/em&gt; offers
questions, more than answers, on pathos and ethos, immortality and spirituality,
hierarchies and preservation, race and manipulation, science and technocracy,
parenthood and childhood, the fallacy of memory and the poignancy of loss, the
future and our responsibility towards it. The questions come viewing after
viewing, the answers must be looked for elsewhere. The fact that a film can
provoke thoughts on life and time, while pushing me to dig further to understand
the topics it is covering, makes it instantly invaluable.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;A.I.&lt;/em&gt; has changed over the years. At first it appeared to me as intelligent
entertainment, a smart blockbuster from a popular cinema mastermind often
misunderstood. Then it started raising philosophical issues, pointing its
fingers at the viewers and the world around them, while long due appreciation
for the craftsmanship eventually begun. Finally, it placed itself as a unique
piece of science fiction, unparalleled ever since and standing firm as one of
Spielberg&amp;rsquo;s most accomplished works—if not &lt;em&gt;the&lt;/em&gt; most accomplished one.&lt;/p&gt;
&lt;p&gt;I already explored &lt;a href=&#34;https://manueluberti.eu/posts/2018-11-15-lucas/&#34;&gt;the unpredictability of judgement&lt;/a&gt;, but there is more than a shift in opinions here. &lt;em&gt;A.I.&lt;/em&gt;
poses itself as a demanding work of art. It can never be completely grasped,
because we are never an absolute. We face art at different points in time, just
as art reflects the times when it comes to life. But it&amp;rsquo;s only when art grows
old and overcomes the days immediately following its creation and reception that
we are confronted with something more intimate than an expression of beauty. Art
brings us to self-discovery and understanding, positioning itself as the
necessary means to make sense of what is to come.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;It outclasses Jonathan Rosenbaum&amp;rsquo;s famous &lt;em&gt;The Best of Both Worlds&lt;/em&gt; too.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;I archived a copy of it. Feel free to contact me if you want to read it.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Getting ready for Heart of Clojure</title>
      <link>https://manueluberti.eu/posts/2019-07-03-heart-of-clojure/</link>
      <pubDate>Wed, 03 Jul 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-07-03-heart-of-clojure/</guid>
      <description>&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/hoc-logo.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Quick announcement.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m going to be in Leuven from 1 to 3 August, ready to enjoy Heart of
Clojure.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been following the development of the conference since the first
announcements, and the awesome team behind it has been keeping me really excited
along the way. The incredible variety of topics in the program is already enough
to skyrocket my expectations.&lt;/p&gt;
&lt;p&gt;As I did with Dutch Clojure Days &lt;a href=&#34;https://manueluberti.eu/posts/2018-04-23-dcd-round-up/&#34;&gt;last year&lt;/a&gt;, I&amp;rsquo;ll take notes diligently and report my experience here as soon as I get
back.&lt;/p&gt;
&lt;p&gt;If you fancy wise Clojure chats or wild Emacs ramblings, get in touch. There is
a dedicated &lt;code&gt;#heartofclojure&lt;/code&gt; channel on Clojurians which I&amp;rsquo;ve already joined,
or you can always rely on good old emails.&lt;/p&gt;
&lt;p&gt;See you there, Clojurists!&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Bury shell buffers</title>
      <link>https://manueluberti.eu/posts/2019-07-01-bury/</link>
      <pubDate>Mon, 01 Jul 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-07-01-bury/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2019-06-21-windows/&#34;&gt;Last time&lt;/a&gt; I refactored my windows restoring
configuration in order to pass the prefix argument around. This is a nice
solution to leverage my wrappers for commands like &lt;code&gt;shell&lt;/code&gt;, but I can push it a
little further.&lt;/p&gt;
&lt;p&gt;I have already discussed &lt;a href=&#34;https://manueluberti.eu/posts/2018-02-24-restore-windows/&#34;&gt;a couple of functions&lt;/a&gt; to restore my windows configuration when
I exit a fullframed buffer.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-restore-window-configuration (config)
  &amp;quot;Kill current buffer and restore window configuration in CONFIG.&amp;quot;
  (interactive)
  (kill-this-buffer)
  (set-window-configuration config))

(defun mu-pop-window-configuration ()
  &amp;quot;Restore previous window configuration and clear current window.&amp;quot;
  (interactive)
  (let ((config (pop mu-saved-window-configuration)))
    (if config
        (mu-restore-window-configuration config)
      (if (&amp;gt; (length (window-list)) 1)
          (delete-window)
        (bury-buffer)))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;However, with these functions the buffer I am leaving gets killed. This is fine
when moving away from, say, Ibuffer or Paradox, but it&amp;rsquo;s less than optimal for
shell buffers which may be running a long-run process.&lt;/p&gt;
&lt;p&gt;Once again, the prefix argument can help:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu--restore-window-configuration (config &amp;amp;optional bury-buffer)
  &amp;quot;Kill current buffer and restore the window configuration in CONFIG.
With BURY-BUFFER bury the buffer instead of killing it.&amp;quot;
  (if bury-buffer
      (bury-buffer)
    (kill-this-buffer))
  (set-window-configuration config))

(defun mu-pop-window-configuration (&amp;amp;optional bury-buffer)
  &amp;quot;Restore the previous window configuration and clear current window.
With BURY-BUFFER bury the buffer instead of killing it.&amp;quot;
  (interactive &amp;quot;P&amp;quot;)
  (let ((config (pop mu--saved-window-configuration)))
    (if config
        (mu--restore-window-configuration config bury-buffer)
      (if (&amp;gt; (length (window-list)) 1)
          (delete-window)
        (bury-buffer)))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now that the functions can make use of the prefix argument, I just need to call
them properly from a shell buffer:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-shell-bury ()
  &amp;quot;Bury the shell window.&amp;quot;
  (interactive)
  (let ((current-prefix-arg 4))
    (call-interactively #&#39;mu-pop-window-configuration)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I&amp;rsquo;ve bound this to &lt;code&gt;C-c C-q&lt;/code&gt;, so I can still kill a shell buffer
using &lt;code&gt;C-x k&lt;/code&gt; (&lt;code&gt;kill-this-buffer&lt;/code&gt; in my configuration) if needed.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>What Is Democracy?</title>
      <link>https://manueluberti.eu/posts/2019-06-28-democracy/</link>
      <pubDate>Fri, 28 Jun 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-06-28-democracy/</guid>
      <description>&lt;p&gt;It would take you probably about five minutes to figure out how poor my
knowledge of politics and philosophy is. In terms of politics, I know what is
happening in my country and in the rest of the world thanks to RSS feeds that
track a little selection of online newspapers among other things, but that&amp;rsquo;s it.
And when it comes to philosophy, I only have a couple of books from Friedrich
Nietzsche and Peter Singer to display.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2019-06-22-democracy.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;What Is Democracy? (Astra Taylor, 2018)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Nevertheless, Astra Taylor reaches me. Through the pages of her wonderful last
&lt;a href=&#34;(https://www.whatisdemocracy.info/)&#34;&gt;book&lt;/a&gt;, &lt;em&gt;Democracy May Not Exist, But We&amp;rsquo;ll
Miss It When It&amp;rsquo;s Gone&lt;/em&gt;, she reveals the history of democracy and whatever has
happened to it through ages of enormous changes. She makes every topic
accessible, every argument clear, and every ramification of politics and
philosophy a lucid fact even an untrained mind like mine can comprehend. I am
not sure she intended the book to be read before or after the accompanying film
&lt;em&gt;What Is Democracy?&lt;/em&gt;,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; but together they form a compelling and vital
reflection on today&amp;rsquo;s world.&lt;/p&gt;
&lt;p&gt;While the book covers a wide range of issues and matters, &lt;em&gt;What Is Democracy?&lt;/em&gt;
focuses on the United States and Greece, using their current situations to
reason about the state of democracy today. The rise of Donald Trump and the fall
of Alexis Tsipras are not explained matter-of-factly. On the one hand, we are
shown the poor understanding of society within the US middle class which paved
the way for Trump. On the other, we see Tsipras promising a new era for Greece
before surrendering to Europe demands. While condemnation could come easy,
Taylor prefers to question causes and consequences with the help of scholars and
activists such as Wendy Brown, Angela Davis, Efimia Karakantza, and Cornel West
to name a few.&lt;/p&gt;
&lt;p&gt;Moreover, she balances highbrow ruminations with voices from the streets. Hence
we get to understand the annihilating prison environment of the US and the
inhumane treatment of Syrian refugees by first-hand witnesses. These are the
victims of everyday democracy, and their experiences are further proofs of the
state of the world we live in. Obviously they are a few among many, but Taylor
is singling out the prison system and immigration, rightly pointing her finger
to some of the most complex and misunderstood aberrations of recent history.&lt;/p&gt;
&lt;p&gt;Quotes from Plato&amp;rsquo;s &lt;em&gt;Republic&lt;/em&gt; introduce the investigations as much as
questioning them, and as Taylor guides us through the origins of democracy in
ancient Greece, we are left marvelling at the vision that the Greeks carved out
of their imaginations. The director seems to offer a probably obvious, but ever
so relevant, answer to the crisis of democracy: we need to rediscover what was
done in the past to grasp the present and work for a better future. The various
inquiries of &lt;em&gt;What Is Democracy?&lt;/em&gt; are also interspersed by discussions&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;
between the director and scholar Silvia Federici on the frescoes &lt;em&gt;The Allegory
of Good and Bad Government&lt;/em&gt;, which makes for an impressive parallel with much of
what is happening around us nowadays.&lt;/p&gt;
&lt;p&gt;Astra Taylor quotes Gramsci&amp;rsquo;s famous words on optimism and pessimism&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; in her
book, and the film feels much like an exploration of pessimism and optimism. We
have every reason to be pessimists, because unless we are purposely blind we
cannot negate the inequalities within states and among peoples. And yet we can
and should be optimists as well, because something can be done and we have the
means to right the wrongs. Taylor&amp;rsquo;s images and words place a mirror in front of
our conscience. What we see is what we get.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Depending on where you live, the film is available for streaming
&lt;a href=&#34;https://www.nfb.ca/film/what-is-democracy-2018/&#34;&gt;here&lt;/a&gt;. Since I couldn&amp;rsquo;t
stream it, I bought the digital copy from the same website.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Updated and expanded in &lt;a href=&#34;https://believermag.com/silvia-federici-in-conversation-with-astra-taylor/&#34;&gt;Silvia Federici in Conversation with Astra
Taylor&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;“I&amp;rsquo;m a pessimist because of intelligence, but an optimist because of will.” ― Gramsci&amp;rsquo;s Prison Letters.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Passing the prefix argument around</title>
      <link>https://manueluberti.eu/posts/2019-06-21-windows/</link>
      <pubDate>Fri, 21 Jun 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-06-21-windows/</guid>
      <description>&lt;p&gt;Last year I blogged about a solution to a common problem I had with &lt;a href=&#34;https://manueluberti.eu/posts/2018-03-03-winner-undo/&#34;&gt;windows in
Emacs&lt;/a&gt;. I wanted to be able to exit
particular fullframed buffers and restore the windows as they were before
opening those buffers.&lt;/p&gt;
&lt;p&gt;The core of my solution is the following function:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-save-wins-then-call (func &amp;amp;optional args)
  &amp;quot;Save current window configuration, then call FUNC optionally with ARGS.&amp;quot;
  (interactive)
  (push (current-window-configuration) mu-saved-window-configuration)
  (cond
   ;; We have arguments for the function
   ((bound-and-true-p args) (funcall func args))
   ;; The function requires exactly one argument, and we want it to be nil
   ((equal args &amp;quot;nil&amp;quot;) (funcall func nil))
   ;; The function does not expect arguments
   (t (funcall func))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This function works fine for most of my cases, but it doesn&amp;rsquo;t take the &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Prefix-Command-Arguments.html&#34;&gt;prefix
argument&lt;/a&gt;
into account. Since I rely heavily on &lt;code&gt;shell-mode&lt;/code&gt;, at times I need to open more
than one shell buffer, and the documentation of the &lt;code&gt;shell&lt;/code&gt; command specifies
that the prefix argument can be used to open new buffers on demand:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Run an inferior shell, with I/O through BUFFER (which defaults to `&lt;em&gt;shell&lt;/em&gt;&#39;).
Interactively, a prefix arg means to prompt for BUFFER.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hence, I need to mimic &lt;code&gt;C-u M-x&lt;/code&gt; &lt;code&gt;shell&lt;/code&gt; in
&lt;code&gt;mu-save-wins-then-call&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-save-wins-then-call (func &amp;amp;optional args)
  &amp;quot;Save current window configuration, then call FUNC optionally with ARGS.&amp;quot;
  (interactive &amp;quot;P&amp;quot;)
  (push (current-window-configuration) mu--saved-window-configuration)
  (cond
   ;; We have the prefix argument
   ((= (prefix-numeric-value args) 4)
    (let ((current-prefix-arg 4))
      (call-interactively func)))
   ;; We have arguments for the function
   ((or (bound-and-true-p args) 
        (stringp args)) 
    (funcall func args))
   ;; The function does not expect arguments
   (t (funcall func))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now I can open as many fullframed shell buffers as I want with &lt;code&gt;C-u F1&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-shell-open (&amp;amp;optional new-buffer)
  &amp;quot;Save window configuration and call `shell&#39;.
With NEW-BUFFER open a new buffer.&amp;quot;
  (interactive &amp;quot;P&amp;quot;)
  (mu-save-wins-then-call #&#39;shell new-buffer))

(with-eval-after-load &#39;shell
  (fullframe shell mu-pop-window-configuration))

(bind-key &amp;quot;&amp;lt;f1&amp;gt;&amp;quot; mu-shell-open)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;mu-pop-window-configuration&lt;/code&gt; is detailed over at &lt;a href=&#34;https://manueluberti.eu/posts/2018-02-24-restore-windows/&#34;&gt;Restoring the window
configuration in Emacs&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Breaking the balance</title>
      <link>https://manueluberti.eu/posts/2019-06-16-balance/</link>
      <pubDate>Sun, 16 Jun 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-06-16-balance/</guid>
      <description>&lt;p&gt;M. Night Shyamalan is a peculiar subject in contemporary cinema. He helms his
films most of the times, controlling writing, direction, and production, while
often relying on the help of recurring collaborators. He devised his own
recognizable style, and he has been showing interests in different genres with
developing fascination for the psychological and the spiritual.&lt;/p&gt;
&lt;p&gt;Interestingly, Shyamalan&amp;rsquo;s career is one of highs and lows. The box office has
usually proved the director right on his path, but popular criticism seems to
think otherwise.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; Most of his efforts, especially the ones where he tries to
approach new material (e.g., &lt;em&gt;The Happening&lt;/em&gt; and &lt;em&gt;After Earth&lt;/em&gt;), have been
panned by critics.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2019-06-16-glass.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Glass (M. Night Shyamalan, 2019)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Glass&lt;/em&gt; is the third chapter of Shyamalan&amp;rsquo;s &lt;em&gt;Unbreakable&lt;/em&gt; trilogy, and arguably
the most complex in terms of narrative, style, and themes explored. It&amp;rsquo;s here
that Shyamalan unravels the ties between David Dunn, Kevin Wendell Crumb, and
Elijah Price, but &lt;em&gt;Glass&lt;/em&gt; is not content in offering a quick solution to the
enigma that started twenty years ago. On the contrary, Shyamalan uses the
platform of his own creation to subvert the superheroes cinematic universe. It
does so not by pointing out the failures of other films, but by showing the way
to an alternative kind of writing and directing.&lt;/p&gt;
&lt;p&gt;One has to look no further than the beginning to appreciate Shyamalan&amp;rsquo;s effort
to find something new. The Overseer (Dunn) and The Beast (Crumb), the hero of
&lt;em&gt;Unbreakable&lt;/em&gt; and the villain of &lt;em&gt;Split&lt;/em&gt; respectively, meet and fight each other
without the time to process the fact that Shyamalan is deliberately avoiding the
setup for an epic, final battle between good and evil. And if this isn&amp;rsquo;t enough,
he ends the fight abruptly and shuts his heroes in a mental institution for the
rest of &lt;em&gt;Glass&lt;/em&gt;, opting for a slow investigation of their psyche instead of
abandoning them to a relentless action feast.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Glass&lt;/em&gt; is roughly divided into three acts. The first ends with the
aforementioned capturing of Dunn and Crumb, the second ends with Mr. Glass
ingeniously setting himself, Crumb, and Dunn free, and the third is the final
confrontation.&lt;/p&gt;
&lt;p&gt;The first act seems to be only a prologue, and apparently it doesn&amp;rsquo;t offer the
psychological nuances of the second one and the twists of the third, but
it&amp;rsquo;s not so simple. Joseph Dunn, David&amp;rsquo;s son, has become a grown-up and yet he
is still profoundly attached to his father, one co-dependent on the other. The
death of Audrey Dunn removed the figure of the mother and the wife from the
family, and despite being only hinted at the consequences on the relationship
between David and Joseph cannot be underestimated. The bond is stronger because
they only have each other to rely upon, but it also lacks the feminine
rationality that could help ground imagination and dreams of virile justice.
Then we have Casey Cooke, the only survivor of the collective sacrifice Kevin
Crumb and his personalities were devising for The Beast in &lt;em&gt;Split&lt;/em&gt;. The trauma
of abuse in her private life reflects the history of abuses that has altered
Crumb&amp;rsquo;s mind, and the powerful linkage between the two that ended up saving
Cooke before turns out to be unbreakable in spite of the horror she has
witnessed. As in the case of Audrey&amp;rsquo;s death, Shyamalan only hints at Cooke&amp;rsquo;s
attachment to Crumb, but again it will prove pivotal.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Glass&lt;/em&gt; engages the viewer in a long, overtly critical, deconstruction of myth and
belief. Albeit a subterfuge for a bigger plan, the second act is a constant push
to hold one&amp;rsquo;s true nature back. Psychiatry is used as a means to suppress inner
abilities, because the possibility of something so out of the ordinary is
inconceivable much like an extraordinary truth. By subjugating her patients Dr.
Ellie Staple is exercising control over unnatural forces, hence playing the role
of God that science frequently allows humans to enact. Shyamalan turns this
critical observation against us, making both the doctor and the protagonists
look at the camera in medium and medium close-up shots. The point of view keeps
shifting between observers and observed, analyst and patient, hunter and prey,
complicating relations and sympathies by juxtaposing good and evil without clear
distinctions. This circularity is mirrored in the acts of coercion we see:
superheroes are forced to be humans, humans are pressured to be superheroes,
victims are manipulated to confuse other victims. The freedom of choice is mined
by reasonable doubt until the urge to control reveals itself as the supreme
power in the third act.&lt;/p&gt;
&lt;p&gt;The third act is where all the pieces come together. It&amp;rsquo;s a showdown, but as
deceitful as anything the trilogy has showed us so far. We understand what Mr.
Glass had in mind, but more importantly we realise that heroes and villains are
one and the same. Shyamalan reflects on the privacy deprivation of our
technology-aided age and on the abilities in terms of communication it grants.
Eventually, technology proves to be both fatal and a chance of hope, a man-made
super power capable of multiplying the eyes of the oppressor and the mouths of
the rebels at the same time. Technology is the tool that makes connectivity
possible. Through connections we can overcome our inner barriers, find each
other, and consequently ourselves.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;See the critical reception as reported &lt;a href=&#34;https://en.wikipedia.org/wiki/M._Night_Shyamalan#Critical_reception&#34;&gt;on
Wikipedia&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Better colours in Emacs shell</title>
      <link>https://manueluberti.eu/posts/2019-06-14-xterm/</link>
      <pubDate>Fri, 14 Jun 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-06-14-xterm/</guid>
      <description>&lt;p&gt;I have ve been using &lt;code&gt;shell-mode&lt;/code&gt; regularly for almost &lt;a href=&#34;https://manueluberti.eu/posts/2017-10-07-m-x-shell/&#34;&gt;two years&lt;/a&gt; now. It has helped me a lot in staying focused on
what I&amp;rsquo;ve been doing in Emacs instead of switching back and forth between the
buffer and GNOME Terminal.&lt;/p&gt;
&lt;p&gt;A recent discovery made &lt;code&gt;shell-mode&lt;/code&gt; even snappier and more pleasant to use:
&lt;a href=&#34;https://github.com/atomontage/xterm-color&#34;&gt;xterm-color&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;By simply following the guidelines in the README you get a working setup for
&lt;code&gt;shell-mode&lt;/code&gt;. Note that there are also examples for EShell and compilation
buffers, so it&amp;rsquo;s up to you to decide where you want to use &lt;code&gt;xterm-color&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Honestly I complied. I only changed the default colours to match those of my
&lt;a href=&#34;https://github.com/purcell/color-theme-sanityinc-tomorrow&#34;&gt;favourite theme&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defvar mu--tomorrow-night-colours [&amp;quot;#1d1f21&amp;quot; &amp;quot;#cc6666&amp;quot;
                                    &amp;quot;#b5bd68&amp;quot; &amp;quot;#f0c674&amp;quot;
                                    &amp;quot;#81a2be&amp;quot; &amp;quot;#b294bb&amp;quot;
                                    &amp;quot;#8abeb7&amp;quot; &amp;quot;#c5c8c6&amp;quot;])
(setq xterm-color-names mu--tomorrow-night-colours
      xterm-color-names-bright mu--tomorrow-night-colours)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;By the way, the &lt;code&gt;ls&lt;/code&gt; &lt;a href=&#34;https://manueluberti.eu/posts/2017-10-07-m-x-shell/&#34;&gt;alias&lt;/a&gt; I was using is
not needed any more.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Reducing a book and enlarging TV</title>
      <link>https://manueluberti.eu/posts/2019-05-28-hooper/</link>
      <pubDate>Tue, 28 May 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-05-28-hooper/</guid>
      <description>&lt;p&gt;No film has ever had a more traumatizing impact on me than &lt;em&gt;The Texas Chain Saw
Massacre&lt;/em&gt;. I remember fondly the day I found a lousy Italian DVD, because it
felt like a smart and lucky move. Two cents for the forbidden fruit. The 14&amp;quot; CRT
television in my bedroom could not contain the power coming from that rotten and
perverse images.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s why I&amp;rsquo;ve stayed away from Tobe Hooper for such a long time and have
hardly registered his death in 2017. Then I stumbled upon occasional praises for
&lt;em&gt;The Texas Chain Saw Massacre&lt;/em&gt; on Letterboxd, which took me back to that
infamous day. A sign, I thought. I bought the fortieth anniversary restoration
Blu-ray and let Hooper take care of my nightmares once again. The film&amp;rsquo;s power
is still intact, but this time I was able to appreciate it for the incredible
work that it is. Furthermore, it urged me to explore Hooper&amp;rsquo;s career.&lt;/p&gt;
&lt;p&gt;Of his many efforts, I want to single out the mini-series &lt;em&gt;Salem&amp;rsquo;s Lot&lt;/em&gt; as the
centre of this writing. It ranks among the best Hooper had to offer and it
develops themes and stylistic choices that either would come up later in his
films or represent variations on the director&amp;rsquo;s regular obsessions.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2019-05-28-salems_lot.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Salem&amp;#39;s Lot (Tobe Hooper, 1979)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Salem&amp;rsquo;s Lot&lt;/em&gt; is Hooper&amp;rsquo;s first attempt at finding his place in a
made-for-television production, and it remains the best example of his struggle
to find a good compromise between his vision and the limits of the medium. The
script was handed to him, adapted from Stephen King&amp;rsquo;s book by Paul Monash, who
had already worked on De Palma&amp;rsquo;s &lt;em&gt;Carrie&lt;/em&gt;, and heavily modified by producer
Richard Kobritz, who wanted Hooper behind the camera after a screening of &lt;em&gt;The
Texas Chain Saw Massacre&lt;/em&gt;. Kobritz also had his hands on the casting, the
special effects, and the score, building boundaries for Hooper along the way to
the final cut.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; However, it&amp;rsquo;s precisely in this enclosed environment that
watching Hooper operate becomes fascinating, especially considering how inferior
his subsequent encounters with television have been and the troublesome relation
with the producers on &lt;em&gt;Eaten Alive&lt;/em&gt; two years before. He had only his
craftsmanship and his understanding of King&amp;rsquo;s novel to work with.&lt;/p&gt;
&lt;p&gt;The book takes its time to get the reader acquainted with &amp;lsquo;Salem&amp;rsquo;s Lot and its
inhabitants. There is a constant friction between who everyone appears to be and
what really happens in their life. This layer of secrecy is carefully attacked
by the most beloved hobby practised anywhere in the world: gossip. Gossip spares
nobody, and King devotes pages to let us know the poor privacy anyone can get in
his imaginary town. &lt;em&gt;Salem&amp;rsquo;s Lot&lt;/em&gt;&amp;rsquo;s script overlooks this subject, but Hooper
does not. In place of the omniscient narrator and the chats over the telephone
of the novel, Hooper uses his camera as a curious eye, an eye which misses
nothing and oversees everybody and everything. It&amp;rsquo;s as if we are entering
uninvited the townspeople&amp;rsquo;s lives, witnessing adultery, alcoholism, school play
rehearsals, dinners with guests, and new-born romances.&lt;/p&gt;
&lt;p&gt;Monash and Kobritz conflate different characters into few individuals, reducing
complexities to accommodate the 3-hour duration. This functions on a narrative
level only insofar as we do not expect characters such as Mike Ryerson and Ned
Tibbets&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; to be something other than victims. They get little screen time, and
there is no room for Hooper to develop them. The Norton family loses much of its
appeal too, leaving us with bits of Ann Norton&amp;rsquo;s conservatism. The script rushes
to introduce the vampires, and it&amp;rsquo;s up to Hooper to ensure the mystery
surrounding Richard Straker and Kurt Barlow is a primary concern for everyone in
&amp;lsquo;Salem&amp;rsquo;s Lot. Hooper resorts to an eerie awkwardness that levitates between two
characters as they talk of seemingly simple matters. He used this device before,
and here he obviously could not push it to the extremes of his two previous
works, but it&amp;rsquo;s enough to make some conversations memorably weird (e.g., the
exchanges between Richard Straker and Constable Parkins Gillespie).&lt;/p&gt;
&lt;p&gt;The most striking difference between the mini-series and the book can be seen in
the complete transformation of the main villains. Except for the violent killing
of Bill Norton, the powerfully menacing Richard Straker becomes a witty old man
rarely scaring as he should be. Hooper plays with the black of his clothes and
the shadows of the night to remind us of who Straker really is. Straker works in
spite of the script, and it&amp;rsquo;s only because of Hooper. Kurt Barlow, on the other
hand, undergoes a great turn. He becomes a silent, overreaching entity, the
incarnation of evil as the greater unknown.&lt;/p&gt;
&lt;p&gt;Even if it takes more than a viewing to appreciate the subtle, personal touch of
Hooper in &lt;em&gt;Salem&amp;rsquo;s Lot&lt;/em&gt;, the design and pretty much all the scenes in the
Marsten House uncover him leaving no traces of doubt. From the floors and the
skeletons of dead animals to the camera movements when Susan Norton and Mark
Petrie enter the building, the Marsten House is lifted from King&amp;rsquo;s pages and
reinvented through the imagination of a director who would always be interested
in ambiguous spaces.&lt;/p&gt;
&lt;p&gt;One can only wonder what &lt;em&gt;Salem&amp;rsquo;s Lot&lt;/em&gt; could be were Hooper given the chance to
run amok. Nonetheless, it remains a fine example of a work imposed on a director
whose resourcefulness could barely be contained by a non-strictly art-related
mind.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Richard Kobritz is the first name to appear as the ending credits start.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Floyd Tibbets and Matt Burke are strangely renamed for the mini-series.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>It never occurred to me</title>
      <link>https://manueluberti.eu/posts/2019-05-14-occur/</link>
      <pubDate>Tue, 14 May 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-05-14-occur/</guid>
      <description>&lt;p&gt;Years of Emacs, and I am still learning something new that improves my daily
workflow.&lt;/p&gt;
&lt;p&gt;Recently I&amp;rsquo;ve had to deal with CSV files, generated by a little Clojure program
using data from different databases. The CSV files are then imported in another
database through a new shiny application bought by our customer. Data
integration, exactly.&lt;/p&gt;
&lt;p&gt;While the data extraction is just a matter of SQL queries, the CSV files must
match the stringent requirements of the new application. We ended up with messy
CSV files, close but not &lt;em&gt;that&lt;/em&gt; close to the expected results. Needless to say,
sometimes we have to edit the files manually, and this is where Emacs once again
shines.&lt;/p&gt;
&lt;p&gt;The problem is simple: how can I list only the matches I am looking for in a CSV
file, without printing the whole lines the matches belong to? I need a clean
list of occurrences, nothing more, because debugging these files is already
painful as it is.&lt;/p&gt;
&lt;p&gt;I am so used to &lt;a href=&#34;https://github.com/abo-abo/swiper&#34;&gt;swiper-isearch&lt;/a&gt; and
&lt;a href=&#34;https://github.com/abo-abo/swiper&#34;&gt;counsel-rg&lt;/a&gt; that I tend to forget Emacs
built-in &lt;a href=&#34;https://doc.endlessparentheses.com/Fun/occur.html&#34;&gt;occur&lt;/a&gt;. As per the
documentation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When NLINES is a string or when the function is called interactively with
prefix argument without a number (`C-u&#39; alone as prefix) the matching
strings are collected into the *Occur* buffer by using NLINES as a
replacement regexp.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hence, I just need to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;press &lt;code&gt;C-u M-s o&lt;/code&gt; (or the equivalent but longish of &lt;code&gt;C-u M-x&lt;/code&gt; &lt;code&gt;occur&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;type the string I am looking for&lt;/li&gt;
&lt;li&gt;hit &lt;code&gt;RET&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It doesn&amp;rsquo;t get easier than this.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Visualising music</title>
      <link>https://manueluberti.eu/posts/2019-04-25-homecoming/</link>
      <pubDate>Thu, 25 Apr 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-04-25-homecoming/</guid>
      <description>&lt;p&gt;A work of art reveals an artist ego just as much as it uncovers her persona.
Since &lt;em&gt;4&lt;/em&gt; in 2011, there is more of Beyoncé&amp;rsquo;s ego and persona in every song she
creates. Free from the ties with the father-manager Mathew Knowles, she has
looked inward for intimacy and outward for influences. She has found a mature
voice, but she has also brought out traits of her identity that stardom can
easily garble.&lt;/p&gt;
&lt;p&gt;With &lt;em&gt;Beyoncé&lt;/em&gt; two years later, she continued down the intimacy path exploring
darker corners and another set of musical references. The secrecy surrounding
the recording sessions was a self-imposed compartmentalization to explore sides
of herself her public persona had obscured by then. She was not the first artist
seeking privacy, but considering the degree of exposure fame imposes on a star
this big, it felt like the natural approach to developing creative freedom.
&lt;em&gt;Beyoncé&lt;/em&gt; is also the album where she began building and expanding on the themes
of her music by way of visuals. As compelling as they were, they still feel like
try-outs compared to 2016&amp;rsquo;s &lt;em&gt;Lemonade&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2019-04-25-homecoming.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Musically, &lt;em&gt;Lemonade&lt;/em&gt; is Beyoncé at her most eclectic to date. The span of
styles is greater than ever before, but everything fits together so nicely you
would think of a concept album even if nobody told you that it was thought as
one. As if not happy with an already outstanding effort—a whole record instead
of a collection of Spotify-ready tunes, are you serious!?— Beyoncé pushes the
music video experience to the next step of its evolution.&lt;/p&gt;
&lt;p&gt;A music video is a strange object. In my MTV-fuelled teenage days, I remember
skimming through music video channels numbly, partially aware of the music,
partially aware of the visuals. It would be hard now to remember the ones that
really left a mark on me, and little I understood back then of the marketing
effect of these products and the difference between self-promotion and the art
in it.&lt;/p&gt;
&lt;p&gt;The visuals for &lt;em&gt;Lemonade&lt;/em&gt; are more than beautifully produced video-companions
of singled-out tracks. It&amp;rsquo;s a complete film, a stand-alone experience in which
Beyoncé uses the poetry and prose of Warsan Shire to articulate eleven chapters
of her own history. She pays homage to folklore, traditions, and black power,
while leveraging blackness and femininity. At the same time, she is displaying
respect for what came before her and what is out there right now, transforming
the cracks in her marriage into starting points for several possible stories,
the whole greater than the single parts. No other popular music artist has ever
reached this far in terms of understanding the film medium and working with it
instead of letting it work for you. It&amp;rsquo;s both the end of the music video era as
we knew it and the last nail on the rock&amp;rsquo;n&amp;rsquo;roll coffin.&lt;/p&gt;
&lt;p&gt;However, Beyoncé is not done with writing history. Enthusiasm about her
revolutionary performance at last year&amp;rsquo;s Coachella was still flying high on the
Web when &lt;em&gt;Homecoming&lt;/em&gt; landed on Netflix on April 17. The next day lists of the
greatest concert films of all time were being updated to include it, and rightly
so.&lt;/p&gt;
&lt;p&gt;A concert film is a strange object. In my music-charged teenage days, I used to
buy live concert DVDs. Some of them are still here, and I&amp;rsquo;d pick Björk&amp;rsquo;s &lt;em&gt;Live
at Royal Opera House&lt;/em&gt; if you asked me to show you the one I watched the most.
Then came &lt;em&gt;Stop Making Sense&lt;/em&gt; and &lt;em&gt;Sign o&amp;rsquo; the Times&lt;/em&gt;, and I eventually came to
understand the difference between a recorded performance and the art of
producing it.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Homecoming&lt;/em&gt; is a concert film like nothing before it. It lacks the visceral
precision of &lt;em&gt;Stop Making Sense&lt;/em&gt; and the controlled grandeur of &lt;em&gt;Sign o&amp;rsquo; the
Times&lt;/em&gt;, but this doesn&amp;rsquo;t mean Beyoncé is carefree and amateurish. &lt;em&gt;Homecoming&lt;/em&gt;,
which she wrote, directed, and executive produced, is all about control, albeit
not the technical control of Jonathan Demme or the creative control of Prince.
Beyoncé is controlling the narrative, and she is articulating her story once
again by putting a mirror in front of herself. The vanity of a pop star bathing
in the joy of her fans, the giants that shaped her body of work, the personal
struggles and the achievements. She doesn&amp;rsquo;t shy away from anything, but she
obviously unveils only what she considers valuable to the understanding of her
project. &lt;em&gt;Homecoming&lt;/em&gt; is about birth, but it&amp;rsquo;s about rebirth too. Much in the
same way she explored a black woman&amp;rsquo;s identity in &lt;em&gt;Lemonade&lt;/em&gt;, here she is
questioning the opportunities and the outcomes laid out in front of the same
black woman. Where is she from? How did she arrive here? More importantly, where
is she now?&lt;/p&gt;
&lt;p&gt;This is where &lt;em&gt;Homecoming&lt;/em&gt; offers itself as the missing piece of the concert
films realm. Beyoncé doesn&amp;rsquo;t need to reinvent marketing solutions to sell more
albums, nor has she to prove to anyone the strength of her live performances.
She could actually just sit and collect the money from the hits created in more
than twenty years. Instead, she&amp;rsquo;s still asking the same question that opened
&lt;em&gt;Crazy in Love&lt;/em&gt;, the beginning of her solo career: “You ready?”.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Digital minimalism</title>
      <link>https://manueluberti.eu/posts/2019-04-10-digital-minimalism/</link>
      <pubDate>Wed, 10 Apr 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-04-10-digital-minimalism/</guid>
      <description>&lt;p&gt;I reached a point in my life where it&amp;rsquo;s necessary to rethink my digital habits.
It happened before, of course, but in some way or another I&amp;rsquo;ve never done
something useful to actively tackle my tech-addictions.&lt;/p&gt;
&lt;p&gt;In my defence, a smartphone entered my life only by way of a birthday present
in 2016. I had resisted until then for two reasons: I spend most of the day in
front of a screen already, and sociability is not my strongest skill. Three
years later, I am still far from being a smartphone enthusiast. Besides
occasional phone calls, I seldom check it during the day. I keep messaging at a
bare minimum, and there are only a couple of applications nudging me with
notifications.&lt;/p&gt;
&lt;p&gt;Therefore, the smartphone is not to blame for my compulsively click-driven life.
The big giants like Facebook and Twitter don&amp;rsquo;t matter either, because I stopped
using them a long while ago. The problem is everything else. Aggregating RSS
feeds seemed like &lt;a href=&#34;https://manueluberti.eu/posts/2017-08-01-elfeed/&#34;&gt;the right move&lt;/a&gt; at the
beginning, but checking them everyday has turned out to be a time-consuming
experience much like browsing news websites to keep up to date. Reddit lures me
in constantly, even though the small percentage of valuable content just reminds
me of Twitter. GitHub usually offers more click-worthy updates, but the
repositories I deem interesting are far less than the uninteresting ones.
Letterboxd, a staple of my cinema obsession, may be the worse in this regard;
its &lt;em&gt;Activity&lt;/em&gt; tab is the drug I can&amp;rsquo;t resist, and yet I usually find no more
than a couple of beautiful reviews a week.&lt;/p&gt;
&lt;p&gt;All these considerations are the outcome of reading &lt;em&gt;Digital Minimalism&lt;/em&gt; by Cal
Newport. Newport&amp;rsquo;s writing style is at times too pedantic and close to
spoon-feeding, but his book highlights potentially effective solutions to escape
the miring web of my networking routines. The decluttering process Newport
suggests is a difficult task. Depending on the depth of your online addiction,
it requires several levels of confidence and willpower, because you know that
fighting your own vices is a painful endeavour.&lt;/p&gt;
&lt;p&gt;I experienced something similar when I left Twitter behind. I had always valued
Twitter more for the network of like-minded people than the chance to share how
I feel in a precise moment, and so Twitter had become my go-to reference for
film and technology updates. After I deleted my account, I remember asking
myself over and over again: am I missing something important? Will I be able to
keep up with everyday trends? These questions were always in the back of my
head, poking me every time I heard Twitter mentioned somewhere. It took a couple
of weeks, maybe three, to realise how much time and peace of mind I gained from
a life without Twitter. And I did find the answer to those questions eventually:
who cares?&lt;/p&gt;
&lt;p&gt;With this precious experience in mind, I treasured Newport&amp;rsquo;s tips and followed
these key steps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cut down my RSS feeds to twenty entries and check them only twice a week&lt;/li&gt;
&lt;li&gt;remove Reddit from my computer and from my phone&lt;/li&gt;
&lt;li&gt;remove GitHub from my phone and use it only for work and open source projects&lt;/li&gt;
&lt;li&gt;access Letterboxd for my writings and check the rest of the community once a
week&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The trick, as Newport points out, is not just understanding what you value most
and whether technology helps you get it or not, but occupying the spare time
with something else, possibly unrelated to technology. And so, in my case, it
means more time with my wife, longer walks with our dog, more writing, more
cooking, and more books. Rewarding leisure, and it&amp;rsquo;s just the beginning.&lt;/p&gt;
&lt;p&gt;Note that I am simplifying Newport&amp;rsquo;s pages for the sake of brevity, because
there is more to his idea of decluttering. Bluntly put, if you are reading this
on your phone start looking for &lt;em&gt;Digital Minimalism&lt;/em&gt; now.&lt;/p&gt;
&lt;p&gt;As daunting as it may look, minimizing our digital consumption is the best way
to really and deeply connect with the world around us.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>A soldier of cinema</title>
      <link>https://manueluberti.eu/posts/2019-04-01-korine/</link>
      <pubDate>Mon, 01 Apr 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-04-01-korine/</guid>
      <description>&lt;p&gt;I remember quite vividly how I ditched Harmony Korine&amp;rsquo;s &lt;em&gt;Spring Breakers&lt;/em&gt; at the
69th Venice International Film Festival. My job was writing a reportage on the
Asian films selection, but that&amp;rsquo;s a poor excuse for my behaviour, because
I could have easily organised my schedule to catch it. But I didn&amp;rsquo;t trust the
“enfant terrible” label thrown around whenever the name &lt;em&gt;Harmony Korine&lt;/em&gt; came
up, and I wasn&amp;rsquo;t particular interested in Disney starlets. The fuss was too much
for me, and instead of titillating my curiosity, it made me look away.&lt;/p&gt;
&lt;p&gt;Years passed, times a-changed. Last month, I found the Blu-ray of &lt;em&gt;Spring
Breakers&lt;/em&gt; at a cheap price, and I remembered how much I had been learning from
my cinephile mistakes in the last couple of years. I bought it, convinced that
I was now ready for whatever Harmony Korine had planned for me. I stood
corrected.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2019-04-01-spring_breakers.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Spring Breakers (Harmony Korine,
2012)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;There are two separate occasions where Harmony Korine defines himself as a
“soldier of cinema”. One is in the &lt;em&gt;Spring Breakers&lt;/em&gt; making-of,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; and the
other at the film &lt;a href=&#34;https://www.youtube.com/watch?v=bJQoi4lR3wc&#34;&gt;Q&amp;amp;A in London&lt;/a&gt;
on April 2013. It&amp;rsquo;s an interesting choice of words, because it takes the bravery
of a soldier to never give up one&amp;rsquo;s own idea of cinema. It also implies a
broader battle with an industry that favours conformism in place of
experimentation, a war with a machine that eats talents and spews standards.
Finally, it casts a bold light on &lt;em&gt;Spring Breakers&lt;/em&gt; and Korine&amp;rsquo;s career.&lt;/p&gt;
&lt;p&gt;Since his days as a scriptwriter for Larry Clark&amp;rsquo;s &lt;em&gt;Kids&lt;/em&gt;, Korine has been
particularly fascinated by characters unable to cope with the world around them.
Outcasts, misfits, marginalized teenagers. &lt;a href=&#34;https://letterboxd.com/gmosalad/list/harmony-korines-favorite-films-according/&#34;&gt;His favourite
films&lt;/a&gt;
are telling of his background and what he looks for in cinema: the cracks in the
society around him. However, truth doesn&amp;rsquo;t interest him. He favours a style
which relies heavily on improvisation and gut-feeling, and which indulges in
spur-of-the-moment events instead of linear narrative. He doesn&amp;rsquo;t shy away from
intimacy, but it&amp;rsquo;s not for voyeuristic pleasure. Intimacy is linked both with
tenderness and suffering, and he&amp;rsquo;s at his highest when he strikes the balance
between the two.&lt;/p&gt;
&lt;p&gt;This is a balance he had been looking for up until &lt;em&gt;Spring Breakers&lt;/em&gt;. He leaned
on the suffering side in &lt;em&gt;Gummo&lt;/em&gt; and &lt;em&gt;julien donkey-boy&lt;/em&gt;, and he exploited
tenderness maybe a bit too much on &lt;em&gt;Mister Lonely&lt;/em&gt;. The anarchy of &lt;em&gt;Trash
Humpers&lt;/em&gt; covers the suffering with mayhem, but the pain is still there albeit in
deviant form. It&amp;rsquo;s only with &lt;em&gt;Spring Breakers&lt;/em&gt; that the pieces he had been
collecting for twenty years&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; finally fit together.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;These pieces come from everywhere and relate to anything: exposed and
manipulated beauty reminds me of the bodily provocations of Paul
Verhoeven&amp;rsquo;s &lt;em&gt;Showgirls&lt;/em&gt;; Disney stars and specific Britney Spears references
bring back the pop-cynic time-machine of Joseph Kahn&amp;rsquo;s &lt;em&gt;Detention&lt;/em&gt;; drug abuse
comes from the social punches of Alan Clarke&amp;rsquo;s filmography; bigger-than-you
lives on the edge embrace the abstract hedonism of Francis Ford
Coppola&amp;rsquo;s &lt;em&gt;Rumble Fish&lt;/em&gt;; the relation between Alien and the girls summons the
dangerously vibrant affair of Bernardo Bertolucci&amp;rsquo;s &lt;em&gt;La Luna&lt;/em&gt;; and the much
desired escapade is just like the impossible dream of Robert Altman&amp;rsquo;s &lt;em&gt;Brewster
McCloud&lt;/em&gt;. With compassionate love, Korine clashes his influences altogether,
mashes them up, and finds the peculiarity of his voice.&lt;/p&gt;
&lt;p&gt;Nonetheless, Korine doesn&amp;rsquo;t stop at savvy nods and nerdy winks. Actually, he is
not interested in pushing quotations down the viewer&amp;rsquo;s throat, because, by his
own admission, he is &lt;a href=&#34;https://www.rogerebert.com/interviews/interview-with-harmony-korine&#34;&gt;not a video
brat&lt;/a&gt;. The
difference between Harmony Korine and Quentin Tarantino, or between Harmony
Korine and Kevin Smith, is that the cultural context plays both a relevant and
an irrelevant part. In 2012 everything from popular culture that inhabits
&lt;em&gt;Spring Breakers&lt;/em&gt; was fashionably around us. Korine picked the trend-setters of
the time and had fun with them. He did not, however, insert the film into a
precise time-capsule. For instance, &lt;em&gt;Clerks&lt;/em&gt; cannot be looked at without
thinking of the 90s. In this respect, Korine reaches out for the timelessness of
Michael Mann or Terrence Malick. He is in the present just as much as he is in
the future. Watch &lt;em&gt;Spring Breakers&lt;/em&gt; now for the first time and you may loose the
relevance of the celebrity discourse, but you sure won&amp;rsquo;t miss the degeneration
of disillusioned youth.&lt;/p&gt;
&lt;p&gt;Part of what makes Harmony Korine one of the most relevant American directors
today is his unwillingness to compromise. He seems determined to pursue his
fantasies without receding once, facing both praises and critiques with eyes
that are already thinking about the next step. Or maybe not. Maybe he is just
enjoying the ride and not really thinking about it at all.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Not the one on the Blu-ray, but the one on the DVD contained in the 2 disc
special edition.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;&lt;em&gt;Kids&lt;/em&gt; was released on 1995, but Korine wrote the script in 1993.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;I haven&amp;rsquo;t seen &lt;em&gt;The Beach Bum&lt;/em&gt; yet.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Switching buffers (Take 2)</title>
      <link>https://manueluberti.eu/posts/2019-03-16-switch-buffers/</link>
      <pubDate>Sat, 16 Mar 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-03-16-switch-buffers/</guid>
      <description>&lt;p&gt;Last month I wrote about the neat &lt;a href=&#34;https://manueluberti.eu/posts/2019-02-05-nswbuff/&#34;&gt;nswbuff&lt;/a&gt;,
but there is another way to implement buffer switching without introducing a new
package.&lt;/p&gt;
&lt;p&gt;Since I already use counsel-projectile, why not leverage it to my needs?&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-switch-to-project-buffer-if-in-project (arg)
    &amp;quot;Custom switch to buffer.
With universal argument ARG or when not in project, rely on
`ivy-switch-buffer&#39;.
Otherwise, use `counsel-projectile-switch-to-buffer&#39;.&amp;quot;
    (interactive &amp;quot;P&amp;quot;)
    (if (or arg
            (not (projectile-project-p)))
        (ivy-switch-buffer)
      (counsel-projectile-switch-to-buffer)))

(bind-key* &amp;quot;C-x b&amp;quot; #&#39;mu-switch-to-project-buffer-if-in-project)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pretty self-explanatory. By default, when not in a project
&lt;code&gt;counsel-projectile-switch-to-buffer&lt;/code&gt; asks you for the project to switch to.&lt;/p&gt;
&lt;p&gt;However, if I am not in a project chances are I want to switch to a buffer that
doesn&amp;rsquo;t belong to a project, especially since I usually enter a project before
switching to one of its buffers.&lt;/p&gt;
&lt;p&gt;nswbuff has previews and back-and-forth navigation, so it still offers a nicer
solution to buffer switching. This is Emacs, of course, so you know the deal:
endless possibilities.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The Thin Apocalypse</title>
      <link>https://manueluberti.eu/posts/2019-03-11-thethinapocalypse/</link>
      <pubDate>Mon, 11 Mar 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-03-11-thethinapocalypse/</guid>
      <description>&lt;p&gt;When I was a kid, my grandfather was always watching westerns and war films.
I remember fondly the day when he asked for my VHS of &lt;em&gt;Saving Private Ryan&lt;/em&gt;,
because it was a bit of a laugh. He took the VHS, went back downstairs, and put
it on as loudly as possible. The house turned into Omaha Beach.&lt;/p&gt;
&lt;p&gt;We used to disagree on our favourite war film. &lt;em&gt;The Longest Day&lt;/em&gt; was his number
one, while &lt;em&gt;Full Metal Jacket&lt;/em&gt; was mine. He couldn&amp;rsquo;t stand &lt;em&gt;Full Metal Jacket&lt;/em&gt;,
and he never did come to appreciate &lt;em&gt;Apocalypse Now&lt;/em&gt; which, as soon as
I discovered it, replaced Kubrick&amp;rsquo;s work in my heart.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2019-03-09-the_thin_red_line.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;The Thin Red Line (Terrence Malick, 1998)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t know now if my grandfather has ever watched Terrence Malick&amp;rsquo;s &lt;em&gt;The Thin
Red Line&lt;/em&gt;, but we would probably disagree about it too. Well, now anyway,
because when Malick&amp;rsquo;s come back occurred, I was still under the spell of &lt;em&gt;Saving
Private Ryan&lt;/em&gt;. Young and naive, I didn&amp;rsquo;t even notice &lt;em&gt;The Thin Red Line&lt;/em&gt;, and
when I approached it for the first time, &lt;em&gt;Saving Private Ryan&lt;/em&gt; was already gone
for good from my mind and Francis Ford Coppola&amp;rsquo;s Vietnam was my new religion.&lt;/p&gt;
&lt;p&gt;Predictably, &lt;em&gt;The Thin Red Line&lt;/em&gt; didn&amp;rsquo;t click at all for me. I didn&amp;rsquo;t understand
what Malick was trying to say about the war, nor the reason behind his method.
It didn&amp;rsquo;t help knowing nothing about his previous two films, and it didn&amp;rsquo;t help
entering &lt;em&gt;The Thin Red Line&lt;/em&gt; looking for &lt;em&gt;Apocalypse Now&lt;/em&gt;. So long, Terry, said
the slightly less naive than before—but still very much without a
clue—cinephile. Since then, I have skipped his new releases dumbly grinning
every time, so convinced that he was not and never could be a part of my idea of
cinema. Once again I &lt;a href=&#34;https://manueluberti.eu/posts/2018-09-20-rollerland/&#34;&gt;was&lt;/a&gt; &lt;a href=&#34;https://manueluberti.eu/posts/2018-11-15-lucas/&#34;&gt;wrong&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I always go back to the holes in my cinephilia, especially on the ones I created
on purpose. Last December, I finally came to appreciate Malick thanks to &lt;em&gt;The
New World&lt;/em&gt;. It wasn&amp;rsquo;t enough, though, so recently for a couple of weeks I have
immersed myself in his cinema. Starting from &lt;em&gt;Song to Song&lt;/em&gt;, because I had to
start somewhere, I spent those nights and many days after thinking and dreaming
about Malick&amp;rsquo;s images and themes. &lt;em&gt;The Thin Red Line&lt;/em&gt; came out on a totally
different light, but, to my utter surprise, &lt;em&gt;Apocalypse Now&lt;/em&gt; came out on a
different light too.&lt;/p&gt;
&lt;p&gt;As pointed out in &lt;a href=&#34;https://www.letterboxd.com/post1000tension/film/the-thin-red-line&#34;&gt;a beautiful
discussion&lt;/a&gt;
on &lt;em&gt;The Thin Red Line&lt;/em&gt;, there is an issue of “othering” which is rarely taken
into account when works of art are discussed. That is to say, I&amp;rsquo;ve never
encountered it before in the film criticism I regularly read.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Othering” is a term that not only encompasses the many expressions of
prejudice on the basis of group identities, but we argue that it provides a
clarifying frame that reveals a set of common processes and conditions that
propagate group-based inequality and marginality.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Seen through the lenses of othering, &lt;em&gt;Apocalypse Now&lt;/em&gt; shows its cracks. The film
focuses its and our eye on Captain Willard and his quest for Colonel Kurtz,
therefore deliberately ignoring the essential component of the conflict: the
Vietnamese people. Relegated to mere background of the main events, they are
always seen from the point of view of the US soldiers. Marginalized both
physically and psychologically, they have no voice. We are left with how they
are perceived instead of how they really are. The inequalities are hidden away,
and there is no question of identity because there is no identity to question.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Thin Red Line&lt;/em&gt; begins operating on almost the same level. The monologues
reveal the inner fights of the soldiers, the voice-overs claim our attention on
the words before the images. The long, intense battle sequence mainly concerns
the US soldiers&amp;rsquo; perspective. It&amp;rsquo;s not until the C-for-Charlie Company conquers
the Japanese bunkers that we see the enemies faces and understand their sense of
the events. This is where the film starts flipping the position of the
spectator. From our privileged position as viewers, we see what&amp;rsquo;s on the other
side of the battle. We see human beings as desperate as the C-for-Charlie
Company members, torn down by fatigue and absolutely unable to cope with
everything around them in a rational way. Whatever the cause of the war,
it&amp;rsquo;s irrelevant by now.&lt;/p&gt;
&lt;p&gt;The effect is somehow even more devastating due to Malick&amp;rsquo;s choice of rendering
these sorrowful moments in complete silence. Aside from the ever-present music,
the carefully chosen sounds, and the bits of voice-over punctuating the scenes,
we are left with our own devices in front of a horror that is universal, and not
confined to the mind of a single character. We are shown an attachment to life
and a belief in a greater hope that few other war films grant to the enemy.
Gratuitous acts of violence then become not a display of power, but the only way
to erase the guilt and the wounds. Even the teeth taken as souvenirs from the
victims turn out to be a pointless reminder and have to be thrown away to remove
the memory.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Thin Red Line&lt;/em&gt;, like every other film by Terrence Malick, is much more
complex than this, and cannot be easily reduced to a statement for othering.
However, by exploring the effects of the war on everyone involved, Malick annuls
the egocentric view of the heroes and puts forth the inhumanity in all its
compelling nightmares.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;See: &lt;a href=&#34;https://www.otheringandbelonging.org/the-problem-of-othering/&#34;&gt;The Problem of Othering: Towards Inclusiveness and
Belonging&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Jump around</title>
      <link>https://manueluberti.eu/posts/2019-02-14-avy/</link>
      <pubDate>Thu, 14 Feb 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-02-14-avy/</guid>
      <description>&lt;p&gt;Last time I shared my preferred choice for &lt;a href=&#34;https://manueluberti.eu/posts/2019-02-05-nswbuff/&#34;&gt;buffer switching&lt;/a&gt;, so let&amp;rsquo;s keep jumping around. The House of Pain
reference is a bit tacky, I know, but 90s nostalgia is still flying pretty high
from what I&amp;rsquo;ve heard.&lt;/p&gt;
&lt;p&gt;Quickly moving in a buffer is something every Emacs knight do multiple times a
day. I distinguish in-buffer jumps in two tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;jumps that encompass all the buffer content&lt;/li&gt;
&lt;li&gt;jumps limited to what is currently visible&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The first movements are covered by Oleh Krehel&amp;rsquo;s Swiper, but I am more
interested in the second kind of jumps this time. There are plenty of solutions
both bundled in Emacs (e.g., pop/mark commands) and in the wild. My favourite is
Avy, again from Oleh Krehel.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(use-package avy-jump                   ; Jump to characters in buffers
  :ensure avy
  :bind ((&amp;quot;C-j&amp;quot; . avy-goto-char-in-line)
         (&amp;quot;M-j&amp;quot; . avy-goto-char)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As it always happens with Oleh&amp;rsquo;s packages, &lt;code&gt;avy&lt;/code&gt; is well-documented, easy to
extend, and full of useful commands. I only added bindings for the ones I use
the most, and I really use these two all the time.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;avy-goto-char&lt;/code&gt; allows me to move anywhere following the character I am after.
It&amp;rsquo;s quicker than typing the whole candidate in Swiper, and obviously better
than manually moving
&lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/emacs/Point.html&#34;&gt;point&lt;/a&gt;
with &lt;code&gt;C-p&lt;/code&gt;/&lt;code&gt;C-n&lt;/code&gt; or, worse, the arrow keys.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;avy-goto-char-in-line&lt;/code&gt; behaves in much the same way, but it is limited to the
current line. If you remember &lt;code&gt;iy-go-to-char&lt;/code&gt; mentioned years ago on &lt;a href=&#34;https://emacsrocks.com/e04.html&#34;&gt;Emacs
Rocks&lt;/a&gt;, this is Oleh&amp;rsquo;s own variant.&lt;/p&gt;
&lt;p&gt;Both commands push point to the &lt;code&gt;mark-ring&lt;/code&gt;, so the default Emacs key binding
&lt;code&gt;C-u C-SPC&lt;/code&gt; takes you back to your original position.&lt;/p&gt;
&lt;p&gt;However, there is an even quicker alternative when I want to jump between
occurrences of the symbol where point currently is, which turns out to be pretty
handy when coding.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(use-package symbol-overlay             ; Highlight symbols
  :ensure t
  :bind (:map symbol-overlay-mode-map
              (&amp;quot;M-h&amp;quot; . symbol-overlay-put)
              (&amp;quot;M-n&amp;quot; . symbol-overlay-jump-next)
              (&amp;quot;M-p&amp;quot; . symbol-overlay-jump-prev))
  :hook ((conf-mode . symbol-overlay-mode)
         (html-mode . symbol-overlay-mode)
         (prog-mode . symbol-overlay-mode)
         (yaml-mode . symbol-overlay-mode)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Symbol Overlay not only highlights all the occurrences of the current symbol,
but it lets you move quickly among them with &lt;code&gt;symbol-overlay-jump-prev&lt;/code&gt; and
&lt;code&gt;symbol-overlay-jump-next&lt;/code&gt; without asking for a character to look for.&lt;/p&gt;
&lt;p&gt;Moreover, Symbol Overlay works on all the buffer content, so in this particular
case is quicker than Swiper too.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Retelling is not for everyone</title>
      <link>https://manueluberti.eu/posts/2019-02-06-retelling/</link>
      <pubDate>Wed, 06 Feb 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-02-06-retelling/</guid>
      <description>&lt;p&gt;&lt;em&gt;Bohemian Rhapsody&lt;/em&gt; reminded me of how difficult it is to tell a story more or
less well-known. Questions of accuracy, respect, and fan-service are inevitable,
as inevitable is the pressure behind a work that must deal with a popular
figure. &lt;em&gt;Bohemian Rhapsody&lt;/em&gt; follows the conventional biopic path, unfolding
mechanically like a Wikipedia entry. It limits itself to bits and pieces of a
subject too complex to be tamed, and it fails miserably at showing us that there
is more to Queen than a greatest hits collection.&lt;/p&gt;
&lt;p&gt;Nonetheless, biopics have always fascinated me, especially since I am an avid
reader of biographies and autobiographies. I enjoyed &lt;em&gt;Control&lt;/em&gt; and &lt;em&gt;Love &amp;amp;
Mercy&lt;/em&gt;, and I loved &lt;em&gt;Bird&lt;/em&gt; and &lt;em&gt;I&amp;rsquo;m Not There&lt;/em&gt;. None of these has had the
overwhelming power of &lt;em&gt;Ivan the Terrible&lt;/em&gt; on me, but that&amp;rsquo;s because Sergei
Eisenstein was not from this planet. Had he heard me calling his unfinished
masterpiece a &lt;em&gt;biopic&lt;/em&gt;, I am pretty sure he would have slapped me. The last
biopic capable of shaking me up in a manner similar to Eisenstein&amp;rsquo;s was Michael
Mann&amp;rsquo;s &lt;em&gt;Ali&lt;/em&gt;. What takes &lt;em&gt;Ali&lt;/em&gt; closer to &lt;em&gt;Ivan the Terrible&lt;/em&gt; than to the other
above-mentioned films is where the focus is.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2019-02-05-ali.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Ali (Michael Mann, 2001)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Most of the time, biopics take few liberties. In the worst cases, they tend to
resemble documentaries. Too close to the source material, too constrained in
their view, they add little to nothing to the formulaic one-man show. It&amp;rsquo;s a
pattern so obvious it has been mocked many times (e.g., &lt;em&gt;Walk Hard&lt;/em&gt;). &lt;em&gt;Ali&lt;/em&gt;
defies this schema right from the start. In ten minutes of brilliant montage,
with juxtapositions of music, boxing training, and episodes of the
champion&amp;rsquo;s life, Mann avoids the &lt;em&gt;“once upon a time…”&lt;/em&gt; cliché, contextualises
his character, and then jumps straight into Ali&amp;rsquo;s turning point: the glorious
fight with Sonny Liston. The fact that the film opens without a single word from
Ali, a man as powerful with his voice and words as he was with his fists, feels
like Mann immediately stating his position against the biopic genre.&lt;/p&gt;
&lt;p&gt;But there is more on this beginning. In a &lt;a href=&#34;https://www.youtube.com/watch?v=1QtAbxh7shw&#34; title=&#34;An Evening With Michael
Mann&#34;&gt;conversation with Bilge
Ebiri&lt;/a&gt;, Michael Mann singled out &lt;em&gt;Redemption Song: Muhammad Ali and the Spirit
of the Sixties&lt;/em&gt; by Mike Marqusee as the best book on Ali. Not so surprisingly,
the book begins with the same Clay-Liston fight &lt;em&gt;Ali&lt;/em&gt; does. I don&amp;rsquo;t think this
is a geeky touch. On the contrary, I feel like Mann connected on more than one
level with Marqusee&amp;rsquo;s pages, and decided to portray a complex figure without
losing sight of the significance of the events that surrounded it. And that is
why &lt;em&gt;Ali&lt;/em&gt; deals with only ten years of Muhammand Ali&amp;rsquo;s life. With the cultural
and historical era at the centre of the picture, we have a deeper sense of the
nature of Muhammad Ali&amp;rsquo;s choices in the most important timespan of his life.&lt;/p&gt;
&lt;p&gt;Mann never steps back from the possibilities in front of him. The afro-camera,
as it is ironically referred to in the &lt;em&gt;Making Of&lt;/em&gt;, is as simple as it is
ingenious: placed on the head of the fighter, it puts the viewer in between the
punches, augmenting our sense of participation in the drama called boxing. The
trick is not to abuse of such a device, and Mann knows when to stop. And the
same goes with the political implications: Mann hints, without confirming it nor
denying it, at the FBI plot behind Malcolm X murder. It&amp;rsquo;s enough. It&amp;rsquo;s up to us,
now. If only Freddie Mercury sexuality could have been treated with this
cleverness.&lt;/p&gt;
&lt;p&gt;This is the kind of personal involvement most biopics lack. &lt;em&gt;Ali&lt;/em&gt; could not have
been done by someone other than Michael Mann. His vision, his composition, his
realism, his hero, his moments of tenderness. It&amp;rsquo;s all here. Never for a second
you feel like these images come from a book, or like there is a documentary that
tells it the same way but in a different style.&lt;/p&gt;
&lt;p&gt;And then comes Will Smith. I won&amp;rsquo;t question Rami Malek preparation for the role
of Freddie Mercury, although those ridiculous fake teeth still keep me up at
night sometimes. I know Freddie Mercury&amp;rsquo;s voice is unique, but he was a unique
persona too. Much like Muhammad Ali, which is why Will Smith&amp;rsquo;s performance is
something Malek&amp;rsquo;s should have studied closely. True, Smith had the chance to
have Muhammad Ali on the set, but instead of arbitrarily hiding sides of his
vibrant personality, Smith and Mann bring everything out in subtle ways. His
braggadocio, the complete transformation from Cassius Clay into Muhammad Ali,
his religious belief, his humour and his charm, his adultery. By the tonal
shifts in the voice and the studied movements (the walk, the eyes), all the
controversial traits of Ali emerge without compromising the nature of the film.
At his best, Malek mimics Mercury&amp;rsquo;s flamboyant stage presence and mercurial
temperament, but he stops there. There is one idea of Freddie Mercury in
&lt;em&gt;Bohemian Rhapsody&lt;/em&gt;, and that&amp;rsquo;s all we get.&lt;/p&gt;
&lt;p&gt;While &lt;em&gt;Bohemian Rhapsody&lt;/em&gt; adds nothing to a trite custom, &lt;em&gt;Ali&lt;/em&gt; redefines the
biopic and it offers itself as one of the few, real alternatives to an
annoyingly standardised approach to biographical material.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Switching buffers</title>
      <link>https://manueluberti.eu/posts/2019-02-05-nswbuff/</link>
      <pubDate>Tue, 05 Feb 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-02-05-nswbuff/</guid>
      <description>&lt;p&gt;One of the most valuable packages I rely on everyday is
&lt;a href=&#34;https://github.com/ericdanan/counsel-projectile&#34;&gt;counsel-projectile&lt;/a&gt;. Combining
the power of &lt;a href=&#34;https://github.com/abo-abo/swiper&#34;&gt;counsel&lt;/a&gt; and
&lt;a href=&#34;https://github.com/bbatsov/projectile&#34;&gt;Projectile&lt;/a&gt;, this great work from Eric
Danan has been governing my project management in Emacs for quite a while.&lt;/p&gt;
&lt;p&gt;One nifty feature of &lt;code&gt;counsel-projectile&lt;/code&gt; is
&lt;code&gt;counsel-projectile-switch-to-buffer&lt;/code&gt;, bound to &lt;code&gt;C-c p b&lt;/code&gt;, which lets
you pick the buffer to switch to from the current project&amp;rsquo;s open buffers.&lt;/p&gt;
&lt;p&gt;However, old habits never die. Years and years of &lt;code&gt;Ctrl-TAB&lt;/code&gt; and
&lt;code&gt;Ctrl-Shift-TAB&lt;/code&gt; in my web browser window are hard to forget. And so
enters Joost Kremers&amp;rsquo; &lt;a href=&#34;https://github.com/joostkremers/nswbuff&#34;&gt;nswbuff&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(use-package nswbuff                    ; Quick switching between buffers
  :ensure t
  :bind* ((&amp;quot;&amp;lt;C-tab&amp;gt;&amp;quot;           . nswbuff-switch-to-next-buffer)
          (&amp;quot;&amp;lt;C-S-iso-lefttab&amp;gt;&amp;quot; . nswbuff-switch-to-previous-buffer))
  :config (setq nswbuff-buffer-list-function #&#39;nswbuff-projectile-buffer-list
                nswbuff-display-intermediate-buffers t
                nswbuff-exclude-buffer-regexps &#39;(&amp;quot;^ .*&amp;quot; &amp;quot;^\\*.*\\*&amp;quot;)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;del&gt;I am loading it from a specific path, because at the time of this writing &lt;a href=&#34;https://github.com/melpa/melpa/pull/6005&#34;&gt;the
package is not on MELPA&lt;/a&gt;.&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;The key setting here is the value of &lt;code&gt;nswbuff-buffer-list-function&lt;/code&gt;. Using
&lt;code&gt;nswbuff-projectile-buffer-list&lt;/code&gt; activates &lt;code&gt;nswbuff&lt;/code&gt; integration with
&lt;code&gt;Projectile&lt;/code&gt;, and so I can quickly move between my project buffers hitting the
good ol&amp;rsquo; &lt;code&gt;Ctrl-TAB&lt;/code&gt;.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Make your company behave</title>
      <link>https://manueluberti.eu/posts/2019-01-17-company-on-demand/</link>
      <pubDate>Thu, 17 Jan 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-01-17-company-on-demand/</guid>
      <description>&lt;p&gt;Sometimes it just takes a little thing to make your day.&lt;/p&gt;
&lt;p&gt;I have been using &lt;a href=&#34;https://company-mode.github.io/&#34;&gt;company-mode&lt;/a&gt; for ages,
becoming accustomed to the list of candidates popping up whenever the automatic
completion kicks in.&lt;/p&gt;
&lt;p&gt;However, more often than not what I need is in-buffer, context-aware completion,
and in this case &lt;code&gt;dabbrev-expand&lt;/code&gt; or &lt;code&gt;dabbrev-completion&lt;/code&gt;, which I have bound to
&lt;code&gt;C-,&lt;/code&gt; and &lt;code&gt;C-.&lt;/code&gt; respectively, are enough.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s pretty simple to turn off &lt;code&gt;company-mode&lt;/code&gt; automatic completion:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(setq company-idle-delay nil)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&amp;rsquo;s it.&lt;/p&gt;
&lt;p&gt;To get the list of candidates back when I need, I have &lt;code&gt;company-complete&lt;/code&gt; bound
to &lt;code&gt;C-c c&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Nice and easy.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Arrivederci Soavi, Ciao</title>
      <link>https://manueluberti.eu/posts/2019-01-02-befana/</link>
      <pubDate>Wed, 02 Jan 2019 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2019-01-02-befana/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s always been hard for me to cope with Italian cinema. I am not talking about
obvious masters such as Roberto Rossellini, Elio Petri, and Federico Fellini
here. I am talking about the most recent output of my country&amp;rsquo;s film world,
which makes me wonder what those masters would think of Italian cinema today.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2019-01-02-la_befana_vien_di_notte.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;La Befana Vien di Notte
(Michele Soavi, 2018)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Luckily enough, there are exceptions to my bias. Michele Soavi&amp;rsquo;s &lt;em&gt;Arrivederci
Amore, Ciao&lt;/em&gt; is one of them, although it&amp;rsquo;s a work so criminally underrated it
feels like me being the contrarian again. No wonder, then, that last night I had
mild expectations for Soavi&amp;rsquo;s latest effort: &lt;em&gt;La Befana Vien di Notte&lt;/em&gt;. The
trailer looked like fun, and I entered the theatre expecting an enjoyable
adventure to start the new year with a smile on my face.&lt;/p&gt;
&lt;p&gt;Sadly it all started to go bad after a few minutes in. All the jokes that matter
are in the trailer, and everybody around me must have seen it too because nobody
was laughing. This not only shows how poor the jokes are, but it strategically
conceals the overall awful acting, to my mind some of the worst ever seen in an
Italian film. Lines mechanically delivered, no rhythm nor traces of passion
whatsoever. As it generally happens with Italian dubbing, there are exclamations
no one uses in real life (&lt;em&gt;“Chi diavolo sei?”&lt;/em&gt;) and needless abundance of
pronouns (something fine in English but redundant in Italian). Are decades of
dubbed US films to blame for this? Who knows.&lt;/p&gt;
&lt;p&gt;The trailer hides the atrocious action too. There is a sequence, way too long,
with the kids running around visibly not scared of the ridiculous drones
shooting at them. Maybe Soavi told everyone &lt;em&gt;“run, scream, just do something for
a while”&lt;/em&gt; and then went to grab a bite. No other explanation off the top of my
head.&lt;/p&gt;
&lt;p&gt;These are all marginal details compared to a script with no memorable characters
and incapable of building the sense of wonder necessary for an adventure based
on folklore. Paola, the Befana of the title, would fit well in one of the latest
seasons of &lt;em&gt;Doctor Who&lt;/em&gt;, since she is nothing more than a tool to move the plot
forward. Cortellesi, the only one in the cast with a hint of talent, strolls
along with the aplomb of a tired actress, a genuine &lt;em&gt;“it&amp;rsquo;s just a job anyway”&lt;/em&gt;
echo in her voice.&lt;/p&gt;
&lt;p&gt;The kids are insufferable, an accretion of stereotype upon stereotype which
probably wished to remind us of the &lt;em&gt;Goonies&lt;/em&gt; lot but fails miserably at doing
so. They don&amp;rsquo;t work as a group of friends, there is nothing playful about them,
because there is no connection between them. They are random people thrown on
the set and left there to the best of their capabilities. I don&amp;rsquo;t know why Soavi
felt the need to show us the bully as a pervert spying on naked women in all
this, but hey, let&amp;rsquo;s shock the audience with something wild.&lt;/p&gt;
&lt;p&gt;Kind of pointless, though, because the shock comes as soon as the villain enters
the scene. A character so ill-conceived and ill-portrayed it shows a complete
disregard for the history of villains and the viewer&amp;rsquo;s patience. He tries so
hard to be the bad guy you want to laugh at that he ends up insulting your
intelligence with a dull mockery of the idea of evil. Not for a second
I suspended my disbelief watching him menacing our heroine and planning to
conquer the heart of the children. The supreme failure of &lt;em&gt;La Befana Vien di
Notte&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t think I was prepared for a Soavi&amp;rsquo;s like this. True, I wasn&amp;rsquo;t expecting
another &lt;em&gt;Arrivederci Amore, Ciao&lt;/em&gt; either, but a flop such as this hurts more.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Playing hide-and-seek with my REPLs</title>
      <link>https://manueluberti.eu/posts/2018-12-19-hide-repl/</link>
      <pubDate>Wed, 19 Dec 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-12-19-hide-repl/</guid>
      <description>&lt;p&gt;Emacs users know their beloved editor has a penchant for throwing windows and
buffers around. Smart Emacs users know how to make Emacs behave with a careful
configuration of
&lt;a href=&#34;http://doc.endlessparentheses.com/Var/display-buffer-alist.html&#34;&gt;display-buffer-alist&lt;/a&gt;.
For instance, I like to have all of my REPLs in a bottom side window, taking up
half of the screen size.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(setq display-buffer-alist
      `((,(rx bos (or &amp;quot;*cider-repl&amp;quot;     ; CIDER REPL
                      &amp;quot;*intero&amp;quot;         ; Intero REPL
                      &amp;quot;*idris-repl&amp;quot;     ; Idris REPL
                      &amp;quot;*ielm&amp;quot;           ; IELM REPL
                      &amp;quot;*SQL&amp;quot;))          ; SQL REPL
         (display-buffer-reuse-window display-buffer-in-side-window)
         (side . bottom)
         (reusable-frames . visible)
         (window-height . 0.50))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I then have a couple of custom functions, lifted from &lt;a href=&#34;https://github.com/lunaryorn/old-emacs-configuration&#34;&gt;Sebastian
Wiesner&amp;rsquo;s archived
configuration&lt;/a&gt;, to quickly
close the REPL and go back to the buffer I was editing.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-find-side-windows (&amp;amp;optional side)
  &amp;quot;Get all side window if any.
If SIDE is non-nil only get windows on that side.&amp;quot;
  (let (windows)
    (walk-window-tree
     (lambda (window)
       (let ((window-side (window-parameter window &#39;window-side)))
         (when (and window-side (or (not side) (eq window-side side)))
           (push window windows)))))
    windows))

;;;###autoload
(defun mu-quit-side-windows ()
  &amp;quot;Quit side windows of the current frame.&amp;quot;
  (interactive)
  (dolist (window (mu-find-side-windows))
    (when (window-live-p window)
      (quit-window nil window)
      ;; When the window is still live, delete it
      (when (window-live-p window)
        (delete-window window)))))

(bind-key &amp;quot;C-c w q&amp;quot; #&#39;mu-quit-side-windows)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;All of this usually works fine. However,
&lt;a href=&#34;https://github.com/clojure-emacs/cider&#34;&gt;CIDER&lt;/a&gt; has recently introduced a new
&lt;a href=&#34;https://github.com/vspinu/sesman&#34;&gt;session system&lt;/a&gt; which doesn&amp;rsquo;t play well with
this setup. Basically, using &lt;code&gt;quit-window&lt;/code&gt; on a CIDER REPL results in a buffer
without its related REPL available.&lt;/p&gt;
&lt;p&gt;The solution is trivial.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;;;;###autoload
(defun mu-hide-side-windows ()
  &amp;quot;Hide side windows of the current frame.&amp;quot;
  (interactive)
  (dolist (window (mu-find-side-windows))
    (when (window-live-p window)
      (delete-window window))))

(bind-key &amp;quot;C-c w h&amp;quot; #&#39;mu-hide-side-windows)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now I just hide the side windows of the current buffer, and the linked REPL is
always a key binding away.&lt;/p&gt;
&lt;p&gt;Notice that if you are only visiting one buffer and a REPL, pressing &lt;code&gt;C-x 0&lt;/code&gt; in
the REPL window or &lt;code&gt;C-x 1&lt;/code&gt; in the buffer where the REPL window was opened has
the same effect of &lt;code&gt;C-c w h&lt;/code&gt;.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>My 2018 in films</title>
      <link>https://manueluberti.eu/posts/2018-12-12-my2018/</link>
      <pubDate>Wed, 12 Dec 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-12-12-my2018/</guid>
      <description>&lt;p&gt;In terms of cinematic experiences 2018 has been an amazing year. Although I have
a couple of titles among this year&amp;rsquo;s finest already added to my all-time
favourites, 2018 will be remembered as the time when my cinephilia expanded in
incredible and inspiring ways like never before. The key game-changer has been
Letterboxd.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2018-12-12-my2018.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;When it comes to social networks, I am sceptical to say the least. For a while
I have enjoyed Facebook, Twitter, and Mastodon as much as anybody else, but
early in 2017 I decided to put an end to my social-networked life. Privacy
concerns, yes, but also the obnoxious feeling of time wasted.&lt;/p&gt;
&lt;p&gt;Letterboxd is a community of cinephiles sharing their love, and as such I rarely
encounter endless off-topics and pointless discussions. More importantly, it
conceals in plain view treasures of film criticism. The writings and the
opinions of Mallory Andrews, Neil Bahadur, Jake Cole, Filipe Furtado, Willow
Maclay and Michael Sicinski—to name a few!—have served as my guiding light in
the realms of cinema. By and large thanks to their contributions on Letterboxd,
I discovered a proper appreciation of Brian De Palma and George Lucas, fell
madly in love with Abel Ferrara and Charles Chaplin, embraced Jean-Luc
Godard and Samuel Fuller, reconsidered Martin Scorsese&amp;rsquo;s and Michael Mann&amp;rsquo;s turn
of the century efforts, and now have a better understanding of Chantal Akerman
and Claire Denis. Not to mention the hundreds of films already in my watchlist,
plus the sheer willingness to write about cinema as an enjoyable outcome.&lt;/p&gt;
&lt;p&gt;Moreover, Letterboxd helps me make sense of the unstoppable flux of images on my
screen. I have kept track of the best of 2018 in a dedicated list on Letterboxd,
an undeniable improvement to my plain text files technique. And if you are into
statistics and data, something worth every penny is provided to. Addictive to
say the least.&lt;/p&gt;
&lt;p&gt;As I mentioned above, there are two films that stood out from the rest of the
2018 pack: &lt;em&gt;An Elephant Sitting Still&lt;/em&gt; and &lt;em&gt;Ready Player One&lt;/em&gt;. I wrote at length
on &lt;a href=&#34;https://manueluberti.eu/posts/2018-10-31-elephant/&#34;&gt;the former&lt;/a&gt;, and only hinted at &lt;a href=&#34;https://manueluberti.eu/posts/2018-11-15-lucas/&#34;&gt;the
latter&lt;/a&gt; aggressive combination of nostalgia and
juvenile fun. What&amp;rsquo;s more, they have something in common. Hu Bo&amp;rsquo;s masterpiece is
a desperate look at a world in which traces of optimism are scarce and therefore
more precious than ever, while Steven Spielberg&amp;rsquo;s adventure is full of fervent
belief in a greater good despite the growing distance between the rich and the
poor. Both films acknowledge the need, now more than ever, for a change. They
use different means to the same end: hope.&lt;/p&gt;
&lt;p&gt;Since the latest Jia Zhangke&amp;rsquo;s and Wang Bing&amp;rsquo;s are still outside of my radar,
I consider the rest of 2018 output moderately interesting. &lt;em&gt;Padmavaat&lt;/em&gt; is a
heartbreaking tragedy from the director of the superb &lt;em&gt;Bajirao Mastani&lt;/em&gt;, while
&lt;em&gt;First Reformed&lt;/em&gt; is easily the most puzzling Paul Schrader. Tsui Hark and Steven
Soderbergh, albeit not at the top of their abilities, proved again able to
surprise me in unexpected ways. Much the same can be said of Spike Lee, even
though he did not bite like he used to, but I am confused about Clint
Eastwood&amp;rsquo;s &lt;em&gt;The 15:17 to Paris&lt;/em&gt;. Not sure what to do with it. On the other hand,
Paul Feig finally met my taste with his playfully sexy &lt;em&gt;A Simple Favor&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Contrary to popular criticism, I enjoyed &lt;em&gt;Terminal&lt;/em&gt; just as thoroughly as I wanted
to enjoy &lt;em&gt;Red Sparrow&lt;/em&gt; and &lt;em&gt;Upgrade&lt;/em&gt;. Scott Adkins played the role of his acting
career in &lt;em&gt;Accident Man&lt;/em&gt;, but I stand firm in my conviction that Amy Johnston is
the martial artist we deserve. &lt;em&gt;Braven&lt;/em&gt; in all its predictability is simply the
action film &lt;em&gt;The Predator&lt;/em&gt; fails to be. Shockingly, it was even more entertaining
than &lt;em&gt;The Night Comes for Us&lt;/em&gt;. I&amp;rsquo;ve already forgotten about &lt;em&gt;Ocean&amp;rsquo;s Eight&lt;/em&gt;, and
I did not connect neither with &lt;em&gt;Sorry to Bother You&lt;/em&gt; nor with &lt;em&gt;American Animals&lt;/em&gt;.
I preferred the bleakness of &lt;em&gt;River&amp;rsquo;s Edge&lt;/em&gt; to the one of &lt;em&gt;Burning&lt;/em&gt;, but they will
both be remembered for the darkness within.&lt;/p&gt;
&lt;p&gt;A couple of horror films this year spoke about technology better than almost
anything cinema has ever tried in this regard: &lt;em&gt;Cam&lt;/em&gt; and &lt;em&gt;Unfriended: Dark Web&lt;/em&gt;.
They are a bit rough around the edges, but they convey the terrifying
preoccupations contemporary society keeps missing. No Daniel Goldhaber, I am
sorry: there is nothing of &lt;em&gt;Showgirls&lt;/em&gt; in &lt;em&gt;Cam&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Then, the outsiders: Jean-Marie Straub&amp;rsquo;s &lt;em&gt;Gens du Lac&lt;/em&gt; is a reminder of how much
meaning a camera pan can ultimately have, while Jean-Luc Godard dropped
&lt;em&gt;Westerly Wind&lt;/em&gt; as the true warrior he is. They both conquered me in ways
Apichatpong Weerasethakul&amp;rsquo;s &lt;em&gt;Blue&lt;/em&gt; did not, but he moved me anyhow like he
always does.&lt;/p&gt;
&lt;p&gt;I cannot leave 2018 without a couple of words on Bernardo Bertolucci. He taught
me cinephilia and love for cinema with &lt;em&gt;The Dreamers&lt;/em&gt;, and much of my passion
comes from the pivotal experience of him entering my life before I was twenty
years old. Not even with his best work, and yet here I am. Thank you, Bernardo.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The present is the past is the future</title>
      <link>https://manueluberti.eu/posts/2018-11-15-lucas/</link>
      <pubDate>Thu, 15 Nov 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-11-15-lucas/</guid>
      <description>&lt;p&gt;Funny how volatile judgement is. I remember enjoying Ernest Cline&amp;rsquo;s &lt;em&gt;Ready
Player One&lt;/em&gt; while reading it, and then time has almost entirely overturned my
appreciation for it. I was still dealing with the rise of my negative opinion
about Cline&amp;rsquo;s work the first time I saw Steven Spielberg&amp;rsquo;s adaptation this year,
hence no surprises my bias ruined my enjoyment. Upon watching &lt;em&gt;Ready Player One&lt;/em&gt;
again last Sunday, a totally different film unfolded on the screen. I refused to
oblige the bias, and sat in ecstatic amusement while Spielberg built a world of
wonders in front of me.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2018-11-14-ready_player_one.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Ready Player One (Steven Spielberg, 2018)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;I instantly connected my feelings of joy to the ones I experienced when &lt;em&gt;Star
Wars&lt;/em&gt; entered my life as a kid and set my love for cinema ablaze. This is not
coincidental, because &lt;em&gt;Ready Player One&lt;/em&gt; is the closest Spielberg has ever come
to match the visionary of visuals that is George Lucas.&lt;/p&gt;
&lt;p&gt;However, I had kind of forgot about George Lucas. When the prequels came out
I was one of those fans who felt betrayed and insulted. I went in looking for
something the prequels are not: the original trilogy. As a result, nostalgia
played the same role my opinion of Cline&amp;rsquo;s book played with &lt;em&gt;Ready Player One&lt;/em&gt;.
After &lt;em&gt;Revenge of the Sith&lt;/em&gt;, from time to time I revisited the original trilogy
for nostalgia sake, but my love for George Lucas was weakening, and even those
three films were losing my devotion year after year. Cinema changed, I changed,
and by now that galaxy was literally far, far away.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Ready Player One&lt;/em&gt; left me with the desire of revisiting George Lucas&amp;rsquo; works.
I took the experience of the second viewing as a sign. The &lt;em&gt;Star Wars&lt;/em&gt; prequels
needed another chance. If it happened with Spielberg, it could happen with Lucas
as well. It just felt like I owed it to him.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Phantom Menace&lt;/em&gt; surprised me the most. The weakest chapter among the
prequels and the one that sparkled my delusion back then, &lt;em&gt;The Phantom Menace&lt;/em&gt;
lays the grounds for all the politics to come. The pod race is as amazing as
I remembered, pure kinetic power at barely controllable speed. The Wachowksis
surely memorized this race before devising the absolute madness of &lt;em&gt;Speed
Racer&lt;/em&gt;. On the other hand, Lucas is not ready to fully embrace the CGI like he
wishes, or maybe it&amp;rsquo;s the CGI not ready for him yet, because &lt;em&gt;The Phantom
Menace&lt;/em&gt; doesn&amp;rsquo;t always look as beautiful as some of its best images. The fantasy
of its author is impeded by the technological limits of the time.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s only with &lt;em&gt;Attack of the Clones&lt;/em&gt; that he finally gets what his heart
deserves. Lucas has now everything he needs to elaborate an imaginary universe,
and he understands what it takes to go beyond the mere creation of spaces for
the action to occur. He experiments with colour shifts, crafting backgrounds
that intensify the psychological warfare within Anakin. There is no manichean
distinction between light and shadow any more, a stylistic choice which reflects
the blurred distinction of good and evil typical of Eastern philosophies. The
most experimental episode of the saga in terms of formal achievements, &lt;em&gt;Attack
of the Clones&lt;/em&gt; also starts posing the question further explored in &lt;em&gt;Revenge of
the Sith&lt;/em&gt;: what does it mean to be a Jedi Knight? &lt;em&gt;Star Wars&lt;/em&gt; has never explored
so deeply the moral ambiguity of its heroes.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2018-11-14-star_wars.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Star Wars: Episode III – Revenge of the Sith (George Lucas, 2005)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Reinvigorated by the first two chapters, I approached &lt;em&gt;Revenge of the Sith&lt;/em&gt; with
even more curiosity. Of the three, it&amp;rsquo;s the only one that the younger me ended
up moderately liking, but what would I think now that my perspective on &lt;em&gt;The
Phantom Menace&lt;/em&gt; and &lt;em&gt;Attack of the Clones&lt;/em&gt; has changed?&lt;/p&gt;
&lt;p&gt;Lucas pulls you right into a furious battle in space. It&amp;rsquo;s already clear he is
now dominating the resources at his disposal. The CGI is slick, and he can now
stage impossible acrobatics, invention after invention, like he has always been
trying to do. This is the dream come true of a kid possessed by the spectacle of
images moving on a screen. Here Lucas is creating the defining epic war for its
saga, moments unparalleled in proportion and unique in technique. Amidst the
grandeur of the fights, the pivotal drama of &lt;em&gt;Star Wars&lt;/em&gt; reaches its peak.
Anakin falls prey of the Dark Side, he sacrifices everything for the promise of
untamed power.&lt;/p&gt;
&lt;p&gt;Moreover, Anakin eventually has to deal with the political dilemma built up so
far by &lt;em&gt;The Phantom Menace&lt;/em&gt; and &lt;em&gt;Attack of the Clones&lt;/em&gt;. He struggles to find
hope in democracy because it appears to be no democracy when everyone is above
you. He fails to comprehend the implications of a ruling government because he
wants immediate answers to his questions and immediate actions to benefit from.
All that matters has to be within his reach, everything else is simply marginal.
The fear of losing what he has is exploited by Darth Sidious and in the end
takes Anakin to the point of no return.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s the same fear Darth Sidious works with to obtain the position of leader of
the soon to be Empire. Fear is the actual phantom menace. It attacks and wins
over the minds of a great Master Jedi such as Yoda. He suspects but can&amp;rsquo;t act,
he waits and can&amp;rsquo;t see, stopped by a feeling greater than his belief in the
Force. His exile is the supreme failure of the Jedi Knights. &lt;em&gt;Revenge of the
Sith&lt;/em&gt; reveals itself as George Lucas most ambitious masterpiece.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;Star Wars&lt;/em&gt; prequels present a past the original trilogy struggles to
confront with. The scale of the universe designed by George Lucas here is indeed
too much for the possibilities cinema offered in the late seventies and
throughout the eighties. When they came out, the prequels had fans lacking the
sane distance needed for an appreciation devoid of misconceptions. Now may be
the right time to revisit &lt;em&gt;The Phantom Menace&lt;/em&gt;, &lt;em&gt;Attack of the Clones&lt;/em&gt;, and
&lt;em&gt;Revenge of the Sith&lt;/em&gt;, and at last understand the mighty vision of George Lucas.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Moving to deps.edn and shadow-cljs</title>
      <link>https://manueluberti.eu/posts/2018-11-14-deps-shadow-cljs/</link>
      <pubDate>Wed, 14 Nov 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-11-14-deps-shadow-cljs/</guid>
      <description>&lt;p&gt;Last summer I moved &lt;a href=&#34;https://sr.ht/~manuel-uberti/boodle/&#34;&gt;boodle&lt;/a&gt; from Figwheel
to &lt;a href=&#34;https://manueluberti.eu/posts/2018-08-03-figwheel-main/&#34;&gt;Figwheel Main&lt;/a&gt;. I was pretty
satisfied with this setup, but the rise of shadow-cljs in the Clojure community
has been tickling my curiosity over and over again. While configuring
&lt;code&gt;shadow-cljs&lt;/code&gt; I took the chance to set &lt;code&gt;lein&lt;/code&gt; aside and finally explore &lt;code&gt;clj&lt;/code&gt;
and &lt;code&gt;deps.edn&lt;/code&gt;, another thing on my to-do list that has been waiting for me for
some time.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s start with &lt;code&gt;deps.edn&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;{:deps
 {
  ;; … Clojure dependencies …
 }

 :paths [&amp;quot;src/clj&amp;quot; &amp;quot;resources&amp;quot;]

 :aliases {:run {:main-opts [&amp;quot;-m&amp;quot; &amp;quot;boodle.core&amp;quot;]}
           :test {:extra-paths [&amp;quot;test/clj&amp;quot;]
                  :extra-deps {lambdaisland/kaocha {:mvn/version &amp;quot;0.0-266&amp;quot;}}}
           :outdated {:extra-deps {olical/depot {:mvn/version &amp;quot;1.4.0&amp;quot;}}
                      :main-opts [&amp;quot;-m&amp;quot; &amp;quot;depot.outdated.main&amp;quot;]}}}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;One thing worth of notice here is &lt;code&gt;:paths&lt;/code&gt;. I included the &lt;code&gt;resources&lt;/code&gt; directory
in it because I serve it via &lt;code&gt;compojure&lt;/code&gt;/&lt;code&gt;http-kit&lt;/code&gt; and that&amp;rsquo;s where I put the
static assets used in my main index page. This solution works when I run
&lt;code&gt;mount.core/start&lt;/code&gt; via REPL and when I use the &lt;code&gt;:run&lt;/code&gt; alias from the command
line.&lt;/p&gt;
&lt;p&gt;Speaking of aliases, they are invaluable. With &lt;code&gt;:run&lt;/code&gt; I can use &lt;code&gt;clj -A:run&lt;/code&gt;
instead of &lt;code&gt;lein run&lt;/code&gt;, and with &lt;code&gt;clj -A:outdated -a outdated&lt;/code&gt; I can easily check
for outdated dependencies in my &lt;code&gt;deps.edn&lt;/code&gt; thanks to depot. Unit tests are now
handled by Kaocha, and as per its instructions I have a &lt;code&gt;bin/kaocha&lt;/code&gt; file which
picks up the &lt;code&gt;:test&lt;/code&gt; alias and runs all my tests.&lt;/p&gt;
&lt;p&gt;I love the simplicity of &lt;code&gt;deps.edn&lt;/code&gt;, it feels like a de-cluttered &lt;code&gt;project.clj&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Configuring shadow-cljs was a bit more complicated. It took me a while to
understand how to properly integrate it with CIDER. However, the manual is great
and the fine people on Slack&amp;rsquo;s &lt;code&gt;#shadow-cljs&lt;/code&gt; (thanks Ryan Haywood and Thomas
Heller!) made it all nice and smooth.&lt;/p&gt;
&lt;p&gt;This is my &lt;code&gt;shadow-cljs.edn&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;{:source-paths [&amp;quot;src/cljs&amp;quot;]
 :nrepl {:port 8777
         :middleware [refactor-nrepl.middleware/wrap-refactor]}
 :dependencies [
                 ;; … ClojureScript dependencies …
               ]
 :builds {:boodle {:target :browser
                   :output-dir &amp;quot;resources/public/js&amp;quot;
                   :asset-path &amp;quot;/js&amp;quot;
                   :modules {:main {:entries [boodle.core]}}}}}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Basic setup, straight from the manual pages. Notice that &lt;code&gt;:output-dir&lt;/code&gt; refers to
the same &lt;code&gt;resources&lt;/code&gt; directory configured in &lt;code&gt;deps.edn&lt;/code&gt;. This tells shadow-cljs
to place the build output exactly where I need.&lt;/p&gt;
&lt;p&gt;The other important change is in the CLJS libraries I use. shadow-cljs does not
support CLJSJS, so I had to install &lt;code&gt;pikaday&lt;/code&gt; and &lt;code&gt;moment&lt;/code&gt; via &lt;code&gt;yarn&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;$ yarn add pikaday moment
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Since &lt;code&gt;boodle&lt;/code&gt; relies on &lt;code&gt;re-frame&lt;/code&gt;, I had to install three other libraries to
make shadow-cljs build my code happily:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;$ yarn add react react-dom create-react-class
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In the namespace where I use them, the &lt;code&gt;:require&lt;/code&gt; had to be changed:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;(:require ;; … other requires …
          [&amp;quot;react-dom&amp;quot; :refer [findDOMNode]]
          [&amp;quot;pikaday&amp;quot; :as pikaday])
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And the code had to be adapted:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;(let [default-opts {:field (findDOMNode this)
                    ;; … other options …
                   }
      instance (pikaday. opts)]
    ;; … other ClojureScript code …
)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;However, a project setup is not ready unless I can work on it via Emacs. These
are the steps I made to have a working CLJ/CLJS development environment. When
&lt;a href=&#34;https://github.com/clojure-emacs/cider/issues/2447&#34;&gt;this issue&lt;/a&gt; will be fixed
some of it may become unnecessary.&lt;/p&gt;
&lt;p&gt;First, I added a couple of dependencies in &lt;code&gt;shadow-cljs.edn&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;:dependencies [;; … other dependencies …
               [cider/cider-nrepl &amp;quot;0.18.0&amp;quot;]
               [refactor-nrepl &amp;quot;2.4.0&amp;quot;]]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then I removed everything Figwheel Main related from the &lt;code&gt;.dir-locals.el&lt;/code&gt; file
located in the root directory of &lt;code&gt;boodle&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;((nil
  (cider-default-cljs-repl . shadow-select)
  (cider-pprint-fn . zprint)
  (cider-preferred-build-tool . clojure-cli)
  (cider-known-endpoints . ((&amp;quot;hathaway&amp;quot; &amp;quot;localhost&amp;quot; &amp;quot;8777&amp;quot;)))
  (cider-ns-refresh-after-fn . &amp;quot;mount.core/start&amp;quot;)
  (cider-ns-refresh-before-fn . &amp;quot;mount.core/stop&amp;quot;))
 (emacs-lisp-mode
  (flycheck-disabled-checkers . &amp;quot;emacs-lisp-checkdoc&amp;quot;)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I ran &lt;code&gt;cider-jack-in-clj&lt;/code&gt; to have a CLJ REPL and check I didn&amp;rsquo;t break something
on the Clojure side of &lt;code&gt;boodle&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;From a terminal, I used &lt;code&gt;shadow-cljs watch boodle&lt;/code&gt; to have &lt;code&gt;shadow-cljs&lt;/code&gt; build
&lt;code&gt;boodle&lt;/code&gt; and offer me a nice nREPL server listening on port &lt;code&gt;8777&lt;/code&gt;, the one
I specified in &lt;code&gt;shadow-cljs.edn&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Back in CIDER, &lt;code&gt;cider-connect-cljs&lt;/code&gt; brought up a REPL connected to &lt;code&gt;shadow-cljs&lt;/code&gt;
nREPL server, and let me select the build I want it operating on (default is
&lt;code&gt;dev&lt;/code&gt;, I just typed in &lt;code&gt;boodle&lt;/code&gt;). Connecting to &lt;code&gt;boodle&lt;/code&gt; via the browser
finalized the connection between my code and the CLJS environment.&lt;/p&gt;
&lt;p&gt;A great journey. Once again, &lt;code&gt;boodle&lt;/code&gt; proved fertile ground to understand the
Clojure ecosystem and play with it to learn something new. If you want more
details, the project is on &lt;a href=&#34;https://sr.ht/~manuel-uberti/boodle/&#34;&gt;my SourceHut&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Hu Bo and the country that sits still</title>
      <link>https://manueluberti.eu/posts/2018-10-31-elephant/</link>
      <pubDate>Wed, 31 Oct 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-10-31-elephant/</guid>
      <description>&lt;p&gt;Cinema is a mixed bag of aesthetics, a complex blend of visual art, technology,
sound design, and theatre. It encourages an infinite set of ideas and ideals,
whether hidden or in plain sight. It doesn&amp;rsquo;t matter if there is a powerful
company or an independent artist behind a film. Moral and ethic values,
political dynamics and concerns are all always at play.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2018-10-31-an_elephant_sitting_still_still.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;An Elephant Sitting Still (Hu Bo, 2018)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Like every other film industry in the world, China&amp;rsquo;s invests tons of money in
blockbusters which more often than not resembles tests of the latest discovery
in special effects. Just as Hollywood has been capitalising on comic book heroes
in the last years, China has found &lt;em&gt;wuxia&lt;/em&gt; to be a lucrative genre. Exceptional
authors like Tsui Hark and Stephen Chow have been deliberately limiting
themselves, constraining their art into predetermined boundaries. Chow is now
one of the most powerful man in China&amp;rsquo;s film establishment, so maybe everything
is going fine for him.&lt;/p&gt;
&lt;p&gt;However, China, again like the rest of the world, has its fair share of
independent directors who have been telling a different story since the late
90s. Jia Zhangke, Diao Yinan, and more recently Wang Bing are names that score
big at film festivals, but they are a nuisance to their country&amp;rsquo;s film realm.
They show the uncomfortable faces of China, the cities, the streets, and the
outcasts nobody wants to see. The failures the central government refuses to
acknowledge are as part of China&amp;rsquo;s history as everything else. Somebody must
tell of these failures. Someone has to care.&lt;/p&gt;
&lt;p&gt;I can only guess Hu Bo felt as a nuisance for his country too, although
it&amp;rsquo;s hard to tell from a safe distance what has led him to end his life. The
short film &lt;em&gt;Man in the Well&lt;/em&gt; and the outstanding &lt;em&gt;An Elephant Sitting Still&lt;/em&gt;
undoubtedly place him in the group of artists China chooses to cast aside, but
they also show Hu Bo&amp;rsquo;s inner battles. Is there a place for me here? Will this
country ever move forward for everyone and not just for a few? What will it
cost? What am I supposed to do in China, here and now?&lt;/p&gt;
&lt;p&gt;Intersecting four different stories, &lt;em&gt;An Elephant Sitting Still&lt;/em&gt; poses these
questions without offering answers. They are left open because it takes too much
to reply, even though the chance of an answer eventually is an hopeful sound.
The two final static shots culminate with the sound the characters are waiting
for. Too little, because they don&amp;rsquo;t get to see what they are looking for. And
yet something to look forward to, like the flash of a light in a never-ending
tunnel.&lt;/p&gt;
&lt;p&gt;Except that this is a light that doesn&amp;rsquo;t come easy. It takes almost four hours
to Hu Bo to bring his protagonists there. They have to endure a day in which
they are constantly confronted with the weight of their decisions. They are at
turns victims and oppressors, predators and preys, unable to truly escape a
system so far above them to be properly understood and dealt with. There is a
sense of impeding catastrophe every time we see them walking down a street, but
the war is in their heart more than anywhere else. They know what has to be done
only because there is nothing left to be done. Circumstances they cannot handle,
accidents out of proportion. Everything eludes their control.&lt;/p&gt;
&lt;p&gt;The intimacy of the long takes is absolutely stunning. Not only we are
physically closer to these people, we are facing their reactions to the events
on the front line. With the exception of the two above mentioned ending shots,
the camera narrows everything down to a limited space. We can then sense the
claustrophobic buildings, the unstoppable decay, the solitude that never leaves
anyone in this world. Editing makes these sensations even stronger, since it
rarely concedes room to breathe. To digest what has just happened, we can only
wait until the next portion of the story starts.&lt;/p&gt;
&lt;p&gt;Hu Bo shots everything smoothly, avoiding a shaking, hand-held camera and opting
for a gentle Steadicam instead. This solution eschews the diary and the
found-footage mood, whilst striking the perfect balance between the personal
take on the events (we see what Hu Bo wants us to see) and the objective truth
(no embellishment, this is exactly how it goes). Hu Bo is paying homage to the
masters of the Sixth Generation of Chinese Cinema and at the same time moving
away from them, following a path we will never know where it would have led him
to.&lt;/p&gt;
&lt;p&gt;Ultimately, &lt;em&gt;An Elephant Sitting Still&lt;/em&gt; represents what China is now.
A contradictory clash of realities, where the overbearing economy of the
capitalist side of communism is destroying everyone who isn&amp;rsquo;t able to keep up.
China cannot afford to sit still unless it&amp;rsquo;s ready to accept the lives of its
people. Hu Bo knew it much too well.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Handy sudoing in Fish</title>
      <link>https://manueluberti.eu/posts/2018-10-27-sudo-fish/</link>
      <pubDate>Sat, 27 Oct 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-10-27-sudo-fish/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s been more than a year and a half now since I moved from Zsh to
&lt;a href=&#34;https://fishshell.com/&#34;&gt;Fish&lt;/a&gt;, and I am still amazed by how smooth and simple
it made my everyday workflow.&lt;/p&gt;
&lt;p&gt;One little trick I&amp;rsquo;ve been taking with me from my Bash days is aliasing &lt;code&gt;sudo&lt;/code&gt;
to &lt;code&gt;_&lt;/code&gt;. There are a lot of commands I need to run via &lt;code&gt;sudo&lt;/code&gt;, and typing one
character instead of four makes it obviously quicker. But what if I already
started to write a command which needs proper privileges and forgotten about
that precious &lt;code&gt;sudo&lt;/code&gt;?&lt;/p&gt;
&lt;p&gt;Lukas Stabe fixed it for me, &lt;a href=&#34;https://github.com/fish-shell/fish-shell/issues/288#issuecomment-158704275&#34;&gt;years
ago&lt;/a&gt;.
First, let&amp;rsquo;s add his &lt;code&gt;prepend_command&lt;/code&gt; to
&lt;code&gt;~/.config/fish/functions/prepend_command.fish&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-fish&#34;&gt;function prepend_command
    set -l prepend $argv[1]
    if test -z &amp;quot;$prepend&amp;quot;
        echo &amp;quot;prepend_command needs one argument.&amp;quot;
        return 1
    end

    set -l cmd (commandline)
    if test -z &amp;quot;$cmd&amp;quot;
        commandline -r $history[1]
    end

    set -l old_cursor (commandline -C)
    commandline -C 0
    commandline -i &amp;quot;$prepend &amp;quot;
    commandline -C (math $old_cursor + (echo $prepend | wc -c))
end
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, it&amp;rsquo;s only a matter of adding a key binding to
&lt;code&gt;~/.config/fish/functions/fish_user_key_bindings.fish&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-fish&#34;&gt;function fish_user_key_bindings
    fish_default_key_bindings

    # Prepend sudo with C-s
    bind \cs &#39;prepend_command sudo&#39;
end
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now hitting &lt;code&gt;Ctrl-s&lt;/code&gt; anywhere in the command I am typing immediately
adds &lt;code&gt;sudo&lt;/code&gt; at the beginning of the line.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;prepend_command&lt;/code&gt; comes with the benefit of mimicking the &lt;code&gt;sudo&lt;/code&gt; plugin of &lt;a href=&#34;https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/sudo/sudo.plugin.zsh&#34;&gt;Oh
My
Zsh&lt;/a&gt;.
Fish doesn&amp;rsquo;t support &lt;a href=&#34;https://fishshell.com/docs/current/faq.html#faq-history&#34;&gt;history
expansion&lt;/a&gt;, but
sometimes I just press &lt;code&gt;Enter&lt;/code&gt; before remembering to hit
&lt;code&gt;Ctrl-s&lt;/code&gt;, and that&amp;rsquo;s where I&amp;rsquo;d love some history expansion. I can hit
&lt;code&gt;Ctrl-s&lt;/code&gt; right after the malevolent &lt;code&gt;Enter&lt;/code&gt;, and have my
previous command with &lt;code&gt;sudo&lt;/code&gt; automatically prepended ready to go.&lt;/p&gt;
&lt;p&gt;If you are accustomed to the Zsh key binding, you can have it in Fish too:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-fish&#34;&gt;# Re-run previous command with sudo using ESC-ESC
bind \e\e &#39;prepend_command sudo&#39;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Time savers, believe you me.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Ferrara and the Straubs</title>
      <link>https://manueluberti.eu/posts/2018-10-21-ferrarastraubs/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-10-21-ferrarastraubs/</guid>
      <description>&lt;p&gt;Recently I found myself deeply immersed in Abel Ferrara&amp;rsquo;s and
Straub-Huillet&amp;rsquo;s cinema thanks to &lt;a href=&#34;https://letterboxd.com/neilbahadur/&#34;&gt;Neil Bahadur&amp;rsquo;s
writings&lt;/a&gt;. While Jean-Marie Straub and
Danièle Huillet are new artists in my radar, Ferrara is not a new entry. He is
kind of an old friend I had lost track of, and approaching it now after many
years felt like discovering a different man.&lt;/p&gt;
&lt;p&gt;I entered Ferrara&amp;rsquo;s world via &lt;em&gt;New Rose Hotel&lt;/em&gt; and &lt;em&gt;The Blackout&lt;/em&gt; almost twenty
years ago, which is not the most brilliant thing to do if you are a teenager
grown up with action films and bad television. &lt;em&gt;New Rose Hotel&lt;/em&gt; came because of
my love for William Gibson, and &lt;em&gt;The Blackout&lt;/em&gt; was highly recommended by a
friend. The latter failed to amuse me, but I was instantly mesmerized by &lt;em&gt;New
Rose Hotel&lt;/em&gt;. And yet, somehow I have steered clear of Abel Ferrara until
recently. All considered, I did the right thing back then. Time has only
deepened my passion for cinema, and I can now approach Ferrara with a
reinvigorated mind.&lt;/p&gt;
&lt;p&gt;On the other hand, I had never heard of Jean-Marie Straub and Danièle Huillet up
until last summer. Surely a shame, but also wisdom in disguise. Just as with
Ferrara, I would have never understood all the implications and the reasoning
behind Straub-Huillet&amp;rsquo;s films with my poor knowledge of the historical context
they started working in. Why the horizontal camera pans? Why are the characters
standing and declaiming lines? Is this even narration? &lt;em&gt;From the Clouds to the
Resistance&lt;/em&gt;, the first one I saw, moved me instantly and prompted me to reach
further in their career. Some questions are still unanswered, but one film at a
time I have been discovering two of the most important film makers I have ever
encountered.&lt;/p&gt;
&lt;p&gt;There isn&amp;rsquo;t much in common between the Straubs and Ferrara in terms of stylistic
choices. What they do share is a relentless eye on the many ramifications of
history and how everything that has happened still resonates with us today.&lt;/p&gt;
&lt;p&gt;Where the Straubs radicalise the construction of images using landscapes and
surroundings as silent yet durable spectators of history and their characters&#39;
reasoning, Ferrara moves his works by what Nicole Brenez describes as &lt;em&gt;lack&lt;/em&gt;.
This absence has had multiple faces throughout his career.&lt;/p&gt;
&lt;p&gt;In &lt;em&gt;Napoli, Napoli, Napoli&lt;/em&gt; it wears the humanism mask. By using it to tell us
about the city and all its contradictions, Ferrara mirrors society back to us in
the same way the Straubs return contemporaneity by exploring others&amp;rsquo; texts. In
&lt;em&gt;Go Go Tales&lt;/em&gt; the camera swings delicately through the ruins of capitalism,
putting us in the same position Huillet and Straub do in &lt;em&gt;Antigone&lt;/em&gt;. We are the
hesitant watchers as history plays the inevitability game in front of us. We
don&amp;rsquo;t move, we don&amp;rsquo;t intervene. We undergo.&lt;/p&gt;
&lt;p&gt;Moreover, we hardly learn. Both &lt;em&gt;Fortini/Cani&lt;/em&gt; and &lt;em&gt;Pasolini&lt;/em&gt; not only plainly
describe what went wrong, but question what is going on right now. The Straubs,
by way of Franco Fortini&amp;rsquo;s book &lt;em&gt;I Cani del Sinai&lt;/em&gt;, deplore everything from
modern political systems to fascism and racism. Democracy is at stake, we have
to act and make it right since evidently it didn&amp;rsquo;t turn out to be what we hoped
for.&lt;/p&gt;
&lt;p&gt;Similarly, Ferrara&amp;rsquo;s delicate ode to Pier Paolo Pasolini captures Pasolini&amp;rsquo;s
prescient words about the dangers in front of us. Somehow he knew we shouldn&amp;rsquo;t
have gone down the road Italy was about to take. He knew, much as Franco Fortini
and the Straubs, the need for an immediate change. Sadly, he was right.&lt;/p&gt;
&lt;p&gt;Abel Ferrara and Straub-Huillet are pure, rare breed. They invest all of
themselves in their cinema, believing in it with lucid stubbornness, and paying
the price for it too. They are neither marginal nor at the margin. They are
right in the middle of the storm, pointing their eyes at us.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Rollerland</title>
      <link>https://manueluberti.eu/posts/2018-09-20-rollerland/</link>
      <pubDate>Thu, 20 Sep 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-09-20-rollerland/</guid>
      <description>&lt;p&gt;Much as any cinephile out there, I have my ugly share of preconceptions. I try
to hide them most of the times, but describing my approach to cinema as
immaculate would be flat-out lying. For instance, it takes a good number of
trustworthy reviews to get me to watch a Sundance Film Festival winner. Possibly
worse, it&amp;rsquo;s nearly impossible to convince me to sit and enjoy the latest hyped
TV series.&lt;/p&gt;
&lt;p&gt;A similar bias has kept me away from Drew Barrymore&amp;rsquo;s &lt;em&gt;Whip It&lt;/em&gt; for a long time.
Without even giving Barrymore a chance, I skipped her directorial debut in 2009
with a smug glow of irony on my face, and forgot about it until recently. Not
being a particular fan of Barrymore&amp;rsquo;s acting career, I thought &lt;em&gt;Whip It&lt;/em&gt; would
be a far less than spectacular work. Gladly, it turns out I&amp;rsquo;d better overcome my
stupid ideas soon, and let cinema speak for itself.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Whip It&lt;/em&gt; is the story of the hopes and chances of Bliss Cavendar, a teenage
girl feeling out of place and out of time. Since I know the feeling very well,
this is immediately relatable, so it&amp;rsquo;s easy for &lt;em&gt;Whip It&lt;/em&gt; to pull me in and
never let me go. I chose cinema and computing to deal with reality in my younger
days, but since Bliss is braver and smarter than me, she opts for sport and
teamwork instead.&lt;/p&gt;
&lt;p&gt;I can relate to Bliss just by looking at her marvelling when she first sees some
girls skate-rolling their way to a shop counter. Barrymore captures on Ellen
Page the exact feeling of wonder that conquered me when I coded simple
animations in Turbo Pascal back in secondary school. Right there with you,
Bliss.&lt;/p&gt;
&lt;p&gt;This is where &lt;em&gt;Whip It&lt;/em&gt; really shines. Not in the conventional, albeit lovable
plot. Not in the furious matches, although the way Barrymore handles the tension
and especially the failures is really captivating. &lt;em&gt;Whip It&lt;/em&gt; does its best
pretty much in the same field Greg Mottola&amp;rsquo;s &lt;em&gt;Adventureland&lt;/em&gt;, the other great
coming of age of 2009, does. Both films, in wonderfully different ways, explore
what it means to become adult and independent. By means of sport passion and
romance respectively, Barrymore and Mottola use a light dose of humour to place
the heavy burden of adulthood on their protagonists&amp;rsquo; shoulders.&lt;/p&gt;
&lt;p&gt;Mottola&amp;rsquo;s James Brennan is too young to be adult, and too adult to be young.
Socially inept, James finds a role model in Mike Connell, the park maintenance
man that everyone loves. He looks up to him, opens up to him, and keeps admiring
him even after the pretty mask starts showing its cracks. The failure of
Connell&amp;rsquo;s macho act is vital to James&amp;rsquo; experience. He is now confronted with one
of the many bad faces of a grown-up, and eventually he resorts to be as
different as possible from it. Mottola works the virile bonding between James
and Connell with subtlety, infusing tenderness to the very end. The last time
James looks at Connell flirting with a bunch of girls, his eyes reveal
everything we need to know about his opinion of his role model. James knows who
he will not want to be, now.&lt;/p&gt;
&lt;p&gt;Bliss has her own role models too, but she is apparently the only one regarding
them with admiration. It&amp;rsquo;s interesting to notice that the Hurl Scouts act tough
to hide something in their life, much as Connell does in &lt;em&gt;Adventureland&lt;/em&gt;. Also,
the Hurl Scouts are misfits, and they become popular only on the roller derby
track, something similar to Connell&amp;rsquo;s popularity within the boundaries of the
park. Both the Hurl Scouts and Connell are older than our protagonists, but not
as older as their parents. This is crucial, because the Hurl Scouts and Connell
represent an ageing step closer to Bliss&amp;rsquo; and James&amp;rsquo; age, which means they can
see what life is going to hand them in the next few years if they follow their
models much too close.&lt;/p&gt;
&lt;p&gt;Whereas the relation between James and Connell always shows an intangible
distance, Bliss fits naturally among the skate-rollers. This probably tells more
about teamwork than of the strengths of Bliss&amp;rsquo; and James&amp;rsquo; social skills, but
there is an alpha male component in James and Connell which plagues their way to
Emily Lewin&amp;rsquo;s heart and keeps them hopelessly apart. The Hurl Scouts share a
passion that can be as brutal and painful physically as love hurts
psychologically, and yet agonistic competition never poses a threat to their
friendship. Another valuable life lesson here: leave the pedestal if you want
honesty from the people around you.&lt;/p&gt;
&lt;p&gt;In the end, Bliss convinces her parents of the sincerity of her passion, and
James finds his way to Emily. These happy endings conclude two incredibly
formative experiences, and more importantly take some of our characters&#39;
innocent youth away from them. They are not adult yet, but they had a glimpse of
what it means to be one.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Rachel Getting Married</title>
      <link>https://manueluberti.eu/posts/2018-09-10-rachelgettingmarried/</link>
      <pubDate>Mon, 10 Sep 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-09-10-rachelgettingmarried/</guid>
      <description>&lt;p&gt;A couple of days ago, I had the Blu-ray of &lt;em&gt;Rachel Getting Married&lt;/em&gt; on while
cooking dinner. It kept me company, and, even though I know it pretty well by
now, it often took me away from the kitchen just to enjoy a particular sequence
one more time. The next day I went back to &lt;a href=&#34;https://thefilmstage.com/features/rachel-getting-married-and-the-first-person-humanism-of-jonathan-demme/&#34;&gt;Willow Maclay&amp;rsquo;s
piece&lt;/a&gt;
for The Film Stage and &lt;a href=&#34;http://www.thecinephiliacs.net/2017/05/this-american-life-remembering-jonathan.html&#34;&gt;The Cinephiliacs&amp;rsquo; episode on Jonathan
Demme&lt;/a&gt;
to revisit the thoughts of my favourite film critics on my favourite Demme&amp;rsquo;s.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2018-09-10-rachel_getting_married.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Rachel Getting Married (Jonathan Demme, 2008)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;For a film-maker as prolific and accustomed to different genres as Jonathan
Demme, &lt;em&gt;Rachel Getting Married&lt;/em&gt; still stands out as one of a kind in his oeuvre.
Demme is not new to family drama and traumatic events in one&amp;rsquo;s life (e.g.,
Clarisse Starling&amp;rsquo;s past in &lt;em&gt;The Silence of the Lambs&lt;/em&gt;), or to strong but
vulnerable women (e.g., Lulu in &lt;em&gt;Something Wild&lt;/em&gt;). He explored his characters
minds and the ways we can relate and cope with them by let them facing the
camera and opened up to us. Willow Maclay writes about Demme&amp;rsquo;s humanism in the
above mentioned essay, and that is a trait of his cinema that spans over his
entire career.&lt;/p&gt;
&lt;p&gt;However, in &lt;em&gt;Rachel Getting Married&lt;/em&gt; Demme reaches out for a new form of his
humanism. Aided by the outstanding cinematography of Declan Quinn and the
turbulent script of Jenny Lumet, Demme digs deeper than ever in the psyche of
his female lead. Kym, portrayed by the best Anne Hathaway to date, is the
subject of constant observation and judgement everywhere she goes. This is not
only a modern mirror of our privacy-deprived lives, but to a certain extent is
the peak of Demme&amp;rsquo;s psychological explorations of his characters.&lt;/p&gt;
&lt;p&gt;The camera in &lt;em&gt;Rachel Getting Married&lt;/em&gt; invades spaces, inquisitively moves in and
out of rooms and buildings, capturing and exposing actions and thoughts. It
asks, even demands, attention from everyone. Secrecy is nowhere to be found,
because the camera is a fierce and poignant extension of the spectator. It is as
if we are rushing in with no desire of missing anything, while perfectly at ease
with the fact that we will surely lose something on our way.&lt;/p&gt;
&lt;p&gt;Demme holds us closer to the lives on the screen like he has never done before.
Here conversations, confessions, and reactions are not displayed in terms of an
actress seemingly talking to us. They literally happen around us, just a turn of
the head away. And there is always something going on at the periphery of our
eyes and ears in &lt;em&gt;Rachel Getting Married&lt;/em&gt;. Everywhere in the Buchman&amp;rsquo;s house
people are getting ready for the wedding and playing music, talking, and
laughing. According to the Q&amp;amp;A on the Blu-ray, sometimes they don&amp;rsquo;t even know
the camera is there. This adds a level of uncompromising truth to the general
video-diary vibe that makes it possibly more personal and familiar than it
already feels.&lt;/p&gt;
&lt;p&gt;The resulting experience becomes especially hurtful when we recognise
Kym&amp;rsquo;s desperate attempts to gain back the love of her family, and realise that
we can do nothing. No matter how close to her we are put, we can never give her
the much needed comfort. On the other hand, it&amp;rsquo;s an experience that enhances
those precious moments of joy which rarely appear but prove fundamental at
keeping everybody together. Including us.&lt;/p&gt;
&lt;p&gt;Like in any other Jonathan Demme&amp;rsquo;s film, music is itself a character in the
story. Various cultures meet in a clash of races and genders, culminating in a
showcase of music and dance that encompasses different styles. Nevertheless,
this is not a tentative approach at portraying folklore and heritage with a
humanist touch, since there is a documentarian side of Demme that deals with it.
In &lt;em&gt;Rachel Getting Married&lt;/em&gt; he lets the musicians speak for themselves, leaving
them in front of the camera apparently in full control of their playing. Their
emotions are honestly genuine, and every musical burst looks as natural as
anything else in this film. Demme loves his music just as much as he loves
engaging with issues of reconciliation and forgiveness. He has always used great
music in his films, but the mere fact that musicians in &lt;em&gt;Rachel Getting Married&lt;/em&gt;
are caught in the act of playing live is telling of his respect and appreciation
for them.&lt;/p&gt;
&lt;p&gt;Now that he is no longer with us I like to imagine him with a camera still
following the lives of the people he cares about, with music always in the air
and that contagious smile of his. Somewhere, somehow, he is telling a story
I wish I could see.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Time and Hat</title>
      <link>https://manueluberti.eu/posts/2018-08-20-timeandhat/</link>
      <pubDate>Mon, 20 Aug 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-08-20-timeandhat/</guid>
      <description>&lt;p&gt;After watching Michael Mann&amp;rsquo;s &lt;em&gt;Blackhat&lt;/em&gt; again last night, I looked around the
internet to check what other people think about it. I remembered some were
utterly disappointed by it, even frustrated, but others seemed to share my
passion.&lt;/p&gt;
&lt;p&gt;As it often happens in film criticism, critics draw comparison with other works
when writing on a specific film. For instance, Keith Uhlich on &lt;a href=&#34;http://reverseshot.org/reviews/entry/1989/blackhat&#34;&gt;Reverse
Shot&lt;/a&gt; notices similarities
between &lt;em&gt;Blackhat&lt;/em&gt; and &lt;em&gt;Eyes Wide Shut&lt;/em&gt; in terms of unsettling dialogues.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Performance-wise this is one of Mann&amp;rsquo;s strangest movies, cultivating a
dead-air hesitancy in almost every dialogue exchange, the likes of which I
haven&amp;rsquo;t experienced since Kubrick&amp;rsquo;s Eyes Wide Shut (1999).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;David Ehrlich on
&lt;a href=&#34;https://letterboxd.com/davidehrlich/film/blackhat/&#34;&gt;Letterboxd&lt;/a&gt; points at
Johnnie To:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;BLACKHAT is Michael Mann&amp;rsquo;s Johnnie To movie.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;However, nobody, at least to my knowledge, links &lt;em&gt;Blackhat&lt;/em&gt; to Tsui Hark&amp;rsquo;s &lt;em&gt;Time
And Tide&lt;/em&gt;. This is not to say that Mann had Tsui in mind when devising his
superb cyber-thriller, but there are interesting aspects of &lt;em&gt;Time And Tide&lt;/em&gt; that
Mann seems to explore with his style.&lt;/p&gt;
&lt;p&gt;Both films abstract the narrative away, using it only to provide a model upon
which building a complex interplay of camera movements, editing and sounds.
Characters have little to no background, dropped in occasionally for context
sake. Relationships are a thin layer, and romance though a driving force is
instrumental to the courses of action and not the ultimate ending.&lt;/p&gt;
&lt;p&gt;Mann and Tsui use the camera to deconstruct the action instead of creating it.
Our eyes are placed under the keys of a keyboard in &lt;em&gt;Blackhat&lt;/em&gt; and inside a
washing machine in &lt;em&gt;Time And Tide&lt;/em&gt;. And yet we always know where we are, we
never lose the sense of what is happening inside and outside the frame. We
follow the camera and not the characters, we are moved by the editing and not by
the plot.&lt;/p&gt;
&lt;p&gt;Sounds are the last piece of the puzzle here. Clicks, footsteps, ambient noises,
collateral damages. We are surrounded not by the blast of the guns, but by a
vibrant environment. A living, breathing space with its voices and its echoes.
The scene embraces us, the images are constantly interrogating us.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Blackhat&lt;/em&gt; and &lt;em&gt;Time And Tide&lt;/em&gt; rank among the most experimental works of Michael
Mann and Tsui Hark respectively. If it&amp;rsquo;s true that Tsui was already trying new
paths in his 1995 masterpiece &lt;em&gt;The Blade&lt;/em&gt;, it&amp;rsquo;s also true that he has gone down
different roads eventually. Mann, on the other hand, has been perfecting his
abstractions over and over again, finally reaching the point where he is able to
leave us only with an interface to his model of cinema.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Moving to Figwheel Main</title>
      <link>https://manueluberti.eu/posts/2018-08-03-figwheel-main/</link>
      <pubDate>Fri, 03 Aug 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-08-03-figwheel-main/</guid>
      <description>&lt;p&gt;If you are a Clojure/ClojureScript programmer, you know &lt;a href=&#34;https://github.com/bhauman&#34;&gt;Bruce
Hauman&lt;/a&gt; and chances are he is one of your personal
heroes. If you are not already in love with him, just watch his &lt;a href=&#34;https://www.youtube.com/watch?v=j-kj2qwJa_E&#34;&gt;awesome talk on
Figwheel&lt;/a&gt; and join the club.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/bhauman/lein-figwheel&#34;&gt;Figwheel&lt;/a&gt; changed the way I work with
ClojureScript with prompt live code reloading and REPL interaction, greatly
enhancing my web-application development.&lt;/p&gt;
&lt;p&gt;Bruce pushed Figwheel further when he unveiled &lt;a href=&#34;https://github.com/bhauman/figwheel-main&#34;&gt;Figwheel
Main&lt;/a&gt;, a complete re-write of Figwheel
compatible both with Leiningen and the new &lt;a href=&#34;https://clojure.org/guides/deps_and_cli&#34;&gt;Clojure CLI
tools&lt;/a&gt;. I have resisted the urge to try
it for a while, but then I remembered I have my own battleground for
experimenting and learning Clojure wonders:
&lt;a href=&#34;https://sr.ht/~manuel-uberti/boodle/&#34;&gt;boodle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I have decided to stay with Leiningen for now, but I may move to a full
&lt;code&gt;clj&lt;/code&gt; and &lt;code&gt;deps.edn&lt;/code&gt; setup in the future.&lt;/p&gt;
&lt;p&gt;The first thing to change in order to accommodate Figwheel Main is my
&lt;code&gt;project.clj&lt;/code&gt;. A new version of ClojureScript is necessary:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;:dependencies
[ ;; … more dependencies …
  [org.clojure/clojurescript &amp;quot;1.10.312&amp;quot;]
  ;; … more dependencies …
]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, new values for &lt;code&gt;:source-paths&lt;/code&gt; and &lt;code&gt;:resource-paths&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;:source-paths [&amp;quot;src/clj&amp;quot; &amp;quot;src/cljs&amp;quot;]
:resource-paths [&amp;quot;target&amp;quot; &amp;quot;resources&amp;quot;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As the Figwheel Main README suggests, let&amp;rsquo;s add a couple of useful aliases:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;:aliases
  {&amp;quot;fig&amp;quot; [&amp;quot;trampoline&amp;quot; &amp;quot;run&amp;quot; &amp;quot;-m&amp;quot; &amp;quot;figwheel.main&amp;quot;]
   &amp;quot;build&amp;quot; [&amp;quot;trampoline&amp;quot; &amp;quot;run&amp;quot; &amp;quot;-m&amp;quot; &amp;quot;figwheel.main&amp;quot; &amp;quot;-b&amp;quot; &amp;quot;boodle&amp;quot;]}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And the actual Figwheel Main dependencies:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;:profiles
  {:dev
   {:dependencies [[binaryage/devtools &amp;quot;0.9.10&amp;quot;]
                   [cider/piggieback &amp;quot;0.3.8&amp;quot;]
                   [com.bhauman/figwheel-main &amp;quot;0.1.4&amp;quot;]
                   [com.bhauman/rebel-readline-cljs &amp;quot;0.1.4&amp;quot;]
                   [figwheel-sidecar &amp;quot;0.5.16&amp;quot;]]
    :repl-options {:nrepl-middleware [cider.piggieback/wrap-cljs-repl]}}}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I still want &lt;a href=&#34;https://github.com/emezeske/lein-cljsbuild&#34;&gt;lein-cljsbuild&lt;/a&gt; for a
production-ready build, so I can just simplify the &lt;code&gt;:build&lt;/code&gt; map:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;:cljsbuild
  {:builds
   {:min
    {:source-paths [&amp;quot;src/cljs&amp;quot;]
     :compiler {:main boodle.core
                :output-to &amp;quot;target/public/cljs-out/boodle-main.js&amp;quot;
                :asset-path &amp;quot;target/public/cljs-out/boodle&amp;quot;
                :optimizations :simple
                :pretty-print false}}}}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With &lt;code&gt;project.clj&lt;/code&gt; ready, I move to &lt;code&gt;boodle.cljs.edn&lt;/code&gt;. This is what Figwheel
Main needs to know the entry point of my application:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;{:main boodle.core}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Following the instructions, I also customize some options in
&lt;code&gt;figwheel-main.edn&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;{:watch-dirs [&amp;quot;src/cljs&amp;quot;]
 :css-dirs [&amp;quot;resources/public/css&amp;quot;]
 :open-url false}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Refer to the
&lt;a href=&#34;https://github.com/bhauman/figwheel-main/blob/master/doc/figwheel-main-options.md&#34;&gt;documentation&lt;/a&gt;
to see what other options are available.&lt;/p&gt;
&lt;p&gt;The last change I have to make is in my index page. Figwheel Main outputs the
compiled JavaScript file in &lt;code&gt;target/public/cljs-out/boodle-main.js&lt;/code&gt;, so I only
need to modify the reference to it:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;(hiccup/include-js &amp;quot;cljs-out/boodle-main.js&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now it&amp;rsquo;s enough to run &lt;code&gt;lein build&lt;/code&gt; and &lt;code&gt;lein run&lt;/code&gt; from the project root
directory.&lt;/p&gt;
&lt;p&gt;However, since &lt;a href=&#34;https://github.com/clojure-emacs/cider&#34;&gt;CIDER&lt;/a&gt; is a vital
component of my daily workflow, I set it up in &lt;code&gt;.dir-locals.el&lt;/code&gt; to run
&lt;code&gt;figwheel-main&lt;/code&gt; on &lt;code&gt;C-c C-x j m&lt;/code&gt;. This will automatically launch a
Clojure REPL and a ClojureScript REPL when CIDER starts:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(cider-default-cljs-repl . figwheel-main)
(cider-figwheel-main-default-options . &amp;quot;:boodle&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&amp;rsquo;s it. Welcome Figwheel Main and, of course, a huge “thank you!” to Bruce Hauman for the
superb work.&lt;/p&gt;
&lt;p&gt;If you want to know more, &lt;code&gt;boodle&lt;/code&gt; is available on
&lt;a href=&#34;https://sr.ht/~manuel-uberti/boodle/&#34;&gt;SourceHut&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Re-implementing boodle database layer</title>
      <link>https://manueluberti.eu/posts/2018-07-15-honeysql/</link>
      <pubDate>Sun, 15 Jul 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-07-15-honeysql/</guid>
      <description>&lt;p&gt;When I wrote &lt;a href=&#34;https://manueluberti.eu/posts/2017-11-26-boodle/&#34;&gt;boodle&lt;/a&gt;, I didn&amp;rsquo;t think the
database layer thoroughly. The model was simple enough to figure out: one
namespace for each table. However, I stuck the queries at the top of these
namespaces, using plain strings to compose them.&lt;/p&gt;
&lt;p&gt;A working solution, yes, but far from being optimal. Let&amp;rsquo;s be honest: it&amp;rsquo;s just
plain ugly and prone to error. White spaces, characters to escapes. Not a mess,
but neither a smooth ride.&lt;/p&gt;
&lt;p&gt;At 7bridges I recently had the chance to play with Honey SQL. At first I wrongly
mistook it for syntactic sugar. A DSL on top of SQL? The horrors of ORM sprang
to mind in a rush of anxiety, but I set aside my fears and gave it a chance
anyway.&lt;/p&gt;
&lt;p&gt;It took me ten minutes to fall in love with &lt;code&gt;honeysql&lt;/code&gt;. And turning to &lt;code&gt;boodle&lt;/code&gt;
for a proper refactoring was the following thought.&lt;/p&gt;
&lt;p&gt;A quick example of how prettier queries are now:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;(defn select-aims-with-transactions
  []
  (-&amp;gt; (hh/select :a.id [:a.name :aim] :a.target :t.amount)
      (hh/from [:transactions :t])
      (hh/right-join [:aims :a] [:= :a.id :t.id_aim])
      (hh/where [:= :a.achieved false])
      hc/build
      db/query))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;No strings, no white spaces, no escaping characters and quoting values. Heaven.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;honeysql&lt;/code&gt; is also extensible, which makes it simple to add support for
operators.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;(:require [honeysql.format :as fmt])

;; … other code …

(defmethod fmt/fn-handler &amp;quot;ilike&amp;quot; [_ col qstr]
  (str (fmt/to-sql col) &amp;quot; ilike &amp;quot; (fmt/to-sql qstr)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;During the refactoring process, I noticed something else that needed a better
solution: dates.&lt;/p&gt;
&lt;p&gt;I was relying on PostgreSQL &lt;code&gt;TO_DATE&lt;/code&gt; to format my dates in the queries.
&lt;code&gt;honeysql&lt;/code&gt; is database-agnostic, so it pushed me to look for a better option.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;(:require [java-time :as jt])

;; … other code …

(extend-protocol jdbc/IResultSetReadColumn
  Date
  (result-set-read-column [v _ _]
    (-&amp;gt; v
        jt/local-date
        ud/format-date))

  Timestamp
  (result-set-read-column [v _ _]
    (-&amp;gt; v
        jt/local-date
        ud/format-date)))
        
(extend-protocol jdbc/ISQLValue
  java.time.LocalDateTime
  (sql-value [v] (jt/sql-timestamp v))
  java.time.LocalDate
  (sql-value [v] (jt/sql-timestamp v)))
        
;; … other code …
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;format-date&lt;/code&gt; is just a utility function:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;(:require [java-time :as jt])

;; … other code …

(defn format-date
  &amp;quot;Return `date` in dd/MM/yyyy format.&amp;quot;
  [date]
  (jt/format &amp;quot;dd/MM/yyyy&amp;quot; date))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you have any experience with Java, you know dealing with dates and times had
not been a piece of cake before Java 8. I briefly mentioned &lt;code&gt;LocalDate&lt;/code&gt; when
reporting on my experience with &lt;a href=&#34;https://manueluberti.eu/posts/2016-10-22-java8-experience/&#34;&gt;Java 8&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now that I am working with Clojure, dates and times strike back. And thanks to
Vadim Platonov, I can safely use Java 8 Date-Time API with
&lt;a href=&#34;https://github.com/dm3/clojure.java-time&#34;&gt;clojure.java-time&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Through the lands of static typing</title>
      <link>https://manueluberti.eu/posts/2018-06-14-haskellprogress/</link>
      <pubDate>Thu, 14 Jun 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-06-14-haskellprogress/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2017-12-08-learninghaskell/&#34;&gt;Last December&lt;/a&gt; I started my own trip
towards Haskell, jumping in with much enthusiasm and curiosity. The &lt;em&gt;Haskell
Book&lt;/em&gt; has been the perfect companion, and since chapter 12 just ended I would
like to write about my progress with this wonderful programming language.&lt;/p&gt;
&lt;p&gt;A new house and everything that comes with it gleefully slowed me down on my
studies, but Haskell has never left me alone during these months. The Haskell
Book is really excellent at guiding me one concept at a time, and I am finally
beginning to understand the benefits of static typing.&lt;/p&gt;
&lt;p&gt;Coming from Clojure made the first chapters pretty straightforward. This is not
to Haskell detriment, of course. It just felt good to be able to reason about
lists, recursions, and folds without too much of an effort. Types and
typeclasses is where the real fun began, and I can say so far so good.
Specifying the type of every function, even when it can be safely omitted, is
simple and useful, and it is helping me get a better grasp of the power of
static typing.&lt;/p&gt;
&lt;p&gt;I must admit writing datatypes scared me at first. Years of Java developing
spoiled me on classes and objects, and I swear those datatypes &lt;em&gt;seemed&lt;/em&gt; classes
to my object-oriented eyes. Shame on me. Kinds and &lt;em&gt;higher-kinded&lt;/em&gt; types deserve
further study, though. I can write my on datatypes now, albeit trivial ones, but
&lt;em&gt;types of type constructors&lt;/em&gt; deserve deeper inquiries.&lt;/p&gt;
&lt;p&gt;There is one more thing I am really enjoying: the syntax. I know you would
expect otherwise from a Clojurist, but Haskell syntax is just lovely. It&amp;rsquo;s maths
all over again, and I am in love with it just as much as I love my parenthesis.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s it for now. Monads, here I come.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>What’s the theme?</title>
      <link>https://manueluberti.eu/posts/2018-06-01-get-colour-theme/</link>
      <pubDate>Fri, 01 Jun 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-06-01-get-colour-theme/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2018-05-25-display-version/&#34;&gt;Last time&lt;/a&gt; I explained how to display
your Emacs version with extra useful details. I closed the article saying that
there could be more interesting stuff to display, and here I am with something
new.&lt;/p&gt;
&lt;p&gt;Sometimes I happen to report &lt;a href=&#34;https://github.com/clojure-emacs/clojure-mode/issues/474&#34;&gt;missing
font-locking&lt;/a&gt; or other
small issues with faces in a mode I use. Why not have my current colour theme
name displayed along with the bits and pieces gathered in the previous article?&lt;/p&gt;
&lt;p&gt;As Steve Purcell explained &lt;a href=&#34;https://superuser.com/a/320289&#34;&gt;on StackExchange&lt;/a&gt;,
the concept of &lt;em&gt;current theme&lt;/em&gt; is a bit fuzzy in Emacs. You can have multiple
themes on at the same time, just have a look at &lt;code&gt;M-x&lt;/code&gt;
&lt;code&gt;customize-themes&lt;/code&gt;. Moreover, activating a theme means applying its settings to
the faces and variables it specifies.&lt;/p&gt;
&lt;p&gt;Thus I came up with this little function:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu--colour-theme ()
  &amp;quot;Get the currently applied colour theme.&amp;quot;
  (replace-regexp-in-string
   &amp;quot;[\t\n\r ]+&amp;quot; &amp;quot;&amp;quot;
   (let* ((command (concat &amp;quot;rg load-theme &amp;quot; user-emacs-directory))
          (res (shell-command-to-string command)))
     (nth 1 (split-string res &amp;quot;&#39;&amp;quot;)))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Basically I run &lt;code&gt;ripgrep&lt;/code&gt; in my &lt;code&gt;.emacs.d&lt;/code&gt; to get the lines containing
&lt;code&gt;load-theme&lt;/code&gt;. Obviously this will return the line in &lt;code&gt;mu–-colour-theme&lt;/code&gt; as well.
However, since I use &lt;code&gt;split-string&lt;/code&gt; with &lt;code&gt;&#39;&lt;/code&gt; as separator I can get the element
I need from the result of &lt;code&gt;ripgrep&lt;/code&gt;. &lt;code&gt;nth 1&lt;/code&gt; gives me what I am looking for:
&lt;code&gt;sanityinc-tomorrow-night&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Now I can have the active colour theme displayed in my environment details
buffer:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;;;;###autoload
(defun mu-env-info ()
  &amp;quot;Display Emacs version and system details in a temporary buffer.&amp;quot;
  (interactive)
  (let ((buffer-name &amp;quot;*env-info*&amp;quot;))
    (with-help-window buffer-name
      (with-current-buffer buffer-name
        (insert (emacs-version) &amp;quot;\n\n&amp;quot;)
        (insert &amp;quot;Repository revision: &amp;quot; emacs-repository-version &amp;quot;\n&amp;quot;)
        (when (and system-configuration-options
                   (not (equal system-configuration-options &amp;quot;&amp;quot;)))
          (insert &amp;quot;Configured using:\n&amp;quot;
                  system-configuration-options))
        (insert &amp;quot;\n\nEmacs uptime: &amp;quot; (emacs-uptime) &amp;quot;\n&amp;quot;)
        (insert &amp;quot;Colour theme: &amp;quot; (mu--colour-theme) &amp;quot;\n&amp;quot;)
        (insert &amp;quot;Operating system: &amp;quot; (mu--os-version) &amp;quot;\n&amp;quot;)
        (insert &amp;quot;Window system: &amp;quot; (getenv &amp;quot;XDG_SESSION_TYPE&amp;quot;) &amp;quot;\n&amp;quot;)
        (insert &amp;quot;Desktop environment: &amp;quot; (mu--gnome-version))))))
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    <item>
      <title>A fancy Emacs version</title>
      <link>https://manueluberti.eu/posts/2018-05-25-display-version/</link>
      <pubDate>Fri, 25 May 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-05-25-display-version/</guid>
      <description>&lt;p&gt;If you like to play diligently and kindly with the Emacs community, you will end
up reporting bugs or asking for new features to your favourite package
maintainers.&lt;/p&gt;
&lt;p&gt;My skills at bug reporting have improved over the years. From the angry &lt;em&gt;“it
doesn&amp;rsquo;t work, man!!1!”&lt;/em&gt; to more polite questions, I am always looking for better
reports to help debug and solve the problems I encounter.&lt;/p&gt;
&lt;p&gt;Usually, package maintainers ask you to reproduce the bug in a clean &lt;code&gt;emacs -Q&lt;/code&gt;
environment. And that&amp;rsquo;s good. But they are also happy when you provide as much
information as possible about the system you are using.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s why I came up with a custom function to gather details about my Emacs
version and where I am running it. It all started with &lt;a href=&#34;https://emacs.stackexchange.com/questions/35497/does-emacs-have-an-option-to-display-build-settings/35500#35500&#34;&gt;this
answer&lt;/a&gt;
from Drew Adams on Emacs StackExchange. His code does way much more than I need,
though, so I stripped down the inessential and turned everything into this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu--os-version ()
  &amp;quot;Call `lsb_release&#39; to retrieve OS version.&amp;quot;
  (replace-regexp-in-string
   &amp;quot;Description:\\|[\t\n\r]+&amp;quot; &amp;quot;&amp;quot;
   (shell-command-to-string &amp;quot;lsb_release -d&amp;quot;)))

(defun mu--gnome-version ()
  &amp;quot;Call `gnome-shell&#39; to retrieve GNOME version.&amp;quot;
  (replace-regexp-in-string
   &amp;quot;[\t\n\r]+&amp;quot; &amp;quot;&amp;quot;
   (shell-command-to-string &amp;quot;gnome-shell --version&amp;quot;)))

;;;###autoload
(defun mu-display-version ()
  &amp;quot;Display Emacs version and system details in a temporary buffer.&amp;quot;
  (interactive)
  (let ((buffer-name &amp;quot;*version*&amp;quot;))
    (with-help-window buffer-name
      (with-current-buffer buffer-name
        (insert (emacs-version) &amp;quot;\n&amp;quot;)
        (insert &amp;quot;\nRepository revision: &amp;quot; emacs-repository-version &amp;quot;\n&amp;quot;)
        (when (and system-configuration-options
                   (not (equal system-configuration-options &amp;quot;&amp;quot;)))
          (insert &amp;quot;\nConfigured using:\n&amp;quot;
                  system-configuration-options))
        (insert &amp;quot;\n\nOperating system: &amp;quot; (mu--os-version) &amp;quot;\n&amp;quot;)
        (insert &amp;quot;Window system: &amp;quot; (getenv &amp;quot;XDG_SESSION_TYPE&amp;quot;) &amp;quot;\n&amp;quot;)
        (insert &amp;quot;Desktop environment: &amp;quot; (mu--gnome-version))))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;By using &lt;code&gt;M-x&lt;/code&gt; &lt;code&gt;mu-display-version&lt;/code&gt; I now get a handy temporary
buffer with all the details I want.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/version.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;A simple &lt;code&gt;q&lt;/code&gt; will close the buffer, and I am pretty sure I can add more
useful stuff in there. For now, it suffices.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Dutch Clojure Days 2018 round-up</title>
      <link>https://manueluberti.eu/posts/2018-04-23-dcd-round-up/</link>
      <pubDate>Mon, 23 Apr 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-04-23-dcd-round-up/</guid>
      <description>&lt;p&gt;As you may recall, I had enthusiastic expectations and resolutions for &lt;a href=&#34;https://manueluberti.eu/posts/2018-01-23-dcd-expectations/&#34;&gt;Dutch
Clojure Days&lt;/a&gt;. My first Clojure-only
conference, my first proper face-to-face with the community. How could I not be
excited?&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/dcd.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;On Saturday 21st at 8:30 am sharp we were at the TQ building reception, greeted
by Carlo Sciolla, one of the organisers. A couple of words on the venue:
a simple but elegant building, close to Dam Square and right in front of a
fascinating flower market. The conference happened on the fourth floor, with a
balcony to enjoy the outstanding view on the city, and food and drinks for
everybody. My first, huge “thank you, DCD!” goes to the vegetarian option which
was palatable for a vegan, but let&amp;rsquo;s keep the cheering and the hand-clapping for
the end.&lt;/p&gt;
&lt;p&gt;Eleven speakers were waiting for us. Vijay Kiran set the stage and the playful
mood of the day, leaving soon room to Alex Yakushev. “Embrace the JVM” was a
talk to treasure. Observability, performance profiling, memory inspection. I am
by no means a JVM expert, however the tools Alex showed us will definitely help
me get a better understanding of the machinery behind Clojure.&lt;/p&gt;
&lt;p&gt;Simon Belak was up next talking about transducers and statistical analysis. This
was probably the hardest one for me. I haven&amp;rsquo;t found a way to appreciate the
value of transducers yet, and statistical analysis is not my strongest skill.
But I still appreciated the concept of sketch algorithms and I will hunt
histograms pretty soon.&lt;/p&gt;
&lt;p&gt;Srihari Sriraman with “Practical Generative Testing Patterns” blew my mind and,
if you fancy ratings and such, was the highlight of the day. We all know
&lt;code&gt;test.check&lt;/code&gt; is good, but the approach of Srihari to automation, seeding
relevant data and testing plausible behaviours left me eager to grab my keyboard
and implement something similar.&lt;/p&gt;
&lt;p&gt;After lunch we were treated to one more talk before the lightning sessions.
Wilker Lúcio explained the beauty and easy-of-use of GraphQL, an interesting
alternative to REST for better APIs.&lt;/p&gt;
&lt;p&gt;The lightning talks kicked off with some magical REPL-debugging from Valentin
Waeselynck. His &lt;code&gt;scope-capture&lt;/code&gt; looked promising, and I can only hope for an
integration with CIDER. Dr Roland Kay reminded us of the usefulness of
clojure.spec, although if I had to base my opinion of clojure.spec on his talk,
it roughly looked like the type-system Clojure is missing. No trolling intended.
Thomas van der Veen hit the MQTT broker pedal, mixing Java and Clojure, but I am
still not sure I got the purpose of the experiment aside from the sake of
learning. Ray McDermott closed the lightning sessions with an amazing
browser-driven, multi-user REPL he is devising which can make live
pair-programming scattered around the world a breeze.&lt;/p&gt;
&lt;p&gt;The last three talks reflected experiences of using Clojure for business. Josh
Glover, Philip Mates and Pierre-Yves Ritschard shared with us the journeys of
their companies and projects and how designing, developing, and testing have
only improved since their move to our beloved language.&lt;/p&gt;
&lt;p&gt;Drinks followed before a bit of REPL-driven comedy courtesy of Ray McDermott.
Suffice it to say we sang the Clojure version of Bowie&amp;rsquo;s “Rebel Rebel” aptly
entitled “REPL REPL”. If you weren&amp;rsquo;t there, well, you don&amp;rsquo;t know what you
missed.&lt;/p&gt;
&lt;p&gt;Dutch Clojure Days left me with the impression that the Clojure community is
alive and hard-working, and its heart is in the right place. Ideas flourish,
projects boom, boundaries get stretched. We can only be thankful to the DCD
staff for being able to set up such a pleasant event, asking us only to join
them to share our passion.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Second Sight Films’ Breathless</title>
      <link>https://manueluberti.eu/posts/2018-03-29-breathless/</link>
      <pubDate>Thu, 29 Mar 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-03-29-breathless/</guid>
      <description>&lt;p&gt;Last time I wrote about appreciation on a personal level. Although a similar
reasoning could be applied to Jim McBride&amp;rsquo;s &lt;em&gt;Breathless&lt;/em&gt;, it&amp;rsquo;s a well-known fact
that Quentin Tarantino blessed this film in the pantheon of cult cinema.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2018-03-29-breathless.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Breathless (Jim McBride, 1983)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;However, despite not being alone in my devotion to McBride&amp;rsquo;s most accomplished
work, Tarantino stamp of approval has nothing to do neither with my first
viewing of &lt;em&gt;Breathless&lt;/em&gt;, nor with the insane love I experienced.&lt;/p&gt;
&lt;p&gt;The truth is: it&amp;rsquo;s all Giona Nazzaro&amp;rsquo;s fault. Among the precursors of Hong Kong
cinema studies in Italy, Nazzaro collected his thoughts on the evolution of
Hollywood action cinema in &lt;em&gt;Action! Forme di un transgenere cinematografico&lt;/em&gt;.
That book led me to &lt;em&gt;Breathless&lt;/em&gt;, which in turn made me reconsider Richard Gere
and gain a better understanding of &lt;em&gt;American Gigolo&lt;/em&gt;. And I still believe
Richard Gere has never been &lt;em&gt;this&lt;/em&gt; good in his entire career.&lt;/p&gt;
&lt;p&gt;The only Blu-ray available before &lt;a href=&#34;http://www.secondsightfilms.co.uk/&#34;&gt;Second Sight
Films&lt;/a&gt; came into play was the region A one
from Shout! Factory, so I was in dire need of a proper European release.
&lt;em&gt;Breathless&lt;/em&gt; is full of vivid and powerful colours, and it pumps images as
energetic as the marvellous soundtrack. It practically begs for high-resolution
and deafening loudness.&lt;/p&gt;
&lt;p&gt;Second Sight Films revamped the Blu-ray artwork with a cover that gets
&lt;em&gt;Breathless&lt;/em&gt; essence more than any words I could use. It puts Jesse at the
centre, because he &lt;em&gt;is&lt;/em&gt; the film: narcissistic, cocky, naive, &lt;em&gt;loco&lt;/em&gt;. The colour
palette is also a perfect choice, since it naturally conveys the &lt;em&gt;hotness&lt;/em&gt; of
the rock&amp;rsquo;n&amp;rsquo;roll adventure ready to unfold before our eyes.&lt;/p&gt;
&lt;p&gt;The disc contains a couple of special features: a nearly 30-minutes chat with
Mark Kermode, and an interview with Valérie Kaprisky.&lt;/p&gt;
&lt;p&gt;Kermode is awesome. He first saw the film when it came out in 1983, so he was
there in the beginning, debating the ups and downs of McBride&amp;rsquo;s work while
avoiding insults from the gang of “film snobs” (his words). It&amp;rsquo;s a conversation
worth checking out, and I am clearly ready to stand by his side, sword in my
hand, defending &lt;em&gt;Breathless&lt;/em&gt; until the very end.&lt;/p&gt;
&lt;p&gt;The interview with Kaprisky adds a good nostalgic touch, and some insights on
the film from the too often criticized actress. Not an absolute must, but still
something funny to complete my &lt;em&gt;Breathless&lt;/em&gt; experience.&lt;/p&gt;
&lt;p&gt;Granted, a making-of and an interview with the director would have been
fantastic gifts. Nonetheless, Second Sight Films took what is usually regarded
as laughing stock, and packaged it in a much deserved, great format. I can
hardly be any happier.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Elements of Clojure</title>
      <link>https://manueluberti.eu/posts/2018-03-18-elementsofclojure/</link>
      <pubDate>Sun, 18 Mar 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-03-18-elementsofclojure/</guid>
      <description>&lt;p&gt;Few days ago, Zach Tellman published a complete draft of his upcoming book
&lt;a href=&#34;http://elementsofclojure.com&#34;&gt;Elements of Clojure&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is a work I have been following closely for a while. I purchased an early
draft and have been there at every update from the author, ready to read it all
over again. Furthermore, Zach&amp;rsquo;s talks at various conferences&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; reinforced my
belief that he is on a path I am eager to follow.&lt;/p&gt;
&lt;p&gt;This kind of devotion is not easy to explain, but I will do my best. Since my
first Java 1.2 guide through my experiences with C, SQL, Scheme, Scala, Clojure
and now Haskell, IT books have been a constant in my life.&lt;/p&gt;
&lt;p&gt;Most of them, unfortunately, became outdated soon, and now serve only as dust
support. Some of them, however, stood the test of time and proved to be a
reliable source of invaluable knowledge. &lt;a href=&#34;https://sarabander.github.io/sicp/html/index.xhtml&#34;&gt;Structure and Intepretation of
Computer Programs&lt;/a&gt;, for
instance, is still next to me, still teaching me how to be a better programmer.&lt;/p&gt;
&lt;p&gt;Why is that? Because a book like &lt;em&gt;SICP&lt;/em&gt; is not teaching a programming language
in particular. It&amp;rsquo;s not trying to be the ultimate reference on Scheme inner
details, nor it wants to be a guide to improve your Scheme skills. &lt;em&gt;SICP&lt;/em&gt; is
about the &lt;em&gt;how&lt;/em&gt;, not the &lt;em&gt;what&lt;/em&gt;. And that is exactly where &lt;em&gt;Elements of Clojure&lt;/em&gt;
fits.&lt;/p&gt;
&lt;p&gt;Much like &lt;em&gt;SICP&lt;/em&gt;, &lt;em&gt;Elements of Clojure&lt;/em&gt; uses a specific language to convey its
points. It&amp;rsquo;s the common ground, the starting point from where Zach anchors his
reasoning and expands his thoughts about software development. What at first
looks like a collection of best practices gradually morphs into a deep dive in
the realms of indirection, abstraction and composition. Therefore, this is a
book about the grain of my everyday programming.&lt;/p&gt;
&lt;p&gt;I admire the writing style of &lt;em&gt;Elements of Clojure&lt;/em&gt;. Sharp, terse, it challenges
the reader at every turn of the page. You are invited to look for what is
missing or left between the lines somewhere else. Zach helps you by leaving a
decent amount of footnotes with literary references for further inquiries, and
I am confident the final version of the book will have a precise
bibliography.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;These literary references are particularly interesting. They diverge from the IT
way and end up in literature, philosophy, architecture, social politics and
economics. From what I have read so far, this is a totally mind-stretching,
enriching journey, all the more because these are works outside my comfort
zone.&lt;/p&gt;
&lt;p&gt;At every step of the writing process, Zach has questioned his own experiences
and studies with his open attitude towards feedback and discussion.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; It
all reflects in his prose, and this is a testament to the honest quality of his
writing.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Elements of Clojure&lt;/em&gt; is always a few clicks away from me, and it&amp;rsquo;s not even
complete yet. I already know it will stay by my side for a long time.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Start with &lt;a href=&#34;https://www.youtube.com/watch?v=x9pxbnFC4aQ&#34;&gt;On Abstraction&lt;/a&gt;, but I hope to see
more recent videos before long.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;There is already a shelf with recommendations on the author&amp;rsquo;s &lt;a href=&#34;https://www.goodreads.com/review/list/54250608?shelf=elements-of-clojure&#34;&gt;Goodreads
profile&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;A book club has recently popped up on
&lt;a href=&#34;https://clojureverse.org/t/elements-of-clojure-book-club/1769&#34;&gt;ClojureVerse&lt;/a&gt;. A specific &lt;a href=&#34;https://groups.google.com/forum/#!forum/elements-of-clojure&#34;&gt;mailing list&lt;/a&gt; to discuss
the book has also been around for a while, courtesy of the author
himself. Moreover, he set up workshops around his work at conferences, but I haven&amp;rsquo;t been able to attend one yet.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Beauty lies in the segments of the mode line</title>
      <link>https://manueluberti.eu/posts/2018-03-10-moody-and-minions/</link>
      <pubDate>Sat, 10 Mar 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-03-10-moody-and-minions/</guid>
      <description>&lt;p&gt;Since I basically spend much of my computing in Emacs, it&amp;rsquo;s no surprise I have
come to love customizing it. One Emacs facet I keep returning to is the mode
line.&lt;/p&gt;
&lt;p&gt;To be honest, it&amp;rsquo;s hard to remember everything I tried on this little but very
useful tool. For a long while &lt;code&gt;smart-mode-line&lt;/code&gt; has been my go-to package.
I considered &lt;code&gt;powerline&lt;/code&gt; briefly, but even &lt;code&gt;spaceline&lt;/code&gt; didn&amp;rsquo;t last long.
Eventually, I rolled my own spin and never looked for an external solution
again.&lt;/p&gt;
&lt;p&gt;Recently, Jonas Bernoulli — of Magit fame — unveiled two new packages expressly
dedicated to the mode line: &lt;code&gt;minions&lt;/code&gt; and &lt;code&gt;moody&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ever being annoyed by the long list of minor modes taking up precious space? Or
are you just tired of adding &lt;code&gt;:diminish&lt;/code&gt; every time you install a new package
via &lt;code&gt;use-package&lt;/code&gt;? &lt;code&gt;minions&lt;/code&gt; to the rescue.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;minions&lt;/code&gt; replaces the minor mode list with a customizable lighter, which upon
click reveals a menu with an entry for every minor mode available. You can
enable or disable a specific mode or explore its settings in a breeze. &lt;code&gt;minions&lt;/code&gt;
reduces the clutter while making it easier to check on your minor modes.&lt;/p&gt;
&lt;p&gt;On the other hand, &lt;code&gt;moody&lt;/code&gt; is for the true artist. I love sparkling Emacs with
some beauty, but as much as &lt;code&gt;sanityinc-tomorrow-night&lt;/code&gt; helps me with that,
I haven&amp;rsquo;t been able to accomplish something really satisfying with the mode line
before trying &lt;code&gt;moody&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/modeline.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Now look at that. It &lt;em&gt;feels&lt;/em&gt; awesome.&lt;/p&gt;
&lt;p&gt;The number &lt;code&gt;2&lt;/code&gt; on the left is my little variation on the Eyebrowse segment I
found in &lt;code&gt;spaceline&lt;/code&gt;.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Refactoring my windows restoring solution</title>
      <link>https://manueluberti.eu/posts/2018-03-03-winner-undo/</link>
      <pubDate>Sat, 03 Mar 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-03-03-winner-undo/</guid>
      <description>&lt;p&gt;Following &lt;a href=&#34;https://manueluberti.eu/posts/2018-02-24-restore-windows/&#34;&gt;my last article&lt;/a&gt; on
restoring window configurations with custom functions, Clément Pit-Claudel got
in touch with me and suggested a little improvement. Clément pointed out the
built-in Emacs command &lt;code&gt;winner-undo&lt;/code&gt;, which I promptly used to simplify my
solution.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s enable &lt;code&gt;winner-mode&lt;/code&gt;, first, because &lt;code&gt;winner-undo&lt;/code&gt; comes with it.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(use-package winner                     ; Restore old window configurations
  :init (winner-mode t))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;winner-mode&lt;/code&gt; automatically takes care of storing window configurations, thus
I can safely remove functions like &lt;code&gt;mu-ibuffer-open&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-ibuffer-open ()
  &amp;quot;Open Ibuffer after storing the current window configuration.&amp;quot;
  (interactive)
  (mu-push-window-configuration)
  (ibuffer))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now I only need to call &lt;code&gt;winner-undo&lt;/code&gt; when I exit the desired, &lt;em&gt;fullframed&lt;/em&gt;
buffer.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-pop-window-configuration ()
  &amp;quot;Kill current buffer and restore the previous window configuration.&amp;quot;
  (interactive)
  (kill-this-buffer)
  (let ((inhibit-message t))
    (winner-undo)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I wrapped &lt;code&gt;(winner-undo)&lt;/code&gt; with &lt;code&gt;(inhibit-message t)&lt;/code&gt; to get rid of the
superfluous message about the restored window configuration number.&lt;/p&gt;
&lt;p&gt;This is a much cleaner solution. I still have to use &lt;code&gt;fullframe&lt;/code&gt;, of course, but
by reusing an inner Emacs functionality I get the same result with less code.&lt;/p&gt;
&lt;p&gt;However, this code has a problem. &lt;code&gt;winner-mode&lt;/code&gt; does not save the configuration
of a frame with a single window. In this case &lt;code&gt;winner-undo&lt;/code&gt; has nothing to
&lt;em&gt;undo&lt;/em&gt; and it usually takes me back to a completely different buffer than the
one I started from.&lt;/p&gt;
&lt;p&gt;Therefore I revised my functions and made them a bit more general. Basically,
I removed &lt;code&gt;mu-push-window-configuration&lt;/code&gt; and added &lt;code&gt;mu-save-wins-then-call&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-save-wins-then-call (func &amp;amp;optional args)
  &amp;quot;Save current window configuration, then call FUNC optionally with ARGS.&amp;quot;
  (interactive)
  (push (current-window-configuration) mu-saved-window-configuration)
  (cond
   ;; We have arguments for the function
   ((bound-and-true-p args) (funcall func args))
   ;; The function requires exactly one argument, and we want it to be nil
   ((equal args &amp;quot;nil&amp;quot;) (funcall func nil))
   ;; The function does not expect arguments
   (t (funcall func))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;&amp;quot;nil&amp;quot; &lt;/code&gt;check is kind of a hack just for &lt;code&gt;paradox-list-packages&lt;/code&gt;, which
expects one non-optional argument. Since &lt;code&gt;&amp;amp;optional args&lt;/code&gt; evaluates to &lt;code&gt;nil&lt;/code&gt;
when non present, I need the check to avoid calling &lt;code&gt;(funcall func)&lt;/code&gt; in this
particular case. I am sure there is a better solution, but I&amp;rsquo;ll leave that for
another time.&lt;/p&gt;
&lt;p&gt;Nonetheless, functions like the previously mentioned &lt;code&gt;mu-ibuffer-open&lt;/code&gt; becomes
cleaner.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-ibuffer-open ()
  &amp;quot;Save window configuration and call `ibuffer&#39;.&amp;quot;
  (interactive)
  (mu-save-wins-then-call &#39;ibuffer))

(defun mu-elfeed-open ()
  &amp;quot;Save window configuration and call `elfeed&#39;.&amp;quot;
  (interactive)
  (mu-save-wins-then-call &#39;elfeed))

(defun mu-paradox-open ()
  &amp;quot;Save window configuration and call `paradox-list-packages&#39;.&amp;quot;
  (interactive)
  (mu-save-wins-then-call &#39;paradox-list-packages &amp;quot;nil&amp;quot;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With the help of &lt;code&gt;funcall&lt;/code&gt; I have a generic wrapper that can be applied wherever
I need.&lt;/p&gt;
&lt;p&gt;Thanks again to Clément Pit-Claudel who helped me dig further into my idea and
explore new paths.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Restoring the window configuration in Emacs</title>
      <link>https://manueluberti.eu/posts/2018-02-24-restore-windows/</link>
      <pubDate>Sat, 24 Feb 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-02-24-restore-windows/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://manueluberti.eu/posts/2018-02-17-magit-bury-buffer/&#34;&gt;Last time&lt;/a&gt; I explained how
I customised Magit to kill its buffers upon quitting &lt;code&gt;magit-status&lt;/code&gt;. My solution
uses &lt;code&gt;magit-restore-window-configuration&lt;/code&gt;, which does exactly what the name
suggests. Wouldn&amp;rsquo;t it be great if a similar handy trick could be applied to any
Emacs functionality?&lt;/p&gt;
&lt;p&gt;Specifically:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I&amp;rsquo;d like to run some modes in a window that takes up the whole frame&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;d like to quit them with the previous window configuration completely
restored&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Two modes that I use daily would definitely become more pleasant: &lt;code&gt;ibuffer-mode&lt;/code&gt;
and &lt;code&gt;org-agenda-mode&lt;/code&gt;. Fortunately, the Emacs community has already devised
everything I need.&lt;/p&gt;
&lt;p&gt;First, I have to save the current window configuration.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defvar mu-saved-window-configuration nil)

(defun mu-push-window-configuration ()
  &amp;quot;Save current window configuration.&amp;quot;
  (interactive)
  (push (current-window-configuration) mu-saved-window-configuration))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I can now create a command to open the desired mode.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-ibuffer-open ()
  &amp;quot;Open Ibuffer after storing current window configuration.&amp;quot;
  (interactive)
  (mu-push-window-configuration)
  (ibuffer))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A buffer can be visited in a single window per frame with &lt;code&gt;fullframe&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(with-eval-after-load &#39;ibuffer
    (fullframe ibuffer mu-pop-window-configuration))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The first argument to &lt;code&gt;fullframe&lt;/code&gt; indicates that I want the function &lt;code&gt;ibuffer&lt;/code&gt; to be
executed in a single window of the current frame. The second argument is the
command[^1] invoked when quitting Ibuffer, which will have to restore the
previous window configuration.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-restore-window-configuration (config)
  &amp;quot;Kill current buffer and restore window configuration in CONFIG.&amp;quot;
  (interactive)
  (kill-this-buffer)
  (set-window-configuration config))

(defun mu-pop-window-configuration ()
  &amp;quot;Restore previous window configuration and clear current window.&amp;quot;
  (interactive)
  (let ((config (pop mu-saved-window-configuration)))
    (if config
        (mu-restore-window-configuration config)
      (if (&amp;gt; (length (window-list)) 1)
          (delete-window)
        (bury-buffer)))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;These little functions are just my &lt;em&gt;personal take&lt;/em&gt; on the awesome gems I
discovered in &lt;a href=&#34;https://github.com/jwiegley/dot-emacs/commit/654e2dd5a8667cff58061c3212b787720fc04804&#34;&gt;John Wiegley&amp;rsquo;s Emacs
configuration&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Nothing can stop me now from applying the same pattern to any mode I want. Once
again, Emacs shows a degree of customizability second to none.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Exterminate Magit buffers</title>
      <link>https://manueluberti.eu/posts/2018-02-17-magit-bury-buffer/</link>
      <pubDate>Sat, 17 Feb 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-02-17-magit-bury-buffer/</guid>
      <description>&lt;p&gt;Some say that Emacs users rarely kill buffers. Instead they smoothly dance away
to another buffer using their preferred switching mechanism, and just keep on
working with no hiccups whatsoever. In my case &lt;code&gt;ivy-switch-buffer&lt;/code&gt; is usually
doing all the the dancing, with Ibuffer coming in when the situation gets out of
hand.&lt;/p&gt;
&lt;p&gt;However, I do not enjoy having more open buffers than what I really need. Call
it obsessive-compulsive disorder, call it whatever you like, I want my buffers
list clean and on point.&lt;/p&gt;
&lt;p&gt;Magit has a penchant for open buffers. Jonas Bernoulli already explained &lt;a href=&#34;https://github.com/magit/magit/issues/2124#issuecomment-125987469&#34;&gt;the
reasoning&lt;/a&gt;
behind this behaviour, but he also suggested &lt;a href=&#34;https://emacs.stackexchange.com/a/35832/5514&#34;&gt;a
solution&lt;/a&gt; to clean up
Magit-related buffers when the work is done.&lt;/p&gt;
&lt;p&gt;Following Jonas&amp;rsquo; tip, this is what I devised:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-magit-kill-buffers (param)
  &amp;quot;Restore window configuration and kill all Magit buffers.&amp;quot;
  (let ((buffers (magit-mode-get-buffers)))
    (magit-restore-window-configuration)
    (mapc #&#39;kill-buffer buffers)))

(validate-setq magit-bury-buffer-function #&#39;mu-magit-kill-buffers)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The function is simple: first it collects the available Magit buffers, then
restores the window configuration as it was before calling &lt;code&gt;magit-status&lt;/code&gt;, and
finally applies &lt;code&gt;kill-buffer&lt;/code&gt; on the buffers previously collected. &lt;code&gt;kill-buffer&lt;/code&gt;
will not ask for confirmation, so now pressing &lt;code&gt;q&lt;/code&gt; in &lt;code&gt;magit-status&lt;/code&gt;
has the desired effect.&lt;/p&gt;
&lt;p&gt;Something is weird in that function, though. Why pass &lt;code&gt;param&lt;/code&gt; to
&lt;code&gt;mu-magit-kill-buffers&lt;/code&gt; if there is no need for it in the function body?&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s break this down. The value of &lt;code&gt;magit-bury-buffer-function&lt;/code&gt; is a
function.[^1]&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defcustom magit-bury-buffer-function &#39;magit-restore-window-configuration
  &amp;quot;The function used to bury or kill the current Magit buffer.&amp;quot;
  :package-version &#39;(magit . &amp;quot;2.3.0&amp;quot;)
  :group &#39;magit-buffers
  :type &#39;(radio (function-item quit-window)
                (function-item magit-mode-quit-window)
                (function-item magit-restore-window-configuration)
                (function :tag &amp;quot;Function&amp;quot;)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Looking at the code of &lt;code&gt;magit-restore-window-configuration&lt;/code&gt;, we can see that it
accepts an optional argument.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun magit-restore-window-configuration (&amp;amp;optional kill-buffer)
  &amp;quot;Bury or kill the current buffer and restore previous window configuration.&amp;quot;
  (let ((winconf magit-previous-window-configuration)
        (buffer (current-buffer))
        (frame (selected-frame)))
    (quit-window kill-buffer (selected-window))
    (when (and winconf (equal frame (window-configuration-frame winconf)))
      (set-window-configuration winconf)
      (when (buffer-live-p buffer)
        (with-current-buffer buffer
          (setq magit-previous-window-configuration nil))))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Thus &lt;code&gt;param&lt;/code&gt; in &lt;code&gt;mu-magit-kill-buffers&lt;/code&gt; is only there to match the signature of the
function passed to &lt;code&gt;magit-bury-buffer-function&lt;/code&gt;. If I leave it out, I will get
this error message:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;magit-mode-bury-buffer: Wrong number of arguments: ((t) nil &amp;quot;Kill all Magit buffers.&amp;quot; (let ((buffers (magit-mode-get-buffers))) (magit-restore-window-configuration) (mapc #&#39;kill-buffer buffers))), 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you&amp;rsquo;re wondering why I am using the sharp quote (&lt;code&gt;#&#39;&lt;/code&gt;) when setting the value
of &lt;code&gt;magit-bury-buffer-function&lt;/code&gt;, you can simply trust the sage
&lt;a href=&#34;http://endlessparentheses.com/get-in-the-habit-of-using-sharp-quote.html&#34;&gt;advice&lt;/a&gt;
of Artur Malabarba.&lt;/p&gt;
&lt;p&gt;There is still one problem to solve. Setting &lt;code&gt;magit-bury-buffer-function&lt;/code&gt; this
way makes &lt;code&gt;q&lt;/code&gt; always kill &lt;em&gt;every&lt;/em&gt; Magit buffer. This is not what I need
when I am using, for instance, &lt;code&gt;magit-log-buffer-file&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Hence it&amp;rsquo;s better to make my custom function
&lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Using-Interactive.html&#34;&gt;interactive&lt;/a&gt;
and apply it only for &lt;code&gt;magit-status-mode-map&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-magit-kill-buffers ()
  &amp;quot;Restore window configuration and kill all Magit buffers.&amp;quot;
  (interactive)
  (let ((buffers (magit-mode-get-buffers)))
    (magit-restore-window-configuration)
    (mapc #&#39;kill-buffer buffers)))

(bind-key &amp;quot;q&amp;quot; #&#39;mu-magit-kill-buffers magit-status-mode-map)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Bonus point: the unused &lt;code&gt;param&lt;/code&gt; is gone.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Refactoring power-ups</title>
      <link>https://manueluberti.eu/posts/2018-02-10-occur/</link>
      <pubDate>Sat, 10 Feb 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-02-10-occur/</guid>
      <description>&lt;p&gt;Any programmer knows the importance of refactoring. It&amp;rsquo;s even hard to believe a
programmer can live without it. There are plenty of use cases for refactoring,
but the following happens often enough that I am glad Emacs sits next to me
every day.&lt;/p&gt;
&lt;p&gt;Imagine you are working on a medium-to-big size project. You have functions
everywhere, maybe constants here and there to make your life easier. Functional
programmers have no time for variables, so I won&amp;rsquo;t go down that road.&lt;/p&gt;
&lt;p&gt;At one point you discover a function that could use a different name. Clarity,
readability, or just mere kindness towards your fellow co-workers prompts you to
come up with something better. Naturally, the function is used in many places
around the codebase, so it&amp;rsquo;s time to bring out the heavy guns.&lt;/p&gt;
&lt;p&gt;There are plenty of ways to solve this problem, especially in Emacs, but this is
how I approach the situation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;C-c p s r&lt;/code&gt; brings up &lt;code&gt;counsel-projectile-rg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If point is on the function name, I just hit &lt;code&gt;M-n&lt;/code&gt; to use it as the
search term, otherwise I type it in&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-c C-o&lt;/code&gt; now runs &lt;code&gt;ivy-occur&lt;/code&gt; and all the candidates end up in a
dedicated buffer&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-x C-q&lt;/code&gt;, bound to &lt;code&gt;ivy-wgrep-change-to-wgrep-mode&lt;/code&gt;, makes the new
buffer editable. It&amp;rsquo;s easy to remember because it&amp;rsquo;s the same key binding to
enable
&lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/emacs/Wdired.html&#34;&gt;Wdired&lt;/a&gt;
from Dired&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-s&lt;/code&gt; invokes &lt;code&gt;counsel-grep-or-swiper&lt;/code&gt; and I type in the function
name&lt;/li&gt;
&lt;li&gt;&lt;code&gt;M-q&lt;/code&gt; takes me to &lt;code&gt;swiper-query-replace&lt;/code&gt;, and I just need to enter
the new function name, hit &lt;code&gt;RET&lt;/code&gt; and then &lt;code&gt;C-c C-c&lt;/code&gt; to
confirm my modifications&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-x s&lt;/code&gt; followed by &lt;code&gt;!&lt;/code&gt; is all it takes now to save
the files involved in my refactoring&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If it looks like a lot to remember, well, it is. Only the first times,
though. After a while it becomes second nature, and editing an occurrence in
multiple files feels like a gentle breeze down your neck.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/bbatsov/projectile&#34;&gt;Projectile&lt;/a&gt; and
&lt;a href=&#34;https://github.com/abo-abo/swiper&#34;&gt;Ivy/Counsel/Swiper&lt;/a&gt; are really invaluable
tools.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Getting ready for Dutch Clojure Days</title>
      <link>https://manueluberti.eu/posts/2018-01-23-dcd-expectations/</link>
      <pubDate>Tue, 23 Jan 2018 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2018-01-23-dcd-expectations/</guid>
      <description>&lt;p&gt;As a functional programming jock, I have a confession to make: I have never been
to a Clojure conference. There was a bit of Clojure in the now defunct
LambdaCon, but the talks there were not as riveting as the ones I caught on
YouTube from the likes of Clojure/conj, clojuTRE and Clojure/west.&lt;/p&gt;
&lt;p&gt;No need to sound depressing, though. Thanks to &lt;a href=&#34;https://7bridges.eu&#34;&gt;7bridges&lt;/a&gt;,
I will happily attend &lt;a href=&#34;http://clojuredays.org/&#34;&gt;Dutch Clojure Days 2018&lt;/a&gt; on
April 21st. As much as my enthusiasm is hard to contain, I plan to fulfil a
bunch of resolutions without losing myself in total exuberance.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;learn-something-new&#34;&gt;Learn something new&lt;/h3&gt;
&lt;p&gt;I know the list of speakers is not ready yet, but surely something new and good
is waiting for me. This is usually what happens with the talks once the
conference I missed makes the videos available, therefore I am pretty confident
there is going to be a lot of food for my brain.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;learn-something-better&#34;&gt;Learn something better&lt;/h3&gt;
&lt;p&gt;As far as my Clojure projects go, there is still plenty I have to
master. Transducers? Spec? Design patterns? Performance? UX? Hit me, please. The
amateur in me is eager to become a Clojure programmer worth his salt.&lt;/p&gt;
&lt;h3 class=&#34;heading&#34; id=&#34;join-the-community&#34;&gt;Join the community&lt;/h3&gt;
&lt;p&gt;Last but not least, I will set aside my never-ending fight with sociability and
enjoy the Clojure community for real. I&amp;rsquo;ll be in Amsterdam from Friday afternoon
to Sunday evening, so you will have enough time to join me in some healthy
discussions about your favourite programming language. Or Emacs, if you fancy
wild topics.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>A year of functional programming</title>
      <link>https://manueluberti.eu/posts/2017-12-21-functionalyear/</link>
      <pubDate>Thu, 21 Dec 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-12-21-functionalyear/</guid>
      <description>&lt;p&gt;First things first: the title is a lie.&lt;/p&gt;
&lt;p&gt;If you happen to be one of my passionate readers, you may recall I started
&lt;a href=&#34;https://manueluberti.eu/posts/2017-03-12-anewjob/&#34;&gt;working with Clojure&lt;/a&gt; on April 1. So yes, not
every month of the year has been devoted to functional programming. I just
needed something bold to pull you in, sorry.&lt;/p&gt;
&lt;p&gt;Now, how does it feel having worked with Clojure for &lt;del&gt;almost&lt;/del&gt; a year?&lt;/p&gt;
&lt;p&gt;Here at 7bridges we had our fair share of projects. The open source ones are
just a selected few: &lt;code&gt;clj-odbp&lt;/code&gt;, a driver for OrientDB binary protocol;
&lt;code&gt;carter&lt;/code&gt;, an SPA to show how our driver works; &lt;code&gt;remys&lt;/code&gt;, a little tool to
interact with MySQL databases via REST APIs. I also had the chance to play with
ArangoDB recently, and there were no problems building a sample project to
understand its APIs.&lt;/p&gt;
&lt;p&gt;At home, boodle was born to strengthen my ever-growing knowledge and do
&lt;a href=&#34;https://manueluberti.eu/posts/2017-11-26-boodle/&#34;&gt;something useful&lt;/a&gt; for the family.&lt;/p&gt;
&lt;p&gt;When I started in the new office, the switch from professional Java to
professional Clojure was a bit overwhelming. New libraries, new tools, new
patterns, new ways of solving the same old problems, new problems to approach
with a totally different mindset. It all seemed too much.&lt;/p&gt;
&lt;p&gt;Then, something clicked.&lt;/p&gt;
&lt;p&gt;Having the same language on both client- and server-side helped me figure out
the matters at hand with a set of ideas I could easily reuse. Once I understood
the problem, I could look for the steps to solve it. Each step required a data
structure and the function to handle this data structure. The first time I used
&lt;code&gt;reduce-kv&lt;/code&gt; because it was the &lt;em&gt;most natural&lt;/em&gt; choice left a great smile on my
face.&lt;/p&gt;
&lt;p&gt;There is still much to learn, though. Due to lack of experience with JavaScript,
my ClojureScript-fu needs to improve. I have come to appreciate unit testing,
but it&amp;rsquo;s time to put this love at work on my &lt;code&gt;.cljs&lt;/code&gt; files too. I also
definitely want to know more about Clojure web applications security and
performances.&lt;/p&gt;
&lt;p&gt;2017 has been a great year to be a functional programmer. My recent &lt;a href=&#34;https://manueluberti.eu/posts/2017-12-08-learninghaskell/&#34;&gt;liaison
with Haskell&lt;/a&gt; is directing me more and
more on my way. The functional programming way.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Learning Haskell</title>
      <link>https://manueluberti.eu/posts/2017-12-08-learninghaskell/</link>
      <pubDate>Fri, 08 Dec 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-12-08-learninghaskell/</guid>
      <description>&lt;p&gt;Since my first baby steps in the world of Functional Programming, Haskell has
been there. Like the enchanting music of a Siren, it has been luring me with
promises of a new set of skills and a better understanding of the &lt;em&gt;lambda
calculus&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I refused to oblige at first. A bit of Scheme and my eventual &lt;a href=&#34;https://manueluberti.eu/posts/2017-03-12-anewjob/&#34;&gt;move to
Clojure&lt;/a&gt; occupied my mind and my daily
activities. Truth be told, the odious warfare between dynamic types troopers and
static types zealots didn&amp;rsquo;t help steering my enthusiasm towards Haskell.&lt;/p&gt;
&lt;p&gt;Still, my curiosity is stoic and hard to kill and the Haskell Siren was becoming
too tempting to resist any further. &lt;em&gt;The Pragmatic Programmer&lt;/em&gt; in me knew it was
the right thing to do. My knowledge portfolio is always reaching out for
something new.&lt;/p&gt;
&lt;p&gt;My journey began with the much praised &lt;em&gt;Programming in Haskell&lt;/em&gt;. I kept track of
the exercises only to soon discover this wasn&amp;rsquo;t the right book for me. A bit too
terse and schematic, I needed something that could ease me in in a different
way. I needed more focus on the basics, the roots of the language.&lt;/p&gt;
&lt;p&gt;As I usually do, I sought help online. I don&amp;rsquo;t know many Haskell developers, but
I know there are crazy guys in the Emacs community. Steve Purcell was kind and
patient enough to introduce me to &lt;em&gt;Haskell Programming From First Principles&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;This is a huge book (nearly 1300 pages), but it just took the authors&amp;rsquo; prefaces
to hook me. Julie Moronuki words in particular resonated heavily with me. Unlike
Julie I have experience in programming, but I felt exactly like her when it
comes to approaching Haskell teaching materials.&lt;/p&gt;
&lt;p&gt;So here I am, armed with Stack and Intero and ready to abandon myself to the
depths and wonders of static typing and pure functional programming. I will
track my progress and maybe report back here. I already have a project in mind,
but my Haskell needs to get really good before starting any serious work.&lt;/p&gt;
&lt;p&gt;May the lambda be with me.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>boodle</title>
      <link>https://manueluberti.eu/posts/2017-11-26-boodle/</link>
      <pubDate>Sun, 26 Nov 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-11-26-boodle/</guid>
      <description>&lt;p&gt;The usefulness of in-house accounting has become evident only in recent years.
On different occasions, my wife and I discussed a solution for keeping track of
expenses and available budget for short- and long-term goals. Simply put: the
bank statement was not enough any more.&lt;/p&gt;
&lt;p&gt;In the past we relied on &lt;a href=&#34;https://www.ledger-cli.org/&#34;&gt;ledger&lt;/a&gt;, knowing too well
the power of plain text. For a while we succeeded in our money management,
because ledger is really that good. However, soon we started thinking about
savings and goals, about a custom user interface to have a better understanding
of our financial situation.&lt;/p&gt;
&lt;p&gt;Naturally, I decided to use some of the experience I gained at work to develop
our own application. I wanted a simple &lt;a href=&#34;https://en.wikipedia.org/wiki/Single-page_application&#34;&gt;single-page
application&lt;/a&gt; that would
enable us to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;track &lt;em&gt;expenses&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;query expenses to get &lt;em&gt;reports&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;track short- and long-term &lt;em&gt;goals&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;boodle (a synonym of money, in case you are wondering) has the following
architecture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;client: &lt;a href=&#34;https://github.com/Day8/re-frame&#34;&gt;re-frame&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;server: &lt;a href=&#34;https://github.com/ring-clojure/ring&#34;&gt;ring&lt;/a&gt; on top of &lt;a href=&#34;http://www.http-kit.org/&#34;&gt;HTTP
kit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;database: &lt;a href=&#34;https://www.postgresql.org/&#34;&gt;PostgreSQL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I have set up &lt;a href=&#34;https://github.com/juxt/bidi&#34;&gt;bidi&lt;/a&gt; for client-side routing,
&lt;a href=&#34;https://github.com/weavejester/compojure&#34;&gt;compojure&lt;/a&gt; for server-side routing
and &lt;a href=&#34;https://github.com/metosin/compojure-api&#34;&gt;compojure-api&lt;/a&gt; to connect client
and server via pleasant APIs.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/tolitius/mount&#34;&gt;mount&lt;/a&gt; I have three main
components that I can start and stop to make development and debugging easier:
application configuration, database and HTTP server.&lt;/p&gt;
&lt;p&gt;I decided to give &lt;a href=&#34;https://github.com/MichaelDrogalis/dire&#34;&gt;dire&lt;/a&gt; a try,
appreciating the separation between logic and error handling. I also took the
chance to couple
&lt;a href=&#34;https://clojure.github.io/clojure/clojure.test-api.html&#34;&gt;clojure.test&lt;/a&gt; with
&lt;a href=&#34;https://github.com/clojure/test.check&#34;&gt;test.check&lt;/a&gt;, for some basic
property-based testing, and &lt;a href=&#34;https://github.com/weavejester/eftest&#34;&gt;lein-eftest&lt;/a&gt;
to have fast and pretty test results.&lt;/p&gt;
&lt;p&gt;The setup is completed by the continuous integration offered by &lt;a href=&#34;https://travis-ci.org/&#34;&gt;Travis
CI&lt;/a&gt; and &lt;a href=&#34;https://versions.deps.co/&#34;&gt;Deps Versions&lt;/a&gt; to
identify outdated dependencies. Everything is available on
&lt;a href=&#34;https://sr.ht/~manuel-uberti/boodle/&#34;&gt;SourceHut&lt;/a&gt;, if you want to dig deeper
into the details.&lt;/p&gt;
&lt;p&gt;boodle is currently deployed on my home server, and in the last months it has
proved to be a reliable tool. It also deepened my love for Clojure and
ClojureScript. Long forgotten are the days where separation of concerns, both
client- and server-side, seemed impossible and destined to fail.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Inspecting log files with Emacs</title>
      <link>https://manueluberti.eu/posts/2017-11-11-logs/</link>
      <pubDate>Sat, 11 Nov 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-11-11-logs/</guid>
      <description>&lt;p&gt;As a software developer, I cannot avoid log files. Application servers and LAMP
machines are always around the corner waiting for me, so I must accept log files
and do my best.&lt;/p&gt;
&lt;p&gt;There are two kinds of log files I work with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;static: the server wrote the content and never touched the file again&lt;/li&gt;
&lt;li&gt;dynamic: the server keeps appending content as the monitored process continues&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The log files could be on my hard disk or located on a remote machine. During my
workflow, a “remote machine” can also be a Docker container.&lt;/p&gt;
&lt;p&gt;I leave the math to you, but it should be clear that different combinations
arise. Luckily, with Emacs everything goes smoothly and I can move seamlessly
across any scenario.&lt;/p&gt;
&lt;p&gt;When it comes to static files there are no surprises. If the log file is local,
inspecting it with &lt;code&gt;counsel-grep-or-swiper&lt;/code&gt; is pretty much all I need. Since
I rarely need to modify a log file, I usually enable &lt;code&gt;read-only-mode&lt;/code&gt; with
&lt;code&gt;C-x C-q&lt;/code&gt; to prevent accidental edits. For a remote static file, the
same easily applies thanks to TRAMP.&lt;/p&gt;
&lt;p&gt;Things get more interesting with dynamic logs. On local files, with
&lt;code&gt;auto-revert-mode&lt;/code&gt; I can see the changes in the buffer as soon as the underlying
file changes. If I want something fancier, &lt;code&gt;auto-revert-tail-mode&lt;/code&gt; behaves like
the good old &lt;code&gt;tail -f&lt;/code&gt;. Dynamic remote logs, however, require a different
approach. Activating &lt;code&gt;auto-revert-mode&lt;/code&gt; is not enough, I also need to set
&lt;code&gt;auto-revert-remote-files&lt;/code&gt; to &lt;code&gt;t&lt;/code&gt; for the desired behaviour.&lt;/p&gt;
&lt;p&gt;What if years of &lt;code&gt;tail -f&lt;/code&gt; made you totally indifferent to such niceties?  You
can follow &lt;a href=&#34;https://emacs.stackexchange.com/a/15213/5514&#34;&gt;Michael Albinus
suggestion&lt;/a&gt; and use
&lt;code&gt;dired-do-shell-command&lt;/code&gt; in Dired.&lt;/p&gt;
&lt;p&gt;Actually, you can even improve a little on his tip. Leave the ending &lt;code&gt;&amp;amp;&lt;/code&gt; out,
and go straight with &lt;code&gt;dired-do-async-shell-command&lt;/code&gt; which in Dired is aptly
bound to &lt;code&gt;&amp;amp;&lt;/code&gt;. Refer to the manual for further details: &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Commands-in-Dired.html&#34;&gt;Shell
Commands in
Dired&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Magit, the one and only</title>
      <link>https://manueluberti.eu/posts/2017-11-09-magit/</link>
      <pubDate>Thu, 09 Nov 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-11-09-magit/</guid>
      <description>&lt;p&gt;Nowadays it is basically impossible to land in a group of Emacs enthusiasts
without someone talking rapturously about the wonders of
&lt;a href=&#34;https://github.com/magit/magit&#34;&gt;Magit&lt;/a&gt;. If you listen closely, the words
resemble a chant: &lt;em&gt;“You wish you could do it with Git, until you experience the
great Magit.”&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Be warned: the following story goes along those &lt;em&gt;magic&lt;/em&gt; lines.&lt;/p&gt;
&lt;p&gt;Magit makes me look back at my experiences with CVS, SVN and Mercurial and laugh
about my clumsiness with tools like Tortoise. Before Magit, I touched the
regular Git command-line interface for simple tasks such as cloning a
repository, always scared away by the large number of options at my disposal.
I had to deal with Eclipse&amp;rsquo;s own Git client when I was working with Java, but
please let me spare you the gruesome details.&lt;/p&gt;
&lt;p&gt;Magit has never been so necessary and useful as it has been since I started my
new job back in April. Git is our only version-control sytem, and the
command-line is still the preferred tool in the office. Not for me, though.
Magit has become a natural extension of pretty much all of my coding.&lt;/p&gt;
&lt;p&gt;I regularly create branches, being it for an issue to fix or a new feature to
implement. If the project is based on
&lt;a href=&#34;http://nvie.com/posts/a-successful-git-branching-model/&#34;&gt;gitflow&lt;/a&gt;, we are
covered in Magit thanks to
&lt;a href=&#34;https://github.com/jtatarik/magit-gitflow&#34;&gt;magit-gitflow&lt;/a&gt;. Otherwise, rebasing
and merging on master are just a few key bindings away.&lt;/p&gt;
&lt;p&gt;Although impressive, it is not only a matter of speed. Magit taught me more
about Git than every tutorial out in the wild. Especially when it comes to
rebasing and cherry-picking, both of which are hard to get wrong now. Rewording
a commit, exploring the repository history, dealing with submodules: it all
makes sense through an interface that could not be more helpful.&lt;/p&gt;
&lt;p&gt;The one thing &lt;em&gt;against&lt;/em&gt; Magit I have for the haters is this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(unbind-key &amp;quot;C-c C-w&amp;quot; git-commit-mode-map)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That binding is my prefix for &lt;a href=&#34;https://manueluberti.eu/posts/2017-08-02-eyebrowse/&#34;&gt;Eyebrowse&lt;/a&gt;.
Not much of a complaint, I know.&lt;/p&gt;
&lt;p&gt;Magit brings order, balance and elegance to the powers of Git. It is the only
version-control system I need.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>On a personal level</title>
      <link>https://manueluberti.eu/posts/2017-10-27-onapersonallevel/</link>
      <pubDate>Fri, 27 Oct 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-10-27-onapersonallevel/</guid>
      <description>&lt;p&gt;Today I want to expand on the rushed comment I made on Letterboxd about Xavier
Dolan&amp;rsquo;s &lt;em&gt;Mommy&lt;/em&gt;. That comment, which literally followed the ending credits, was
an attempt at sorting out feelings too confused.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2017-10-27-mommy.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Mommy (Xavier Dolan, 2014)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;I could have waited the day after and have a better understanding of my
thoughts, of course. Still, I needed to write something down. I had to secure
those precarious words somewhere, and at that moment Letterboxd was the right
tool for the job.&lt;/p&gt;
&lt;p&gt;Every now and then a film insinuates itself so deeply in me that judging it on a
level other than personal is impossible. I would certainly fail to explain the
greatness of &lt;em&gt;Eyes Wide Shut&lt;/em&gt;, while I could bore you to death with what Stanley
Kubrick&amp;rsquo;s last work means to me.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Mommy&lt;/em&gt; arrival could not have been more unusual. Occasionally around Halloween
I indulge in a tradition I used to follow religiously as a teenager: watching
horror films. This time I decided to catch up with the recent works of Miike
Takashi.&lt;/p&gt;
&lt;p&gt;It didn&amp;rsquo;t go as expected: Miike&amp;rsquo;s late output failed to impress me as much as
his glorious past, so after a while I wanted something completely different.
Home alone for the weekend, I went randomly through my watchlist. Well, more or
less randomly, because I don&amp;rsquo;t have all the films in my watchlist. So I picked
the first one available: &lt;em&gt;Mommy&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The link between my emotions and my experiences with the ones on the screen
appeared instantly. I don&amp;rsquo;t suffer of attention deficit hyperactivity disorder,
but I was nervously active until the age of sixteen. I shifted between passive
and aggressive behaviours, enraged by nonsense and oblivious to most of the
lives around me.&lt;/p&gt;
&lt;p&gt;My teenage years saw the gap between me and my father grow wider and wider.
A distance I have somehow managed to shorten only recently. I know then what it
means to spend the most precious years of one&amp;rsquo;s life without a dad.&lt;/p&gt;
&lt;p&gt;Especially close to my life is the portrayal of Steve&amp;rsquo;s mother, Diane Deprés.
The love for her son, the failures of her life, the eternal paradox of coping
with age as she tries to grasp what is going on around her.&lt;/p&gt;
&lt;p&gt;There is just too much of me in &lt;em&gt;Mommy&lt;/em&gt; to even consider approaching it from the
film criticism angle. I am going to leave it there. I will hold it dearest in my
heart, knowing for a fact the power of cinema is never ending.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Laughable violence</title>
      <link>https://manueluberti.eu/posts/2017-10-24-laughableviolence/</link>
      <pubDate>Tue, 24 Oct 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-10-24-laughableviolence/</guid>
      <description>&lt;p&gt;Watching McG&amp;rsquo;s &lt;em&gt;The Babysitter&lt;/em&gt; and Chris Peckover&amp;rsquo;s &lt;em&gt;Better Watch Out&lt;/em&gt; recently
made me reflect on how cinema plays with violence and what the viewer is left
with to think about.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2017-10-24-better_watch_out.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Better Watch Out (Chris Peckover, 2016)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s not the first time that reflections such as this come to my mind. On a
previous, now dead version of this blog, I wrote about the link between real
violence and money-bait one. I argued about violence as a spectacle in &lt;em&gt;Spectre&lt;/em&gt;
and as a menacing device in &lt;em&gt;Universal Soldier: Day of Reckoning&lt;/em&gt;. Violence has
become a &lt;em&gt;de facto&lt;/em&gt; in most blockbusters, and the boundaries within which it is
depicted keep getting stretched back and forth.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Babysitter&lt;/em&gt; and &lt;em&gt;Better Watch Out&lt;/em&gt; stand as different takes on the home
invasion horror. They try to defy genre conventions while simultaneously nodding
at the slasher-savvy geek. Tentatively following the likes of &lt;em&gt;Scream&lt;/em&gt; and
&lt;em&gt;Detention&lt;/em&gt; in the case of &lt;em&gt;The Babysitter&lt;/em&gt;, pushing an easily predictable twist
in &lt;em&gt;Better Watch Out&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Albeit dissimilar in the intent, both films make large use of violence during
their ninety minutes. &lt;em&gt;The Babysitter&lt;/em&gt; makes a laugh out of it, with overtly
obnoxious deaths and blood splattering everywhere as we are constantly reminded
this is just a joke. &lt;em&gt;Better Watch Out&lt;/em&gt; instead goes for the serious and scary
way, even condemning the use of violence as a comic tool at one point.
Unfortunately, it reassures its viewers that there is nothing to be afraid of by
pleasing them in the end.&lt;/p&gt;
&lt;p&gt;Aside from few exceptions (e.g., Paul Verhoeven), I find it difficult to
tolerate violence as entertainment. Unless used as a means to something else,
like satire or an inevitable part of dramatic events, indulging in gory details
generally adds nothing to the whole film. On the contrary, it usually fails to
hide a poor script and the lack of decent ideas. The thin line between futile
gimmick and necessary evil is too often missed.&lt;/p&gt;
&lt;p&gt;Worse than that, years and years of treating violence as something silly has
brain-washed many viewers. If you have ever been annoyed by people laughing at
the violence on screen at the cinema, you know what I mean. I remember some guys
right behind my seat laughing and cracking jokes at the death of Immortan Joe in
&lt;em&gt;Mad Max: Fury Road&lt;/em&gt;, completely ruining the dramatic effect of the scene. Who
knows, probably these are the same guys who will find the on-screen labels of
&lt;em&gt;The Babysitter&lt;/em&gt; smart and funny.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Simplify my Docker workflow with Emacs</title>
      <link>https://manueluberti.eu/posts/2017-10-19-docker/</link>
      <pubDate>Thu, 19 Oct 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-10-19-docker/</guid>
      <description>&lt;p&gt;Up until a few weeks ago, I had never messed with Docker. Not that I had
anything against it &lt;em&gt;per se&lt;/em&gt;, but never before had I felt the need to isolate my
work in containers that can be readily built up and torn down.&lt;/p&gt;
&lt;p&gt;Docker and its helpful companion Docker Compose come with a rich command-line
interface. Nonetheless, I don&amp;rsquo;t want to leave Emacs for simple tasks such as
building a Docker image or preparing the containers with Docker Compose.&lt;/p&gt;
&lt;p&gt;Fortunately, the Emacs ecosystem is ready to help. Four packages have improved
my workflow with Docker:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/spotify/dockerfile-mode&#34;&gt;dockerfile-mode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/meqif/docker-compose-mode&#34;&gt;docker-compose-mode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/emacs-pe/docker-tramp.el&#34;&gt;docker-tramp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Fuco1/eshell-bookmark&#34;&gt;eshell-bookmark&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The first two packages add syntax highlighting, completion and a bunch of useful
key bindings to work with &lt;code&gt;Dockerfile&lt;/code&gt; and &lt;code&gt;docker-compose.yml&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The real magic, though, happens with &lt;code&gt;docker-tramp&lt;/code&gt;. The beauty of interacting
directly with the contents of a container is impressive. Combine &lt;code&gt;docker-tramp&lt;/code&gt;
with the handy completion of &lt;a href=&#34;https://github.com/abo-abo/swiper&#34;&gt;counsel&lt;/a&gt; and
the power of Dired and you might feel like Henry Dorsett Case in his ecstatic
hunt for the Neuromancer.&lt;/p&gt;
&lt;p&gt;Through &lt;code&gt;docker-tramp&lt;/code&gt; I can also run EShell on any available container and that
is where &lt;code&gt;eshell-bookmark&lt;/code&gt; shines. I just have to bookmark a remote EShell
buffer and use &lt;code&gt;counsel-bookmark&lt;/code&gt; to jump back to it. Managing containers hardly
gets any faster than this.&lt;/p&gt;
&lt;p&gt;A little advice if you use both &lt;code&gt;counsel&lt;/code&gt; and &lt;code&gt;eshell-bookmark&lt;/code&gt;: do
not set &lt;code&gt;counsel-bookmark-avoid-dired&lt;/code&gt; to &lt;code&gt;t&lt;/code&gt;, otherwise selecting a bookmark
with &lt;code&gt;counsel-bookmark&lt;/code&gt; will take you to &lt;code&gt;counsel-find-file&lt;/code&gt; instead of opening
the desired EShell buffer.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>To shell or not to shell</title>
      <link>https://manueluberti.eu/posts/2017-10-07-m-x-shell/</link>
      <pubDate>Sat, 07 Oct 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-10-07-m-x-shell/</guid>
      <description>&lt;p&gt;As much as most of my daily workflow revolves around Emacs, I always have GNOME
terminal ready to fly with &lt;a href=&#34;https://fishshell.com&#34;&gt;Fish shell&lt;/a&gt; and
&lt;a href=&#34;https://github.com/tmux/tmux&#34;&gt;tmux&lt;/a&gt;. I keep EShell next to me for quick tasks,
but I have never relied on &lt;code&gt;shell-mode&lt;/code&gt; or &lt;code&gt;ansi-term&lt;/code&gt; for other CLI-intensive
work.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t know what happened to the lovely “Emacs Chat” series from Sacha Chua,
but more than three years ago &lt;a href=&#34;https://www.youtube.com/watch?v=JA4dqmDFt5Y&#34;&gt;she interviewed Mickey
Petersen&lt;/a&gt;. Mickey talked with great
enthusiasm about &lt;code&gt;shell-mode&lt;/code&gt; and at the time I admittedly made a mental note
about giving it a try. Regretfully, I have only recently come back to that note.&lt;/p&gt;
&lt;p&gt;My first &lt;code&gt;M-x&lt;/code&gt; &lt;code&gt;shell&lt;/code&gt; didn&amp;rsquo;t look that great. I haven&amp;rsquo;t debugged
the compatibility issues with Fish, probably something related to my heavily
customised &lt;code&gt;config.fish&lt;/code&gt;. Anyway, falling back to Bash is enough.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(validate-setq explicit-shell-file-name &amp;quot;/bin/bash&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that I am using &lt;code&gt;validate-setq&lt;/code&gt; as &lt;a href=&#34;https://manueluberti.eu/posts/2016-09-17-validate/&#34;&gt;I have already explained&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Another thing I have noticed is the lack of colours for the output of &lt;code&gt;ls&lt;/code&gt;.
Fortunately, Emacs StackExchange has an
&lt;a href=&#34;https://emacs.stackexchange.com/a/17484/5514&#34;&gt;answer&lt;/a&gt; for that, so I have added
this line to my &lt;code&gt;.bash_aliases&lt;/code&gt; file:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;alias ls=&amp;quot;TERM=ansi ls --color=always&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The input echoing is easily turned off following &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/efaq-w32/Shell-echo.html&#34;&gt;the
instructions&lt;/a&gt;
on the manual. Also, the history is much cleaner and easier to navigate with
&lt;code&gt;counsel-shell-history&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(unbind-key &amp;quot;C-c C-l&amp;quot; shell-mode-map)
(bind-key &amp;quot;C-c C-l&amp;quot; #&#39;counsel-shell-history shell-mode-map)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that &lt;code&gt;unbind-key&lt;/code&gt; and &lt;code&gt;bind-key&lt;/code&gt; are macros from &lt;code&gt;bind-key.el&lt;/code&gt;, which is
part of the fantastic &lt;code&gt;use-package&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Last but not least, I like to have my shell buffer filling the whole window in
the current frame. Thus, &lt;code&gt;display-buffer-alist&lt;/code&gt; to the rescue.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(validate-setq
 display-buffer-alist
 `(
   ;; … other stuff …
   (,(rx bos &amp;quot;*shell&amp;quot;)
    (display-buffer-same-window)
    (reusable-frames . nil))
   ;; … other stuff …
  ))
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    <item>
      <title>Taming closing delimiters in my s-expressions</title>
      <link>https://manueluberti.eu/posts/2017-09-17-syntactic-close/</link>
      <pubDate>Sun, 17 Sep 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-09-17-syntactic-close/</guid>
      <description>&lt;p&gt;As I explained when I wrote about &lt;a href=&#34;https://manueluberti.eu/posts/2017-04-29-clojureenv/&#34;&gt;my daily Clojure workflow&lt;/a&gt; I rely heavily on Smartparens for my editing. With
Lisp-like languages in particular, I enable &lt;code&gt;smartparens-strict-mode&lt;/code&gt; to keep my
s-expressions balanced even when I happen to use &lt;code&gt;delete-char&lt;/code&gt; or &lt;code&gt;kill-word&lt;/code&gt;
dangerously near a closing parenthesis.&lt;/p&gt;
&lt;p&gt;I have &lt;code&gt;sp-kill-sexp&lt;/code&gt; bound to &lt;code&gt;C-M-k&lt;/code&gt;, however out of habit I often
use &lt;code&gt;C-k&lt;/code&gt; to kill a line, which in my configuration is set up as
Artur Malabarba
&lt;a href=&#34;http://endlessparentheses.com/kill-entire-line-with-prefix-argument.html&#34;&gt;explained&lt;/a&gt;.
Doing that in the middle of an s-expression creates unnerving chaos.&lt;/p&gt;
&lt;p&gt;Smartparens comes with a handy binding to temporarily disable the enforced
balancing and let me insert a closing delimiter. Just pressing &lt;code&gt;C-q&lt;/code&gt;
followed by the desired matching parenthesis brings the order back.&lt;/p&gt;
&lt;p&gt;Unfortunately, it&amp;rsquo;s not always that easy. Take this snippet which appears at the
end of a ClojureScript function:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-clojure&#34;&gt;(when-not (empty? @data)
            [:div
             {:style {:padding &amp;quot;1em&amp;quot; :text-align &amp;quot;center&amp;quot;}}
             [graph]])]]))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Carelessly hitting &lt;code&gt;C-k&lt;/code&gt; near &lt;code&gt;[graph]&lt;/code&gt; disrupts an otherwise elegant
s-expression. I could undo, of course, but what if after &lt;code&gt;C-k&lt;/code&gt; I do
other kill-and-yank edits?&lt;/p&gt;
&lt;p&gt;This is exactly why I have come to love &lt;a href=&#34;https://github.com/emacs-berlin/syntactic-close&#34;&gt;syntactic-close&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(use-package syntactic-close            ; Automatically insert closing delimiter
  :ensure t
  :bind (&amp;quot;C-c x c&amp;quot; . syntactic-close))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As soon as I discover an unbalanced s-expression, I can use &lt;code&gt;C-c x c&lt;/code&gt;
as many times as needed to add back the right closing delimiters.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>A better workflow with workspaces</title>
      <link>https://manueluberti.eu/posts/2017-08-02-eyebrowse/</link>
      <pubDate>Wed, 02 Aug 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-08-02-eyebrowse/</guid>
      <description>&lt;p&gt;I am not a big fan of workspaces on my desktop environments, maybe because to me
&lt;code&gt;Alt-Tab&lt;/code&gt; is enough. To be honest, I was using workspaces back in my
&lt;a href=&#34;http://www.nongnu.org/ratpoison/&#34;&gt;Ratpoison&lt;/a&gt; days, but that is not the case any
more.&lt;/p&gt;
&lt;p&gt;Nevertheless, my daily workflow in Emacs improved so much with
&lt;a href=&#34;https://github.com/wasamasa/eyebrowse&#34;&gt;eyebrowse&lt;/a&gt; I can&amp;rsquo;t imagine going back to
a configuration without it.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(use-package eyebrowse                  ; Easy workspaces creation and switching
  :ensure t
  :config
  (validate-setq eyebrowse-mode-line-separator &amp;quot; &amp;quot;
                 eyebrowse-new-workspace t)

  (eyebrowse-mode t))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As you can see, I am pretty much leaving &lt;code&gt;eyebrowse&lt;/code&gt; with its default
settings. I removed the comma that was used as a separator between the workspace
numbers and made switching to a new workspace start from the &lt;code&gt;*scratch*&lt;/code&gt; buffer.&lt;/p&gt;
&lt;p&gt;Now my daily workflow in Emacs is thus organised:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Workspace #1: this is dedicated to my GTD project, which simply follows the
steps Nicolas Petton describes in &lt;a href=&#34;https://emacs.cafe/emacs/orgmode/gtd/2017/06/30/orgmode-gtd.html&#34;&gt;Orgmode for
GTD&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Workspace #2: this is for Clojure and ClojureScript development, so everything
from CIDER to project specific Magit buffers and EShells ends up here. In the
rare case I need to work on a different project, I create a new workspace.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Workspace #3: this is the “I need a break!” place. Elfeed is my preferred
choice for a quiet and informative distraction. Otherwise, if I just want to
hack on my Emacs configuration I do it here.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Combined with &lt;a href=&#34;https://github.com/bbatsov/projectile&#34;&gt;Projectile&lt;/a&gt;, &lt;code&gt;eyebrowse&lt;/code&gt;
is the definitive piece of the puzzle I was missing to have an optimised work
environment.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Every feed in its right place</title>
      <link>https://manueluberti.eu/posts/2017-08-01-elfeed/</link>
      <pubDate>Tue, 01 Aug 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-08-01-elfeed/</guid>
      <description>&lt;p&gt;Writing about Christopher Wellons&amp;rsquo; &lt;a href=&#34;https://github.com/skeeto/elfeed&#34;&gt;elfeed&lt;/a&gt; is
the least I can do to describe how thankful I am for this gem, especially since
it&amp;rsquo;s one of the Emacs packages I use the most.&lt;/p&gt;
&lt;p&gt;Up until last month, Twitter was useful to keep in touch with the IT and the
film criticism communities. However, for a while I had been finding myself in
dire need of a vacation from social media. The amount of time lost in pointless
time-line scrolling looking for the latest hip comment screamed to be spent
otherwise.&lt;/p&gt;
&lt;p&gt;I have always been a fan of RSS feeds, because having the news aggregated in one
place spares me the time of wandering the Internet. Twitter fought against my
feeds, giving the impression it was offering more up-to-date content along with
the false promise of an interaction that in fact was rarely happening.&lt;/p&gt;
&lt;p&gt;Before &lt;code&gt;elfeed&lt;/code&gt;, I tried my luck with different feed readers. Since a carefully
&lt;em&gt;tmux-ed&lt;/em&gt; terminal window is always part of my daily workflow, I fell in love
with &lt;a href=&#34;http://www.newsbeuter.org&#34;&gt;Newsbeuter&lt;/a&gt; a couple of years ago.&lt;/p&gt;
&lt;p&gt;However, as any Emacs fanatic would tell you, why leave the comfort of your
favourite text editor for something as mundane as RSS feeds?&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elfeed&lt;/code&gt; is more than a Newsbeuter replacement, though. Tags, filters and the
power of Emacs beneath its lean interface make feeds management easier than
ever. It&amp;rsquo;s also trivially extensible. Look at this simple trick to mark all the
feeds read when I am feeling too lazy.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-elfeed-mark-all-read ()
  &amp;quot;Mark all feeds as read.&amp;quot;
  (interactive)
  (call-interactively &#39;mark-whole-buffer)
  (elfeed-search-untag-all-unread))

(bind-key &amp;quot;R&amp;quot; #&#39;mu-elfeed-mark-all-read elfeed-search-mode-map)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;elfeed&lt;/code&gt; sorts feeds by time, with the most recent on top. This had been a bit
confusing at first, as I was used to having the feeds grouped by items with
Newsbeuter. Nevertheless, after a while this approach felt more natural, maybe
because it reminds me of the Twitter time-line.&lt;/p&gt;
&lt;p&gt;RSS feeds are an essential tool in this age of perennial distractions. Having
them readily available at my fingertips is invaluable.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Keeping your .emacs.d clean</title>
      <link>https://manueluberti.eu/posts/2017-06-17-nolittering/</link>
      <pubDate>Sat, 17 Jun 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-06-17-nolittering/</guid>
      <description>&lt;p&gt;How often do you have a look at your &lt;code&gt;.emacs.d&lt;/code&gt; directory? If you&amp;rsquo;re anything like
me, not that often. It&amp;rsquo;s no wonder then that upon opening it I was horrified to
see it cluttered with all sorts of files from all the packages I regularly use.&lt;/p&gt;
&lt;p&gt;Jonas Bernoulli, of &lt;a href=&#34;https://magit.vc/&#34;&gt;Magit&lt;/a&gt; fame, must be feeling similar concerns. Otherwise, why
did he come up with a package like &lt;a href=&#34;https://github.com/tarsius/no-littering&#34;&gt;no-littering&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;Installation is trivial, especially if you use the great &lt;code&gt;use-package&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(use-package no-littering               ; Keep .emacs.d clean
  :ensure t
  :config
  (require &#39;recentf)
  (add-to-list &#39;recentf-exclude no-littering-var-directory)
  (add-to-list &#39;recentf-exclude no-littering-etc-directory))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;No extra setup is required. Place this snippet somewhere at the beginning of
your &lt;code&gt;init.el&lt;/code&gt; file and you are set. Use Emacs for a while and then go back
checking &lt;code&gt;.emacs.d&lt;/code&gt;: nice, huh?&lt;/p&gt;
&lt;p&gt;To be honest, I wiped out my &lt;code&gt;.emacs.d&lt;/code&gt; directory and started from fresh with
&lt;code&gt;no-littering&lt;/code&gt; installed. Too much, maybe, but I was eager to see how good this
package is. And yes, it is good.&lt;/p&gt;
&lt;p&gt;House-cleaning has never been so easy.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The special effects of Tsui Hark</title>
      <link>https://manueluberti.eu/posts/2017-05-07-tsuihark/</link>
      <pubDate>Sun, 07 May 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-05-07-tsuihark/</guid>
      <description>&lt;p&gt;It took me a while to understand and finally appreciate Tsui Hark&amp;rsquo;s output
since 2010. Up until 2008&amp;rsquo;s &lt;em&gt;All About Women&lt;/em&gt; I had always come to grips with
his cinema, in one way or another. However, I still remember leaving the
screening of &lt;em&gt;Detective Dee and the Mystery of the Phantom Flame&lt;/em&gt; at Venice Film
Festival with more concerns for his career than excitement for what I had just
seen. Somehow I wasn&amp;rsquo;t able to buy his love for CGI and 3-D.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2017-05-07-journey_to_the_west.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Journey to the West: The Demons Strike Back (Tsui Hark, 2016)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Hindsight wisely taught me I was blatantly wrong. Tsui has always been
fascinated by special effects. Just think about both &lt;em&gt;Zu Warriors from the Magic
Mountain&lt;/em&gt; and &lt;em&gt;The Legend of Zu&lt;/em&gt;. And what is &lt;em&gt;Green Snake&lt;/em&gt; if not his overtly
personal exploration of the White Snake folk tale by means of graphic aids?&lt;/p&gt;
&lt;p&gt;Tsui Hark loves his visuals. He loves portraying stories and characters with
vibrant images and careful design. No wonder CGI has always interested him. It
enables him to stretch his skills further and devise new styles.&lt;/p&gt;
&lt;p&gt;Admittedly, his first takes on 3-D weren&amp;rsquo;t enough for him to convince me he was
on the right path. &lt;em&gt;The Flying Swords of Dragon Gate&lt;/em&gt; felt like an endless trick
and &lt;em&gt;Young Detective Dee: Rise of the Sea Dragon&lt;/em&gt; just didn&amp;rsquo;t work. Then came
&lt;em&gt;The Taking of Tiger Mountain&lt;/em&gt; which showed Tsui was still capable behind the
camera despite 3-D moves of little interest to my eyes.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2017-05-07-swordmaster.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Sword Master (Derek Yee, 2016)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s only with &lt;em&gt;Sword Master&lt;/em&gt; and &lt;em&gt;Journey to the West: The Demons Strike Back&lt;/em&gt;
that Tsui eventually unveils his unequivocal mastery of visual effects. &lt;em&gt;Sword
Master&lt;/em&gt; looks like a series of paintings where charming wuxia plots unfold.
Derek Yee is supposed to be the director, but it is clearly a Tsui Hark work
with his themes, his penchant for swords and blades and those villains that
reminded me of &lt;em&gt;Seven Swords&lt;/em&gt; at every fight.&lt;/p&gt;
&lt;p&gt;The second chapter of Stephen Chow&amp;rsquo;s own retelling of &lt;em&gt;Journey to the West&lt;/em&gt; goes
so far and above Chow&amp;rsquo;s first effort in terms of visual exaggeration that it is
impossible to describe. Tsui transforms the regular Chinese blockbuster in an
avant-garde fantasy where aesthetic drives the action.&lt;/p&gt;
&lt;p&gt;Stephen Chow has always avoid CGI as a tool for mimicking realism. Tsui embraces
this philosophy and lets the special effects build a vivid world out of the
fervid pages of the Chinese classic text.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s hard to tell what Tsui Hark next move is going to be. He trespassed and
reinvented the limits of cinema times and times again in his long career. He is
cinema&amp;rsquo;s most special effect.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Daily Clojure workflow</title>
      <link>https://manueluberti.eu/posts/2017-04-29-clojureenv/</link>
      <pubDate>Sat, 29 Apr 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-04-29-clojureenv/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s already been a month since I started &lt;a href=&#34;https://manueluberti.eu/posts/2017-03-12-anewjob/&#34;&gt;my new job&lt;/a&gt;. All is going well and just as expected, and it&amp;rsquo;s been
interesting to see how my carefully tuned Emacs configuration dealt with
everyday Clojure programming.&lt;/p&gt;
&lt;p&gt;Truth be told, I&amp;rsquo;ve never used Emacs consistently for work. Before Clojure
I mainly did Java and Emacs support for Java is not as good as what it offers
for other programming languages. Yes, I kept Emacs around for other stuff, but
it would be a dull lie to tell I was proudly using Emacs all day in the office.&lt;/p&gt;
&lt;p&gt;Anyway, Clojure is the new kid in town now so it&amp;rsquo;s Emacs all the way. The
obvious first choice is CIDER and I genuinely don&amp;rsquo;t have enough words to say how
wonderful it is. I couple it with clj-refactor and Smartparens to get the most
out of my coding experience.&lt;/p&gt;
&lt;p&gt;I especially love how CIDER enables me to switch easily between Clojure and
ClojureScript, with two REPLs ready to go and documentation just under my
fingertips. clj-refactor enriches exploratory development with hot reloading of
dependencies and handy change of missing requires.&lt;/p&gt;
&lt;p&gt;Then there is Projectile. Even on small Clojure projects we are using to test
available libraries there are plenty of files around. Mickey Petersen talks
about &lt;em&gt;tempo&lt;/em&gt; when it comes to using Emacs. Projectile guarantees you don&amp;rsquo;t lose
your tempo while working on projects of different sizes.&lt;/p&gt;
&lt;p&gt;What else? I don&amp;rsquo;t think Magit needs my over enthusiastic words. Ivy is proving
to be the right tool at the right time, with Swiper ever so helpful. And now
I am only waiting for the day we will need proper documents to bring out the
almighty AUCTeX.&lt;/p&gt;
&lt;p&gt;In the immortal words of &lt;a href=&#34;https://www.youtube.com/watch?v=8wLwbpCxRf0&#34;&gt;Bozhidar Batsov&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Emacs is power.&lt;br&gt;
Emacs is magic.&lt;br&gt;
Emacs is fun.&lt;br&gt;
Emacs is forever.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    <item>
      <title>Clojure it is</title>
      <link>https://manueluberti.eu/posts/2017-03-12-anewjob/</link>
      <pubDate>Sun, 12 Mar 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-03-12-anewjob/</guid>
      <description>&lt;p&gt;Last Friday I finally told my boss that I am going to leave his company for
another job.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s not the first time in my working life that I want to move to greener
pastures. For different reasons I changed jobs quite a lot in the last 10
years. However, this is the first time that I made my decision based on the
programming language being used in the office.&lt;/p&gt;
&lt;p&gt;As much as I had fun &lt;a href=&#34;https://manueluberti.eu/posts/2016-10-22-java8-experience/&#34;&gt;working with Java 8&lt;/a&gt;, in the last months there has been little of it. Bouncing back and forth
between Java 7 and PHP 5.6 for legacy code maintenance is not exactly my idea of
fun.&lt;/p&gt;
&lt;p&gt;Both Clojure and functional programming changed the way I think about solving
problems with code. I often found myself thinking outside the boundaries of OOP,
craving for pure and higher-order functions, all of which are just out of reach
in the aforementioned versions of Java and PHP.&lt;/p&gt;
&lt;p&gt;The adoption of Clojure by Italian software houses is still close to none.
It&amp;rsquo;s been a while since I started looking for a job with Clojure, but until now
the only opportunities I found required moving to another country. I even tried
to convince myself I was willing to pack my bags again, but family comes first
and deep in my heart I knew I couldn&amp;rsquo;t ask my wife to leave everything behind.&lt;/p&gt;
&lt;p&gt;Imagine my shock when I heard that 7bridges was hiring. Marco Dalla Stella, CTO
and Co–founder of the company, is the man who guided me through my first steps
with Clojure. It was him, 2 years ago, who pointed me to &lt;em&gt;Programming Clojure&lt;/em&gt;
and &lt;em&gt;The Joy of Clojure&lt;/em&gt;. It was him who joined me for a trip to Bologna where
LambdaCon happened. He&amp;rsquo;s also an Emacs user, which means he must be one of the
good guys.&lt;/p&gt;
&lt;p&gt;And now I can&amp;rsquo;t wait to start working with Clojure for real. I celebrated the
beginning of this new adventure with a new Dell XPS 13 which will surely be
perfect for what I have in mind.&lt;/p&gt;
&lt;p&gt;Eventually, Clojure it is.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Dynamically change font size in Emacs</title>
      <link>https://manueluberti.eu/posts/2017-02-26-dynamicfonts/</link>
      <pubDate>Sun, 26 Feb 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-02-26-dynamicfonts/</guid>
      <description>&lt;p&gt;I take my Emacs configuration with me on every computer I use. I also plug a big
external display —and the awesome Das Keyboard 4 Ultimate— during long coding
sessions, so it is only natural that I have to tailor my setup to accommodate
different font sizes.&lt;/p&gt;
&lt;p&gt;Being the customizable editor that Emacs is, it wasn&amp;rsquo;t hard to devise a neat
trick to please my needs.&lt;/p&gt;
&lt;p&gt;First, a simple function to set the default fonts.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-setup-main-fonts (default-height variable-pitch-height)
  &amp;quot;Set up default fonts.

Use DEFAULT-HEIGHT for default face and VARIABLE-PITCH-HEIGHT
for variable-pitch face.&amp;quot;
  (set-face-attribute &#39;default nil
                      :family &amp;quot;Source Code Pro&amp;quot;
                      :height default-height)
  (set-face-attribute &#39;variable-pitch nil
                      :family &amp;quot;Fira Sans&amp;quot;
                      :height variable-pitch-height
                      :weight &#39;regular))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now I just have to call this function with the proper values for &lt;code&gt;:height&lt;/code&gt;
according to the screen size.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(when window-system
  (if (&amp;gt; (x-display-pixel-width) 1800)
      (mu-setup-main-fonts 150 160)
    (mu-setup-main-fonts 130 140)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Of course, more specific settings for various display resolutions are just a
&lt;code&gt;cond&lt;/code&gt; away.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Automatic language detection for Flyspell</title>
      <link>https://manueluberti.eu/posts/2017-02-04-guess-language/</link>
      <pubDate>Sat, 04 Feb 2017 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2017-02-04-guess-language/</guid>
      <description>&lt;p&gt;I am always looking for new ways to improve my Emacs experience. Months ago, it
happened to my spell-checking configuration thanks to the work
of &lt;a href=&#34;https://github.com/NicolasPetton&#34;&gt;Nicolas Petton&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defvar mu-languages-ring nil &amp;quot;Languages ring for Ispell&amp;quot;)

(let ((languages &#39;(&amp;quot;en_GB&amp;quot; &amp;quot;it_IT&amp;quot;)))
  (validate-setq mu-languages-ring (make-ring (length languages)))
  (dolist (elem languages) (ring-insert mu-languages-ring elem)))

(defun mu-cycle-ispell-languages ()
  (interactive)
  (let ((language (ring-ref mu-languages-ring -1)))
    (ring-insert mu-languages-ring language)
    (ispell-change-dictionary language)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This handy code lets me cycle quickly through the languages I need in
Flyspell. However, wouldn&amp;rsquo;t it be easier if Emacs was capable of automatic
language detection?&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s the hole
the &lt;a href=&#34;https://github.com/tmalsburg/guess-language.el&#34;&gt;guess-language&lt;/a&gt; package
fills.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(use-package guess-language         ; Automatically detect language for Flyspell
  :ensure t
  :defer t
  :init (add-hook &#39;text-mode-hook #&#39;guess-language-mode)
  :config
  (setq guess-language-langcodes &#39;((en . (&amp;quot;en_GB&amp;quot; &amp;quot;English&amp;quot;))
                                   (it . (&amp;quot;it_IT&amp;quot; &amp;quot;Italian&amp;quot;)))
        guess-language-languages &#39;(en it)
        guess-language-min-paragraph-length 45)
  :diminish guess-language-mode)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Notice how I set &lt;code&gt;guess-language-langcodes&lt;/code&gt;. It has to be set this way to make
&lt;code&gt;guess-language&lt;/code&gt; work with &lt;a href=&#34;https://manueluberti.eu/posts/2016-06-06-spellchecksetup/&#34;&gt;my setup for Hunspell&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Support for different languages and language detection for multiple languages in
the same document are provided out of the box. &lt;code&gt;guess-language&lt;/code&gt; is still young,
but it&amp;rsquo;s already making spell-checking in Emacs so much easier.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>My 2016 in films</title>
      <link>https://manueluberti.eu/posts/2016-12-29-my2016/</link>
      <pubDate>Thu, 29 Dec 2016 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2016-12-29-my2016/</guid>
      <description>&lt;p&gt;Instead of a list of the best films I saw this year, I would like to take a
different approach. I keep track of every film I watch, so it is easy to
highlight what really matters. Be it a classic from the 40s or a lost gem of the
90s, cinema is always much more than a mere round up.&lt;/p&gt;
&lt;p&gt;The first two films I watched in 2016 have lasted in my heart throughout the
whole year: Buñuel&amp;rsquo;s &lt;em&gt;Belle de Jour&lt;/em&gt; and Fellini&amp;rsquo;s &lt;em&gt;8½&lt;/em&gt;. Enough has already been
written about these masterpieces, and I do not feel up to the task of exploring
them critically. If I had to pick a word to describe the powerful feelings both
of them left me with I would use “contemporary”.&lt;/p&gt;
&lt;p&gt;I filled January and early February with other classics: &lt;em&gt;Aguirre the Wrath of
God&lt;/em&gt;, &lt;em&gt;The Apartment&lt;/em&gt;, &lt;em&gt;All About Eve&lt;/em&gt;, &lt;em&gt;Bonnie and Clyde&lt;/em&gt;, &lt;em&gt;Bride of
Frankenstein&lt;/em&gt;, &lt;em&gt;City Lights&lt;/em&gt;, &lt;em&gt;Modern Times&lt;/em&gt;, &lt;em&gt;Beauty and the Beast&lt;/em&gt;, &lt;em&gt;On the
Waterfront&lt;/em&gt;. For one reason or another, I had always put these masterpieces
aside until the beginning of 2016. Shame on me.&lt;/p&gt;
&lt;p&gt;Alongside these viewings, I caught the good &lt;em&gt;Straight Outta Compton&lt;/em&gt;, the great
&lt;em&gt;White God&lt;/em&gt; and the interesting &lt;em&gt;Anomalisa&lt;/em&gt;. 2016 has been a year of many
deaths, so I mourned the loss of Alan Rickman with tears over &lt;em&gt;Truly Madly
Deeply&lt;/em&gt; and sad laughs with one of my all-time favourite &lt;em&gt;Galaxy Quest&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;During the first months of 2016, I discovered the works of Gina
Prince-Bythewood, with &lt;em&gt;Beyond the Lights&lt;/em&gt; heading the lot, before Hong Kong
cinema nostalgia kicked back hard. Thus Peter Chan, Ching Siu-Tung, Wilson Yip,
Johnny Wang, Patrick Leung, Wong Jing, Jeff Lau, Ringo Lam, Soi Cheang, Ann Hui,
Kirk Wong and Tsui Hark sneaked right before I watched both the fantastic
Johnnie To&amp;rsquo;s &lt;em&gt;Office&lt;/em&gt; and Stephen Chow&amp;rsquo;s &lt;em&gt;The Mermaid&lt;/em&gt;. Johnnie To came back
later in the year with another hit: &lt;em&gt;Three&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I did not manage to see them when they were out in 2015, but &lt;em&gt;Listen to Me
Marlon&lt;/em&gt; and &lt;em&gt;Shaun the Sheep Movie&lt;/em&gt; deserve a mention. The former is one of the
most fascinating documentaries I have seen, while the latter can easily make
anyone laugh without uttering a word.&lt;/p&gt;
&lt;p&gt;Following &lt;em&gt;Citizenfour&lt;/em&gt;, I tracked down the other works of Laura Poitras. The
director is investigating on our political and economical world with an eye of
her own.&lt;/p&gt;
&lt;p&gt;While &lt;em&gt;Miles Ahead&lt;/em&gt;, &lt;em&gt;Midnight Special&lt;/em&gt; and &lt;em&gt;Snowden&lt;/em&gt; did not strike me as
something I will remember, Bhansali&amp;rsquo;s &lt;em&gt;Bajirao Mastani&lt;/em&gt; is everything &lt;em&gt;The
Jungle Book&lt;/em&gt; is not, and Guzman&amp;rsquo;s &lt;em&gt;The Pearl Button&lt;/em&gt; is what I hoped &lt;em&gt;Fire at
Sea&lt;/em&gt; could be.&lt;/p&gt;
&lt;p&gt;I will soon return to Park Chan-wook&amp;rsquo;s &lt;em&gt;The Handmaiden&lt;/em&gt;, because it puzzled me
more than any other film this year. South Korea and Japan delivered a couple of
entries for the zombie horror genre that surprised me in lots of good ways:
&lt;em&gt;Train to Busan&lt;/em&gt; and &lt;em&gt;I Am a Hero&lt;/em&gt;. Japan also left a mark on the monster genre
with the outstanding &lt;em&gt;Shin Gojira&lt;/em&gt;. Only Verhoeven&amp;rsquo;s &lt;em&gt;Elle&lt;/em&gt; matched the same
high expectations that drove me up to the screen before the viewing.&lt;/p&gt;
&lt;p&gt;2016 saw Jia Zhangke once again stealing my heart with his mesmerizing
&lt;em&gt;Mountains May Depart&lt;/em&gt;. Why it is not near the top of all the best-of lists out
there is beyond my comprehension.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Miss Okusai&lt;/em&gt; showed Japan animation is still one or two steps ahead the rest of
the world, but it would not be fair to leave the beautiful &lt;em&gt;Kubo and the Two
Strings&lt;/em&gt; out of this recap.&lt;/p&gt;
&lt;p&gt;A year in films is not properly summed up unless I mention my guilty pleasures.
&lt;em&gt;Wild Card&lt;/em&gt; is Statham like he has never been, and &lt;em&gt;The Shallows&lt;/em&gt; overtook my
doubts about another shark-attack film within ten minutes I was in.&lt;/p&gt;
&lt;p&gt;I have not seen many critic&amp;rsquo;s favourite yet, but I cannot complain. 2016 proved
to be a great year to be a cinema lover.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Format XML in Emacs</title>
      <link>https://manueluberti.eu/posts/2016-12-03-xmllint/</link>
      <pubDate>Sat, 03 Dec 2016 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2016-12-03-xmllint/</guid>
      <description>&lt;p&gt;Since I deal with many SOAP web services for work, I also have to deal with lots
of XML files. In the application server log they usually appear on one line,
which makes the reading unnecessarily painful. Fortunately, Emacs coupled with
the handy &lt;code&gt;xmllint&lt;/code&gt; comes to the rescue.&lt;/p&gt;
&lt;p&gt;First, I installed &lt;code&gt;xmllint&lt;/code&gt; with: &lt;code&gt;sudo apt-get install libxml2-utils&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now I could format my XML buffers with: &lt;code&gt;C-x h C-u M-|&lt;/code&gt; &lt;code&gt;xmllint -format -&lt;/code&gt; &lt;code&gt;RET&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;However, this is Emacs, so there is always a more productive way to solve
problems. Why should I have to input the options for &lt;code&gt;xmllint&lt;/code&gt; or remember the
necessary key bindings all the times?&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-xml-format ()
  &amp;quot;Format an XML buffer with `xmllint&#39;.&amp;quot;
  (interactive)
  (shell-command-on-region (point-min) (point-max)
                           &amp;quot;xmllint -format -&amp;quot;
                           (current-buffer) t
                           &amp;quot;*Xmllint Error Buffer*&amp;quot; t))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Since I only need this utility in XML buffers, I bound it for &lt;code&gt;nxml-mode-map&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(use-package nxml-mode                  ; XML editing
  :mode &amp;quot;\\.xml\\&#39;&amp;quot;
  :bind (:map nxml-mode-map
              (&amp;quot;C-c m f&amp;quot; . mu-xml-format))
…
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    <item>
      <title>Usefulnessless</title>
      <link>https://manueluberti.eu/posts/2016-11-26-usefulnessless/</link>
      <pubDate>Sat, 26 Nov 2016 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2016-11-26-usefulnessless/</guid>
      <description>&lt;p&gt;Unexpectedly, it took me more than usual to process Oliver Stone&amp;rsquo;s &lt;em&gt;Snowden&lt;/em&gt;. It
is not a convoluted film nor its craft stroke me as the more rewarding &lt;em&gt;JFK&lt;/em&gt;. It
is its inexplicable &lt;em&gt;usefulnessless&lt;/em&gt; that kept tormenting my brain days after
the viewing.&lt;/p&gt;
&lt;p&gt;![](/images/2016-11-26-usefulnessless.jpeg &amp;ldquo;Snowden (Oliver Stone, 2016))&lt;/p&gt;
&lt;p&gt;On various occasions, Edward Snowden referred to himself as being just a piece
of the bigger picture, the least significant detail of an ongoing narrative. It
is, and always has been, the bigger picture what we have to care about.&lt;/p&gt;
&lt;p&gt;In this respect, Stone did surprisingly well. &lt;em&gt;Snowden&lt;/em&gt; dodges the misleading
trailer and carefully balances the man and the story. It delivers an on point
drama not that much concerned with Edward Snowden&amp;rsquo;s private life. And for once,
cinema treats computer culture with decency.&lt;/p&gt;
&lt;p&gt;However, the same question I asked myself at the end of the film still resonates
with me. Put it bluntly: what is the point of &lt;em&gt;Snowden&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;The vital importance of Edward Snowden&amp;rsquo;s actions should never be underestimated,
nonetheless Laura Poitras&amp;rsquo;s outstanding &lt;em&gt;Citizenfour&lt;/em&gt; is out there for everyone
to watch and learn from. Edward Snowden himself is streaming talks and
interviews from Russia regularly and looks alive and well on Twitter. Following
the consequences of his disclosures is just a click away. This easily rules out
my first thought: Stone is not aiming to spread the message, unless he thinks
awfully low of his viewers.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Snowden&lt;/em&gt; fictionalizes many scenes from &lt;em&gt;Citizenfour&lt;/em&gt;, staying as close as
possible to the source material. Together these scenes turn out to be a
fictional documentary that relies heavily upon an actual documentary, resulting
in a trite exercise of style. It might serves the narration well, but it runs
the risk of hiding the real work from the ones who have not seen it yet.&lt;/p&gt;
&lt;p&gt;Then again, if &lt;em&gt;Citizenfour&lt;/em&gt; already tells it the way it has to be told, what
was Stone hoping to achieve? Of all the things we could have done after watching
&lt;em&gt;Snowden&lt;/em&gt;, speculating about its objective is the most trivial one.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Scala in Emacs with ENSIME</title>
      <link>https://manueluberti.eu/posts/2016-11-01-ensime/</link>
      <pubDate>Tue, 01 Nov 2016 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2016-11-01-ensime/</guid>
      <description>&lt;p&gt;As an amateur Clojure developer, I am particularly fond
of &lt;a href=&#34;https://github.com/clojure-emacs/cider&#34;&gt;CIDER&lt;/a&gt;. It brings everything I need
to program with Clojure right inside my favourite text editor.&lt;/p&gt;
&lt;p&gt;Therefore, when I approached Scala one of the first things I did was looking for
something similar to CIDER. I hate leaving Emacs for programming tasks, so
having it ready for Scala was paramount. Fortunately, it did not take me long to
find my way: &lt;a href=&#34;https://ensime.github.io/&#34;&gt;ENSIME&lt;/a&gt; was right around the corner.&lt;/p&gt;
&lt;p&gt;ENSIME supports the famous &lt;a href=&#34;http://www.scala-sbt.org/&#34;&gt;sbt&lt;/a&gt; build tool, and the
documentation gently guides you through all the necessary steps to achieve a
working setup. It is really a matter of minutes.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/ensime.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;A nice trick I grabbed straight from &lt;a href=&#34;https://github.com/fommil&#34;&gt;Sam Halliday&lt;/a&gt;
&lt;code&gt;init.el&lt;/code&gt; is:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(remove-hook &#39;post-self-insert-hook
             &#39;scala-indent:indent-on-parentheses)

(sp-local-pair &#39;scala-mode &amp;quot;(&amp;quot; nil
               :post-handlers &#39;((&amp;quot;||\n[i]&amp;quot; &amp;quot;RET&amp;quot;)))
(sp-local-pair &#39;scala-mode &amp;quot;{&amp;quot; nil
               :post-handlers &#39;((&amp;quot;||\n[i]&amp;quot; &amp;quot;RET&amp;quot;) (&amp;quot;| &amp;quot; &amp;quot;SPC&amp;quot;)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This code lets the awesome &lt;a href=&#34;https://github.com/Fuco1/smartparens&#34;&gt;Smartparens&lt;/a&gt;
take care of parentheses in Scala buffers. Another handy solution comes from
&lt;a href=&#34;https://github.com/lunaryorn&#34;&gt;Sebastian Wiesner&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(defun mu-scala-pop-to-sbt (new-frame)
    &amp;quot;Open SBT REPL for this project, optionally in a NEW-FRAME.

Select the SBT REPL for the current project in a new window.  If
the REPL is not yet running, start it.  With prefix arg, select
the REPL in a new frame instead.&amp;quot;
(interactive &amp;quot;P&amp;quot;)
;; Start SBT when no running, taken from `sbt:command&#39;
(when (not (comint-check-proc (sbt:buffer-name)))
  (sbt:run-sbt))
(let ((display-buffer-overriding-action
       (if new-frame &#39;(display-buffer-pop-up-frame) nil)))
  (pop-to-buffer (sbt:buffer-name))))

(with-eval-after-load &#39;scala-mode
  (bind-key &amp;quot;C-c m s&amp;quot; #&#39;mu-scala-pop-to-sbt scala-mode-map))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I just started my journey with Scala but I can safely say ENSIME could be the
perfect companion.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Reflecting on my Java 8 experience</title>
      <link>https://manueluberti.eu/posts/2016-10-22-java8-experience/</link>
      <pubDate>Sat, 22 Oct 2016 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2016-10-22-java8-experience/</guid>
      <description>&lt;p&gt;After four months of being back to Java for work, I would like to share my
impressions about Java 8. Mind you, this is my first time with Java 8 on a
project, so I do not consider myself an expert on the subject. What I can
promptly say, though, is this: I have &lt;em&gt;never&lt;/em&gt; had so much fun using Java before.&lt;/p&gt;
&lt;p&gt;One of the reasons I have been partly away from Java since 2012 is that I have
been more and more dragged towards functional programming (FP from now on). It
all started with my fascination with Emacs and Emacs Lisp, then Scheme and
Clojure hit my curiosity harder. Recently, Scala has been insinuating in my
brain. You can already see a pattern here, can&amp;rsquo;t you? FP stole my heart.&lt;/p&gt;
&lt;p&gt;I knew Java 8 stormed the object-oriented (OO from now on) community with plenty
of FP material, but it took a new, big project and the
brilliant &lt;a href=&#34;https://www.manning.com/books/java-8-in-action&#34;&gt;Java 8 In Action&lt;/a&gt; to
convince me I could go more functional than I was hoping for.&lt;/p&gt;
&lt;p&gt;The team I work with comes from a purely OO mindset, so I was a bit reluctant to
introduce FP ideas and solutions. I jumped right in the middle of the
development, with a large codebase already there before the time of my
arrival. The only hint of Java 8 I found was a single use of &lt;code&gt;forEach&lt;/code&gt; with a
lambda expression in it.&lt;/p&gt;
&lt;p&gt;I then began using lambda expressions, streams and the &lt;code&gt;Optional&lt;/code&gt; class in
utility classes and enumerators I could quickly write unit tests for. The
benefits were immediately evident: my code was getting clearer and concise, and
programming in a declarative fashion made it easier to read and understand. My
aim exactly.&lt;/p&gt;
&lt;p&gt;To the rest of the team it all looked like syntactic sugar at first. One team
member advised me to spread lambdas as little as possible. Fortunately, he soon
came to appreciate my efforts and suggested not to be afraid of refactoring code
smells if I felt like it.&lt;/p&gt;
&lt;p&gt;As much as I like working with lambdas and streams, not to mention &lt;code&gt;LocalDate&lt;/code&gt;,
the Java 8 feature that really shines in our codebase is &lt;code&gt;CompletableFuture&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;We have a bunch of operations that need to be asynchronous. Basically, they
collect data from different web services to then build a composite response for
the client. The first implementation of asynchronous operations was using
&lt;code&gt;Future&lt;/code&gt; and &lt;code&gt;Callable&lt;/code&gt;. It was working fine, but the logic behind error
handling was a mess of &lt;code&gt;try {…} catch {…}&lt;/code&gt; copied and pasted in different
places. Moreover, the &lt;code&gt;Callable&lt;/code&gt; classes were just &lt;code&gt;switch&lt;/code&gt; statements bound to
get bigger and bigger.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CompletableFuture&lt;/code&gt; made everything better. I wrapped each asynchronous
operation in a &lt;code&gt;CompletableFuture&lt;/code&gt;, removing the unneeded &lt;code&gt;Callable&lt;/code&gt;. It is not
hard now to comprehend the logic behind the algorithm, because it is definitely
simpler than before. Error handling is just a matter of dealing with three
possible exceptions.&lt;/p&gt;
&lt;p&gt;Java 8 is neither Scala nor Clojure, but as a functional programmer wannabe it
makes me appreciate Java again.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Schema validation for my Emacs configuration</title>
      <link>https://manueluberti.eu/posts/2016-09-17-validate/</link>
      <pubDate>Sat, 17 Sep 2016 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2016-09-17-validate/</guid>
      <description>&lt;p&gt;Maintaining an ever-growing Emacs configuration is both fun and exhausting. It
is easy to forget why I picked &lt;em&gt;that&lt;/em&gt; value for a variable or how in the name of
Elisp that weird snippet ended up in my init.el. The more packages I install to
extend my beloved text editor, the harder it is to keep track of all the changes
the prolific authors put out every day.&lt;/p&gt;
&lt;p&gt;Artur Malabarba must understand my frustration pretty well, or at least that was
my first reaction to his
recent &lt;a href=&#34;https://github.com/Malabarba/validate.el&#34;&gt;validate&lt;/a&gt; library.&lt;/p&gt;
&lt;p&gt;The library has a pretty neat API, which I am sure will turn out to come in
handy for all the Elisp developers out there. However, so far I have been
focusing on the &lt;code&gt;validate-setq&lt;/code&gt; macro only. &lt;code&gt;validate-setq&lt;/code&gt; adds validation to
the regular &lt;code&gt;setq&lt;/code&gt;, making it super-easy to catch mistakes that can be
surprisingly hard to find.&lt;/p&gt;
&lt;p&gt;An example:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(use-package nrepl-client               ; Client for Clojure nREPL
  :ensure cider
  :defer t
  :config (validate-setq nrepl-hide-special-buffers &#39;yes))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If I evaluate this expression, I get a clear error message:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Error (use-package): nrepl-client :config: Looking for ‘(boolean)&#39; in
‘yes&#39; failed because: not a boolean
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I was setting a lot of variables before the related package was required. I also
found settings for variables that do not exist any more. Why Emacs was not
catching these errors upon loading is still an ongoing investigation.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;validate&lt;/code&gt; is available on GNU ELPA. Do not miss it.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Adding CHICKEN Scheme support to Flycheck</title>
      <link>https://manueluberti.eu/posts/2016-07-23-flycheckchicken/</link>
      <pubDate>Sat, 23 Jul 2016 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2016-07-23-flycheckchicken/</guid>
      <description>&lt;p&gt;There is no need for me to tell you how great &lt;a href=&#34;http://www.flycheck.org/&#34;&gt;Flycheck&lt;/a&gt; is. If you do not trust
me, at least trust &lt;a href=&#34;https://www.masteringemacs.org/article/spotlight-flycheck-a-flymake-replacement&#34;&gt;Mickey Petersen&lt;/a&gt; on this.&lt;/p&gt;
&lt;p&gt;Since I have been playing around with &lt;a href=&#34;http://call-cc.org/&#34;&gt;CHICKEN Scheme&lt;/a&gt; for quite some time now, it
seemed only natural to wish for on-the-fly syntax checking. Why limit myself to
wishing, though? Why do not push it a little further and try to help Flycheck
maintainers?&lt;/p&gt;
&lt;p&gt;Before starting any coding, I took the time to read the &lt;a href=&#34;http://www.flycheck.org/en/latest/contributor/contributing.html&#34;&gt;Contributor&amp;rsquo;s Guide&lt;/a&gt;.
Like all of Flycheck documentation, the Contributor&amp;rsquo;s Guide is well-written and
easy to understand. The guidelines about &lt;a href=&#34;http://www.flycheck.org/en/latest/contributor/contributing.html#pull-requests&#34;&gt;pull requests&lt;/a&gt; and &lt;a href=&#34;http://www.flycheck.org/en/latest/contributor/contributing.html#commit-guidelines&#34;&gt;commit messages&lt;/a&gt;, in
particular, put me on the right track.&lt;/p&gt;
&lt;p&gt;I forked the Flycheck&amp;rsquo;s repository and started going through the code in
&lt;a href=&#34;https://github.com/flycheck/flycheck/blob/master/flycheck.el&#34;&gt;flycheck.el&lt;/a&gt;. The lack of experience brought me to shamelessly copying the Racket
checker and trying to figure out how it worked. It was not too hard to
understand, but maybe starting with the Perl checker — see &lt;a href=&#34;http://www.flycheck.org/en/latest/user/flycheck-versus-flymake.html&#34;&gt;here&lt;/a&gt; — would have
been a better choice. Nonetheless, I stole the idea of having &lt;a href=&#34;http://www.nongnu.org/geiser/&#34;&gt;Geiser&lt;/a&gt; as a
requirement from the Racket checker.&lt;/p&gt;
&lt;p&gt;Anyway, it was not time to code yet. I needed to understand if on-the-fly syntax
checking in CHICKEN Scheme would be possible at all. Flycheck gives you the
power to work with different syntax checkers within the same interface, but
I didn&amp;rsquo;t know of a similar checker for CHICKEN Scheme.&lt;/p&gt;
&lt;p&gt;With some help on the &lt;code&gt;#chicken&lt;/code&gt; IRC channel and from &lt;a href=&#34;https://twitter.com/vbuaraujo&#34;&gt;Vítor De Araújo&lt;/a&gt; on Twitter,
I was able to devise my first attempt and create the proper &lt;a href=&#34;https://github.com/flycheck/flycheck/pull/987&#34;&gt;pull request&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And that is when the real magic started.&lt;/p&gt;
&lt;p&gt;I knew Flycheck maintainers are kind and helpful because I had already had some
chances to interact with them, but I cannot remember the last time I worked on
something with &lt;em&gt;this&lt;/em&gt; kind of patient assistance.&lt;/p&gt;
&lt;p&gt;Questions promptly answered, suggestions readily available. My code kept getting
better and better. Useless lines were removed, documentation was added and the
integration test felt like the right thing to do.&lt;/p&gt;
&lt;p&gt;I learnt a lot and could not be happier with the result. I hope I will be able
to contribute to Flycheck again. Moreover, I do hope every project I wish to
contribute to can follow the Flycheck&amp;rsquo;s community example.&lt;/p&gt;
&lt;p&gt;Now go enjoy your on-the-fly syntax checking with CHICKEN Scheme.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Spell-checking with Hunspell and flyspell-correct</title>
      <link>https://manueluberti.eu/posts/2016-06-06-spellchecksetup/</link>
      <pubDate>Mon, 06 Jun 2016 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2016-06-06-spellchecksetup/</guid>
      <description>&lt;p&gt;In order to simplify the portability of my Emacs setup, I devised a useful shell
script to install everything my needs.&lt;/p&gt;
&lt;p&gt;Recently I abandoned &lt;code&gt;aspell&lt;/code&gt; in favour of &lt;code&gt;hunspell&lt;/code&gt;, so the script has been
updated accordingly. However, &lt;code&gt;hunspell&lt;/code&gt; needs some dictionaries to work with
and they are not readily available as Debian packages, but as &lt;a href=&#34;http://extensions.libreoffice.org/&#34;&gt;LibreOffice
Extensions&lt;/a&gt;. Therefore, I just need to copy
the files over to &lt;code&gt;/usr/share/hunspell&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A quick test with &lt;code&gt;hunspell -D&lt;/code&gt; shows all is set up correctly.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-console&#34;&gt;$ hunspell -D
[…]
AVAILABLE DICTIONARIES (path is not mandatory for -d option):
/usr/share/hunspell/en_GB
/usr/share/hunspell/it_IT
/usr/share/hunspell/en_US
[…]

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Emacs Lisp takes care of the rest.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(setq ispell-program-name (executable-find &amp;quot;hunspell&amp;quot;)
      ispell-dictionary &amp;quot;en_GB&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I write both in English and Italian, so the spell-checker must be able to switch
dictionary on demand.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(bind-key &amp;quot;C-c I&amp;quot;
          (lambda ()
            (interactive)
            (ispell-change-dictionary &amp;quot;it_IT&amp;quot;)
            (flyspell-buffer)))

(bind-key &amp;quot;C-c E&amp;quot;
          (lambda ()
            (interactive)
            (ispell-change-dictionary &amp;quot;en_GB&amp;quot;)
            (flyspell-buffer)))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To make things nicer,
&lt;a href=&#34;https://github.com/d12frosted/flyspell-correct&#34;&gt;flyspell-correct&lt;/a&gt; makes
Flyspell propose the suggested corrections via the always reliable Ivy.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;(use-package flyspell-correct-ivy
  :ensure t
  :demand t
  :bind (:map flyspell-mode-map
              (&amp;quot;C-c $&amp;quot; . flyspell-correct-word-generic)))
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    <item>
      <title>Recentre the buffer when leaving Swiper</title>
      <link>https://manueluberti.eu/posts/2016-05-30-swiperrecenter/</link>
      <pubDate>Mon, 30 May 2016 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2016-05-30-swiperrecenter/</guid>
      <description>&lt;p&gt;I always talk enthusiastically about
&lt;a href=&#34;https://github.com/abo-abo/swiper&#34;&gt;Ivy&lt;/a&gt;. As a once heavy Helm user, I remember
being afraid of regretting the complete switch to Ivy after a few days. It did
not happen, and since I made the move I have only found Ivy — and the related
packages Swiper and Counsel — consistently getting better and better.&lt;/p&gt;
&lt;p&gt;Swiper has soon become my preferred in-buffer searching tool. Only one minor
thing was disturbing me. After selecting the right candidate with
&lt;code&gt;RET&lt;/code&gt;, the screen scrolled unpredictably at the top, centre, or bottom
of the buffer.&lt;/p&gt;
&lt;p&gt;This is due to calculations behind the scenes about windows size, as Oleh Krehel
explained
&lt;a href=&#34;https://github.com/abo-abo/swiper/issues/116#issuecomment-218381046&#34;&gt;here&lt;/a&gt;. Fortunately,
he was kind enough to introduce a handy &lt;code&gt;defcustom&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;;; Always recentre when leaving Swiper
(setq swiper-action-recenter t)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now every time I leave Swiper the screen is left centred. Furthermore, it is
possible to keep the screen centred even during candidate selection in Swiper by
pressing &lt;code&gt;C-M-n&lt;/code&gt; or &lt;code&gt;C-M-p&lt;/code&gt; instead of &lt;code&gt;C-n&lt;/code&gt; or
&lt;code&gt;C-p&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I do not mind the scrolling when Swiper is active, but I do like having my eyes
focused on one point of the screen when I find what I am looking for.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Ignore some buffers in Ivy</title>
      <link>https://manueluberti.eu/posts/2016-05-23-ivyignore/</link>
      <pubDate>Mon, 23 May 2016 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2016-05-23-ivyignore/</guid>
      <description>&lt;p&gt;If you use the great
&lt;a href=&#34;https://github.com/company-mode/company-statistics&#34;&gt;company-statistics&lt;/a&gt; to
improve your experience with &lt;a href=&#34;https://company-mode.github.io/&#34;&gt;company-mode&lt;/a&gt;,
chances are that you already noticed an entry called
&lt;code&gt;company-statistics-cache.el&lt;/code&gt; when you switch buffers with your favourite key
binding.&lt;/p&gt;
&lt;p&gt;Hitting &lt;code&gt;RET&lt;/code&gt; on &lt;code&gt;company-statistics-cache.el&lt;/code&gt; could result in
unpleasant consequences. In my case, Emacs hangs indefinitely, distracting me
from my work and forcing me to a horrible restart.&lt;/p&gt;
&lt;p&gt;Fortunately, &lt;a href=&#34;https://github.com/abo-abo&#34;&gt;Oleh Krehel&lt;/a&gt; introduced a new value
for &lt;code&gt;ivy-use-ignore-default&lt;/code&gt;: &lt;code&gt;&#39;always&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-emacs-lisp&#34;&gt;;; Always ignore buffers set in `ivy-ignore-buffers&#39;
(setq ivy-use-ignore-default &#39;always)
;; Ignore some buffers in `ivy-switch-buffer&#39;
(setq ivy-ignore-buffers &#39;(&amp;quot;company-statistics-cache.el&amp;quot;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With the above setup, &lt;code&gt;company-statistics-cache.el&lt;/code&gt; will never sneak in your
buffer switching again.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Prince on film</title>
      <link>https://manueluberti.eu/posts/2016-04-24-princeonfilm/</link>
      <pubDate>Sun, 24 Apr 2016 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2016-04-24-princeonfilm/</guid>
      <description>&lt;p&gt;I refrained from writing about Prince right after his recent death. Not only
because I did not want to put myself in the same position shared by most
commentators, but mainly because I felt in no position at all.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2016-04-24-graffiti_bridge.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Graffiti Bridge (Prince, 1990)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;What sets me apart is the nature of my affection. I have come to love
Prince&amp;rsquo;s music late in my life as an avid music listener. Rock&amp;rsquo;n&amp;rsquo;roll took over
my teen days and Jazz filled my ears up to my thirtieth birthday. Of course
I knew who Prince was. However, just like it happened with Brian Wilson,
I barely noticed the depth of his genius. He did not have a special place in my
coming of age, nor his music meant something to me.&lt;/p&gt;
&lt;p&gt;There is some beauty in this late discovery, though. Had it not been for Jazz
and how it opened my mind to complex and different sounds, I would have not
dared to listen and understand Brian Wilson. Had it not been for Brian Wilson,
I would never have put a Prince record on. I still do not know where Prince is
going to lead me, and this uncertainty is poetry.&lt;/p&gt;
&lt;p&gt;Moving on to Prince digression in cinema was just a matter of time.&lt;/p&gt;
&lt;p&gt;If you leave the non-music bits out, &lt;em&gt;Purple Rain&lt;/em&gt; is a fantastic video clip. As
great as the music is, the story becomes interesting only when The Kid faces the
family tragedy. When Prince and the Revolution play the title track in front of
an astonished crowd, you wonder whether the power of the scene comes from the
music alone.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Under the Cherry Moon&lt;/em&gt; is delicate and funny, a musical melodrama with more
than one charm. This is where Prince really shines when performing as an actor.
He twists his gigolo mask, bathing it all in a soft black and white palette.
More character-driven than music-driven, &lt;em&gt;Under the Cherry Moon&lt;/em&gt; captures the
tenderness of a romance with the naivety of a first-time director.&lt;/p&gt;
&lt;p&gt;Prince directed his own live concert before going back to the camera for another
feature length film. With &lt;em&gt;Sign O the Times&lt;/em&gt; he made one of the best live
concerts I have ever seen, summing up both the quality of his musicians and the
madness of his showmanship.&lt;/p&gt;
&lt;p&gt;In his last directional effort, Prince puts himself behind the script in a film
that really wants to take &lt;em&gt;Purple Rain&lt;/em&gt; on another level of style and amusement.
It fails in coherence, but &lt;em&gt;Graffiti Bridge&lt;/em&gt; succeeds in its more outlandish
dance sequences with a personal and unforgettable touch.&lt;/p&gt;
&lt;p&gt;Even though his film works are not beautiful as his music, Prince was capable to
interact with a different art. Displaying some of his many faces and masks,
Prince distinguished himself from pretty much any popular music artist out
there.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Better Living Through Criticism</title>
      <link>https://manueluberti.eu/posts/2016-03-28-betterliving/</link>
      <pubDate>Mon, 28 Mar 2016 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2016-03-28-betterliving/</guid>
      <description>&lt;p&gt;Anthony Oliver Scott – A. O. Scott as it is spelled on his &lt;em&gt;Better Living
Through Criticism&lt;/em&gt; – wrote a book that on almost every page seems to be pointing
its finger at me. Incredibly, more often than not &lt;em&gt;Better Living Through
Criticism&lt;/em&gt; aims precisely at my cultural background, filling all the gaps my IT
curriculum has left me with when I approach cinema and film criticism.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2016-03-28-better_living.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;This is quite obvious from the very first pages. Scott opens quoting the same
Oscar Wilde&amp;rsquo;s words that more than 15 years ago pushed me to go beyond simple
matters of “taste”. I cannot think of a better call to arms, and from there on I
devoured the book in a couple of days.&lt;/p&gt;
&lt;p&gt;Which is probably the wrong thing to do, especially if you – just as myself –
know little about the history of arts and criticism. However, I can easily
justify my rush. Scott has the rare ability to guide you through centuries of
knowledge with the delicacy of an intimate friend. He appears to understand why
you are trembling in front of the vast ocean of culture he is about to unveil.
So he chooses his words carefully, delivering his thoughts at a quiet,
reasonable pace for you not to get lost.&lt;/p&gt;
&lt;p&gt;Furthermore, Scott manages to be always on your side. I must admit I was partly
put off by the title. Better living through criticism, seriously? Are you going
to tell me what to do with my mind just because you think you can? If I had not
read Scott&amp;rsquo;s film reviews before, yes, I might not have been here today writing
my comments on his work. But I did read his film reviews, and I still do. I do
not agree with him sometimes, but – as he explains – this is the difference
between a casual critic and a great critic. Scott has his own voice, and all its
idiosyncrasies are what make me go back to his writings again and again.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Better Living Through Criticism&lt;/em&gt; traces the path from art to criticism and from
criticism to art. This back and forth relationship drives consensus and
objections, argument and coffee break talks. Through the likes of Henry James,
Samuel Johnson, Susan Sontag and Yvor Winters, Scott wanders in the land of the
love and hate paradox that is criticism. There may be no end to his journey,
albeit over and over an end of criticism has been declared and somehow hoped
for.&lt;/p&gt;
&lt;p&gt;Scott states that there is much demand for criticism today, even more than in
the past. Our epoch of consumerism, digital abundance and readily available
tools for crafting a piece of art has a desperate need for someone who can judge
and value. Provided this &lt;em&gt;someone&lt;/em&gt; cares about the object of her analysis,
because lack of empathy is one of the most horrible sins a critic can commit.&lt;/p&gt;
&lt;p&gt;There is some advice for the next critic-wannabe in this book, but more
importantly there is a fresh and perceptive look at what is going on in the mind
of the next person who lays her eyes on the latest work of art.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Film preservation and nostalgia</title>
      <link>https://manueluberti.eu/posts/2016-02-05-preservation/</link>
      <pubDate>Fri, 05 Feb 2016 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2016-02-05-preservation/</guid>
      <description>&lt;p&gt;A while ago, I had an interesting conversation on Twitter with film scholar and
critic Rowena Santos Aquino. It all started from her &lt;a href=&#34;https://twitter.com/FilmStillLives/status/687354831594373121&#34;&gt;pointing
out&lt;/a&gt; a &lt;a href=&#34;http://www.filmcomment.com/blog/kaiju-shakedown-disappearing-in-plain-sight/&#34;&gt;beautiful
article&lt;/a&gt;
by Grady Hendrix on, among other things, the lack of film preservation efforts
in Hong Kong. Some days later, Rowena linked &lt;a href=&#34;http://www.scmp.com/lifestyle/film-tv/article/1906440/film-review-alls-well-ends-well-lunar-new-year-screwball-classic&#34;&gt;this
article&lt;/a&gt;
to me, in which Paul Fonoroff talks about a newly restored version of Clifton Ko
Chi-Sum&amp;rsquo;s &lt;em&gt;All&amp;rsquo;s Well, Ends Well&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2016-02-05-bullets_over_summer.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Bullets Over Summer (Wilson Yip,
1999)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;The conversation immediately fired up my never-ending love for Hong Kong cinema.
So I went through my DVD collection and pulled out my copy of &lt;em&gt;Bullets Over
Summer&lt;/em&gt;. I couldn&amp;rsquo;t help but thinking of Grady Hendrix&amp;rsquo;s words while the closing
credits where crawling bottom-to-top.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Bullets Over Summer&lt;/em&gt; probably doesn&amp;rsquo;t have the power of Fruit Chan&amp;rsquo;s best works
when it comes to dealing with post-handover tensions. Nonetheless, Wilson Yip
relates to the loss of Hong Kong&amp;rsquo;s identity in his own peculiar way.&lt;/p&gt;
&lt;p&gt;The director explores time and its passing, focusing on relationships between
people of different age and generations. It is really illuminating to notice how
these relationships change day after day. They are never destined to last
forever, but what they offer is precious moments of joy and playfulness. They
can be relentlessly caring, tender and romantic, and they can also turn out to
be something entirely unexpected.&lt;/p&gt;
&lt;p&gt;However beautiful these interactions are, time moves on and slowly the
characters lose everything: a friend, a lover, money, a purpose, a family. The
old Granny exemplifies the inevitability of time and its consequences at best.
Memory doesn&amp;rsquo;t serve her well any more, presumably due to some sort of
Alzheimer&amp;rsquo;s disease. She seems to find a peace of mind in her motherly role,
desperately believing that her surrogate reality is the only thing left to live
by. Just as much as Mike believes until the very end he can provide for his
new-found loved ones.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Bullets Over Summer&lt;/em&gt; acts like a lesson on the fragility of our dreams and has
left me with a warning. There is a little bit of Granny&amp;rsquo;s reality in every Hong
Kong cinema lover out there, including me. I remember back in 2014 at Far East
Film Festival a whole weekend dedicated to Hong Kong, with talks and writings
devoted to an industry that had necessarily transformed itself. Somehow, the
naive nostalgia felt bigger than the actual certainty that Hong Kong will never
be the same again.&lt;/p&gt;
&lt;h2 id=&#34;links&#34;&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://moviemezzanine.com/now-playing-hail-caesar/&#34;&gt;Now Playing: “Hail,
Caesar!”&lt;/a&gt; by Vikram Murthi&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.slate.com/articles/arts/books/2016/02/an_interview_with_a_o_scott_about_oscarssowhite_better_living_through_criticism.html&#34;&gt;An Interview with A.O.
Scott&lt;/a&gt;
by Isaac Chotiner&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://reverseshot.org/features/2174/sundance_2016&#34;&gt;Sundance Film Festival
2016&lt;/a&gt; by Michael Koresky&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Going back to Stanley Kubrick</title>
      <link>https://manueluberti.eu/posts/2016-01-02-kubricknow/</link>
      <pubDate>Sat, 02 Jan 2016 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2016-01-02-kubricknow/</guid>
      <description>&lt;p&gt;Lately I&amp;rsquo;ve found myself deeply immersed in &lt;a href=&#34;http://michelchion.com/books/68-stanley-kubrick&#34;&gt;Michel Chion&amp;rsquo;s
work&lt;/a&gt; on Stanley Kubrick. I
took it as a reason to go back to Kubrick&amp;rsquo;s oeuvre, connecting the dots and
trying to figure out what the great director means today.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2016-01-02-eyes_wide_shut.jpg&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;Eyes Wide Shut (Stanley Kubrick, 1999)&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;In particular, I&amp;rsquo;m thinking about what his works mean for me now. I remember
being shocked by &lt;em&gt;A Clockwork Orange&lt;/em&gt; at 14. I remember buying &lt;em&gt;2001: A Space
Odyssey&lt;/em&gt; on VHS and watching it three times in two days struggling to understand
the “what?” and the “why?”. I remember sitting alone with just two other guys in
an empty movie theatre waiting for &lt;em&gt;Paths of Glory&lt;/em&gt; to begin. I also remember
comparing &lt;em&gt;Full Metal Jacket&lt;/em&gt; to &lt;em&gt;Saving Private Ryan&lt;/em&gt; in a conversation with my
grandfather — and I&amp;rsquo;ll never forget his colourful defence of Spielberg&amp;rsquo;s effort.&lt;/p&gt;
&lt;p&gt;Nonetheless, it&amp;rsquo;s been a while since my last revisiting of a film by Kubrick. Of
course Chion&amp;rsquo;s book is not just a reminder, but an in-depth analysis of all
Kubrick&amp;rsquo;s works. The French critic doesn&amp;rsquo;t hide his preferences. On the
contrary, he is plain enough to say which films he likes less in the first
pages.&lt;/p&gt;
&lt;p&gt;I tried not to let Chion&amp;rsquo;s opinions interfere with my own conclusions. Two films
had an unexpected effect on me: &lt;em&gt;2001: A Space Odyssey&lt;/em&gt; and &lt;em&gt;Eyes Wide Shut&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Young and with few clues in film criticism, I was the kind of film geek ready to
come to my fists to defend &lt;em&gt;2001: A Space Odyssey&lt;/em&gt;. I praised the camera work,
the editing and the use of music as if nobody better than me knew what I was
talking about. Today &lt;em&gt;2001: A Space Odyssey&lt;/em&gt; has a different effect on me. The
long stretch of visual tricks in the last part left my eyes tired and eager to
move on. It felt more like a series of images to contemplate from a distance. As
philosophers do, Chion says, but I&amp;rsquo;m not used to doing that with films.&lt;/p&gt;
&lt;p&gt;On the other hand, &lt;em&gt;Eyes Wide Shut&lt;/em&gt; turned out to be the one I love the most. I
read Schnitzler&amp;rsquo;s &lt;em&gt;Traumnovelle&lt;/em&gt; right after watching it and I watched &lt;em&gt;Eyes
Wide Shut&lt;/em&gt; again once I finished the novella. It&amp;rsquo;s such an inspired and
inspiring film. Its elegant usage of words and sounds is only matched by the
careful lightning and editing. There is so much going on in every silence, in
every gaze. Kubrick never questions his characters actions, and characters do
the same. As Chion notices, the only character who steps up and judges someone
else — Milich — will end up showing no morality whatsoever.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Eyes Wide Shut&lt;/em&gt; plays like a modern tale of human beings that haven&amp;rsquo;t changed
that much since Schnitzler captured them 90 years ago. However, it&amp;rsquo;s not a
cautionary tale, but a quiet acceptance of the ordinary in all its
impossibilities. Stanley Kubrick has never been so humane, and probably this is
why &lt;em&gt;Eyes Wide Shut&lt;/em&gt; will always stand for how I want to remember the great
director.&lt;/p&gt;
&lt;h2 id=&#34;links&#34;&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Elena Lazic on &lt;a href=&#34;http://elena-et-les-films.tumblr.com/post/135849167551/eyes-wide-shut-stanley-kubrick-1999-review&#34;&gt;Eyes Wide
Shut&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Jake Cole on &lt;a href=&#34;http://www.slantmagazine.com/film/review/creed&#34;&gt;Creed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ignatiy Vishnevetsky on &lt;a href=&#34;http://www.avclub.com/review/steven-spielbergs-superb-bridge-spies-pits-tom-han-226527&#34;&gt;Bridge of
Spies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Alberto Pezzotta on
&lt;a href=&#34;http://sensesofcinema.com/2000/italian-cinema/salo-2/&#34;&gt;Salò&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>The New Cinephilia</title>
      <link>https://manueluberti.eu/posts/2015-10-06-thenewcinephilia/</link>
      <pubDate>Tue, 06 Oct 2015 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/posts/2015-10-06-thenewcinephilia/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s fair to say Girish Shambu&amp;rsquo;s &lt;a href=&#34;https://www.caboosebooks.net/the-new-cinephilia&#34;&gt;&lt;em&gt;The New
Cinephilia&lt;/em&gt;&lt;/a&gt; is what pushed me
out of my cavern. That and a mail from the author himself telling me “You should
do it!”.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;img src=&#34;https://manueluberti.eu/images/2015-10-06-the_new_cinephilia.png&#34; alt=&#34;&#34;&gt;
  &lt;figcaption class=&#34;center&#34;&gt;
    &lt;small&gt;&lt;em&gt;&lt;/em&gt;&lt;/small&gt;    
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;I have been following Girish&amp;rsquo;s &lt;a href=&#34;https://girishshambu.net/&#34;&gt;blog&lt;/a&gt; for so many
years. I&amp;rsquo;ve always liked the wide range of his reflections. He expands on his
thoughts with links to further readings, therefore each of his posts often
brings me out in the wild web to read new pieces of criticism.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The New Cinephilia&lt;/em&gt; reads exactly as one of his blog posts. It reaches out for
new connections and new directions at every turn of the page. Not only it traces
the origins of contemporary film criticism, but in doing so it analyses what
makes modern cinephilia just as fascinating as the old school.&lt;/p&gt;
&lt;p&gt;Social media have deeply expanded the possibilities we have nowadays to
understand films. Girish points out the relevance that even a single tweet has
and his acknowledgement is more than a hint to join the social network
revolution. Scholars, but also passionate amateurs such as myself could deeply
enhance their own experience if only they approached the Internet with
open-mindedness.&lt;/p&gt;
&lt;p&gt;This is the most important lesson &lt;em&gt;The New Cinephilia&lt;/em&gt; taught me. A lesson to
live by.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>About</title>
      <link>https://manueluberti.eu/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/about/</guid>
      <description></description>
    </item>
    <item>
      <title>Archive</title>
      <link>https://manueluberti.eu/archive/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>manuel.uberti@mailbox.org (Manuel Uberti)</author>
      <guid>https://manueluberti.eu/archive/</guid>
      <description></description>
    </item>
  </channel>
</rss>
