ShareLaTeX è diventato open source

LaTeX è una tecnologia libera e open source che consente di creare pubblicazioni di qualità professionale a qualsiasi livello, dai CV ai libri, passando per le tesi di laurea e le pubblicazioni scientifiche. In particolare, la stragrande maggioranza — probabilmente più del 90% — dei libri universitari di matematica e informatica vengono scritti usando questa tecnologia, che non ha eguali nel software commerciale, e permette di inserire formule matematiche in modo facile.

Trattandosi di un vero e proprio linguaggio di markup, che viene poi “compilato” per generare un documento finito (ad esempio un PDF), può risultare difficile ai principianti. Per questo esistono ottimi progetti come LyX, che permettono di usare un editor WYSIWYM (What you see is what you mean — quello che vedi è quello che intendi). Io personalmente ho usato quest’ultimo per la mia tesi di laurea, e il risultato è stato molto soddisfacente.

Per chi lavora in gruppo, è fondamentale riuscire a collaborare sullo stesso documento, anche contemporaneamente. Questo è il motivo per cui sono nati progetti come ShareLaTeX, che permettono di lavorare con lo stile a cui ci hanno abituato suite quali Google Documenti e simili: più persone scrivono insieme e l’anteprima del documento viene mostrata istantaneamente, tutto quanto dentro al browser.

Interfaccia di ShareLaTeX
Interfaccia di ShareLaTeX

Nella figura potete vedere un esempio di relazione di gruppo a cui ho lavorato quando studiavo al DTU. È notizia di circa un mese fa che tutta la parte principale dell’applicazione web è diventata open source, con un annuncio inviato via email a tutti gli iscritti:

We’re starting by open-sourcing the core parts of ShareLaTeX, including the editor, the project and document storage systems, and the backend LaTeX compiler that we use. This is only the beginning of our open-source journey though, and we will be open sourcing much more soon.

Ciò implica la possibilità per tutti quanti di poter leggere e scaricare il codice per conoscere, imparare, e perché no anche installarlo sul proprio server personale. 🙂 Molto interessanti sono anche le motivazioni:

As a small team, we’re constantly receiving feature requests that we’d love to implement but don’t have the time. We’ve also had a lot of offers from willing volunteers who we’ve had to turn away because we didn’t have a framework for people to contribute. We hope that by open-sourcing ShareLaTeX we can empower our brilliant community to help improve ShareLaTeX in the ways that you want, without having to wait for the two of us to work down our todo list.

A lot of people have asked to host ShareLaTeX internally due to company guidelines or data privacy concerns. We don’t have the resources to support licensed installs at the moment, but we also hate having to say no. With an open-source version of ShareLaTeX, now anyone who wants to run it locally can.

Il codice è disponibile su GitHub.

Come sempre, abbiamo un ulteriore esempio di come l’apertura del codice permetta possibilità impensabili con software proprietario. Complimenti pertanto al team di ShareLaTeX!

Vi segnalo inoltre un’interessante prodotto simile, sempre disponibile come applicazione web, ovvero writeLaTeX, ho utilizzato con soddisfazione anche questo. Voi come utilizzate gli editor collaborativi online? Che ne pensate della possibilità di lavorare in gruppo con LaTeX? 😉

Usare Sage per risparmiare sulla “bolletta” del telefonino

Se state pensando che Sage sia “solo” un software open source per fare matematica siete un pochino riduttivi. Certo, è un software — o meglio una distribuzione software con un’interfaccia Python unificata — progettato per dare del filo da torcere a strumenti commerciali come Mathematica e Matlab, tuttavia nulla vi dice che lo potete usare solo per studiare matematica o fare delle ricerche scientifiche.

Ho deciso di scrivere questo post tanto per mostrare un uso “simpatico” e insolito di questo software libero, ovvero quello di risparmiare nella scelta del piano telefonico. Di recente sono tornato dalla Danimarca, perciò era il momento di passare a TIM, dato che è l’unica ad avere offerte decenti per l’utilizzo che ne faccio io e più o meno l’80% delle persone tra i 16 e i 24 anni in Italia, in particolare parlo di TIM Young.

Il “problema” quando si sceglie un operatore è che molti, se non tutti, decidono (a parte le possibili opzioni) di usare il classico piano tariffario di base che costa un buon prezzo al minuto, ma ha lo scatto alla risposta e viene tariffato a scatti anticipati di 30 secondi. Tuttavia spesso esiste anche un piano senza scatto alla risposta e tariffato al secondo, anche se il prezzo al minuto è più alto. Nel caso di TIM i piani che ho valutato sono:

Piani base di TIM presi in considerazione
Piani base di TIM presi in considerazione

Ebbene, vi mostrerò come usare Sage per dimostrare che TIM ZeroScatti è più conveniente di TIM 12 e che gli operatori si fanno una valanga di soldi con lo scatto alla risposta.

Partiamo dal principio: per gli SMS si vede subito che costano meno, ma quello poco importa visto che TIM Young dà 1000 SMS al mese inclusi nel prezzo, quindi ci interessano le chiamate. La prima cosa da fare è definire due funzioni per rappresentare le tariffe. Sage ci permette di definire e rappresentare su un grafico funzioni completamente arbitrarie, ma non solo cose del tipo 3x^2+\sin(x), bensì vere e proprie funzioni programmate in Python (anzi, nel linguaggio esteso di Sage). Ecco il codice per i due piani:


def tim_12(s):
    s = floor(s)
    while (s % 30 != 0):
        s += 1
    return 18 + 12*(s/60)

def tim_zeroscatti(s):
    s = floor(s)
    return ceil(s*20/60)

La prima è più complicata perché oltre ad arrotondare i secondi a un numero intero, ovviamente, bisogna anche incrementarli fino ad un multiplo di 30, poi sommare lo scatto. A questo punto, è sufficiente usare le funzionalità grafiche di Sage per creare in pochi semplici comandi un grafico molto chiaro:


(
    plot(tim_12, (x, 0, 240), color='blue') +
    plot(tim_zeroscatti, (x, 0, 240), color='red')
).show(axes_labels=['secondi','costo (cent)'])

Risultato finale con in rosso la tariffa ZeroScatti
Risultato finale con in rosso la tariffa ZeroScatti

Il risultato finale è che possiamo vedere a colpo d’occhio com’è la situazione. Se anche voi come me siete persone che non stanno sempre 30 minuti al telefono ad ogni chiamata, ma anzi solitamente le vostre chiamate durano meno di 2 minuti e 40 secondi allora significa che vi conviene notevolmente usare un piano tariffario senza scatto.

Detto questo, ovviamente ci vogliono pochi minuti a cambiare il codice per adattarlo alle tariffe di altri operatori e fare diverse prove in modo da scegliere la migliore, l’importante è che prima di cambiare operatore conosciate tutti i piani tariffari che potete scegliere, perché al negozio solitamente evitano di dirveli adducendo scuse cretine (ho sentito di persona frasi come “ah sì ci sarebbe anche quello che dice, però sono 20 cent al minuto”). Se non volete installare subito Sage potete provare e modificare il mio codice direttamente online sul Sage Cell Server.

Buona portabilità!

Matematica di base e avanzata con Sage — slide e video demo del mio talk

Al Linux Day 2012 svoltosi a Bassano del Grappa (VI) il 27 ottobre oltre ad aver trattato Impress, ho parlato anche di Sage e delle varie funzionalità matematiche che offre questo programma. Di seguito trovate la mia presentazione, in mezzo alla quale potete trovare quattro piccole video dimostrazioni di breve durata (da 1 a 3 minuti ciascuna).

Se preferite scaricare le slide, potete ottenerne una copia in PDF cliccando qui, e poi guardare le varie demo su Youtube:

Per quanto riguarda il frattale, trovate il codice sorgente discusso e commentato nel forum dei Giovani Matematici di Vicenza.