<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Dag's home</title><link>https://dag7.it/posts/</link><description>Recent content in Posts on Dag's home</description><generator>Hugo</generator><language>en</language><managingEditor>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</managingEditor><webMaster>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</webMaster><lastBuildDate>Fri, 06 Mar 2026 17:25:00 +0000</lastBuildDate><atom:link href="https://dag7.it/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Launchpad in 2026: is it worth buying?</title><link>https://dag7.it/posts/launchpad-in-2026/</link><pubDate>Fri, 06 Mar 2026 17:25:00 +0000</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/launchpad-in-2026/</guid><description>&lt;h2 id="what-is-it"&gt;What is it&lt;/h2&gt;
&lt;p&gt;8x8 grid with buttons and RGB LEDs and several other control buttons. It has been manufactured by Novation in 2009 first, then released other models.&lt;/p&gt;
&lt;h2 id="models"&gt;Models&lt;/h2&gt;
&lt;p&gt;There&amp;rsquo;s a wide range of models, Novation has developed several models in the years.&lt;/p&gt;
&lt;p&gt;Basic ones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Launchpad MK1&lt;/strong&gt; (2009)&lt;br&gt;
64 pads, monochrome lighting, basic clip/scene launching for Ableton Live, no MIDI I/O, USB‑only&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Launchpad S&lt;/strong&gt; (2013)&lt;br&gt;
64 RGB pads, MIDI support, internal MIDI caching, focused on Ableton Live&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Launchpad MK2&lt;/strong&gt; (2015)&lt;br&gt;
64 RGB pads with improved sensitivity, Ableton integration, more responsive pads and layout tweaks&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Launchpad X&lt;/strong&gt; (2019)&lt;br&gt;
64 velocity‑sensitive RGB pads, Dynamic Note/Scale modes, 4 custom user‑mappable modes, excellent for Ableton Live and Logic Pro Live Loops&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mini:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Launchpad Mini&lt;/strong&gt; (2015)&lt;br&gt;
64‑pad layout, small, aimed at portable Ableton-style performance, fewer physical buttons&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Launchpad Mini MK2&lt;/strong&gt; (2015)&lt;br&gt;
same size as Mini, 64 RGB pads, extra buttons and improved layout compared to original Mini&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Launchpad Mini MK3&lt;/strong&gt; (2020)&lt;br&gt;
Very compact 64 RGB pads, three custom modes, Ableton Live Lite bundle, portable design for clip launching and basic performance&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pro:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Launchpad Pro&lt;/strong&gt; (2015)&lt;br&gt;
64 RGB velocity and pressure‑sensitive pads, standalone sequencer, MIDI In/Out, deeper Ableton/DAW integration, custom modes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Launchpad Pro Mk2&lt;/strong&gt; (2017)&lt;br&gt;
64 RGB pads with velocity + pressure; compacted layout, 4‑track, 32‑step sequencer; full MIDI In/Out support; more advanced Ableton and Logic‑Live‑Loops integration than Mk1.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Launchpad Pro MK3&lt;/strong&gt; (2020)&lt;br&gt;
64 super‑sensitive RGB pads with polyphonic aftertouch, 4‑track 32‑step sequencer, extensive MIDI I/O, deepest Ableton/Logic integration, many custom modes&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Though there are a lot of different Launchpad, &lt;strong&gt;I&amp;rsquo;d chose the MK2&lt;/strong&gt;. To me it&amp;rsquo;s the best of all: it looks nice, it has MIDI support, you can do basically everything you can with the Pro versions and if you decide to buy from second-hand, it&amp;rsquo;s affordable (under 50€).&lt;/p&gt;
&lt;p&gt;The second choice would be the mini one. This is because having a studio always with you, wherever you go, it&amp;rsquo;s something that sounds &lt;em&gt;and is&lt;/em&gt; really comfortable. Ta&lt;/p&gt;
&lt;h2 id="what-you-can-do"&gt;What you can do&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;control any midi software, but in particular Ableton&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;light show&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how"&gt;How&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Ableton - everything is NOT out of the box, you have to download projects and setup everything&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Novation Online Launchpad (see &lt;a href="https://intro.novationmusic.com/"&gt;https://intro.novationmusic.com/&lt;/a&gt;) - everything works out of the box&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pros"&gt;Pros&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;it&amp;rsquo;s fun&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;there are led&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="cons"&gt;Cons&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;everything in the wild has only been developed for Ableton&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ableton is not free&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;requires setup even with Ableton &amp;ldquo;ready to use&amp;rdquo; projects&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="final-verdict"&gt;Final Verdict&lt;/h2&gt;
&lt;p&gt;After all, it&amp;rsquo;s really fun if you like to press keys or work with controllers.&lt;/p&gt;</description></item><item><title>Eduroam on Linux: how to connect to Eduroam and update crypto policy on Ubuntu</title><link>https://dag7.it/posts/eduroam-on-linux/</link><pubDate>Fri, 20 Feb 2026 17:56:00 +0100</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/eduroam-on-linux/</guid><description>&lt;p&gt;September 2019. First day at University, I was a freshman.&lt;/p&gt;
&lt;p&gt;After attending the first hour lesson (it was either algorithm or digital system), I&amp;rsquo;ve started to play my favorite game: discovering Wi-Fi networks around me &amp;ldquo;just for fun&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s been my favorite hobby since around 2008, when I used to play with old Nintendo/Sony consoles. At the time, Wi-Fi wasn&amp;rsquo;t spread anywhere like now: many access points were (still) secured by WEP, some by WPA and others were&amp;hellip; unprotected!&lt;/p&gt;
&lt;p&gt;Going back to our story: other than discovering the so-called &amp;ldquo;meme networks&amp;rdquo; like &amp;ldquo;Marco is beautiful, let&amp;rsquo;s meet outside&amp;rdquo;, &amp;ldquo;Not a Wifi Connection&amp;rdquo;, &amp;ldquo;Crack me&amp;rdquo;, or even &amp;ldquo;5G Antenna&amp;rdquo;, for a certain time it used to remember me when AirTag became popular to exchange prank messages,&lt;/p&gt;
&lt;p&gt;In particular, two networks came to my attention:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;local university network&amp;gt; - free wifi
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;eduroam - secured
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;From the &lt;a href="https://eduroam.org/"&gt;official Eduroam website&lt;/a&gt; , this project aims to connect other universities around the world in order to create an ubiquitous internet access, provided that you are successfully signed to your University. There&amp;rsquo;s also an &lt;a href="https://monitor.eduroam.org/map_service_loc.php"&gt;official link&lt;/a&gt; to see where Eduroam is available, with supported countries and locations&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Cool&amp;rdquo; - I thought - &amp;ldquo;I just need to connect to that Wifi Network, it asks for my identity but it doesn&amp;rsquo;t work&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;A quick research led to &lt;a href="http://cat.eduroam.org"&gt;cat.eduroam.org&lt;/a&gt; the configuration assistant tool, required to connect to RADIUS server. It says &amp;ldquo;available for Windows, Linux and MacOS&amp;rdquo;. There also is an Android app call geteduroam.&lt;/p&gt;
&lt;p&gt;On Windows the tool is decent, on Android too. Cannot say for MacOS because I don&amp;rsquo;t own a Mac.&lt;/p&gt;
&lt;p&gt;What about Linux? Well, it turns out that CAT works as well on Linux but&amp;hellip; it won&amp;rsquo;t. Why? That&amp;rsquo;s why we&amp;rsquo;re here, let&amp;rsquo;s break down the entire process.&lt;/p&gt;
&lt;p&gt;When we open the python script, we&amp;rsquo;re greeted by a classic &amp;ldquo;username, password, repeat password&amp;rdquo;. We should hit save and be able to connect to Wi-Fi after input our university password.&lt;/p&gt;
&lt;h2 id="troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;p&gt;The first thing I run is dmesg. Here&amp;rsquo;s the output:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;feb 20 15:45:40 d wpa_supplicant[995]: wlan0: Associated with xx:xx:xx:xx:xx:xx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;feb 20 15:45:40 d wpa_supplicant[995]: wlan0: CTRL-EVENT-EAP-STARTED EAP authentication started
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;feb 20 15:45:40 d wpa_supplicant[995]: wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;feb 20 15:45:40 d wpa_supplicant[995]: wlan0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=21
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;feb 20 15:45:40 d wpa_supplicant[995]: wlan0: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 21 (TTLS) selected
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;feb 20 15:45:40 d wpa_supplicant[995]: SSL: SSL3 alert: write (local SSL3 detected an error):fatal:protocol version
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;feb 20 15:45:40 d wpa_supplicant[995]: OpenSSL: openssl_handshake - SSL_connect error:0A000102:SSL routines::unsupported protocol
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;feb 20 15:45:40 d wpa_supplicant[995]: wlan0: CTRL-EVENT-EAP-FAILURE EAP authentication failed
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;feb 20 15:45:40 d wpa_supplicant[995]: wlan0: CTRL-EVENT-DISCONNECTED bssid=xx:xx:xx:xx:xx:xx reason=23
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;feb 20 15:45:40 d wpa_supplicant[995]: wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid=&amp;#34;eduroam&amp;#34; auth_failures=2 duration=38 reason=AUTH_FAILED
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;feb 20 15:45:40 d wpa_supplicant[995]: BSSID xx:xx:xx:xx:xx:xx ignore list count incremented to 2, ignoring for 10 seconds
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The relevant lines are&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;feb 20 15:45:40 d wpa_supplicant[995]: wlan0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=21
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;feb 20 15:45:40 d wpa_supplicant[995]: OpenSSL: openssl_handshake - SSL_connect error:0A000102:SSL routines::unsupported protocol
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The newer versions of Ubuntu (and Debian), uses newer version of TLS by default&amp;hellip; TLS v1.0 is deprecated, so we are forced to use the latest TLS version.&lt;/p&gt;
&lt;h2 id="initial-solution-update-crypto-policy"&gt;Initial solution: update-crypto-policy&lt;/h2&gt;
&lt;p&gt;On Fedora there is a command called update-crypto-policy that allows to use TLSv1.0 by simply launching a command.&lt;/p&gt;
&lt;p&gt;However, this is not available on Debian and Ubuntu. There is an old package in 2019, but even if you install it and try to setup this policy using that package it won&amp;rsquo;t work.&lt;/p&gt;
&lt;p&gt;Therefore, even if you install the package, it won&amp;rsquo;t work, we must use another (dirty) trick.&lt;/p&gt;
&lt;h2 id="what-to-do"&gt;What to do&lt;/h2&gt;
&lt;p&gt;The BEST thing to do, since TLS1.0 has been deprecated, is to update TLS version of the Access Point.&lt;/p&gt;
&lt;p&gt;We have notified the head of the infrastructure of our university to let it be aware of this.&lt;/p&gt;
&lt;p&gt;Meanwhile we have tried to figure out a fix.&lt;/p&gt;
&lt;p&gt;According to &lt;a href="https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/f9c9cbbf2fe8add43e10c0ce3311153048f45023/src/nmcli/gen-metadata-nm-settings-nmcli.xml.in#L231"&gt;NetworkManager Gitlab&lt;/a&gt; we can (temporary) fix this behavior by allowing TLSv1.0 &lt;code&gt;tls-1-0-enable (0x20)&lt;/code&gt; set &lt;code&gt;phase-1-auth-flags&lt;/code&gt; to 32 which in hex is 20.&lt;/p&gt;
&lt;h2 id="practical-steps"&gt;Practical steps&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Run Eduroam CAT for Linux. This is mandatory in order to generate the right config file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;sudo nano /etc/NetworkManager/system-connections/&amp;lt;your-connection-ssid-here&amp;gt;.nmconnection&lt;/code&gt; in our case, eduroam&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;under &lt;code&gt;[802-1x]&lt;/code&gt; preamble, add &lt;code&gt;phase1-auth-flags=32&lt;/code&gt; as the latest line. Save!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;restart both &lt;code&gt;NetworkManager&lt;/code&gt; and &lt;code&gt;wpa_supplicant&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;to connect to eduroam from now, run &lt;code&gt;sudo nmcli --ask connection up eduroam&lt;/code&gt; . It will ask for your password: enter your password and enter&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;wait a while and&amp;hellip; you&amp;rsquo;re connected!&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;NOTE: if you look at your wifi network indicator, something&amp;rsquo;s really wrong: it looks like you&amp;rsquo;re connected with each network, and connect / disconnect won&amp;rsquo;t work&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Everytime you need to connect to eduroam, you need to perform the step 5&lt;/p&gt;
&lt;p&gt;To disconnect, just connect to another network (using nmcli).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;NOTE: Your NetworkManager will be not usable unless you manually disconnect from Eduroam&lt;/p&gt;
&lt;p&gt;NOTE for Fedora users: since the command update-crypto-policies is available (on Debian it is not, even if you manually install it from an old version) you also need to launch sudo update-crypto-policies &amp;ndash;set DEFAULT:SHA1&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Unfortunately right now there&amp;rsquo;s no alternative than waiting (😴) for TLS update&lt;/p&gt;
&lt;h2 id="thats-all-folks"&gt;That&amp;rsquo;s all folks!&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/thatsallfolks.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s hope our university will hear us and update TLS. Security is important, especially on &amp;ldquo;public&amp;rdquo; usable Wi-Fi.&lt;/p&gt;
&lt;p&gt;Special thanks to &amp;ldquo;X.&amp;rdquo; for bearing with me for each step. Without it, this article wouldn&amp;rsquo;t have existed.&lt;/p&gt;
&lt;p&gt;If this article has been useful for you, consider to &lt;a href="https://paypal.me/therealdag7"&gt;leave a small donation (paypal)&lt;/a&gt; or &lt;a href="https://ko-fi.com/dag7_"&gt;buy me a virtual coffee&lt;/a&gt;! Your support is really important, and knowing that, makes me happy.&lt;/p&gt;</description></item><item><title>Patchbay v2: double trouble</title><link>https://dag7.it/posts/patchbay-v2/</link><pubDate>Sat, 14 Feb 2026 12:52:00 +0000</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/patchbay-v2/</guid><description>&lt;p&gt;Ecco la patchbay versione 2, con l&amp;rsquo;aggiunta dei fori per push button da 12mm e una doppia riga per gli input.&lt;/p&gt;
&lt;p&gt;Ho creato il progetto usando OpenSCAD e poi esportato l&amp;rsquo;STL, esattamente come ho fatto per l&amp;rsquo;altro.&lt;/p&gt;
&lt;p&gt;Le prime due righe hanno i fori comunicanti, e sono governate dal push button, per effetti più &amp;ldquo;live&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Le ultime due righe e la riga di switch invece funzionano proprio come &lt;a href="https://dag7.it/posts/patchbay-1"&gt;il primo design che ho fatto&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/patchbayv2.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Praticamente si tratta della versione estesa (e meno esteticamente bella) della V1.&lt;/p&gt;
&lt;p&gt;Aggiornerò presto l&amp;rsquo;articolo per postare una nuova foto della v2 finale e assemblata!&lt;/p&gt;</description></item><item><title>GGJ2026: post-mortem e resa dei conti</title><link>https://dag7.it/posts/ggj2026-3/</link><pubDate>Wed, 11 Feb 2026 16:15:00 +0000</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/ggj2026-3/</guid><description>&lt;p&gt;3/3&lt;/p&gt;
&lt;p&gt;Avrei dovuto scrivere questo post tanti giorni fa a fine jam. Purtroppo il mio sito per l&amp;rsquo;ennesima volta non andava, ma magari vi racconto un&amp;rsquo;altra volta su cosa ultimamente sta succedendo.&lt;/p&gt;
&lt;p&gt;Partiamo dall&amp;rsquo;inizio: ci eravamo lasciati con io che cercavo di comporre una tarantella. Più che una tarantella è venuta fuori una ballata, ma ditemi cosa ne pensate.&lt;/p&gt;
&lt;iframe width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay"
 src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/2264527403&amp;color=%231c1511&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true"&gt;&lt;/iframe&gt;
&lt;iframe width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay"
 src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/2264527406&amp;color=%231c1511&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true"&gt;&lt;/iframe&gt;
&lt;p&gt;La jam è stata incredibile: personalmente me la sono vissuta molto meglio dell&amp;rsquo;ultimissima che ho fatto, poiché questa volta mi sono occupato principalmente di comporre la colonna sonora, creare alcuni suoni e sceglierne altri. È stato incredibilmente rilassante e formativo, grazie anche al fatto che ho toccato poco il codice e quindi mi sono potuto concentrare di più sulla parte musicale.&lt;/p&gt;
&lt;p&gt;La scelta della squadra è stata del tutto casuale: eravamo senza una squadra vera e propria, perciò ci siamo uniti. Personalmente è la prima volta che partecipo in un team di sei persone, dove ognuno ha fatto qualcosa e non è rimasto con le mani in mano. In altri contesti e altre esperienze, ho partecipato a lavori con team più estesi o più piccoli. Mi ha fatto davvero piacere riuscire a creare qualcosa insieme, e mi ha ricordato che le cose possono andare per il verso giusto anche se questo non corrisponde necessariamente alla nostra visione del mondo.&lt;/p&gt;
&lt;p&gt;Con il resto del team (StudioH501) ci siamo trovati talmente bene che vorremmo rifare il gioco da zero per avere un po&amp;rsquo; più di dimestichezza con le procedure di sviluppo, ma questo prototipo abbiamo deciso di rilasciarlo gratuitamente per vedere come le persone reagiscono quando glielo facciamo provare.&lt;/p&gt;
&lt;p&gt;Non abbiamo vinto nessun premio, anche se alle jam non si vince, ma si impara, si crea, si condivide&amp;hellip; però delle nomination interne c&amp;rsquo;erano ugualmente. Tuttavia, abbiamo ricevuto tantissime candidature per &amp;ldquo;best game&amp;rdquo; e anche qualche voto come &amp;ldquo;miglior colonna sonora&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Se siete curiosi di vederlo all&amp;rsquo;opera, potete giocarlo gratis su itch.io!&lt;/p&gt;
&lt;iframe frameborder="0" src="https://itch.io/embed/4263510" width="552" height="167"&gt;&lt;a href="https://dag7.itch.io/mascaria"&gt;MASCARIA by StudioH501&lt;/a&gt;&lt;/iframe&gt;

&lt;p&gt;Ecco alcune foto:&lt;/p&gt;



&lt;div class="gallery caption-position-bottom caption-effect-fade hover-effect-zoom hover-transition" itemscope itemtype="http://schema.org/ImageGallery"&gt;
	 
 &lt;link rel="stylesheet" href="https://dag7.it/css/hugo-easy-gallery.css" /&gt;
 &lt;div class="box" &gt;
 &lt;figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject"&gt;
 &lt;div class="img" style="background-image: url('https://dag7.it//img/ggj2026-1.jpg');"&gt;
 &lt;img itemprop="thumbnail" src="https://dag7.it/img/ggj2026-1.jpg" alt="2026-02-01 Team al completo!"/&gt;
 &lt;/div&gt;
 &lt;a href="https://dag7.it/img/ggj2026-1.jpg" itemprop="contentUrl"&gt;&lt;/a&gt;
 &lt;figcaption&gt;
 &lt;p&gt;2026-02-01 Team al completo!&lt;/p&gt;
 &lt;/figcaption&gt;
 &lt;/figure&gt;
 &lt;/div&gt;
 
 
 &lt;div class="box" &gt;
 &lt;figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject"&gt;
 &lt;div class="img" style="background-image: url('https://dag7.it//img/ggj2026-2.jpg');"&gt;
 &lt;img itemprop="thumbnail" src="https://dag7.it/img/ggj2026-2.jpg" alt="2026-02-01 Pronti per lo showcase"/&gt;
 &lt;/div&gt;
 &lt;a href="https://dag7.it/img/ggj2026-2.jpg" itemprop="contentUrl"&gt;&lt;/a&gt;
 &lt;figcaption&gt;
 &lt;p&gt;2026-02-01 Pronti per lo showcase&lt;/p&gt;
 &lt;/figcaption&gt;
 &lt;/figure&gt;
 &lt;/div&gt;
 
 
 &lt;div class="box" &gt;
 &lt;figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject"&gt;
 &lt;div class="img" style="background-image: url('https://dag7.it//img/ggj2026-3.jpg');"&gt;
 &lt;img itemprop="thumbnail" src="https://dag7.it/img/ggj2026-3.jpg" alt="2026-02-01 Qualcuno sta provando il nostro gioco..."/&gt;
 &lt;/div&gt;
 &lt;a href="https://dag7.it/img/ggj2026-3.jpg" itemprop="contentUrl"&gt;&lt;/a&gt;
 &lt;figcaption&gt;
 &lt;p&gt;2026-02-01 Qualcuno sta provando il nostro gioco...&lt;/p&gt;
 &lt;/figcaption&gt;
 &lt;/figure&gt;
 &lt;/div&gt;
 
 
 &lt;div class="box" &gt;
 &lt;figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject"&gt;
 &lt;div class="img" style="background-image: url('https://dag7.it//img/ggj2026-4.png');"&gt;
 &lt;img itemprop="thumbnail" src="https://dag7.it/img/ggj2026-4.png" alt="2026-02-01 Uno screenshot!"/&gt;
 &lt;/div&gt;
 &lt;a href="https://dag7.it/img/ggj2026-4.png" itemprop="contentUrl"&gt;&lt;/a&gt;
 &lt;figcaption&gt;
 &lt;p&gt;2026-02-01 Uno screenshot!&lt;/p&gt;
 &lt;/figcaption&gt;
 &lt;/figure&gt;
 &lt;/div&gt;
 
&lt;/div&gt;
</description></item><item><title>GGJ2026: secondo giorno, verso la fine!</title><link>https://dag7.it/posts/ggj2026-2/</link><pubDate>Sun, 01 Feb 2026 01:07:00 +0100</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/ggj2026-2/</guid><description>&lt;p&gt;Anche questo secondo giorno è andato liscio come l&amp;rsquo;olio. Mi sono occupato della musica in-game e di scegliere (e comporre) gli effetti sonori di tutto il gioco.&lt;/p&gt;
&lt;p&gt;Ecco una lista di asset utilizzata:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;click Box UI *play button&lt;/li&gt;
&lt;li&gt;select card&lt;/li&gt;
&lt;li&gt;select mask&lt;/li&gt;
&lt;li&gt;apply mask&lt;/li&gt;
&lt;li&gt;place a card&lt;/li&gt;
&lt;li&gt;pop up points on card&lt;/li&gt;
&lt;li&gt;draw card&lt;/li&gt;
&lt;li&gt;reset&lt;/li&gt;
&lt;li&gt;player takes damage&lt;/li&gt;
&lt;li&gt;round lost&lt;/li&gt;
&lt;li&gt;round won&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La colonna sonora invece è una tarantella, che sono riuscito a renderla anche 8-bit grazie al potere dell&amp;rsquo;onda quadra.&lt;/p&gt;
&lt;p&gt;Non è stato affatto semplice, mi piacerebbe in futuro condividerla sul mio soundcloud che &lt;a href="https://soundcloud.com/dag7music"&gt;potete trovare qui&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Nel frattempo, siccome ho finito di curare il comparto musicale per il momento, alla fine riprendo a fare ciò che ho sempre fatto: scrivere codice.&lt;/p&gt;
&lt;p&gt;Devo curare animazioni e video intro dei nemici. I nemici sono maschere di Carnevale.&lt;/p&gt;
&lt;p&gt;Voglio spiegare meglio il progetto non appena avremo finito e chissà, magari riusciremo a rilasciarlo anche su itch.io&lt;/p&gt;</description></item><item><title>GGJ2026: bollettino primo giorno</title><link>https://dag7.it/posts/ggj2026-1/</link><pubDate>Sat, 31 Jan 2026 02:15:00 +0100</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/ggj2026-1/</guid><description>&lt;p&gt;Dalle 18 alle 01, sono state ore intense.&lt;/p&gt;
&lt;p&gt;Si è formata una bella squadra, in un clima di molta tranquillità. Stiamo lavorando ad un gioco di carte, e non vediamo l&amp;rsquo;ora esca.&lt;/p&gt;
&lt;p&gt;A differenza di Roma Game Jam, ho (e abbiamo) dedicato molte più ore alla progettazione del gioco e alle dinamiche, evitando di buttarci subito in programmazione o ancorandoci saldamente a uno strumento e vero proprio.&lt;/p&gt;
&lt;p&gt;Abbiamo deciso di lavorare con Unity.&lt;/p&gt;
&lt;p&gt;Per quanto riguarda la parte musicale&amp;hellip; il tema di quest&amp;rsquo;anno è &amp;ldquo;maschere&amp;rdquo;, quindi abbiamo deciso di fare delle carte mascherate.&lt;/p&gt;
&lt;p&gt;Non vedo l&amp;rsquo;ora di potervi svelare il progetto, qualora ce ne sarà occasione, ma fino ad allora non posso dirvi molto altro.&lt;/p&gt;
&lt;p&gt;Sono un pochino in alto mare: sto cercando di utilizzare un Game Boy per comporre, ma mi trovo in alto mare, poiché avevamo pensato a qualcosa tipo una tarantella o una polka/mazurca italiana, ma non ho mai scritto un pezzo del genere e col game boy mi sto trovando un po&amp;rsquo; in difficoltà. Penso che domani farò qualche tentativo utilizzando altri software su computer.&lt;/p&gt;
&lt;p&gt;È bello comunque vedere tutto il team lavorare uniformemente per raggiungere un risultato.&lt;/p&gt;</description></item><item><title>Mashup: She hates Gianna</title><link>https://dag7.it/posts/mashup-she-hates-gianna/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/mashup-she-hates-gianna/</guid><description>&lt;p&gt;Finalmente dopo un po&amp;rsquo; di tempo che avevo in mente, FUORI ORA il mashup di Gianna di Rino Gaetano X She Hates Me dei Puddle of Mudd.&lt;/p&gt;
&lt;p&gt;Potete ascoltarla &lt;a href="https://stereo.kenobit.it/library/tracks/1359/"&gt;cliccando qui&lt;/a&gt; o oppure premendo play qui sotto.&lt;/p&gt;
&lt;iframe width="100%" height="166px" scrolling="no" frameborder="yes" src="https://stereo.kenobit.it/embed.html?&amp;amp;type=track&amp;amp;id=1359"&gt;&lt;/iframe&gt;</description></item><item><title>Reverse Engineering la luce in fondo al tunnel, prima dell'abisso</title><link>https://dag7.it/posts/2025-10-20-re/</link><pubDate>Mon, 20 Oct 2025 03:48:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/2025-10-20-re/</guid><description>&lt;p&gt;Caro Dag del 2013,&lt;/p&gt;
&lt;p&gt;finalmente sei riuscito a coronare uno dei tuoi sogni nel cassetto: riuscire a saper comprendere o quantomeno leggere un codice assembly per poterci mettere le mani sopra e manipolarlo a tuo piacimento.&lt;/p&gt;
&lt;p&gt;Sono le 3 e 45, e finalmente dopo un tour de force durato 3 giorni, posso dire che ho concluso la lettura del manuale &lt;del&gt;di magia nera&lt;/del&gt; &amp;ldquo;Practical Malware Analysis&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;YEEEEEEEEEE 🎉&lt;/p&gt;
&lt;p&gt;Tecnicamente ho barato: alcuni hands-on non li ho fatti, mentre alcuni capitoli li ho saltati. Mi giustifico dicendo che a breve termine non mi servono, promettendomi di tornarci in un secondo momento con più calma. I capitoli più avanzati, a differenza dei primi, più semplici, sono quelli più interessanti e che permettono di scovare più malware da un punto di vista pratico.&lt;/p&gt;
&lt;p&gt;Ma volevo fare una mini recensione!&lt;/p&gt;
&lt;p&gt;Avete presente quando vorreste un bel manuale che vi spieghi per filo e per segno cosa dovete fare? Ecco, questo è perfetto sotto questo punto di vista: &lt;strong&gt;spiegazioni chiare e semplici, con una serie di esercizi allegati, con tanto di soluzione commentata passo passo&lt;/strong&gt;. Non mi sorprende affatto che sia considerato come testo di riferimento: sarà anche molto vecchio e alcuni dei tool al quale fa riferimento sono stati sostituiti da cose più aggiornate, ma le basi a distanza di anni sono rimaste quelle.&lt;/p&gt;
&lt;p&gt;Tra i contro invece mettiamo l&amp;rsquo;essere scritto in bianco e nero (a volte le cose con riquadri e colori si capiscono di più), ma soprattutto il fatto di essere rimasto fermo a Windows XP. Da un lato il fatto che il libro risulti ancora attuale è molto bello. Dall&amp;rsquo;altro però, &lt;strong&gt;alcuni esempi non funzionano&lt;/strong&gt;. Ho speso circa 3 ore una sera per poi sorprendermi che non c&amp;rsquo;era soluzione all&amp;rsquo;esercizio che stavo facendo, se non usare una vecchia VM con Windows XP.&lt;/p&gt;
&lt;p&gt;Dunque ho scelto di leggere questo manuale per &lt;del&gt;passare un esame universitario&lt;/del&gt; ma anche perché questo argomento mi è sempre piaciuto e non ho mai avuto modo di approndirlo.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;è un ma: fare reverse engineering, soprattutto di malware, richiede una base di conoscenza di Assembly (nel manuale viene spiegato), e di come si programma in generale. Ai tempi non sapevo programmare, &lt;em&gt;figuriamoci&lt;/em&gt; fare le operazioni al contrario&amp;hellip;&lt;/p&gt;
&lt;p&gt;È assolutamente impensabile pensare di seguire un manuale del genere senza saper programmare, o senza fare gli hands-on.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;è una bella differenza tra il leggere e il fare, e questo Feynman lo sapeva molto bene.&lt;/p&gt;
&lt;p&gt;Ad ogni modo, gli esempi sul libro sono molto didattici. Vorrei riuscire a preparare una sorta di videolezioni fatte da me, perché si trovano in giro in inglese ma non in italiano. È vero che viviamo nel 2025, dove le traduzioni automatiche sono all&amp;rsquo;ordine del giorno, ma mi piacerebbe riuscire comunque a portare questo argomento su un canale YouTube.&lt;/p&gt;
&lt;p&gt;Inoltre&amp;hellip; &lt;strong&gt;ho preso tantissimi appunti usando Obsidian!&lt;/strong&gt; Proprio non mi capitava di prendere così tanti appunti da un sacco di tempo. È bello arrivare a fine giornata con tante cose apprese e scritte, a mo&amp;rsquo; di diario.&lt;/p&gt;
&lt;p&gt;Il mondo dei malware e del reverse engineering è un mondo mistico fatto di sigle, di misure antireverse, e di tanto, tanto codice Assembly. Sicuramente fare l&amp;rsquo;esame è stata una buona motivazione, ma non mi sarei mai concentrato così tanto ad approfondire.&lt;/p&gt;
&lt;p&gt;Sono stati tre giorni incredibili dove ho imparato tantissime cose, e non vedo l&amp;rsquo;ora di metterle in pratica, magari cominciando a fare i crack-me o altre sfide online, sino ad arrivare ai sample degli esami.&lt;/p&gt;</description></item><item><title>Come ritirare il diploma della scuola superiore</title><link>https://dag7.it/posts/ritirare-diploma-scuola-superiore/</link><pubDate>Mon, 13 Oct 2025 15:50:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/ritirare-diploma-scuola-superiore/</guid><description>&lt;p&gt;Qualche giorno fa, mi è venuto in mente di cercare come ritirare il diploma di scuola superiore, una cosa che avrei dovuto fare tempo fa forse, ma va bene così, meglio tardi che mai dice un proverbio.&lt;/p&gt;
&lt;p&gt;Scrivo una email alla segreteria della mia vecchia scuola, chiedendo i prossimi passi.&lt;/p&gt;
&lt;p&gt;Una signora molto cortese mi risponde dicendomi &amp;ldquo;pagamento su cc1016, di 15.13€ la scuola è aperta questi giorni dalle 15 alle 16&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Ecco le scelte che avevo a mia disposizione:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Pagarlo online tramite una piattaforma messa a disposizione dal ministero &amp;ldquo;Pago in rete&amp;rdquo; aperta alle scuole&lt;/li&gt;
&lt;li&gt;Andare alla posta e pagarlo&lt;/li&gt;
&lt;li&gt;Andare sull&amp;rsquo;app della mia banca e pagarlo lì&lt;/li&gt;
&lt;li&gt;Usare un&amp;rsquo;app di terze parti (non faccio il nome per rispetto)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Il mio primo pensiero è stato &amp;lsquo;va be, andiamo sull&amp;rsquo;app della banca e paghiamo&amp;rsquo;&lt;/p&gt;
&lt;p&gt;E così, tra un&amp;rsquo;app e l&amp;rsquo;altra, sono giunto sul link di pagamento dei bollettini.&lt;/p&gt;
&lt;p&gt;Inserisco i dati: cc1016, importo 15.13€&amp;hellip; per scoprire che&amp;hellip; l&amp;rsquo;unica tipologia di bollettino accettata è l'896&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Poco male&amp;rdquo; — Penso tra me e me — &amp;ldquo;basterà usare l&amp;rsquo;app ministeriale &amp;lsquo;Pago in rete&amp;rsquo;, designata ai pagamenti elettronici tra scuole e cittadini&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Mi registro con SPID, apro la web app, cerco il nome della scuola e noto che sono disponibili due voci della stessa scuola, una col codice meccanografico corretto e i dati giusti, l&amp;rsquo;altra sembra la rimanenza di dati meno recenti ma comunque quella era esattamente la mia scuola. A scanso di equivoci decido di inserire quella col codice meccanografico.&lt;/p&gt;
&lt;p&gt;Ecco che succede: selezionando quella col codice identificativo corretto spunta fuori un messaggio di errore dicendo che la scuola non supporta i pagamenti fatti tramite la piattaforma.&lt;/p&gt;
&lt;p&gt;Decido allora di provare quella senza codice, trattandosi della stessa scuola. Il sistema mi risponde &amp;ldquo;non ci sono pagamenti attivi che possono essere effettuati&amp;rdquo;. Come se la scuola avrebbe dovuto attivare la possibilità di pagare quel servizio online, e non di default.&lt;/p&gt;
&lt;p&gt;Spazientito, decido di scaricare l&amp;rsquo;app di terze parti, la mia ultima spiaggia. Prima di scaricarla mi sono informato come pagare il bollettino che serviva a me, e l&amp;rsquo;app in questione ha proprio un articolo in cui spiegano che è possibile farlo. &amp;ldquo;Ottimo!&amp;rdquo; — esclamo — &amp;ldquo;allora sicuramente riuscirò a pagare questa volta&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Mi registro, apro l&amp;rsquo;app e&amp;hellip; ancora una volta, schiaffi in faccia, il sistema mi dice &amp;ldquo;si, una volta era possibile pagare anche gli altri tipi di bollettini, ma ora solo l'896&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Ultima spiaggia: decido di andare in ufficio postale. Mi reco li e scopro che non solo l&amp;rsquo;ufficio postale è chiuso, ma ha un bel cartello appiccicato con su scritto &amp;ldquo;per i servizi postali, recarsi a 1.5km da qui la mattina, e 1.9km da qui se i servizi vi servono il pomeriggio&amp;rdquo;. Per motivi di tempo ovviamente non potevo recarmi lì la mattina, e il pomeriggio quando ho deciso di effettuare il pagamento avevo i minuti contati.&lt;/p&gt;
&lt;p&gt;Ecco un po&amp;rsquo; di considerazioni, prima di spiegarvi come pagare la tassa di diploma.&lt;/p&gt;
&lt;p&gt;Siamo nel 2025. I pagamenti elettronici sono stati introdotti a forza in Italia, per permettere una quasi-modernizzazione del paese e per combattere l&amp;rsquo;evasione fiscale.&lt;/p&gt;
&lt;p&gt;In un mondo governato dai pagamenti elettronici, non è possibile che per pagare determinati tipi di tasse o tributi debba essere necessario affidarsi alle poste, obbligatoriamente di persona. È una cosa veramente assurda e inutile, atta solo a favorire incentivi e giri di soldi verso una determinata azienda, che non è neanche nell&amp;rsquo;interesse dei cittadini.
Avrei capito se il pagamento fosse stato possibile effettuarlo online esclusivamente tramite una certa piattaforma, anche se non ne vedo il motivo, tanto i soldi sempre all&amp;rsquo;agenzia delle entrate vanno. Ma addirittura legare indissolubilmente il pagamento delle tasse e dei tributi alle poste, questo è un comportamento che trovo davvero inaccettabile.&lt;/p&gt;
&lt;p&gt;Un&amp;rsquo;altra considerazione che voglio fare riguarda il sistema di pagamento &amp;ldquo;Pago in rete&amp;rdquo;. È notevole il fatto che abbiano voluto semplificare il pagamento di tasse e tributi tramite un sistema di pagamento. Perlomeno non dobbiamo attendere in fila alle poste (sigh) il pagamento di una qualsiasi tassa scolastica. Il problema è che se la scuola non attiva il sistema di pagamento, è completamente inutile.&lt;/p&gt;
&lt;p&gt;Non ho dati sufficienti per stabilire quante e quali scuole e di che ordine utilizzino il sistema di pagamento ministeriale, ma che senso ha avere il sistema più figo del mondo e non attivarlo obbligatoriamente in tutte le scuole?&lt;/p&gt;
&lt;p&gt;Quindi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;alla pubblica istruzione, invito ad abilitare e forzare i pagamenti elettronici tramite la piattaforma, dando anche la possibilità di pagare di persona per chi è impossibilitato&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;all&amp;rsquo;agenzia delle entrate, invito ad abilitare il pagamento di tutte le tipologie di bollettini online, tanto i soldi sempre voi li ricevete, vi è perfettamente indifferente chi li fa&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;alla scuola stessa, invito ad accettare il sistema di pagamento &amp;ldquo;Pago in rete&amp;rdquo; o effettuare i versamenti in autonomia, mettendo a disposizione una cassa in contanti dove posso direttamente versare i soldi e possono essere versati al mio posto&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Questa è una storia davvero tutta italiana, con cose all&amp;rsquo;italiana.&lt;/p&gt;
&lt;p&gt;Ecco come fare:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;capire quando la scuola puo riceverti e se hanno ancora il tuo diploma&lt;/li&gt;
&lt;li&gt;se non lo hanno, contatta il miur&lt;/li&gt;
&lt;li&gt;recarsi alle poste&lt;/li&gt;
&lt;li&gt;non perdere tempo (sigh) a cercare altri metodi di pagamento&lt;/li&gt;
&lt;li&gt;conto corrente: 1016&lt;/li&gt;
&lt;li&gt;intestato a: agenzia delle entrate - nucleo operativo di Pescara&lt;/li&gt;
&lt;li&gt;importo: 15.13&lt;/li&gt;
&lt;li&gt;causale: tassa di diploma&lt;/li&gt;
&lt;li&gt;vai a scuola col documento e la ricevuta&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>La giungla degli spazi personali</title><link>https://dag7.it/posts/la-giungla-degli-spazi-personali/</link><pubDate>Wed, 08 Oct 2025 01:20:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/la-giungla-degli-spazi-personali/</guid><description>&lt;p&gt;Alla fine è successo: mi sono finalmente deciso a cambiare un po&amp;rsquo; la struttura di questo sito web. È difficilissimo ritagliarsi degli spazi online senza impazzire. Il mio sito web, &lt;em&gt;sì, proprio quello che state leggendo&lt;/em&gt;, era un&amp;rsquo;accozzaglia di roba tra il professionale e il non professionale.&lt;/p&gt;
&lt;p&gt;Posso affermare con una certa sicurezza che a partire da oggi:&lt;/p&gt;
&lt;p&gt;- la parte musicale adesso ha un&amp;rsquo;identità tutta sua, e la potete vedere al solito link &lt;a href="dag7.it/music"&gt;dag7.it/music&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- la parte &lt;em&gt;professional&lt;/em&gt; adesso è scorporata in un altro dominio che ho da un sacco di anni&lt;/p&gt;
&lt;p&gt;- la home page è stata pulita, ed adesso contiene i link secondari che prima era impossibile vedere&lt;/p&gt;
&lt;p&gt;Spero vivamente di aggiornare la gallery, al piu presto, magari modularizzandola visto che ora è una giungla di html+css+js+foto inserite a casaccio nella cartella &lt;code&gt;static&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Decap CMS Test</title><link>https://dag7.it/posts/decap-cms-test/</link><pubDate>Mon, 06 Oct 2025 23:56:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/decap-cms-test/</guid><description>&lt;p&gt;Proprio qualche giorno fa mi sono imbattuto nella necessità di dover scrivere un articolo per il mio blog. E mi è totalmente passata la voglia di farlo!&lt;/p&gt;
&lt;p&gt;Abbraccio moltissimo la filosofia open source di avere i file in markdown, hostati da qualche parte, essendo il mio un piccolo spazio statico ci sta che sia una cosa piccola.&lt;/p&gt;
&lt;p&gt;Ma a volte la semplicità si scontra con la troppa semplicità: non avere un&amp;rsquo;interfaccia bella e piena di feature (come ad esempio quella di Wordpress) limita tantissimo il processo creativo. Da una parte non hai il problema di un editor e sei indipendente da tutte le tecnologie. Dall&amp;rsquo;altra però, anche l&amp;rsquo;occhio vuole la sua parte. Soprattutto per le immagini, è davvero una faticaccia scrivere i post in formato markdown, metterci un&amp;rsquo;immagine carina ecc.&lt;/p&gt;
&lt;p&gt;Sarebbe tutto più semplice se esistesse un software in grado di gestire questa situazione.&lt;/p&gt;
&lt;p&gt;Oggi ho scoperto &lt;a href="https://decapcms.org/"&gt;https://decapcms.org/&lt;/a&gt; che&lt;a href="https://decapcms.org/"&gt;&lt;/a&gt; per chi non lo conoscesse è un software che fa &lt;em&gt;esattamente&lt;/em&gt; la cosa che stavo cercando.&lt;/p&gt;
&lt;p&gt;Non è perfetto: non è comunque bellissima l&amp;rsquo;interfaccia, e mi piacerebbe che in futuro la situazione migliorasse, però facciamo notevoli passi da gigante.&lt;/p&gt;
&lt;p&gt;Ecco uno screenshot di cosa vedo io quando vado a scrivere un nuovo articolo:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/uploads/screenshot-decap-cms.png" alt="decap cms screenshot" title="Uno screenshot di decap cms"&gt;&lt;/p&gt;
&lt;p&gt;Che dire? Sarà la soluzione finale o dovrò (sigh) migrare da qualche altra parte su Wordpress?&lt;/p&gt;</description></item><item><title>GitLab Pipeline Tiramisu</title><link>https://dag7.it/posts/gitlab-pipeline-tiramisu/</link><pubDate>Mon, 08 Sep 2025 15:29:03 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/gitlab-pipeline-tiramisu/</guid><description>&lt;h2 id="gitlab-cicd-pipeline-tutorial-for-beginners"&gt;GitLab CI/CD Pipeline Tutorial for Beginners&lt;/h2&gt;
&lt;p&gt;During a DevOps crash course, I&amp;rsquo;ve been called to teach how to setup a simple GitLab pipeline.&lt;/p&gt;
&lt;p&gt;It wasn&amp;rsquo;t easy: the people who took part in that course, were from very different backgrounds: backend in PHP, frontend, people out of school at their first job employment&amp;hellip; despite of this, I&amp;rsquo;ve talked to them about what a devops does, who is it, and how pipelines are important.&lt;/p&gt;
&lt;p&gt;In this article, you are going to learn how to setup a simple toy pipeline, in order to experiment a little bit with GitLab runners.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I don&amp;rsquo;t care just gimme the recipe and I&amp;rsquo;ll figure out everything else!!!
&lt;a href="#i-got-it-now-i-want-to-write-a-toy-pipeline-that-describes-a-tiramisu-recipe"&gt;here it is&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="how-to-do-it"&gt;How to do it&lt;/h2&gt;
&lt;p&gt;The first step is to have a GitLab account. You can sign up for a GitLab account &lt;a href="https://gitlab.com"&gt;here&lt;/a&gt;. I personally don&amp;rsquo;t use that much GitLab, but I will move provided my use cases fits GitLab.&lt;/p&gt;
&lt;p&gt;Next, you should create a repository:
&lt;img src="https://dag7.it/img/gitlab-pipeline-1.png" alt="gitlab-pipeline-1.png"&gt;&lt;/p&gt;
&lt;p&gt;fill the blanks as you prefer&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/gitlab-pipeline-2.png" alt="gitlab-pipeline-2.png"&gt;&lt;/p&gt;
&lt;p&gt;and click the blue button &amp;ldquo;create a project&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/gitlab-pipeline-3.png" alt="gitlab-pipeline-3.png"&gt;&lt;/p&gt;
&lt;h2 id="runner-yaml-pipeline-what-are-you-talking-about"&gt;Runner, YAML, pipeline&amp;hellip; what are you talking about?&lt;/h2&gt;
&lt;p&gt;Now it&amp;rsquo;s time to write a small pipeline and set the runner.&lt;/p&gt;
&lt;h3 id="pipeline"&gt;Pipeline&lt;/h3&gt;
&lt;p&gt;A &lt;strong&gt;pipeline&lt;/strong&gt; is a group of steps (named &amp;ldquo;&lt;strong&gt;stages&lt;/strong&gt;&amp;rdquo;) that include &lt;strong&gt;jobs&lt;/strong&gt;, what we need to do in each stage.&lt;/p&gt;
&lt;p&gt;To understand more this concept, imagine cooking a Tiramisu: you have to first &lt;em&gt;prepare ingredients&lt;/em&gt;, then you have to &lt;em&gt;assemble&lt;/em&gt; them, there is a &lt;em&gt;cooling&lt;/em&gt; part and the final step is &lt;em&gt;service&lt;/em&gt;. These all stages.&lt;/p&gt;
&lt;p&gt;Jobs can be, in the stage of &lt;em&gt;preparing ingredients&lt;/em&gt;: make some coffee, whip cream and sugar&amp;hellip;&lt;/p&gt;
&lt;p&gt;Stages and jobs together in a file, form a pipeline, that is given to a runner.&lt;/p&gt;
&lt;h3 id="runner"&gt;Runner&lt;/h3&gt;
&lt;p&gt;A runner is a server, running Linux, that will take what you wrote in your pipeline and setup all the processes in order to accomplish what you told it.&lt;/p&gt;
&lt;p&gt;For example, if we said &amp;ldquo;dear runner, compile our application (given a Dockerfile) and publish it on GitLab&amp;rdquo; it will exactly do this thing.&lt;/p&gt;
&lt;p&gt;The way to communicate between us and the machine, is using a YAML file.&lt;/p&gt;
&lt;h3 id="yaml"&gt;YAML&lt;/h3&gt;
&lt;p&gt;A YAML file is a plain text file, with some instructions in there. YAML is a declarative language, meaning that we don&amp;rsquo;t have to write specific keywords in order to describe or achieve something in particular, rather than we focus more on the grammar of the language to reach our goals.&lt;/p&gt;
&lt;p&gt;To learn YAML I strongly suggest &lt;a href="https://learnxinyminutes.com/yaml/"&gt;this amazing website&lt;/a&gt; that will teach you in no time how to write some YAML.&lt;/p&gt;
&lt;h2 id="ok-how-do-i-setup-the-runner"&gt;Ok, how do I setup the runner?&lt;/h2&gt;
&lt;p&gt;Left side of the menu, &amp;ldquo;build&amp;rdquo;, &amp;ldquo;pipelines&amp;rdquo;
&lt;img src="https://dag7.it/img/gitlab-pipeline-4.png" alt="gitlab-pipeline-4.png"&gt;&lt;/p&gt;
&lt;p&gt;Next, click on the &amp;ldquo;test template&amp;rdquo;
&lt;img src="https://dag7.it/img/gitlab-pipeline-5.png" alt="gitlab-pipeline-5.png"&gt;&lt;/p&gt;
&lt;p&gt;We will be in the pipeline editor: this will create a &lt;code&gt;.gitlab-ci.yml&lt;/code&gt; file at the end of our edits.
&lt;img src="https://dag7.it/img/gitlab-pipeline-6.png" alt="gitlab-pipeline-6.png"&gt;&lt;/p&gt;
&lt;p&gt;Click &amp;ldquo;commit changes&amp;rdquo; at the end and wait for a pipeline running warning at the top of the page.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/gitlab-pipeline-7.png" alt="gitlab-pipeline-7.png"&gt;&lt;/p&gt;
&lt;p&gt;If you click on the link in blue, you will see something like this:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/gitlab-pipeline-8.png" alt="gitlab-pipeline-8.png"&gt;&lt;/p&gt;
&lt;p&gt;don&amp;rsquo;t worry if something doesn&amp;rsquo;t have a green tick, it will be a matter of time.&lt;/p&gt;
&lt;p&gt;If everything goes well, everything&amp;rsquo;s will be marked in green.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/gitlab-pipeline-9.png" alt="gitlab-pipeline-9.png"&gt;&lt;/p&gt;
&lt;p&gt;This means that pipeline has succeeded.&lt;/p&gt;
&lt;h2 id="i-got-it-now-i-want-to-write-a-toy-pipeline-that-describes-a-tiramisu-recipe"&gt;I got it, now I want to write a toy pipeline that describes a Tiramisu recipe&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s the YAML file to copy paste in the pipeline:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;stages:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- prep
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- assembly
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- cooling
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- serving
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;prepare_cream:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;stage: prep
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;script:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- date +%H%M%S
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;I beat the egg yolks with the sugar&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;I add the mascarpone&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;I whip the cream and fold it in&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;prepare_coffee:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;stage: prep
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;script:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- date +%H%M%S
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;I prepare the coffee with the Moka pot (preferably a large one)&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;I let the coffee cool&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;prepare_ladyfingers:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;stage: prep
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;script:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- date +%H%M%S
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;I prepare the ladyfingers&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;soak_ladyfingers:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;stage: assembly
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;script:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- date +%H%M%S
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;I dip the ladyfingers in cold coffee&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;layer_layouts:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;stage: assembly
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;script:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- date +%H%M%S
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;Arrange the ladyfingers in the pan&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;Spread the mascarpone cream&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;Repeat the layers until the pan is full&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;Drizzle the surface with bitter coffee or chocolate&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chill_tiramisu:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;stage: cooling
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;script:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- date +%H%M%S
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;I refrigerate the tiramisu for at least 4 hours&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;serve_tiramisu:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;stage: serving
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;script:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- date +%H%M%S
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;I get the set of plates&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;I plate the tiramisu&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;I serve it to my guests&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;:)&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- echo &amp;#34;Measure blood sugar&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This is the recipe in Italian:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;stages:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- preparazione_ingredienti
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- assemblaggio
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- raffreddamento
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- servizio
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;prepara_crema:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; stage: preparazione_ingredienti
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; script:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - date +%H%M%S
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Monto i tuorli con lo zucchero&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Aggiungo il mascarpone&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Monto la panna e la incorporo&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;prepara_caffe:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; stage: preparazione_ingredienti
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; script:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - date +%H%M%S
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Preparo il caffé con la Moka (meglio se grande)&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Lascio raffreddare il caffè&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;prepara_savoiardi:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; stage: preparazione_ingredienti
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; script:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - date +%H%M%S
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Preparo i savoiardi&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;inzuppa_savoiardi:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; stage: assemblaggio
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; script:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - date +%H%M%S
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Inzuppo i savoiardi nel caffè freddo&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;metti_strati:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; stage: assemblaggio
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; script:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - date +%H%M%S
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Disporre i savoiardi nella teglia&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Stendere la creama al mascarpone&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Ripetere gli strati fino a esaurire lo spazio nella teglia&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Spolverare con caffè amaro o cioccolato in superficie&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;raffredda_tiramisu:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; stage: raffreddamento
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; script:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - date +%H%M%S
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Metto il tiramisù in frigo per almeno 4 ore&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;servi_tiramisu:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; stage: servizio
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; script:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - date +%H%M%S
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Prendo il set di piattini&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Impiatto il tiramisù &amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Servo ai miei ospiti&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;:)&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - echo &amp;#34;Misurare la glicemia&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Save it into your pipeline editor, commit and&amp;hellip;?&lt;/p&gt;
&lt;h2 id="where-tiramisu"&gt;Where Tiramisu?&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/gitlab-pipeline-10.png" alt="gitlab-pipeline-10.png"&gt;&lt;/p&gt;
&lt;p&gt;We have cooked a delicious tiramisu and learnt how the pipeline works! 🍰🍫☕️&lt;/p&gt;
&lt;h2 id="ending"&gt;Ending&lt;/h2&gt;
&lt;p&gt;Thanks for your attention, I highly suggest to try it out this simple example to get started with GitLab runners and pipelines. This was a toy example, but many other awesome things can be done.&lt;/p&gt;
&lt;p&gt;Try this pipeline in your own GitLab project and share your results by sending me an email!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;NOTE&lt;/em&gt;: the line &amp;ldquo;date&amp;rdquo; in script part, is for echoing the date time when the job is executed. This is to figure out if the job execution is done in parallel or in sequence. Figure it out for yourself, which of the two ways.&lt;/p&gt;</description></item><item><title>Come fare musica con il GameBoy</title><link>https://dag7.it/posts/come-creare-musica-con-il-game-boy/</link><pubDate>Fri, 04 Jul 2025 13:36:03 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/come-creare-musica-con-il-game-boy/</guid><description>&lt;p&gt;Hai partecipato al talk a Zona Warpa Roma 2025? Sei solo curioso di vedere le mie slide del talk che ho tenuto?&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dag7.it/slides/come-creare-musica-con-il-gameboy"&gt;Clicca qui e sarai accontentato&lt;/a&gt;!&lt;/p&gt;</description></item><item><title>Recensione: La sottile arte di fare quello che c***o ti pare</title><link>https://dag7.it/posts/la-sottile-arte/</link><pubDate>Fri, 28 Feb 2025 13:24:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/la-sottile-arte/</guid><description>&lt;p&gt;&lt;img src="https://dag7.it/img/libro-la-sottile-arte.jpg" alt="image"&gt;&lt;/p&gt;
&lt;h2 id="introduzione"&gt;Introduzione&lt;/h2&gt;
&lt;p&gt;&amp;ldquo;La Sottile arte&amp;rdquo; è un libro che mi ha sempre incuriosito sin da quando avevo 16 anni: ai tempi leggevo tantissimi libri, e mi ricordo che un giorno presi questo libro tra le mani e iniziai a leggerlo, un po&amp;rsquo; attratto dal suo contenuto, un po&amp;rsquo; perché c&amp;rsquo;era una parolaccia nel titolo.&lt;/p&gt;
&lt;p&gt;Col passare degli anni i ricordi si sono affievoliti ma appena ne ho avuto l&amp;rsquo;occasione ho acquistato questo libro.&lt;/p&gt;
&lt;p&gt;Incoraggia ad avere una visione del mondo diversa da quella che uno ha oltre a dare altre visioni, cose che magari conosci e sai, ma non hai avuto modo di rifletterci ultimamente.&lt;/p&gt;
&lt;p&gt;Nel libro vengono affrontati tantissimi temi e cosa dovrebbero o non dovrebbero rappresentare nella vita di tutti noi, volendone citare qualcuno: sbattersene, sbattersi per quello che uno vuole davvero e non per l&amp;rsquo;ideale, scegliere bene i valori, Panda Deluso l&amp;rsquo;eroe che non esiste ma tutti ne hanno bisogno, il segreto della felicità e dell&amp;rsquo;infelicità, emozioni, leggi di inversione.&lt;/p&gt;
&lt;h2 id="citazioni"&gt;Citazioni&lt;/h2&gt;
&lt;p&gt;Ho trascritto a mano alcune citazioni ed elaborato brevi pensieri eccoli qui:&lt;/p&gt;
&lt;h3 id="sbattersi"&gt;Sbattersi&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Sbattersi per troppe cose nuoce alla tua salute mentale
— Pagina 12&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ed è vero, spesso non ce ne rendiamo conto ma siamo totalmente assorbiti dalle troppe cose che ci succedono, dai troppi stimoli solo perché non abbiamo imparato a selezionarle&lt;/p&gt;
&lt;h3 id="ciclo-di-risposta-infernale"&gt;Ciclo di risposta infernale&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Si chiama Ciclo di risposta infernale, e appena ti distrai ci finisci dentro e ti manda in pappa il cervello. Non è colpa nostra, è un errore che la società stessa ci porta a fare. E’ la spinta. Sii il migliore, il più popolare, il più produttivo, il più invidiato, il più ricco, il più attraente, il più ammirato. Sii perfetto, formidabile, poi esci e vai a fare il tuo lavoro ultra gratificante che finirà per salvare anche il mondo
— Pagina 15&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Fregandotene ottieni i migliori risultati
— Pagina 18&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="valori"&gt;Valori&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Scegli sempre per cosa batterti
— Pagina 27&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Valori di merda: piacere, successo materiale, avere sempre ragione ed essere sempre positivi.
— Pagina 102&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In particolare nel secondo punto, racconta della storia del batterista dei Beatles, Pete Best, che fu cacciato dalla band, e fu sostituito da Ringo Starr. Lui trovò il coraggio di ricominciare una nuova vita con la sua compagna e i propri figli.&lt;/p&gt;
&lt;p&gt;Racconta anche la storia di Dave Mustaine: un chitarrista bravissimo che faceva parte dei Metallica, ma fu cacciato dalla band. Lui non si arrese e fondò i Megadeth, una band che ebbe un successo incredibile ma che non raggiunse mai i livelli dei Metallica e lui ne soffrì molto.&lt;/p&gt;
&lt;p&gt;Nel terzo punto invece afferma che è molto più utile presumere di essere ignoranti e non sapere granchè, poiché questo permette di imparare e migliorarsi.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Quando abbiamo valori scadenti che applichiamo a noi stessi o ad altri ci sbattiamo per cose di poca importanza. Quando abbiamo valori migliori, ci sbattiamo per cose che contano davvero.
— Pagina 110&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="come-scegliere-dei-valori-un-po-migliori"&gt;Come scegliere dei valori un po&amp;rsquo; migliori&lt;/h3&gt;
&lt;h4 id="responsabilità"&gt;Responsabilità&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Ogni cosa che succede siamo noi a scegliere come reagire&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id="incertezza"&gt;Incertezza&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;La certezza è nemica della crescita. Non c’è nulla di certo finché non accade – e anche a quel punto, resta discutibile. Per questo motivo perché avvenga una crescita di qualunque tipo è necessario accettare le inevitabili imperfezioni dei nostri valori.
— Pagina 145&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id="fallimento"&gt;Fallimento&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Se una cosa ti modifica la eviti. È il motivo per il quale le persone evitano il successo o il fallimento e non fa le cose, come diventare un grande artista o pubblicare video o un libro.
— Pagina 165&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Se sei bloccato su un problema, non restare fermo a pensarci sopra; comincia a lavorarci. Anche se non hai idea di cosa stai facendo, il semplice fatto di lavorarci finirà per portare nella tua testa le idee giuste
— Pagina 192&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id="rifiuto"&gt;Rifiuto&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Ma dobbiamo rifiutare qualcosa. Altrimenti non diamo importanza a niente. Se nessuna cosa è migliore o più desiderabile di un’altra, siamo vuoti e la nostra vita non ha significato
— Pagina 204&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;La gente non può risolvere per te i tuoi problemi. Né dovrebbe provarci, perché la cosa non ti renderà felice. Neanche tu puoi risolvere i problemi degli altri, perché analogamente non li renderesti felici. Una relazione malsana si ha quando due persone cercano di risolversi a vicenda i problemi per sentirsi bene rispetto a se stessi.
Al contrario, una relazione sana si ha quando ciascuno risolve i propri problemi per sentirsi bene rispetto all’altro. Imporre qualche limite decente non significa che non puoi aiutare il tuo partner o sostenerlo, o essere sostenuta e aiutata. Dovete sostenervi a vicenda. Ma solo perché scegliete di farlo. Non perché vi sentite obbligati o pensate che sia dovuto.
— Pagina 212&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Per questo il tradimento è così distruttivo. [&amp;hellip;]
O si ricostruisce la fiducia, o ci si saluta. Il problema è che quasi tutte le persone che sono scoperte a tradire si scusano e fanno il discorsetto del «Non succederà mai più» e basta. Molti traditi accettano questa risposta come dato di fatto e non si chiedono se quei valori e quelle cose lo rendano una buona persona con cui stare insieme.
Se una persona tradisce, qualunque sia il motivo, è evidente che i valori di chi tradisce non sono allineati in modo tale da sostenere una relazione sana, e se questa persona non lo ammette o si rifiuta di accettarlo è priva dell&amp;rsquo;autoconsapevolezza necessaria a risolvere qualunque problema relazionale.
— Pagina boh&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="morte"&gt;Morte&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Tu sei un grande, e non perché hai obiettivi definiti e beni materiali. Queste cose non definiscono la grandezza. Sei un grande perché di fronte alla confusione infinita e alla morte certa, continui a decidere per cosa sbatterti e per cosa no. Questo semplice fatto, il semplice scegliere i valori della tua vita, ti rende già una persona bellissima, di successo e amata. Anche se non te ne rendi conto, se stai morendo di fame o dormendo sotto un ponte. Anche tu morirai e questo perché anche tu hai avuto l’enorme fortuna di avere vissuto.
— Pagina 247&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="budda"&gt;Budda&lt;/h3&gt;
&lt;p&gt;Qui non riporto delle citazioni, ma l&amp;rsquo;autore parla della storia di Buddha, storia che personalmente non conoscevo e ho ritenuto molto interessante.&lt;/p&gt;
&lt;p&gt;In breve: Buddha era un principe che aveva tutto, ma non era felice, e un giorno decise di abbandonare luogo, averi e casa e andare in cerca della verità uscendo dalla sua zona di comfort.&lt;/p&gt;
&lt;h3 id="panda-deluso"&gt;Panda Deluso&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Panda Deluso &amp;hellip; il suo superpotere sarebbe quello di dire alle persone le verità crudeli che hanno bisogno di sentire ma che si rifiutano di accettare. Andrebbe di porta in porta come un venditore di Bibbie, suonerebbe il campanello e direbbe cose come: «Certo, fare un sacco di soldi ti fa sentire bene, ma non ti farà amare dai tuoi figli», [&amp;hellip;]. Poi augurerebbe ai padroni di casa una buona giornata e s&amp;rsquo;incamminerebbe verso l’appartamento successivo
— Pagina 36&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;L&amp;rsquo;autore fa riferimento ad un ipotetico eroe che non esiste, ma vorrebbe che esistesse. Panda non si farebbe problemi nel dire le cose, belle o brutte che siano, sputandoci in faccia la realtà.&lt;/p&gt;
&lt;p&gt;Soffriamo perché è biologicamente utile, sprona al cambiamento.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Se eviti i tuoi problemi e senti di non averne, ti rendi infelice. Il segreto sta nel risolvere i problemi, non nel non averne
— Pagina 41&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="felicità"&gt;Felicità&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Desiderare un&amp;rsquo;esperienza positiva è già di per sé un&amp;rsquo;esperienza negativa
— Pagina 16&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Non sarai mai falice se continui a cercare in che cosa consiste il significato della vita - Albert Camus
— Pagina 17&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;La domanda giusta non è &amp;ldquo;cosa vuoi dalla vita&amp;rdquo; ma &amp;ldquo;quale dolore vuoi dalla tua vita&amp;rdquo;
— Pagina 48&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;La felicità richiede fatica, cresce dai problemi. La gioia non sunta dalla terra come le margherite.
— Pagina 49&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;La strada verso la felicità è una piena di mucchi di merda
— Pagina 50&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="emozioni"&gt;Emozioni&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Le emozioni sono segnali, suggerimenti, non comandamenti. Le emozioni negative sono una chiamata al&amp;rsquo;azione, quando le provi è perché devi fare qualcosa.
— Pagina 45&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Sai chi basa la propria vita sulle emozioni? I bambini di tre anni e i cani. Essere ossessionato dalle emozione e attribuire loro un-importanza eccessiva ci danneggia per il semplice fatto che esse non durano.
— Pagina 46&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="sui-social"&gt;Sui social&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Più siamo liberi di esprimerci, più vogliamo essere liberi di non interagire con chiunque possa turbarci e non essere d&amp;rsquo;accordo con noi.
— Pagina 72&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Essere nella media è perfettamente ok: se fossimo tutti speciali nessuno lo sarebbe.
— Pagina 78&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="legge-dellinversione-backwards-law"&gt;Legge dell&amp;rsquo;inversione (backwards law)&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Più ti sforzi di essere certo di qualcosa, più ti sentirai incerto e insicuro&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="conclusioni"&gt;Conclusioni&lt;/h2&gt;
&lt;p&gt;Un libro che offre indubbiamente una panoramica su un modo di vedere le cose diverso al quale siamo abituati. Condivido personalmente molti punti che vengono toccati e spero di riuscire anche il suo seguito molto presto.&lt;/p&gt;
&lt;p&gt;Dopo questo trip mentale all&amp;rsquo;insegna di Panda Deluso, consiglio di leggere Atomic Habits di James Clear, dopo questo libro recensione piccola che arriverà prossima settimana.&lt;/p&gt;</description></item><item><title>Recensione: Storia del videogioco</title><link>https://dag7.it/posts/recensione-storia-del-videogioco/</link><pubDate>Sun, 23 Feb 2025 20:35:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/recensione-storia-del-videogioco/</guid><description>&lt;p&gt;&lt;img src="https://dag7.it/img/libro-storia-videogioco.png" alt="image"&gt;&lt;/p&gt;
&lt;p&gt;Oggi ho finalmente finito &amp;ldquo;Storia del Videogioco&amp;rdquo;, un libro che avevo inziato a Dicembre ma che non avevo terminato.&lt;/p&gt;
&lt;p&gt;Il libro è molto corto, ha circa 150 pagine e racconta dagli albori ai videogiochi più moderni.&lt;/p&gt;
&lt;p&gt;Secondo me è ottimo per chi non è esperto per nulla e vuole approfondire o semplicemente per gli amanti del retrogaming: sono venuto a conoscenza di importanti figure e di parti delle storie di alcune delle più famose case di produzione videoludiche dell&amp;rsquo;epoca proprio grazie a questo libro.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;inizio è davvero immersivo, racconta la storia del videogioco, partendo da prima dell&amp;rsquo;esposizione del 1958 di Tennis For Two addirittura.&lt;/p&gt;
&lt;p&gt;Verso la fine si perde tantissimo e viene tutto condensato in qualche manciata di pagine: davvero un peccato, secondo me si sarebbe potuta spendere qualche parola in più per l&amp;rsquo;evoluzione dei giochi e il mercato in generale.&lt;/p&gt;
&lt;p&gt;Nel complesso va benissimo da leggere ai fini di accrescere la propria cultura storica sui videogiochi classici e storici, ma non prendetelo come testo di riferimento per i videogiochi dopo il 2010.&lt;/p&gt;</description></item><item><title>Unity, AR, AI, ML e altre cose</title><link>https://dag7.it/posts/unity-ar-ai-ml-e-altre-cose/</link><pubDate>Fri, 31 Jan 2025 09:40:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/unity-ar-ai-ml-e-altre-cose/</guid><description>&lt;h2 id="introduzione"&gt;Introduzione&lt;/h2&gt;
&lt;p&gt;Per il mio esame di Computer Vision dovevo fare un progetto in una tecnologia che sfruttasse la Computer Vision. Poteva trattarsi di un modello di Machine Learning (da ora in avanti ML), riconoscimento di volti&amp;hellip;&lt;/p&gt;
&lt;p&gt;Tuttavia una delle mie passioni più grandi, sin dal 2014, è sempre stata la realtà aumentata. Siccome i modelli di ML spopolano al giorno d&amp;rsquo;oggi, basti pensare a Deepseek a GPT e chi più ne ha più ne metta, mi sono venute in mente diverse idee.&lt;/p&gt;
&lt;h2 id="lidea"&gt;L&amp;rsquo;idea&lt;/h2&gt;
&lt;p&gt;Ciò che però ha conquistato la mia scimmia, è stata un&amp;rsquo;idea tanto semplice quanto complessa.&lt;/p&gt;
&lt;p&gt;A Roma abbiamo un grande problema: gli autobus e i mezzi pubblici. Noi li odiamo, loro odiano noi, quindi la cosa è reciproca, ma c&amp;rsquo;è una cosa insopportabile che non ho riscontrato in quasi nessuna altra città: le fermate dell&amp;rsquo;autobus (o paline) sono senza le tabelle degli orari previsti e delle partenze da capolinea.&lt;/p&gt;
&lt;p&gt;Questa grave mancanza fa sì che certamente una persona si affida alle app online, ma fattuariamente le app online mostrano solo il prossimo o i prossimi orari previsti o dei bus in arrivo.&lt;/p&gt;
&lt;p&gt;Senza contare che ogni volta bisogna geolocalizzarsi o inserire il codice della fermata a mano, o i nomi delle fermate. Non tutte le app infatti supportano l&amp;rsquo;inserimento del numero identificativo della fermata.&lt;/p&gt;
&lt;p&gt;Quanto sarebbe bella un&amp;rsquo;app che la apri, inquadri la fermata, lui ci pensa qualche secondo e ti dice in tempo reale che fine ha fatto il tuo autobus, se arriva o meno, prossime partenze da capolinea e&amp;hellip; insomma tutte le informazioni del quale potresti avere bisogno ma proiettate direttamente sulla fermata?&lt;/p&gt;
&lt;p&gt;E da qui inizia l&amp;rsquo;odissea.&lt;/p&gt;
&lt;h2 id="un-inizio-difficile"&gt;Un inizio difficile&lt;/h2&gt;
&lt;p&gt;La nostra storia comincia con Unity: questo strumento permette infatti, stando alle informazioni che si trovano online di creare esperienze per la XR, la cosiddetta Extended Reality che comprende Realtà Aumentata e Realtà Virtuale, in maniera abbastanza semplice.&lt;/p&gt;
&lt;p&gt;Inoltre è gratuito.&lt;/p&gt;
&lt;p&gt;Perché non approfittarne?&lt;/p&gt;
&lt;p&gt;Bè perché&amp;hellip;&lt;/p&gt;
&lt;p&gt;NON ESISTE un altro modo per fare esperienze AR con un motore grafico!&lt;/p&gt;
&lt;p&gt;O meglio, esistono altri motori grafici, che però non hanno implementato tutte le funzionalità come Unity. Va da sé che per creare esperienze di questo genere si ha bisogno di Unity.&lt;/p&gt;
&lt;p&gt;Non l&amp;rsquo;ho mai usato, non conosco i principi del game design e della programmazione dei videogiochi in 3D, ma voglio dire, se Godot provato il giorno prima è così semplice, immagino sarà come bere un bicchier d&amp;rsquo;acqua.&lt;/p&gt;
&lt;p&gt;La curva di apprendimento è altissima: non consiglierei mai Unity ad uno sviluppatore alle prime armi, ma neanche ad un programmatore con molta esperienza. Non si capisce dove sono le cose, devi aggiungere componenti intermedi per eseguire qualsiasi azione, insieme a Unity ti viene installato Visual Studio (non Code) che è pesantissimo e scomodo, ogni volta che cambi qualcosa all&amp;rsquo;interno del progetto (assets) deve ricaricare tutto e ci mette del tempo, ed infine utilizza C# che non è un grossissimo problema venendo da Python e Java, ma se stai lavorando in velocità lo è eccome se non conosci il linguaggio.&lt;/p&gt;
&lt;p&gt;Unity funziona a scene, e in ogni scena ci sono gli oggetti. Gli oggetti possono avere delle proprietà, altri oggetti a loro volta (es. Canvas, una tela, può avere al suo interno un&amp;rsquo;immagine o anche un bottone).&lt;/p&gt;
&lt;h2 id="workflow-iniziale"&gt;Workflow iniziale&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;idea alla base è molto semplice: un&amp;rsquo;app che preso il flusso della fotocamera, riconosce che si tratta della fermata del bus, estrae il testo, fa una ricerca online della fermata e restituisce tutte le informazioni necessarie.&lt;/p&gt;
&lt;p&gt;Scompattiamola in più problemi e soluzioni:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Prendere il flusso della fotocamera: qui Unity ci viene in aiuto, basta inserire un oggetto nella scena del gioco già preimpostato.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Riconoscere la fermata del bus: qui mi viene da dire che o usiamo delle immagini di riferimento e la libreria opencv in modo tale da riuscire a estrapolare l&amp;rsquo;immagine, oppure usiamo un modello di Machine Learning opportunamente addestrato.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Estrarre il testo: idem, usiamo un altro modello di ML&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cercare e restituire le informazioni: serve un endpoint intermedio o una chiamata a OpenData. Niente che non possa essere gestito.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="iniziamo"&gt;Iniziamo?&lt;/h2&gt;
&lt;p&gt;Già iniziare a settare la camera già fatta e impostata è un&amp;rsquo;impresa. Inizialmente avrei dovuto usare OpenXR e AndroidXR salvo poi scoprire che si tratta di un ecosistema non rilasciato. Ho speso la parte iniziale per configurare il progetto e cercare di far funzionare quelle cose, salvo poi scoprire che non servivano. Dopo un po&amp;rsquo; di peripezie e ricerche online riesco a capire come fare: basta aggiungere AR Session e AR Camera Manager.&lt;/p&gt;
&lt;h2 id="riconoscere-la-fermata-del-bus"&gt;Riconoscere la fermata del bus&lt;/h2&gt;
&lt;p&gt;E come? Abbiamo detto prima di usare OpenCV la libreria ricca di strumenti per computer vision. Gli unici due risultati che trovo sono &lt;a href="https://assetstore.unity.com/packages/tools/integration/opencv-for-unity-21088"&gt;questo tool a 50$&lt;/a&gt; e &lt;a href="https://github.com/emgucv/emgucv/"&gt;quest&amp;rsquo;altra libreria qui emgucv&lt;/a&gt; che però la prima costa 50$ e la seconda non si trovano esempi.&lt;/p&gt;
&lt;p&gt;Devo passare ad un modello di Machine Learning.&lt;/p&gt;
&lt;p&gt;Mi imbatto in &lt;a href="https://dev.to/andreygermanov/how-to-create-yolov8-based-object-detection-web-service-using-python-julia-nodejs-javascript-go-and-rust-4o8e"&gt;questo articolo&lt;/a&gt; e &lt;a href="https://towardsdatascience.com/the-comprehensive-guide-to-training-and-running-yolov8-models-on-custom-datasets-22946da259c3"&gt;questa guida&lt;/a&gt; che spiegano come creare un riconoscitore di oggetti personalizzato. Proprio ciò che serve a me!&lt;/p&gt;
&lt;p&gt;È il momento di cercare le immagini delle fermate dell&amp;rsquo;autobus di Roma: online se ne trovano a bizzeffe per fortuna quindi faccio presto. Ma come faccio a dire al modello di ML che quella è una fermata del bus? Semplice, bisogna riquadrare gli oggetti nelle immagini, usando tool come &lt;a href="cvat.ai"&gt;cvat.ai&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;La fase di labeling, questo è il nome tecnico, dura 2 ore, ma devo rifare il lavoro 3 volte.&lt;/p&gt;
&lt;p&gt;La prima perché l&amp;rsquo;ho fatto in maniera non consistente inquadrando un po&amp;rsquo; la fermata e un po&amp;rsquo; il contenuto della fermata, la seconda perché non ho pulito il dataset da eventuali immagini a bassa risoluzione e un&amp;rsquo;altra cosa fondamentale: YOLO supporta, solo rettangoli, e non forme personalizzate.&lt;/p&gt;
&lt;p&gt;Di conseguenza, siccome non sapevo di questa cosa e ho pensato di selezionare tutta l&amp;rsquo;area del bus, devo fare di nuovo labelling delle immagini.&lt;/p&gt;
&lt;p&gt;La terza è quella giusta.&lt;/p&gt;
&lt;h2 id="modello-ml-fatto-finalmente"&gt;Modello ML fatto! Finalmente!&lt;/h2&gt;
&lt;p&gt;Dopo qualche giorno riesco finalmente ad addestrare un modello in 300 epoch, con una precisione altissima. Sono molto soddisfatto ma c&amp;rsquo;è un problema: Unity supporta solo file onnx, non pt, il formato predefinito di pytorch. Decido di convertire il modello e noto che gli output sono sbagliati: che fare?&lt;/p&gt;
&lt;p&gt;Dopo moltissime ricerche vengo a scoprire che bisogna applicare dei &amp;ldquo;controlayer&amp;rdquo;: ma io non ho la più pallidea idea di cosa applicare.&lt;/p&gt;
&lt;p&gt;Così armato di pazienza e motori di ricerca cerco e cerco e cero, finchè non mi imbatto in &lt;a href="https://huggingface.co/unity/sentis-YOLOv8n/blob/main/RunYOLO8n.cs"&gt;questo link dagli sviluppatori&lt;/a&gt;. La manna dal cielo: basta copiare questo, modificarlo leggermente e&amp;hellip; &lt;del&gt;FUNZIONA TUTTO!&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;Il risultato è un disastro: lo script è stato sviluppato per la versione 1.4.0 di Sentis, ma ora siamo alla 2.1, e nonostante ci siano delle guide per modernizzare il codice, cerco di scrivere il codice aggiornato diverse volte, fallendo miseramente.&lt;/p&gt;
&lt;p&gt;Mi viene in mente allora una cosa semplice tanto banale: passare a una versione inferiore di Sentis, così che quell&amp;rsquo;esempio possa girare senza problemi. Per mia fortuna funziona proprio così!&lt;/p&gt;
&lt;h2 id="alla-ricerca-della-fermata-nascosta"&gt;Alla ricerca della fermata nascosta&lt;/h2&gt;
&lt;p&gt;Armato di forbici dalla punta arrotondata, capisco che ora il problema è fargli riconoscere la fermata.&lt;/p&gt;
&lt;p&gt;Ecco cosa provo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;riaddestrare facendo labelling nuovamente per la quarta volta, questa volta cercando di fargli riconoscere fermata e numero&lt;/li&gt;
&lt;li&gt;addestrare 4 modelli diversi su tempi diversi&lt;/li&gt;
&lt;li&gt;integrare un altro modello che riconosca le cifre&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Inutile dirvi che nessuna di queste funziona: il testo è troppo piccolo nelle foto.&lt;/p&gt;
&lt;p&gt;Su unity inoltre, poiché c&amp;rsquo;è bisogno di quel formato onnx, non riesco ad usare nessun altro modello e tesseract non si può usare perché non c&amp;rsquo;è una guida su come usarlo su sentis.&lt;/p&gt;
&lt;p&gt;Decido di fare una cosa: delegare a un sistema esterno il compito di tradurre il testo dall&amp;rsquo;immagine, mentre all&amp;rsquo;app lasciare il compito di riconoscere la fermata.&lt;/p&gt;
&lt;h2 id="ocr-riconoscimento-di-testo"&gt;OCR: riconoscimento di testo&lt;/h2&gt;
&lt;p&gt;Anche questa cosa si rivela un buco nell&amp;rsquo;acqua: il sistema esterno è pronto, metto su una piccola app in Flask in Python con la libreria tesseract per l&amp;rsquo;OCR, ma l&amp;rsquo;app non riesce a rilevare cifre su immagini piccole.&lt;/p&gt;
&lt;p&gt;Se invece gli dò tutta l&amp;rsquo;immagine l&amp;rsquo;OCR avviene, ma non molto correttamente e i numeri non li rivela mai.&lt;/p&gt;
&lt;h2 id="the-end"&gt;The end?&lt;/h2&gt;
&lt;p&gt;Ecco cosa ho imparato grazie a questa esperienza:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;prima di iniziare o proporre un progetto valutarne attentamente la fattibilità&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;quando si gestisce un esempio, sarebbe bene aggiornarlo all&amp;rsquo;ultima versione man mano che le versioni avanzano&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;YOLOv8 è ottimo per riconoscere oggetti personalizzati&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;se non hai una GPU potente, linux, e un bel disco capiente, scordati di fare qualunque cosa con il machine learning. L&amp;rsquo;alternativa è Copilot ma devi assumere che il modello venga addestrato in tempi brevi.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Yes, the end, vicolo cieco.&lt;/p&gt;
&lt;p&gt;Via verso un altro progetto!&lt;/p&gt;</description></item><item><title>Canto di Natale, cucina cinese e DOM clobbering</title><link>https://dag7.it/posts/2024-12-23/</link><pubDate>Mon, 23 Dec 2024 00:00:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/2024-12-23/</guid><description>&lt;p&gt;Ecco tre cose a caso che mi sono piaciute e ho scoperto ultimamente.&lt;/p&gt;
&lt;h2 id="canto-di-natale"&gt;Canto di Natale&lt;/h2&gt;
&lt;p&gt;Il vero canto di natale, non rappresenta come in molti noi crediamo il fatto che &amp;ldquo;a Natale siamo tutti più buoni e si sta in famiglia e si fa il grande pranzo&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;immagine di Babbo Natale, è presa dal fantasma del Natale presente.&lt;/p&gt;
&lt;p&gt;Il fatto di festeggiare il Natale, nasce come celebrazione del solstizio: il giorno in cui ci sono meno ore di luce in tutto l&amp;rsquo;anno. Di conseguenza si è più deboli e fare un pranzo tutti insieme è un modo per rimanere forti perché è più difficile sopravvivere: fa freddo!&lt;/p&gt;
&lt;p&gt;Quando Dickens scrisse il canto di Natale, era il 1840, in piena rivoluzione industriale: non si stava così bene, Londra si era appena trasformata in una cappa grigia a causa della rivoluzione industriale. Ai padroni delle fabbriche però questo non importava: stavano bene dopotutto poiché loro guadagnavano, e finché un lavoratore fa guadagnare, tutto bene. I poveri lavorano, i ricchi stavano bene.&lt;/p&gt;
&lt;h2 id="cucina-cinese-e-perché-a-milano-ci-sono-così-tanti-cinesi"&gt;Cucina cinese e perché a Milano ci sono così tanti cinesi&lt;/h2&gt;
&lt;p&gt;A Milano c&amp;rsquo;è stato il primo insediamento cinese in Italia: questo perché dopo la prima guerra mondiale vennero dei cinesi a Milano (quaranta) che via via divennero sempre di più, originari della provincia di Zhejiang.&lt;/p&gt;
&lt;p&gt;In Cina hanno un detto: a colazione si mangia tanto, a pranzo si mangia bene, a cena si mangia intelligente.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;colazione: si mangia tanto perché deve servire una grande energia per tutta la giornata e per lavorare&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;pranzo: si mangia bene, quindi anche cose più pesanti&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;cena: si mangia intelligente, ossia leggero poiché ognuno ha le proprie condizioni e le proprie esigenze (cercando su Google ho trovato &amp;ldquo;mangiare come un povero&amp;rdquo;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una colazione tradizionale è un po&amp;rsquo; dolce e un po&amp;rsquo; salata, e può comprendere di: pane di soia che deve essere bianco e leggermente dolciastro, bao con verdure miste e carne , latte di soia dolce e latte di soia salata con salsa di soia, pastella fritta, cipollotto e coriandolo.&lt;/p&gt;
&lt;p&gt;Un pranzo invece dipende: di solito è 1+1, 2+1, 3+1, 4+1 o 4+2 e significano (numero di portate)+(numero di zuppe). Es. 2+2 vuol dire due piatti principali e due zuppe. L&amp;rsquo;acqua non si beve: si prende il té e si ordina la zuppa proprio per assumere liquidi. Solitamente è 2+1: pak-choi saltato (verdure) e carne di suino saltato con peperoni e peperoncino piccanti. La zuppa invece, la più popolare, è con pomodoro, uovo e cipollotto. E immancabilmente anche una ciotola di riso bianco. Non c&amp;rsquo;è un ordine.&lt;/p&gt;
&lt;h2 id="dom-clobbering"&gt;DOM Clobbering&lt;/h2&gt;
&lt;p&gt;Javascript è molto simpatico: mette tutto dentro collection. Possiamo sfruttare questa cosa per creare oggetti secondo un criterio che vogliamo noi e modificare l&amp;rsquo;esecuzione di alcuni script.&lt;/p&gt;
&lt;p&gt;Ad esempio, se noi abbiamo&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;script&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;if(window.isSafe) {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; console.log(&amp;#34;Flag&amp;#34;);
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;quel window.isSafe non esiste ma può essere creato aggiungendo da qualche parte nella pagina&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;a id=&amp;#39;isSafe&amp;#39; name=&amp;#39;...&amp;#39; href=&amp;#34;onerror=alert(1)&amp;#34;&amp;gt;&amp;lt;/a&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ma ciò non funziona perché il browser fa encoding in automatico; possiamo evitare questa cosa usando lo schema cid, aggiungendo cid all&amp;rsquo;inizio&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;a id=&amp;#39;isSafe&amp;#39; name=&amp;#39;...&amp;#39; href=&amp;#39;cid:&amp;#34;onerror=alert(1)//&amp;#39;&amp;gt;&amp;lt;/a&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Medium: Is it worth your time and effort?</title><link>https://dag7.it/posts/medium-is-it-worth-your-time-and-effort/</link><pubDate>Tue, 05 Nov 2024 13:00:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/medium-is-it-worth-your-time-and-effort/</guid><description>&lt;h1 id="medium-is-it-worth-your-time-and-effort"&gt;Medium: is it worth your time and effort?&lt;/h1&gt;
&lt;p&gt;&lt;img src="https://miro.medium.com/v2/resize:fit:1400/format:webp/1*-vgw7wx5Dwd3CFpl3JKh2Q.png" alt="This article in a nutshell"&gt;&lt;/p&gt;
&lt;p&gt;It is a paradox: why am I writing an article on Medium about why I don’t like it?&lt;/p&gt;
&lt;p&gt;I occasionally return to Medium, wondering why I left a place like this. After all, they provide a distraction-free editor, that is appealing, a melting pot of articles, and is full of people who write stories, and I love stories! After all, one right story could change the world.&lt;/p&gt;
&lt;p&gt;I wouldn’t say I like to discuss what’s working here; instead, I’d like to discuss some criticisms and issues, hoping they will be changed soon.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(SPOILER: it is unlikely to happen)&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="markdown-are-you-here"&gt;Markdown are you here?&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://miro.medium.com/v2/resize:fit:1000/format:webp/1*sRp3V6PpWBd8Ky9pLJwwbA.jpeg" alt="captionless image"&gt;&lt;/p&gt;
&lt;p&gt;Let’s talk about the editor and markdown: I cannot easily import my content into Medium, and vice versa: exporting my Medium content to other formats is a nightmare.&lt;/p&gt;
&lt;p&gt;We can import articles from other websites, by clicking “Stories” and “Import a story”, but they will be badly formatted, at least speaking about markdown.&lt;/p&gt;
&lt;p&gt;Though Medium is based on a business model where people pay to read exclusive content on this platform, when I write my content as many people do, I’m used to writing everything in Markdown format.&lt;/p&gt;
&lt;p&gt;This is because Markdown is platform-agnostic. Provided that you have a “Markdown interpreter” you can see your content styled everywhere.&lt;/p&gt;
&lt;p&gt;By letting people write in a plain text file on something like an old Mac, or even a Commodore 64, and share it in some way, you leave the door open to recycling old hardware that probably was going to be left in the dust in a basement or straight to the dump.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://miro.medium.com/v2/resize:fit:1400/format:webp/1*_QM05ad9rco8qfNcIrSKHQ.jpeg" alt="You could even save your Markdown files to a floppy disk and load it into a 80s/90s computer!"&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You could even save your Markdown files to a floppy disk and load it into a 80s/90s computer&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Being able to import your stories more comfortably, provides access to your platform, potentially increasing the number of people who want to write here.&lt;/p&gt;
&lt;p&gt;However, it is understandable that you don’t want to people leave Medium: I don’t personally share this line of thoughts.&lt;/p&gt;
&lt;h2 id="cool-editor--good-editor"&gt;Cool editor = good editor?&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://miro.medium.com/v2/resize:fit:1236/format:webp/1*bqjpNHUF5xtQAia10_muog.jpeg" alt="Cool editor = good editor?"&gt;&lt;/p&gt;
&lt;p&gt;Why do I criticize the Markdown editor so much?&lt;/p&gt;
&lt;p&gt;It could be more intuitive: to write some source code by using a monospace font, we can use ``` on a newline and a textbox will appear.&lt;/p&gt;
&lt;p&gt;This is similar to Markdown: that’s great, but Medium editor is a WYSIWYG editor (what you see is what you get) therefore I would expect that when you copy-paste and highlight the text, the option “format as code” would be available.&lt;/p&gt;
&lt;p&gt;What about links? You should select text and click on the “link” icon: you can’t say in advance to create a link like you would with Markdown.&lt;/p&gt;
&lt;p&gt;While aiming for simplicity and a distraction-free writing experience, writing articles can be frustrating for users who are more standardized editors. Speaking about code, although using a monospace font for code is clear once you get the hang of the triple backticks (```) or the “+” code block option, these functions&lt;/p&gt;
&lt;p&gt;Any action other than formatting text in bold, italics, or underlining, like inserting links, code blocks, and images, requires selecting text or navigating through a “+” menu.&lt;/p&gt;
&lt;p&gt;While the editor’s clean, “distraction-free” design is appealing, the non-standard formatting options and limited Markdown support make it tedious for users to work efficiently.&lt;/p&gt;
&lt;p&gt;We can sort out these problems by allowing Markdown or adding a few standard optional toolbar icons without cluttering the layout.&lt;/p&gt;
&lt;h2 id="code-blocks"&gt;Code blocks&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://miro.medium.com/v2/resize:fit:1072/format:webp/1*T2WNjqoV9MneF6kb2G2Fmg.jpeg" alt="This is how we feel"&gt;&lt;/p&gt;
&lt;p&gt;Let’s say we are writing a guide with some code inside: we cannot place a code block inside a bullet list, because the only possible moves are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Hit return: this creates a new numbered item. You can’t insert a code block within the item itself.&lt;/li&gt;
&lt;li&gt;Double enter: this creates a new line where you can insert a code block, but it breaks the list flow. After adding the code block, you’re stuck outside the list and can’t continue numbering&lt;/li&gt;
&lt;li&gt;Shift and enter: this lets you move to a new line within the same list item without breaking the flow, but you can’t add any additional formatting or a code block on that line.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The same thing happens for images &lt;a href="https://help.medium.com/hc/en-us/articles/215194537-Using-the-story-editor"&gt;as reported by Medium itself&lt;/a&gt;: you cannot include an image within a list without breaking the list.&lt;/p&gt;
&lt;p&gt;This could be better because I think it would be great if I could create a numbered list for my guides or procedures and place images wherever I want.&lt;/p&gt;
&lt;p&gt;Since editors are just a means to express ourselves, we should be able as free as we can, an editor is just a tool; it shouldn’t control us. We use it to express our unique spirit.&lt;/p&gt;
&lt;h2 id="closing-words"&gt;Closing words&lt;/h2&gt;
&lt;p&gt;Medium’s editor has great potential, especially for people who want to jump in and write without fuss.&lt;/p&gt;
&lt;p&gt;But for those who like to have a bit more control or are used to Markdown, it can feel frustrating — or a hunt for the right formatting option.&lt;/p&gt;
&lt;p&gt;Let’s hope Medium will take step to streamline and maybe even standardize things. With just a few tweaks, it could be a better experience.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;If you liked this article, come say hi over at&lt;/em&gt; &lt;a href="http://dag7.it"&gt;&lt;em&gt;dag7.it&lt;/em&gt;&lt;/a&gt; &lt;em&gt;or&lt;/em&gt; &lt;a href="https://ko-fi.com/dag7_"&gt;&lt;em&gt;consider supporting my work&lt;/em&gt;&lt;/a&gt; &lt;em&gt;— every bit helps&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Originally published on medium.com on 5th November 2024, at 13:00&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Aio Kittens</title><link>https://dag7.it/posts/aio-kittens/</link><pubDate>Thu, 31 Oct 2024 00:00:00 +0000</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/aio-kittens/</guid><description>&lt;p&gt;Have you ever thought about playing Exploding Kittens but you don&amp;rsquo;t feel up to use hundreds of different manuals?&lt;/p&gt;
&lt;p&gt;Today, I&amp;rsquo;m gonna release &amp;ldquo;AIO Kittens&amp;rdquo;, a unified manual that includes not only official expansions, but also other unofficial ones.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve never tried to print it on a leaflet or something like that, it should be more compact than the official one.&lt;/p&gt;
&lt;p&gt;&lt;a href="mailto:dag7@protonmail.com"&gt;Feel free to reach me through my email&lt;/a&gt; to let me know if this is useful for you or you would like to share with me your thoughts on it!&lt;/p&gt;
&lt;p&gt;For now is italian-only, in future who knows, if enough interest is reached I can think about an english version.&lt;/p&gt;
&lt;p&gt;==&lt;a href="https://dag7.it/pdf/AIO-Kittens-v-1-0-ITA.pdf"&gt;Download it now&lt;/a&gt;==&lt;/p&gt;</description></item><item><title>Nobody's sleeping</title><link>https://dag7.it/posts/nobodys-sleeping/</link><pubDate>Wed, 30 Oct 2024 00:00:00 +0000</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/nobodys-sleeping/</guid><description>&lt;h1 id="a-new-track-is-finally-out"&gt;A new track is finally out!&lt;/h1&gt;
&lt;p&gt;Many years have passed since I did that track.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m happily releasing it for Halloween. Hope you enjoy it!&lt;/p&gt;
&lt;iframe width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay"
 src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/1945763715&amp;color=%231c1511&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true"&gt;&lt;/iframe&gt;
&lt;p&gt;As always, don&amp;rsquo;t forget to check &lt;a href="https://dag7.it/music"&gt;my music page&lt;/a&gt; to stay updated with all my music.&lt;/p&gt;</description></item><item><title>The rabbit hole of being curious</title><link>https://dag7.it/posts/the-rabbit-hole-of-being-curious/</link><pubDate>Sun, 20 Oct 2024 00:00:00 +0000</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/the-rabbit-hole-of-being-curious/</guid><description>&lt;h1 id="starting-a-new-academic-year"&gt;Starting a new academic year&lt;/h1&gt;
&lt;p&gt;A new academic year has started. Well, not today, but a month ago.&lt;/p&gt;
&lt;p&gt;Geez, time flies.&lt;/p&gt;
&lt;p&gt;It is strange how every academic year feels like the first one but with the knowledge of the previous ones. It is like a new game plus, but with the same character and more skills: scared of the unknown, but with the knowledge of the past.&lt;/p&gt;
&lt;p&gt;Anyway, here&amp;rsquo;s the story: I&amp;rsquo;ve started some brand new courses. I always have been curious about the world, especially for the things that are related in my field of study.&lt;/p&gt;
&lt;p&gt;Informatics is divided into many branches, but I think the major ones are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Backend programming&lt;/strong&gt;: the part of the software that is not visible to the user, you know, &amp;ldquo;the magic under the hood&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Frontend programming&lt;/strong&gt;: the part of the software that is visible to the user, the &amp;ldquo;part that the user sees&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DevOps&lt;/strong&gt;: the part of the software that is related to the deployment and the maintenance of the software, fundamental skill for a developer, but also for a system administrator&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt;: the part of the software that is related to the security of the software, the &amp;ldquo;part that keeps the software safe&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;During the years, I&amp;rsquo;ve explored many of these branches, I&amp;rsquo;m currently working as a backend developer and DevOps, but &lt;strong&gt;I&amp;rsquo;ve always been interested in the security part&lt;/strong&gt;. It is fascinating how a software can be secure or not, and how a software can be exploited by a malicious user.&lt;/p&gt;
&lt;p&gt;Because, after all, &lt;strong&gt;user is the most unpredictable&lt;/strong&gt; part of the software.&lt;/p&gt;
&lt;p&gt;Knowing how to write a good and a bad software is a fundamental skill. Knowing how to break it, it is even more important because you can understand how to protect it and how to write a more secure software.&lt;/p&gt;
&lt;h2 id="the-rabbit-hole"&gt;The rabbit hole&lt;/h2&gt;
&lt;p&gt;Yesterday I got up in the morning, and started to study like a fool. I was highly demotivated: this is related to the fact that I&amp;rsquo;ve attempted a couple of exams in the past, and I&amp;rsquo;ve failed them. I&amp;rsquo;ve studied a lot, but I&amp;rsquo;ve failed them.&lt;/p&gt;
&lt;p&gt;I was demotivated, but I&amp;rsquo;ve decided to try again.&lt;/p&gt;
&lt;p&gt;This time is different: I&amp;rsquo;ve started to study two courses, one about the security of the software and the other one is about malware analysis.&lt;/p&gt;
&lt;p&gt;It is impossible to explain how much I&amp;rsquo;m enjoying them: the stuff is exactly what I was looking for years, but I never dared to study by myself, because I was scared of its complexity.&lt;/p&gt;
&lt;p&gt;Well, &lt;strong&gt;they are not easy&lt;/strong&gt;: they are definitely not easy, but I don&amp;rsquo;t think they are impossible, and being in an universitarian environment, I can ask for help if I need it or if I&amp;rsquo;m stuck, while alone at home, I cannot ask for help, and I&amp;rsquo;m stuck with my thoughts.&lt;/p&gt;
&lt;p&gt;So, until now, I&amp;rsquo;ve been studying a lot, and I&amp;rsquo;ve learned a lot of things.&lt;/p&gt;
&lt;p&gt;Everytime I&amp;rsquo;ve finished a lesson, I had a dopamine rush, and I wanted to know more about it, in particular by consuming videos and articles.&lt;/p&gt;
&lt;p&gt;It would be a good idea:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;to write some articles about security and malware analysis, what I&amp;rsquo;m learning, to not forget them&lt;/li&gt;
&lt;li&gt;update my notes with the new things I&amp;rsquo;m learning&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="on-curiosity"&gt;On Curiosity&lt;/h2&gt;
&lt;p&gt;I will never understand why I get in love with things I don&amp;rsquo;t know. When I grasp a new concept, I feel like I&amp;rsquo;m in love with it, and I want to know more about it, but this is applied to every unknown field and leads me to a rabbit hole of curiosity.&lt;/p&gt;
&lt;p&gt;Unfortunately the time is limited, and I cannot explore everything I want with the depth I want.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m a curious person, and I will always be.&lt;/p&gt;
&lt;p&gt;xoxo, Damiano&lt;/p&gt;
&lt;p&gt;p.s. very soon I will start in reading &amp;ldquo;Atomic Habits&amp;rdquo; by James Clear, I&amp;rsquo;ve heard a lot of good things about it, and I&amp;rsquo;m curious to know more about it. I will write an article about it, for sure.&lt;/p&gt;
&lt;p&gt;p.p.s. I&amp;rsquo;m so happy that I&amp;rsquo;ve finally have found some time to write an article: it makes me feel good.&lt;/p&gt;</description></item><item><title>Django Day</title><link>https://dag7.it/posts/django-day-dk-2024/</link><pubDate>Fri, 04 Oct 2024 14:47:01 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/django-day-dk-2024/</guid><description>&lt;h1 id="the-event"&gt;The event&lt;/h1&gt;
&lt;p&gt;Django Day in Copenaghen is an event dedicated to Django, the Python web framework. It was a one-day event, and I had the chance to attend it as a speaker.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve decided to talk about Chiptune, a genre of music that uses the sound chips of old computers and consoles to create music.&lt;/p&gt;
&lt;h1 id="the-talk"&gt;The talk&lt;/h1&gt;
&lt;p&gt;I&amp;rsquo;ve presented a small introduction to Chiptune, explaining what it is and how it is made. I&amp;rsquo;ve also shown some examples of main artists, the demoparties, the Chiptune music, and I&amp;rsquo;ve explained how to create Chiptune music using a tracker and what&amp;rsquo;s the difference between a tracker and a DAW.&lt;/p&gt;
&lt;h1 id="the-slides"&gt;The slides&lt;/h1&gt;
&lt;p&gt;If you&amp;rsquo;re here, you probably would like to download the slides of my talk.&lt;/p&gt;
&lt;p&gt;Maybe you&amp;rsquo;re interested in Chiptune, or maybe you&amp;rsquo;re interested in the talk I&amp;rsquo;ve done.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dag7.it/pdf/slides/2024_djangoday_chiptune.pdf"&gt;Click here to download the slides&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t feel up to download the slides, &lt;a href="https://youtu.be/-msvvauZVvo?t=30793"&gt;click here to see a youtube video of me in action&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id="the-feedback"&gt;The feedback&lt;/h1&gt;
&lt;p&gt;The feedback was great. I&amp;rsquo;ve received some questions about Chiptune after the talk. I talked with some people who knew artists and discovered new people doing music.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dag7.it/music"&gt;I also make music, take a look if you please!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The organizers were happy with my talk, and they&amp;rsquo;ve asked me if I would have liked to perform a live Chiptune session. I&amp;rsquo;ve accepted, and I&amp;rsquo;ve performed a small live session at the end of the event, using my Gameboy.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/gallery/2024_10_07_django_day_dk.jpg" alt="Django Day 2024 final pic"&gt;&lt;/p&gt;</description></item><item><title>ZW24 Milano</title><link>https://dag7.it/posts/zwmilan2024/</link><pubDate>Sun, 29 Sep 2024 12:33:01 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/zwmilan2024/</guid><description>&lt;p&gt;Milan has been the last Zona Warpa Tour, I took part and here it is a small blog post to share my experience.&lt;/p&gt;
&lt;h2 id="the-story"&gt;The story&lt;/h2&gt;
&lt;p&gt;Everything has started in 2023, when the first Zona Warpa Tour was announced.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://zonawarpa.it"&gt;Zona Warpa&lt;/a&gt; is a self-managed videogame festival, mainly focused on indie and small productions. They are organized in different cities, and the last one in 2024 was in Milan.&lt;/p&gt;
&lt;p&gt;As attendee, I had the chance to play some games, meet some developers and also take part in some talks and they were about a lot of different topics, from accesibility to translation.&lt;/p&gt;
&lt;p&gt;I also had the chance to meet some people and have a good time with them.&lt;/p&gt;
&lt;p&gt;The first time I took part, was in Rome in June 2023.&lt;/p&gt;
&lt;p&gt;But this was an important event for me, also because I have the possibility to finally show my composition on stage. I have been working on this for a long time, and I was very happy to have the chance to show it to the public, in collaboration with a friend of mine. We performed together under the pseudonym of &amp;ldquo;cyrix86mpu&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve also been able to code a little cracktro, thanks to the awesome &lt;a href="https://github.com/merumerutho/LOVJ"&gt;LOVJ&lt;/a&gt; that helped me with visuals while performing.&lt;/p&gt;
&lt;p&gt;What about now? I&amp;rsquo;m looking forward to the next Zona Warpa Tour, and if I will have more tracks ready, I will be happy to perform again.&lt;/p&gt;
&lt;p&gt;Stay tuned for more updates!&lt;/p&gt;
&lt;p&gt;xoxo&lt;/p&gt;
&lt;h2 id="live-video"&gt;Live video&lt;/h2&gt;
&lt;p&gt;The full video is available here: &lt;a href="https://video.zonawarpa.it/w/v6SJtA54A5LRm6ay86kJhZ"&gt;https://video.zonawarpa.it/w/v6SJtA54A5LRm6ay86kJhZ&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="photos"&gt;Photos&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/2024-09-27-zona-warpa/20240927MePerformingTucs.jpeg" alt="Me and tucs, performing"&gt; &lt;img src="https://dag7.it/img/2024-09-27-zona-warpa/20240927MeChicken.png" alt="Me, performing with a Mask Hotline Miami"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/2024-09-27-zona-warpa/20240927Cartello.jpeg" alt="zona warpa main"&gt; &lt;img src="https://dag7.it/img/2024-09-27-zona-warpa/20240927Random.jpeg" alt="random"&gt; &lt;img src="https://dag7.it/img/2024-09-27-zona-warpa/20240927Cracktro.png" alt="Cracktro"&gt;&lt;/p&gt;</description></item><item><title>ZW Torino</title><link>https://dag7.it/posts/zona-warpa-torino/</link><pubDate>Thu, 04 Jul 2024 13:36:03 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/zona-warpa-torino/</guid><description>&lt;p&gt;È stato fighissimo il Gabrio, ed è stato bello suonare per le persone che c&amp;rsquo;erano al suo interno.&lt;/p&gt;</description></item><item><title>Dungeon Devlog #5</title><link>https://dag7.it/posts/devlog-5/</link><pubDate>Mon, 10 Jun 2024 23:47:02 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/devlog-5/</guid><description>&lt;p&gt;I am caught up in something else and have been slowing down these days.&lt;/p&gt;
&lt;p&gt;The situation has become untenable: I feel the need to write tests and modularize the code further.&lt;/p&gt;
&lt;p&gt;Things break and I don&amp;rsquo;t know why.&lt;/p&gt;
&lt;p&gt;Anyway, &lt;strong&gt;I manage to create a small inventory&lt;/strong&gt; by deciding to treat the inventory as a dictionary and inserting an object into it every time it is printed in the overlay.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a problem: &lt;strong&gt;exits are added to the inventory&lt;/strong&gt;, that it is not what we want, but never mind: this is a problem I will fix another time.&lt;/p&gt;
&lt;p&gt;I also decide to implement the fact that &lt;strong&gt;enemies counter-attack&lt;/strong&gt; by assigning each monster an attack and a defense and making it so that when they counter-attack and when I attack, according to small mathematical formulas the hp is decreased or not.&lt;/p&gt;
&lt;p&gt;To get around the regeneration problem I temporarily decide to &lt;strong&gt;make the character recover one hp every time he moves&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I also decide to implement the fact that &lt;strong&gt;the character can die&lt;/strong&gt;: if the hp is less than 0, the game ends. To start a new game, just press the &amp;ldquo;R&amp;rdquo; key.&lt;/p&gt;
&lt;p&gt;The game is starting to take shape, but I have to &lt;strong&gt;fix some bugs and make it more playable&lt;/strong&gt;, for now I&amp;rsquo;d like to polish on textures and make the game more enjoyable, so I manage to understand when to use border&amp;rsquo;s tileset and when not.&lt;/p&gt;
&lt;p&gt;Other wishable features are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;handle items in the inventory&lt;/li&gt;
&lt;li&gt;fix enemies texture bug&lt;/li&gt;
&lt;li&gt;add proper tiles for the border in the map&lt;/li&gt;
&lt;li&gt;invent a story&lt;/li&gt;
&lt;li&gt;add a boss / boss room&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I am very happy with the progress I made, but I have to keep going.&lt;/p&gt;</description></item><item><title>Dungeon Devlog #4</title><link>https://dag7.it/posts/devlog-4/</link><pubDate>Fri, 07 Jun 2024 22:35:13 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/devlog-4/</guid><description>&lt;p&gt;Tonight is the night! I need to implement &lt;strong&gt;graphics&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Well, how to do it? Old videogames were made with spritesheets, so I decide to do the same. I downloaded a spritesheet from a free itch.io download link, and I am ready to go&amp;hellip;?&lt;/p&gt;
&lt;p&gt;But what&amp;rsquo;s the basic idea? I have to &lt;strong&gt;draw the map exactly as I did&lt;/strong&gt; before, but &lt;strong&gt;instead of drawing colored squares&lt;/strong&gt;, I have to draw textures.&lt;/p&gt;
&lt;p&gt;The steps are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;load the spritesheet&lt;/li&gt;
&lt;li&gt;while drawing the map, if the tile is a wall then go to the spritesheet and take the 4th square by row and column
&lt;ol&gt;
&lt;li&gt;for example, if the wall is at row 1 and column 1, then the square is at row 0, column 0, wide 16 and high 16&lt;/li&gt;
&lt;li&gt;if the character is at row 2 and column 1, then the square is at row 16&lt;em&gt;1 and column 1&lt;/em&gt;16, wide 16 and high 16, and so on&lt;/li&gt;
&lt;li&gt;this is because the spritesheet is 16x16 and every square is 16x16&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is feasible, so I decide to go ahead: I modify the main structure by adding row column and spritesheet where the graphics are saved.&lt;/p&gt;
&lt;p&gt;After that, &lt;strong&gt;instead of drawing colored squares I decide to draw textures&lt;/strong&gt;, each 16x16 and&amp;hellip; it&amp;rsquo;s a great idea, everything works, I just have to be careful to change the sprites of the enemies.&lt;/p&gt;
&lt;p&gt;Wouldn&amp;rsquo;t it be nice a &lt;strong&gt;minimap in the HUD too&lt;/strong&gt;? Of course, it may come in handy for me for debugging purposes but also for the player in the future.&lt;/p&gt;
&lt;p&gt;I notice that &lt;strong&gt;minimap is the same map I normally draw&lt;/strong&gt;, but &lt;strong&gt;with pixels 1x1&lt;/strong&gt; instead of tiles. Basically there is no need to rewrite the code, just to make a function that draws a general map.&lt;/p&gt;
&lt;p&gt;Since the code is starting to be a mess, I decide to refactor it a bit: dictionary will store each element&amp;rsquo;s characteristics, like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;enemy&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;y&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;hp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;attack&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;walkable&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Look how it&amp;rsquo;s beautiful!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/videogames-devlog/dungeon6.png" alt="dungeon6.png"&gt;&lt;/p&gt;
&lt;p&gt;Now &lt;strong&gt;it&amp;rsquo;s time to improve the HUD&lt;/strong&gt; and set health points and attack points to the protagonist and enemies.&lt;/p&gt;
&lt;p&gt;I decide to also change the function that inserts stuff into the map: in case of enemies/living people, it also inserts additional parameters such as residual hp or collected tool, so that I can manage enemies&amp;rsquo; items and death as well.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/videogames-devlog/dungeon7.png" alt="dungeon7.png"&gt;&lt;/p&gt;
&lt;p&gt;I finally decide to implement a simple level up (experience) and level up mechanism, by using some math functions and randomness.&lt;/p&gt;</description></item><item><title>Dungeon Devlog #3</title><link>https://dag7.it/posts/devlog-3/</link><pubDate>Thu, 06 Jun 2024 23:46:23 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/devlog-3/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Good morning Night City
-Cyberpunk 2077&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;My morning is not a morning, but an evening, and it starts after a good sip of caffè latte: I am ready to face the day. I have a lot of ideas in my head and I want to make them reality.&lt;/p&gt;
&lt;p&gt;I had an interesting discussion some time ago with some friends of mine about the difference of cappuccino, caffè latte, and latte macchiato. I am not a coffee expert, but I knew that the difference is in the amount of milk and coffee. The articles I read on the internet are not very clear, however &lt;a href="https://www.caffeborbone.com/gb/en/magazine-segreti-di-caffe/differenza-tra-cappuccino-latte-macchiato-e-caffelatte.html"&gt;this article here&lt;/a&gt; explained by &amp;ldquo;nientepopodimeno&amp;rdquo; but Caffè Borbone is very clear and I recommend it to you if you&amp;rsquo;re interested.&lt;/p&gt;
&lt;p&gt;We need first to resolve &lt;strong&gt;the performance problem&lt;/strong&gt;: a dear friend of mine advised me to &lt;strong&gt;reduce the size of the map&lt;/strong&gt; since I would make less effort that way. I decide to throw down the whole dungeon generation algorithm and redo it almost from scratch.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve watched some videos and read some codes online, but &lt;a href="https://www.youtube.com/watch?v=fudOO713qYo"&gt;this excellent video&lt;/a&gt; brought to you by &amp;ldquo;TheZZAZZGlitch&amp;rdquo; is really interesting and explains in a visual way an approach to generate dungeons.&lt;/p&gt;
&lt;p&gt;The generation algorithm is very interesting: first it generates rooms as I do, then unlike me who immediately tries to connect them, it generates &amp;ldquo;dumb&amp;rdquo; rooms (called 1x1) and tries to connect them with existing rooms. It also does another thing: it &lt;strong&gt;generates a special border&lt;/strong&gt; (soft border) that does not allow it to be crossed or passed in any way.&lt;/p&gt;
&lt;p&gt;I reason a little bit about how to do that: generate the rooms, okay, which I already had. I can &lt;strong&gt;import the 1x1 idea&lt;/strong&gt;: sounds good to me!&lt;/p&gt;
&lt;p&gt;To my surprise it is an approach that works very well: by increasing the number of 1x1 rooms I can increase or decrease the complexity of a dungeon.&lt;/p&gt;
&lt;p&gt;Basically it is like &lt;strong&gt;connecting multiple rooms together&lt;/strong&gt;: an approach that works very well!&lt;/p&gt;
&lt;p&gt;Before I re-create the collisions and &amp;ldquo;the walkable and the unwalkable&amp;rdquo;, I want to make sure that I generate the items and everything that is needed to go from one world to another correctly.&lt;/p&gt;
&lt;p&gt;It occurs to me that I have to generate items, money, etc., and these should not be in corridors. Grr, this is difficult.&lt;/p&gt;
&lt;p&gt;Going back to the performance problem, &lt;strong&gt;I decide to reduce the size of the map to 56x32 pixels&lt;/strong&gt;. Since I did my algorithm in a way that I can change the size of the map, I can do this without any problem and with some surprise I see that the performance has improved a lot, generations are almost instantaneous.&lt;/p&gt;
&lt;p&gt;I am very happy and this is the result!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/videogames-devlog/dungeon2.png" alt="Dungeon image, with proper corridors and rooms"&gt;&lt;/p&gt;
&lt;p&gt;Things can&amp;rsquo;t stop here:** I have to generate the items and the money**. I have to generate the exit that will take me to the next level. I have to generate the enemies and some elementary game elements: key, chest, exit, enemy, boss, trap. After all, I can treat everything as walkable/not walkable as well.&lt;/p&gt;
&lt;p&gt;I create a dictionary of tuples: the name is something I know, the tuple there is number (which I will need in the final map), the &amp;ldquo;common&amp;rdquo; name, and a color that will then be replaced by a texture in the future.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;key&amp;#34;: (1, &amp;#34;key&amp;#34;, (255, 255, 0)),
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;R#@*JE@&amp;#34;: (0, &amp;#34;nothing&amp;#34;, (0, 0, 0)),
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The idea is to draw the map and depending on what is in the map, draw something different.&lt;/p&gt;
&lt;h2 id="the-overlapping-problem"&gt;The overlapping problem&lt;/h2&gt;
&lt;p&gt;It also occurs to me that there might be overlapping problems: however, if I calibrate the spawn order well, I should not have such problems.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;overlapping problem&lt;/strong&gt; is a problem that occurs when I spawn an item, and then I spawn an item on top of it.&lt;/p&gt;
&lt;p&gt;For example, I can safely decide to spawn enemies, chests, etc., and only after stairs, since if stairs replace an enemy, it is less serious than having an enemy replace stairs, it would make the game impossible.&lt;/p&gt;
&lt;p&gt;Graphically there is not much changes, but in practice I always have an exit and something on my map.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/videogames-devlog/dungeon3.png" alt="Dungeon image, with proper corridors and rooms"&gt;&lt;/p&gt;
&lt;h2 id="movement-and-collisions"&gt;Movement and collisions&lt;/h2&gt;
&lt;p&gt;Now we have to move on to movement and collisions: I simply have to make a &lt;strong&gt;function that checks if I can move on a certain tile&lt;/strong&gt;, and if yes then move, otherwise not. It will suffice to treat enemies as blocks and everything else as something walkable.&lt;/p&gt;
&lt;p&gt;The next step will be to define each &lt;strong&gt;entity behavior&lt;/strong&gt;. Let&amp;rsquo;s start with stairs -&amp;gt; I decide that every time a valid movement is made events happen, so I use the strategy of the boolean &amp;ldquo;moved and not moved&amp;rdquo;. It works.&lt;/p&gt;
&lt;h2 id="enemies-ai-idea"&gt;Enemies AI Idea&lt;/h2&gt;
&lt;p&gt;Now I have to deal with the AI of the enemies. I want to define &lt;strong&gt;different strategies&lt;/strong&gt;, but for now I am content with a &lt;strong&gt;&amp;ldquo;random&amp;rdquo; approach&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A first implementation is this: find all the reds, if they can move go in the direction they randomly choose. This approach in terms of memory sucks: it would be better for me in generation phase to save the position of the enemies and update it as they perform movements.&lt;/p&gt;
&lt;h2 id="bugs"&gt;Bugs&lt;/h2&gt;
&lt;p&gt;But here&amp;rsquo;s some bugs arise:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;if I decide to move on a tile that has already been chosen by an enemy, I am not a solid object so &lt;strong&gt;both I and the enemy overlap&lt;/strong&gt;.
&lt;ol&gt;
&lt;li&gt;solved in a simple way by &lt;strong&gt;assigning me the property of being solid&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;since I have defined that every object when stepped on and is &amp;ldquo;walkable&amp;rdquo; becomes a normal tile again, enemies do the same thing with stairs. &lt;strong&gt;In other words: the enemy steals the stairs!&lt;/strong&gt; This is not good and to solve it I have to handle the limit case of the stairs (between them they should not kill each other as they are all solid).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Technically, I could also change the order of generation: I now generate the rooms, generate the dumb rooms, connect them, generate the items and game elements, however, to save resources and time, I could generate the rooms, place the player, place the items generate the 1x1 tiles and then connect them.&lt;/p&gt;
&lt;p&gt;Another bug: &lt;strong&gt;enemies and I move in the same tile and overlap&lt;/strong&gt;: this is not good, and it is because I was never updating the fact that the area where I was standing was free and I had moved to another area. Instead, every time I move, &lt;strong&gt;I have to set the tile where I am as &amp;ldquo;walkable&amp;rdquo;&lt;/strong&gt; and the new one as &amp;ldquo;not walkable,&amp;rdquo; which comes from the fact that I occupy it.&lt;/p&gt;
&lt;p&gt;Another approach I came up with is to simply define whether the playing field is walkable or not.&lt;/p&gt;
&lt;h2 id="enemies-ai-lets-attack"&gt;Enemies AI: let&amp;rsquo;s attack!&lt;/h2&gt;
&lt;p&gt;The time has finally come: define the IA behind the enemies: meanwhile, I want to define three kind of enemies, one that is very stupid and keeps doing what I have been doing so far (wandering around randomly), one that is smart and chases the player, and the other that is greedy and steals everything stealable&lt;/p&gt;
&lt;p&gt;I create the AI for the first and the second kind, but not the third: I have to think about how to implement it.&lt;/p&gt;
&lt;p&gt;Now I find myself in endless dungeons. I definitely need to implement a quick attack just to make enemies disappear. For now I settle for &amp;ldquo;last key pressed is up, so I shoot up&amp;rdquo;. I can implement it by writing that the last key pressed &amp;ldquo;looks&amp;rdquo; in a certain direction, regardless of whether or not you can move.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/videogames-devlog/dungeon4.png" alt="Dungeon image, with proper corridors and rooms"&gt;&lt;/p&gt;
&lt;h2 id="hud"&gt;HUD&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s late but I can make it!&lt;/p&gt;
&lt;p&gt;I take a short break, and after a while, I find out about &lt;code&gt;pr.end_mode_2d()&lt;/code&gt; which allows you to draw a HUD.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s fantastic! In the top left corner I want the stats counter in general, and at the bottom I want a textbox: the messages go away after two seconds (120 then, because I&amp;rsquo;m at 60 frames per second) and the hud has to disappear.&lt;/p&gt;
&lt;p&gt;It occurs to me to make a buffer for the messages, and eventually show it slowly by removing each string.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s an example and why I told the 120 frames per second thing:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;messages_buffer.insert(0, [&amp;#34;Level up! You are now level &amp;#34; + str(player[&amp;#39;level&amp;#39;]), 120, pr.GREEN])
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Messages are placed in a list, and each message is a list of three elements: the message, the number of frames it has to stay, and the color.&lt;/p&gt;
&lt;p&gt;At the end of the game loop, I check if the message has to be removed, and if so, I remove it, otherwise decrease the number of frames it has to stay until it reaches 0 and shows the message in the box.&lt;/p&gt;
&lt;p&gt;This is the result:
&lt;img src="https://dag7.it/img/videogames-devlog/dungeon5.png" alt="Dungeon with HUD"&gt;&lt;/p&gt;</description></item><item><title>Dungeon Devlog #2</title><link>https://dag7.it/posts/devlog-2/</link><pubDate>Wed, 05 Jun 2024 22:24:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/devlog-2/</guid><description>&lt;p&gt;My original idea was to &lt;strong&gt;make a dungeon game&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Damn bro, you just started and you already want to make a dungeon game?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Yes, I know, but I love dungeon games, and I want to make my own since ever. The most fun part of a dungeon game is the dungeon itself: the rooms, the corridors, the monsters, the traps, the inventory. &lt;strong&gt;Everything is random&lt;/strong&gt;, everything is different every time you play, and &lt;strong&gt;that&amp;rsquo;s addicting&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;But, let&amp;rsquo;s go back to the game.&lt;/p&gt;
&lt;p&gt;It is time to make my hands dirty on the actual dungeon creation. Where do I start?&lt;/p&gt;
&lt;p&gt;Well, I had seen a video a while back on procedural dungeon map generation. The idea was that &lt;strong&gt;first you generated rooms, then you generated corridors&lt;/strong&gt;. I then decide to set a scary size for the map, &lt;strong&gt;like 300x300&lt;/strong&gt; because I think it is a good size for a dungeon.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s move on the dungeon generator part: &lt;strong&gt;it is slow and has problems&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The idea is to generate the whole map first by defining walkable and non-walkable areas, the player (always a yellow square), draw a green square for each &amp;ldquo;non walkable square&amp;rdquo;, then I can move on to fill the entire map with monsters, items, and traps&amp;hellip; you know, the usual dungeon stuff.&lt;/p&gt;
&lt;p&gt;It works but&amp;hellip; the problem is also that &lt;strong&gt;I can&amp;rsquo;t see anything this way&lt;/strong&gt;, because everything is too big.&lt;/p&gt;
&lt;p&gt;I find out about the existence of the game &amp;ldquo;camera&amp;rdquo; which serves just as if it were a separate and detached window to the game world. Very pleased about this, I decide to &lt;strong&gt;postpone the problem of optimizing things and make them faster until the next day&lt;/strong&gt;, not before adding some small debugging controls (W and S keys, zoom in or out the view)&lt;/p&gt;
&lt;p&gt;I also implemented a small collider with walls, that does not seem to work properly and the classic directional arrow controls for moving my yellow square around.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the result:
&lt;img src="https://dag7.it/img/videogames-devlog/dungeon1.png" alt="Dungeon image at the end of devlog 2, with corridors very stretchy or clumsy"&gt;&lt;/p&gt;</description></item><item><title>Dungeon Devlog #1</title><link>https://dag7.it/posts/devlog/</link><pubDate>Tue, 04 Jun 2024 21:13:25 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/devlog/</guid><description>&lt;p&gt;Finally, after some years, I am experimenting for the first time with making video games.&lt;/p&gt;
&lt;p&gt;I have always been fascinated by the idea of creating a video game, but I have never had the courage to start. I have always been afraid of not being able to finish it, of not being able to make it as I wanted, of not being able to make it fun.&lt;/p&gt;
&lt;p&gt;But this time things are different: I wanted to make a game for GBA, but thanks to a friend of mine who suggested me to use Raylib, a C library for making games, I decided to start with that.&lt;/p&gt;
&lt;p&gt;Honestly I was intimidated by the idea of starting from scratch, because many frameworks nowadays I thought were too complex for me. But Raylib is damn simple, and I like it.&lt;/p&gt;
&lt;p&gt;I can&amp;rsquo;t make games from one day to another, it requires a lot of time, work, programming, testing and all the other software development phases. After all I write software for a living, so I know what I am talking about.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s start with a silly thing and make Totti&amp;rsquo;s Quest, a red square that if it touches another green square, the other one turns yellow and starts the Roma anthem + an image of Totti&lt;/p&gt;
&lt;p&gt;The first problem is &lt;strong&gt;drawing a square&lt;/strong&gt;. Well, just check raylib lib! But raylib is a library in C.&lt;/p&gt;
&lt;p&gt;My main language is Python: it&amp;rsquo;s not &amp;ldquo;I don&amp;rsquo;t like C&amp;rdquo;, it&amp;rsquo;s more like &amp;ldquo;I use Python every single day, so I am confident with it&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;They are programming languages: exactly like with the normal ones, they work in the same way. The only difference is that C is verbose, I need to manage more things (like structs, dictionaries are not native and so on). Python have a lot of gimmicks that make it easier to use. Since the result is gonna be the same, I decided to use the latter.&lt;/p&gt;
&lt;p&gt;Fortunately, raylib was ported to Python so you find these &amp;ldquo;bindings&amp;rdquo; that basically make the library suitable for a language that is different from the original one.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve managed to complete the code with a bit of a problem: I &lt;strong&gt;can&amp;rsquo;t get the audio to work&lt;/strong&gt; because it always clashes.&lt;/p&gt;
&lt;p&gt;It occurs to me that I can use &lt;strong&gt;boolean variables&lt;/strong&gt; to indicate states, like &amp;ldquo;played&amp;rdquo; or not.&lt;/p&gt;
&lt;p&gt;This is an approach that works, and I am happy with it.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/videogames-devlog/tottisquest.png" alt="Green square and yellow square"&gt;&lt;/p&gt;</description></item><item><title>Again and Again</title><link>https://dag7.it/posts/2024-restyling/</link><pubDate>Fri, 19 Apr 2024 14:27:54 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/2024-restyling/</guid><description>&lt;p&gt;Here I am again. Another time, my website has been revamped. I&amp;rsquo;m back to Hugo, with a template that resembles Github Homepage.&lt;/p&gt;
&lt;p&gt;I wanted to create a lot of things, maybe a Hugo theme would have been suitable, but right now I am no up to do it. I just want to write, and share my thoughts.&lt;/p&gt;
&lt;p&gt;There is the problem of the language: I don&amp;rsquo;t know if I should write in English or Italian. I am not a native English speaker, but I like to write in English. I will try to write in English, but I will switch to Italian if I feel like it.&lt;/p&gt;
&lt;p&gt;Also enjoy the old posts that I have written in the past. They are not many, but they are still there.&lt;/p&gt;
&lt;p&gt;I hope you enjoy this new website. I will try to keep it updated as much as possible.&lt;/p&gt;</description></item><item><title>Proposals for 2024</title><link>https://dag7.it/posts/2024-proposals/</link><pubDate>Sun, 31 Dec 2023 21:30:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/2024-proposals/</guid><description>&lt;p&gt;Dear Santa Claus,&lt;/p&gt;
&lt;p&gt;this year I have been a good dev: I have worked hard, and learnt a lot of new things. I have created some projects and I have helped some people.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d like to focus on some projects in 2024, and I&amp;rsquo;d like to share them with you. I hope you can help me to achieve them.&lt;/p&gt;
&lt;p&gt;Here is the list of the projects I&amp;rsquo;d like to work on in 2024:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/eCDP-translations"&gt;Mcdonald&amp;rsquo;s eCDP Project&lt;/a&gt;: still in beta due to failure in finding a free translation platform. I should host the strings on a private Pontoon Instance.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/it/firefox/addon/jet-set-radio-theme/"&gt;jet-set-radio-theme&lt;/a&gt; Jet Set Radio Theme for Mozilla Firefox, it is abandoned since the day I submitted it. I should fix things.&lt;/li&gt;
&lt;li&gt;MyBacklog: started in 2023, it is a currently unfinished app to track your videogames.&lt;/li&gt;
&lt;li&gt;Evolve this website in a way that I like and don&amp;rsquo;t change it anymore. I should focus on writing, not on the website itself.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here is the list of the things I&amp;rsquo;d like to do in 2024:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Study personal finance and invest some money&lt;/li&gt;
&lt;li&gt;Study more about Machine Learning and AI&lt;/li&gt;
&lt;li&gt;Visit countries I have never visited before&lt;/li&gt;
&lt;li&gt;Improve playing any of the instruments I play&lt;/li&gt;
&lt;li&gt;Release tracks on Youtube (and possibly Spotify)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I hope you can help me with these projects. I will try to be a good dev in 2024 too.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Dag&lt;/p&gt;
&lt;p&gt;P.S. I&amp;rsquo;ll update you on the progress of these projects on my blog. Stay tuned!&lt;/p&gt;</description></item><item><title>Plastic Dreams Review</title><link>https://dag7.it/posts/arkavoid-plastic-dreams-review/</link><pubDate>Tue, 12 Sep 2023 18:01:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/arkavoid-plastic-dreams-review/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This article is in Italian. If you want to read it in English, just translate it with your favorite browser.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/arkavoid1-plastic-cover.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Arkavoid è un progetto di &lt;a href="https://www.instagram.com/davidepanettalbasso"&gt;Davide Panetta&lt;/a&gt; (al basso) che attinge direttamente dalla cultura synth anni 80 e la ripropone in chiave moderna. Il genere è conosciuto come &lt;strong&gt;synthwave&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://distrokid.com/hyperfollow/arkavoid/plastic-dreams-from-another-world"&gt;Plastic Dreams From Another World&lt;/a&gt; é il primo album di questo progetto.&lt;/p&gt;
&lt;h2 id="copertina"&gt;Copertina&lt;/h2&gt;
&lt;p&gt;La copertina é molto bella da fuori, ricca di dettagli e colori.&lt;/p&gt;
&lt;p&gt;Non rispecchia pienamente i brani dell&amp;rsquo;album, dá una specie di anteprima sull&amp;rsquo;effettivo contenuto. Mi piace molto, anche se forse avrei optato per qualcosa piú futuristico (l&amp;rsquo;attuale é abbastanza cyberpunk).&lt;/p&gt;
&lt;p&gt;In generale ci sono tantissimi dettagli interessanti come una rappresentazione fedelissima di una mpk mini o una specie di Glados sulla destra.&lt;/p&gt;
&lt;p&gt;Non mancano poi anche vari richiami alla cultura pop: un paio di Jordan in basso a destra, delle statuette di He-Man, &amp;ldquo;Kit&amp;rdquo; di Supercar, un poster di Terminator, e altri elementi assimilabili comunque alla cultura pop o anni 80/90.&lt;/p&gt;
&lt;p&gt;Un po&amp;rsquo; tutto è un richiamo a qualcos&amp;rsquo;altro, auto-referenziale (nel disco) o meno.&lt;/p&gt;
&lt;h2 id="ascolto"&gt;Ascolto&lt;/h2&gt;
&lt;p&gt;Tutti i brani in generale sono facilmente ascoltabili, nel senso che non c&amp;rsquo;é bisogno di essere dei fan particolari di un qualche sottogenere dell&amp;rsquo;elettronica.&lt;/p&gt;
&lt;p&gt;Un solo brano fa eccezione: in esso ad un certo punto c&amp;rsquo;è un suono acutissimo che non è esattamente molto orecchiabile. Tralasciando questo episodio isolato, non ci sono particolari problemi.&lt;/p&gt;
&lt;h2 id="tracce"&gt;Tracce&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;album inizia subito con &lt;em&gt;Run Forever&lt;/em&gt; (1), brano che spicca tra tutti per la sua orecchiabilità, con un motivetto molto coinvolgente.&lt;/p&gt;
&lt;p&gt;Seguono poi altre considerazioni su alcune tracce:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Night Sands: insieme a The Scorpion, i brani che mi son piaciute di meno tra le tutte, forse perché un po&amp;rsquo; lente, forse perché stilisticamente diverse dal resto dell&amp;rsquo;album.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ol start="5"&gt;
&lt;li&gt;Red Horizon: potrebbe essere benissimo spacciato per la colonna sonora di Hotline Miami. Non se ne accorgerebbe nessuno. Molto carino!&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ol start="8"&gt;
&lt;li&gt;Bloodzone: l&amp;rsquo;intro é stranissima, e in generale il pezzo é pieno di cose &amp;ldquo;strane&amp;rdquo; ritmicamente. É interessante.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ol start="12"&gt;
&lt;li&gt;The scorpion: di per sé il pezzo é carino, synth decisamente rivedibile&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ol start="13"&gt;
&lt;li&gt;Golden Tears, oltre a piacermi, trovo sia davvero perfetta come traccia finale&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="valutazione"&gt;Valutazione&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/Arkavoid1Recensione.png" alt=""&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;5 stelle: per me sono delle hit, sono le mie preferite e sono fantastiche, le adoro&lt;/li&gt;
&lt;li&gt;4 stelle: ottimo lavoro: non mi sono piaciute come quelle con 5 stelle, ma rimangono dei pezzi ottimi&lt;/li&gt;
&lt;li&gt;3 stelle: ok: non sono di per sé malvagi, ma qualcosa non mi ha proprio convinto&lt;/li&gt;
&lt;li&gt;2 stelle: non mi sono piaciuti, é il mio rating piú basso&lt;/li&gt;
&lt;li&gt;1 stella: non uso mai 1 stella :D&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="note-finali"&gt;Note finali&lt;/h2&gt;
&lt;p&gt;In generale è un album godibilissimo, con un&amp;rsquo;ottima varietà di tracce e stili, con diverse chicche: un ottimo lavoro sia comparto grafico che sonoro.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tracce preferite in particolare&lt;/strong&gt;: &lt;em&gt;Rebecca (6)&lt;/em&gt;, &lt;em&gt;The Ghost Of The Temple (3)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Honorable mentions&lt;/strong&gt;: &lt;em&gt;Run Forever (1)&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Trovate l&amp;rsquo;album in pre-ordine su &lt;a href="https://arkavoidmusic.bandcamp.com/album/plastic-dreams-from-another-world"&gt;Bandcamp&lt;/a&gt; o su &lt;a href="https://distrokid.com/hyperfollow/arkavoid/plastic-dreams-from-another-world"&gt;Spotify&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;È prevista l&amp;rsquo;uscita il 30 settembre sulle principali piattaforme di distribuzione (Spotify, Apple Music).&lt;/p&gt;</description></item><item><title>Touhou Project</title><link>https://dag7.it/posts/touhou-guide/</link><pubDate>Fri, 01 Sep 2023 23:10:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/touhou-guide/</guid><description>&lt;p&gt;This small guide aims to become the main guide for all those who would like to play Touhou Project (abbreviated as TH), but don&amp;rsquo;t know where to start and how to set up the right emulator.&lt;/p&gt;
&lt;p&gt;Note that I only tested this guide on an Anbernic portable console (&lt;a href="https://dag7.it/en/blog/awesome-retroconsole/"&gt;I told you about it in another article&lt;/a&gt;) precisely because I wanted to test how comfortable it actually was play it and because there isn&amp;rsquo;t much material online, neither in English nor in Italian.&lt;/p&gt;
&lt;h2 id="brief-history-of-the-touhou-project"&gt;Brief history of the Touhou Project&lt;/h2&gt;
&lt;p&gt;The TH Project is a series of games (called bullet hell) created by Jun&amp;rsquo;ya Ota, alias ZUN: in 1996 he decided that video games were boring, there was nothing really fun for him, so he decided to create a series of titles on his own, partly for fun and partly to experiment.&lt;/p&gt;
&lt;p&gt;Games of this kind are normally difficult for the average player: the skill lies in observing and understanding the patterns that are proposed and the fact of remaining calm while being bombarded with bullets.&lt;/p&gt;
&lt;p&gt;However, not all of them will hit the player: it will be up to the latter to understand (and remember) who hits him and who doesn&amp;rsquo;t.&lt;/p&gt;
&lt;h2 id="what-is-it-about"&gt;What is it about&lt;/h2&gt;
&lt;p&gt;During the game, we will take on the role of Reimu or Marisa and we will have to shoot and avoid monsters that will try in any way to knock us down.&lt;/p&gt;
&lt;p&gt;Between one chapter and another (episodes) we will have small interludes that will push the story forward, allowing us to understand what is happening.&lt;/p&gt;
&lt;p&gt;In Italy it is not very popular, but it is especially so in Japan: in addition to the fandom they even have a manga and an anime.&lt;/p&gt;
&lt;h2 id="how-many-games-exist"&gt;How many games exist&lt;/h2&gt;
&lt;p&gt;The TH Project has been released in 18 different chapters, not counting the 11 official spinoffs which brings the total number of games to 29.&lt;/p&gt;
&lt;p&gt;The first 5 chapters are the only ones to have been released for PC-98 and nowadays have become almost impossible to find, except online. They are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Touhou 1 - Highly Responsive to Prayers&lt;/li&gt;
&lt;li&gt;Touhou 2 - Story of Eastern Wonderland&lt;/li&gt;
&lt;li&gt;Touhou 3 - Phantasmagoria of Dimensional Dream&lt;/li&gt;
&lt;li&gt;Touhou 4 - Lotus Land Story&lt;/li&gt;
&lt;li&gt;Touhou 5 - Mystic Square&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This article is about the 5 games listed above, all others are available and released for Windows.&lt;/p&gt;
&lt;p&gt;The first game is &lt;strong&gt;very different&lt;/strong&gt; from all the other chapters: it is a kind of arkanoid with tiles.&lt;/p&gt;
&lt;h2 id="material-required"&gt;Material required&lt;/h2&gt;
&lt;p&gt;To play the Touhou Project you need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;copy of TH Project games for PC-98&lt;/li&gt;
&lt;li&gt;PC-98 emulator (Neko Project II) or
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Retroarch&lt;/strong&gt; configured with &lt;strong&gt;NP2 KAI&lt;/strong&gt; core (Neko Project II Kai)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;scissors with a rounded tip&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="method"&gt;Method&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Load the Retroarch (RA) core called Neko Project II &lt;strong&gt;KAI&lt;/strong&gt;. The KAI version is essential, in fact nothing will work without it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Make sure you already have configured the core. If you haven&amp;rsquo;t or don&amp;rsquo;t know how, &lt;a href="https://docs.libretro.com/library/neko_project_ii_kai/"&gt;RA guide will help you&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Load a game. What a bummer right? It all jerks and feels crappy. Now let&amp;rsquo;s go make some improvements.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open Retroarch menu &amp;gt; Core Options &amp;gt; Core Settings &amp;gt; and make these settings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PC Model: PC-9801VM&lt;/li&gt;
&lt;li&gt;CPU Base Clock: 2.4 MHz&lt;/li&gt;
&lt;li&gt;Feature CPU: Intel 80386&lt;/li&gt;
&lt;li&gt;CPU Clock Multiplier: 16&lt;/li&gt;
&lt;li&gt;RAM Size: 13&lt;/li&gt;
&lt;li&gt;Skipline Revisions: 255&lt;/li&gt;
&lt;li&gt;Soundboard: PC9801-86&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Restart the content, and enjoy.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;N.B.&lt;/strong&gt;: this configuration is specific to the &lt;strong&gt;Anbernic 353V&lt;/strong&gt;: experimenting a bit with the settings I reached a good compromise.&lt;/p&gt;
&lt;p&gt;If you have a higher-end computer or console, &lt;strong&gt;set the CPU Clock Multiplier to 40 and RAM Size also to 32&lt;/strong&gt;, and then gradually decrease the CPU Clock Multiplier in case you notice frame drops, or slowness in general.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;minimum&lt;/strong&gt; values are &lt;strong&gt;CPU 24 and RAM 13&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;(yes, I had to put 16 otherwise everything was laggy)&lt;/p&gt;
&lt;h2 id="what-if-i-use-the-emulator"&gt;What if I use the emulator?&lt;/h2&gt;
&lt;p&gt;These settings are obviously also valid when using the standalone emulator.&lt;/p&gt;
&lt;h2 id="faqs"&gt;FAQs&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It gives me black screen with &lt;code&gt;a)&amp;gt;&lt;/code&gt; how do I fix it?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;you are not using NP2KAI, but NP2. I told you Kai was needed 😇&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The second chapter does not take my input.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;you are not using NP2KAI, but NP2. I told you Kai was needed 😇&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I don&amp;rsquo;t see the fonts&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Optional files are missing, &lt;a href="https://docs.libretro.com/library/neko_project_ii_kai/"&gt;official guide&lt;/a&gt; tells you how to fix this annoying problem. Or play without fonts.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The zip doesn&amp;rsquo;t work!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;unzip the zip and put the hdi file in the rom folder. In case you use Anbernic and similar, this folder is called &lt;code&gt;pc98&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I can&amp;rsquo;t stop playing, I&amp;rsquo;ve become good, I&amp;rsquo;d like to start chapters for Windows from Steam. I&amp;rsquo;m just here to thank you!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I would have put you my &lt;a href="https://www.instant-gaming.com/?igr=gamer-df38ee9"&gt;affiliate link to Instant Gaming&lt;/a&gt;, but they don&amp;rsquo;t sell TH Project, so I suggest you &lt;a href="https://store.steampowered.com/app/1043230/__Ten_Desires/"&gt;the 13th chapter on Steam&lt;/a&gt;. Or start with whatever you prefer.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The guide in the Bignami version, reduced to the bone, is available &lt;a href="https://gist.github.com/dag7dev/25d734321568e56cc1f7309ffb4fedd6"&gt;on Gist Github&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Have fun!&lt;/p&gt;
&lt;p&gt;p.s. maybe you already knew TH Project for &lt;a href="https://www.youtube.com/watch?v=GPxTX2kVzYE"&gt;Bing of Bongs | Big Ben plays &amp;lsquo;Night of Nights&amp;rsquo; for the Last time&lt;/a&gt; or for [McDonald&amp;rsquo;s clown video](&lt;a href="https://www.youtube.com"&gt;https://www.youtube.com&lt;/a&gt; /watch?v=Q16KpquGsIc)&lt;/p&gt;</description></item><item><title>Awesome Retroconsoles</title><link>https://dag7.it/posts/awesome-retroconsole/</link><pubDate>Thu, 30 Mar 2023 15:12:47 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/awesome-retroconsole/</guid><description>&lt;p&gt;People have many hobbies, such as reading, playing sports, listening to music or gardening. Instead, one of my favorite pastimes is playing video games. For me, it has always been a genuine journey of discovery of new worlds and new characters, a bit like reading a book, but in a more interactive way.&lt;/p&gt;
&lt;p&gt;I own many of the best-selling consoles of all time, but I was looking for a solution to my desire to dust off old glories.&lt;/p&gt;
&lt;h2 id="the-problems"&gt;The problems&lt;/h2&gt;
&lt;p&gt;Playing video games on the original consoles requires you to carry each console with you at all times, unless you own backup solutions or backward-compatible consoles, which may not always be able to run all the games from multiple consoles.&lt;/p&gt;
&lt;p&gt;For example, if I wanted to play Game Boy Advance (GBA) and PlayStation Portable (PSP) games, I would have to carry two separate consoles with me.&lt;/p&gt;
&lt;p&gt;In addition, the backup solutions available on the market for older consoles, although perhaps cheaper at the time, are not cheap. Try, for example, to take a look at the flashcarts for the Game Boy.&lt;/p&gt;
&lt;p&gt;So, what to do?&lt;/p&gt;
&lt;p&gt;One option is to use a newer, better console in terms of power and performance to play older games.&lt;/p&gt;
&lt;p&gt;I am not considering the Nintendo Switch, which is a console that is still in production, but it is difficult to play old games on it, and the Steam Deck, which is a full-fledged computer that does many things in the area of emulation. Both solutions are not cheap even though they do the job they were designed and created for very well.&lt;/p&gt;
&lt;p&gt;Nowadays, the cheapest consoles with a good stock of titles are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New Nintendo 3DS&lt;/li&gt;
&lt;li&gt;PSVita&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;They allow most of the games of previous consoles to be emulated, but they are hard to find at normal prices, especially the latter.&lt;/p&gt;
&lt;p&gt;There are two major problems while playing a recent title:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;New&amp;rdquo; consoles do not always have the same aspect ratio and controls as the original version. For example, Nintendo DS games play on a 3DS but have black bands on the sides, while on a DSi (or DSi XL) they play perfectly.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When home consoles are emulated by a newer device, it is difficult to get used to the controls. The feel of a certain controller on original hardware is often different from that of the target console.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This comes purely from the convenience of using one controller over another.&lt;/p&gt;
&lt;p&gt;I have always liked the idea of carrying my entire game library with me and being able to have one console that can play my entire collection instead of having to own many different consoles. However, there are also advantages to being able to have more than one console, such as being able to play games exclusive to each console and having access to different features and services offered by each platform. In general, the choice of owning one or more consoles depends on each gamer&amp;rsquo;s personal preferences and needs.&lt;/p&gt;
&lt;p&gt;Not all Game Boys are perfect: the SP is the excellence of compactness. However, over the years, the controls became small for my gradually growing hands, making it a bit uncomfortable.&lt;/p&gt;
&lt;p&gt;A good Game Boy in terms of size might be the very first gray (DMG). However, it has a not inconsiderable weight and is not very portable compared to other consoles, as it is heavy in the pocket.&lt;/p&gt;
&lt;p&gt;An excellent alternative to both models is the Game Boy Pocket (GBP), which is an excellent compromise both in terms of size, which is much smaller and more compact than a DMG, and in terms of the size of the controls (d-pad and buttons), which maintain the size of the DMG.&lt;/p&gt;
&lt;p&gt;The Game Boy family has always suffered from the non-backlit screen, a serious shortcoming that over the years has been a problem for all those who wanted to play at hours other than daylight, risking losing a few diopters.&lt;/p&gt;
&lt;p&gt;Where then can I find a &amp;ldquo;powerful&amp;rdquo; Game Boy with a good screen and capable of running recent games?&lt;/p&gt;
&lt;h2 id="the-compromise"&gt;The compromise&lt;/h2&gt;
&lt;p&gt;And this is how we arrive at a very good compromise: the discovery of non-emblazoned retro consoles.&lt;/p&gt;
&lt;p&gt;In the past, consoles were sold with OpenDingux, which never really intrigued me. On the one hand it was very interesting to have a console with a free operating system that could play many dated games, on the other hand they always gave me the impression that they had problems of some sort (arising not only from overheating, but also and especially from the controls).&lt;/p&gt;
&lt;p&gt;In recent years, however, several retroconsoles from brands such as Powkiddy, Miyoo, and Anbernic have emerged.&lt;/p&gt;
&lt;p&gt;The peculiarity of these consoles is that they often mount Linux or Android, making them perfect for all the geeks who enjoy adding or removing emulators and testing games.&lt;/p&gt;
&lt;p&gt;Around 2019 I used to follow, and still follow with great pleasure, the Dr. Game channel, where there are several reviews of handheld consoles, from Famiclones to Power Player Super Joy to these types of consoles.&lt;/p&gt;
&lt;p&gt;Initially, I did not like them at all.&lt;/p&gt;
&lt;p&gt;I set out to research the various solutions on the market, and the choice fell on two models in particular:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Miyoo Mini&lt;/li&gt;
&lt;li&gt;RG35XX&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I searched online what these consoles were capable of doing, and found that they can emulate games up to PS1, but not perfectly Dreamcast, PS1, and Game Cube&lt;/p&gt;
&lt;p&gt;The Miyoo Mini is just too small and uncomfortable to hold. Compactness is important, but not being ergonomic it is uncomfortable to use. This is very reminiscent of the Game Boy Advance SP in 2023.&lt;/p&gt;
&lt;h2 id="the-wrong-purchase"&gt;The wrong purchase&lt;/h2&gt;
&lt;p&gt;Initially I thought the RG35XX was a good choice, but then I found that the power left something to be desired and the stock kernel was not excellent.&lt;/p&gt;
&lt;p&gt;In short, not really the best choice.&lt;/p&gt;
&lt;p&gt;I honestly would have appreciated if the console had better support from the original manufacturer, although there are custom firmwares.&lt;/p&gt;
&lt;h2 id="the-right-purchase"&gt;The right purchase&lt;/h2&gt;
&lt;p&gt;I realized that many of the things I wanted were not available, such as Android support, so I decided to spend more and opt for the Anbernic 353V.&lt;/p&gt;
&lt;p&gt;Before making the purchase, I went to look at various reviews on Instagram and Youtube: needless to say, there wasn&amp;rsquo;t much. All of them complained about the buttons on the back being difficult to press and uncomfortable.&lt;/p&gt;
&lt;p&gt;I must say that I was quite satisfied with its technical specifications. What surprised me most, however, were the controls and toggles themselves, which far exceeded my expectations.&lt;/p&gt;
&lt;p&gt;It is able to emulate many systems, such as Dreamcast and PS1 with a stable framerate, but also PSP titles and they seem to work great. However, it is not perfect, there are some things it cannot do, such as emulating the Gamecube or having a stable Android system (crashes every few minutes of play).&lt;/p&gt;
&lt;p&gt;Despite the problems, this console has become my favorite handheld and I use it almost every day, especially to play PS1 titles and something on Android: on the latter, apps crash often, especially games.&lt;/p&gt;
&lt;p&gt;Another thing I love is the fact that I can use it as a controller for other things-it&amp;rsquo;s a priceless feature.&lt;/p&gt;
&lt;p&gt;I was a bit skeptical about the feedback of the controls, but I must say that the console emulates the feel of the Game Boy Pocket perfectly. Surprisingly, even after some time, my hand doesn&amp;rsquo;t sweat like it does with some controllers, such as the one on the PS4 or the first Xbox One before they overhauled the controller and put a grip on it.&lt;/p&gt;
&lt;h2 id="final-conclusions"&gt;Final conclusions&lt;/h2&gt;
&lt;p&gt;If you are looking for a handheld console that is able to satisfy your need for retro gaming, the Anbernic 353V is a solution worth considering.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not saying it&amp;rsquo;s perfect, because it obviously has its pros and cons, but I personally found it to be a good quality portable console that offers a wide choice of emulators at an affordable price.&lt;/p&gt;
&lt;p&gt;If you want to know everything, but really everything about Anbernic consoles, I recommend you check out &lt;a href="https://github.com/dag7dev/awesome-anbernic"&gt;awesome-anbernic&lt;/a&gt;, where you can find information about the various consoles, custom firmware, and much more.&lt;/p&gt;</description></item><item><title>New Year New Blog</title><link>https://dag7.it/posts/restyling-2023/</link><pubDate>Sat, 04 Feb 2023 00:00:00 +0000</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/restyling-2023/</guid><description>&lt;p&gt;Hi everyone.&lt;/p&gt;
&lt;p&gt;Hope you had a good time with your family or friends on New Year&amp;rsquo;s Eve.&lt;/p&gt;
&lt;p&gt;The act of starting something means hard commitment and sacrifice in our lives.&lt;/p&gt;
&lt;p&gt;Maybe not, if you like what you&amp;rsquo;re doing, but most of the time, if you are not following just one topic at time, you will have plenty of things to do.&lt;/p&gt;
&lt;p&gt;Well, when I&amp;rsquo;ve started this blog, I planned to just have a personal space. Unfortunately this is no more possible: I have started a lot of projects , and I have less time for each of them.&lt;/p&gt;
&lt;p&gt;Probably I need to move on some old projects, or just keep them and don&amp;rsquo;t take newer ones.&lt;/p&gt;
&lt;p&gt;Anyway, here&amp;rsquo;s the thing: I will simply change this homepage. You can still reach these pages at dag7.it/blog but on the main page I will probably build a custom homepage to present myself in a semi-stylish way.&lt;/p&gt;
&lt;p&gt;One more thing: not sure about the language. I like to write both in english and in italian, but sometimes I search things in italian, some other times in english.&lt;/p&gt;
&lt;p&gt;I frankly don&amp;rsquo;t know what to keep and what I should throw away.&lt;/p&gt;
&lt;p&gt;I can keep both of them, but it was hard to consistently post each month.&lt;/p&gt;</description></item><item><title>GARR Academy</title><link>https://dag7.it/posts/garr-academy/</link><pubDate>Sat, 26 Nov 2022 12:00:00 +0100</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/garr-academy/</guid><description>&lt;h2 id="the-beginning"&gt;The beginning&lt;/h2&gt;
&lt;p&gt;It all started with a dear friend of mine who sent me &lt;a href="https://www.garr.it/it/chi-siamo/academy"&gt;this link&lt;/a&gt; regarding a never heard before &amp;lsquo;Garr Academy&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Who&amp;rsquo;s Garr?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Well, I knew Garr because when I was a child I used to download Ubuntu from the closest mirror to me&amp;hellip; which belonged (and still belongs) to Garr.&lt;/p&gt;
&lt;p&gt;So, it is a very cute story to tell, but yes, I knew Garr for years.&lt;/p&gt;
&lt;p&gt;By the way, Garr is a consortium that holds the entire Italian infrastructure. They have three main datacenters (Milan, Rome, and Bari) and a ton of nodes in Italy.&lt;/p&gt;
&lt;p&gt;You can always &lt;a href="https://gins.garr.it/"&gt;visit their gins website&lt;/a&gt; and have fun while searching for your nearest node. You will be surprised how many nodes are in the network and how close are to you.&lt;/p&gt;
&lt;h2 id="garr-academy"&gt;Garr Academy&lt;/h2&gt;
&lt;p&gt;Garr Academy is a training course aimed to train new people in the DevOps world.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been luckily selected among 9 participants, and here&amp;rsquo;s what we learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ansible&lt;/li&gt;
&lt;li&gt;Docker and containers&lt;/li&gt;
&lt;li&gt;Kubernetes&lt;/li&gt;
&lt;li&gt;Vagrant&lt;/li&gt;
&lt;li&gt;Influx, Telegraf, and monitoring in general&lt;/li&gt;
&lt;li&gt;some general knowledge about CI/CD&lt;/li&gt;
&lt;li&gt;speaking in public and interpersonal skills (dealing correctly with other people, efficient communication&amp;hellip;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We were at the academy from 9am to 6pm, from the 15th of October till the 15th of November, and every day there was some new stuff to learn and to do: a completely different approach than the majority of training courses and university.&lt;/p&gt;
&lt;p&gt;We, of course, have done a theoretical part, which was enough to understand what we were doing.&lt;/p&gt;
&lt;p&gt;The approach was mainly &amp;ldquo;you practice this and right before I&amp;rsquo;ll explain what&amp;rsquo;s going on. Feel free to experiment.&amp;rdquo; rather than &amp;ldquo;I will explain the entire subject and then you will do some exercises&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;It was really fun, and it is my favourite approach while learning.&lt;/p&gt;
&lt;h2 id="final-thoughts"&gt;Final thoughts&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s been one of my favorite experiences of all time, not only because I met some new awesome people (both colleagues and mentors), but I&amp;rsquo;ve learned new stuff which I ignored the existence before the course or didn&amp;rsquo;t know too much.&lt;/p&gt;
&lt;p&gt;Until the academy, the DevOps field was unexplored to me, apart from the CI/CD part which I&amp;rsquo;ve always been a fan of since I discovered Github&amp;rsquo;s actions.&lt;/p&gt;
&lt;p&gt;I feel enriched by this experience and I would recommend this to everyone who wants to become a devop or wants to try out to learn new things.&lt;/p&gt;
&lt;h2 id="contest"&gt;Contest&lt;/h2&gt;
&lt;p&gt;There&amp;rsquo;s been a social contest: the participants to get involved used to post something on social networks tagging &amp;ldquo;ReteGarr&amp;rdquo;; I was one of those participants, and &lt;a href="https://www.instagram.com/p/Ck_w1emNRBg/"&gt;I won the second prize&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;All of my notes, where possible, are available &lt;a href="https://dag7.it/appunti"&gt;at this address&lt;/a&gt; under the &amp;ldquo;Garr Academy&amp;rdquo; section.&lt;/p&gt;
&lt;p&gt;They&amp;rsquo;re personal notes written in RST. I will update that website once I rewrite/convert some of my personal notes. Feel free to take a look!&lt;/p&gt;</description></item><item><title>RLJ #3</title><link>https://dag7.it/posts/rlj3/</link><pubDate>Tue, 06 Sep 2022 22:18:00 +0100</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/rlj3/</guid><description>&lt;p&gt;Did you miss me? Me too. Me neither. It depends.&lt;/p&gt;
&lt;p&gt;This is another issue of your favorite Journal, full of links, things to see, things to watch, and&amp;hellip; let&amp;rsquo;s go!&lt;/p&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Planning is the key. But I hate planning.&lt;/p&gt;
&lt;p&gt;I wrote some months ago &amp;ldquo;I will have some spare time this summer. I&amp;rsquo;d like to plan some articles until the end of this year&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Hehe, joking. When I started RLJ3 was in June, and I still had many things to do.&lt;/p&gt;
&lt;h2 id="health"&gt;Health&lt;/h2&gt;
&lt;p&gt;First things first: how am I doing? I&amp;rsquo;m pretty good.&lt;/p&gt;
&lt;p&gt;I used to be burned out, and I was like &amp;ldquo;see you in September&amp;rdquo; for everything, but I&amp;rsquo;ve been on holiday and I&amp;rsquo;ve almost done everything I wanted to do, I am pretty good!&lt;/p&gt;
&lt;p&gt;To be honest, I am worried about the future. Things in the world are not going very well, there are wars, there still is censorship, too many climate changes&amp;hellip;&lt;/p&gt;
&lt;h2 id="projects"&gt;Projects&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stufftrack&lt;/strong&gt;: I am so excited about this one that I&amp;rsquo;d like to share the entire project with you and the web. Stay tuned!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HCI project&lt;/strong&gt;: I love HCI. While in University, one of the best subjects was HCI, which I loved all by myself. Not only it was taught by a good professor, but it also was interesting. Anyway, the project for uni consisted in &lt;strong&gt;adding a feature to an already existing application&lt;/strong&gt;. We tested our new feature among everyday people with my colleagues, it was really fun. I also have implemented our work into the final app: even if it won&amp;rsquo;t ever be released, it was really fun to work on it!
&lt;ul&gt;
&lt;li&gt;In detail: we &lt;strong&gt;let the users leave ratings for courses and professors&lt;/strong&gt;, so they don&amp;rsquo;t need to spam on Telegram and Whatsapp groups.
&lt;ul&gt;
&lt;li&gt;More on the source app: &lt;a href="https://play.google.com/store/apps/details?id=sapienza.informatica.infostud&amp;amp;hl=en"&gt;the only (un)official Sapienza app&lt;/a&gt;. If you&amp;rsquo;re a Sapienza student with an Android phone you can&amp;rsquo;t miss this one.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The application extension has been developed in a marathon of about 20 hours on Ionic, in an already configured VM provided by the prof
&lt;ul&gt;
&lt;li&gt;I was unfamiliar with Ionic, and I got hung up on fiddling with CSS the only night I programmed the application (as well as figuring out how to do things right)
&lt;ul&gt;
&lt;li&gt;I&amp;rsquo;ve ended up in a total mess, talking about clean source code but &amp;ldquo;hey! if it works, it works!&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;No screenshot because we didn&amp;rsquo;t take them!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="on-life"&gt;On life&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Youtube&lt;/strong&gt;: I haven&amp;rsquo;t used YouTube for an exceptional period of time (apr-august), except for funny videos. It is boring, and Youtube rarely suggests me something really interesting.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hedgehog Dilemma&lt;/strong&gt;t: &lt;a href="https://www.psychologytoday.com/us/blog/science-and-philosophy/202003/the-hedgehog-s-dilemma"&gt;a fascinating concept that I&amp;rsquo;ve discovered thanks to Evangelion&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;img src="https://dag7.it/img/eva.jpg" alt="eva"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plato&amp;rsquo;s Cave&lt;/strong&gt;: a video is worth more than one hundred words. I am unable to clearly explain it, however, you can just watch this awesome video by TedEx.
&lt;ul&gt;
&lt;li&gt;{{ youtube 1RWOpQXTltA }}&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pareto Principle&lt;/strong&gt;: The Pareto Principle is a simple rule that could help us to reach our goals and don&amp;rsquo;t be stressed. The rule is simple:
&lt;ul&gt;
&lt;li&gt;80% output&lt;/li&gt;
&lt;li&gt;20% input
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The less you input, the more you should produce&lt;/strong&gt; and this is so true&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Richard Benson is dead&lt;/strong&gt;: on 10th May, Richard Benson left this earth. This man has accompanied the afternoons of my adolescence. I like to remember him with a smile. Thank you, Richard, CIAO!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dead phone, dead computer&lt;/strong&gt;: call it a bad luck strike or whatever, but I don&amp;rsquo;t use to have access to both my phone and computer until some days ago. I mean, I still don&amp;rsquo;t have a computer of mine, I bought a new phone but I am still attached to the old one. On 2nd September I replaced its screen, and now it&amp;rsquo;s sluggish, the battery sucks, but it works great!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="development"&gt;Development&lt;/h2&gt;
&lt;p&gt;Also known as &amp;ldquo;behind the scenes stuff&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Feel free to &lt;strong&gt;read this part&lt;/strong&gt; if you&amp;rsquo;re not technical and &lt;strong&gt;blame me in private&lt;/strong&gt;, because you understand nothing.&lt;/p&gt;
&lt;p&gt;Things I&amp;rsquo;ve found interesting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Postman&lt;/strong&gt;: a lifesaver when you need to test your own backend. It permits to explore cookies, change body requests and params, and much more&amp;hellip; &lt;a href="https://www.postman.com/"&gt;and it is so comfortable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vue&lt;/strong&gt;: I hate frontend. But when it comes to Vue, well&amp;hellip; I hate &amp;ldquo;less&amp;rdquo; frontend. Vue is a powerful framework that allows you to build an amazing frontend in &amp;ldquo;not-so-much&amp;rdquo; time. &lt;a href="https://vuejs.org"&gt;Check it out!&lt;/a&gt; -wadda wadda, we hate javascript&amp;hellip; read more-&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No software like Picasa&lt;/strong&gt;: I am unable to find a good Picasa alternative. Lightroom has too many things, Digikam is the same&amp;hellip; Picasa&amp;rsquo;s like programs don&amp;rsquo;t exist!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JWT&lt;/strong&gt;: from &lt;a href="https://hackernoon.com/understanding-jwts-from-beginning-to-end"&gt;this awesome link on Hacker Noon&lt;/a&gt;, JWT is a token that can be verified online (because they respect an open source format) and with this, you can identify a logged user instead of saving its IP or other personal information.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The duck anecdote&lt;/strong&gt;: IT people often keep a little rubber duck on their desk and while debugging line per line, they explain what are they doing. &lt;strong&gt;Beware of programmers!&lt;/strong&gt;
![shrek beware](/img/shrek beware.jpg)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="photography"&gt;Photography&lt;/h2&gt;
&lt;p&gt;Just approach this world by &amp;ldquo;just spending some € and see if I&amp;rsquo;m lucky&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;A big scratch card, but &lt;strong&gt;I&amp;rsquo;m having a lot of fun!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Long short story: I&amp;rsquo;ve bought an old Polaroid in very good condition for a few € and&amp;hellip; it works!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Polaroid film&lt;/strong&gt;: b/w, i-type, 600, SX-70&amp;hellip; there are several types of film, all of them are very expensive and there is nothing compatible with those old machines. Good job Polaroid, they can roll your own prices, because &lt;strong&gt;they&amp;rsquo;re the only film manufacturer ever of their own machines&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;[Rise and fall of Polaroid]((&lt;a href="https://www.youtube.com/watch?v=V7z7BAZdt2M)"&gt;https://www.youtube.com/watch?v=V7z7BAZdt2M)&lt;/a&gt;: Polaroid was a colossus back in time when Edwin Land was alive. This video explains everything in 5 minutes!&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=V7z7BAZdt2M"&gt;Photography in 10 minutes&lt;/a&gt;: this video really helped me in understanding the core concept of photography. Adorable!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ZINK&lt;/strong&gt;: how beautiful Zink is? A lot. In case you&amp;rsquo;re new, Zink is a technology that allows you to &amp;ldquo;print&amp;rdquo; (not really) your photos, by heating some special crystals on the paper&amp;rsquo;s surface. Please, note that &lt;strong&gt;all Zink paper is compatible with all Zink products regardless of brand.&lt;/strong&gt; You just need to check the paper&amp;rsquo;s dimensions.
&lt;ul&gt;
&lt;li&gt;FFFF is anyway expensive!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="money"&gt;Money&lt;/h2&gt;
&lt;p&gt;Do you remember &lt;a href="dag7.it/rlj2"&gt;last time we talked about Monefy&lt;/a&gt;?
Well, my (and your) special solution is &amp;ldquo;MyExpenses&amp;rdquo;, available on F-Droid!&lt;/p&gt;
&lt;p&gt;It is like Monefy but free and open source, you can pay for some special functionalities.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://f-droid.org/repo/org.totschnig.myexpenses_546.apk"&gt;Can&amp;rsquo;t get enough of recommending it!&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="other-links"&gt;Other links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=6Kc2gGycBXc"&gt;Stewart Copeland on Spyro&lt;/a&gt;. It&amp;rsquo;s very interesting and I love what he says!&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=e1bjkPerpPs"&gt;Why Companies Are &amp;lsquo;Debranding&amp;rsquo;&lt;/a&gt;: from the description &lt;em&gt;From Burger King and Toyota to Intel and Warner Brothers, major brands are discarding detail and depth. Why now, and what’s the rush?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=XLeKaLnNbO4"&gt;Why airplanes have a hole in their windows&lt;/a&gt;: video in Italian by &lt;a href="https://www.youtube.com/c/geopop"&gt;Geopop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I &lt;a href="https://www.youtube.com/watch?v=qEWO68Tegf8&amp;amp;pp=ugMICgJpdBABGAE%3D"&gt;Tried this&lt;/a&gt; on my old phone, and I broke it. Don&amp;rsquo;t try this at home!
!(/img/dont tr.gif)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="the-end-entertainment-part-1"&gt;The End? Entertainment part 1&lt;/h2&gt;
&lt;p&gt;I was hungry like many people in the world of &amp;ldquo;things to see/play&amp;rdquo; and so on in these months.&lt;/p&gt;
&lt;p&gt;I was ill in April, so I&amp;rsquo;ve decided to watch many tv shows and movies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Disenchantment 3 and 4&lt;/strong&gt;: the third one is cool, they go to Steamland. I&amp;rsquo;ve found the fourth so boring, that I am unable to remember any particular detail. Sorry, Matt!&lt;/li&gt;
&lt;li&gt;Star wars iv&lt;/li&gt;
&lt;li&gt;Star wars v&lt;/li&gt;
&lt;li&gt;star wars vi&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scarface&lt;/strong&gt;: one of the best films ever in my life about the mafia, with Al Pacino. I never felt a long film so short, everything is an action, and it caught me from the first moment. One of my favorite films ever.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Eternal Sunshine of the Spotless Mind&lt;/strong&gt;: a sentimental Jim Carrey movie.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The number 23&lt;/strong&gt;: a serious Jim Carrey movie. The main character becomes obsessed with the number 23.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The King&amp;rsquo;s Speech&lt;/strong&gt;: didn&amp;rsquo;t finish it, monotonous and lacking in plot twists. It&amp;rsquo;s cute, but it always takes place even two hours apart in the same three locations.
&lt;ul&gt;
&lt;li&gt;I was really enjoying it but I felt it was very heavy. It is the story of this prince who stutters when he has to make speeches, a defect he has had since he was a child.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The spotlight case&lt;/strong&gt;: I was very passionate about the investigation of the police, priests, and testimonies. It is sort of a mystery/documentary film.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shutter island&lt;/strong&gt;: the choices regarding the setting are really beautiful: apart from the shots with the beautiful cliff, I particularly liked the choice of colors that the director made at almost the end of the film when you see the main character completely dressed in white standing out from the background, all colored the latter with different colors to the main character. The story is quite unique and attracted me from the beginning, two men landing on an island to solve the case of a missing patient. In a majestic performance by DiCaprio, we find him in different roles and situations, and in all cases, he has incredible acting.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project Almanac&lt;/strong&gt;: kids find a time machine by rummaging through an old basement. They have fun but mess with the timelines. Very cute as a &amp;ldquo;post-dinner late-night&amp;rdquo; movie, I appreciated that there was a live performance by Imagine Dragons. I wasn&amp;rsquo;t crazy about the ending.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Locke&lt;/strong&gt;: a killer ball, I didn&amp;rsquo;t finish watching it, after 25 minutes of the movie I was bored to death. Brilliant idea to shoot the whole movie on the phone, but a bore and almost nothing happens. I didn&amp;rsquo;t mind at all not finishing it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;These Last Hours&lt;/strong&gt;: 12 hours until the end of the earth, because of an asteroid. A man is on the run, helps a little girl find a home, and then leaves with his pregnant wife with a child who will never see the light of day. It reminded me a bit of The Walking Dead: S1 in which the protagonist takes after Maxine. Nice to pass the evening, I wouldn&amp;rsquo;t watch it again.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Arcane&lt;/strong&gt;: the LoL series. You watch it mostly for the graphics, because it&amp;rsquo;s cool, and for the fights, which are exhilarating and never boring. There hasn&amp;rsquo;t been a single moment when I&amp;rsquo;ve been bored watching it, except for the concluding episodes, which are a tad &amp;ldquo;stretchy.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kill Bill vol. 1 and vol.2&lt;/strong&gt;: a movie that had to be seen. The fights are cool, although I got a little bored at times (some scenes are too slow). Blood everywhere and surreal scenes, like people getting their heads chopped off and the fountain of blood start, made me kind of laugh as a thing. Watching this film made me realize how much the soundtrack influenced the years to come: not only did I know almost all of it, but you can still hear pieces of it today (like the famous meme siren). Impeccable framing and cutaways, nothing to say.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Private Justice&lt;/strong&gt;: a memorable thriller, about a man who is killed by his mother and daughter. He then decides to take revenge as few do and sets up a plan that is absurd and devised to the smallest detail. It always confronts us with the question of choice: Is it right to kill? One way in which he dissects a body reminded me of Dexter.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;In line with the killer&lt;/strong&gt;: nothing is memorable, but it made me laugh a lot in the bits where she tells him to tell the truth and the main character doesn&amp;rsquo;t. As a film it is brilliant, in fact, it takes place practically in a phone booth. The killer wants to punish the protagonist for the lies he tells every day and to make him a better man. I would call the protagonist pathetic. We all lie every day, but that does not make us better people; in fact, often the opposite. We should not lie to ourselves (a concept also expressed in Evangelion, about happiness).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I don&amp;rsquo;t want to bore you, so I will stop here for now. Probably on another RLJ I will publish part two of the list, remind me by dropping an email and let me know if you have already watched one of those movies!&lt;/p&gt;
&lt;h2 id="the-end-for-sure"&gt;The end for sure!&lt;/h2&gt;
&lt;p&gt;This time I wasn&amp;rsquo;t joking. It&amp;rsquo;s true. Bye for now! I hope to write another article soon!&lt;/p&gt;</description></item><item><title>MacOS Linux</title><link>https://dag7.it/posts/apple-on-linux/</link><pubDate>Thu, 24 Mar 2022 16:14:18 +0100</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/apple-on-linux/</guid><description>&lt;p&gt;I am a proud user of xfce4, it is my favorite DE: clean, highly customizable, and without too much fancy stuff. It does its job.&lt;/p&gt;
&lt;p&gt;However, I could save some time by having certain &lt;strong&gt;customization&lt;/strong&gt; (zsh for example), and making it more beautiful looking: having a &lt;strong&gt;system which is eye-candy for eyes&lt;/strong&gt;, at least this work for me, let me be more productive.&lt;/p&gt;
&lt;h2 id="mac-look-a-like"&gt;Mac-look-a-like&lt;/h2&gt;
&lt;h3 id="mac-theming-xfce"&gt;Mac: theming XFCE&lt;/h3&gt;
&lt;p&gt;Ever dreamed about having a Mac? I like Apple&amp;rsquo;s look since ever, but I don&amp;rsquo;t own a modern Apple computer. Despite this, I think their UI elements are clean and highly recognizable, making a system more usable.&lt;/p&gt;
&lt;p&gt;Here is what are we going to &lt;strong&gt;change&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;gtk theme&lt;/strong&gt;: Mojave-gtk-theme&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;icons&lt;/strong&gt;: McMojave-circle&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;cursor&lt;/strong&gt;: MacCursor (more precisely, the macOSBigSur variant)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;top default XFCE4 bar&lt;/strong&gt;: we can restore a custom configuration&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Install MacOSMojave theme&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/vinceliuice/Mojave-gtk-theme.git &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; Mojave-gtk-theme
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;bash install.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ..
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="2"&gt;
&lt;li&gt;Install MacOSIcons&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/vinceliuice/McMojave-circle.git &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; McMojave-circle
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;bash install.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ..
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="3"&gt;
&lt;li&gt;Install MacCursor&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# fetch MacCursor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl https://github.com/ful1e5/apple_cursor/releases/download/v1.2.3/macOSBigSur.tar.gz --output macOSBigSur.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# extract `macOSMonterey.tar.gz`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar -xvf macOSBigSur.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# For all users&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo mv macOSBigSur /usr/share/icons/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="4"&gt;
&lt;li&gt;About the &lt;strong&gt;mac top bar&lt;/strong&gt;, we will restore a config file from xfce4 panel manager:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yay -S xfce4-panel-profiles
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The bar will look like this:
&lt;img src="https://dag7.it/img/macos-linux/topbar.png" alt="top-bar"&gt;&lt;/p&gt;
&lt;p&gt;I haven&amp;rsquo;t made so much customization, if I need to use a window switcher I will use &lt;strong&gt;Plank&lt;/strong&gt;, but I like much more to switch windows pressing Alt+Tab.&lt;/p&gt;
&lt;p&gt;If you use my dotfiles, I will include my config file in my dotfiles repository.&lt;/p&gt;
&lt;h3 id="mac-features"&gt;Mac: features&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Ulauncher&lt;/strong&gt; is a nice &lt;strong&gt;launcher&lt;/strong&gt; for your apps and allows you to do other comfortable things, for example, speed-test your connection by typing two characters on the bar or lookout a word on Wikipedia, by not opening your browser.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yay -S ulauncher
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It is a &lt;strong&gt;spotlight&lt;/strong&gt; alternative.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Remember to &lt;strong&gt;launch ulauncher on login&lt;/strong&gt;, by toggling a checkbox in its preferences.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Regarding the &lt;strong&gt;Mac bottom bar&lt;/strong&gt; on desktop, &lt;strong&gt;Plank&lt;/strong&gt; is a good bottom bar and its appearance is customizable.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yay -S plank
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To &lt;strong&gt;customize your plank preferences&lt;/strong&gt; just give from a new terminal:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;plank --preferences
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;Don&amp;rsquo;t forget to &lt;strong&gt;autostart the application on login&lt;/strong&gt;!
Just create an entry in the autostart tab with plank command on login.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here is how it looks mine:
&lt;img src="https://dag7.it/img/macos-linux/plank.png" alt="bottom-plank-bar"&gt;&lt;/p&gt;
&lt;h2 id="general-enhancements"&gt;General enhancements&lt;/h2&gt;
&lt;h3 id="keyboard-shortcuts-xfce4i3"&gt;Keyboard shortcuts: xfce4+i3=❤️&lt;/h3&gt;
&lt;p&gt;A &lt;strong&gt;powerful combo productivity&lt;/strong&gt; could be XFCE4 default keybindings + some of i3 bindings.&lt;/p&gt;
&lt;p&gt;For a short period in my life, I have xfce4 and i3 both installed at the same time.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a list of my shortcuts:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Shortcut&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Super+Space&lt;/td&gt;
 &lt;td&gt;Terminal&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Super+[1-4]&lt;/td&gt;
 &lt;td&gt;Change workspace&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Ctrl+Space&lt;/td&gt;
 &lt;td&gt;ulauncher&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Super&lt;/td&gt;
 &lt;td&gt;WhiskerMenu popup&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Shift+Ctrl+Print&lt;/td&gt;
 &lt;td&gt;xfce4-screenshooter -r&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Super+F&lt;/td&gt;
 &lt;td&gt;Toggle fullscreen&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Ctrl+Alt+[1-4]&lt;/td&gt;
 &lt;td&gt;Move focused window to desired workspace&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Super+[up-down-left-right]&lt;/td&gt;
 &lt;td&gt;Tile window to up/down/left/right&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;My dotfiles work on xfce4 and xfwm4.&lt;/p&gt;
&lt;h3 id="terminal-zsh-and-oh-my-zsh"&gt;Terminal: zsh and oh-my-zsh&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Zsh&lt;/strong&gt; is a powerful shell, way better than bash.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;oh-my-zsh&lt;/strong&gt; is a helper for zsh which helps your productivity by providing the ability to install &lt;strong&gt;themes and plugins&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Install zsh&amp;hellip;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pacman -Syu zsh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;hellip;and oh-my-zsh&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sh -c &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now, it&amp;rsquo;s time to use your new shell!&lt;/p&gt;
&lt;p&gt;Setup xfce4-terminal to run zsh by going into Edit &amp;gt; Preferences &amp;gt; Run a custom command instead of my shell &amp;gt; zsh&lt;/p&gt;
&lt;h3 id="zsh-on-steroids"&gt;zsh on steroids&lt;/h3&gt;
&lt;p&gt;Since you&amp;rsquo;re now using oh-my-zsh, you can install plugins, themes, and much more.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.zshrc&lt;/code&gt; is the &lt;code&gt;.bashrc&lt;/code&gt; equivalent, it is your main setup file.&lt;/p&gt;
&lt;p&gt;You can customize your shell by installing a custom theme, or some plugins.&lt;/p&gt;
&lt;p&gt;I like to use:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;zsh-autosuggestions
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;zsh-syntax-highlighting
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;z
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;and also &lt;a href="https://github.com/nvbn/thefucksettings"&gt;this awesome plugin&lt;/a&gt; that needs to be first downloaded by git (it requires dependencies and a short setup).&lt;/p&gt;
&lt;p&gt;Also, I like to change my oh-my-zsh home folder, by moving:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# change oh-my-zsh directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mv &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/.oh-my-zsh&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/.local/share/oh-my-zsh&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;and having this row on my &lt;code&gt;.zshrc&lt;/code&gt; file&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;ZSH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/.local/share/oh-my-zsh&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can install zsh-autosuggestions and zsh-syntax-highlighting by giving:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/zsh-users/zsh-autosuggestions &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;~/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/plugins/zsh-autosuggestions&lt;span class="se"&gt;\n&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/zsh-users/zsh-syntax-highlighting &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;~/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/plugins/zsh-syntax-highlighting&lt;span class="se"&gt;\n&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="setup-aliases"&gt;Setup aliases&lt;/h3&gt;
&lt;p&gt;Custom stuff in oh-my-zsh should be done in the zsh folder.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/.local/share/oh-my-zsh/custom&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Create a new file named &lt;code&gt;aliases.zsh&lt;/code&gt; and write your aliases.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a list of &lt;strong&gt;useful aliases and functions&lt;/strong&gt; that I like to use (note: as long as you have the required programs, it is suitable for &lt;code&gt;.bashrc&lt;/code&gt; too):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# pm aliases&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;reboot&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;sudo systemctl reboot&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;poweroff&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;sudo systemctl poweroff&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;shutdown&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sudo systemctl poweroff&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;halt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;sudo systemctl halt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;suspend&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;sudo systemctl suspend&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# magic-startup-arch-sh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;inst&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sudo pacman -S $1&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;uninst&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sudo pacman -R $1&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;update&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sudo pacman -Syu&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;instpkg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sudo pacman -U $1&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;aurupd&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;yay -Syu&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;aurinst&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;yay -S $1&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;aursearch&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;yay -Si $1&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;aurremove&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;yay -Rns $1&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# lazy aliases&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;exit&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;c&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;clear&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;vc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;vscodium&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;nano&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;whatsmyip&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;curl http://ipecho.net/plain; echo&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# space management&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;diskusage&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ncdu&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;space&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sudo du -sh $1&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;df&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;df -h&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;function&lt;/span&gt; freespace &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Cleaning pacman cache...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; sudo pacman -Sc
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;read&lt;/span&gt; &lt;span class="nv"&gt;$p&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Cleaning unused packages...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	sudo pacman -Rns &lt;span class="k"&gt;$(&lt;/span&gt;pacman -Qtdq&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Cleaning cache...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	sudo du -sh ~/.cache/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	rm -rf ~/.cache/*
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Cleaning journal files...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	sudo journalctl --vacuum-size&lt;span class="o"&gt;=&lt;/span&gt;50M
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="powerlevel10k"&gt;powerlevel10k&lt;/h3&gt;
&lt;p&gt;The last layer of oh-my-zsh setup is &lt;strong&gt;powerlevel10k&lt;/strong&gt;, a script that helps you to customize your shell appearance by choosing among different looks, to let you customize &lt;strong&gt;how information is displayed on screen&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re using oh-my-zsh so we can use this snippet:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone --depth&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; https://github.com/romkatv/powerlevel10k.git &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="p"&gt;/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/themes/powerlevel10k
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If your setting is different (e.g. you&amp;rsquo;re not using oh-my-zsh), please refer to the &lt;a href="https://github.com/romkatv/powerlevel10k#installation"&gt;official Github installation instructions&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;From the official Github page:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;On the first run, Powerlevel10k &lt;a href="https://github.com/romkatv/powerlevel10k#configuration-wizard"&gt;configuration wizard&lt;/a&gt; will ask you a few questions and configure your prompt. If it doesn&amp;rsquo;t trigger automatically, type &lt;code&gt;p10k configure&lt;/code&gt;. Configuration wizard creates &lt;code&gt;~/.p10k.zsh&lt;/code&gt; based on your preferences. Additional prompt customization can be done by editing this file. It has plenty of comments to help you navigate through configuration options.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is what my terminal looks like:
&lt;img src="https://dag7.it/img/macos-linux/terminal.png" alt="terminal"&gt;&lt;/p&gt;
&lt;h3 id="dotfiles"&gt;Dotfiles&lt;/h3&gt;
&lt;p&gt;Finally, you can copy and use my dotfiles.&lt;/p&gt;
&lt;p&gt;They contain everything we covered here and all of my settings.&lt;/p&gt;
&lt;p&gt;Remember to place dotfiles and folders in your $HOME directory:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone github.com/dag7dev/dotfiles.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="tldr"&gt;TLDR&lt;/h2&gt;
&lt;p&gt;Everything I said before that includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mac cursor, gtk-theme, icon, beautiful font, a bottom bar on desktop and &amp;ldquo;spotlight-like bar&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yay -S mojave-gtk-theme mcmojave-cursors mcmojave-circle-icon-theme-git ttf-roboto xfce4-panel-profiles ulauncher plank-git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;zsh, oh-my-zsh and powerlevel10k:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# zsh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pacman -Syu zsh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# oh-my-zsh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sh -c &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# change oh-my-zsh directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mv &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/.oh-my-zsh&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/.local/share/oh-my-zsh&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# add this line to your .zshrc (included in my dotfiles)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;ZSH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/.local/share/oh-my-zsh&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# install oh-my-zsh plugins&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/zsh-users/zsh-autosuggestions &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;~/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/plugins/zsh-autosuggestions&lt;span class="se"&gt;\n&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/zsh-users/zsh-syntax-highlighting &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;~/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/plugins/zsh-syntax-highlighting&lt;span class="se"&gt;\n&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Use my dotfiles to have a cool look:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone -b apple-like-dotfiles github.com/dag7dev/dotfiles.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Install powerlevel10k:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# powerlevel10k
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Setup xfce4-terminal to run zsh by going into Edit &amp;gt; Preferences &amp;gt; Run a custom command instead of my shell &amp;gt; zsh&lt;/p&gt;
&lt;p&gt;Finally, add some of my shortcuts. From inside of the dotfiles cloned folder, type:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cp xfce4-keyboard-shortcuts.xml .config/xfce4/xfconf/xfce-perchannel-xml/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Q: Plank draws a black line.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;A: This happened to me too. Window Manager Tweaks &amp;gt; Compositor &amp;gt; Disable Show shadows under dock windows
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Have fun~!&lt;/p&gt;</description></item><item><title>Shadowcopy</title><link>https://dag7.it/posts/shadow-copy/</link><pubDate>Mon, 07 Feb 2022 11:52:34 +0100</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/shadow-copy/</guid><description>&lt;h2 id="summertime-sadness"&gt;Summertime sadness&lt;/h2&gt;
&lt;p&gt;Losing files, especially if important, is always an unpleasant sensation, that anybody should avoid in their entire life.&lt;/p&gt;
&lt;p&gt;It feels you &lt;strong&gt;dumb&lt;/strong&gt;, because you could have done a backup, &lt;strong&gt;frustrated&lt;/strong&gt; because of &amp;ldquo;why me?&amp;rdquo;, occasionally &lt;strong&gt;mad&lt;/strong&gt; with all the machines in the world and &lt;strong&gt;really sad&lt;/strong&gt; about the loss of your files.&lt;/p&gt;
&lt;p&gt;Most especially, if this happens in critical situation, like you&amp;rsquo;re going on holiday and you&amp;rsquo;re transferring your files between two of yours hard drive because &amp;ldquo;hey, what a wonderful idea to free some space from the hard drive the night before leaving! What could ever go wrong?&amp;rdquo;, it could entirely ruin your relaxing vacation.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If anything can go wrong, it will
— &lt;!-- raw HTML omitted --&gt;Murphy&amp;rsquo;s Law&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="what-can-we-do"&gt;What can we do?&lt;/h2&gt;
&lt;p&gt;Well, there are not many solutions; you could:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;use specifically &lt;strong&gt;designed software&lt;/strong&gt; for data recovery
&lt;ul&gt;
&lt;li&gt;the best open source tool is &lt;a href="https://www.cgsecurity.org/wiki/PhotoRec"&gt;PhotoRec&lt;/a&gt;: however is very slow&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;recover them by &lt;strong&gt;using a backup&lt;/strong&gt;: it is important to have a backup hard drive, always save your files &lt;strong&gt;at least twice&lt;/strong&gt;. But probably if you&amp;rsquo;re reading this article you are in troubles&amp;hellip;&lt;/li&gt;
&lt;li&gt;use &lt;a href="https://gbatemp.net/threads/medicat-usb-a-multiboot-linux-usb-for-pc-repair.361577/"&gt;Medicat USB&lt;/a&gt; which contain &lt;strong&gt;A LOT&lt;/strong&gt; of tools&lt;/li&gt;
&lt;li&gt;finally, if you&amp;rsquo;re lucky enough to have shadow copy enabled on your system, &lt;strong&gt;using shadow copies&lt;/strong&gt;, which is the reason why you&amp;rsquo;re here&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-the-shadow-copies-are-g-gengar"&gt;What the shadow copies are&amp;hellip; G-Gengar?&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/gengar.png" alt="shadow copies are like Pokémon Gengar"&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Under a full moon, this Pokémon likes to mimic the shadows of people and laugh at their fright.
— &lt;!-- raw HTML omitted --&gt;Pokémon Red &amp;amp; Blue&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What does this mean?&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re lucky enough to have this service enabled on your machine&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;, Windows keeps a snapshot (copy) of all your data files and folders, to let you recover them in a second moment, in case of data loss or something&amp;rsquo;s gone wrong.&lt;/p&gt;
&lt;h2 id="how-to-recover-data"&gt;How to recover data&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/ShadowExplorer.png" alt="shadow explorer screenshot - it doesn&amp;rsquo;t have any copy though"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.shadowexplorer.com/uploads/ShadowExplorer-0.9-portable.zip"&gt;Download Shadow Explorer&lt;/a&gt; and unzip the archive in a folder.&lt;/p&gt;
&lt;p&gt;Run the executable file.&lt;/p&gt;
&lt;p&gt;A list of snapshot will be listed, select the snapshot you want and&amp;hellip; boom, your files are back on track, ready to be used!&lt;/p&gt;
&lt;h2 id="lesson-learnt"&gt;Lesson learnt&lt;/h2&gt;
&lt;p&gt;Always have a backup, but in case you don&amp;rsquo;t, it is always useful to know these awesome tricks!&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;&lt;a href="http://www.murphys-laws.com/murphy/murphy-laws.html"&gt;First Murphy&amp;rsquo;s Law&lt;/a&gt;&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;needs more research: is it enabled by default?&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>HP Envy Hackintosh</title><link>https://dag7.it/posts/hp-hackintosh/</link><pubDate>Tue, 18 Jan 2022 18:30:36 +0100</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/hp-hackintosh/</guid><description>&lt;p&gt;In the past years, I had an occasion to see (and have for a few days) on an HP Envy m6 running MacOS.&lt;/p&gt;
&lt;h2 id="whats-not-working-in-hackintosh-hp-envy-m6"&gt;What&amp;rsquo;s not working in Hackintosh HP Envy m6?&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- ethernet card with just RTL file: you will need a special kext, since it is slightly different than the official one
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- keyboard and touchpad: you will need some kext in this folder
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- audio: see the post-install guide.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- fingerprint sensor: not interested in fixing this
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- wifi card: unless someone writes a driver it is unfixable
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- DRM: it could be fixed according to post-install guide
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- sleep: it could be fixed according to post-install guide
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- battery: it could be fixed according to post-install guide
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="fix-audio"&gt;Fix Audio&lt;/h3&gt;
&lt;p&gt;The number that worked to me is &lt;code&gt;alcid=13&lt;/code&gt; for &lt;code&gt;IDT IDT92HD91BXX&lt;/code&gt; it may be different for you.&lt;/p&gt;
&lt;h2 id="pc-specs"&gt;Pc specs?&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ProductName : Mac OS X ProductVersion: 10.15.6 BuildVersion: ---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Bootargs : keepsyms=1 debug=0x100 chunklist-security-epoch=0 -chunklist-no-rev2-dev
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Kernel : Darwin Kernel Version 19.6.0: Thu Jun 18 20:49:00 PDT 2020
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Model ID : MacBookAir5,2 KernelMode: x86_64
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CPU TYPE : Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CPU ID : ---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Cores : 2 Cores, 4 Threads @ 2600MHz Bus: 100MHz FSB: 400MHz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Caches : L1i:32Kb L1d:32Kb L2:256Kb L3:3072Kb
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CPU Features : FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX EST TM2 SSSE3 CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC POPCNT AES PCID XSAVE OSXSAVE TSCTMR AVX1.0 RDRAND F16C SYSCALL XD EM64T LAHF RDTSCP TSCI RDWRFSGS SMEP ERMS MDCLEAR IBRS STIBP L1DF SSBD
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;RAM : 8192Mb HibernateMode: 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SwapUsage : total = 0.00M used = 0.00M free = 0.00M (encrypted)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;User : ---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;NOTE: --- means which that field has been edited since they used to contain private data.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="list-of-kext-used"&gt;List of kext used?&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;AHCIInternal.kext
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;AHCIPortInjector.kext
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ATAPortInjector.kext
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;AppleAHCIPort.kext
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;AppleALC.kext
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ApplePS2SmartTouchPad.kext
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Lilu.kext
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;NVMeFix.kext
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;RealtekRTL8111.kext [!!]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SATA-100-series-unsupported.kext
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SMCProcessor.kext
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SMCSuperIO.kext
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;USBInjectAll.kext
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;VirtualSMC.kext
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;NOTE: [!!] means which they are a special patched version in order to work.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="list-of-aml-files"&gt;List of aml files?&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SSDT-AWAC.aml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SSDT-EC-LAPTOP.aml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SSDT-HPET.aml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SSDT-IMEI-S.aml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SSDT-IMEI.aml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SSDT-PMC.aml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SSDT-PNLF.aml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SSDT-PNLFCFL.aml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SSDT-RHUB.aml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SSDT-XOSI.aml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="boot-args-arguments"&gt;boot-args arguments?&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;keepsyms=1 debug=0x100
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On Hp-Envy-m6-1279el I noticed which mouse and keyboard didn&amp;rsquo;t worked and the internal HDD wasn&amp;rsquo;t recognized too, so, some special Kext have been used.&lt;/p&gt;</description></item><item><title>RLJ #2</title><link>https://dag7.it/posts/rlj2/</link><pubDate>Sat, 15 Jan 2022 18:01:40 +0100</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/rlj2/</guid><description>&lt;p&gt;Welcome back into another RLJ 2!
It&amp;rsquo;s been a while since I did one of them, this time I&amp;rsquo;ve decided to structure it in a really different way: what I&amp;rsquo;ve done in the entire year couldn&amp;rsquo;t be summed up in an article.
For this reason, I will leave a bag full of links, hoping to stimulate your curiosity.&lt;/p&gt;
&lt;h2 id="on-life"&gt;On life&lt;/h2&gt;
&lt;h3 id="-dunning-kruger-effect"&gt;⁉️ Dunning-Kruger effect&lt;/h3&gt;
&lt;p&gt;The effect of a person believing themselves to be superior and putting themselves on the same level as an expert, even if they are not very experienced.
The opposite also applies: people who are very knowledgeable about something find themselves underestimating themselves.&lt;/p&gt;
&lt;p&gt;Yes, COVID is bad, and people taken from social or &amp;ldquo;the magic university of street&amp;rdquo; who thinks to know everything about COVID are bad as well.&lt;/p&gt;
&lt;h3 id="-focus"&gt;🤔 Focus&lt;/h3&gt;
&lt;p&gt;Focus on something or someone, has become really difficult these days, due to having a world where everything is always connected.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dag7.it/disconnected-ld21/"&gt;I&amp;rsquo;ve attended a talk about it&lt;/a&gt;, but here it is some cool stuff I&amp;rsquo;ve encountered along 2021:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://fs.blog/2019/10/focused-diffuse-thinking/"&gt;Focus mode vs. Diffuse mode&lt;/a&gt;: we have two different kind of working mode for our brains, &amp;ldquo;diffuse mode&amp;rdquo; and &amp;ldquo;focus mode&amp;rdquo;.
&amp;ldquo;&lt;strong&gt;Diffuse mode&lt;/strong&gt;&amp;rdquo; is our &lt;strong&gt;natural mode&lt;/strong&gt;, and it comes when we &lt;strong&gt;analyze and make connections&lt;/strong&gt;, while in &amp;ldquo;&lt;strong&gt;focus mode&lt;/strong&gt;&amp;rdquo; we &lt;strong&gt;focus on details&lt;/strong&gt;.
The key is understand how to combine the information we acquired in both modes.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://newsinhealth.nih.gov/2013/04/sleep-it"&gt;Sleep on it&lt;/a&gt;: sleep is related to rest, it means better productivity, especially on creative tasks. And by sleeping, we remember things.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=PAjVhrYc_OQ"&gt;Tips for studying at university, by Alessandro Concimi&lt;/a&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;monastery rule&lt;/strong&gt;: talks about everything to everybody, but don&amp;rsquo;t talk about university, unless you want some anxiety.&lt;/li&gt;
&lt;li&gt;when we talk to someone about something, we do nothing more than amplifying the perception we have about that thing we are talking about&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;study alone&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://markmanson.net/benefits-of-meditation"&gt;Mark Manson - Guide for basic meditation&lt;/a&gt;: empty your mind and relax
&lt;ul&gt;
&lt;li&gt;Honestly, I tried, didn&amp;rsquo;t enjoyed it so much. It&amp;rsquo;s not because it&amp;rsquo;s conceptually wrong, I think it&amp;rsquo;s related to how I spent my time. And those 10 minutes could be spent in another way.&lt;/li&gt;
&lt;li&gt;However, it&amp;rsquo;s been a key concept, because it helped me sometimes to &amp;ldquo;just relax&amp;rdquo; by not doing and thinking anything.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-notes"&gt;📔 Notes&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve tried to use &lt;a href="https://fortelabs.co/blog/para/"&gt;PARA&lt;/a&gt;, I did it in a wrong way, so I have organized my notes again.&lt;/p&gt;
&lt;p&gt;A clear example of Dunning: I thought I&amp;rsquo;ve understood PARA, but I didn&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;In general: do whatever let you feel more comfortable.&lt;/p&gt;
&lt;p&gt;This is my graph, updated to 2022.01.15:
&lt;img src="https://dag7.it/img/20220115-mind.png" alt="2022-january-mind-map"&gt;&lt;/p&gt;
&lt;h2 id="-technology"&gt;💻 Technology&lt;/h2&gt;
&lt;p&gt;Obviously it couldn&amp;rsquo;t miss the section related to computer and technology. It would have been a shame!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An awesome video by Computerphile on &lt;a href="https://www.youtube.com/watch?v=C_zFhWdM4ic"&gt;How Blur Filters Work&lt;/a&gt; in Computer Graphics.
&lt;ul&gt;
&lt;li&gt;This year I&amp;rsquo;ve done some Computer Graphics Homework and I needed to implement this. It was fun, and I&amp;rsquo;ve really appreciated that way of explaining things!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/The_C_Programming_Language"&gt;K&amp;amp;R&lt;/a&gt;: the best C Book on earth. After all, &lt;strong&gt;Dennis MacAlistair Ritchie&lt;/strong&gt; created C Language, why not follow his official guidelines?&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/library/venv.html"&gt;venv in Python&lt;/a&gt;: one of the most incredible things in Python&lt;/li&gt;
&lt;li&gt;&lt;a href="https://djangogirls.org/en/"&gt;Django framework and the tutorial by DjangoGirls&lt;/a&gt;: Django is an awesome framework in Python to create backends. It is a little bit complicated at the beginning, but it is not hard&lt;/li&gt;
&lt;li&gt;the rubber duck: IT people often keeps a little rubber duck on their desk and while debugging line per line, they explain her what are they doing.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twrp.me/"&gt;TWRP can save your devices&lt;/a&gt; if you have a broken screen. Do yourself a favor and give it a try!&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-backup-and-encryption"&gt;🔒 Backup and encryption&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve always been very reluctant to use encryption. All it takes is for the slightest thing to go wrong or for a file to get corrupted and there you go, goodbye files and documents.&lt;/p&gt;
&lt;p&gt;Nevertheless, I decided to use &lt;a href="https://www.veracrypt.fr/code/VeraCrypt/"&gt;Veracrypt&lt;/a&gt;, an open source encryption and decryption software.&lt;/p&gt;
&lt;p&gt;The container file got corrupted, so I would have lost all my documents on Obsidian.
I was able to recover my entire vault &lt;a href="https://dag7.it/shadowcopy"&gt;from Windows using ShadowCopies&lt;/a&gt; I will write a guide on it, promise! (even if it isn&amp;rsquo;t hard)&lt;/p&gt;
&lt;p&gt;A backup is not a &amp;ldquo;deposit&amp;rdquo; where to put all your files. It is replicating your data in multiple drives, eventually by locking all your data with a password.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Always have a backup of important stuff!&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="-music"&gt;🎵 Music&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Harmonic V Melodic Scales: Harmonic: the notes are played at the same time (they are written on the same space)
Melodic: the notes are played one in front of another one (they are written on the same direction)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/channel/UCpzgTNTgQsR9YYsyOm3k3KQ"&gt;Andrew Furmanczyk&lt;/a&gt; a music channel where you can learn music theory. Thanks Andrew, I&amp;rsquo;ve watched some of your videos (especially the one about firth of fifths) and they&amp;rsquo;re awesome&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fundamentals-of-piano-practice.readthedocs.io/"&gt;Fundamentals of Piano Practice&lt;/a&gt;: highly suggested if you&amp;rsquo;re trying to learn piano&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-books"&gt;📚 Books&lt;/h2&gt;
&lt;p&gt;Some of the books I&amp;rsquo;ve read, could be found &lt;a href="https://dag7.it/random-learning-journal-1/"&gt;in my last Random Learning Journal&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;📚 &lt;strong&gt;Revolution Rag&lt;/strong&gt;: The story talks about Sandy, a journalist that was fired from the newspaper he founded. The co-founder hires him again because he wanted Sandy to write about a misterious unsolved case. It turns out that this case involved a band called Nazgul, that Sandy has interviewed many years ago, because the person was murdered with a damn loud music (Nazgul was playing in the background).&lt;/li&gt;
&lt;li&gt;📚 &lt;strong&gt;Alice in Wonderland&lt;/strong&gt;: I won&amp;rsquo;t write a word here. Believe it or not, I never have read this book until 2021.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-money"&gt;💰 Money&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve talked about tracking things: &lt;a href="https://monefy.me/"&gt;Monefy&lt;/a&gt; is a wonderful app that helps you to track your incomes and expenses. Works great for a little budget and have ton of options.&lt;/p&gt;
&lt;p&gt;Or maybe you want use a spreadsheet system: in this case &lt;a href="https://www.reddit.com/r/personalfinance/wiki/tools#wiki_redditor_created.3A"&gt;take a look on reddit&lt;/a&gt;.
That link contains a lot of tools and spreadsheet to use. I am more comfortable to use an application, but there is no a right or wrong method: feel free to use whatever you like more!&lt;/p&gt;
&lt;p&gt;Tracking expenses it&amp;rsquo;s &lt;em&gt;really important&lt;/em&gt;: I&amp;rsquo;ve surprisly found myself in spending a lot on eating outside.&lt;/p&gt;
&lt;h2 id="-movies-and-tv-shows"&gt;📺 Movies and TV Shows&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/The_Queen%27s_Gambit_(miniseries)"&gt;Queen&amp;rsquo;s Gambit&lt;/a&gt;: story of a prodigious girl who became a chess&amp;rsquo;s champion, by simply watching with her eyes when she was 9. Even if it is a little bit slow, I enjoyed so much the lights, the scenes and the main actress.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Soul_(2020_film)"&gt;Soul&lt;/a&gt;: I think this movie is something really beautiful: not only the soundtrack is made up with jazz sounds, that makes me crazy, but it talks about the sense of life. It seems a movie for kids: the hard truth is that it is not for kids only, it is for adults, looking for a better life. It&amp;rsquo;s worth to link it to &lt;a href="https://designingyour.life/the-book/"&gt;designing your life&lt;/a&gt;, because it talks about happiness and being happy in what you do in everyday life, and deals with death and God topics.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;ve seen other movies and tv shows for sure, but these are the ones I remember more.&lt;/p&gt;
&lt;h2 id="-projects"&gt;📐 Projects&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/dag7dev/PyDBHelper"&gt;PyDBHelper&lt;/a&gt;: a tool written in Python to find out 3NF in a relational schema and much more. I&amp;rsquo;ve written this to train myself in doing exercises in a correct way, but I haven&amp;rsquo;t spent time by writing high quality code. Then, the code could be really messy.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dag7dev/JSQuizee"&gt;JSQuizee&lt;/a&gt; : an engine for your quiz, written in Javascript in two days (or so). I&amp;rsquo;d like to make a better version!&lt;/li&gt;
&lt;li&gt;I attempted to modify a Game Boy by installing backlight and bivert modules, using some guides available on the internet. However, I&amp;rsquo;ve failed. I hope I will recover the main board a day&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All my other stuff is &lt;a href="https://github.com/dag7dev"&gt;available on Github&lt;/a&gt;!&lt;/p&gt;
&lt;h2 id="-videogames"&gt;🎮 Videogames&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve played and (tried from friends) a lot of videogames. Because I started to track everything, I could safely say that 2021 has been the year where I played videogames more in my entire life, even if I have no memories of my precedent years (only a period).&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve played many titles, but the honorable mention goes to &lt;a href="https://en.wikipedia.org/wiki/Mystery_Dungeon:_Shiren_the_Wanderer"&gt;Shiren The Wanderer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I love dungeon games like Shiren, they&amp;rsquo;re hard, with a pure exploration and strategy backgrond, and they have a story (more or less defined).&lt;/p&gt;
&lt;p&gt;If you have some extra money, you could think about the &lt;a href="https://store.steampowered.com/app/1178790/Shiren_the_Wanderer_The_Tower_of_Fortune_and_the_Dice_of_Fate/"&gt;Shiren for pc on steam&lt;/a&gt; I didn&amp;rsquo;t know they did a version for pc too.&lt;/p&gt;
&lt;h2 id="-closing-links"&gt;🔗 Closing Links&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;When you are faced with two decisions, tosses a coin. Not because it will make the right choice for you, but because the exact moment when the coin is in the air, suddenly you’ll know what you’re hoping. - Bob Marley&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://constantrenewal.com/the-knowledge-illusion/"&gt;Constant Renewal - The knowledge illusion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://moretothat.com/the-nothingness-of-money/"&gt;More To That - The Nothingness of money&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://moretothat.com/the-many-worlds-of-enough/"&gt;More To That - The Many Worlds of enough&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=wk9L1N9bRRE"&gt;Vincent Van Gogh&amp;rsquo;s The Starry Night: Great Art Explained&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kottke.org/21/05/a-map-of-the-internet-2021"&gt;A Map of the Internet 2021&lt;/a&gt;: definitely one of the best incredible pieces I&amp;rsquo;ve ever seen&lt;/li&gt;
&lt;li&gt;&lt;a href="https://xkcd.com/2468/"&gt;XKCD - Inheritance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/c/insaneintherainmusic"&gt;InsaneInTheRain&lt;/a&gt; who quit from being a content creator this year. Carlos was one of the best cover maker on Youtube. Wish you the best!&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/c/NovaLectio/videos"&gt;A lot of videos from this italian youtuber, Nova Lectio&lt;/a&gt; - who talks about history and geography, about China, Thailand, Cuba and a lot of other interesting topics.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>The Impossible life of a secondary screen unowner</title><link>https://dag7.it/posts/second-screen-android/</link><pubDate>Tue, 07 Dec 2021 15:00:00 +0100</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/second-screen-android/</guid><description>&lt;h2 id="recipe-for-the-perfect-productivity"&gt;Recipe for the perfect productivity&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/product.jpg" alt="Our ideal desk&amp;hellip; ha-ha, nice joke"&gt;&lt;/p&gt;
&lt;p&gt;Working on anything these days require more and more focus to achieve something. We are constantly bombarded by information, music, pictures, stuff to do, and so on.&lt;/p&gt;
&lt;p&gt;But luckily for us, we&amp;rsquo;ve been living in an era where simplifying things has become a little more common than in the past.
We&amp;rsquo;re able to automate many tasks nowadays, such as creating automatic routines when we wake up by turning on the lights at some time in the morning or by automatically forwarding emails from one address to another one.&lt;/p&gt;
&lt;p&gt;We still haven&amp;rsquo;t found a way to create anything from the dust. We would need to have a way to extract materials, a processing machine which would create a specific material, an assembling machine and so on&amp;hellip; to make it short, if we want something, we can&amp;rsquo;t produce it on our own.&lt;/p&gt;
&lt;h2 id="productivity-dilemma---virtual-desktop-or-multi-monitor"&gt;Productivity dilemma - virtual desktop or multi-monitor?&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/multimonitor.jpg" alt="An ideal multi-monitor view"&gt;&lt;/p&gt;
&lt;p&gt;According to a study from the University of Utah [^1], multiple-monitor configurations increase productivity by 10% and reduce errors by 33%&lt;/p&gt;
&lt;p&gt;Then what&amp;rsquo;s the problem with virtual desktops?
Well, you have one monitor. It means that you will be more error-prone in opening applications you don&amp;rsquo;t want on a desktop rather than another one, you will feel messy because of the disorder you&amp;rsquo;ve created.&lt;/p&gt;
&lt;p&gt;You could split as you prefer your workspaces, but you will find out that there always is a considerable number of windows opened, and if you don&amp;rsquo;t remember where your things are, you are messed up.&lt;/p&gt;
&lt;p&gt;Additionally, you can&amp;rsquo;t make a side-to-side comparison, which, for my taste, it is an essential task to perform.&lt;/p&gt;
&lt;p&gt;What to do then?&lt;/p&gt;</description></item><item><title>Linux Day 2021</title><link>https://dag7.it/posts/lday-2021/</link><pubDate>Tue, 09 Nov 2021 21:58:38 +0100</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/lday-2021/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Do I even know where I found the time to get involved with Linux Day this year? It has been an unique experience, as every event I partecipate.&lt;/p&gt;
&lt;p&gt;I mean, I&amp;rsquo;ve been really busy this period with stuff and things to do&amp;hellip; but, after all, I have found some time to share my experience.&lt;/p&gt;
&lt;p&gt;Ladies and gentleman, I&amp;rsquo;m glad to present&amp;hellip; Disconnected!&lt;/p&gt;
&lt;p&gt;Before proceeding: this talk is in Italian. Perhaps, I am going to write down a transcript in English. It is not 1:1, but it should explain pretty well what I wanted to share.&lt;/p&gt;
&lt;h2 id="about-the-experience"&gt;About the experience&lt;/h2&gt;
&lt;p&gt;Talking in front of a webcam is not so easy as you may think: sure you will used to do it, but it&amp;rsquo;s strange because all that interactive part with the people get lost so you feel a little bit uncomfortable, like you&amp;rsquo;re talking to yourself.&lt;/p&gt;
&lt;p&gt;It has been an experience, of course, but it&amp;rsquo;s strange. However, I would reccomend it, since you don&amp;rsquo;t have all eyes on you.&lt;/p&gt;
&lt;h2 id="the-talk---disconnected"&gt;The Talk - Disconnected&lt;/h2&gt;
&lt;h3 id="abstract"&gt;Abstract&lt;/h3&gt;
&lt;p&gt;We all live in an interconnected world, where information becomes personal (so more important); in the field of social relations, we are used to receive answers from anyone in a few hours and we live in the gluttony of likes and shares.&lt;/p&gt;
&lt;p&gt;The objective of this speech, will be to make people more aware of the time spent in front of a screen, illustrate the experiment &amp;ldquo;Disconnected&amp;rdquo; and present tools and solutions to monitor the time spent with technology.&lt;/p&gt;
&lt;h2 id="the-talk"&gt;The talk&lt;/h2&gt;
&lt;h3 id="introduction---tim-berners-lee-quote"&gt;Introduction - Tim Berners Lee Quote&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;“The original idea of the web was that it should be a collaborative space where you can communicate through sharing information.” -Tim Berners Lee&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I put a beautiful quote from Tim Berners Lee, one of the fathers of the internet, this is linked to a great question: what about us? how connected are we in everyday life?
Connection can have many meanings: social connections, understood as, to use an English term &amp;ldquo;peer&amp;rdquo;, that is, having relationships with people we surround ourselves with; physical connections with objects, connection as dependence, bond &amp;hellip; but for a moment let&amp;rsquo;s put aside these interpretations and let&amp;rsquo;s focus on web connections: &lt;strong&gt;every day we are literally in contact with connections of different types&lt;/strong&gt;, such as social networks or real-time messaging services.
Every day we talk and try to have different social interactions;&lt;/p&gt;
&lt;p&gt;You are going to tell me &amp;ldquo;everything is beautiful, but what are we going to talk about today?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;And you&amp;rsquo;re right, I&amp;rsquo;ll tell you right away: today&amp;rsquo;s talk is mostly a chat: we will talk about connections, about Disconnected, an experiment that I did and that I invite you to do, and about solutions to make your life more productive and carefree .&lt;/p&gt;
&lt;p&gt;But let&amp;rsquo;s start with the data: the protagonists of this year&amp;rsquo;s Linux Day.&lt;/p&gt;
&lt;h3 id="data"&gt;Data&lt;/h3&gt;
&lt;p&gt;So, let&amp;rsquo;s take Whatsapp as a case.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/lday21/output-03.jpg" alt="Whatsapp Data"&gt;
Will Cathcart, the head of Whatsapp (and not only him), says that &lt;a href="https://twitter.com/wcathcart/status/1321949078381453314"&gt;100 billion were reached in 2020&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/lday21/output-04.jpg" alt="Telegram Data"&gt;
We also take telegram data from the official blog: &lt;a href="https://telegram.org/blog/15-billion"&gt;15 billion were reached in 2016&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Among other things, the blog is really beautiful, it has really original illustrations and you can see that they invest time and resources in it.&lt;/p&gt;
&lt;p&gt;Where does this data go? To who? And are they just IM&amp;rsquo;s? Obviously there is more: let&amp;rsquo;s go and discover it together.&lt;/p&gt;
&lt;p&gt;Now let&amp;rsquo;s try to think: &lt;strong&gt;how much time do we spend every day on social media and on the various platforms? How long do we use our phone or computer to do a certain action? And how much time do we spend doing this action?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;These are not simple questions, does anyone want to hazard any number?&lt;/p&gt;
&lt;p&gt;The specific questions are: &amp;ldquo;how much time do we spend on social networks per day&amp;rdquo; and &amp;ldquo;how long do we use the phone in the course of a day&amp;rdquo;&lt;/p&gt;
&lt;h3 id="the-truth"&gt;The truth&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/lday21/output-07.jpg" alt="Some interesting statistics"&gt;&lt;/p&gt;
&lt;p&gt;Some interesting links:
&lt;a href="https://www.statista.com/statistics/433871/daily-social-media-usage-worldwide/"&gt;Daily social media usage worldwide&lt;/a&gt; and &lt;a href="https://www.statista.com/statistics/1224510/time-spent-per-day-on-smartphone-us/"&gt;time spent per day on smartphone in the US&lt;/a&gt;: from 3 to 4 hours&lt;/p&gt;
&lt;p&gt;As you can see, &lt;strong&gt;we spend about 4 hours, of which 2 on social networks.&lt;/strong&gt;
A considerable time, considering that the day is divided into 24 hours in which we use 8 to work, 8 to sleep, and the remaining 8, 4 on the phone.&lt;/p&gt;
&lt;p&gt;The point is: &lt;strong&gt;we spend a good part of the day at the phone without even realizing it&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;You will agree with me that many things can be done in those hours.&lt;/p&gt;
&lt;h3 id="what-disconnected-is"&gt;What Disconnected is&lt;/h3&gt;
&lt;p&gt;Now I would like to introduce you to &amp;ldquo;Disconnected&amp;rdquo;, which by the way is the name of the talk.
Disconnected is an experiment that I conducted on myself from March 20 to April 4.&lt;/p&gt;
&lt;p&gt;A bit of context: I don&amp;rsquo;t know how many of you know (or maybe they are all university students who knows, I explain briefly), the university is divided into semesters.&lt;/p&gt;
&lt;p&gt;Each semester has dates for taking the exams.&lt;/p&gt;
&lt;p&gt;In the winter session, the exams are held in January and February; when I started the experiment I had returned from an almost disastrous exam session and I had not rested at all.&lt;/p&gt;
&lt;h3 id="what-happened"&gt;What happened?&lt;/h3&gt;
&lt;p&gt;Eh, an excellent question: I asked myself that too. Practically I completely lost interest in everything related to the university world.
That is, I was almost wasting a year and a half of work.&lt;/p&gt;
&lt;p&gt;When I realized it I was obviously in panic: I could not understand, because after a year and a half of work this change of will had happened overnight.&lt;/p&gt;
&lt;p&gt;Initially I had decided not to go to university anymore and not to take any more exams: so far, you say, all is well. So to speak eh, but all good.
If it weren&amp;rsquo;t for the fact that about three days later, I can say &amp;ldquo;woke up&amp;rdquo; and I realized that I was spending a good part of the day on the phone.
Not the usual four hours, but many, many more!&lt;/p&gt;
&lt;p&gt;The day I &amp;ldquo;woke up&amp;rdquo; I decided to do this experiment: I would have been without a phone for two weeks, and if I would have liked it and it would not have been too much of a problem, then I would have continued.&lt;/p&gt;
&lt;p&gt;Ah, obviously I hadn&amp;rsquo;t solved the &amp;ldquo;university problem&amp;rdquo;, but then we get there, now it&amp;rsquo;s not important.&lt;/p&gt;
&lt;h3 id="the-rules"&gt;The Rules&lt;/h3&gt;
&lt;p&gt;The rules I imposed on myself were the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;do not use telephone or pc except when strictly necessary
&lt;ul&gt;
&lt;li&gt;otp managers&lt;/li&gt;
&lt;li&gt;pwd manager&lt;/li&gt;
&lt;li&gt;maps&lt;/li&gt;
&lt;li&gt;mobility app&lt;/li&gt;
&lt;li&gt;urgent calls and text messages&lt;/li&gt;
&lt;li&gt;login or use of university services&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;every IM and social app had to be uninstalled
&lt;ul&gt;
&lt;li&gt;telegram, online backup&lt;/li&gt;
&lt;li&gt;other apps: local backup&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;exception: Signal, as few contacts had it and I needed to communicate with certain people (mostly family members), it also acts as an app to manage SMS youtube and similar are prohibited (except for any study purposes)&lt;/li&gt;
&lt;li&gt;calls and sms allowed (both those, who still use them in 2021 :D)&lt;/li&gt;
&lt;li&gt;it is forbidden to play (both video games and board games) or watch movies and TV series&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="what-happened-2"&gt;What happened #2&lt;/h3&gt;
&lt;p&gt;In the period between March 20 and April 4, I was almost &amp;ldquo;socially isolated&amp;rdquo; from the world of the Internet.&lt;/p&gt;
&lt;p&gt;Two things were very surprising:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Although I could do a little research, listen to music etc etc, I didn&amp;rsquo;t;&lt;/strong&gt; the daily activity of my phone had been reduced to &lt;strong&gt;20 minutes&lt;/strong&gt;. I let you imagine how often I charged the battery&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;I was completely bored.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The second point is fundamental, and at least in my case it made me come to a conclusion: when we are bored, &lt;strong&gt;we use the telephone to fill that &amp;ldquo;void&amp;rdquo; that boredom leaves us&lt;/strong&gt;. It entertains us, immerses us in real and non-real worlds, makes us feel part of our little part of that world and we continue to use it for the simple fact that it is an infinite source of entertainment.&lt;/p&gt;
&lt;p&gt;Analogous speech for the computer, except that we prefer the telephone for a matter of immediacy and speed.&lt;/p&gt;
&lt;h3 id="the-long-journey"&gt;The long journey&lt;/h3&gt;
&lt;p&gt;After three days of &amp;ldquo;boredom&amp;rdquo; and the thought that &amp;ldquo;oh let me check a message !; ah no, I can&amp;rsquo;t &amp;ldquo;, which was not so boring because I was completely immersed in my thoughts, I began to reflect clearly on the university problem, managing to come to the conclusion that perhaps I had to change myself; &lt;strong&gt;not having planned anything and not having a good method of taking notes were the causes.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not here to tell you this, I have already written a small section on this blog, and maybe in the future I will talk about notes &lt;a href="https://dag7.it/random-learning-journal-1/#two-books-in-a-month-seriously"&gt;(btw, check out this link if you&amp;rsquo;re interested about how I changed my way to approciate notes)&lt;/a&gt;, that what I can tell you is that after having devoured those books in just a few days, I resumed planning and studying for the university with enthusiasm and motivation.&lt;/p&gt;
&lt;h3 id="and-the-phone"&gt;And the phone?&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/lday21/output-13.jpg" alt="Uh, Drake?"&gt;
Well, the phone was there: I used it for the important tasks I mentioned earlier; there were four or five people who texted me to find out what happened to me (I hadn&amp;rsquo;t warned anyone, I had left without warning from any application) and every now and then in the evening it happened to chat with someone, but really little.&lt;/p&gt;
&lt;h3 id="results"&gt;Results&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/lday21/output-14.jpg" alt="Results are clear: focus has drastically increased"&gt;
This experiment brought positive effects in every aspect: I was &lt;strong&gt;able to remember what I did or read&lt;/strong&gt;, I had &lt;strong&gt;greater concentration&lt;/strong&gt; and I was &lt;strong&gt;able to concentrate much more on the actions I was doing&lt;/strong&gt;, I was a &lt;strong&gt;volcano of ideas (each time I had a different idea in mind on any topic)&lt;/strong&gt; and in general &lt;strong&gt;I felt calmer&lt;/strong&gt;, so much so that the last day, the 4th, Easter day, I didn&amp;rsquo;t want to turn on and reinstall the apps on the phone anymore. I was really fine.&lt;/p&gt;
&lt;p&gt;But I decided to reinstall everything anyway: &lt;strong&gt;some things cannot be avoided, especially when you are part of groups that manage&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In two weeks a lot of things happen; I let you imagine the amount of notifications that day, between two-week-old messages and Easter greetings.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The notifications have almost a feel-good effect&lt;/strong&gt; that I was not aware of in the slightest.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://sitn.hms.harvard.edu/flash/2018/dopamine-smartphones-battle-time/"&gt;This article on Harvard&amp;rsquo;s Website&lt;/a&gt; shows off that there is a correlation between dopamine and notification. I was really blown away, it&amp;rsquo;s amazing.&lt;/p&gt;
&lt;p&gt;What about you? Would you ever be able to do such an experiment, even for just a week?&lt;/p&gt;
&lt;h2 id="video-and-slides"&gt;Video and slides&lt;/h2&gt;
&lt;p&gt;Slides: &lt;a href="https://dag7.it/pdf/slides/2020_linuxday_ita.pdf" title="Linux Day 2021 Slide ita dag7"&gt;Italian version&lt;/a&gt; &lt;a href="https://dag7.it/pdf/slides/2020_linuxday_eng.pdf" title="Linux Day 2021 Slide eng dag7"&gt;English version&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Video (Italian only):
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Gd9aEE-xX9Q?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;
&lt;/p&gt;</description></item><item><title>Git Branch to Fork</title><link>https://dag7.it/posts/local-branch-to-fork/</link><pubDate>Wed, 29 Sep 2021 01:46:06 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/local-branch-to-fork/</guid><description>&lt;p&gt;Welcome to Git Hell, my publication about the hell of Git and how to get away with it.&lt;/p&gt;
&lt;p&gt;Sit back, relax, and get angry with me.&lt;/p&gt;</description></item><item><title>Wonderful Templates</title><link>https://dag7.it/posts/wonderful-templates/</link><pubDate>Sun, 05 Sep 2021 01:35:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/wonderful-templates/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Welcome to CSS jungle, we&amp;rsquo;ve got tags and divs / We got everything you want honey, we know the links&lt;br&gt;
We are the people that can style whatever you may need / If you agree the CSS rules, we got your properties
— &lt;!-- raw HTML omitted --&gt;Welcome to CSS Jungle[^1]&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What you just read, it&amp;rsquo;s been taken from a famous Guns n&amp;rsquo; Roses song. It is nothing more than a frontend developer parody of the famous song &amp;ldquo;Welcome to the jungle&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Well, it perfectly describes how I felt when I was dealing with CSS: imagine being in the Tarzan&amp;rsquo;s Jungle, but instead of lianas you have tags.&lt;/p&gt;
&lt;p&gt;Note that this article has been written &lt;strong&gt;after&lt;/strong&gt; modifying the template: this means that the process may have been slightly changed to simplify code.&lt;/p&gt;
&lt;h2 id="context"&gt;Context&lt;/h2&gt;
&lt;p&gt;As you may (or may not) know, I&amp;rsquo;ve changed the design of my website several times: this is because I&amp;rsquo;ve been undecided in the past, and I tried to figure out what was the best layout and the best features for a website.&lt;/p&gt;
&lt;p&gt;The reason behind this is really simple: I never found a perfect template that was complaining about my needs.
And this time is not an exception: the template I&amp;rsquo;ve been using was missing two basic things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a nice font&lt;/li&gt;
&lt;li&gt;social / contact icons: those icons you see on some websites which let people contact you&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The template I used is really beautiful, but this time, it was different: I was really up to change the template to comply with my needs.
This means that, if I had found a way to implement some icons in the left sidebar with a href, the template would have been suitable for me.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s get this done!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-plan"&gt;The plan&lt;/h2&gt;
&lt;p&gt;Indeed, there are some steps that I thought were ok to follow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;figure out &lt;strong&gt;where&lt;/strong&gt; is the left sidebar&lt;/li&gt;
&lt;li&gt;figure out &lt;strong&gt;how&lt;/strong&gt; it is defined&lt;/li&gt;
&lt;li&gt;find a way to take &lt;strong&gt;parameters from config.YAML&lt;/strong&gt; &amp;ndash; we will talk about it later&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;fetch&lt;/strong&gt; an image about a &lt;strong&gt;social brand&lt;/strong&gt;, possibly an icon (without blaming too many people and wasting too much time)&lt;/li&gt;
&lt;li&gt;find a way to &lt;strong&gt;link YAML parameters and the image with a href&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;conditional image&lt;/strong&gt;: if YAML parameters are not defined, the image must not be rendered&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;style and load CSS&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Hello World</title><link>https://dag7.it/posts/2021-08-31-hello-world/</link><pubDate>Tue, 31 Aug 2021 22:04:35 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/2021-08-31-hello-world/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;A star is reborn&amp;hellip;guess what? I&amp;rsquo;ve changed my website, one more time.&lt;/p&gt;
&lt;p&gt;And this time, since I don&amp;rsquo;t want to waste too much time choosing a layout, I&amp;rsquo;m going to focus on content and consistency instead of wasting time choosing a template (or even worse: not having a website).&lt;/p&gt;
&lt;p&gt;Well, if you&amp;rsquo;re new, welcome, if you&amp;rsquo;re an old visitor, welcome back!&lt;/p&gt;
&lt;h2 id="purpose-of-this-post"&gt;Purpose of this post&lt;/h2&gt;
&lt;p&gt;As I&amp;rsquo;ve told the internet a million times, this is a place for me to blog about me and my projects. It will be a showcase, but it&amp;rsquo;s meant to be semi-professional.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t really know where this will go, but I&amp;rsquo;m sure this could be the way to go!&lt;/p&gt;
&lt;p&gt;-Love, Dag&lt;/p&gt;</description></item><item><title>Arch DAG Powered</title><link>https://dag7.it/posts/arch-dag-powered/</link><pubDate>Sun, 29 Aug 2021 15:00:00 +0100</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/arch-dag-powered/</guid><description>&lt;p&gt;&lt;img src="https://cdn-images-1.medium.com/max/800/0*rG-6AFsawt28igda" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@isaactanlishung?utm_source=medium&amp;amp;utm_medium=referral"&gt;Isaac Li Shung Tan&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What about having a fully working Arch Installation - on your machine? Well, it always has been my dream since the first Arch installation ever.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dag7.it/arch-guide"&gt;As I told you here&lt;/a&gt;, I installed Arch on a specific computer, so I have carefully chose my packages.&lt;/p&gt;
&lt;p&gt;These packages are in addition to the packages I&amp;rsquo;ve already installed in that guide:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;intel-ucode nvidia vlc firefox discord telegram-desktop alsa thunar gcc htop i3 lxappearance ntfs-3g wget picom powertop redshift git xdg-user-dirs xclip maim tree xorg neofetch base-devel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Close encounters of third kind</title><link>https://dag7.it/posts/arch-guide/</link><pubDate>Sun, 22 Aug 2021 10:00:00 +0100</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/arch-guide/</guid><description>&lt;p&gt;&lt;img src="https://miro.medium.com/max/1400/0*L95nrQlgir8mWlhi.gif" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Have you ever wondered about &lt;strong&gt;installing Arch in your system&lt;/strong&gt;? I’ll give you the answer: &lt;em&gt;yes!&lt;/em&gt; — that’s why you are here probably, but in case you are not here for installing Arch, keep reading, you are welcome!&lt;/p&gt;
&lt;p&gt;Well, it’s not so complicated as many people could think, even if it may be frustrating, I am going to illustrate you &lt;strong&gt;my own way to install it&lt;/strong&gt; among your primary operating system.&lt;/p&gt;
&lt;p&gt;But first let me give a little bit of context: I am used to use Windows just for some tasks and use Linux for every other task that are not heavy on the RAM and CPU load (gaming, video editor and all these kind of stuff).&lt;/p&gt;
&lt;p&gt;Many of you perfectly know that &lt;strong&gt;the perfect Linux version doesn’t exist&lt;/strong&gt;: each of uses its own distro, usually novices go for Ubuntu.&lt;/p&gt;
&lt;p&gt;Personally I really like to experience new things: for this reason I tend to change my main Linux distro every time I get bored of it.&lt;br&gt;
Is it matter of WM? Is it matter of DE?&lt;/p&gt;
&lt;p&gt;Well, this is another story I’d love to tell you another time, let’s start!&lt;/p&gt;
&lt;p&gt;For short, my current configuration is the canonical &amp;ldquo;Windows in the first partition and Linux in the second one&amp;rdquo; even if I use Linux more than Windows, we will later discuss this point.&lt;/p&gt;</description></item><item><title>RLJ #1</title><link>https://dag7.it/posts/rlj1/</link><pubDate>Fri, 14 May 2021 10:00:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/rlj1/</guid><description>&lt;hr&gt;
&lt;p&gt;It&amp;rsquo;s always a mess to &lt;strong&gt;start something you never did before&lt;/strong&gt;; you could start in the right way, or in the wrong way, but the point is: you must start if you really want to do that thing.&lt;/p&gt;
&lt;p&gt;So here I am!&lt;/p&gt;
&lt;p&gt;Welcome to my &amp;ldquo;&lt;strong&gt;Random Learning&lt;/strong&gt; &lt;del&gt;super cool full of random stuff and things that barely could interest you but I will post them as well ah-ah it&amp;rsquo;s your problem now if you proceed reading&lt;/del&gt; &lt;strong&gt;Journal&lt;/strong&gt;&amp;rdquo; series!&lt;/p&gt;
&lt;p&gt;But before spreading everything I learned this month, telling about what was on my mind and so on, I&amp;rsquo;d like to talk about what is a learning journal (and most importantly: why on earth I chose the word &lt;strong&gt;&amp;ldquo;random&amp;rdquo;&lt;/strong&gt;).&lt;/p&gt;
&lt;p&gt;A learning journal, in general, is a &lt;em&gt;-wow, I am the king of being original-&lt;/em&gt; journal, where you could write about what have you learned about something, but it could be about your &lt;strong&gt;thoughts&lt;/strong&gt;, your &lt;strong&gt;notes&lt;/strong&gt; about an &lt;strong&gt;argument&lt;/strong&gt; in particular, and so on. It is like a vegetable soup, but &lt;strong&gt;it tells about yourself, your vision, and most importantly what you have learned&lt;/strong&gt;. Maybe it&amp;rsquo;s not the most beautiful comparison, but it should effectively work.&lt;/p&gt;
&lt;p&gt;Usually, many people write this kind of stuff monthly, but it is up to a specific person when, how and what to write.&lt;/p&gt;
&lt;p&gt;Now let&amp;rsquo;s find out why I chose the &amp;lsquo;random&amp;rsquo; adjective: &lt;strong&gt;I am a little bit forgetful&lt;/strong&gt;, I don&amp;rsquo;t remember a lot of stuff; furthermore, sometimes I don&amp;rsquo;t feel up to do things that are needed in order to produce stuff.&lt;/p&gt;
&lt;p&gt;For this reason, I chose the &amp;lsquo;random&amp;rsquo; adjective, it sums up exactly what I just wrote. In fact, sometimes, &lt;strong&gt;I could forget about writing a monthly journal&lt;/strong&gt;, so, when I will feel up to write a new post, I will write it here.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s kinda a tricky reminder for my mind: I should monthly produce my journal, but I feel more relaxed telling myself &amp;ldquo;I will do whenever I want&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;After this long introduction&amp;hellip;let&amp;rsquo;s start!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="lost-in-google"&gt;❓Lost in Google&lt;/h2&gt;
&lt;p&gt;Have you ever tried to search &amp;ldquo;Google&amp;rdquo; on &amp;ldquo;Google&amp;rdquo;?&lt;/p&gt;
&lt;p&gt;This was the catchphrase of the series &lt;a href="https://www.youtube.com/watch?v=Jul_dB_wZes"&gt;Lost In Google&lt;/a&gt;, a wonderful sci-fi show, in Italian, that tells about what could happen if you try to search &amp;ldquo;Google&amp;rdquo; on &amp;ldquo;Google&amp;rdquo;. During this show many things will come up: people get lost, famous people who pop out and help the main characters&amp;hellip; if you&amp;rsquo;re Italian or are you trying to learn Italian &lt;strong&gt;THIS IS FOR YOU!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Anyway, I was literally &amp;ldquo;lost in Google&amp;rdquo;: I love to search and discover new things, but this time it was different. Nothing was more interesting than researching things.&lt;br&gt;
Since I am still studying on my own things, not limited to academic purposes, I was trying to discover how to take notes in a better way; it&amp;rsquo;s been a long time since I began this kind of research, but at a certain point thanks to a friend of mine I discovered a new tool: &amp;ldquo;&lt;strong&gt;Roam&lt;/strong&gt;&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Flutter Espresso 2020</title><link>https://dag7.it/posts/flutter-espresso/</link><pubDate>Tue, 17 Nov 2020 19:47:50 +0000</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/flutter-espresso/</guid><description>&lt;p&gt;&lt;img src="https://dag7.it/img/caffettiera.png" alt="the magic coffee pot"&gt;&lt;/p&gt;
&lt;p&gt;After some time I finally return in my blog to write some stuff!&lt;/p&gt;
&lt;p&gt;So, any of my readers know Flutter?&lt;/p&gt;
&lt;p&gt;Flutter is a wonderful framework (which is a group of libraries and tools to build used by programmers to build application in a easier and faster way), developed by Google starting from 2017, open source which let you build cross-platform application between Android and iOS using just one code written in Dart.&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;With Flutter you can also build other than iOS and Android apps, some web applications which it will be executed online (PWA).&lt;/p&gt;
&lt;p&gt;Actually Flutter Web is in a beta stage, but in future it will be probably added to the latest available branch (the release one).&lt;/p&gt;
&lt;p&gt;On 13 of November, I had a talk with &lt;a href="https://flutteritalia.dev"&gt;flutteritalia.dev&lt;/a&gt;&amp;rsquo;s guys: we had our first online event (it is the title of this ): Flutter Espresso!&lt;/p&gt;
&lt;p&gt;Flutter Espresso is a space where you can have your own talk about the argument who you like most: if you want to have a space inside this&amp;hellip;space, yes, you could have it! Obviously your talk must be about something Flutter-related!&lt;/p&gt;
&lt;p&gt;Flutter use a cute thing: Widgets. Everything is a widget, exactly like puzzle pieces or LEGOs. No matter what you are going to do, the important part is about finding the correct pieces and to build something, like you should do daily.&lt;/p&gt;
&lt;p&gt;You can watch the talk in Italian &lt;a href="https://youtu.be/k5zTOaG90mY"&gt;on my official channel&lt;/a&gt;, or on &lt;a href="https://www.youtube.com/watch?v=6FUyDjAilGQ&amp;amp;t=240s"&gt;the official FlutterItalia channel&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What&amp;rsquo;s the name of the talk? #IntroFlutter - an introduction from beginner to beginner&lt;/p&gt;
&lt;p&gt;This talk speaks about an introduction for novices, made by a beginner: I am not a master of Flutter despite of what I am talking about and I am a novice as well.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s face the truth: nobody knows how to properly do every single thing we know in our entire life. We can&amp;rsquo;t stop to learn and to get better with everything new or not new learnt&amp;hellip;&lt;/p&gt;
&lt;p&gt;Slides here in Italian: &lt;a href="https://dag7.it/pdf/slides/2020_flutterespresso.pdf"&gt;#IntroFlutter - an introduction from beginner to beginner&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Bye!&lt;/p&gt;</description></item><item><title>Common Voice at Linux Day 2020</title><link>https://dag7.it/posts/lday-2020/</link><pubDate>Tue, 27 Oct 2020 18:23:01 +0100</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/lday-2020/</guid><description>&lt;p&gt;Finally the day has come: Linux Day 2020! I could imagine a lot of people who gathers and&amp;hellip;haha, nice joke!&lt;/p&gt;
&lt;p&gt;This time, Linux Day 2020 has been strange: first of all because it wasn&amp;rsquo;t attended in presence but online, and every talk has been recorded.&lt;/p&gt;
&lt;p&gt;On one hand this thing is so useful: to have something recorded is always a good idea, especially when we talk about small projects where, very often, the documentation about that project doesn&amp;rsquo;t exist or it is poor.&lt;/p&gt;
&lt;p&gt;On the other hand we have missed an important part: human interactions and the possibility to meet new and old friends, face to face, in general.&lt;/p&gt;
&lt;p&gt;However, I am not here to talk about this, I want to talk about my experience: although I had recorded and uploaded my talk last minute, knowing that I wouldn&amp;rsquo;t had any problem regarding audio or video, I was really nervous during the video projection and I was doubtful if all the people would have understood the message or not.&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t had one hundred people (I counted one hundred) face-to-face, but in that moment I needed to be most clear possible to make sure that everybody would have understand.&lt;/p&gt;
&lt;p&gt;Luckily, the video has been broadcasted without problems and the talk has ended before my time slot: two people seemed to be really interested in this project (Common Voice) that asked me a couple of questions.&lt;/p&gt;
&lt;p&gt;Send me an email in case something it is not clear!&lt;/p&gt;
&lt;p&gt;By the way I forget to say what was the talk about: Common Voice - We Want Your Voice! a wonderful project by Mozilla available at &lt;a href="commonvoice.mozilla.org"&gt;commonvoice.mozilla.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Everything is in italian, slides &lt;a href="https://dag7.it/pdf/slides/2020_linuxday.pdf" title="Linux Day 2020 Slide dag7"&gt;here&lt;/a&gt;, video here:
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/mdunfPliNgQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;Ciao!&lt;/p&gt;</description></item><item><title>Programming on NES</title><link>https://dag7.it/posts/nes-programming/</link><pubDate>Fri, 25 Sep 2020 11:00:00 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/nes-programming/</guid><description>&lt;p&gt;It&amp;rsquo;s been a while since I have written here, the reasons because I haven&amp;rsquo;t been here are two:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I was really busy with life in this period&lt;/li&gt;
&lt;li&gt;I have been busy with fun activities, like playing videogames for example&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Retrogaming took me a lot of my time because there were some classic games that I needed to play.&lt;/p&gt;
&lt;p&gt;Each of us at some point in our lives has got a console, handheld or not, who got the Game Boy, who got the Nintendo 64, or PSP, or Xbox&amp;hellip;whatever. But you had fun!&lt;/p&gt;
&lt;p&gt;Have you ever wondered about how old Game Boy games used to be so tiny that you used to carry them around in your pocket in cartridges?&lt;/p&gt;
&lt;p&gt;Well, I did a lot of times when I was a child and I wasn&amp;rsquo;t a programmer: I was a stranger in that world; however bringing in that tiny cartridge a lot of worlds from Super Mario or Pokemon, it doesn&amp;rsquo;t matter which one, has always fascinated me.&lt;/p&gt;
&lt;p&gt;The question wasn&amp;rsquo;t just about the Game Boy but it was also about the NES: both of them use cartridges, and you need them to play games.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t know you, but I always dreamt about writing my own game or app, even if &amp;ldquo;simple&amp;rdquo; (no Pokemon :P) for Game Boy or NES&amp;hellip;&lt;/p&gt;
&lt;p&gt;Well, after a lot of hours digging Google I have finally found nesdoug&amp;rsquo;s blog &lt;a href="https://nesdoug.com/author/dougfraker/"&gt;here - take a look&lt;/a&gt; who explains how to create NES games using C language.&lt;/p&gt;
&lt;p&gt;I was so enthusiastic that I wanted to start (and end), all the resources were in the blog so I tried to find out a way to organize everything in a simple and elegant way.&lt;/p&gt;
&lt;p&gt;The result was&amp;hellip; a book: there is nothing better than learn how to program step-by-step by using a good programming book that teaches you the basics.&lt;/p&gt;
&lt;p&gt;Rust&amp;rsquo;s community (Rust is an interesting language, &lt;a href="https://rust-lang.org"&gt;https://rust-lang.org&lt;/a&gt;) has made a book to learn Rust, the original author in this case has made everything from scratch by himself but he did it in a manner which nobody can explain in such an easy way.&lt;/p&gt;
&lt;p&gt;I think it is one of the best guides on the internet about NES developing, it is simple and clear: &lt;a href="https://dag7.gitbook.io/nesdoug-nes-guide"&gt;judge by yourself&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And finally, I understood what is &amp;ldquo;VBlank&amp;rdquo;, thing which it is not so simple to explain because you are going to read a looooot of explanations which you are not going to fully understand.&lt;/p&gt;
&lt;p&gt;See ya!&lt;/p&gt;</description></item><item><title>TIM W-Cup Hackathon 2020</title><link>https://dag7.it/posts/tim-hackathon-2020/</link><pubDate>Tue, 07 Jul 2020 22:22:40 +0200</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/tim-hackathon-2020/</guid><description>&lt;blockquote&gt;
&lt;p&gt;If the code seems to be finished, then smile: you have not even started it&lt;/p&gt;
&lt;p&gt;— &lt;!-- raw HTML omitted --&gt;Me&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Finally, after many years I can participate in an important competition promoted by important associations and companies.&lt;/p&gt;
&lt;p&gt;I wished for years to participate in the Global Game Jam, at least two years, finally I participated in an important competition.&lt;/p&gt;
&lt;p&gt;This time the event was organized by Codemotion Team and Tim &lt;a href="https://www.wcap.tim.it/it/2020/06/tim-smart-spaces-hackathon"&gt;FIY: official event link&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The event took place from 2nd to 5th July, four days full of so much work and things to organize and to do but after all, each of us had fun.&lt;/p&gt;
&lt;p&gt;Without my team I can&amp;rsquo;t even imagine being there: they were essentials for the competition, we had a lot of a great time together
(in particular, the communication was so efficient between each of us) and despite moments of discouragement, we did it!&lt;/p&gt;
&lt;p&gt;When you have a lot of ideas floating in your mind, not every idea is feasible: you should do your researches and make some analysis:
we found ourselves in difficulty because we didn&amp;rsquo;t know what to present and, most importantly, HOW!&lt;/p&gt;
&lt;p&gt;The real thing was after a while when our mentors encouraged us to do more and to produce something: they were right? They were wrong?
It doesn&amp;rsquo;t matter: we everybody had a lot of fun and we worked as a REAL team.&lt;/p&gt;
&lt;p&gt;Hope to have fun again!&lt;/p&gt;
&lt;p&gt;Best of luck to me (and to us)!&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;&lt;a href="https://dag7.it/about-me"&gt;myself&lt;/a&gt;&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Terni Maker Faire 2019</title><link>https://dag7.it/posts/terni-2019/</link><pubDate>Sat, 30 Mar 2019 20:00:55 +0000</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/terni-2019/</guid><description>&lt;p&gt;30th March 2019.&lt;/p&gt;
&lt;p&gt;An important date to me: the first event where I was physically present in Mozilla Italia Community!&lt;/p&gt;
&lt;p&gt;I took part at Terni Maker Festival, an innovation and technology festival, as a speaker with Simone, on Mozilla IoT.&lt;/p&gt;
&lt;p&gt;After a long (not really) trip in a Trenitalia vagon (Trenitalia is an Italian railway company) with some random British English people I never met before but they made me laugh, the day started with me receiving the official Firefox T-Shirt.&lt;/p&gt;
&lt;p&gt;Wow, it&amp;rsquo;s geeky! It&amp;rsquo;s awesome!&lt;/p&gt;
&lt;p&gt;The hacklab was fulfilled with people, mostly kids but even young guys, and it was a pleasure to talk with some of them and explain to them what else Mozilla does.&lt;/p&gt;
&lt;p&gt;Despite kids, who have stolen all of our super-cool gadgets including some pins, we stocked up stickers and leaflets and our stand at this point looked like a battlefield!&lt;/p&gt;
&lt;p&gt;The day still hasn&amp;rsquo;t got over! It&amp;rsquo;s 3 p.m. and&amp;hellip;oh! It&amp;rsquo;s my turn! My first talk!&lt;/p&gt;
&lt;p&gt;We started effectively at 3.30 p.m. due to the issue related to the network connection and because not many people came, we decided to wait a little bit (that&amp;rsquo;s not actually true, the problem it was the demo!)&lt;/p&gt;
&lt;p&gt;It was exciting, I don&amp;rsquo;t talk often about this thing with a lot of people, but thanks to Simone and the power of the sticker we have not only spoken about Mozilla IoT but even explained what is Common Voice, another Mozilla project which &lt;a href="http://voice.mozilla.org"&gt;you should definitely give a try&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once the talk got over, we have back to our desk to say goodbye each other and to produce a small daily report (other than talking obviously).&lt;/p&gt;
&lt;p&gt;Some people demonstrate us which the subjects were cool while we were doing the talk but even when we were at the desk, and asked us many details on the Mozilla Browser and on Common Voice. Personally, I enjoyed so much in answering their questions!&lt;/p&gt;
&lt;p&gt;Some of them joined the official Mozilla Italia Telegram channel: this demonstrates which maybe Telegram was used in the past for limited public but today it is used not only from us but from many other people too!&lt;/p&gt;
&lt;p&gt;See you soon!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/2019-04-01-terni-maker-faire-2019/team.jpg" alt="Do you see the stand in the photo? Try to imagine the same desk at the end of the day."&gt; &lt;img src="https://dag7.it/img/2019-04-01-terni-maker-faire-2019/fflogo.JPG" alt="3d printed firefox logo"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/2019-04-01-terni-maker-faire-2019/gente.JPG" alt="some random folks"&gt; &lt;img src="https://dag7.it/img/2019-04-01-terni-maker-faire-2019/cartello.jpg" alt="sign leading to our space"&gt; &lt;img src="https://dag7.it/img/2019-04-01-terni-maker-faire-2019/banchetto.JPG" alt="cool swag"&gt;&lt;/p&gt;</description></item><item><title>Google Hash Code 2019</title><link>https://dag7.it/posts/hashcode-2019/</link><pubDate>Sun, 03 Mar 2019 22:25:52 +0000</pubDate><author>dag7+ifyourenotallmpleaseremovethis@protonmail.com (Dag)</author><guid>https://dag7.it/posts/hashcode-2019/</guid><description>&lt;p&gt;Today I wanna talk about Google Hash Code 2019, my first experience in a code challenge organized by&amp;hellip;Google!&lt;/p&gt;
&lt;p&gt;Cool huh? Why I suddenly joined?&lt;/p&gt;
&lt;p&gt;This all started from a great person, Aldo, who has sent in a Whatsapp group a link to this year hash code some days before the event.&lt;/p&gt;
&lt;p&gt;I was amazed&amp;hellip;I clicked the link: I never heard about Hash Code and this thing got me excited especially because it was organized by Google.&lt;/p&gt;
&lt;p&gt;That was only the beginning: I started calling some people to find out how to form a team and after many tries I realized that there were some days before the challenge. Cool uh?&lt;/p&gt;
&lt;p&gt;Finally, that day came (28th Feb), all people in my team got anxious because the precedent challenge was something definitely out of our knowledge.&lt;/p&gt;
&lt;p&gt;The competition started from 18.30 till 22.30 &amp;ldquo;just&amp;rdquo; four intensive coding hours.&lt;/p&gt;
&lt;p&gt;Personally, I think it was fun: working on source code with other 3 people at the same moment is not easy and see something which works when some people work together, this made me so satisfied.&lt;/p&gt;
&lt;p&gt;This isn&amp;rsquo;t enough: we have finished writing source code too but because of the loss of time we haven&amp;rsquo;t tested&amp;hellip; did I already said that it was &amp;ldquo;just&amp;rdquo; four hours?&lt;/p&gt;
&lt;p&gt;What language do we used? Good question, we don&amp;rsquo;t remember! I thought even about Rust, thinking about RustFest 2018, but this is another story&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dag7.it/img/2019-03-03-google-hash-code-2019/hash-2.jpg" alt="some cool swag"&gt; &lt;img src="https://dag7.it/img/2019-03-03-google-hash-code-2019/hash-1.png" alt="everybody in the room"&gt;&lt;/p&gt;</description></item></channel></rss>