L’inizio della fine?

Penso che sia opportuno riflettere su quanto sta succedendo oggi nel mondo del Software Libero: in questo articolo si pone come “Essential” una nuova caratteristica dell’Ubuntu prossima ventura: la presenza di driver di schede video proprietari.
La cosa mi ha lasciato abbastanza perplesso non perché io sia uno di quelli della curva ultras del Software Libero ma perché avevo visto nel progetto Ubuntu un tentativo di raccogliere quanto di meglio il Software Libero avesse da proporre (dato che Ubuntu era un florido ramo spuntato da Debian). Invece Ubuntu sembra muoversi a piè sospinto nella conquista del mercato e sembra che sia arrivato, per Canonical Ltd, il tempo di iniziare a recuperare il denaro investito. Ovviamente i miei sono solo sospetti: non ci sarebbe niente di male a facilitare la vita di chi installa Ubuntu: ma davvero lo strapotere di ubuntu, di redhat e novell non riesce a piegare il volere di chi scrive driver proprietari per linux…e che ci sarà mai scritto in quei codici? E perchè dovrebbe risiedere in quei codici il successo commerciale di ATI e nVidia?
Anche Mono, progetto ed insieme di persone che seguo molto, dovrà chiarire molto di più la sua posizione e le sue licenze in virtù del famigerato accordo. Sono ormai molte le voci di chi dice di non volere gli .exe nelle proprie Linux box (anche per via delle prestazioni non particolarmente brillanti di Mono e dei progetti ad esso legati).

Infine la mossa di Sun e le ripercussioni che esso avrà nel mondo del Codice Libero. Non sarebbe male che l’anti-Mono potesse nascere proprio dal caro vecchio Java magari dotandolo di qualcosa che Mono ha (un pò come ha fatto la Apple: “…è vero qualcosa l’abbiamo copiata anche noi dalla Microsoft…ma l’abbiamo fatto con stile!“:) ).

Pensiamoci (a vicenda)

Appello: Librerie grafiche 2D, possibilmente OpenGL

Salve a tutti,

sto cercando delle librerie che mi consentano di elaborare poligoni bidimensionali con operazioni del tipo Intersezione(A,B), Differenza(A,B), Unione(A,B) e Offset(A) (si, insomma l’operazione che mi crea un contorno intorno ad un poligono ad una data distanza). Attualmente uso con profitto la NTS, porting della JTS sotto .Net, ma cercavo qualcosa che magari sfruttasse l’OpenGL o che comunque avesse prestazioni ancora maggiori.

Sappiatemi dire.

Google è veloce ma Io non ho tempo da perdere! Bah! Uff!

Un breve link ad un simpatico acceleratore di ricerche via web dal nome un pò oscurantista: Inquisitor! Appena digitate le prime lettere di ciò che state cercando lui richiama subito la pagina di ricerca con i risultati del testo parziale. Non so quanto sia utile in se ma è carino il suggerimento delle parole che si avvicinano a quello che stiamo scrivendo. Insomma, la rete è ormai troppo lenta per le nostre necessità…fra un pò cominceremo a sbuffare contro la lentezza di Google come si soleva fare agli uffici dell’anagrafe o agli sportelli delle poste.

Vatti a fidare di un lupo nella foresta

Vi ricordate di Cappuccetto Rosso? E del rassicurante lupo che le si rivolse con modi gentili nella foresta? Io sì, chiaro e forte, anche alla luce degli ultimi movimenti di Microsoft nei confronti del free software.

Immagino siate a conoscenza dell’alleanza di Microsoft con Novell, la società americana che attualmente gestisce SUSE Linux. Nella comunità open source qualcuno ha gioito e qualcuno ha storto il naso. Microsoft dal canto suo ha fatto sapere che si tratta di un accordo tra due società con un business simile perché misto di software proprietario e open source… Voi direte che la partecipazione attiva di Microsoft al mondo open source è tutta da dimostrare, ma i lati positivi sembrano esserci davvero.

Oggi tuttavia il signor Ballmer, Chief Executive Officer di Microsoft, ha dichiarato che Linux usa le proprietà intellettuali di Microsoft e che sta valutando le azioni legali necessarie perché Microsoft abbia i soldi che gli spettano in quanto detentrice di brevetti. Come ciliegina sulla torta, inoltre, si è scoperto che Novell ha sborsato ben 40 milioni di dollari per mettere al riparo da azioni legali da parte di Microsoft sè stessa e i propri clienti.

Ci risiamo… Microsoft vuole la torta tutta per sè. Cosa ne dite?

IKVM…Java sotto .Net…Evviva l’Open Source!!!

Ho guardato con un pò di sufficienza questo progetto fino ad ora ma devo dire che forse mi ricrederò…IKVM è una virtual machine per integrare codice Java e codice .Net. Detta così anche a me sembrava una cosa un pò astrusa, ma poi mi è bastato leggere UNA SOLA RIGA dal sito di IKVM per ricredermi: ecco come.
Supponiamo di avere il nostro jar di fiducia, ad esempio jts-1.7.2.jar (è la libreria JTS, guarda caso); ci basta scrivere:
ikvmc -target:library jts-1.7.2.jar
per creare jts-1.7.2.dll. Tutto qui. Basta. Avete finito di leggere…no, aspettate :) . Aggiungo un piccolo dettaglio.
Effettivamente a partire dal jar voi avrete la vostra bella dll, che non ha più bisogno del jar iniziale. Viene vista dall’ambiente .Net (anche dagli IDE) ma ha bisogno del runtime (che è una dll) e del classpath (che è una dll) di IKVM. Sono un pò ingombranti (circa 10MB) ma rendono la vita abbastanza semplice. Nel vostro progetto .Net, potrete ora aggiungere la reference alla jts ed al classpath ikvm ed avete finito. Questa volta per davvero.

Devo ancora chiarirmi le idee sul debugging di dll IKVMate, ma devo dire che sembra essere un progetto stabile.

Aggiungo solo che la prossima release di Java potrebbe essere integrata direttamente in IKVM.
Evviva l’Open Source!!

Rilasciato Mono 1.2 !!

Atteso come il primo vero rivale di .Net sotto Linux, è stato finalmente rilasciato Mono 1.2. Le novità sono tantissime e comincia a porsi il serio dilemma se utilizzare il compilatore Microsoft o usare Mono dappertutto. Le novità sono molte, anche se allo stato attuale non so giudicare di che portata sono. Di sicuro di grande rilievo troviamo:

  • Supporto al C# 2.0
  • Supporto alle Winforms 2, con cui compilare direttamente le interfacce progettate sotto Visual Studio
  • Varie ottimizzazioni in termini di velocità ed aumento complessivo di performance
  • IKVM integrato, per far girare direttamente codice scritto in Java (WOW, e se non sbaglio le prestazioni traggono immenso giovamento dalla compilazione in .Net)
  • Profilers integrati con possibilità di personalizazzione

Insomma un bel pacco natalizio con cui divertirsi!

Mono…La grandiosità del software libero

Ne parlavo giustappunto a pranzo sulla potenza del lavoro che stanno facendo i ragazzi di Mono: andando a leggere l’interessante blog di chi vi partecipa ho scoperto due interessanti applicazioni di CeCil…ma andiamo con ordine.
Dovete sapere che i Mono-Guys hanno sviluppato un pezzo di software chiamato CeCil: lo scopo di questo software è quello di consentire l’analisi e l’ispezione di un Assembly .Net, farne quello che ci pare, ad esempio modificarlo e riassemblarlo in un nuovo file. Semplice ed efficace.
Il progetto non è passato inosservato e molti altri hanno iniziato ad utilizzarlo per fare le cose più svariate: SharpDevelop lo usa per mostrare il contenuto di un Assembly, Aspect.DNG lo usa per implementare il paradigma dell’Aspect Oriented Programming in .Net (ricordate il post di qualche giorno fa?).
Alla Mono invece vanno sempre un pò più in la (d’altronde le cose le hanno inventate loro) ed hanno realizzato:

  • Gendarme: un tool che usa CeCil per ispezionare l’assembly e trovare gli errori tipici che seminiamo nel codice (anche se il compilatore ha detto che è tutto a posto dal punto di vista della sintassi); in pratica errori nella concezione dell’algoritmo: ad esempio se vogliamo che un metodo restituisca la lunghezza di una stringa noi tendiamo a scrivere un metodo con la sola riga
    return s.Length
    il compilatore compila correttamente; Gendarme invece ci avviva che prima di ritornare il valore dobbiamo controllare che s sia null (bello, eh?);
  • Linker: ancora in fase di sviluppo sarà quello che dice il nome e che manca nel mondo .Net (ed anche in quello Java); ossia un software che prenderà in input gli Assembly .Net e li fonderà lasciandoci dentro solo il minimo indispensabile alla corretta esecuzione del software (la bava comincia a sgorgare?);
  • Mono.Merge: in attesa del linker possiamo divertirci con questo bellissimo pezzo di software che fonde in uno solo più Assembly .Net; in questo modo potrete fare il deploy della vostra applicazione con un unico file eseguibile senza pericolo che ci siano dll mancanti, versioni sbagliate e così via.

Che dire…vogliamo fare un monumento a codesti ragazzi?

OT…lo strano mondo delle assicurazioni

In occasione del rinnovo dell’assicurazione per la mia auto, l’assicurazione ha pensato bene di farmi dono di un servizio di assistenza 24h su 24h, 365gg all’anno, 1000 anni al millennio e 10 millenni ogni era geologica. “Grazie”, ho detto io, “prego”, ha risposto l’assicurazione, invitandomi a leggere il contratto con le condizioni generali. Con mio sommo stupore il contratto era scritto a chiare lettere e il mio occhio non ha potuto fare a meno di leggere quanto riporto pedissequamente dal paragrafo “Esclusioni” (attenzione che è tutto vero!):

L’assistenza non è operante in caso di:

  • sinistri ed infortuni che siano conseguenza diretta o indiretta di trasmutazione del nucleo dell’atomo, come pure di radiazioni provocate artificialmente dall’accelerazione di particelle atomiche o da esposizione a radiazioni ionizzanti;
  • sinistri ed infortuni determinati da inondazioni, terremoti, eruzioni vulcaniche ed altre calamità naturali, da atti di guerra, insurrezioni, tumulti popolari nonché da aggressioni od atti violenti che abbiano movente politico o sociale ed ai quali l’Assicurato abbia partecipato attivamente.

Dopo un attimo di smarrimento (sapete quando i corvi vi volano dietro le spalle?) ho dedotto che:

  • il mio nuovo acceleratore di particelle tascabile da attaccare all’accendisigari dell’auto, non lo posso utilizzare;
  • che se mentre guido volessi dare atto alla trasmigrazione del mio animo, quello lo posso fare;
  • se mentre guido volessi farmi quella lastra alla cassa toracica che tanto desideravo, quella non si può fare;
  • devo anche stare attento a come bestemmio agli incroci della città perchè quello potrebbe essere inteso come partecipazione attiva ad un tumulto popolare (se non è un tumulto il traffico cittadino);
  • inoltre con la mia auto posso scordarmi di fare un giro mentre una colata lavica mi si rovescia sopra o usarla come tavola da surf durante uno Tsunami.

Quello che mi chiedo è: ci sarà stato qualcuno che ha fatto qualcuna di queste cose tanto da indurre l’assicurazione a scriverlo per esteso?
E la vostra assicurazione cosa dice?
Ad ogni modo vi consiglio di acquistare questo, per le chiavi della vostra auto; non si sa mai!

LatexEditor…LaTeX for the rest of us :)

In proncinto di scrivere la mia tesi di dottorato non potevo esimermi dall’utilizzare LaTeX: quell’impaginazione impeccabile, il rendering delle formule e quello stile da libro di matematica delle scuole superiori che conferisce ai documenti, colpisce molto la mia fantasia. Recentemente affidavo le mie memorie scientifiche all’ottimo TeXnicCenter, ma, mai pago di ciò che la tradizione mi propina, ho fatto nuove ricerche ed ho scoperto un nuovo editor per LaTeX dall’originalissimo nome: LaTeXEditor (e cosa vuoi di più dalla vita?)! Come molti degli Zac Tools anche questo editor NON è Open Source e questa è l’unica pecca, perchè per il resto è freeware, dispone di un anteprima DVI inclusa nella finestra, ha un help dinamico che aiuta il completamento dei codici LaTeX e supporta le maggiori distribuzioni LaTeX per Windows.

LaTeXEditor

Ovviamente se qualcuno di voi volesse prendere spunto da questo software per implementare le stesse features in TeXnicCenter sarebbe il benvenuto!

Attenzione! Se avete installato la recente distribuzione MikTeX 2.5 dovete installare la patch disponibile sul sito altrimenti l’anteprima DVI non funzionerà. Nelle prossime release sarà disponibile anche la preview dell’output PDF.

Buona scrittura!