Software

Le app e i servizi che sviluppo io, prima di tutto per me e poi per chiunque: gratuiti, con il codice pubblico e una licenza libera.

11 programmi: 9 app e 2 servizi online · licenze AGPLv3 (9) e GPLv3 (2)

Vi è mai capitato di cercare un programma per una cosa precisa e di trovare solo programmi che fanno quasi quello che vi serve, ma non nel modo in cui vi serve? A me è successo. E la mia risposta è stata costruirmeli.

Sono nate così le app di questa pagina: le uso io per primo, ogni giorno, e le sviluppo nel tempo libero, perché per me sono un hobby e non il mio lavoro. Qui sotto le trovate divise per quello che vi serve: le app si installano sul computer, i servizi si aprono nel browser.

Le app e i servizi, per quello che vi serve

App da installare

Si installano sul computer: Linux per primo, poi Windows e macOS.

  • Doku

    Scrivere, dagli appunti ai libri

    L'editor Markdown per appunti e documenti: l'anteprima accanto al testo, l'export in PDF e nessun account.

    Linux · Windows · macOS Licenza AGPLv3

  • Pecie

    Scrivere, dagli appunti ai libri

    Lo studio editoriale per tesi, libri e manuali: capitoli separati, fonti e citazioni, cronologia ed export in tanti formati.

    Linux · Windows · macOS Licenza AGPLv3

  • PDFix

    Lavorare con i PDF

    Venticinque strumenti per i PDF in una sola finestra: unire, dividere, ruotare, compilare, proteggere e convertire, sul vostro computer.

    Linux · Windows · macOS Licenza AGPLv3

  • LibrePM

    Gestire progetti, bandi e associazioni

    La gestione dei progetti, libera e sul vostro computer: task, Kanban, Gantt, calendario, budget, bandi e stakeholder.

    Linux · Windows · macOS Licenza AGPLv3

  • AssociaGo

    Gestire progetti, bandi e associazioni

    Il gestionale per associazioni e terzo settore: soci, quote, eventi, finanze, assemblee e attestati, con i dati sul vostro computer.

    Linux · Windows · macOS Licenza AGPLv3

  • Glaia

    Usare l'intelligenza artificiale con ordine

    Uno spazio desktop per i servizi di intelligenza artificiale che usate sul web: i fornitori nella barra laterale, ognuno nella sua sessione.

    Linux · Windows · macOS Licenza AGPLv3

  • OpenDSA: Reading

    Allenare la lettura

    Esercizi di lettura ad alta voce, con riconoscimento vocale offline, profili separati e ricompense per non mollare.

    Linux · gli altri sistemi dal codice sorgente Licenza GPLv3

  • Scopa

    Giocare a carte, e imparare a programmare

    Il gioco di carte della tradizione, voi contro il computer: prese, scope, settebello e primiera, fino a 11 punti.

    Linux · Windows e macOS con Python Licenza AGPLv3

  • Think Go: Briscola

    Giocare a carte, e imparare a programmare

    La Briscola contro il computer, con tre livelli di avversario, e un progetto in Go fatto apposta per essere studiato.

    Linux · Windows · macOS Licenza GPLv3

Servizi online

Si aprono nel browser, senza installare niente, oppure si installano sul vostro server.

  • FlyingNotes

    Scrivere, dagli appunti ai libri

    Un editor Markdown nel browser per le note al volo: testo e anteprima affiancati, poi salvate il file o stampate il PDF.

    Nel browser · sul vostro server Licenza AGPLv3

  • Shorty

    Condividere un link

    Accorcia un link e vi fa scegliere quando farlo scadere: dopo 7, 15, 30 o 90 giorni.

    Nel browser · sul vostro server Licenza AGPLv3

Perché sono libere

Quando installate un programma, di fatto gli aprite la porta di casa: i vostri documenti, i vostri file, il vostro lavoro. E se il codice è chiuso, potete solo fidarvi sulla parola.

Con il codice pubblico, invece, chiunque può aprirlo e controllare che cosa fa davvero. Per questo le mie app hanno tutte una licenza libera. Nove su undici usano la GNU Affero General Public License, cioè la AGPLv3. Le altre due, OpenDSA: Reading e Think Go: Briscola, usano la GNU General Public License, cioè la GPLv3.

Che cosa vuol dire, in pratica? Che potete usarle, studiarne il codice, modificarlo e ridistribuirlo. La condizione è una sola: chi le ridistribuisce deve lasciare le stesse libertà a chi viene dopo.

Prendiamo Shorty, il servizio che accorcia i link. Immaginiamo che qualcuno lo modifichi e lo offra online, senza mai darvi un file da scaricare. Con la AGPLv3 la regola vale lo stesso: anche chi offre una versione modificata attraverso la rete deve usare la stessa licenza e mettere a disposizione il codice sorgente.

Ma se è tutto gratis e tutto aperto, chi paga? Io ve lo spiego così: il codice resta libero, sempre. Quello che si può sostenere è il tempo che ci vuole a scriverlo e a mantenerlo.

C'è poi una scelta che vedrete in ogni scheda: Linux viene per primo, perché è il sistema su cui lavoro. Molte app le trovate già su Ufficio Zero Linux OS, la distribuzione italiana con cui collaboro, oppure nel mio repository firmato AppRelease. Poi ci sono Windows e macOS.

E questa è la cosa importante: un programma di cui potete leggere il codice non vi chiede fiducia, vi lascia verificare.

Finanzia la funzione

Le idee migliori, spesso e volentieri, arrivano da chi usa le app. È già successo con Glaia: è arrivata la richiesta di un formato in più per Linux, e accanto ai pacchetti .deb e .rpm ho aggiunto l'AppImage.

Il problema nasce quando una funzione richiesta chiede molto lavoro, perché il tempo per farla è il mio tempo libero. Per questi casi c'è un metodo: la funzione la potete finanziare insieme. Funziona così:

  1. Si parte da una richiesta vera: una segnalazione su GitHub o i vostri commenti sotto i video.
  2. Stimo le ore che servono e le scrivo nella pagina dell'app, accanto alla funzione. Da lì nasce l'obiettivo della raccolta.
  3. Aggiorno l'avanzamento a mano, dalle ricevute: niente contatori automatici e niente conti alla rovescia per mettervi fretta.
  4. Prima di aprire la raccolta scrivo che cosa succede se l'obiettivo non si raggiunge: i contributi tornano a chi li ha dati, oppure vanno al fondo generale del progetto.
  5. Quando la funzione è pronta, esce con la stessa licenza libera dell'app: per tutti, anche per chi non ha contribuito.

E qui arriva l'obiezione: chi non ha contribuito la usa gratis? Sì, ed è giusto così. Con il vostro contributo pagate il tempo che serve a scriverla, non il permesso di usarla.

Per ora non c'è nessuna raccolta aperta. Quando ce ne sarà una, la troverete nella pagina dell'app a cui serve.

Il principio, quindi, è semplice: si finanzia il lavoro, mai l'accesso.

Il codice, su GitHub

Una domanda concreta: dove sta, fisicamente, il codice di tutte queste app? Sta su GitHub, nel mio profilo. È la mia officina digitale, aperta dal 2018: lì condivido progetti, esperimenti e strumenti, sviluppati secondo la filosofia del software libero.

Dietro c'è un'idea semplice. Ogni riga di codice è un'occasione per imparare e per insegnare. Lo sviluppo aperto permette a chiunque di esaminare il codice, verificarlo e migliorarlo. E il confronto con sviluppatori di tutto il mondo fa crescere me e i progetti: succede nelle issue, cioè le segnalazioni, e nelle pull request, cioè le modifiche proposte da altri. Perché il software, secondo me, deve essere comprensibile e utilizzabile da tutti, e chi lo usa deve poterlo studiare, modificare e ridistribuire.

Come lavoro lì dentro? Con cinque regole:

  • codice pulito e documentato, così chi arriva dopo di me capisce che cosa fa;
  • test automatici, per controllare che il programma funzioni come deve;
  • le convenzioni e le buone pratiche della comunità, invece di regole inventate da me;
  • la sicurezza pensata fin dalle prime fasi del progetto, non aggiunta alla fine;
  • un uso attento delle risorse, perché anche il codice che gira ha un impatto sull'ambiente.

E dove voglio arrivare? A strumenti sempre più utili, con una documentazione che li renda accessibili anche a chi è alle prime armi. A nuove tecnologie esplorate senza perdere di vista la libertà di chi le usa. E a un ponte tra lo sviluppo del software e la divulgazione sulla libertà digitale. Perché il software libero, per me, ha un impatto sociale profondo: porta la tecnologia a più persone, lascia il controllo a chi la usa, riduce il divario digitale con alternative accessibili e dimostra che si può sviluppare in un altro modo, in modo sostenibile ed etico. E spero che convinca anche altri sviluppatori a fare lo stesso.

A questo punto qualcuno potrebbe dire: io non sono uno sviluppatore, GitHub mi serve a qualcosa? Sì, perché per aiutare un progetto non serve saper programmare. Ecco che cosa potete fare:

  • seguire il mio profilo e mettere una stella ai progetti, così vedete per primi quelli nuovi;
  • segnalare un problema o suggerire un miglioramento, con una issue;
  • proporre una modifica al codice, con una pull request;
  • fare un fork, cioè una copia del progetto, per sviluppare la vostra versione;
  • condividere i progetti con chi potrebbe trovarli utili;
  • sostenere lo sviluppo con una donazione.

Insomma, la regola è questa: un progetto libero cresce con chi lo usa, lo segnala e ne parla.

«In fondo non siamo tutti artigiani dei nostri sogni?»

— Lorenzo DM

Su GitHub dal
Linguaggi e strumenti
Java, C, C++, Go, Python, HTML/CSS, JavaScript, AJAX, Bootstrap, Vue, Flutter, Dart, Bash
Il mio profilo su GitHub