La giornata del sistemista

Oggi ho passato la giornata a giocare al piccolo sistemista. Tenendo iTunes in background con una radio online di sola musica anni ’80 e lavorando via ssh sul server casalingo ho giocato un po’ con tethereal e subversion, ottenendo delle cose abbastanza utili.

Stamattina tethereal. Fino ad oggi usavo tcpdump e uno scriptino bash per recuperare le informazioni su certi pacchetti che mi interessano, però la soluzione non era ottimale perché catturava poche informazioni su troppi pacchetti, dato che tcpdump non ha filtri per protocolli ad alto livello.
Con tethereal posso catturare solo i pacchetti che mi interessano in un certo periodo di tempo e metterne il dump in un file (in formato pcap). Uno script chiamato da cron, ad intervalli regolari, uccide il processo di cattura, esegue di nuovo tethereal sul file di cattura con parametri differenti (per fargli risolvere gli indirizzi IP) passando l’output ad un programmino in Python per estrarre solo le informazioni interessanti. Alla fine mi manda il tutto via mail e rimette in esecuzione il processo di cattura su un file vuoto. Quei simpaticoni di Echelon a confronto sono dei pivellini.

Il pomeriggio, invece, l’ho passato a litigarmi con subversion, apache2, mod_ssl e mod_auth_pam, però alla fine ne ho avuto ragione…
La configurazione che mi ero posto come obiettivo era:

  1. area pubblica in sola lettura
  2. autenticazione per poter modificare il repository

Avevo già l’autenticazione grazie a svn+ssh, ma dove sto facendo la tesi escono su Internet solo con un proxy (anche se ogni tanto si esce tranquilli con un NAT, dipende dalle maree e da certi riti sull’altare che hanno in terrazzo, credo) e volevo anche poter fornire accesso al ‘grande pubblico’, in particolare per il driver sis900.

L’unico tipo di autenticazione su http che funziona con mod_auth_pam (non volevo avere ancora un’altra password diversa) è ‘Basic’, con la password che viaggia in chiaro per mezzo mondo. La soluzione è stata usare mod_ssl. Non ci sono alternative se non criptare l’intera connessione, anche se l’unica cosa che vuoi tenere segreta è la password. Bah.

Mi sono creato la mia CA fasulla e l’ho usata per firmare il mio certificato fasullo anche lui e ora ho la mia brava connessione su https, alla faccia di tutti quelli che dicono che non si può avere SSL insieme ai virtual host di Apache (certo, non si può se si fanno le cose sul serio, con dei certificati veri, ma se uno fa finta di non vedere un paio di warning all’avvio di apache, problemi non ce ne sono…). Ora su https magari ci metto pure su un webmail, così posso leggermi la posta anche quando il sistemista in ditta si dimentica di fare i sacrifici agli dei.

Alla fine pure mod_auth_pam ha iniziato a funzionare senza particolari problemi (occhio che su Debian bisogna attivarlo con AuthPAM_Enabled on, anche se nella documentazione sul sito dice che quello è il valore di default).

Ora devo solo attivare un po’ di controllo di accesso sui singoli repository, attraverso un altro modulo dav_svn_.

Appena c’è qualche cosa di significativo visibile all’esterno posto un link.

La tesi procede…

Ho completato la prima fase di ricerca dello stato dell’arte attuale sul routing dinamico su reti wireless. Ho scritto qualche pagina con i risultati ottenuti, che farà parte della mia tesi. In più ho compilato un elenco di link utili, da cui ho preso tutte le informazioni necessarie. La trovate qui, casomai interessasse.

Primo giorno

Primo giorno di tirocinio in azienda. Dopo un po’ di scenette comiche nel parcheggio (prima ho messo la macchina nel parcheggio per i disabili, poi nel posto di un’altra ditta, solo alla terza ho beccato il posto giusto), ho scoperto di essere arrivato troppo presto, gli uffici erano semivuoti.

Dato che non mi era ancora stato assegnato un tavolo, mi sono sistemato in sala riunioni, un bel posto con un’ottima vista, annotandomi di arrivare almeno un’ora dopo in futuro.
Verso mezzogiorno ho esaurito il materiale che avevo scaricato sul portatile, così mi hanno dato il tavolo e un allaccio a internet, coi soliti problemi di cavi, borchie inattive, script che smettono di funzionare sul più bello e sistemisti che hanno troppo da fare.

All’ora di pranzo l’ufficio si è improvvisamente svuotato, io mi ero portato (da furbo) un panino, ma devo comunque aver mosso l’istinto materno di una delle dipendenti che è venuta a chiedermi se ero a posto per mangiare.

Il resto della giornata è passato tranquillo, ho iniziato a scrivere un rapporto su tutta la tecnologia esistente. Per ora vedo tantissimi articoli accademici, poche implementazioni con codice sorgente alla mano e un solo software (olsrd) testato su rete di dimensioni realistiche (di più di una decina di nodi).

Tesi 2, la vendetta

Dopo aver abbandonato una tesi sulla bioinformatica a favore di un argomento più promettente, in particolare quanto a prospettive lavorative, sembra che finalmente lunedì potrò iniziare.
Dovrò lavorare allo sviluppo di un sistema di comunicazioni wireless con routing dinamico e idealmente senza infrastruttura fissa da utilizzare in ambiente portuale.
Il tutto dovrebbe offrire un’interfaccia generica per permettere a qualunque tipo di applicazione di lavorare in modo trasparente, si va dal semplice scambio di dati sulle merci spostate al VoIP. Ovviamente ci sono anche degli studi di affidabilità e velocità da fare sugli algoritmi attualmente esistenti.
Il tutto si baserà su Linux, che è il sistema che già usano nella ditta presso cui vado a fare il tirocinio.
La mia intenzione è di tenere qui un diario degli avanzamenti, vedremo se ciò mi sarà possibile…

Altri traslochi

Ho spostato tutto il sito e il blog su un nuovo server, con un dominio nuovo di zecca. Il mio povero server a casa non ce la faceva più, ma soprattutto non mi fidavo a tenerci sopra così tanta roba senza avere il tempo di stare dietro a tutti gli aggiornamenti di sicurezza.

Per far andare Drupal su Debian woody sono necessari diversi backport, che non è detto siano sempre aggiornatissimi in fatto di sicurezza.
Questa volta sono anche riuscito a importare i post mantenendo la data originale, o meglio prima ho ripostato tutti gli articoli, poi ho modificato il database a mano. Le date sono memorizzate in secondi dall’epoca UNIX, quindi è bastato usare date "01 gen 2005 12:10" +%s per ottenere la data da incollare in mysql.

Novità

Tante novità, per cominciare sono molto soddisfatto dell’acquisto del Mac Mini. Ho avuto la sfortunata idea di installare windows media player 9 per Os X per vedere i filmati i wmv e da quel momento Safari ha iniziato a piantarsi ogni volta che vede un file di quel tipo. Eliminare windows media player non ha eliminato il problema… Al suo posto ho messo mplayer per Os X, che vede un sacco di formati e pare funzionare bene.

Infine ho appena comperato un dominio e dello spazio web, appena tutte le pratiche saranno concluse inizierò a spostare il sito, purtroppo questo blog è destinato ancora a qualche travaglio. Aggiornamenti a seguire.

Esamoni

Lunedì ho superato uno degli esami considerati tra i peggiori di tutto il corso di laurea in Informatica. Trattasi del famigerato Algoritmi e strutture dati: algoritmi, calcolabilità e complessità.
Con la riforma della nuova laurea il corso che avevo frequentato due anni fa è stato sostituito da altri due. Il passaggio è avvenuto con delle modalità molto strane. Tanto per cominciare prima era un corso annuale con un esame in tre parti:

  • scritto primo semestre
  • scritto secondo semestre
  • orale su entrambe le parti

Ora ASD:DCC è equivalente ai seguenti corsi:

  • CASD: scritto, orale e laboratorio
  • CC: scritto e orale

All’orale di CASD ha partecipato il Prof. Moggi, che non era elencato in commissione, ma che era il titolare del vecchio ASD. La Prof. De Floriani, titolare, non si è vista. Moggi tentava di chiedere cose fuori dal programma del corso, ma di solito veniva imbrigliato dalla tuttofare Prof. Magillo. In generale CASD non è difficile, anzi è sicuramente più semplice della prima parte di ASD.

Invece CC è oggettivamente difficile, bisogna aver compreso a fondo (leggi: studiato a memoria) tutto il programma per riuscire a passare.
Per lo scritto sembra che la teoria non serva a nulla, si tratta soltanto di provare a rifare gli scritti passati risolti da precedenti generazioni di studenti e sperare che capitino esercizi già fatti negli anni passati. Dopo parecchio studio si capisce che è possibile fare uno scritto decente arrivandoci col ragionamento (ma l’ho capito dopo aver passato lo scritto, mente preparavo l’orale).

All’orale di CC c’è lui, Moggi, da solo. È estremamente preciso, un parser umano di formule logiche. Finché ripeti quello che c’è sulle dispense, tutto ok. Se sbagli qualcosa ti aspetta una fine lenta e dolorosa.
Si inizia con un ‘no !’ e si prosegue con un ‘perché ?’. Difficilmente Moggi ti aiuta a trovare l’errore in quello che affermi, sta lì e aspetta, paziente.
In ogni caso (che uno si corregga o meno) ti aspetta la dimostrazione. Giustamente se affermi qualcosa di poco convincente vuol dire che sai dimostrarlo, altrimenti non ti verrebbe neanche in mente.

Peccato che la mente dello studente medio non funzioni così. Lui è abituato a presentarsi ad un esame con un certo bagaglio di conoscenze appiccicate con lo sputo ed a usare l’intuito e un buona dose di fortuna per tutto quello che manca. In generale l’obiettivo è superare l’esame con il minor sforzo possibile e il massimo rendimento. Ovviamente questo non vale per tutti gli studenti, né per tutti gli esami, però…
Quindi se lo studente è veramente bravo (o la sa raccontare molto bene) riesce a dimostrare la sua affermazione, altrimenti, beh, c’è sempre la prossima volta…

Qui ci sono i voti di tutti gli studenti che hanno incontrato Moggi almeno una volta nella loro vita, è un club esclusivo, ma l’elenco dei partecipanti è pubblicamente consumabile per la gioia di grandi, piccini e del garante della Privacy.

La mia opinione sulla questione BitKeeper

Qualche giorno fa si è scatenato l’ennesimo thread infinito su linux-kernel@vger.kernel.org sul problema che BitMover (la ditta dietro al prodotto BitKeeper) non fornisce abbastanza informazioni per ricostruire completamente la storia dei sorgenti del kernel di Linux. Io non credo che questo sia un problema reale, le patch su ftp.kernel.org hanno una granularità sufficiente per la maggior parte degli usi che mi vengono in mente.

Il problema che vedo io riguarda i piccoli sviluppatori, come me. Per noi è diventato estremamente difficile seguire lo sviluppo del piccolo pezzetto di kernel di cui ci vogliamo occupare senza utilizzare BitKeeper.

Qualche mese fa mi sono trovato delle modifiche (perfettamente giuste e legittime) al driver che mantengo, già incluse nella release stabile, mentre le mie povere patch faticavano a passare i molti filtri. Ho dovuto rifare le mie patch perché non si applicavano più… In pratica sono stato aggirato da qualcuno con BitKeeper.

Non ha alcun senso che per mantenere un driver di 50KB io debba mantenere un albero cvs (o svn o bk) di diverse centinaia di megabyte contenente tutta la storia possibile. Attualmente uso una soluzione fatta in casa, quasi totalmente automatizzata che mi permette di fornire patch che si applicano all’ultimo snapshot di Torvalds. Internamente uso Subversion per mantenere la storia delle modifiche ai sorgenti. E’ un buon prodotto, decisamente migliore di cvs e più intuitivo di arch (e forse anche più avanti nello sviluppo).

Quindi il mio problema non è che la gente usi BitKeeper, a loro fa comodo, a me no. Il problema è che BitKeeper consente a chi lo usa una via rapida e veloce per includere modifiche senza che ci sia un reale controllo da parte della comunità. Si sono formate due categorie, quelli che usano BitKeeper e tutti gli altri, con questi ultimi che si sbattono con scriptini e casini vari perché non possono (o non vogliono) usare un programma che ha una licenza alquanto discutibile.
Dato che la maggior parte dei piccoli sviluppatori lo fa per hobby, più gli rendi le cose difficili e meno avranno voglia di continuare il lavoro.

Traslochi

Dopo aver spostato il blog da initd (uno spazio web offerto da associazioni LUG di Torino ed Alessandria) a qui, sul mio server, per poterci giocare più facilmente, senza dover rompere tutte le volte a fog per chiedergli di installarmi qualche nuovo plugin, ho buttato via pyblosxom, passando a drupal.

Il cambio non è stato del tutto indolore perché non ho potuto importare i vecchi post mantenendo la data originale.

Li ho ripostati lo stesso, aggiungendo in fondo la data, sono solo un paio e li trovate subito dopo di questo.

Mi trovo bene con drupal, è senz’altro esagerato per le mie esigenze, ma funziona bene, in particolare il post via xmlrpc e non ha problemi con le immagini.

Chiusura della mailing list di Zena su initd.org

Ieri sera tardi ho chiuso la lista del Gruppo Zena, di cui ero il moderatore.
È un altro capitolo che si chiude in un lungo elenco, sembra che Linux a Genova riesca sempre a tirar fuori il peggio delle persone, causando conflitti e scontri su argomenti in gran parte irrilevanti.
Dopo esser stato tra i fondatori del LUGGe, del GeLUG e del Gruppo Zena, ogni gruppo con sempre meno regole e sempre più ristretto, è arrivato il momento in cui dico basta e mi occupo di altro nella vita. Una parte del gruppo continuerà a portare avanti le attività sotto il nome di Zena, a loro auguro una buona continuazione.