Insoddisfazioni

Vorrei lamentarmi un po’ dello stato attuale dei sistemi di web publishing esistenti. Una persona che abbia del contenuto da pubblicare su Internet ha varie possibilità:
Il blog è adatto ad un tipo di contenuto breve e cronologico. Ci si possono anche scrivere degli articoli, ma le cose diventano macchinose. Per cominciare è difficile scrivere offline: i software di blogging tipo Ecto o MarsEdit sono all’inseguimento, ma stanno rimanendo indietro. Ecto è pieno di bachi, poco gravi, nella formattazione del testo, ma che danno parecchio fastidio. L’autore promette cose da fantascienza in ecto3 che non si sa quando arriverà. Marsedit non funziona più con Blogger, quindi l’ho buttato via dopo la prima prova. Entrambi vogliono anche dei soldi (24.95$ per MerdEdit e 17.95$ per Ecto). La situazione su Windows è ancora peggiore. Non ho provato il client della Microsoft perché sono prevenuto, Contribute della Adobe (149$) va bene per editare delle pagine web esistenti, ma quando ho provato a postare su un blog ha fatto casino e ha inquinato l’albero FTP con le sue directory. Altri client erano troppo immaturi e avevano problemi vari. Utilizzabili, ma insoddisfacenti.
Se uno rinuncia a scrivere offline, può usare le interfacce web offerte dai vari servizi online di blogging. Però il browser non è un editor di testo e non ci si riesce a scrivere niente di lungo o formattato in maniera un po’ più complessa.

Programmi tipo iBlog (19.95$) generano in locale una pagina web ad ogni aggiornamento e poi si offrono di farne l’upload su FTP. Possono andare bene, ma sono chiusi. Se uno si stufa e vuole cambiare programma, non gli rimane altro che editarsi a manina l’HTML, difficilmente potrà importarsi tutta la struttura (date, tag, categorie, commenti) in un altro programma simile.
Una soluzione simile, ma molto più interessante, se non altro dal punto di vista tecnico, è TiddlyWiki. E’ una pagina web in grado di autoeditarsi tramite una quantità di Javascript. E’ un po’ lenta da caricare, non offre grandi possibilità come editor, ma è estremamente comoda per appunti personali o per un blog “da combattimento”.

Poi ci sono i wiki. Vanno benissimo per scrivere qualcosa in maniera collaborativa. I sistemi di editing come Textile o Wikitext alleviano un po’ le limitazioni del browser come editor e sono molto intuitivi. Rimane il problema dell’editing offline. Certo, uno può sempre scrivere su un file di testo e poi a mano fare il copia e incolla, sperando che nel mentre nessun’altro abbia modificato la pagina.
Per definizione i wiki sono sistemi aperti. Per un uso come sistema di publishing personale (un blog più strutturato o un sito web meno statico) sono sovradimensionati. Ho provato moinmoin, ma è qualcosa di estremo come quantità di file da uploadare, decisamente esagerato. Per gli altri programmi è difficile scegliere, ce ne sono troppi e WikiMatrix non aiuta.

Ci sono i CMS, ma sono giusto un pelino troppo pesanti per un uso personale.

Infine uno può sempre scriversi direttamente le pagine html e tanti saluti. Per scrivere l’html può aiutarsi con programmi tipo Dreamweaver (574,80€ tanto per indicare il capo della categoria), ma deve comunque farsi al minimo un sistema di ricerca, uno di tagging ed uno di commenti, se li vuole. Ma qui dovrei iniziare un’altra filippica contro i linguaggi lato server (javascript è un bersaglio troppo banale), che mi tengo per la prossima volta.

Ah, ho messo su le foto della Svezia: abbiamo superato il totale di 500 foto !

Memorie flash

Sulla mailing list linux-kernel si è formato un lungo therad molto interessante sulle memorie flash. Ci sono sia informazioni sull’interazione tra Linux e questo tipo di dispositivi, sugli ultimi algoritmi implementati nel firmware per uniformare il consumo delle memorie e consigli spiccioli su come recuperare una flash che sia diventata illegibile in seguito ad una mancanza di corrente.
Ecco il link: http://lkml.org/lkml/2005/5/13/144

Cocoa programming

Oggi ho speso buona parte della giornata tentando di scrivere un visualizzatore di immagini per Mac Os X che potesse:

  1. leggere le immagini da una directory
  2. ignorare i file non leggibili/non immagini
  3. visualizzarle a pieno schermo con/senza ridimensionamento
  4. passare all’immagine successiva o precedente nella stessa directory premendo un solo tasto (spazio)
  5. tornare indietro di un’immagine premendo backspace
  6. canellare un’immagine premendo canc

Nient’altro, niente thumbnail, niente zoom intelligente, niente funzioni di editing. Ho spesso a che fare con directory remote con centinaia di foto e non voglio aspettare ore prima di poter iniziare a controllarle.

Inutile dire che ho rinunciato (per ora!) all’impresa. Dovrei imparare seriamente l’Objective C per iniziare a capirci qualcosa, in ogni caso ho trovato Cocoa molto macchinoso e la documentazione generica (tutorial, introduzioni) troppo vaga. Il tutorial consigliato da tutti è praticamente inutile, è troppo semplice e non spiega perché si fanno le cose in un certo modo. Un esempio su tutti è NSBrowser, un widget per visualizzare dati strutturati ad albero. Il codice d’esempio rasenta il delirio solo per visualizzare un albero di directory perché si perde a settare font, sottolineature e colori vari.
La documentazione non dice assolutamente come si fa a riempire un NSBrowser nuovo, dice solo che una volta pieno è bellissimo.
Speravo che i binding Python<->Cocoa potessero salvarmi, ma sono abbastanza inutilizzabili per chi non conosce l’Objective C.

Per ora continuerò ad usare gqview sotto X11, è il meglio ed è la dimostrazione che il software open source è in grado di dare la polvere a software blasonati e costosi (graphicconverter, iview), ma praticamente inutilizzabili o surclassati da iPhoto.
Una menzione d’onore a cocoviewx, sarebbe perfetto se non morisse così facilmente e se caricasse le immagini solo prima di visualizzarle.

Acrobat Reader 7 per Linux

La Adobe ha finalmente aggiornato la versione di acrobat reader per Linux, facendo un salto di qualità da paura. Il download è grosso (40Mbyte e più), ma ne vale decisamente la pena. L’evento è passato in sordina, non so il motivo, forse perché non si tratta di software open source.
A me non importa molto, ho sempre usato acroread per vedere i pdf su Linux, visto che è l’unico che si beve qualunque pdf visualizzandolo sempre in modo decente. Probabilmente lo uso per lo stesso motivo per cui Torvalds usa Bitkeeper: funziona e non ci sono alternative OS allo stesso livello.
Grazie Adobe, di acroread 5 non ne potevamo più.

Subversion online!

Per una volta seguendo attentamente le istruzioni sono riuscito ad ottenere il risultato alla prima! Complimenti davvero agli autori dell’SVN Red Book, è fatto veramente bene.

Se volete accedere al repository del driver sis900, l’indirizzo è questo:
http://teg.homeunix.org/svn/sis900

Per ora è l’unico, ma presto spero di metterne su un altro. Ovviamente è in sola lettura, ci si può andare col browser (e si vede solo l’ultima versione) o col client svn (e si può accedere a tutta la storia).
Ho visto che esistono anche dei fogli XSLT per personalizzare l’aspetto delle pagine generate da mod_dav_svn, ma ho visto anche che l’unico browser col supporto in buon stato è Mozilla/Firefox, e io che uso Safari sarei tagliato fuori completamente (si vede solo una pagina bianca).
Quindi finché Safari non ha il supporto, niente XSLT.

La giornata del sistemista

Oggi ho passato la giornata a 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_<qualcosa>.

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