<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>SnippetsAndTricks  Zen-Funk Panda</title>
    <link>https://panda.zenfunk.it/categories/snippetsandtricks/</link>
    <description>  SnippetsAndTricks  Zen-Funk Panda</description>
    <generator>Hugo</generator>
    <language>it</language>
    <lastBuildDate>Mon, 24 Aug 2026 00:00:00 +0200</lastBuildDate>
      <atom:link href="https://panda.zenfunk.it/categories/snippetsandtricks/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>DMA con smarthost: meglio tenere sincronizzati i due dma.conf</title>
      <link>https://panda.zenfunk.it/posts/snippetsandtricks/2026-08-24-dma-conf-globale-e-user/</link>
      <pubDate>Mon, 24 Aug 2026 00:00:00 +0200</pubDate>
      <guid>https://panda.zenfunk.it/posts/snippetsandtricks/2026-08-24-dma-conf-globale-e-user/</guid>
      <description>&lt;p&gt;Mi capitava apparentemente randomicamente che qualche notifica email non partisse e che mi restassero dei bounce in coda con dentro scritto che gli MX non rispondevano&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Conviene tenere sincronizzate le due copie della configurazione:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;/etc/dma/dma.conf&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;/usr/local/etc/dma/dma.conf&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;A seconda di come è stato installato o da quale uid/gid viene invocato &lt;code&gt;dma&lt;/code&gt; o &lt;code&gt;sendmail&lt;/code&gt; potrebbe non leggere la configurazione locale ma solamente quella globale, o viceversa.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>ALT&#43;centoventisei senza tastierino numerico</title>
      <link>https://panda.zenfunk.it/posts/2024-10-03-alt-e-centoventisei-powertoys/</link>
      <pubDate>Wed, 16 Oct 2024 00:32:48 +0200</pubDate>
      <guid>https://panda.zenfunk.it/posts/2024-10-03-alt-e-centoventisei-powertoys/</guid>
      <description>&lt;p&gt;ALT+centoventisei-del-tastierino-numerico. Perchè la &lt;strong&gt;tilde&lt;/strong&gt; serve anche su Windows se hai a che fare con sistemi unix-like&amp;hellip; anche che sia solo entrare in &lt;strong&gt;ssh&lt;/strong&gt; sul tuo mac e non dover scrivere tutto &lt;strong&gt;$HOME&lt;/strong&gt; se ti capita, o ti serve davvero. Ai tempi delle tastiere col tastierino numerico si faceva così e potevi digitare tutta la mappa caratteri di cui ti ricordavi a memoria il codice: &lt;strong&gt;126&lt;/strong&gt;, ricordo solo quello. Da qualche anno i tastierini numerici stanno scomparendo e senza-il-giochetto è impossibile da fare. Già, l&amp;rsquo;unica è copiare da qualche parte il singolo carattere ed incollarlo.&lt;/p&gt;&#xA;&lt;p&gt;Ho cercato qualche soluzione e Google mi ha subito suggerito un programmino-con-le-super-macro che ho diffidato di installare, così a naso. Non lo cito nemmeno perchè non l&amp;rsquo;ho provato nemmeno quando con la coda dell&amp;rsquo;occhio tra gli altri risultati ho intravvisto &lt;em&gt;PowerToys&lt;/em&gt;! Mizzica, una vita che non sentivo quel nome ne mi era capitato di riutilizzarle, dunque le ho &lt;del&gt;volute&lt;/del&gt; dovute provare.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;~&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;In verità avevo abbandonato qui a questo punto questo post qualche settimana fa, poi mi sono capitati un paio di brevi spostamenti di lavoro e non avevo granchè avuto bisogno di digitare la mia cara ed amata &lt;strong&gt;tilde&lt;/strong&gt;. In verità in questi ultimi tempi si è anche aggiunga la necessità di digitare il &lt;strong&gt;backtick&lt;/strong&gt; che il formato &lt;strong&gt;MarkDown&lt;/strong&gt; utilizza molto per i blocchi di testo fisso, fondamentali per appuntare codice.&lt;/p&gt;&#xA;&lt;p&gt;Dunque se pure voi avete una tastiera senza-tastierino-numerico che nemmeno lo rimappa lei col tasto &lt;em&gt;fn&lt;/em&gt; ad un blocco di lettere come altre tastiere&amp;hellip; installatevi i buoni e vecchi powertoys di Microsoft, andate su &lt;strong&gt;Gestione Tastiera&lt;/strong&gt; e &lt;em&gt;Modifica il mapping di un tasto di scelta rapida&lt;/em&gt;; io ho sparato il backtick ( ` ) con &lt;code&gt;alt+gr+apostrofo&lt;/code&gt; e la tilde ( ~ ) con &lt;code&gt;alt+gr+ì&lt;/code&gt;, ovvero così:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://panda.zenfunk.it/img-post/powertoy-backtick-tilde.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Rsync da MacOS ad una SDCard Android ed i caratteri accentati</title>
      <link>https://panda.zenfunk.it/posts/2024-08-23-rsync-mac-android/</link>
      <pubDate>Fri, 23 Aug 2024 19:03:14 +0200</pubDate>
      <guid>https://panda.zenfunk.it/posts/2024-08-23-rsync-mac-android/</guid>
      <description>&lt;p&gt;Il titolo è abbastanza esplicativo e chiunque abbia un po&amp;rsquo; di dimestichezza con i sistemi &lt;em&gt;*nix&lt;/em&gt; ed &lt;em&gt;rsync&lt;/em&gt; sa come fare. Fin quando uno non si ritrova a sincronizzare una cartella di MP3 da un MacBook ad una chiavetta USB per l&amp;rsquo;autoradio ed il povero &lt;strong&gt;Fabrizio de Andrè&lt;/strong&gt; o &lt;strong&gt;Gegè Telesforo&lt;/strong&gt; vengono sempre sovrascritti ed asfaltati come se nel frattempo i file fossero stati modificati&amp;hellip; ci vuole poco ad accorgersi che il motivo sono i caratteri accentati, un po&amp;rsquo; di più a risolverlo, decisamente troppo a comprendere come funzionano i &lt;code&gt;charset&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Già perchè alla fine ci abbiamo a che fare tutti da praticamente sempre con set di caratteri diversi tra sistemi operativi e piccole incompatibilità ed incongruenze. Mi aspettavo che &lt;strong&gt;Unicode&lt;/strong&gt; risolvesse queste cose ed invece mi sono ritrovato a dover far tradurre i nomi dei file da &lt;code&gt;UTF-8-MAC&lt;/code&gt; ad &lt;code&gt;UTF-8-MAC&lt;/code&gt;. Non so perchè ne come ma funziona:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;rsync -avrP $sorgente/ $destinazione/ --iconv=utf-8-mac,utf-8-mac&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Dimenticavo di dirvi che &lt;code&gt;rsync&lt;/code&gt; di MacOS non è nemmeno compilato col supporto &lt;code&gt;iconv&lt;/code&gt; e dovrete installarvelo con &lt;code&gt;brew&lt;/code&gt; od i &lt;code&gt;macports&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;E per farlo ancora più pulito ecco una &lt;em&gt;funzioncina&lt;/em&gt; da appendere a &lt;code&gt;.bash_aliases&lt;/code&gt; o &lt;code&gt;.zprofile&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;jb.sync () {&#xA;        rsync -avrP \&#xA;                --iconv=utf-8-mac,utf-8-mac \&#xA;                --exclude=Android/ --exclude=&amp;quot;.Spotlight*/&amp;quot; \&#xA;                --delete&#xA;                ~/Music/Music\ Library.musiclibrary/Storrage/Music/ /Volumes/Senza\ nome/&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</description>
    </item>
    <item>
      <title>WSL mirrored networking</title>
      <link>https://panda.zenfunk.it/posts/2023-11-21-wsl-mirrored/</link>
      <pubDate>Tue, 21 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2023-11-21-wsl-mirrored/</guid>
      <description>&lt;p&gt;Avevo appuntato questo articolo nella mia rassegna di Cose Interessanti di Ottobre 2023 per provare la modalità mirrored di WSL (ad oggi sperimentale), sopratutto a lavoro spesso mi sono ritrovato ad avere problemi di routing e raggiungibilità tra la rete di Hyper-V/WSL e la LAN tanto da desiderare di averlo a bridge: questa funzionalità lo è quasi, infatti si chiama mirrored e non bridged.&lt;/p&gt;&#xA;&lt;p&gt;Per abilitarla è necessario editare (o creare) il file .wslconfig nella $HOME di windows, il mio è così:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;jampibozz@optiflex:~$ cat /mnt/c/Users/jampibozz/.wslconfig&#xA;[experimental]&#xA;networkingMode = mirrored&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;e riavviare il sottosistema da cmd.exe con:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;c:\&amp;gt; wsl --shutdown&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Il mac address è uguale a quello della scheda di rete e non accetta connessioni in entrata dalla LAN, ho testato velocemente con netcat anche disabilitando il firewall di windows ma nulla: è ancora sperimentale e non mi va di smanettarci per ora, mi basta che per il resto funzioni e che possa semplificare le reti della mia workstation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;EDIT 23.09.2024&lt;/em&gt;: Funziona solo su &lt;code&gt;Windows 11&lt;/code&gt;, su Windows 10 credo non lo implementeranno ormai più.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Ceph su nodo singolo ProxMox (per test)</title>
      <link>https://panda.zenfunk.it/posts/2022-03-07-cephsinglenode/</link>
      <pubDate>Mon, 07 Mar 2022 00:00:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2022-03-07-cephsinglenode/</guid>
      <description>&lt;p&gt;Qualche anno fa avevo provato a fare su Virtualbox un cluster Proxmox di 3 nodi per smanettare con Ceph, ovviamente in virtuale le performance erano ridicole ma sono rimasto sorpreso dalla resilienza che Ceph può offrire se ben dimensionato. Più avanti ho testato con due nodi bare metal ma il fatto di avere solamente porte ethernet da 1 Gigabit lo rendeva davvero poco performante. Adesso ho 3 server che si stanno liberando ed uno switch SFP+ a 10 Gigabit e penso proprio che comprerò tre schede ethernet a 10 Gigabit e proverò seriamente ad implementarlo ma visto che dai primi test che ho citato sono passati più di 5 anni e siamo arrivati a Proxmox 7 ho deciso di smanettarci per capire meglio le varie configurazioni partendo da un singolo nodo.&lt;/p&gt;&#xA;&lt;p&gt;Ceph su un singolo nodo Proxmox è pressoché inutile tant’è che non funziona in una installazione pulita perchè giustamente ci si aspetta almeno un altro host dove effettuare le repliche, nonostante è possibile aggiungere ed inizializzare gli OSD e creare un pool questo non diviene mai operativo e lo storage non è utilizzabile. Ma facendo qualche ricerca ho trovato un &lt;em&gt;folle&lt;/em&gt; che spiega come e cosa modificare nella configurazione per far replicare sugli stessi OSD piuttosto che su un altro host. Non è semplicissimo se non si conosce Ceph ed infatti ho imparato un sacco di cose.&lt;/p&gt;&#xA;&lt;p&gt;E’ necessario decompilare la crush map di Ceph, modificare una riga, ricompilarla e settarla. Vediamo rapidamente come fare:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;ceph osd getcrushmap -o comp_crush_map.cm&#xA;crushtool -d comp_crush_map.cm -o crush_map.cm&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;editare crush_map.cm e modificare la riga&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;step chooseleaf firstn 0 type host&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;con&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;step chooseleaf firstn 0 type osd&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;e poi ricompilare e settare la crush map:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;crushtool -c crush_map.cm -o new_crush_map.cmceph osd setcrushmap -i new_crush_map.cm&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Così lo storage pool diverrà operativo e potrete divertirvi come scimmie ad installare qualcosa in una macchina virtuale e nel frattempo giocare a mettere In/Out/Up/Down i dischi per ore e vedere come reagisce ed opera Ceph: una figata!&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Switch NETONIX ed ERR_SSL_VERSION_OR_CIPHER_MISMATCH</title>
      <link>https://panda.zenfunk.it/posts/2022-02-17-netonix-err-ssl/</link>
      <pubDate>Thu, 17 Feb 2022 00:00:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2022-02-17-netonix-err-ssl/</guid>
      <description>&lt;p&gt;Mi stavo accingendo a controllare la configurazione di uno switch &lt;strong&gt;Netonix&lt;/strong&gt; up da un paio d’anni e mai aggiornato (perché non ha mai dato problemi e me ne sono dimenticato) e mi sono ritrovato su qualunque browser di fronte una schermata citante:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;ERR_SSL_VERSION_OR_CIPHER_MISMATCH&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Avevo sentito dire in questi anni che stavano aggiornando un po’ dappertutto la versione di TLS ma non me ne sono preoccupato sino ad oggi: brutta storia. Come fare? Di default il Netonix da accesso solo HTTPS e quello HTTP va esplicitato nella configurazione. Fortunatamente di default anche SSH é attivo (o l’ho attivato io e non me ne ricordo) dunque vediamo come abilitare l’accesso HTTP all’interfaccia di configurazione del nostro amato switch via ssh.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ ssh nomeutentescelto@xxx.yyy.zzz.www&#xA;&#xA;NTX-MZ-S# configure&#xA;NTX-MZ-S(config)# https-server allow-http&#xA;NTX-MZ-S(config)# exit&#xA;% Applying configuration...&#xA;Press ENTER to confirm configuration change. If you do not hit enter within 60 seconds the switch will revert to the previous configuration.&#xA;&#xA;NTX-CR# exit&#xA;% Quitting&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Fatto, adesso l’accesso HTTP é stato abilitato e sarà possibile accedere nuovamente all’interfaccia web. Il browser per la history forzerá HTTPS anche se togliete la ‘s’ da https:// ma con una nuova finestra anonima del browser vi fará entrare subito.&lt;/p&gt;&#xA;&lt;p&gt;Questo é successo mentre runnavo il firmare 1.5.2… nel forum ufficiale leggo che sono arrivati alla versione 1.5.10 (contenente la fix per TLS) ed addirittura alla 1.5.11 ma non consigliata per alcuni modelli. I Netonix sono switch poe favolosi e versatilissimi ma molto molto molto delicati, quindi credo che per adesso lavoreró alle modifiche che mi servono via HTTP e prima di effettuare qualsiasi aggiornamento firmware chiederó conferma direttamente al produttore, essendo switch che gestiscono dei pop davvero importanti e non posso permettermi fail e downs.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Spegnere, riavviare e sospendere Windows da WSL</title>
      <link>https://panda.zenfunk.it/posts/2022-01-29-wsl-startstop/</link>
      <pubDate>Sat, 29 Jan 2022 00:00:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2022-01-29-wsl-startstop/</guid>
      <description>&lt;p&gt;Alla fine ho sempre WSL aperto o a portata di mano ed avendo usato Linux per vent’anni sono abituato a fare la maggior parte delle cose da terminale, tra cui riavviare, spegnere e sospendere il sistema. Essendo virtualizzato ovviamente WSL non può interagire direttamente con Windows per fare queste tre operazioni ma può lanciare e passare comandi a cmd.exe inglobati i degli shell aliases.&lt;/p&gt;&#xA;&lt;p&gt;Dunque ho messo questi alias in ~/.bash_aliases:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;alias poweroff=&#39;cmd.exe /C &amp;quot;shutdown /p&amp;quot;&#39;&#xA;alias reboot=&#39;cmd.exe /C &amp;quot;shutdown /r /t 2&amp;quot;&#39;&#xA;alias sospendi=&#39;sleep 6 ; cmd.exe /C &amp;quot;rundll32.exe powrprof.dll,SetSuspendState 0,1,0&amp;quot;&#39;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Per la sospensione ho aggiunto un wait di 6 secondi che mi servono a spegnere tastiera e mouse wireless, altrimenti è immediato ed appena sollevo il mouse per spegnerlo si innesca il wake dalla sospensione.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Uno sguardo veloce a CrowdSec con iptables</title>
      <link>https://panda.zenfunk.it/posts/2022-01-03-crowdsec-iptables/</link>
      <pubDate>Mon, 03 Jan 2022 00:00:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2022-01-03-crowdsec-iptables/</guid>
      <description>&lt;p&gt;Inizio questo 2022 testando &lt;strong&gt;CrowdSec&lt;/strong&gt; in vista di rifare un server importante up da anni ed ormai non più coperto da aggiornamenti LTS. Attualmente ci uso &lt;em&gt;csf/lfd&lt;/em&gt; e prima di scegliere se riusarlo nel nuovo volevo provare qualcosa di più fresco, che non fosse &lt;em&gt;fail2ban&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;La configurazione in formato yaml è molto intuitiva e semplice, durante l’installazione da repository si autoconfigura in base ai log che trova e funziona out-of-the-box subito, tranne il bouncer che di default non è attivato&amp;hellip; motivo per cui scrivo questo post, ovvero &lt;strong&gt;appuntarmi che il bouncer va attivato come servizio&lt;/strong&gt;, sennò non blocca nessuno:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;systemctl enable crowdsec-firewall-bouncer&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;E se durante i test vi fate bloccare bisogna sapere che utilizza ipset (che non conoscevo ancora) e per sbloccarvi dovete lanciare:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;ipset del crowdsec-blacklists IP.xxx.yyy.xxx&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;la cui lista troverete già popolata da un bel po’ di IP &lt;strong&gt;mascarati&lt;/strong&gt;, che in siciliano &lt;strong&gt;non&lt;/strong&gt; vuol dire &lt;em&gt;nattati col masquerade&lt;/em&gt; ma bensì poco raccomandabili.&lt;/p&gt;&#xA;&lt;p&gt;Mi piace il concept implementativo di questa applicazione, anche se out-of-the-box non ha notifiche email per le azioni (anche se ha svariati plugin) ed a differenza di csf non imposta alcuna impalcatura firewall atta a rilevare e bannare i port scanners (che per alcuni server rompono i coglioni più che i brute force login): la policy di firewall dovete integrarla voi.&lt;/p&gt;&#xA;&lt;p&gt;Non so ancora se userò di nuovo csf o CrowdSec, manca qualche feature a cui ero abituato ma comunque mi sta piacendo, lo seguo e se continuerò a smanettarci scriverò cosa sono riuscito a farci!&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>rsync su cygwin tra NTFS ed exFAT</title>
      <link>https://panda.zenfunk.it/posts/2020-05-01-rsync-ntfs-exfat/</link>
      <pubDate>Mon, 01 Jun 2020 15:05:57 +0200</pubDate>
      <guid>https://panda.zenfunk.it/posts/2020-05-01-rsync-ntfs-exfat/</guid>
      <description>&lt;p&gt;Per una serie di questioni difficili da raccontare mi sto ritrovando ad usare &lt;code&gt;Windows 7&lt;/code&gt; e dover fare dei backup di dati con rsync su cygwin verso un hard disk esterno USB formattato in NTFS.&lt;/p&gt;&#xA;&lt;p&gt;Il problema è proprio questo, NTFS. Credevo fosse il filesystem più compatibile tra dispositivi diversi, invece quest&amp;rsquo;ultimo è &lt;strong&gt;exFAT&lt;/strong&gt; perchè non ha tutta la parte dei permessi ed ownership dei file che tra sistemi diversi diventa un bagno di sangue.&lt;/p&gt;&#xA;&lt;p&gt;Certo, da un punto di vista Enterprise questi medatati sono sicuramente utili ed importanti, ma per una singola persona no: usate exFAT che la tab sicurezza-col-tasto-destro-proprietà nemmeno ce l&amp;rsquo;ha!&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ rsync -avr /cydrive/$ORIGINE/ /cygdrive/$DESTINAZIONE/ --progress --delete --size-only --no-perms -O&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</description>
    </item>
    <item>
      <title>ISPConfig: snippet per reverse proxy con socket.io</title>
      <link>https://panda.zenfunk.it/posts/2020-04-13-ispconfig-socket.io/</link>
      <pubDate>Mon, 13 Apr 2020 15:09:24 +0200</pubDate>
      <guid>https://panda.zenfunk.it/posts/2020-04-13-ispconfig-socket.io/</guid>
      <description>&lt;p&gt;Qualche settimana fa stavo uscendo pazzo per un problema alla UI di una web app dietro reverse proxy, mi sono accorto che era un problema sul reverse proxy ispezionando la pagina con le WebTools di Chrome e notando che alcune richieste non andavano a buon fine: tutte quelle di socket.io.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;ISPconfig -&amp;gt; Siti -&amp;gt; [vhost sito] -&amp;gt; Opzioni -&amp;gt; Direttive Apache&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;ProxyRequests Off&#xA;ProxyPreserveHost On&#xA;ProxyPass /.well-known/ !&#xA;ProxyPass /               http://10.8.10.11/&#xA;ProxyPassReverse /  http://10.8.10.11/&#xA;&#xA;ProxyVia on      &#xA;RewriteEngine On&#xA;&#xA;RewriteEngine On&#xA;RewriteCond %{HTTP:Connection} Upgrade [NC]&#xA;RewriteCond %{HTTP:Upgrade} websocket [NC]&#xA;RewriteRule /(.*) ws://10.8.10.11:8080/$1 [P,L]&#xA;&#xA;ProxyPass               /socket.io http://10.8.10.11:8080/socket.io&#xA;ProxyPassReverse        /socket.io http://10.8.10.11/socket.io&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</description>
    </item>
    <item>
      <title>Linux Load Averages: interpretare la media di carico</title>
      <link>https://panda.zenfunk.it/posts/2017-08-13-linux-load-averages-interpretare-la-media-di-carico/</link>
      <pubDate>Sun, 13 Aug 2017 21:47:47 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2017-08-13-linux-load-averages-interpretare-la-media-di-carico/</guid>
      <description>&lt;p&gt;Un interessante articolo (in inglese) riguardo l’interpretazione dei valori della media di carico dei sistemi Linux.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Linux load averages explained, including why they include the uninterruptible I/O sleep state.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Sorgente: &lt;em&gt;&lt;a href=&#34;http://www.brendangregg.com/blog/2017-08-08/linux-load-averages.html&#34;&gt;Linux Load Averages: Solving the Mystery&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Raccogliere i log da remoto con rsyslog, differenziarli in base all’IP e ruotarli con logrotate</title>
      <link>https://panda.zenfunk.it/posts/2015-10-01-raccogliere-i-log-da-remoto-con-rsyslog-differenziarli-in-base-allip-e-ruotarli-con-logrotate/</link>
      <pubDate>Thu, 01 Oct 2015 20:15:30 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2015-10-01-raccogliere-i-log-da-remoto-con-rsyslog-differenziarli-in-base-allip-e-ruotarli-con-logrotate/</guid>
      <description>&lt;p&gt;Le indicazioni di questo post sono state testate con delle antenne &lt;strong&gt;Ubiquity&lt;/strong&gt; e sono valide per qualsiasi sistema che utilizzi &lt;em&gt;ancora&lt;/em&gt; &lt;strong&gt;rsyslog&lt;/strong&gt; e &lt;strong&gt;logrotate&lt;/strong&gt; e qualsiasi hardware che sia in grado di spedire i propri log in remoto. Lo scenario è quello di un logserver Debian che riceve i syslog di access points e stations e li divide in base all’IP di provenienza.&lt;/p&gt;&#xA;&lt;p&gt;Per prima cosa bisogna dire ad &lt;strong&gt;rsyslog&lt;/strong&gt; di ascoltare su una porta UDP o TCP per poter ricevere i log, su &lt;strong&gt;/etc/rsyslog.conf&lt;/strong&gt; decommentare le righe inerenti al protocollo che si desidera utilizzare:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;# provides UDP syslog reception&#xA;$ModLoad imudp&#xA;$UDPServerRun 514&#xA;&#xA;# provides TCP syslog reception&#xA;#$ModLoad imtcp&#xA;#$InputTCPServerRun 514&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Successivamente, sempre su &lt;strong&gt;/etc/rsyslog.conf&lt;/strong&gt; o come snippet in &lt;strong&gt;/etc/rsyslog.conf.d/&lt;/strong&gt; vanno inserite direttive tipo queste:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;if $fromhost-ip startswith &#39;192.168.10.&#39; then /var/log/ubnt-stations.log&#xA;&amp;amp; ~&#xA;if $fromhost-ip startswith &#39;192.168.2.&#39; then /var/log/ubnt-stations.log&#xA;&amp;amp; ~&#xA;&#xA;if $fromhost-ip startswith &#39;192.168.1.&#39; then /var/log/ubnt-APs.log&#xA;&amp;amp; ~&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Molto utile ed importate è la riga ” &lt;strong&gt;&amp;amp; ~&lt;/strong&gt; ” posta immediatamente dopo la singola direttiva, vuol dire: &lt;em&gt;“fermati li dove hai loggato e non andare avanti”&lt;/em&gt;, per evitare di spammare altri logfile tipo &lt;em&gt;syslog&lt;/em&gt; o &lt;em&gt;messages&lt;/em&gt;. Un restart di &lt;strong&gt;rsyslogd&lt;/strong&gt; ed andiamo avanti.&lt;/p&gt;&#xA;&lt;p&gt;Ultimo step è quello di configurare &lt;strong&gt;logrotate&lt;/strong&gt; per ruotare anche questi nuovi logfile ed evitare che &lt;strong&gt;/var/log/&lt;/strong&gt; si riempia troppo presto. Le politiche più adatte spettano a voi, potete anche riciclare delle impostazioni già esistenti tra &lt;strong&gt;/etc/logrotate.conf.d/&lt;/strong&gt; o crearne una vostra, a seconda di quanto vi serva tenere i log.&lt;/p&gt;&#xA;&lt;p&gt;Nel mio caso bastava una settimana ed ho aggiunto quei file di log (anche con wildcard) allo stesso snippet che fa ruotare &lt;strong&gt;syslog&lt;/strong&gt;, ovvero ogni giorno e per una settimana, &lt;strong&gt;/etc/logrotate.conf.d/rsyslog&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;/var/log/syslog&#xA;/var/log/ubnt-*.log&#xA;{&#xA;  rotate 7&#xA;  daily&#xA;  missingok&#xA;  notifempty&#xA;  delaycompress&#xA;  compress&#xA;  postrotate&#xA;    invoke-rc.d rsyslog rotate &amp;gt; /dev/null&#xA;  endscript&#xA;}```&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</description>
    </item>
    <item>
      <title>ISPConfig: snippet da incollare per il rewrite HTTP a HTTPS</title>
      <link>https://panda.zenfunk.it/posts/2014-10-04-ispconfig-snippet-da-incollare-per-il-rewrite-http-a-https/</link>
      <pubDate>Sat, 04 Oct 2014 15:30:57 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2014-10-04-ispconfig-snippet-da-incollare-per-il-rewrite-http-a-https/</guid>
      <description>&lt;p&gt;Anche se il &lt;strong&gt;rewrite&lt;/strong&gt; ad ssl è una pratica sconsigliata per motivi di compatibilità e performance in alcune situazioni è un &lt;em&gt;workaround&lt;/em&gt; necessario :/&lt;/p&gt;&#xA;&lt;p&gt;ISPconfig -&amp;gt; Siti -&amp;gt; &lt;em&gt;[vhost sito]&lt;/em&gt; -&amp;gt; Opzioni -&amp;gt; Direttive Apache&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;RewriteEngine on&#xA;RewriteCond %{SERVER_PORT} !^443$&#xA;RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} &amp;amp;#91;L,R]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</description>
    </item>
    <item>
      <title>Riapplicare i filtri #sieve ad una maildir da riga di comando</title>
      <link>https://panda.zenfunk.it/posts/2014-09-28-riapplicare-i-filtri-sieve-ad-una-maildir-da-riga-di-comando/</link>
      <pubDate>Sun, 28 Sep 2014 14:25:24 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2014-09-28-riapplicare-i-filtri-sieve-ad-una-maildir-da-riga-di-comando/</guid>
      <description>&lt;p&gt;Anche se &lt;strong&gt;dovecot&lt;/strong&gt; &lt;a href=&#34;https://mebsd.com/configure-freebsd-servers/dovecot-pigeonhole-sieve-filter-refilter-delivered-email.html&#34;&gt;ha il suo tool&lt;/a&gt; per riapplicare i filtri &lt;strong&gt;sieve&lt;/strong&gt; a maildirs già esistenti, su un sistema di posta già configurato ed in produzione può essere più conveniente reimmettere le email nell’intera catena di filtri.&lt;/p&gt;&#xA;&lt;p&gt;Questa serie di comandi combinati in una riga permettono di &lt;strong&gt;rispedire&lt;/strong&gt; tutti i messaggi presenti in una cartella &lt;strong&gt;&lt;em&gt;Maildir&lt;/em&gt;&lt;/strong&gt; rifacendoli passare per la catena di filtri &lt;strong&gt;sieve&lt;/strong&gt;.  E’ molto utile per testare le modifiche alle regole:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ cd mail-storage/dominio.it/utente/&#xA;$ for i in cur/* ; do (/usr/lib/dovecot/deliver -d utente@dominio.it &amp;gt; $i ; echo rm $i) ; done&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Vi consiglio di testarlo su una cartella con poche email prima di togliere &lt;em&gt;echo&lt;/em&gt; a &lt;strong&gt;rm&lt;/strong&gt;.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>ElementaryOS, dual monitor e workspaces solo sul display primario.</title>
      <link>https://panda.zenfunk.it/posts/2014-02-10-elementaryos-dual-monitor-e-workspaces-solo-sul-display-primario/</link>
      <pubDate>Mon, 10 Feb 2014 10:29:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2014-02-10-elementaryos-dual-monitor-e-workspaces-solo-sul-display-primario/</guid>
      <description>&lt;p&gt;Dalla scorsa settimana ho deciso di installare &lt;a href=&#34;http://elementaryos.org/&#34;&gt;ElementaryOS&lt;/a&gt; anche sulla mia workstation al lavoro perchè sia la Ubuntu Gnome 13.04 che la 13.10 mi hanno dato non pochi problemi con continui crash. Anche se sono un fan di ElementaryOS sin dalla prima release ho provato Gnome3 per diversi mesi e devo dire che mi sono trovato molto bene come &lt;em&gt;user experience&lt;/em&gt;, soprattutto per la possibilità di escludere il secondo monitor dalla gestione dei workspace: sul secondo monitor tengo tutti i terminali che mi serve avere sempre sott’occhio e sul primo monitor faccio tutto il resto utilizzando molto i workspaces.&lt;/p&gt;&#xA;&lt;p&gt;Ieri, spulciando su Launchpad, ho scoperto che &lt;a href=&#34;https://answers.launchpad.net/gala/&amp;#43;question/234490&#34;&gt;Gala è basato su &lt;code&gt;libmutter&lt;/code&gt;&lt;/a&gt; e quindi eredita questa funzionalità da Gnome3! Basta settarla con &lt;code&gt;dconf-editor&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;org.gnome.mutter workspaces-only-on-primary&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</description>
    </item>
    <item>
      <title>gkrellm system monitor su elementaryOS, il vecchio ed il nuovo</title>
      <link>https://panda.zenfunk.it/posts/2013-06-18-gkrellm-system-monitor-su-elementaryos-il-vecchio-ed-il-nuovo/</link>
      <pubDate>Tue, 18 Jun 2013 11:07:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2013-06-18-gkrellm-system-monitor-su-elementaryos-il-vecchio-ed-il-nuovo/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://panda.zenfunk.it/img-post/elementary-gkrellm.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Un qualche &lt;em&gt;system monitor&lt;/em&gt; non manca mai nello schermo di un nerd… &lt;a href=&#34;http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html&#34;&gt;gkrellm&lt;/a&gt; è un progetto maturo che ha alle spalle parecchi anni di sviluppo e mantenimento, ancora sa il fatto suo e perchè no – con delle impostazioni ottimali e &lt;a href=&#34;http://www.muhri.net/gkrellm/&#34;&gt;qualche tema&lt;/a&gt; può stare bene anche in un ambiene nuovo come elementaryOS!&lt;/p&gt;&#xA;&lt;p&gt;Le impostazioni ottimali a cui mi riferisco sono soprattutto quelle legate al comportamento della finestra di gkrellm rispetto al window manager in uso. Nel caso di elementaryOS, e quindi di &lt;strong&gt;gala&lt;/strong&gt;, è utile impostare la finestra come &lt;em&gt;sticky&lt;/em&gt; (in modo da averla su tutti i workspaces) e in modalità pannello/dock (in modo da essere esclusa da taskbars, dockbars, pagers, switchers).&lt;/p&gt;&#xA;&lt;p&gt;E’ consigliabile allinearlo ad un paio di pixel di distanza dal bordo dello schermo se si vuole che le finestre massimizzate lo coprano, se si allinea esattamente al bordo, si comporterà -appunto- come un pannello o una dock, richiedendo al window manager di riservarne lo spazio di visibilità anche con finestre massimizzate.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://panda.zenfunk.it/img-post/gkrellm-impostazioni.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Come mi sono fatto andare bene Shotwell</title>
      <link>https://panda.zenfunk.it/posts/2012-06-08-come-mi-sono-fatto-andare-bene-shotwell/</link>
      <pubDate>Fri, 08 Jun 2012 21:28:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2012-06-08-come-mi-sono-fatto-andare-bene-shotwell/</guid>
      <description>&lt;p&gt;So che c’è tanta gente che non va molto d’accordo con i programmi per la gestione personale delle fotografie tipo Shotwell, digiKam, F-Spot, gThumb, fotoxx, etc, etc. Lo dico perchè sono stato uno di questi e lurkando in giro ho letto tante lamentele di gente che avrebbe preferito un programma &lt;em&gt;semplice&lt;/em&gt; che permettesse &lt;em&gt;semplicemente&lt;/em&gt; di organizzare le proprie foto in album directorycentrici piuttosto che in eventi che raggruppano foto importate nel filesystem con una struttura interna di directory e sottodirectory basata sulla data dei metadati EXIF che non tutte le foto purtroppo hanno. Con un po’ di amarezza ho scoperto che un programma bello e &lt;em&gt;semplice&lt;/em&gt; come Shotwell che tenga le foto organizzate sul filesystem in una maniera più directorycentrica… non esiste. Dunque mi sono interrogato sul perchè e sono arrivato alla personale conclusione che forse non esiste perchè se tutti volessero tenere le foto organizzate in album in cartelle basterebbe un file manager in grado di fare una anteprima visibile, e quello -si- esiste e si chiama &lt;strong&gt;nautilus&lt;/strong&gt;, anche se non ha funzioni specifiche.&lt;/p&gt;&#xA;&lt;p&gt;E’ innegabile che applicazioni del genere sono comode ed utili e pure fatte bene, quindi ho cercato di capire meglio come funzionavano e fino a che punto fossero customizzabili &lt;!-- raw HTML omitted --&gt;senza esagerare coi tweak&lt;!-- raw HTML omitted --&gt; per trovare una soluzione che mi stesse bene ed alla fine la mia scelta è ricaduta definitivamente su Shotwell perchè IMHO è il più semplice ed ha alcune funzionalità e impostazioni davvero interessanti. Senza nulla togliere alle altre applicazioni che sono anche potenti, ma meno semplici e con interfacce IMHO poco ergonomiche.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://panda.zenfunk.it/img-post/Schermata-2Bdel-2B2012-06-08-2B22-253A27-253A26.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Prima di tutto: Shotwell non modifica le fotografie importate, come iPhoto mantiene le originali nella cartella di importazione e quelle modificate nel suo database, compresi i metadati, a meno che non si voglia scriverli fisicamente nelle foto, ed è in grado di tenere monitorata la cartella della propria libreria per aggiunere automaticamente anche le foto copiate manualmente e non importate da un dispositivo. Questa IMHO è una cosa molto utile perchè di fatto lo rende anche una specie di &lt;em&gt;frontend&lt;/em&gt; in grado di mostrare foto già esistenti sul filesystem e di aggiungere i metadati per poterle arricchire lasciandole comunque dentro le cartelle-album con una struttura personale.&lt;/p&gt;&#xA;&lt;p&gt;Lo screenshot esemplifica la mia soluzione: ho impostato Shotwell per gestire e tenere monitorata la cartella &lt;!-- raw HTML omitted --&gt;&lt;del&gt;/Immagini/Fotografie&lt;!-- raw HTML omitted --&gt; piuttosto che la default &lt;!-- raw HTML omitted --&gt;&lt;/del&gt;/Immagini&lt;!-- raw HTML omitted --&gt; (questo per evitare che venissero automaticamente aggiunti alla libreria altri file che tengo nella cartella Immagini, tipo gli sfondi) ed ho impostato una struttura personalizzata delle sottodirectory della libreria di Shotwell prependendo la cartella &lt;!-- raw HTML omitted --&gt;[Importate]&lt;!-- raw HTML omitted --&gt; al modello. In questa maniera posso tenere separate le foto importate con Shotwell dalle altre foto già esistenti, senza escludere il poter spostare manualmente le foto in un secondo momento per organizzarle sul filesystem in una maniera più coerente ma comqune sempre all’interno della libreria di Shotwell.&lt;/p&gt;&#xA;&lt;p&gt;Inoltre, per facilitare il backup, è anche possibile spostare la directory di configurazione &lt;!-- raw HTML omitted --&gt;~/.shotwell/&lt;!-- raw HTML omitted --&gt; dentro la stessa cartella delle libreria e poi rimpiazzarla con un link simbolico in quanto le cartelle nascoste non vengono monitorate anche se dentro la posizione della libreria!&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>iTunes su VirtualBox e libreria su cartella condivisa su Ubuntu</title>
      <link>https://panda.zenfunk.it/posts/2012-05-08-itunes-su-virtualbox-e-libreria-su-cartella-condivisa-su-ubuntu/</link>
      <pubDate>Tue, 08 May 2012 15:08:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2012-05-08-itunes-su-virtualbox-e-libreria-su-cartella-condivisa-su-ubuntu/</guid>
      <description>&lt;p&gt;Prima di essere uno smanettone sono un musicista, e prima di essere un musicista sono un musicofilo maniaco dei tag. Un mp3 non varca la directory Musica della mia &lt;code&gt;$HOME&lt;/code&gt; se non è scrupolosamente taggato. Non arrivo a livelli davvero paranoici ma il minimo, oltre all’autore e l’album, deve essere l’anno ed il genere, e possibilmente la copertina ad una risoluzione di minimo 500px.&lt;/p&gt;&#xA;&lt;p&gt;Da più di dieci anni utilizzo &lt;a href=&#34;http://easytag.sourceforge.net/&#34;&gt;easytag&lt;/a&gt; per correggere ed uniformare i vari tag, visto che permette anche di rinominare i file in base ai tag non ho mai avuto la necessità di particolari applicazioni tipo rhythmbox o banshee nonostante reputi siano delle buone app anche per tenere organizzati gli mp3 sul filesystem.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Però ho un iPod classic ed uso iTunes&lt;/strong&gt;. Ho la &lt;em&gt;vitale&lt;/em&gt; necessità di avere un dispositivo da quale possa valutare i brani, classificarli con le “&lt;em&gt;stelline&lt;/em&gt;” in modo da poter avere delle playlist automatiche che mi riportino i brani che devo ancora ascoltare, quelli che devo studiare, quelli che so suonare, i pezzi bellissimi, i capolavori, quelli che ho skippato tot volte ed avrebbero diritto all’appello/revisione e quelli che ho skippato abbastanza volte e forse non mi interessano e verrano cancellati. Tutto questo deve essere sincronizzato tra il mio computer ed il mio lettore mp3, questo vuol dire che se contrassegno dall’iPod un brano mentre sono in macchina dovrei ritrovarmelo contrassegnato anche sul mio PC e viceversa. Itunes, credo, sia l’unica app che permette al momento di fare questo.&lt;/p&gt;&#xA;&lt;p&gt;Bene, la mia soluzione è stata installare iTunes dentro VirtualBox, configurare &lt;code&gt;~/Musica&lt;/code&gt; come cartella condivisa, tenere premuto &lt;strong&gt;alt&lt;/strong&gt; all’avvio di iTunes e collocare la libreria di iTunes dentro la cartella condivisa.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://panda.zenfunk.it/img-post/Schermata-del-2012-05-08-16-16-37.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Poi ho creato in &lt;code&gt;~/Musica&lt;/code&gt; un link simbolico chiamato &lt;em&gt;Discoteca&lt;/em&gt; che punta alla sottocartella della libreria di iTunes dove effettivamente gli album stanno ben organizzati sul filesystem e configurato rhythmbox per utilizzare quel link come root della propria libreria, però in sola lettura, ovvero disattivando eventuali opzioni che alterino i metadati già scritti.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://panda.zenfunk.it/img-post/Schermata-del-2012-05-08-16-20-44.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Con le guest additions installate è poi possibile con il tasto &lt;strong&gt;host+l&lt;/strong&gt; integrare il desktop della macchina virtuale che rende il tutto esteticamente discreto.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://panda.zenfunk.it/img-post/Schermata-del-2012-05-08-16-32-07.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Tirando le somme: se si dispone di un computer mediamente potente che riesce a fare girare VirtualBox senza impallarsi a swappare… è possibile utilizzare e favorire Linux senza dual boot. Anzi, se non si tratta di applicazioni che richiedono molte risorse, è sicuramente più stabile, sicuro e performante utilizzare una installazione di Windows virtualizzata, della quale si può anche fare una istantanea a mo’ di backup da ripristinare al volo quando Windows si pianterà… perchè si pianterà comunque prima o poi, non crediate di potervi sfuggire :) :P Se poi disattivate tutti quei servizi che sembrano essere fatti apposta per far piantare il sistema otterrete anche un sistema virtualizzato molto veloce.&lt;/p&gt;&#xA;&lt;p&gt;L’unico limite di questo sistema è il ripristino/aggiornamento dell’iPod, perchè quando l’iPod si riavvia avviene la disconnessione USB e nemmeno con i filtri USB di VirtualBox la riconnessione avviene in tempo per completare l’operazione. E’ sempre possibile comunque aggiornare l’iPod da un altro sistema nativo e poi ri-sincronizzarlo da iTunes su VirtualBox senza alcun problema. Se si sta attenti a disconnetterlo bene, con un po’ di fortuna non vi capiterà mai.&lt;/p&gt;&#xA;&lt;p&gt;Ultima cosa: per permettere a VirtualBox di accedere al sottosistema USB (e quindi all’iPod) è necesario aggiungere il proprio utente al gruppo &lt;strong&gt;vboxusers&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;!-- raw HTML omitted --&gt;$ sudo usermod -a -G vboxusers `whoami`&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</description>
    </item>
    <item>
      <title>Le web app con Epiphany: Twitter</title>
      <link>https://panda.zenfunk.it/posts/2012-04-16-le-web-app-con-epiphany-twitter/</link>
      <pubDate>Mon, 16 Apr 2012 19:41:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2012-04-16-le-web-app-con-epiphany-twitter/</guid>
      <description>&lt;p&gt;Una delle cose interessanti degli ultimi aggiornamenti di &lt;a href=&#34;http://projects.gnome.org/epiphany/&#34;&gt;Epiphany&lt;/a&gt; è la possibilità di creare web app, ma fatte bene stavolta, non come gli altri browser! :)&lt;/p&gt;&#xA;&lt;h3 id=&#34;cosa-sono-le-web-app&#34;&gt;&#xD;&#xA;  Cosa sono le web app?&#xD;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#cosa-sono-le-web-app&#34;&gt;&#xD;&#xA;    &lt;i class=&#34;fa fa-link&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&#xD;&#xA;  &lt;/a&gt;&#xD;&#xA;&lt;/h3&gt;&#xD;&#xA;&lt;p&gt;Avete presente le finestre pop-up? Il concetto è quello: quando si crea o si usa una web app non si fa altro che utilizzare il browser in una modalità dove vengono nascosti i pulsanti, la barra dei menu, la barra degli indirizzi, le tab e la barra di stato. Una finestra nuda e cruda con dentro il sito, se il sito è fatto bene non avrà bisogno dei controlli del browser per essere utilizzato e si guadagna uno po’ di spazio per la visualizzazione assolutamente non trascurabile!&lt;/p&gt;&#xA;&lt;p&gt;Ho fatto l’esempio delle finestre pop-up proprio perchè i primi prototipi di lanciatori di web-app non erano altro che un URL con incorporato del codice javascript che diceva al browser di nascondere i controlli… diciamo che non siamo proprio ai livelli dell’aver inventato &lt;em&gt;l’acqua calda&lt;/em&gt;, ma quasi… perchè problema è proprio quello: si tratta semplicemente di una finestra del browser, quindi un processo con lo stesso nome del browser che viene trattato dai task manager o dalle dock per quello che è: &lt;strong&gt;una finestra del browser&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Se il browser in modalità web app non si presenta al sistema operativo come una applicazione a se stante è probabile che dopo aver creato il lanciatore &lt;!-- raw HTML omitted --&gt;.desktop&lt;!-- raw HTML omitted --&gt; con la sua bella icona cliccandoci si attiverà l’icona di Firefox o di Chromium sulla dock e resterà da pensare solo a “beh se è così allora non serve ad un cactus “.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Epiphany&lt;/strong&gt;, vi scrivo dalla versione 3.4.0.1 su Ubuntu 12.04, non ha questo problema ed a mio modesto parere è la migliore implementazione di web app su Unity e GNOME.&lt;/p&gt;&#xA;&lt;h3 id=&#34;come-creare-una-web-app&#34;&gt;&#xD;&#xA;  Come creare una web app?&#xD;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#come-creare-una-web-app&#34;&gt;&#xD;&#xA;    &lt;i class=&#34;fa fa-link&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&#xD;&#xA;  &lt;/a&gt;&#xD;&#xA;&lt;/h3&gt;&#xD;&#xA;&lt;p&gt;Creare una web-app con Epiphany è molto semplice. Basta aprire Epiphany, navigare sul sito che si vuole far diventare una applicazione a se stante e dal menu delle impostazioni selezionare &lt;strong&gt;&lt;em&gt;“Salva come applicazione web…”&lt;/em&gt;&lt;/strong&gt;. Verrà creato un lanciatore in &lt;!-- raw HTML omitted --&gt;~/.local/share/applications&lt;!-- raw HTML omitted --&gt; subito disponibile con il nome che gli avete dato.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://panda.zenfunk.it/img-post/Schermata-del-2012-04-16-20-22-41.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;La prima volta in assoluto che si avvia una nuova _web-_applicazione bisogna ridimensionare la finestra a nostro piacimento, per far scomparire eventuali scrollbar orizzontali e renderla più omogenea. Finito, l’ultima dimensione della finestra verrà memorizzata per la successiva apertura.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Twitter&lt;/strong&gt; a mio avviso si presta benissimo a diventare una web app, personalmente ho disinstallato gwibber e non apro più twitter su una tab del browser, ormai è… un’app :)&lt;/p&gt;&#xA;&lt;p&gt;L’unica feature che ancora manca è la personalizzazione dell’icona direttamente in fase di creazione del lanciatore… l’icona viene generata automaticamente da Epiphany in base al contenuto della pagina web e non è sempre facilmente riconoscibile… ma è sempre possibile spostarsi in &lt;!-- raw HTML omitted --&gt;~/.local/share/applications&lt;!-- raw HTML omitted --&gt;, editare il file &lt;!-- raw HTML omitted --&gt;.desktop&lt;!-- raw HTML omitted --&gt; della web app e modificare a mano il nome dell’icona.&lt;/p&gt;&#xA;&lt;p&gt;Nel caso di Twitter possiamo riciclare l’icona ‘twitter’ che viene distribuita con gwibber o molto probabilmente presente in altri pacchetti di icone diffusi tramite PPA, tipo &lt;!-- raw HTML omitted --&gt;Faenza&lt;!-- raw HTML omitted --&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://panda.zenfunk.it/img-post/Schermata-del-2012-04-16-21-14-50.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;L’effetto finale è questo, con le scorciatoie da tastiera di Twitter personalmente lo trovo molto comodo e veloce.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://panda.zenfunk.it/img-post/Schermata-del-2012-04-16-21-21-42.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>MySQL: Ripristinare un solo DB da un dump completo</title>
      <link>https://panda.zenfunk.it/posts/2010-09-20-mysql-ripristinare-un-solo-db-da-un-dump-completo/</link>
      <pubDate>Mon, 20 Sep 2010 11:40:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2010-09-20-mysql-ripristinare-un-solo-db-da-un-dump-completo/</guid>
      <description>&lt;p&gt;Un buon DBA sa come si fa io l&amp;rsquo;ho imparato ieri perchè ancora non mi era capitato!&lt;/p&gt;&#xA;&lt;p&gt;Ipotizziamo che abbiamo fatto un backup dell&amp;rsquo;intero DB con&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;mysqldump -h host -p&#39;password&#39; --all-databases &amp;gt; dump.sql&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;all’occorrenza è possibile ripristinare solamente un database con&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;mysql -h host -p&#39;password&#39; --one-database database &amp;lt; dump.sql&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;per tutto il resto c&amp;rsquo;è &lt;strong&gt;mysqlimport&lt;/strong&gt;&amp;hellip;&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Impostare la data con il comando ‘date’</title>
      <link>https://panda.zenfunk.it/posts/2010-07-25-impostare-la-data-con-il-comando-date/</link>
      <pubDate>Sun, 25 Jul 2010 17:53:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2010-07-25-impostare-la-data-con-il-comando-date/</guid>
      <description>&lt;p&gt;Inutile nascondersi dietro ad un dito! Sembra una cazzata ma a tutti, almeno una volta nella vita, è capitato di trovarsi a dover impostare l&amp;rsquo;orario di un sistema senza &lt;code&gt;ntp&lt;/code&gt; e una connessione ad internet, senza server grafico né utility adeguate: solo il comando &lt;strong&gt;date&lt;/strong&gt; e la sua ostica &lt;em&gt;man page&lt;/em&gt; dalla quale non siamo riusciti a capire granchè sul &lt;em&gt;come&lt;/em&gt; fare.&lt;/p&gt;&#xA;&lt;p&gt;In effetti all&amp;rsquo;inizio della man page, nella sintassi, c&amp;rsquo;è scritto! Ma con tutte quelle parentesi quadre pensi che sia meglio continuare a leggere cercando un esempio che trovi alla fine della man page ma sei talmente confuso che non lo noti.&lt;/p&gt;&#xA;&lt;p&gt;Bene: per chi non ci è mai riuscito o per chi se l&amp;rsquo;era dimenticato il pattern di default che il comando &lt;strong&gt;date&lt;/strong&gt; si aspetta come argomento è:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;MMDDhhmmAAAA&#xA;(mese giorno ore minuti anno)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Per impostare quindi la data alle 18:48 del 25 luglio 2010 basterà un&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;date 072518482010&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;;)&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Creare un mirror ftp con lftp</title>
      <link>https://panda.zenfunk.it/posts/2010-06-25-creare-un-mirror-ftp-con-lftp/</link>
      <pubDate>Fri, 25 Jun 2010 18:15:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2010-06-25-creare-un-mirror-ftp-con-lftp/</guid>
      <description>&lt;p&gt;Quando serve scaricare tutta una locazione ftp c&amp;rsquo;è &lt;code&gt;lftp&lt;/code&gt;!&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;sudo apt-get install lftp&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Ecco il classico scenario dove serve scaricare diversi file e dirs per preparare un server tftp:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;lftp -c &amp;quot;open http://people.debian.org/~joeyh/d-i/images/daily/netboot/debian-installer/i386/; mirror .&amp;quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</description>
    </item>
    <item>
      <title>Compilare Stackless Python su Linux PowerPC (PPC)</title>
      <link>https://panda.zenfunk.it/posts/2010-06-12-compilare-stackless-python-su-linux-powerpc-ppc/</link>
      <pubDate>Sat, 12 Jun 2010 00:00:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2010-06-12-compilare-stackless-python-su-linux-powerpc-ppc/</guid>
      <description>&lt;p&gt;IMHO una delle cose più affascinanti del mondo dell’Open Source e del Free Software è che per il 95% delle problematiche c’è già un folle che se ne sta occupando. Per il restante 5% pure, ma è solo questione di tempo… il tempo che i motori di ricerca reindicizzino blog e mailing list. Oppure sei proprio tu.&lt;/p&gt;&#xA;&lt;p&gt;Io non so quanta gente (in Italia) usi GNU/Linux su processori PowerPC e non so nemmeno quanta gente abbia voglia di smanettare con &lt;a href=&#34;https://netsukuku.freaknet.org&#34;&gt;Netsukuku&lt;/a&gt; su processori PowerPC… ma se qualcuno c’è (e mi ci gioco le palle che c’è) e sta sbattendo la testa a cercare di compilare Stackless Python ottenendo solamente un Segmentation Fault… beh forse questo mio post potrebbe essergli utile!&lt;/p&gt;&#xA;&lt;p&gt;Prima di tutto devo ringraziare &lt;em&gt;Mads Darø Kristensen Aarhus&lt;/em&gt; che con il suo post &lt;a href=&#34;http://kedeligdata.blogspot.com/2009/12/building-stackless-python-on-ps3-ppc.html&#34;&gt;Building Stackless Python on a PS3 (PPC Linux)&lt;/a&gt; mi ha dato una direzione sulla quale continuare a smanettare… perchè se lui sulla PS3 ci era riuscito io su un PowerBook G4 no :(&lt;/p&gt;&#xA;&lt;p&gt;Bene. Non importa se avete scaricato i tarball dei sorgenti o fatto il checkout SVN… spostatevi nella dir dei sorgenti e date un:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;./configure --prefix=/test --enable-stacklessfewerregisters&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Io ho impostato il prefix in &lt;code&gt;/test&lt;/code&gt; per stare tranquillo, di default viene impostato &lt;code&gt;/usr/local&lt;/code&gt; ma se avete altra roba installata lì forse preferite anche voi installlarlo in una dir separata per non inquinare &lt;code&gt;/usr/local&lt;/code&gt; qualora vorreste cancellare del tutto stackless python…&lt;/p&gt;&#xA;&lt;p&gt;Una volta terminato il &lt;code&gt;./configure&lt;/code&gt; dovete editare il &lt;strong&gt;Makefile&lt;/strong&gt; nella root dei sorgenti (le subdir lo erediteranno) e modificare le var &lt;code&gt;$OPT&lt;/code&gt; e &lt;code&gt;$SLPFLAGS&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;in &lt;code&gt;OPT&lt;/code&gt; cambiare &lt;code&gt;-O2&lt;/code&gt; in &lt;code&gt;-Os&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;in &lt;code&gt;SLPFLAGS&lt;/code&gt; modificare &lt;code&gt;-fno-omit-frame-pointer&lt;/code&gt; in &lt;code&gt;-fomit-frame-pointer&lt;/code&gt; e &lt;code&gt;-O2&lt;/code&gt; in &lt;code&gt;-Os&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;code&gt;make &amp;amp;&amp;amp; sudo make install&lt;/code&gt; e poi su &lt;code&gt;/$PREFIX/bin/python&lt;/code&gt; avrete il vostro Stackless Python!&lt;/p&gt;&#xA;&lt;p&gt;Non chiedetemi il perchè… a me ha l’ha compilato solamente così… anzi, se qualche programmatore C passa di qui e me lo spiega gliene sarò grato :)&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Non solo FireWire: boot USB esterno da OpenFirmware (PPC)</title>
      <link>https://panda.zenfunk.it/posts/2010-01-27-non-solo-firewire-boot-usb-esterno-da-openfirmware-ppc/</link>
      <pubDate>Wed, 27 Jan 2010 21:56:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2010-01-27-non-solo-firewire-boot-usb-esterno-da-openfirmware-ppc/</guid>
      <description>&lt;p&gt;E&amp;rsquo; risaputo che tranne alcuni modelli i Mac PPC non possono fare il boot da periferiche USB esterne ma solamente da periferiche FireWire. La cosa è in parte vera: i Mac possono avviarsi da qualsiasi filesystem che sia leggibile da OpenFirmare, solo che purtroppo non ci sono tasti da tenere premuti all&amp;rsquo;avvio che faccino questo per noi :(&lt;/p&gt;&#xA;&lt;p&gt;Nel mio caso ho il lettore DVD integrato del mio PowerBook che è un po&amp;rsquo; difettoso ed ho la necessità di reinstallare sia Mac OSX che UBUNTU avviando da lettore DVD esterno USB.&lt;/p&gt;&#xA;&lt;p&gt;Vediamo dunque come fare ad identificare in OpenFirware il percorso della nostra periferica rinnegata ed avviare da essa! &lt;em&gt;(nel mio caso è un lettore DVD esterno, ma va bene anche per avviare un’hard disk o anche una chiavetta USB)&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;PREMESSA&lt;/strong&gt;: ho tagliato le righe di output non interessanti&lt;/p&gt;&#xA;&lt;p&gt;Prima di tutto una cosa che ci tornerà utile più avanti: identificare la partizione del media da avviare! Da terminale e con il CD/DVD inserito:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ mount&#xA;/dev/disk2s3 on /Volumes/Mac OS X Install DVD (local, nodev, nosuid, read-only)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Dunque ci interessa la partizione numero 3 del media disk2.&lt;br&gt;&#xA;&lt;em&gt;(quest’ultima numerazione è variabile in base al numero di periferiche collegate al sistema)&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;ok, riavviamo in OpenFirmware (CMD+ALT+O+F) e diamo un’occhiata…&lt;/p&gt;&#xA;&lt;p&gt;il comando &lt;strong&gt;dev&lt;/strong&gt; è un po’ come &lt;strong&gt;cd&lt;/strong&gt;, in pratica cambia percorso nella gerarchia dei device. Spostiamoci nella radice e diamo un &lt;strong&gt;ls&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;0 &amp;gt; dev /&#xA;0 &amp;gt; dev /  ok&#xA;0 &amp;gt; ls&#xA;ff978d90: /pci@f2000000&#xA;ff9a06a0:   /usb@1a&#xA;ffa046e8:     /device@1&#xA;ffa04898:       /keyboard@0&#xA;ffa04bd8:       /mouse@1&#xA;ffa04f10:     /mouse@2&#xA;ff9a88d8:   /usb@1b&#xA;ffa036c8:     /hub@1&#xA;ffa038d8:       /disk@1&#xA;ffa03be8:       /hub@2&#xA;ffa03df8:         /device@1&#xA;ffa03f58:         /device@2&#xA;ffa040b0:       /disk@3&#xA;ffa043c0:       /mouse@4&#xA;ff9b0b68:   /usb@1b,1&#xA;ff9b8df8:   /usb@1b,2&#xA;ok&#xA;0 &amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Ho un hub USB al quale sono collegate altre periferiche oltre al lettore DVD: &lt;code&gt;disk@1&lt;/code&gt; è un hard disk esterno mentre &lt;code&gt;disk@3&lt;/code&gt; è proprio il mio lettore. Vediamo se c’è un alias che ci facilita evitando di dover scrivere l’intero percorso dalla radice&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;0 &amp;gt; devalias&#xA;pci                 /pci@f2000000&#xA;usb0                /pci@f2000000/usb@1b,1&#xA;usb1                /pci@f2000000/usb@1b&#xA;usb-1a              /pci@f2000000/@18&#xA;usb-1b              /pci@f2000000/@19&#xA;usb-1c              /pci@f2000000/@1a&#xA;usb-2a              /pci@f2000000/@1b&#xA;usb-2b              /pci@f2000000/@1b,1&#xA;usb-2c              /pci@f2000000/@1b,2&#xA;hd                  /pci@f4000000/ata-6@d/disk@0&#xA;cd                  /pci@f2000000/mac-io@17/ata-3@20000/disk@0&#xA;ok&#xA;0 &amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Trovato: nel mio caso è &lt;code&gt;usb1&lt;/code&gt;! A questo punto facciamo un test con il comando &lt;strong&gt;dir&lt;/strong&gt; che lista il contenuto di un filesystem. Nella sintassi &lt;strong&gt;disk@3:3,&lt;/strong&gt; dopo i due punti intendiamo la partizione che abbiamo identificato prima e dopo la virgola il percorso sul media!&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;0 &amp;gt; dir usb1/hub@1/disk@3:3,&#xA;0 &amp;gt; dir usb1/hub@1/disk@3:3, &#xA;Size/        GMT                      File/Dir&#xA;bytes   date     time   TYPE CRTR     Name&#xA;82 09/24/2007 00:45:14              ._Instructions&#xA;82 09/24/2007 00:45:14              ._Optional%20Installs&#xA;12292 10/12/2007 07:24:19              .DS_Store&#xA;10/12/2007 07:27:21              .fseventsd&#xA;10/12/2007 04:59:12              .HFS+%20Private%20Directory%20Data%0                                d&#xA;09/24/2007 07:08:49              .vol&#xA;08/15/2007 19:18:56              Applications&#xA;10/12/2007 06:01:52              bin&#xA;09/23/2007 21:37:30              dev&#xA;11 10/12/2007 05:55:18  slnk rhap   etc&#xA;09/24/2007 03:47:20              Install%20Mac%20OS%20X.app&#xA;10/12/2007 07:24:19              Instructions&#xA;10/12/2007 05:55:18              Library&#xA;10243756 10/10/2007 04:38:29              mach_kernel&#xA;10/12/2007 07:24:19              Optional%20Installs&#xA;10/12/2007 05:55:18              private&#xA;10/12/2007 06:01:16              sbin&#xA;10/12/2007 05:12:55              System&#xA;11 10/12/2007 05:55:19  slnk rhap   tmp&#xA;10/12/2007 05:12:55              usr&#xA;11 10/12/2007 05:55:19  slnk rhap   var&#xA;09/24/2007 07:08:49              Volumes&#xA;01/01/1904 00:00:00              HFS+%20Private%20Data&#xA;ok&#xA;0 &amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Abbiamo visto che OpenFirmware è riuscito a leggere il filesystem della periferica e quindi potrà avviare un loader da esso! Lo stesso procedimento va bene per qualsiasi altra periferica… in questo caso è il DVD di installazione di Mac OSX Leopard, facciamolo avviare:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;0 &amp;gt; boot usb1/hub@1/disk@3:3,SystemLibraryCoreServicesBootx&#xA;0 &amp;gt; boot usb1/hub@1/disk@3:3,SystemLibraryCoreServicesBootx load-size=2a8c4 adler32=86b8074c&#xA;parsing &amp;lt;CHRP-BOOT&amp;gt;&#xA;evaluating &amp;lt;BOOT-SCRIPT&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Voilà ;)&lt;/p&gt;&#xA;&lt;p&gt;Adesso che ho installato Leopard mi serve installare Ubuntu/PPC, quindi inserito il CD di installazione vediamo stavolta su quale partizione sta il filesystem che ci interessa!&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ mount&#xA;/dev/disk2s2 on /Volumes/Ubuntu_PowerPC_karmic (hfs, local, nodev, nosuid, read-only, noowners)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;stavolta sta sulla partizione numero 2, stesso procedimento: diamo un’occhiata al filesystem&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;0 &amp;gt; dir usb1/hub@1/disk@3:2,&#xA;Ubuntu_PowerPC_karmic&#xA;Size/        GMT                     File/Dir&#xA;bytes   date     time   TYPE CRTR    Name&#xA;01/01/1904 00:00:00             .disk&#xA;01/01/1904 00:00:00             casper&#xA;01/01/1904 00:00:00             dists&#xA;01/01/1904 00:00:00             etc&#xA;01/01/1904 00:00:00            *install&#xA;4047 10/27/2009 22:01:10  ???? ????  md5sum.txt&#xA;01/01/1904 00:00:00             pics&#xA;01/01/1904 00:00:00             pool&#xA;01/01/1904 00:00:00             ppc&#xA;01/01/1904 00:00:00             preseed&#xA;231 10/27/2009 22:00:55  ???? ????  README.diskdefines&#xA;ok&#xA;0 &amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Perfetto, riesce a leggerlo… avviamolo:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;0 &amp;gt; boot usb1/hub@1/disk@3:2,installyaboot&#xA;&#xA;Welcome to Ubuntu 9.10 (Karmic Koala)!&#xA;&#xA;This is an Ubuntu live CDROM,&#xA;built on 20091027.2.&#xA;&#xA;The default option is &#39;live&#39;.&#xA;If the system fails to boot at all (the typical&#xA;symptom is a white screen which doesn&#39;t go away),&#xA;use &#39;live video=ofonly&#39;.&#xA;Press the tab key for a list of options, or type&#xA;&#39;help&#39; for help.&#xA;&#xA;************************************&#xA;If in doubt, just press Enter, and if that&#xA;doesn&#39;t work, type &#39;live video=ofonly&#39;.&#xA;************************************&#xA;Welcome to yaboot version 1.3.13&#xA;Enter &amp;quot;help&amp;quot; to get some basic usage information&#xA;boot: live&#xA;&#xA;Please wait, loading kernel...&#xA;Elf32 kernel loaded...&#xA;Loading ramdisk...&#xA;ramdisk loaded at 01c00000, size: 5332 Kbytes&#xA;OF stdout device is: /packages/telnet&#xA;Preparing to boot Linux version 2.6.31-14-powerpc (buildd@adare) (gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu8) ) #48-Ubuntu Fri Oct 16 14:11:44 UTC 2009 (Ubuntu 2.6.31-14.48-powerpc)&#xA;command line:&#xA;memory layout at init:&#xA;alloc_bottom : 02136000&#xA;alloc_top    : 20000000&#xA;alloc_top_hi : 20000000&#xA;rmo_top      : 20000000&#xA;ram_top      : 20000000&#xA;found display   : /pci@f0000000/NVDA,Parent@10/NVDA,Display-A@0, opening... done&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Certamente non è una cosa velocissima ed intuitiva, ma in caso di emergenza/necessità è così che si fa ;)&lt;/p&gt;&#xA;&lt;p&gt;‘njoy ;)&lt;/p&gt;&#xA;&lt;p&gt;Grazie a &lt;a href=&#34;http://osxbook.com/book/bonus/ancient/whatismacosx/arch_boot.html&#34;&gt;questo interessante link&lt;/a&gt; ho potuto telnettarmi all’openfirmware del mio powerbook da un’altra macchina per poter copiare ed incollare l’output dei comandi!&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Ubuntu 9.10 e Tastiera PowerBook G4 12″</title>
      <link>https://panda.zenfunk.it/posts/2010-01-15-ubuntu-9-10-e-tastiera-powerbook-g4-12/</link>
      <pubDate>Fri, 15 Jan 2010 00:00:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2010-01-15-ubuntu-9-10-e-tastiera-powerbook-g4-12/</guid>
      <description>&lt;p&gt;Se anche voi avete sbattuto la testa provando tutte le combinazioni cercando di far funzionare il selettore del terzo livello &lt;strong&gt;[alt_gr]&lt;/strong&gt; sulla tastiera del vostro powerbook g4 su ubuntu 9.10/ppc.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://panda.zenfunk.it/img-post/opz_kbd.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;basta aggiungere&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;clear mod4&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;al vostro .Xmodmap o, se non ce lo avete gia, crearlo con:&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;in attesa che questa antipatica &lt;a href=&#34;http://ubuntuforums.org/showthread.php?t=1327189&amp;amp;highlight=ISO_Level3_Shift&#34;&gt;imperfezione&lt;/a&gt; venga risolta ufficialmente da qualche futuro aggiornamento, visto che le scorse release non ne erano affette e funzionava tutto subito.&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>
