go home

LE MIE APPLICAZIONI

Come ho detto trovo insopportabile windows: cosa dire di un sistema operativo dove per spegnere il computer devi premere il pulsante 'start'? E dei misteriosi messaggi di errore? E delle configurazioni incomprensibili e nascoste? Dopo averlo usato per un anno ho deciso che non faceva per me. Per un altro annetto ho usato un computer mac, ma ben presto mi sono stufato di una macchina che faceva quello che voleva Steve Jobs e non quello che volevo io.
Dunque da oltre 25 anni uso Linux; passando da un computer all'altro ho installato varie distribuzioni: SUSE, Red Hat, Gentoo, Ubuntu e, ultima e attualmente usata, ArchLinux. Dico subito, per chi volesse avvicinarsi a Linux, che in fondo si equivalgono: una volta installato il pacchetto di base qualunque distribuzione può utilizzare qualunque window manager (a me, per esempio, non piacciono nè KDE nè GNOME: troppo pesanti, proprietarie, simili a windows: per avere un pc veloce e configurato a mio modo uso Openbox), e nell'utilizzo del computer non fa alcuna differenza da quale distribuzione si sia partiti. Le principali differenze risiedono nella maggiore o minore difficoltà di installazione del sistema-base, nella facilità nell'installare le applicazioni e nell'aggiornare sistema e pacchetti.
Da questo punto di vista la distribuzione più 'facile' è certamente Ubuntu, mentre ArchLinux è un po' complicata da installare, ma meglio configurabile e, soprattutto, è una 'rolling release' (cioè viene continuamente aggiornata: non mi troverò un brutto giorno a fare un complicato upgrade a una nuova versione, come accade agli utenti Ubuntu o, per capirci, agli utenti Windows nel passare da winxp a win2000 a win8 a win10 ecc.).
Uso dunque Linux con grande soddisfazione: mi piace la mia macchina e ho imparato molte cose su come funziona un computer. C'è però un problema: tutte le principali applicazioni sono disponibili e gratuite, ci sono browser per ogni gusto (be' manca Internet Explorer, ma non è certo una gran perdita), editor di testo pari per prestazioni a Office, buone applicazioni di grafica ecc.; quando però si passa ad applicazioni più 'dedicate', per, ad esempio, gestire un ufficio, una scuola, uno studio medico o quello che volete, è difficile trovare il software adatto. Le case produttrici di software vogliono, giustamente, guadagnare e producono applicazioni capaci di girare sui computer della maggioranza degli utenti: Windows e Mac; queste applicazioni su Linux, comunità open source dove il software è quasi tutto gratuito e frutto della collaborazione tra sviluppatori, spesso mancano. Un 'workaround' è l'uso di emulatori virtuali che permettono di eseguire un sistema operativo dentro un altro sistema: oggi ne esistono di ottimi, come VirtualBox di Oracle, ma quando io ho cominciato era disponibile solo Wine, ed era ai primi passi.
Quando dunque 20 anni fa sono diventato 'orarista' della mia scuola avevo solo tre possibilità per compilare l'orario scolastico: o installare Windows sul mio computer, o prendere carta e penna e lavorare a mano, aiutandomi eventualmente con un foglio di calcolo, o farmi coraggio e provare a costruirmi un programma. Ovviamente ho scelto la terza soluzione.
In realtà non ho scritto vere applicazioni, non ho mai imparato a programmare in C o C++; mi è sembrato molto più semplice ed 'economico' inserire i dati in un database (ho usato MySQL) e imparare a usare un linguaggio che permettesse di interrogare e modificare il DB: nei primi tentativi ho usato Perl, poi sono passato a PHP.
Avertimento importante: non pensate di scaricare queste applicazioni, fare clic su un file .exe e cominciare ad usarle. Per utilizzare i miei script avete bisogno di un server correttamente configurato (io uso Apache, ma dovrebbe andare bene qualunque web server, ad esempio nginx), di un database MYSQL e del linguaggio scripting PHP; insomma, i miei programmi sono 'parassiti' di altri programmi che devono risiedere sui vostri computer.
A rigore chiunque li può utilizzare: apache, mysql e php esistono per windows (e credo anche per mac), ma mentre tutte le distribuzioni Linux comprendono questi pacchetti e permettono una facile installazione gli utenti windows devono trovare la versioni adatte al loro sistema operativo (l'ultima volta che ho cercato di installare php dentro un windows8 sono impazzito e alla fine mi sono arreso), installarle e configurarle manualmente. Insomma, mentre mi sento di consigliare l'utilizzo dei miei lavori agli utenti linux tenderei a scoraggiare chi usa windows: rischia di sbattere la testa!
Una volta che il vostro computer possiede questi prerequisiti dovrete scompattare i file compressi in una cartella raggiungibile dal server http, leggere le istruzioni e lanciare da un browser il file di partenza (INIZIO_E_BUTTAMI.php per orario_elettronico, index.php per le altre); questo file creerà, inseriti alcuni dati che dovete conoscere (server -normalmente localhost - , utente privilegiato e password per accedere a mysql), i database e le cartelle necessarie e potrete cominciare a popolare il DB e a usare i programmi: tutto dovrebbe essere (insomma, a mio parere è) semplice a automatico.
Bene, partiamo con i miei programmi!


ORARIO_ELETTRONICO

orarelettr
Questo è il mio capolavoro, nel senso proprio di lavoro in cui un artigiano o operaio dimostra le proprie abilità.
Ho cominciato a lavorarci per procurarmi uno strumento di lavoro, ma poi mi ci sono appassionato e sono tornato a occuparmene a più riprese (siamo alla versione 7.1). Inizialmente si limitava a consentire l'assegnazione manuale di ore: le pagine delle classi potevano - e possono - modificare l'assegnazione delle ore agli insegnanti, e nella parte inferiore della pagina erano visibile le tabelle degli orari settimanali di tutti gli insegnanti della classe, in modo da sapere al volo se fossero liberi o occupati (naturalmente, se occupati in altre classi, l'assegnazione nella classe aperta liberava contemporaneamente l'ora nella classe in cui erano originariamente occupati).
Era già qualcosa, ma poi mi sono messo in testa di costruire uno script che consentisse di assegnare le ore automaticamente e di riempire l'orario con un solo clic. Si trattava di dare una serie di istruzioni che assegnassero le ore, le spostassero via via che si passava alle classi successive, e tutto questo rispettando le restrizioni stabilite nella creazione o modifica delle classi. Confesso che ci ho passato molte notti (e mi sono divertito a farlo), alla fine ne è uscito un lavoro di cui vado orgoglioso: è uno script immenso, con funzioni e subfunzioni, di oltre 20000 righe, che, se le restrizioni sono realizzabili, riempie l'orario velocemente e con assoluta esattezza.

Due soli limiti importanti, che io sappia: 1) il programma non gestisce le compresenze (ho sempre insegnato nei licei e non so come funzioni la cosa; a un certo punto ho tentato di occuparmene ma ho lasciato perdere); 2) il programma è assolutamente obbediente: se avete posto delle restrizioni cercherà di rispettarle assolutamente (è importante, insomma, non chiedere l'impossibile). Non accade, come in alcune applicazioni che ho visto, che vi venga proposto un orario in cui alcune delle limitazioni imposte non siano rispettate e vi venga comunicato con un messaggio di warning. Se, ad esempio, non è possibile realizzare quanto da voi richiesto per inglese in 5A (esempio semplice di impossibilità - ma di una simile banalità orario_elettronico si renderebbe conto in una frazione di secondo -: inglese deve fare tre ore settimanali, non può avere più di un'ora al giorno e le tre ore non devono essere in giorni consecutivi, ma in questa classe l'insegnante di inglese è condiviso con altri istituti ed è disponibile solo lunedì, martedì e mercoledì: non si può proprio fare!) , il programma cercherà tutte le soluzioni che può figurarsi (e sono tante, può richiedere tempo!) e se non ne trova non assegnerà le ore di inglese nella 5A: starà a voi assegnarle manualmente e decidere quali restrizioni violare (nel nostro esempio potrete assegnare le ore di inglese nei tre giorni, violando la condizione della non consecutività, oppure dare una 'doppietta' il lunedì, utile per i compiti in classe, e un'ora il mercoledì. Sono scelte tutte possibili, ma non previste nelle istruzioni, e orario_elettronico non ci ficca il naso).

Ultime cose: le restrizioni possibili sono molte e il programma è ben configurabile. Potete stabilire quante ore al giorno l'insegnate può lavorare, se e in quali giorni può superare la restrizione, se deve avere 'doppiette' per il compito in classe e prima di quale ora le doppiette vanno collocate (non è bello fare scritti alla ultime ore!), se le lezioni non possono essere in giorni consecutivi, se alcune materie non possono stare nello stesso giorno (tipicamente religione ed educazione fisica, per evitare giorni in cui si concentrano ore 'leggere') e altro.
Ci sono parecchie utilità collaterali, esplorate il programma! Particolarmente utile è la pagina "quadro di controllo" dove potete vedere 'al volo' se l'orario è completo, se mancano ore e in quali classi, se alcune condizioni sono violate (vedi sopra), se ci sono errori gravi (esempio: un insegnante in una classe ha più ore del dovuto; un errore che potete fare voi a mano, lo script automatico non dovrebbe mai farlo e, nella mia esperienza, non l'ha mai fatto).
Nella cartella 'doc' trovate una documentazione, non aggiornata alle ultime versioni, ma tutto sommato esauriente.

Detto questo, cliccate qui o sull'immagine per andare alla pagina di orario_elettronico e scaricarlo o provare la demo online.

HAUSHALT

haushalt
Questo programmino permette di controllare il bilancio domestico (haushalt in tedesco significa bilancio!).
Nella pagina di inizio (index.php) indicate la situazione patrimoniale iniziale (conti correnti, postali, contante nascosto nella zuccheriera e che altro avete :-) ), le " famiglie" e sottofamiglie delle spese che usate fare (vitto, casa, sport e che ne so io: sono le vostre spese, non le mie) e all'invio il programma creerà un database con le tabelle necessarie. Poi potrete:
  • gestire il vostro patrimonio, indicando entrate e uscite dai vari conti;
  • gestire le spese e controllare mese per mese (o anche su periodi da voi scelti) il bilancio tra la uscite e le entrate;
  • ottenere visioni sintetiche sull'andamento del patrimonio, sulle spese fatte in determinati periodi, sull'avanzo o disavanzo di ogni mese o periodo sottraendo alle entrate di quel periodo le spese (dettagliatamente elencate) dello stesso periodo;
  • modificare le voci del vostro patrimonio e spese (nulla è per sempre!).

  • Non è niente di complicato e l'ho preparato in pochi giorni, probabilmente un utente windows trova centinaia di programmi di questo tipo, ma a me piace, lo ho scritto quando ho avuto bisogno di controllare le mie spese e di capire su quali voci potevo o dovevo risparmiare, è affidabile, ben configurabile e da ormai quattro anni lo uso con risultati soddisfacenti.
    Mi sembra utile metterlo a disposizione, cliccate qui o sull'immagine per andare alla pagina di haushalt e scaricarlo o provare la demo online.

    ASSENZE_DIGITALI

    assenze_digitali
    Questo programmino, pensato per i coordinatori di classe, è diventato del tutto inutile da quando si è finalmente diffuso l'uso dei "registri elettronici", infatti non perdo tempo a costruire una demo.
    Lo metto on line un po' per la vanità di mostrare le mie skills, un po' perché è un interessante testimonianza della storia della scuola italiana.
    Si inserisce il numero di ore necessarie per ogni classe, si definisce il calendario scolastico dell'anno, si costruisce la classe con i nomi degli alunni e poi, ogni giorno, si segnano le assenze, le eventuali giustificazioni, le note, e, in caso di ritardo o uscita anticipata, l'ora di ingresso e di uscita: alle pagine di statistica ritroveremo ore di presenza, di assenza, percentuale sulle ore richieste e vari altri dati.
    Cliccate qui o sull'immagine per andare alla pagina di assenze_digitali, conoscere la storia del programma accompagnata da qualche considerazione sulla vita scolastica ed eventualmente scaricarlo.

    È tutto, per scrivere un commento o leggere i commenti precedenti cliccate qui o scegliete 'commenti' dal menu, per osservazioni, chiarimenti o richieste di aiuto potete scrivermi agli indirizzi del menu 'contatti'.