Com\’è dura la professione!

22 maggio 2006

La libertà

Filed under: cosi' va il mondo — lbell @ 18:45

Per il mio cane la libertà e' il collare che gli metto quando lo porto a fare un giro.

Annunci

19 maggio 2006

Rifare sempre le stesse cose ™

Filed under: cosi' va il mondo,Open Source,Programmazione — lbell @ 20:32

Mentre sta dando l'assalto al mercato enterprise con i suoi database e sistemi server, Microsoft si e' accorta che l'Open Source sta diventando un problema, e cerca di combatterlo con le sue stesse armi, cioè costruendo una comunità di sviluppatori e aprendo i suoi formati finora gelosamente custoditi. Uno sviluppatore che lavora con Java (ed Eclipse di solito ) e' abituato ad usare certe librerie e componenti che gli semplificano la vita, log4j per i log, iText per i documenti, ant, nunit e cosi' via. Per chi sviluppa per il mondo .net Microsoft mette a disposizione una framework (come l'Enterprise Library) validi certo, ma purtroppo diversi perche' Microsoft ha deciso di riscrivere tutto quanto in un tentativo che a me sembra piu' orientato a sottrarre programmatori alla concorrenza che a sfruttare le conoscenze degli stessi. Non sembra proprio che la passione della succitata societa' sia il potenziale degli utenti, specie se sono sviluppatori. Perché chi ha imparato ad usare un sistema di log o di test unitari valido e che funziona deve perdere tempo ad impararne un altro che può usare solo in un ambiente di lavoro per far piacere ad un fornitore (come e' Microsoft per uno sviluppatore) invece di investirlo nello sviluppo delle sue applicazioni ? Non sarebbe meglio che Microsoft supportasse i gruppi Open Source nel migliorare questi tools che pure sono stati portati dalla comunità in ambiente .net, permettendo agli sviluppatori di far fruttare le proprie conoscenze acquisite in altri ambiti ? La situazine attuale si chiama “rifare sempre le stesse cose” ™.

Lo spunto e' stato tratto da questi link:

Logging:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/EntLibJan2006_LoggingAppBlock.asp

http://logging.apache.org/

Formati pubblici

http://www.iso.org/iso/en/commcentre/pressreleases/2006/Ref1004.html

http://www.desktoplinux.com/news/NS9189598911.html

18 maggio 2006

Tutti matti per Ajax, specialmente Google

Filed under: Java,Programmazione — lbell @ 21:02

Anche Google rilascia un toolkit basato su Java per Ajax e lo fa mentre Microsoft rilascia il suo Atlas (allora la concorrenza funziona!). Sara' possibile rilasciare componenti (Widgets) in librerie (file jar) per permetterne il riuso in vari progetti. Il codice Java sara' compilato in un Javascript funzionate su diversi browser. Una caratteristica notevole rispetto a tutti gli altri toolkit e' che nella versione hosted, in fase di debugging, il programma risultante funzionerà in una macchina virtuale permettendo un debug agevole. Il generatore di Javascript permetterà ai programmatori di utilizzare principalmente un solo linguaggio per lo sviluppo ed e' interessante come idea. La strada per le nuove applicazioni web sembra tracciata, ma il supporto dei browser ad Ajax e' ancora troppo scarso per costruire agevolmente applicazioni complesse, mentre la notizia vera e' che Google inizia timidamente a dare battaglia sul terreno su cui Microsoft prospera: gli sviluppatori.

Riferimento: http://code.google.com/webtoolkit/

17 maggio 2006

L’inutilità di fare le cose

Filed under: Uncategorized — lbell @ 20:34

Qualche giorno fa mi era venuta voglia di sfruttare la mia modesta esperienza con Nagios per scrivere un libretto per illustrarne il campo d'utilizzo, la configurazione e l'amministrazione. Come al solito un breve ricerca in internet mi ha mostrato l'inutilità del fare le cose:

http://www.nagios.org/propaganda/books/

più qualche altro libro non ancora sugli scaffali delle librerie.

Grafici con Nagios

Filed under: Amministrazione di sistema,Nagios — lbell @ 20:05

Il punto debole di Nagios, oltre alla complessità della configurazione beninteso, e' la mancanza di uno storico dei valori quantitativi. E' molto comodo e intuitivo controllare la tendenza dei valori di risposta dei singoli servizi a colpo d'occhio. Ovviamente a questa mancanza si può sopperire con l'ennesimo comando, questa volta non un plugin, ma un filtro. Il progetto che dovremo utilizzare si chiama NagiosGrapher (http://www.nagiosexchange.org/NagiosGrapher.84.0.html) e richiede la presenza di rrd. Sfrutta il meccanismo di eco dei performance data di Nagios per leggere i dati che arrivano dai plugins per passarli ad un servizio che li decodifica e li inserisce in un database rrd in tempo reale; vi sono anche degli scripts che generano un grafico dei valori per le pagine web di amministrazione.

NagiosGrapher consiste in un servizio, che l'amministratore deve far partire, che apre una pipe in lettura. Quando i dati arrivano, li confronta con il proprio file di configurazione per decidere se il dato va memorizzato ed in quale archivio. Non tutti i dati possono quindi essere utilizzati, ma solo quelli che sono formattati secondo la convenzioni indicate dalle linee guida per i plugins. Per far arrivare i dati da Nagios a NagiosGrapher va creato un comando di Nagios utilizzando un applicativo fornito, come script o eseguibile compilato, che ricevendo i dati da Nagios li scrive sulla named pipe aperta da NagiosGrapher.

define command {
command_name   process-service-perfdata
command_line    percorso/fifo_write.pl  percorso/ngraph.pipe '$HOSTNAME$   $SERVICEDESC$ $SERVICEOUTPUT$   $SERVICEPERFDATA$' 3
}

Non rimane che dire a Nagios (in nagios.cfg) di utilizzare il comando appena creato :

process_performance_data=1
service_perfdata_command=process-service-perfdata

Per la verità occorre anche gestire una opportuna configurazione per ogni grafico che si vuole generare, ma questi sono dettagli che potete leggere nella documentazione di NagiosGrapher che invito a leggere.

15 maggio 2006

L’anno degli anniversari ovvero Fede e Ragione

Filed under: letture — lbell @ 19:39

Su Le Scienze di questo mese c’e’ un articolo che parla dei limiti della matematica e prende spunto dal fatto che quest’anno cade il 50o anniversario della scoperta del teorema di Goedel sulla presenza di verita’ indimostrabili nella matematica, da parte dell’autore dell’articolo stesso. In realtà si tratta più di logica, ovvero quella scienza che regolamenta l’uso e la coerenza interna della matematica ed il succo del discorso e’ che vi sono limiti nella matematica, dimostrati dalla matematica stessa. Tali limiti sono rilevanti anche per tutte le scienze che si poggiano su di essa anche se non sembra abbiano frenato più di tanto gli ingegneri che tutti i giorni applicano la matematica alle loro creazioni. In effetti quello che si sostiene e’ che una teoria o e’ completa o e’ consistente, non entrambe le cose. Dato che vi sono verita’ indimostrabili, se un sistema e’ completo, e dimostra solo verita’, non potrebbe dimostrare l’indimostrabile e quindi non sarebbe consistente.
E purtroppo la regola vale all’infinito, ovvero la ragione non sara’ mai in grado di realizzare un sistema completo e consistente. Come conseguenza la matematica non sara’ mai in grado di validare se stessa. E’ un problema di metodo, non di quanto grande possa essere la capacita’ di comprensione dell’umano o del divino.
E’ abbastanza strano ed affascinante che i limiti siano rilevati e confermati proprio dalla stessa matematica. Purtoppo ignoro per mie lacune se una logica non basata sul terzo escluso possa superare tali limiti; spesso infatti i muri che ci costruiamo attorno alle nostre teoria sono scavalcabili cambiando la prospettiva da cui li si guarda; questo punto potrebbe fare il paio con quello che ci viene insegnato fin da piccoli sulle rette parallele che si incontrano all’infinito, una successione infinita di sistemi sarebbe completa e consistente?
Ricordiamoci della fine che ha fatto il paradosso di Zenone che richiama questo tema e delle serie convergenti.
Quello che mi chiedevo è se la guida della ragione, utilizzata per gettare le basi delle teoria ed esplorarne le conseguenze sotto forma di teoremi, non inizi a vacillare. Dobbiamo quindi riaffidarci alla fede o più modestamente all’ispirazione per parlare di matematica? Gli assiomi che siamo costretti ad inserire ogni tanto per far stare in piedi il castello della teoria, da dove vengono?
L’altro argomento affascinante che accompagna l’ articolo citato e’ la differenza tra matematica e fisica. Molti metodi matematici sono stati creati per meglio descrivere il mondo, ma da dove si parte? E’ il mondo concreto che inventa la matematica o e’ la matematica gia’ presente sotto forma di idee nelle nostre teste?

Se siete curiosi di sapere quali altri anniversari cadono quest’anno:

  • 50o anniversario dell’intelligenza artificiale
  • 40o anniversario di laboratori HP
  • 30o anniversario di DrDobbs
  • 20o anniversario del primo virus per computer
  • 10o anniversario di Java (JDK1.0)

Classifica tratta da Dr Dobbs.

11 maggio 2006

Java vs Ruby (J2EE vs RubyOnRails)

Filed under: Java,RubyOnRails — lbell @ 21:32

La filosofia di Ruby e Java e' opposta ed i loro framework più famosi (Rails e J2EE se e' corretto confrontarli dal punto di vista operativo) lo testimoniano. In Java ogni energia e' dedicata a gestire la vita degli oggetti di base di cui si occupa a partire dall'infrastruttura, alla sicurezza, all'autenticazione, al deployment. Java costruisce una architettura di tipo enterprise in cui si può pensare, rispettando una serie interminabile di specifiche, di rendere indipendenti e sostituibili gli ambienti di produzione di un componente da quello di installazione e di funzionamento tanto da lasciar utilizzare diversi compilatori e application server anche se la pratica dice che le cose non sono mai così semplici. Il prezzo di questo meccanismo e' la presenza di una quantità di files di configurazione che diventano un incubo da controllare e manutenere e l'uso obbligatorio di IDE o strumenti di automazione dei dettagli delle fasi di configurazione dei componenti. Con J2EE assume importanza la figura dell'integratore di sistemi il cui scopo e' di configurare e legare fra loro i vari componenti.

La configurazione e' quanto più possibile separata dagli oggetti su cui deve operare e cio' ha una sua importanza in termini di complessità. RoR al contrario sembra fatto apposta per costruire programmi in modo veloce. E' pieno di convenzioni di tutti i tipi e la configurazione viene posta quanto più vicino possibile agli oggetti.

Le relazioni fra i models vengono vengono inserite non in un file di configurazione in balia dell'integratore, ma nei models stessi. Ogni aspetto del framework e' pienamente configurabile ma e' tutto studiato per intervenire il meno possibile, utilizzando generatori di codice e convenzioni basate su corrispondenze tra nomi delle classi e degli oggetti su database e files.

Le due filosofie di base sono cosi' diverse da far ritenere i due ambienti come complementari. A Ruby probabilmente manca un ambiente di tipo enterprise, con tutto quello che comporta (transazioni distribuite ecc. ) con varie funzionalità che Java e .Net hanno acquisito con il tempo e con uno sforzo di design non indifferente. Un ambiente di questo tipo tuttavia spesso non e' indispensabile nel caso di siti di dimensioni medio-piccoli in cui quello che conta e' minimizzare il tempo di sviluppo e di consegna. Un punto a favore di Ruby e' che la sua concisione aiuta il programmatore a fare meno sforzi mnemonici nel ricordare i dettagli degli oggetti su cui lavora, di contro le trappole tese dalle numerose convenzioni utilizzate, sono insidiose.

10 maggio 2006

Java i CSS e le stampe

Filed under: Java — lbell @ 18:17

Per un programma stampare e' una delle sfide piu' difficili, visto che le esigenze dei clienti sono le piu' svariate. Con il recente rilascio dell' ennesima versione di birt (www.eclipse.org/birt) si aprono prospettive interessanti per la reportistica Java. Per chi vuole fornire ai propri clienti anche il designer (integrato in Eclipse) esistono comunque difetti importanti. In particolare, tralasciando varie scomodità, la filosofia di implementazione ricalca lo schema dei CSS. Occorre quindi definire il layout in base a tabelle, cosa poco intuitiva per un non programmatore, ma soprattutto non e' possibile stampare formulari a formato fisso come quello della busta paga, senza ricorrere a trucchi poco eleganti, ( se e' possibile spero che qualcuno me lo spieghi ). Ai CSS secondo me e' sempre storicamente mancato un buon sistema di gestione colonne. Per un uso di reportistica generico invece sembra piu' che adatto, una delle perle che si trovano navigando nei progetti Open Source.

8 maggio 2006

La paranoia

Filed under: paranoia — lbell @ 18:15

La paranoia e' osservare una persona al telefono di fianco a me sull'autobus e cercare di immaginarsi con quale dei passanti sul marciapiede che sfilano dietro il finestrino con il telefonino appoggiato all'orecchio, sia collegata, cercando di interpretare le espressioni facciali. Per fortuna il viaggio dura poco.

2 maggio 2006

Nuovo libro, nuovo ambiente di sviluppo

Filed under: Open Source,Programmazione — lbell @ 19:26

Purtroppo, facendo un salto in libreria mi e' caduto l'occhio su di un libro su Ruby on Rails. Mi ero ripromesso di non perdere tempo tempo con l'ennesimo framework web, ma non ho potuto fare a meno di curiosare nelle pagine, un po' per il linguaggio, un po' per l'ambiente, cosi' lontano come approccio da ASP.Net e quindi ho fatto l'errore di comprare il libro . Mah, vedremo, purtroppo sta incominciando a piacermi. Ad essere sincero pero' non ho ancora visto nulla che non si possa fare con facilita' con l'ambiente Microsoft con un plugin, avendo in piu' il debugger lato server e client.

Blog LB Link: http://www.rubyonrails.org/

Crea un sito o un blog gratuitamente presso WordPress.com.