<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Open Source on Melabit</title>
    <link>https://static.233.196.69.159.clients.your-server.de/it/tags/open-source/</link>
    <description>Recent content in Open Source on Melabit</description>
    <generator>Hugo</generator>
    <language>it</language>
    <lastBuildDate>Thu, 02 Feb 2017 06:00:00 +0000</lastBuildDate>
    <atom:link href="https://static.233.196.69.159.clients.your-server.de/it/tags/open-source/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Perché open source</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2017/02/02/perche-open-source/</link>
      <pubDate>Thu, 02 Feb 2017 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2017/02/02/perche-open-source/</guid>
      <description>&lt;img src=&#34;http://thinkopensource.org/wp-content/uploads/2015/09/osi.jpg&#34; alt=&#34;&#34; title=&#34;© Open Source Matters – http://thinkopensource.org/open-sour-matters&#34;&gt;&lt;h4 id=&#34;free-e-open-source&#34;&gt;Free e open source&lt;/h4&gt;&#xA;&lt;p&gt;Sono da sempre un estimatore della distribuzione del software secondo il modello &lt;em&gt;free&lt;/em&gt; o &lt;em&gt;open source&lt;/em&gt; e se posso preferisco usare programmi di questo tipo. Anche il mio software &lt;em&gt;pubblico&lt;/em&gt; è distribuito secondo licenze di questo tipo (ad esempio &lt;a href=&#34;https://github.com/sabinomaggi/waterDE&#34;&gt;questo&lt;/a&gt;, appena &lt;a href=&#34;https://authors.elsevier.com/a/1UStL,63b~cpJX&#34;&gt;pubblicato&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Ma perché usare il software &lt;em&gt;free&lt;/em&gt; (ad accesso libero) o &lt;em&gt;open source&lt;/em&gt; (a sorgente aperto)?&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Le questioni filosofiche le lascio a personaggi del calibro di &lt;a href=&#34;https://it.wikipedia.org/wiki/Richard_Stallman&#34;&gt;Richard Stallman&lt;/a&gt;, massimo esponente del movimento del free sofware e fondatore del &lt;a href=&#34;https://www.gnu.org/philosophy/&#34;&gt;progetto GNU&lt;/a&gt;, e di &lt;a href=&#34;https://en.wikipedia.org/wiki/Eric_S._Raymond&#34;&gt;Eric Raymond&lt;/a&gt;, avvocato di un modello &lt;em&gt;aperto&lt;/em&gt; ma più vicino agli interessi dele aziende, che hanno descritto in modo egregio i fondamenti di questi modelli di distribuzione del software in due saggi imperdibili, &lt;a href=&#34;https://www.gnu.org/philosophy/fsfs/rms-essays.pdf&#34;&gt;Free Software, Free Society&lt;/a&gt; e &lt;a href=&#34;http://www.catb.org/~esr/writings/cathedral-bazaar/&#34;&gt;The Cathedral and the Bazaar&lt;/a&gt;&#xA;(la bibliografia finale rimanda alle versioni italiane di questi volumi).&lt;/p&gt;&#xA;&lt;h4 id=&#34;leggere-il-codice&#34;&gt;Leggere il codice&lt;/h4&gt;&#xA;&lt;p&gt;A me interessa affrontare qui una questione molto più spicciola e mostrare come l&amp;rsquo;accesso al codice permetta di migliorare la qualità del software e di correggerne rapidamente i bachi.&lt;/p&gt;&#xA;&lt;p&gt;Il concetto di &lt;em&gt;accesso al codice&lt;/em&gt; può sembrare campato in aria, riservato solo ad una piccola elite di programmatori esperti. In effetti mettere le mani nel codice è spesso molto più semplice di quanto si pensi e si può fare senza nemmeno essere programmatori esperti o particolarmente dotati.&lt;/p&gt;&#xA;&lt;p&gt;Ecco una piccola storia &lt;em&gt;pratica&lt;/em&gt; e personale. Non è la prima di questo genere che mi succede, ma è quella più recente.&lt;/p&gt;&#xA;&lt;h4 id=&#34;buttato-fuori&#34;&gt;Buttato fuori&lt;/h4&gt;&#xA;&lt;p&gt;Negli ultimi tempi mi sono occupato di sviluppare un &lt;a href=&#34;http://ilnostrocnr.it&#34;&gt;sito web&lt;/a&gt; &lt;em&gt;quasi istituzionale&lt;/em&gt; in Wordpress. La genesi è stata fin troppo lunga &amp;ndash; ci sono sempre mille cose da fare ogni giorno &amp;ndash; ma alla fine il sito è stato &lt;a href=&#34;http://ilnostrocnr.it/2017/01/25/presentazione-del-sito-il-nostro-cnr/&#34;&gt;presentato ufficialmente&lt;/a&gt; la settimana scorsa.&lt;/p&gt;&#xA;&lt;p&gt;Per vari motivi non ho sviluppato il sito sul mio Mac, dove avrei potuto usare un sistema di revisione e tenere traccia diretta di tutti i cambiamenti, ma direttamente sul server che ospita il sito. Anzi, per stare sicuro, per lo sviluppo vero e proprio ho usato una &lt;em&gt;copia&lt;/em&gt; del sito, sul quale provavo le novità prima di trasferirle al sito principale.&lt;/p&gt;&#xA;&lt;p&gt;Come è ovvio, gli ultimi giorni prima della presentazione sono stati frenetici, con un sacco di aggiunte e di modifiche dell&amp;rsquo;ultimo minuto. In questi casi la disciplina va a farsi benedire: non c&amp;rsquo;era semplicemente tempo di provare ogni cosa sulla copia prima di trasferirla al sito vero e proprio. Ed è chiaro che in questi casi, con una scadenza in vista, c&amp;rsquo;è un rischio altissimo che succeda qualche guaio all&amp;rsquo;ultimo minuto.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Infatti.&lt;/p&gt;&#xA;&lt;p&gt;All&amp;rsquo;improvviso, dopo chissà che operazione, sono stato buttato fuori senza complimenti dal mio account di amministratore. Il sito era lì vivo e vegeto, ma di fatto non potevo fare più niente.&lt;/p&gt;&#xA;&lt;p&gt;Per fortuna potevo almeno accedere all&amp;rsquo;interfaccia di gestione del server. Da qui la cosa più semplice da fare sarebbe stata quella di ripristinare il sito e il database dall&amp;rsquo;ultimo backup &amp;ndash; fatto ore prima! &amp;ndash; cercando poi di ricordare tutto quello che avevo cambiato dopo il backup. Una cosa praticamente impossibile.&lt;/p&gt;&#xA;&lt;p&gt;Ma per fortuna ci sono i file di log di Wordpress e lì l&amp;rsquo;errore era stampato chiarissimo, con il nome del file e la riga esatta dove si era verificato il problema. Il colpevole era un plugin di Wordpress che avevo aggiornato poco prima senza patemi. Sembrava inoffensivo: non faceva niente di fondamentale, serviva solo a configurare lo stile grafico del forum del sito.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://wordpress.org/&#34;&gt;Worpress&lt;/a&gt; è open source e anche i plugin lo sono, quindi il codice è disponibile e si può leggere e modificare a piacere.&lt;/p&gt;&#xA;&lt;p&gt;Perfino uno come me, con una conoscenza solo basilare di &lt;a href=&#34;https://secure.php.net/&#34;&gt;PHP&lt;/a&gt; e &lt;a href=&#34;https://www.javascript.com/&#34;&gt;JavaScript&lt;/a&gt; con cui è scritto Wordpress, con un&amp;rsquo;occhiata veloce poteva capire il motivo dell&amp;rsquo;errore, una (molto) banale svista del programmatore. Errore che però aveva conseguenze così gravi da impedirmi di lavorare al sito.&lt;/p&gt;&#xA;&lt;p&gt;Rapida correzione, salvataggio, tutto a posto e in mezz&amp;rsquo;ora potevo di nuovo entrare nel mio account e tornare lavorare come prima.&lt;/p&gt;&#xA;&lt;p&gt;Naturalmente sono andato nell&amp;rsquo;area di supporto del plugin e ho descritto quello che era successo e come avevo risolto il problema. In fondo, se qualcuno ti da un software gratis, è il minimo che si possa fare per sdebitarsi.&lt;/p&gt;&#xA;&lt;p&gt;Dopo poche ore era uscita la versione aggiornata e corretta del plugin.&lt;/p&gt;&#xA;&lt;p&gt;Provate ad avere un problema serio con un prodotto commerciale, magari pagato a caro prezzo, e poi ditemi come e in quanto tempo viene risolto. Non ci sarebbe storia.&lt;/p&gt;&#xA;&lt;h4 id=&#34;bibliografia&#34;&gt;Bibliografia&lt;/h4&gt;&#xA;&lt;p&gt;Per una volta i volumi citati sopra sono disponibili in italiano. Ho aggiunto anche un bellissimo libro di Sam Williams che tratta della vita e delle ragioni di Richard Stallman nel contesto della cultura &lt;em&gt;hacker&lt;/em&gt; degli anni &amp;lsquo;80.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Eric Raymond, &lt;em&gt;La cattedrale e il bazaar&lt;/em&gt;, 1998, Apogeo. Disponibile in italiano in una &lt;a href=&#34;http://www.apogeonline.com/openpress/cathedral&#34;&gt;prima versione ridotta&lt;/a&gt; rispetto al &lt;a href=&#34;http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/&#34;&gt;testo originale&lt;/a&gt; aggiornato.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Richard_Stallman, &lt;em&gt;Software libero pensiero libero - Volume primo&lt;/em&gt;, Stampa Alternativa, 2003. Disponibile online in &lt;a href=&#34;http://www.stampalternativa.it/liberacultura/books/softlib1.pdf&#34;&gt;formato pdf&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Richard_Stallman, &lt;em&gt;Software libero pensiero libero - Volume secondo&lt;/em&gt;, Stampa Alternativa, 2004. Disponibile online in &lt;a href=&#34;http://www.stampalternativa.it/liberacultura/books/softlib2.pdf&#34;&gt;formato pdf&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Sam Williams, &lt;em&gt;Codice Libero (Free as in Freedom&lt;/em&gt;, Apogeo, 2010.  Disponibile online in &lt;a href=&#34;http://www.apogeonline.com/libri/9788850311224/scheda&#34;&gt;formato ePub/Kindle&lt;/a&gt; e &lt;a href=&#34;https://itunes.apple.com/it/book/codice-libero-free-as-in-freedom/id588162095?l=en&amp;amp;mt=11&#34;&gt;per iBooks&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;post-scriptum&#34;&gt;Post scriptum&lt;/h4&gt;&#xA;&lt;p&gt;Oltre al senso di &lt;em&gt;libertà&lt;/em&gt;, ciò che ho appena descritto è una delle cose più interessanti dell&amp;rsquo;open source: ci sono così tanti occhi e tanti cervelli con competenze diverse che è normalmente molto facile risolvere i problemi, molto più facile che con un team fisso di sviluppatori, con competenze per forza di cose più statiche.&lt;/p&gt;&#xA;&lt;p&gt;E poi dai, contribuire a qualcosa senza nemmeno conoscersi, senza avere un interesse economico diretto, fa bene allo spirito e forse anche alla società. Fa meno bene al portafoglio, ma non si può avere sempre tutto.&lt;/p&gt;&#xA;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;&#xA;&lt;hr&gt;&#xA;&lt;ol&gt;&#xA;&lt;li id=&#34;fn:1&#34;&gt;&#xA;&lt;p&gt;Le differenze fra il software &lt;em&gt;free&lt;/em&gt; e quello &lt;em&gt;open source&lt;/em&gt; sono spiegate piuttosto bene in questo &lt;a href=&#34;https://www.whitesourcesoftware.com/whitesource-blog/open-source-free-software/&#34;&gt;breve articolo&lt;/a&gt; e, in modo più approfondito, in queste pagine di &lt;a href=&#34;https://it.wikipedia.org/wiki/Open_source&#34;&gt;Wikipedia&lt;/a&gt; e &lt;a href=&#34;http://wiki.c2.com/?FreeSoftwareVsOpenSource&#34;&gt;WikiWikiWeb&lt;/a&gt;. Imprescindibile anche il punto di vista &lt;a href=&#34;https://www.gnu.org/philosophy/open-source-misses-the-point.html&#34;&gt;del progetto GNU&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:2&#34;&gt;&#xA;&lt;p&gt;Persino il backup a volte non basta: se si fanno modifiche continue, anche perdere un paio di ore di lavoro ripristinando da Time Machine può essere un danno gravissimo.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
    <item>
      <title>Homebrew: software per il Mac fatto in casa</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2014/04/29/homebrew-software-per-il-mac-fatto-in-casa/</link>
      <pubDate>Tue, 29 Apr 2014 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2014/04/29/homebrew-software-per-il-mac-fatto-in-casa/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://brew.sh/&#34;&gt;Homebrew&lt;/a&gt; è un sistema di gestione dei pacchetti (&lt;em&gt;package&lt;/em&gt;) che semplifica l&amp;rsquo;installazione su OS X del software open source di derivazione Unix/Linux.&lt;/p&gt;&#xA;&lt;p&gt;Homebrew si autodefinisce &amp;ldquo;The missing package manager for OS X&amp;rdquo; (&lt;em&gt;Il gestore di pacchetti per OS X che mancava&lt;/em&gt;), una definizione un po&amp;rsquo; sfrontata &amp;ndash; in particolare nelle prime fasi dello sviluppo alcuni anni fa &amp;ndash; ma ormai non troppo lontana dalla realtà.&lt;/p&gt;&#xA;&lt;p&gt;La sua semplicità di installazione e di uso l&amp;rsquo;hanno fatto &lt;a href=&#34;https://sourceforge.net/projects/machomebrew/files/stats/timeline?dates=2013-01-01&amp;#43;to&amp;#43;2014-04-26&#34;&gt;crescere rapidamente in popolarità nell&amp;rsquo;ultimo anno&lt;/a&gt;, a scapito dei sistemi concorrenti più affermati, &lt;a href=&#34;https://finkproject.org/&#34;&gt;Fink&lt;/a&gt; e &lt;a href=&#34;https://www.macports.org/&#34;&gt;MacPorts&lt;/a&gt; (quest&amp;rsquo;ultimo supportato direttamente da Apple).&lt;/p&gt;&#xA;&lt;p&gt;A differenza di questi ultimi, Homebrew cerca di usare per quanto è possibile gli strumenti software di base già presenti in OS X &amp;ndash; gcc, perl, python, ruby, git, mysql, sqlite &amp;ndash; e non obbliga l&amp;rsquo;utente ad installare duplicati inutili. I package suddetti sono comunque disponibili nell&amp;rsquo;archivio (&lt;em&gt;repository&lt;/em&gt;) di Homebrew, per chi avesse bisogno di utilizzare versioni più recenti (e a volte meno stabili) di quelle utilizzate dalla Apple.&lt;/p&gt;&#xA;&lt;p&gt;Da qualche mese Homebrew fornisce anche un gran numero di &lt;a href=&#34;https://github.com/Homebrew/homebrew/wiki/Bottles&#34;&gt;pacchetti precompilati&lt;/a&gt; (&lt;em&gt;bottles&lt;/em&gt;), velocizzando notevolmente il processo di installazione e di aggiornamento dei pacchetti, che non devono più essere obbligatoriamente compilati uno alla volta.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://apple.stackexchange.com/questions/32724/what-are-pros-and-cons-for-macports-fink-and-homebrew&#34;&gt;Questa pagina su Stack Exchange&lt;/a&gt; approfondisce i pro e contro dei tre principali sistemi di gestione dei pacchetti su OS X.&#xA;&lt;a href=&#34;https://www.onthelambda.com/2013/10/14/the-state-of-package-management-on-mac-os-x/&#34;&gt;The state of package management on Mac OS X&lt;/a&gt; è una analisi piuttosto approfondita dei pregi e dei difetti di tutti i sistemi di gestione dei pacchetti per OS X, considerando anche quelli meno diffusi e supportati.&lt;/p&gt;&#xA;&lt;p&gt;Una delle questioni più controverse riguardanti Homebrew riguarda il fatto che tutti i pacchetti sono installati all&amp;rsquo;interno della cartella (&lt;em&gt;directory&lt;/em&gt;) &lt;code&gt;/usr/local/&lt;/code&gt;. Alcuni critici &lt;a href=&#34;https://terrychay.com/article/macports-vs-homebrew.shtml&#34;&gt;osteggiano questa scelta&lt;/a&gt;, notando fra l&amp;rsquo;altro che:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;/usr/local/&lt;/code&gt; è una cartella di sistema che non dovrebbe essere usata da Homebrew ma solo dal software installato dall&amp;rsquo;utente &lt;code&gt;root&lt;/code&gt; (l&amp;rsquo;amministratore onnipotente dei sistemi basati su Unix);&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Homebrew modifica i permessi di alcune cartelle contenute all&amp;rsquo;interno di &lt;code&gt;/usr/local/&lt;/code&gt; assegnandoli all&amp;rsquo;utente che installa il gestore di pacchetti, mentre i permessi dovrebbero essere configurati in modo che le suddette cartelle siano usabili da tutti gli utenti del sistema;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;è  da preferire invece la scelta di MacPorts o Fink di usare delle cartelle create ad-hoc, rispettivamente &lt;code&gt;/opt/&lt;/code&gt; o &lt;code&gt;/sw/&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Personalmente mi sembrano critiche risibili e che i vantaggi in termini di praticità e di sicurezza delle scelte fatte dagli sviluppatori di Homebrew superino di gran lunga i presunti svantaggi.&lt;/p&gt;&#xA;&lt;p&gt;Del resto &lt;code&gt;/usr/local/&lt;/code&gt; e le cartelle in esso contenute sono fatte apposta per installare software specifico per la macchina in uso, vengono usate ad esempio da &lt;a href=&#34;https://tug.org/mactex/&#34;&gt;MacTeX&lt;/a&gt; e da &lt;a href=&#34;https://pages.cs.wisc.edu/~ghost/&#34;&gt;Ghostscript&lt;/a&gt;, e non capisco cosa impedisca di usarle liberamente anche per altre applicazioni.&lt;/p&gt;&#xA;&lt;p&gt;Assegnare i permessi di installazione e di uso dei pacchetti di Homebrew ad un singolo utente, piuttosto che a &lt;em&gt;root&lt;/em&gt;, limita i rischi di sicurezza che il software installato potrebbe creare nel sistema. Inoltre è difficile negare che il Mac sia un sistema fondamentalmente monoutente, per cui questa scelta dovrebbe comunque andare bene nella maggior parte dei casi.&lt;/p&gt;&#xA;&lt;p&gt;Nei casi rimanenti di un Mac condiviso da più utenti, indipendentemente dal fatto che ci giri OS X &lt;em&gt;liscio&lt;/em&gt; o OS X Server, chi gestisce il sistema dovrebbe essere facilmente in grado di assegnare il gruppo utente giusto a chi è interessato ad usare i pacchetti di Homebrew.&lt;/p&gt;&#xA;&lt;p&gt;Di sicuro una cosa non più complicata di dover aggiungere al &lt;code&gt;PATH&lt;/code&gt; di ciascun utente il percorso della cartella (/opt/ o /sw/ a seconda dei casi) in cui vengono installati i pacchetti gestiti da MacPorts o Fink.&lt;/p&gt;&#xA;&lt;p&gt;Nel corso del tempo ho usato tutti e tre i sistemi di gestione dei pacchetti, stabilizzandomi da almeno due anni su Homebrew che trovo complessivamente molto più lineare e usabile, senza le troppe opzioni di compilazione di MacPorts, che portano fin troppo spesso a incompatibilità con i pacchetti installati successivamente, o la confusione fra pacchetti binari e sorgenti, &lt;a href=&#34;https://www.finkproject.org/doc/users-guide/packages.php?phpLang=en&#34;&gt;con comandi diversi di installazione&lt;/a&gt;, di Fink.&lt;/p&gt;&#xA;&lt;p&gt;Dopo questa lunga introduzione, nel &lt;a href=&#34;https://melabit.wordpress.com/2014/05/04/homebrew-installazione-e-disinstallazione/&#34;&gt;prossimo post vedremo come installare (ma anche disinstallare) Homebrew&lt;/a&gt;, &lt;del&gt;esaminando anche i principali comandi di gestione dei pacchetti&lt;/del&gt;.&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>
